亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

初識MariaDB之4——Xtrabackup備份與還原

發布時間:2020-07-12 15:45:59 來源:網絡 閱讀:1673 作者:qiao645 欄目:MySQL數據庫

一、基礎知識

mysqldump是mysql自帶的一個單線程的邏輯備份工具,當數據量很大時,使用mysqldump備份的時間會非常長,且無法做增量備份,xtrabackup是一款基于底層塊復制、開源的備份工具,可以對數據庫在線實現備份。xtrabackup支持對Innodb和Xtradb存儲引擎的完全、增量和差異備份,對于不支持事物的MyISAM存儲引擎只能完全備份。

二、備份工具

初識MariaDB之4——Xtrabackup備份與還原初識MariaDB之4——Xtrabackup備份與還原

Xtrabackup工具用到的命令為xtrabackup和innobackupex,而innobackupex又是將xtrabackup使用perl腳本語言封裝的二次版本,其目的時為了便于使用

初識MariaDB之4——Xtrabackup備份與還原初識MariaDB之4——Xtrabackup備份與還原

本文重點介紹innobackupex為例,介紹完全備份、增量備份和差異備份

三、實驗說明

本次實驗采用CentOS7.4系統,數據庫版本為MariaDB 5.5.56,innobackupex 版本為2.3.6。

1.完全備份

(1)創建備份賬戶

MariaDB [hellodb]> grant all privileges on *.* to 'backup'@'localhost' identified by 'backuppassword';

MariaDB [hellodb]> flush privileges;

(2)創建備份目錄

[root@node1 ~]# mkdir -pv /data/back

[root@node1 ~]# chown -R mysql.mysql /data/back

(3)執行備份

innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backuppassword  /data/back

看到completed OK!提示后表示備份成功,上述命令還可以使用--databases="db1 db2"來備份制定的庫,或者使用--no-timestamp不自動生成時間戳

初識MariaDB之4——Xtrabackup備份與還原初識MariaDB之4——Xtrabackup備份與還原

(4)關閉數據庫服務,刪除數據,模擬數據庫損壞

[root@node1 back]# systemctl stop mariadb.service

(5)恢復前準備(將已提交的事物同步到磁盤,未提交的事務回滾)

innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backuppassword  --apply-log /data/back/2018-04-24_07-38-47/

(6)恢復數據(如果用root賬號操作,需要更改恢復后數據目錄的屬組和屬主)

innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backuppassword  --copy-back /data/back/2018-04-24_07-38-47/

(7)重啟數據庫服務,至此操作完成

2.增量備份

增量備份的實現是根據每一個Innodb頁都有一個log sequence number(LSN),當數據發生變化時,其所在的Innodb頁的LSN會自動增長,增量備份就是根據LSN的范圍序列實現備份,每次備份的LSN號可以在xtrabackup_checkpoints中查看。其備份的方式與全備略有不同,增量備份需要給予一個全被或者上一次增量來進行,具體步驟如下:

(1)創建一個完全備份

[root@node1 ~]# innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backuppassword  /data/back

(2)基于已創建的完全備份,做增量備份

[root@node1 ~]# innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backuppassword --incremental /data/incremental/ --incremental-basedir=/data/back/2018-04-25_06-32-18/

(3)基于已第一次創建的增量備份,做第二次增量備份(將--incremental-basedir指向完備份,則做的是差異備份)

[root@node1 ~]# innobackupex --defaults-file=/etc/my.cnf --user=backup --password=backuppassword --incremental /data/incremental/ --incremental-basedir=/data/incremental/2018-04-25_06-34-15/

(4)刪除數據庫文件,模擬故障(提前保存二進制文件,備份到故障發生點之間的還原還需要通過二進制文件)

[root@node1 ~]# cat /data/incremental/2018-04-25_06-39-57/xtrabackup_binlog_info

[root@node1 ~]# mysqlbinlog --start-position=1721 mysql-binlog.000002 > /data/incremental/binlog.sql

[root@node1 ~]# systemctl stop mariadb.service

[root@node1 ~]# rm -rf /var/lib/mysql*

(5)恢復前準備(出除最后一個增量外其他都需要使用--redo-only選項,其作用是不進行回滾操作,因為增量1中未提交的事務在增量2中可能會提交,所以不回滾。最后1個增量也可以用--redo-only選項,就算他不回滾,根據mariadb的crash-recover機制,啟動時也會回滾未提交事務)

[root@node1 ~]# innobackupex --apply-log --redo-only /data/back/2018-04-25_06-32-18/

[root@node1 ~]# innobackupex --apply-log --redo-only /data/back/2018-04-25_06-32-18/ --incremental-dir=/data/incremental/2018-04-25_06-34-15/

[root@node1 ~]# innobackupex --apply-log --redo-only /data/back/2018-04-25_06-32-18/ --incremental-dir=/data/incremental/2018-04-25_06-39-57/

[root@node1 ~]# chown -R mysql.mysql /var/lib/mysql

(6)恢復數據庫

[root@node1 ~]# innobackupex --copy-back  /data/back/2018-04-25_06-32-18/

[root@node1 ~]# mysql < /data/incremental/binlog.sql

補充說明:

1.xtrabackup是通過讀取LSN從而指導數據的更改的每一個innodb page頁的大小默認是16K,實際測試中發現,如果數據量變化很小,即使binlog中的position發生了變了,使用增量備份的時候LSN號不會發生變化,但是恢復后的數據是一致的

初識MariaDB之4——Xtrabackup備份與還原初識MariaDB之4——Xtrabackup備份與還原

2.在恢復增量備份的準備階段時--incremental-dir選項后面不能使用相對路徑,否則會提示找不到要恢復增量備份的xtrabackup_logfile


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

边坝县| 隆化县| 成都市| 昂仁县| 余庆县| 饶阳县| 开封县| 乐业县| 寻甸| 荔波县| 赞皇县| 平乡县| 通渭县| 孝昌县| 伊吾县| 无极县| 陆良县| 满洲里市| 长岛县| 太湖县| 邹城市| 和龙市| 吉木乃县| 澳门| 德格县| 聂荣县| 望城县| 锦屏县| 金川县| 鄂州市| 凤山市| 福安市| 徐州市| 阿鲁科尔沁旗| 东阳市| 延寿县| 姜堰市| 策勒县| 嘉祥县| 石阡县| 谢通门县|