溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用innobackupex完成數(shù)據(jù)增量備份及恢復(fù)的步驟

發(fā)布時間:2020-07-09 04:55:55 來源:網(wǎng)絡(luò) 閱讀:1254 作者:yang_hwei 欄目:MySQL數(shù)據(jù)庫

使用innobackupex完成數(shù)據(jù)增量備份及恢復(fù)的步驟

1. 規(guī)劃備份目錄及配置及my.cnf

mkdir /backup/mysql/full

mkdir /backup/mysql/daily1

mkdir /backup/mysql/daily2

2. 全備:

innobackupex --user=root --password=yhw0715/backup/mysql/full

查看備份完成后的文件:

shell > ls –l /backup/mysql/full

drwxr-x---. 27 root root 4096 Jun  8 20:48   2017-06-08_20-48-23 #在全備目錄下會生成以當(dāng)前日期為命名的文件夾

備份的文件:

shell > ls –l /backup/mysql/full/2017-06-08_20-48-23

drwxr-x---. 2 root root   4096Jun   8 20:48 test

-rw-r-----. 1 root root     722 Jun  8 20:48 ib_buffer_pool

-rw-r-----. 1 root root 79691776 Jun  8 21:07 ibdata1

-rw-r-----. 1 root root 50331648 Jun  8 21:07 ib_logfile0

-rw-r-----. 1 root root 50331648 Jun  8 21:07 ib_logfile1

-rw-r-----. 1 root root 12582912 Jun  8 21:07 ibtmp1

drwxr-x---. 2 root root    4096 Jun 8 20:48 mysql

drwxr-x---. 2 root root    4096 Jun 8 20:48 performance_schema

-rw-r-----. 1 root root      412 Jun 8 20:48 backup-my.cnf

-rw-r-----. 1 root root       24 Jun 8 20:48 xtrabackup_binlog_info

-rw-r--r--. 1 root root       24 Jun 8 21:07 xtrabackup_binlog_pos_innodb

-rw-r-----. 1 root root      115 Jun 8 21:07 xtrabackup_checkpoints

-rw-r-----. 1 root root      479 Jun 8 20:48 xtrabackup_info

-rw-r-----. 1 root root  8388608 Jun 8 21:07 xtrabackup_logfile

其中:

xtrabackup_binlog_info 記錄當(dāng)前備份結(jié)束時的binlog文件名及position,用于日后基于binlog日志恢復(fù)如mysqlbinlog –start-position=154 binlog.000001|mysql –uroot -p。

xtrabackup_binlog_pos_innodb : 沒太搞明白與xtrabackup_binlog_info的區(qū)別

xtrabackup_checkpoints 記錄備份完成時的LSN號,用于增量備份時基于此LSN進行檢查

xtrabackup_info(記錄備份過程的一些信息及binlog位置信息):

uuid = 82aa52a6-4cc6-11e7-bf24-000c29373cd3

name =

tool_name = innobackupex

tool_command = --user=root --password=.../backup/mysql/full/

tool_version = 2.4.1

ibbackup_version = 2.4.1

server_version = 5.7.17-log

start_time = 2017-06-08 20:48:24

end_time = 2017-06-08 20:48:33

lock_time = 0

binlog_pos = filename'slave-binlog.000001', position '154'

innodb_from_lsn = 0

innodb_to_lsn = 10490958

partial = N

incremental = N

format = file

compact = N

compressed = N

encrypted = N

xtrabackup_logfile在備份開始后,首先會記錄當(dāng)前的LSN,xtrabackup會開啟一個監(jiān)控線程,用于監(jiān)控redo log的變化(因在是熱備,可能會產(chǎn)生一些增量的數(shù)據(jù)),在備份結(jié)束后,將產(chǎn)生的redo log備份到xtrabackup_logfile中。在恢復(fù)將xtrabackup_logfile日志進行重做,以達到數(shù)據(jù)備份的一致性。

 

3. 增量備份

首先插入一些測試數(shù)據(jù)insert into test values(‘a(chǎn)6’);

增量1

innobackupex --user=root --password=yhw0715--incremental-basedir=/backup/mysql/full/2017-06-07_23-04-50 --incremental/backup/mysql/daily1

 

再插入一些測試數(shù)據(jù)insert into test values(‘a(chǎn)6’);

增量2

innobackupex --user=root --password=yhw0715--incremental-basedir=/backup/mysql/daily1/2017-06-07_23-13-23/ --incremental/backup/mysql/daily2

 

4. 恢復(fù)全備

innobackupex --user=root --password=yhw0715--apply-log --redo-only /backup/mysql/full/2017-06-07_23-04-50

 

恢復(fù)增量1

innobackupex --user=root --password=yhw0715--apply-log --redo-only /backup/mysql/full/2017-06-07_23-04-50--incremental-dir=/backup/mysql/daily1/2017-06-07_23-13-23/

 

恢復(fù)增量2(不需要加--redo-only)

innobackupex --user=root --password=yhw0715--apply-log /backup/mysql/full/2017-06-07_23-04-50--incremental-dir=/backup/mysql/daily2/2017-06-07_23-20-31

 

將合并完的數(shù)據(jù),整體做一次apply-log

innobackupex --user=root --password=yhw0715--apply-log /backup/mysql/full/2017-06-07_23-04-50

 

5. 拷貝備份文件到data目錄下:

  5.1.stop mysqld

     /etc/init.d/mysqld stop

  5.2.備份原數(shù)據(jù)目錄

     mv /usr/local/mysql/data/usr/local/mysql/data_bak

  5.3.創(chuàng)建data目錄

mkdir /usr/local/mysql/data -p

  5.4.拷貝備份到/usr/local/mysql/data

      innobackupex --user=root --password=yhw0715--copy-back /backup/mysql/full/2017-06-07_23-04-50

  5.5.設(shè)置權(quán)限

      chown -R mysql:mysql /usr/local/mysql/data

  5.6.啟動mysqld

      /etc/init.d/mysqld start

6. 測試是否恢復(fù)成功

從以下查詢結(jié)果看,數(shù)據(jù)恢復(fù)成功了

mysql> select * from test where account='a5' or account='a6';

+---------+

| Account |

+---------+

| a5     |

| a6     |

+---------+

2 rows in set (0.00 sec)

7. innobackupex主要參數(shù)說明

--user 備份數(shù)據(jù)庫的用戶名

--password 備份用戶密碼

--default-file 備份時指定my.cnf文件路徑,如果未指定默認/etc/my.cnf

--apply-log xtrabackup –prepare參數(shù)的封裝

--redo-only apply-log 一起使用,在做備份恢復(fù)階段,重做日志時,只重做已提交日志,rollback未提交的日志。

--copy-back 做數(shù)據(jù)恢復(fù)時,將數(shù)據(jù)文件拷貝到時mysqldata目錄下。

--use-memory 在做恢復(fù)操作時,控制innodb實例使用的內(nèi)存量。

--slave-info 主要用于基于現(xiàn)有的從庫,增加多個從庫的場景時使用,如果帶上此參數(shù),備份目錄下會多一個xtrabackup_slave_info文件,文件內(nèi)容保存現(xiàn)有從庫的主從信息,binlog文件及position,用于新從庫與主庫change master to 時使用。

 


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI