Xtrabackup實現數據的備份與恢復-mysql

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/1sl4jByPblog

這種安裝方法比較簡單,只需下載相應的rpm安裝包安裝便可(注意根據提示安裝相應的依賴包)。其中須要的 libev.so.4() 安裝包: 進程

https://pan.baidu.com/s/1i4EZfwThttps://pan.baidu.com/s/1i4EZfwT

 

 

 

innobackupex參數介紹:

--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=數據庫名:使用這個參數,針對某個數據庫進行備份,若是不加這個參數默認就是所有的庫備份

備份階段

1:全量備份

innobackupex --defaults-file=/etc/my.cnf --user=root --password=root /opt/

2:第一次增量備份

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
image 
 
恢復階段:

1.第一次還原全量恢復

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --apply-log --redo-only /opt/2019-01-15_20-32-38

2.第二次還原增量恢復

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/

3.複製全部的備份到他們原來的位置

innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /opt/2019-01-15_20-32-38/

受權新data目錄的權限
chown -R mysql.mysql data

image

相關文章
相關標籤/搜索