中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

技術(shù)支持 鄭州做網(wǎng)站企業(yè)網(wǎng)搭建

技術(shù)支持 鄭州做網(wǎng)站,企業(yè)網(wǎng)搭建,什么網(wǎng)站做b2b免費(fèi),wordpress編輯器可視化在那里目錄 一、前言 二、數(shù)據(jù)備份策略 2.1 全備 2.2 增量備份 2.3 差異備份 三、mysql 增量備份概述 3.1 增量備份實(shí)現(xiàn)原理 3.1.1 基于日志的增量備份 3.1.2 基于時(shí)間戳的增量備份 3.2 增量備份常用實(shí)現(xiàn)方式 3.2.1 基于mysqldump增量備份 3.2.2 基于第三方備份工具進(jìn)行增…

目錄

一、前言

二、數(shù)據(jù)備份策略

2.1 全備

2.2 增量備份

2.3?差異備份

三、mysql 增量備份概述

3.1 增量備份實(shí)現(xiàn)原理

3.1.1?基于日志的增量備份

3.1.2?基于時(shí)間戳的增量備份

3.2?增量備份常用實(shí)現(xiàn)方式

3.2.1 基于mysqldump增量備份

3.2.2 基于第三方備份工具進(jìn)行增量備份

四、前置準(zhǔn)備

4.1 搭建mysql環(huán)境

4.1.1?創(chuàng)建映射目錄

4.1.2 啟動(dòng)mysql

4.1.3 開啟binlog

4.1.4 重啟mysql實(shí)例

4.1.5?驗(yàn)證binlog是否開啟

4.2 數(shù)據(jù)準(zhǔn)備

4.2.1 創(chuàng)建數(shù)據(jù)庫(kù)和表

五、mysqldump實(shí)現(xiàn)數(shù)據(jù)增量備份與還原

5.1 全庫(kù)備份

5.2 數(shù)據(jù)庫(kù)正常執(zhí)行增刪改查操作

5.3 模擬數(shù)據(jù)庫(kù)發(fā)生故障

5.4 備份最新的二進(jìn)制日志文件

5.5 全庫(kù)恢復(fù)

5.6 通過binlog日志文件恢復(fù)剩下的數(shù)據(jù)

六、xtrabackup實(shí)現(xiàn)備份與恢復(fù)

6.1 xtrabackup簡(jiǎn)介

6.1.1 xtrabackup優(yōu)缺點(diǎn)

6.2? xtrabackup 備份過程

6.3 xtrabackup備份與數(shù)據(jù)恢復(fù)原理

6.4?xtrabackup 安裝流程

6.4.1 上傳安裝包

6.4.2?使用rpm安裝

七、xtrabackup 模擬全庫(kù)備份與恢復(fù)

7.1 實(shí)現(xiàn)思路

7.2 數(shù)據(jù)準(zhǔn)備

7.3 準(zhǔn)備一個(gè)特殊賬號(hào)

7.4?全庫(kù)備份操作過程

7.4.1 執(zhí)行備份命令

7.4.2 預(yù)備階段,整合日志

7.4.3 模擬數(shù)據(jù)庫(kù)故障

7.4.4 執(zhí)行數(shù)據(jù)庫(kù)恢復(fù)

八、xtrabackup 模擬增量備份與恢復(fù)

8.1 增量備份概述

8.2 操作步驟

8.2.1 準(zhǔn)備數(shù)據(jù)

8.2.2?執(zhí)行全庫(kù)備份

8.2.3?整合中間日志

8.2.4 做增量備份

8.2.5?數(shù)據(jù)文件整合

8.2.6 模擬數(shù)據(jù)庫(kù)故障

8.2.7 恢復(fù)數(shù)據(jù)

8.2.8 測(cè)試數(shù)據(jù)

九、寫在文末


一、前言

對(duì)線上運(yùn)行的mysql數(shù)據(jù)庫(kù)來說,周期性做數(shù)據(jù)庫(kù)備份具有重要的意義,一方面可以防止數(shù)據(jù)丟失,另一方面,備份的數(shù)據(jù)可以快速在不同的環(huán)境中使用、遷移。

二、數(shù)據(jù)備份策略

結(jié)合實(shí)踐經(jīng)驗(yàn),數(shù)據(jù)庫(kù)備份通常有如下幾種策略。

2.1 全備

即備份完整的數(shù)據(jù)庫(kù),全量數(shù)據(jù)就是數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)(或某一個(gè)庫(kù)的全部數(shù)據(jù));

全量備份就是把數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)進(jìn)行備份,使用mysqldump會(huì)取得一個(gè)時(shí)刻的一致性數(shù)據(jù)。

2.2 增量備份

增量數(shù)據(jù)就是指上一次全量備份數(shù)據(jù)之后到下一次全備之前數(shù)據(jù)庫(kù)所更新的數(shù)據(jù),對(duì)于mysqldump、binlog就是增量數(shù)據(jù);

2.3?差異備份

備份自上一次完全備份后的全部改動(dòng)和新文件,其特點(diǎn)有:

  • 備份速度較快,恢復(fù)速度較快,對(duì)磁盤空間有要求;
  • 能夠更快且簡(jiǎn)單的恢復(fù)(相比較增量);
  • 需要最近一次完全備份和最后一次差異備份就能快速恢復(fù);

三、mysql 增量備份概述

增量備份是指在全量備份基礎(chǔ)上,僅備份數(shù)據(jù)發(fā)生變化的部分。相比全量備份,增量備份時(shí)間和備份文件大小都會(huì)大大減少,同時(shí)也能夠更加快速地恢復(fù)數(shù)據(jù)。

增量備份的核心思想是記錄每個(gè)數(shù)據(jù)塊的修改情況,只備份修改過的數(shù)據(jù)塊,從而實(shí)現(xiàn)備份效率的提升。

3.1 增量備份實(shí)現(xiàn)原理

增量備份的實(shí)現(xiàn)原理主要有兩種:

3.1.1?基于日志的增量備份

二進(jìn)制日志(bin log)、錯(cuò)誤日志(error log)等。其中,二進(jìn)制日志記錄了所有對(duì)數(shù)據(jù)庫(kù)的修改操作,包括插入、更新、刪除等。通過解析二進(jìn)制日志,可以得到所有的修改操作,并將其應(yīng)用到備份中,從而實(shí)現(xiàn)增量備份。

3.1.2?基于時(shí)間戳的增量備份

基于時(shí)間戳的增量備份是指記錄每個(gè)數(shù)據(jù)塊最后一次修改的時(shí)間戳,只備份時(shí)間戳發(fā)生變化的數(shù)據(jù)塊。這種備份方式相對(duì)于基于日志的增量備份,實(shí)現(xiàn)難度較低,但在應(yīng)對(duì)大量數(shù)據(jù)變化時(shí)效率較低。

3.2?增量備份常用實(shí)現(xiàn)方式

實(shí)際應(yīng)用中,增量備份可選擇多種方案,下面介紹兩種常用的方式

3.2.1 基于mysqldump增量備份

mysqldump是MySQL自帶的備份工具,可以備份數(shù)據(jù)庫(kù)的結(jié)構(gòu)和數(shù)據(jù)。在備份時(shí),可以使用--where選項(xiàng)指定備份數(shù)據(jù)的條件,從而實(shí)現(xiàn)增量備份。

3.2.2 基于第三方備份工具進(jìn)行增量備份

比如像 XtraBackup、Mariabackup等,這些工具都支持增量備份。使用這些工具進(jìn)行備份,可以更加高效地備份數(shù)據(jù),同時(shí)也能夠提高數(shù)據(jù)恢復(fù)的速度。

接下來分別利用mysqldump與XtraBackup完成mysql的增量備份的操作。

四、前置準(zhǔn)備

4.1 搭建mysql環(huán)境

為演示方便,接下來使用docker快速搭建一個(gè)mysql,搭建方式有很多,可以結(jié)合自己的情況選擇。

4.1.1?創(chuàng)建映射目錄

mkdir /usr/docker/mysql/log
mkdir /usr/docker/mysql/data

4.1.2 啟動(dòng)mysql

使用下面的docker命令啟動(dòng)mysql

docker run -p 3306:3306 --name mysql57 \
-v /usr/docker/mysql/log:/var/log/ \
-v /usr/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d hub.c.163.com/library/mysql:5.7

4.1.3 開啟binlog

使用下面的命令動(dòng)態(tài)的開啟上述mysql實(shí)例的binlog

