Xtrabackup 進行線上 MySQL 數(shù)據(jù)庫主從恢復(fù)

xtrabackup介紹

Percona XtraBackup(簡稱PXB)是 Percona 公司開發(fā)的一個用于 MySQL 數(shù)據(jù)庫物理熱備的備份工具,支持 MySQl(Oracle)祥诽、Percona Server 和 MariaDB,并且全部開源捣域,真可謂是業(yè)界良心。

xtrabackup命令參數(shù)解釋

--defaults-file
同xtrabackup的--defaults-file參數(shù)
--apply-log
對xtrabackup的--prepare參數(shù)的封裝
--copy-back
做數(shù)據(jù)恢復(fù)時將備份數(shù)據(jù)文件拷貝到MySQL服務(wù)器的datadir 斗忌;
--remote-host=HOSTNAME
通過ssh將備份數(shù)據(jù)存儲到進程服務(wù)器上能犯;
--stream=[tar]
備 份文件輸出格式, tar時使用tar4ibd , 該文件可在XtarBackup binary文件中獲得.如果備份時有指定--stream=tar, 則tar4ibd文件所處目錄一定要在$PATH中(因為使用的是tar4ibd去壓縮, 在XtraBackup的binary包中可獲得該文件)。
在 使用參數(shù)stream=tar備份的時候沈贝,你的xtrabackup_logfile可能會臨時放在/tmp目錄下杠人,如果你備份的時候并發(fā)寫入較大的話 xtrabackup_logfile可能會很大(5G+),很可能會撐滿你的/tmp目錄宋下,可以通過參數(shù)--tmpdir指定目錄來解決這個問題嗡善。
--tmpdir=DIRECTORY
當有指定--remote-host or --stream時, 事務(wù)日志臨時存儲的目錄, 默認采用MySQL配置文件中所指定的臨時目錄tmpdir
--redo-only
強制備份日志時只redo ,跳過rollback。這在做增量備份時非常必要学歧。
--use-memory=#
該參數(shù)在prepare的時候使用罩引,控制prepare時innodb實例使用的內(nèi)存量
--throttle=IOS
同xtrabackup的--throttle參數(shù)
--sleep=是給ibbackup使用的,指定每備份1M數(shù)據(jù)枝笨,過程停止拷貝多少毫秒袁铐,也是為了在備份時盡量減小對正常業(yè)務(wù)的影響,具體可以查看ibbackup的手冊 横浑;
--compress[=LEVEL]
對備份數(shù)據(jù)迚行壓縮剔桨,僅支持ibbackup,xtrabackup還沒有實現(xiàn)徙融;
--include=REGEXP
對 xtrabackup參數(shù)--tables的封裝洒缀,也支持ibbackup。備份包含的庫表欺冀,例如:--include="test."帝洪,意思是要備份 test庫中所有的表。如果需要全備份脚猾,則省略這個參數(shù);如果需要備份test庫下的2個表:test1和test2,則寫 成:--include="test.test1|test.test2"砚哗。也可以使用通配符龙助,如:--include="test.test"。
--databases=LIST
列出需要備份的databases蛛芥,如果沒有指定該參數(shù)提鸟,所有包含MyISAM和InnoDB表的database都會被備份;
--uncompress
解壓備份的數(shù)據(jù)文件仅淑,支持ibbackup称勋,xtrabackup還沒有實現(xiàn)該功能;
--slave-info
備 份從庫, 加上--slave-info備份目錄下會多生成一個xtrabackup_slave_info 文件, 這里會保存主日志文件以及偏移, 文件內(nèi)容類似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0
--socket=SOCKET
指定mysql.sock所在位置涯竟,以便備份進程登錄mysql.

恢復(fù)MySQL主從

數(shù)據(jù)庫主從因為各種原因斷了赡鲜,而且沒辦法恢復(fù)空厌。線上數(shù)據(jù)庫也不能停止。這時候想恢復(fù)主從關(guān)系就可以借助熱備份工具xtrabackup银酬。

第一步:備份線上數(shù)據(jù)庫

[root@ddz_db5 data]# innobackupex --slave-info /data/

如果沒有指定備份目錄嘲更,xtrabackup會在當前目錄自動生成以當前時間命名的備份文件夾。100G數(shù)據(jù)用時在半小時左右揩瞪。

[root@ddz_db5 data]# ll
drwxr-x--- 5 root  root     4096 May 27 10:16 2017-05-27_09-57-24
drwxr-xr-x 5 mysql mysql    4096 May 27 16:40 mysql

第二步:xtrabackup --apply-log把已提交的事務(wù)合并到ibdata文件
這一步持續(xù)時間會很長赋朦,1小時左右。

[root@ddz_db5 data] xtrabackup --apply-log 2017-05-27_09-57-24
170527 11:10:23 innobackupex: Starting the apply-log operation

