中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

采用mydumper對MySQL部分數據庫進行熱備

發布時間:2020-05-11 22:58:48 來源:網絡 閱讀:406 作者:有功夫 欄目:數據庫

現有2DB服務器,分別用于A業務與B業務,其中A業務比較重要,需要對A業務的1個DB(TaeOss)進行熱備,大概有40G的數據,并用業務BDB服務器作為備機,服務器分布如下:

10.137.143.151     A業務

10.137.143.152     B業務

 

開發那邊的要求是:

在導出A業務的DBTaeOss時,不能對A業務有影響。同時在B業務的DB服務器上進行恢復時,也不能有較大影響,盡量控制在1分鐘以內。

 

采取的方案:

1mysqldump:屬于邏輯備份,會存在鎖表,但考慮到數據量比較大,鎖表的時間會比較長,業務不允許,pass掉;

2xtrabackup:屬于物理備份,不存在鎖表,但考慮到2DB使用的都是共享表空間,同時在業務B的數據庫進行恢復時,一是時間比較長,二是數據肯定不正確,pass掉(測試過);

3mydumper:屬于邏輯備份,是一個多線程、高性能的數據邏輯備份、恢復的工具,且鎖表的時間很短(40G數據,10分鐘以內),同時會記錄binlog filepos,業務可以接受。

 

mydumper主要有如下特性:

(1)、任務速度要比mysqldump6倍以上;

(2)、事務性和非事務性表一致的快照(適用于0.2.2以上版本)

(3)、快速的文件壓縮;

(4)、支持導出binlog

(5)、多線程恢復(適用于0.2.1以上版本)

(6)、以守護進程的工作方式,定時快照和連續二進制日志(適用于0.5.0以上版本)

 

mydumper安裝:

https://launchpad.net/mydumper/0.6/0.6.2/+download/mydumper-0.6.2.tar.gz

# yum install glib2-devel mysql-devel zlib-devel pcre-devel

# tar zxvf mydumper-0.6.2.tar.gz

# cd mydumper-0.6.2

# cmake .

# make

# make install

 

參數如下:

采用mydumper對MySQL部分數據庫進行熱備

 

由于DB是部署在比較老的SuSE Linux 10服務器上,安裝mydumper時依賴的庫比較多,會比較繁瑣,同時采用本地備份的話,也會占用大量的磁盤I/O,所以我們選擇在同網段的另一臺centos 6.410.137.143.156)服務器進行備份。

 

步驟如下:

1、在10.137.143.15110.137.143.152上對10.137.143.156進行臨時授權

# mysql -uroot -e "grant all privileges on *.* to 'backup'@'10.137.143.156' identified by 'backup2015';"

# mysql -uroot -e "flush privileges;"

 

2、在“10.137.143.156”上對“10.137.143.151”的DBTaeOss)進行備份

# mydumper -h 10.137.143.151 -u backup -p backup2015 -B TaeOss -t 8 -o /data/rocketzhang

 

3、將備份數據恢復到“10.137.143.152

# myloader -h 10.137.143.152 -u backup -p backup2015 -B TaeOss -t 8 -o -d /data/rocketzhang

 

4、主從關系建立:10.137.143.151(主)、10.137.143.152(從)

在“10.137.143.151”建立授權賬號:

# mysql -uroot -e "grant replication slave on *.* to 'repl'@'10.137.143.152' identified by 'repl123456';"

# mysql -uroot -e "flush privileges;"

 

在“10.137.143.156”查看記錄下的binlog信息:

采用mydumper對MySQL部分數據庫進行熱備

 

在“10.137.143.152”如下操作:

# vim /etc/my.cnf

……

replicate-do-table = TaeOss.%

replicate-wild-do-table = TaeOss.%

……

 

# service mysqld reload

 

# mysql -uroot -e "change master to master_host='10.137.143.151',master_user='repl',master_password='repl123456',master_log_file='mysql-bin.002205',master_log_pos=456584891;"

# mysql -uroot -e "start slave;"

 

# mysql -uroot -e "show slave status\G;"

出現如下信息:

采用mydumper對MySQL部分數據庫進行熱備

看來是存在主鍵沖突,導致主從復制失敗。

 

問題分析:

在主DB10.137.143.151)上執行:

# mysqlbinlog --no-defaults -v -v --base64-output=DECODE-ROWS mysql-bin.002205 > mysql-bin.002205.txt

# grep -C 8 529864938 mysql-bin.002205.txt

采用mydumper對MySQL部分數據庫進行熱備

大概的意思是,在主DB上存在對t_evil_detect_uin_blacklist表的insert操作時,發生了主鍵沖突,當在從端進行同步的時候,也出現了主鍵沖突,從而導致主從同步失敗。

 

臨時的解決辦法:

導出從端的表TaeOss.t_evil_detect_uin_blacklist

# mysqldump -uroot --opt TaeOss t_evil_detect_uin_blacklist > TaeOss.t_evil_detect_uin_blacklist.sql

 

去掉TaeOss.t_evil_detect_uin_blacklist.sql其中的主鍵語句:

采用mydumper對MySQL部分數據庫進行熱備

 

然后再導入:

# mysql -uroot TaeOss < TaeOss.t_evil_detect_uin_blacklist.sql

 

# mysql -uroot -e "stop slave;"

# mysql -uroot -e "start slave;"

# mysql -uroot -e "show slave status\G;"

采用mydumper對MySQL部分數據庫進行熱備

 

向AI問一下細節

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

AI

建始县| 民勤县| 金川县| 阿坝县| 马尔康县| 仁怀市| 洪江市| 新源县| 古蔺县| 平定县| 泾源县| 固原市| 石屏县| 繁峙县| 南阳市| 昂仁县| 囊谦县| 汝阳县| 柳林县| 丹东市| 静安区| 井冈山市| 平乐县| 汉沽区| 收藏| 平凉市| 峨山| 育儿| 绥德县| 瓮安县| 临夏市| 崇文区| 南充市| 墨竹工卡县| 崇礼县| 五莲县| 孟连| 大邑县| 禹州市| 蕉岭县| 阳谷县|