docker exec mysql57 bash -c "echo 'log-bin=/var/lib/mysql/mysql-bin' >> /etc/mysql/mysql.conf.d/mysqld.cnf"
docker exec mysql57 bash -c "echo 'server-id=123454' >> /etc/mysql/mysql.conf.d/mysqld.cnf"

4.1.4 重啟mysql實(shí)例

執(zhí)行下面命令重啟mysql

docker restart mysql57

4.1.5?驗(yàn)證binlog是否開啟

通過下面的命令檢查binlog是否開啟

show variables like '%log_bin%';

4.2 數(shù)據(jù)準(zhǔn)備

4.2.1 創(chuàng)建數(shù)據(jù)庫(kù)和表

創(chuàng)建數(shù)據(jù)庫(kù)

create database test default charset=utf8;

創(chuàng)建一張表

CREATE TABLE `tb_user` (`id` int(12) NOT NULL,`name` varchar(32) DEFAULT NULL,`age` int(12) DEFAULT NULL,`subject` varchar(32) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入一些初始數(shù)據(jù)

insert into tb_user values (1,'liubei',33,'java');
insert into tb_user values (2,'guanyu',32,'spark');
insert into tb_user values (3,'zhangfei',30,'python');
insert into tb_user values (4,'diaochan',18,'js');
insert into tb_user values (5,'daqiao',18,'js');

執(zhí)行完成后,檢查一下插入的數(shù)據(jù)

五、mysqldump實(shí)現(xiàn)數(shù)據(jù)增量備份與還原

mysqldump命令的介紹和使用就不再贅述了,網(wǎng)上資料非常多,接下來通過實(shí)際操作完整演示一下使用mysqldump完成表的增量備份與恢復(fù)的過程,整個(gè)操作流程如下:

  • 準(zhǔn)備數(shù)據(jù)(上面已經(jīng)完成);
  • 開啟二進(jìn)制(上面已經(jīng)完成),第一次做全量備份(全庫(kù)備份);
  • 繼續(xù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改操作;
  • 突然發(fā)生了硬件故障,數(shù)據(jù)庫(kù)丟失了(模擬故障);
  • 恢復(fù)全量備份導(dǎo)出的數(shù)據(jù)(不完整,可能只有90%);
  • 備份二進(jìn)制日志,根據(jù)其信息(導(dǎo)入剩余的10%的數(shù)據(jù));

5.1 全庫(kù)備份

在正式使用mysqldump進(jìn)行備份與還原操作之前,要確保你的mysql服務(wù)一定是開啟了mysql的二進(jìn)制日志,比如在上面操作完成之后,在數(shù)據(jù)目錄下能看到下面的文件

使用mysqldump命令執(zhí)行全庫(kù)備份

#全庫(kù)備份命令
mysqldump --single-transaction --flush-logs --source-data=2 --all-databases > /var/lib/mysql/sql-bk/all.sql -p

執(zhí)行完成后,可以看到如下的備份sql以及產(chǎn)生的日志數(shù)據(jù)

5.2 數(shù)據(jù)庫(kù)正常執(zhí)行增刪改查操作

假如緊接著又做了下面兩步操作,新增了一條數(shù)據(jù),刪除了一條數(shù)據(jù);

insert into tb_user values (6,'lvbu',28,'flink');
delete from tb_user where id = 3;

5.3 模擬數(shù)據(jù)庫(kù)發(fā)生故障

刪除數(shù)據(jù)庫(kù)

mysql -e "drop database test;" -p

5.4 備份最新的二進(jìn)制日志文件

找到最新的二進(jìn)制日志文件,進(jìn)行備份

cp /var/lib/mysql/binlog.000002 /var/lib/mysql/sql-bk

5.5 全庫(kù)恢復(fù)

使用上面的全庫(kù)sql進(jìn)行數(shù)據(jù)恢復(fù),執(zhí)行下面的命令

mysql < /var/lib/mysql/sql-bk/all.sql -p

執(zhí)行完成后,可以看到第一次的全量數(shù)據(jù)恢復(fù)了

5.6 通過binlog日志文件恢復(fù)剩下的數(shù)據(jù)

使用下面的binlog命令對(duì)當(dāng)前備份的binlog進(jìn)行查看

#查看最后備份的那個(gè)binlog日志文件
mysqlbinlog /var/lib/mysql/sql-bk/binlog.000002

#如果不方便查看,也可以輸出到文件中
mysqlbinlog /var/lib/mysql/sql-bk/binlog.000002 > log.txt

但是當(dāng)我們檢查binlog.000002文件內(nèi)容時(shí),起始位置是4

實(shí)際會(huì)發(fā)現(xiàn),這個(gè)日志文件的內(nèi)容可能很多,里面有很多內(nèi)容也是不需要關(guān)注的,需要重點(diǎn)關(guān)注的點(diǎn)有兩個(gè):

  • binlog內(nèi)容最開始執(zhí)行的位置;
  • 全量備份之后,開始執(zhí)行增刪改的位置,這個(gè)可以通過關(guān)鍵字定位,但是現(xiàn)實(shí)中不一定記得很清楚;
  • 刪庫(kù)時(shí)at 后面這個(gè)點(diǎn)對(duì)應(yīng)的數(shù)字;

事實(shí)上,做增量恢復(fù)也是結(jié)合上面幾個(gè)位置點(diǎn)為恢復(fù)依據(jù)的,然后就可以做基本的定位與恢復(fù),所以恢復(fù)的思路就是,如果能夠精確定位到增刪改的位置點(diǎn),從這里恢復(fù),如果不確定,就使用最開始的位置,使用下面的命令進(jìn)行恢復(fù);

mysqlbinlog --start-position=4 --stop-position=844 /var/lib/mysql/log-bk/binlog.000002 |mysql -p

執(zhí)行成功后,再次查詢數(shù)據(jù)表,可以看到數(shù)據(jù)已經(jīng)恢復(fù);

六、xtrabackup實(shí)現(xiàn)備份與恢復(fù)

6.1 xtrabackup簡(jiǎn)介

xtrabackup工具是percona公司用perl語言開發(fā)的在線物理熱備份工具,由于是采取物理拷貝的方式來做的備份,所以速度非???#xff0c;幾十G數(shù)據(jù)也才幾分鐘就搞定了,而它巧妙的利用了mysql特性做到了在線熱備份,不用像以前做物理備份那樣關(guān)閉數(shù)據(jù)庫(kù)才行,直接在線就能完成整庫(kù)或者是部分庫(kù)的全量備份和增量備份。

在安裝Xtrabackup之前,需要先下載滿足自己系統(tǒng)平臺(tái)的安裝包,下載鏈接:Software Downloads - Percona

6.1.1 xtrabackup優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  1. 備份過程快、可靠(因?yàn)槭俏锢韨浞?;

  2. 支持增量備份,更為靈活

  3. 備份過程不會(huì)打斷正在執(zhí)行的事務(wù)

  4. 能夠基于壓縮等功能節(jié)約磁盤空間和流量;

  5. 自動(dòng)實(shí)現(xiàn)備份檢驗(yàn);

  6. 還原速度快;

缺點(diǎn):

  1. 只能對(duì)innodb表增量備份,myisam表增量備份時(shí)是全備;

  2. innobackupex備份MyISAM表之前要對(duì)全庫(kù)進(jìn)行加READ LOCK,阻塞寫操作,若備份是在從庫(kù)上進(jìn)行的話會(huì)影響主從同步,造成延遲。對(duì)InnoDB表備份不會(huì)阻塞讀寫。

6.2? xtrabackup 備份過程

  • innobackupex首先會(huì)啟動(dòng)一個(gè)xtrabackup_log后臺(tái)檢測(cè)的進(jìn)程,實(shí)時(shí)檢測(cè)mysql的redo log的變化,一旦發(fā)現(xiàn)redo有新的日志寫入,立刻將日志寫入到日志文件xtrabackup_log中;
  • 物理拷貝innodb的數(shù)據(jù)文件和系統(tǒng)表空間文件idbdata1到對(duì)應(yīng)的以默認(rèn)時(shí)間戳為備份目錄的地方;
  • 復(fù)制結(jié)束后,執(zhí)行 flush table with read lock 操作進(jìn)行全庫(kù)鎖表準(zhǔn)備備份非InnoDB文件;
  • 物理復(fù)制.frm .myd .myi等非InnoDB引擎文件到備份目錄;
  • 查看二進(jìn)制日志的位置;
  • 解鎖表unlock tables;
  • 停止xtrabackup_log進(jìn)程;

根據(jù)上面的執(zhí)行原理,其完整的流程如下圖所示

6.3 xtrabackup備份與數(shù)據(jù)恢復(fù)原理

在mysql中,事務(wù)日志也叫redo日志,在mysql中默認(rèn)以ib_logfile0,ib_logfile1名稱存在。InnoDB內(nèi)部會(huì)維護(hù)一個(gè)redo日志文件,我們也可以叫做事務(wù)日志文件。事務(wù)日志會(huì)存儲(chǔ)每一個(gè)InnoDB表數(shù)據(jù)的記錄修改。當(dāng)InnoDB啟動(dòng)時(shí),InnoDB會(huì)檢查數(shù)據(jù)文件和事務(wù)日志,并執(zhí)行兩個(gè)步驟:它應(yīng)用(前滾)已經(jīng)提交的事務(wù)日志到數(shù)據(jù)文件,并將修改過但沒有提交的數(shù)據(jù)進(jìn)行回滾操作。

xtrabackup內(nèi)部就是利用了該日志可以完成數(shù)據(jù)的備份與恢復(fù),具體流程如下:

結(jié)合上面的流程圖,給出如下詳細(xì)的說明:

  1. xtrabackup啟動(dòng)時(shí)會(huì)記住log sequence number(LSN),并復(fù)制所有數(shù)據(jù)文件,復(fù)制過程需要一些時(shí)間,所以這期間如果數(shù)據(jù)文件有改動(dòng),那么將會(huì)使數(shù)據(jù)庫(kù)處于一個(gè)不同的時(shí)間點(diǎn)。這時(shí),xtrabackup會(huì)運(yùn)行一個(gè)后臺(tái)進(jìn)程,用于監(jiān)視事務(wù)日志,并從事務(wù)日志復(fù)制最新的修改。xtrabackup必須持續(xù)的做這個(gè)操作,是因?yàn)槭聞?wù)日志是會(huì)輪轉(zhuǎn)重復(fù)的寫入,并且事務(wù)日志可以被重用。所以xtrabackup自啟動(dòng)開始,就不停的將事務(wù)日志中每個(gè)數(shù)據(jù)文件的修改都記錄下來。
  2. 上面就是xtrabackup的備份過程,接下來是準(zhǔn)備(prepare)過程。在這個(gè)過程中,xtrabackup使用之前復(fù)制的事務(wù)日志,對(duì)各個(gè)數(shù)據(jù)文件執(zhí)行災(zāi)難恢復(fù)(就像MySQL剛啟動(dòng)時(shí)要做的一樣)。當(dāng)這個(gè)過程結(jié)束后,數(shù)據(jù)庫(kù)就可以做恢復(fù)還原了。
  3. 以上過程在xtrabackup編譯二進(jìn)制程序中實(shí)現(xiàn),程序innobackupex可以允許我們備份MyISAM表和frm文件從而增加了便捷和功能。Innobackupex會(huì)啟動(dòng)xtrabackup,直到xtrabackup復(fù)制數(shù)據(jù)文件后,然后執(zhí)行FLUSH TABLES WITH READ LOCK來阻止新的寫入進(jìn)來并把MyISAM表數(shù)據(jù)刷到硬盤上,之后復(fù)制MyISAM數(shù)據(jù)文件,最后釋放鎖。
  4. 備份MyISAM和InnoDB表最終會(huì)處于一致,在準(zhǔn)備(prepare)過程結(jié)束后,InnoDB表數(shù)據(jù)已經(jīng)前滾到整個(gè)備份結(jié)束的點(diǎn),而不是回滾到xtrabackup剛開始時(shí)的點(diǎn)。這個(gè)時(shí)間點(diǎn)與執(zhí)行FLUSH TABLES WITH READ LOCK的時(shí)間點(diǎn)相同,所以MyISAM表數(shù)據(jù)與InnoDB表數(shù)據(jù)是同步的。類似Oracle的recover和restore,InnoDB的prepare過程可以稱為recover(恢復(fù)),MyISAM的數(shù)據(jù)復(fù)制過程可以稱為restore(還原)。