IMPORTANT: Please check that the apply-log run completes successfully.
           At the end of a successful apply-log run innobackupex
           prints "completed OK!".

innobackupex version 2.4.7 based on MySQL server 5.7.13 Linux (x86_64) (revision id: 6f7a799)
xtrabackup: cd to /data/2017-05-27_10-36-22/
xtrabackup: This target seems to be not prepared yet.
InnoDB: Number of pools: 1
xtrabackup: xtrabackup_logfile detected: size=822542336, start_lsn=(16153415803165)
xtrabackup: using the following InnoDB configuration for recovery:
xtrabackup:   innodb_data_home_dir = .
xtrabackup:   innodb_data_file_path = ibdata1:10M:autoextend
...

InnoDB: Highest supported file format is Barracuda.
InnoDB: Log scan progressed past the checkpoint lsn 16153415803165
InnoDB: Doing recovery: scanned up to log sequence number 16153421045760 (0%)
InnoDB: Doing recovery: scanned up to log sequence number 16153426288640 (1%)
InnoDB: Doing recovery: scanned up to log sequence number 16153431531520 (2%)
InnoDB: Doing recovery: scanned up to log sequence number 16153436774400 (2%)
InnoDB: Doing recovery: scanned up to log sequence number 16153442017280 (3%)
InnoDB: Doing recovery: scanned up to log sequence number 16153447260160 (4%)
InnoDB: Doing recovery: scanned up to log sequence number 16153452503040 (5%)
InnoDB: Doing recovery: scanned up to log sequence number 16153457745920 (5%)
InnoDB: Doing recovery: scanned up to log sequence number 16153462988800 (6%)
...
InnoDB: Doing recovery: scanned up to log sequence number 16153788440576 (50%)
InnoDB: Doing recovery: scanned up to log sequence number 16153793683456 (51%)
InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percent: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 
InnoDB: Apply batch completed
InnoDB: Doing recovery: scanned up to log sequence number 16153798926336 (52%)
InnoDB: Doing recovery: scanned up to log sequence number 16153804169216 (53%)

第三步:scp備份目錄到從機

[root@ddz_db5 data] scp -r 2017-05-27_09-57-24 slave:/data/

第四步:啟動從機的數(shù)據(jù)庫

[root@slave data] mv 2017-05-27_09-57-24 mysql
[root@slave data] service mysqld start

第五步:建立主從關(guān)系

[root@slave data] cat mysql/xtrabackup_binlog_info
mysqlbin-log.011197     1057212057
[root@slave data] mysql
...
mysql> change master to master_host='master',master_user='slave',master_password='slave',master_log_file='mysqlbin-log.011197',master_log_pos=1057212057;
mysql> start slave;

以上李破,不需要停止線上業(yè)務(wù)宠哄,成功恢復(fù)了主從關(guān)系。

熱備份數(shù)據(jù)庫

TODO

從熱備恢復(fù)數(shù)據(jù)

TODO

參考

https://www.percona.com
MySQL · 物理備份 · Percona XtraBackup 備份原理
mysql之使用xtrabackup進行物理備份嗤攻、恢復(fù)毛嫉、在線克隆從庫、在線重做主從
mysql innobackupex xtrabackup 大數(shù)據(jù)量 備份 還原

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屯曹,一起剝皮案震驚了整個濱河市狱庇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恶耽,老刑警劉巖密任,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異偷俭,居然都是意外死亡浪讳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門涌萤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淹遵,“玉大人,你說我怎么就攤上這事负溪⊥复В” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵川抡,是天一觀的道長辐真。 經(jīng)常有香客問我,道長崖堤,這世上最難降的妖魔是什么侍咱? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮密幔,結(jié)果婚禮上楔脯,老公的妹妹穿的比我還像新娘。我一直安慰自己胯甩,他們只是感情好昧廷,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布堪嫂。 她就那樣靜靜地躺著,像睡著了一般麸粮。 火紅的嫁衣襯著肌膚如雪溉苛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天弄诲,我揣著相機與錄音愚战,去河邊找鬼。 笑死齐遵,一個胖子當著我的面吹牛寂玲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播梗摇,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼拓哟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了伶授?” 一聲冷哼從身側(cè)響起断序,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糜烹,沒想到半個月后违诗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡疮蹦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年诸迟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愕乎。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡阵苇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出感论,到底是詐尸還是另有隱情绅项,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布比肄,位于F島的核電站趁怔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏薪前。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一关斜、第九天 我趴在偏房一處隱蔽的房頂上張望示括。 院中可真熱鬧,春花似錦痢畜、人聲如沸垛膝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吼拥。三九已至倚聚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凿可,已是汗流浹背惑折。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留枯跑,地道東北人惨驶。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像敛助,于是被迫代替她去往敵國和親粗卜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容