Xtrabackup介紹 mysql
Xtrabackup是由percona開源的免費數據庫熱備份軟件,它能對InnoDB數據庫和XtraDB存儲引擎的數據庫非阻塞地備份(對於MyISAM的備份一樣須要加表鎖);mysqldump備份方式是採用的邏輯備份,其最大的缺陷是備份和恢復速度較慢,若是數據庫大於50G,mysqldump備份就不太適合。 sql
備份原理 數據庫
備份開始時首先會開啓一個後臺檢測進程,實時檢測mysq redo的變化,一旦發現有新的日誌寫入,馬上將日誌記入後臺日誌文件xtrabackup_log中,以後複製innodb的數據文件一系統表空間文件ibdatax,複製結束後,將執行flush tables with readlock,而後複製.frm MYI MYD等文件,最後執行unlock tables,最終中止xtrabackup_log 服務器
xtrabackup增量備份的原理是: app
1)、首先完成一個徹底備份,並記錄下此時檢查點LSN; ssh
2)、而後增量備份時,比較表空間中每一個頁的LSN是否大於上次備份的LSN,如果則備份該頁並記錄當前檢查點的LSN。 socket
Xtrabackup安裝 日誌
l rpm 安裝(下載:https://pan.baidu.com/s/1sl4jByP) blog
這種安裝方法比較簡單,只需下載相應的rpm安裝包安裝便可(注意根據提示安裝相應的依賴包)。其中須要的 libev.so.4() 安裝包: 進程
https://pan.baidu.com/s/1i4EZfwThttps://pan.baidu.com/s/1i4EZfwT
--defaults-file=/etc/my.cnf:指定my.cnf配置文件位置
--user=root:指定連接數據庫的用戶名
--apply-log:對xtrabackup的—prepare參數的封裝
--copy-back:作數據恢復時把備份文件拷貝到mysql服務器的datadir目錄下
--remote-host:經過ssh將備份數據存儲到遠程的服務器上
--stream:經過指定的數據格式將備份的數據輸出到標準輸出
--tmpdir:當指定了—remote-host或者是—stream參數後,事務日誌須要臨時存儲到本地磁盤,此參數默認使用了mysql服務器的配置
--use-memory:此參數結合ibbackup使用,相似於xrtabackup的參數use-memory參數
--throttle=IOS:同xtrabackup的參數throttle
--sleep:是給ibbackup使用的,指定每備份1M數據,進程中止考唄多少秒,也是爲了減小對正常業務的影響,具體查看ibbackup的手冊
-compass:對備份的數據進行壓縮,僅僅支持ibbackup,xtrabackup尚未實現
--include=REGEXP對xtrabackup參數的封裝,也支持ibbackup;
--database=LIST :列出須要備份的databases,若是沒有制定該參數,則全部包含Myisam和innoDB表的database 都會被備份
--password="*****":訪問mysql的用戶口令,當mysql的root口令爲空時省略—password參數。
PORT=3306 :指定mysql監聽的端口
--slave-info:slave-info能夠記錄備份恢 復後,做爲slave須要的一些信息,根據這些信息,能夠很方便的利用備份來重作slave。
/mysql_backup:備份位置
--socket=SOCKET :mysql服務器的socket文件的位置
2>/mysql_backup/ innobackupex.log:記錄備份時的輸出
--databases=數據庫名:使用這個參數,針對某個數據庫進行備份,若是不加這個參數默認就是所有的庫備份
備份階段
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root /opt/
mysql> create database test123;
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --incremental-basedir=/opt/2019-01-15_20-32-38/ --incremental /opt/incremental
恢復階段:
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log --redo-only /opt/2019-01-15_20-32-38
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log --redo-only /opt/2019-01-15_20-32-38 --incremental-dir=/opt/incremental/2019-01-15_20-40-36/
innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /opt/2019-01-15_20-32-38/
受權新data目錄的權限
chown -R mysql.mysql data