Mysql5.7.3以后開啟二進(jìn)制日志需要加上server-id選項(xiàng),不然報(bào)錯(cuò)

6.4?xtrabackup 安裝流程

6.4.1 上傳安裝包

上傳安裝包到服務(wù)器(可在官網(wǎng)下載),主要包括下面兩個(gè)安裝包

6.4.2?使用rpm安裝

依次執(zhí)行下面的命令進(jìn)行安裝

yum -y install libev-4.15-3.el7.x86_64.rpm
yum -y install percona-xtrabackup-24-2.4.7-2.el7.x86_64.rpm
rpm -ql percona-xtrabackup-24

?安裝過程

看到上面的顯示說明安裝成功

七、xtrabackup 模擬全庫(kù)備份與恢復(fù)

7.1 實(shí)現(xiàn)思路

以上面的圖示業(yè)務(wù)場(chǎng)景為例,使用xtrabackup模擬全庫(kù)備份與恢復(fù)過程,完整實(shí)現(xiàn)思路如下:

  • 使用innobackupex對(duì)所有庫(kù)做全量備份,備份完成后,不能立即進(jìn)行數(shù)據(jù)恢復(fù)(此時(shí)數(shù)據(jù)不完整,缺少12:00 ~ 12:30這個(gè)過程中的數(shù)據(jù));
  • 預(yù)備階段,備份過程中產(chǎn)生的xtrabackup_log整合到全量備份集中;
  • 模擬故障(刪除數(shù)據(jù)) => rm -rf data/*;
  • 執(zhí)行全庫(kù)恢復(fù);
  • 測(cè)試驗(yàn)證數(shù)據(jù)是否恢復(fù);

7.2 數(shù)據(jù)準(zhǔn)備

創(chuàng)建一個(gè)新庫(kù),創(chuàng)建兩張表,一張引擎為innodb,另一張為myisam

mysql> create database db01 default charset=utf8;
mysql> use db01;
mysql> create table t1(id int,name varchar(10)) engine=myisam;
mysql> insert into t1 values (1,'jerry');
mysql> create table t2(id int,name varchar(10)) engine=innodb;
mysql> insert into t2 values (1,'mike');

7.3 準(zhǔn)備一個(gè)特殊賬號(hào)

準(zhǔn)備一個(gè)數(shù)據(jù)庫(kù)備份用的賬號(hào),開通與備份相關(guān)的權(quán)限;

mysql> grant reload,process,lock tables,replication client on *.* to 'admin'@'localhost' identified by '123';
mysql> flush privileges;

說明:

  • RELOAD和LOCK TABLES權(quán)限:為了執(zhí)行FLUSH TABLES WITH READ LOCK;
  • REPLICATION CLIENT權(quán)限:為了獲取binary log位置;
  • PROCESS權(quán)限:顯示有關(guān)在服務(wù)器中執(zhí)行的線程的信息(即有關(guān)會(huì)話執(zhí)行的語句的信息),允許使用SHOW ENGINE;

7.4?全庫(kù)備份操作過程

7.4.1 執(zhí)行備份命令

innobackupex --user=admin --password=123 /sql-backup

說明: 備份目錄默認(rèn)會(huì)自動(dòng)創(chuàng)建,也可以手動(dòng)創(chuàng)建;

第一次運(yùn)行可能會(huì)報(bào)下面的錯(cuò):

出現(xiàn)以上問題的=主要原因在于我們的mysql.sock并不在/var/lib/mysql目錄下,為什么其會(huì)自動(dòng)連接/var/lib/mysql目錄下的mysql.sock呢?

  • 原因1:可能在/etc目錄下還有my.cnf文件,影響了innobackupex的執(zhí)行;
  • 原因2:innobackupex擁有自己的默認(rèn)配置,默認(rèn)讀取了/var/lib/mysql/mysql.sock文件;

提供兩種解決方案:

方案1:把你的套接字文件創(chuàng)建一個(gè)軟鏈接,放置于/var/lib/mysql/mysql.sock文件中

mkdir /var/lib/mysql
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

方案2:在innobackupex中添加一個(gè)-S選項(xiàng),執(zhí)行套接字

innobackupex -S /tmp/mysql.sock --user=admin --password=123 /sql-backup

我們使用方案2對(duì)全庫(kù)進(jìn)行備份命令,執(zhí)行上述的命令之后,可以看到詳細(xì)的備份過程

看到下面的執(zhí)行結(jié)果時(shí),說明備份完成

進(jìn)入到數(shù)據(jù)備份目錄下,可看到它根據(jù)時(shí)間戳生成了一個(gè)完整的備份目錄

7.4.2 預(yù)備階段,整合日志

把備份這段時(shí)間內(nèi)產(chǎn)生的日志整合到全量備份中 ,簡(jiǎn)單來說就是,在執(zhí)行備份這段時(shí)間中,可能產(chǎn)生了其他的操作,因此需要把這部分的日志數(shù)據(jù)整合到上述備份文件中。

innobackupex --user=admin --password=123 --apply-log /sql-backup/2023-09-06_07-35-18

7.4.3 模擬數(shù)據(jù)庫(kù)故障

刪除數(shù)據(jù)庫(kù) db01 或刪除data數(shù)據(jù)目錄

7.4.4 執(zhí)行數(shù)據(jù)庫(kù)恢復(fù)

執(zhí)行下面的命令進(jìn)行數(shù)據(jù)恢復(fù)

innobackupex --copy-back /sql-backup/2023-09-06_07-35-18

第一次恢復(fù)報(bào)錯(cuò):

出現(xiàn)以上問題的主要原因在于,innobackupex工具無法找到MySQL中的數(shù)據(jù)目錄

解決方案:把my.cnf配置文件傳遞給innobackupex,讓其自動(dòng)識(shí)別這個(gè)文件中的datadir

innobackupex --defaults-file=/etc/my.cnf --copy-back /sql-backup/2023-09-06_07-35-18

八、xtrabackup 模擬增量備份與恢復(fù)

8.1 增量備份概述

  • 增量備份有一個(gè)前提,就是必須有全量備份;
  • 增量備份是備份在全量備份完成后,數(shù)據(jù)庫(kù)的數(shù)據(jù)又有新的增刪改的這部分?jǐn)?shù)據(jù);

8.2 操作步驟

有了全量備份的操作經(jīng)驗(yàn),增量備份也就是按部就班操作即可。

8.2.1 準(zhǔn)備數(shù)據(jù)

create database xtra_test default charset utf8;use xtra_test;create table M(id int,name varchar(10))engine=myisam;create table I(id int,name varchar(10))engine=innodb;insert into M values(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e');insert into I values(11,'A'),(22,'B'),(33,'C'),(44,'D'),(55,'E');

8.2.2?執(zhí)行全庫(kù)備份

innobackupex --user=admin --password=123 /sql-back

8.2.3?整合中間日志

整合全備過程中產(chǎn)生的日志到全備文件

innobackupex --user=admin --password=123 --apply-log --redo-only /sql-back/2023-09-07_20-09-33/

選項(xiàng)說明:

  • --apply-log ,表示整合日志;
  • --redo-only? ?,表示只應(yīng)用已經(jīng)提交的事務(wù),不回滾未提交的事務(wù)(12:00 ~ 12:30)產(chǎn)生很多事務(wù)操作,事務(wù)處理=>開啟事務(wù),成功了提交事務(wù),寫入硬盤;失敗了回滾事務(wù),不寫入硬盤);

注意:如果已經(jīng)回滾了未提交事務(wù),那么就無法再應(yīng)用增量備份。?

8.2.4 做增量備份

假如全量備份之后,發(fā)生了一些增刪改操作,這部分新產(chǎn)生的數(shù)據(jù)還需要進(jìn)行備份,使用下面的命令進(jìn)行增量備份

innobackupex --user=admin --password=123 --incremental /incre_backup --incremental-basedir=/sql-back/2023-09-07_20-09-33/

選項(xiàng)說明:

  • --incremental 增量備份目錄;
  • --incremental-basedir 這個(gè)增量是相對(duì)于哪個(gè)全量的?;

8.2.5?數(shù)據(jù)文件整合

把增量備份產(chǎn)生的數(shù)據(jù)以及日志文件整合到全量備份中

innobackupex --user=admin --password=123 --apply-log /sql-back/2023-09-07_20-09-33 --incremental-dir=/incre_backup/2023-09-07_20-11-26

說明:

  • --redo-only除了最后一個(gè)不用加之外,其他的增量應(yīng)用都要加,最后一個(gè)應(yīng)用的時(shí)候可以直接進(jìn)入回滾未提交事務(wù)階段;如果加了也沒事,服務(wù)啟動(dòng)的時(shí)候會(huì)進(jìn)入recovery過程來回滾;
  • 應(yīng)用增量備份的時(shí)候只能按照備份的順序來應(yīng)用,如果應(yīng)用順序錯(cuò)誤,那么備份就不可用,如果無法確定順序,可以使用xtrabackup-checkpoints來確定順序。?

到此,增量備份就全部結(jié)束了!

8.2.6 模擬數(shù)據(jù)庫(kù)故障

刪除data數(shù)據(jù)目錄

關(guān)閉mysql服務(wù)

8.2.7 恢復(fù)數(shù)據(jù)

innobackupex --defaults-file=/etc/my.cnf --user=admin --password=123 --copy-back /sql-back/2023-09-07_20-09-33

恢復(fù)完成后,使用上面創(chuàng)建的mysq賬戶訪問,如果無法訪問,授權(quán)該賬戶對(duì)目錄操作權(quán)限

8.2.8 測(cè)試數(shù)據(jù)

九、寫在文末

本文通過兩種方式詳細(xì)總結(jié)了mysql增量備份的過程,篇幅較長(zhǎng),希望對(duì)你在日常的工作中有所幫助,本文到此結(jié)束,感謝觀看。

http://www.risenshineclean.com/news/31115.html

相關(guān)文章:

  • 旅游網(wǎng)站的導(dǎo)航怎么做陜西網(wǎng)站設(shè)計(jì)
  • 南寧網(wǎng)站建設(shè)醉懂網(wǎng)絡(luò)外鏈官網(wǎng)
  • 企業(yè)網(wǎng)站建設(shè)服務(wù)公司搜索引擎優(yōu)化工具
  • 北京建站推廣全網(wǎng)推廣公司
  • b2c網(wǎng)站怎么做google關(guān)鍵詞搜索技巧
  • 網(wǎng)站平臺(tái)免費(fèi)游戲推廣員每天做什么
  • 學(xué)校網(wǎng)站建設(shè)調(diào)研報(bào)告天津疫情最新情況
  • 做網(wǎng)站平臺(tái)營(yíng)銷網(wǎng)站建站公司
  • 哪些網(wǎng)站專門做細(xì)胞的好的搜索引擎推薦
  • wordpress評(píng)論框加游戲優(yōu)化大師官方下載
  • 中英網(wǎng)站開發(fā)青島官網(wǎng)seo方法
  • 網(wǎng)站測(cè)試頁(yè)面怎么做網(wǎng)站推廣途徑和推廣要點(diǎn)
  • 天津門戶網(wǎng)站開發(fā)國(guó)家免費(fèi)技能培訓(xùn)官網(wǎng)
  • 睢縣網(wǎng)站建設(shè)如何創(chuàng)建一個(gè)app平臺(tái)
  • 新公司注冊(cè)在哪個(gè)網(wǎng)站全國(guó)31省市疫情最新消息今天
  • 做網(wǎng)站用什么工具百度推廣四川成都地區(qū)服務(wù)中心
  • 做網(wǎng)站要學(xué)java嗎網(wǎng)站seo 工具
  • 新公司注冊(cè)工商核名系統(tǒng)網(wǎng)站優(yōu)化外包
  • 高端用戶群瀏覽網(wǎng)站石家莊網(wǎng)站seo
  • 西安手機(jī)網(wǎng)站建設(shè)公司排名查關(guān)鍵詞熱度的網(wǎng)站
  • 怎樣建立一個(gè)營(yíng)銷的公司網(wǎng)站抖音seo搜索優(yōu)化
  • 卓越 網(wǎng)站建設(shè) 深圳西鄉(xiāng)競(jìng)價(jià)托管
  • 電子商務(wù)網(wǎng)站規(guī)劃的原則是什么seo技術(shù)博客
  • 全國(guó)網(wǎng)站制作公司石家莊seo外包公司
  • 網(wǎng)站開發(fā)周期石家莊關(guān)鍵詞排名提升
  • 海淀網(wǎng)站建設(shè)公司廣告推廣賺錢
  • 佛山優(yōu)化網(wǎng)站排名收費(fèi)關(guān)鍵詞推廣優(yōu)化外包
  • 騰寧網(wǎng)絡(luò)做網(wǎng)站抖音seo怎么收費(fèi)
  • 學(xué)網(wǎng)絡(luò)推廣哪個(gè)培訓(xùn)機(jī)構(gòu)好windows優(yōu)化大師官方免費(fèi)下載
  • 用asp做網(wǎng)站怎么美觀seo網(wǎng)站關(guān)鍵詞快速排名