mysql備份工具

來源:互聯網
上載者:User

標籤:mysql備份工具

                備份還原指令碼及工具

1)Xtrabackup實現是物理備份,而且是物理熱備

目前主流的有兩個工具可以實現物理熱備:ibbackup和xtrabackup;ibbackup是商業軟體,需要授權,非常昂貴。而xtrabackup功能比ibbackup還要強大,但卻是開源的。

2)Xtrabackup提供了兩種命令列工具:

xtrabackup:專用於備份InnoDB和XtraDB引擎的資料;

innobackupex:這是一個perl指令碼,在執行過程中會調用xtrabackup命令,這樣用該命令即可以實現備份InnoDB,也可以備份MyISAM引擎的對象。

二 示範步驟

首先 解壓安裝包

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/9B/77/wKioL1ljag3TCR2zAADpgCOaLAc658.png-wh_500x0-wm_3-wmp_4-s_3702938467.png" title="00.png" alt="wKioL1ljag3TCR2zAADpgCOaLAc658.png-wh_50" />

複製bin下的所有程式到/usr/bin

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/9B/78/wKiom1ljaimj7piCAAEPY5NnT_4034.png-wh_500x0-wm_3-wmp_4-s_1770430754.png" title="01.png" alt="wKiom1ljaimj7piCAAEPY5NnT_4034.png-wh_50" />

Xtrabackup中主要包含兩個工具:

xtrabackup:是用於熱備份innodb, xtradb表中資料的工具,支援線上熱備份,可以在不加鎖的情況下備份Innodb資料表,不過此工具不能操作Myisam引擎表;

innobackupex:是將xtrabackup進行封裝的perl指令碼,能同時處理Innodb和Myisam,但在處理Myisam時需要加一個讀鎖。

3)安裝外掛程式 使用yum

yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-TermReadKey.x86_64 perl-Digest-MD5–y

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/9B/78/wKiom1ljaknS_CFlAACTk2GxKUo604.png-wh_500x0-wm_3-wmp_4-s_1800789837.png" title="02.png" alt="wKiom1ljaknS_CFlAACTk2GxKUo604.png-wh_50" />

方案一:xtrabackup完全備份+binlog增量備份

       建立備份目錄

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M02/9B/78/wKiom1ljanKRo9NpAAA9TyGdiKk076.png-wh_500x0-wm_3-wmp_4-s_122212852.png" title="03.png" alt="wKiom1ljanKRo9NpAAA9TyGdiKk076.png-wh_50" />

完全備份

innobackupex --user=root --password=123456 /opt/mysqlbackup/full  出現OK 完成

註: --defaults-file=/etc/my.cnf 指定mysql的設定檔my.cfg,如果指定則必須是第一參數。

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/9B/78/wKiom1ljaoKR0Td1AAD4exkjArE864.png-wh_500x0-wm_3-wmp_4-s_3591546110.png" title="04.png" alt="wKiom1ljaoKR0Td1AAD4exkjArE864.png-wh_50" />

備份資料庫會會在備份目錄下建立當前日期為名字的目錄存放

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/9B/78/wKiom1ljaqOCzSkxAAGnRryd4yQ259.png-wh_500x0-wm_3-wmp_4-s_2678390836.png" title="05.png" alt="wKiom1ljaqOCzSkxAAGnRryd4yQ259.png-wh_50" />

檔案說明

(1)xtrabackup_checkpoints ——備份類型(如完全或增量)、備份狀態(如是否已經為prepared狀態)和LSN(記錄序號)範圍資訊;

每個InnoDB頁(通常為16k大小)都會包含一個記錄序號 (2)xtrabackup_binlog_info —— mysql伺服器當前正在使用的二進位記錄檔及至備份這一刻為止二進位日誌事件的位置。

(3)xtrabackup_binlog_pos_innodb ——二進位記錄檔及用於InnoDB或XtraDB表的二進位記錄檔的當前position。

(4)xtrabackup_binary ——備份中用到的xtrabackup的可執行檔;

(5)backup-my.cnf ——備份命令用到的配置選項資訊;

在使用innobackupex進行備份時,還可以使用--no-timestamp選項來阻止命令自動建立一個以時間命名的目錄。

注意:備份資料庫的使用者需要具有相應許可權,如果要使用一個最小許可權的使用者進行備份,則可基於如下命令建立此類使用者:

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/9B/78/wKiom1lja6Gi7kHEAABd1v7aln0269.png-wh_500x0-wm_3-wmp_4-s_1903764790.png" style="float:none;" title="06.png" alt="wKiom1lja6Gi7kHEAABd1v7aln0269.png-wh_50" />

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/9B/78/wKioL1lja6HjxlHCAACVdZdM_rk452.png-wh_500x0-wm_3-wmp_4-s_1837500055.png" style="float:none;" title="07.png" alt="wKioL1lja6HjxlHCAACVdZdM_rk452.png-wh_50" />

 至此全備完全成功,然後向mysql某個庫插入幾條資料,然後進行增量備份對完全備份的後資料庫更改進行二進位日誌增量備份:

查看完全備份時binlog日誌位置(position)

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/9B/78/wKioL1lja7zDKAEGAABhsKodGkc555.png-wh_500x0-wm_3-wmp_4-s_4103724672.png" title="08.png" alt="wKioL1lja7zDKAEGAABhsKodGkc555.png-wh_50" />

類比修改資料庫

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/9B/78/wKiom1lja92za93MAADuxaz22bU283.png-wh_500x0-wm_3-wmp_4-s_2516967524.png" title="09.png" alt="wKiom1lja92za93MAADuxaz22bU283.png-wh_50" />

增量備份二進位檔案

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/9B/78/wKiom1ljbBqjKrkcAABXx_pSz10257.png-wh_500x0-wm_3-wmp_4-s_840435778.png" title="10.png" alt="wKiom1ljbBqjKrkcAABXx_pSz10257.png-wh_50" />

2 還原資料庫二進位檔案

首先 類比吧data檔案刪除或者轉移,然後進行完全備份還原

innobakupex命令的--apply-log選項可用於實現上述功能。--apply-log指明是將日誌應用到資料檔案上,完成之後將備份檔案中的資料恢複到資料庫中:

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/9B/78/wKiom1ljbCyTWunvAACQI4rApIc770.png-wh_500x0-wm_3-wmp_4-s_544066306.png" title="11.png" alt="wKiom1ljbCyTWunvAACQI4rApIc770.png-wh_50" />

還原資料庫文法:

# innobackupex --copy-back /opt/mysqlbackup/full/2016-09-12_11-29-55/

這裡的--copy-back指明是進行資料恢複。資料恢複完成之後,需要修改相關檔案的許可權mysql資料庫才能正常啟動。

還原資料庫文法

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/9B/78/wKiom1ljbELAoJ0KAAEAj624ODE162.png-wh_500x0-wm_3-wmp_4-s_3820210386.png" title="12.png" alt="wKiom1ljbELAoJ0KAAEAj624ODE162.png-wh_50" />

data 已經成功還原  重新啟動mysql

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/9B/78/wKiom1ljbGbiEcPSAAHIV4tC_Bo491.png-wh_500x0-wm_3-wmp_4-s_2210115644.png" title="13.png" alt="wKiom1ljbGbiEcPSAAHIV4tC_Bo491.png-wh_50" />

需要確保所有資料檔案屬主和屬組

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M02/9B/78/wKiom1ljbHaDib28AADILIuuKss636.png-wh_500x0-wm_3-wmp_4-s_2749769940.png" title="14.png" alt="wKiom1ljbHaDib28AADILIuuKss636.png-wh_50" />

還原成功 但是增量備份還沒有成功

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/9B/78/wKioL1ljbIbD9Ic-AABwrGY3evg095.png-wh_500x0-wm_3-wmp_4-s_2680730154.png" title="15.png" alt="wKioL1ljbIbD9Ic-AABwrGY3evg095.png-wh_50" />

為了防止還原時產生大量的二進位日誌,在還原時可臨時關閉二進位日誌後再還原:

mysql> set sql_log_bin=0;

mysql> source /opt/mysqlbackup/inc/2016-09-12.sql

還原成功 資料成功恢複

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/9B/78/wKiom1ljbJbAQttGAACUSbE4Y10495.png-wh_500x0-wm_3-wmp_4-s_3265102602.png" title="16.png" alt="wKiom1ljbJbAQttGAACUSbE4Y10495.png-wh_50" />

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/9B/78/wKioL1ljbKPAT8w4AACQgy4TbLg812.png-wh_500x0-wm_3-wmp_4-s_2912350420.png" title="17.png" alt="wKioL1ljbKPAT8w4AACQgy4TbLg812.png-wh_50" />

重新啟動二進位日誌  set sql_log_bin=1;

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/9B/78/wKiom1ljbLiyx19JAAA5lQ38Cx4573.png-wh_500x0-wm_3-wmp_4-s_1565745056.png" title="18.png" alt="wKiom1ljbLiyx19JAAA5lQ38Cx4573.png-wh_50" />

本文出自 “chaixinwang” 部落格,請務必保留此出處http://chaixinwang.blog.51cto.com/13052229/1946081

mysql備份工具

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.