日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql256次利用_【案例】【MySQL】一次复杂的主从库数据不一致修复

發(fā)布時間:2024/1/23 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql256次利用_【案例】【MySQL】一次复杂的主从库数据不一致修复 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

修復(fù)操作之前,已寫好了修復(fù)操作方案、回滾方案和規(guī)避建議。但是修復(fù)過程中,發(fā)生了一些意料之外的狀況,根據(jù)實際情況不斷修改方案,直到完成預(yù)定目標(biāo)。

問題描述:

主庫已從2b切換到2a,在新主庫2a上查詢不到6月份和7月份的數(shù)據(jù),8月份1號-4號數(shù)據(jù)主從庫兩邊數(shù)據(jù)不一致,后續(xù)數(shù)據(jù)同步正常。

問題分析:

因為沒有有效監(jiān)控,主從機器都有發(fā)生磁盤滿,導(dǎo)致主庫從庫發(fā)生過頻繁切換,數(shù)據(jù)嚴重不一致。清理了過期數(shù)據(jù)騰出部分空間后,從8月5號開始數(shù)據(jù)正常同步。 原主庫2b上有6月份和7月份數(shù)據(jù),沒有同步到2a上。

解決過程

目標(biāo):

把差異數(shù)據(jù)都匯集到2b上,讓2b擁有最齊全的數(shù)據(jù),然后切換2b為主庫,再以2b

為基準(zhǔn),重做2a從庫,建立主從同步復(fù)制關(guān)系。

一. 查看2a和2b磁盤空間是否充足

in 2a,2b:

df -h

/dev/mapper/vg_dbdata-lv_workdbs 987G 404G 535G 44% /opt/mysql/data/workdbs

/dev/mapper/vg_dblog-lv_binlog 375G 618M 356G 1% /opt/mysql/data/binlog

/dev/mapper/vg_dbdata-lv_tmp 79G 56M 75G 1% /opt/mysql/data/tmp

/dev/mapper/vg_dblog-lv_log 40G 72M 38G 1% /opt/mysql/data/log

/dev/mapper/vg_backup-lv_backup 99G 11G 83G 12% /opt/mysql/data/backup

/dev/mapper/vg_dbsys-lv_undo 99G 512M 93G 1% /opt/mysql/data/undo

/dev/mapper/vg_dbsys-lv_redo 40G 8.1G 30G 22% /opt/mysql/data/redo

二.操作前做好操作表的數(shù)據(jù)備份,2a和2b上的ef_fhk_4q_202008,導(dǎo)出

in 2a,2b:

#mysqldump -uroot -p --set-gtid-purged=off fhk_601 ef_fhk_4q_202008>/opt/mysql/data/backup/import_export/ef_fhk_4q_202008.sql

三.在2a(主庫)上,創(chuàng)建表ef_fhk_4q_202008_2a_1_4,插入原表8月1號-4號的記錄。 根據(jù)同步原理,在2b上發(fā)現(xiàn)新表ef_fhk_4q_202008_2a_1_4已同步過來

use fhk_601;

create table ef_fhk_4q_202008_2a_1_4 like ef_fhk_4q_202008;

insert into ef_fhk_4q_202008_2a_1_4 select * from ef_fhk_4q_202008 where START_DATE>='2020-08-01 00:00:00' and START_DATE<='2020-08-04 23:59:59';

commit;

select count(*) from ef_fhk_4q_202008_2a_1_4;

四.在2b(從庫),比較新表ef_fhk_4q_202008_2a_1_4數(shù)據(jù)跟表ef_fhk_4q_202008的8月1號-4號的記錄數(shù)據(jù)。不存在ef_fhk_4q_202008表的8月1號-4號的記錄數(shù)據(jù),從ef_fhk_4q_202008_2a_1_4插入ef_fhk_4q_202008,這樣ef_fhk_4q_202008匯合了全部8月1號-4號數(shù)據(jù)。

set sql_log_bin=off;

set super_read_only=off;

select count(*) from ef_fhk_4q_202008_2a_1_4 where FHK_ID not in (select FHK_ID from ef_fhk_4q_202008 where START_DATE>='2020-08-01 00:00:00' and START_DATE<='2020-08-04 23:59:59');

insert into ef_fhk_4q_202008 select * from ef_fhk_4q_202008_2a_1_4 where FHK_ID not in (select FHK_ID from ef_fhk_4q_202008 where START_DATE>='2020-08-01 00:00:00' and START_DATE<='2020-08-04 23:59:59');

commit;

set super_read_only=on;

set sql_log_bin=on;

后來執(zhí)行到第三步遇到了問題:

create table ef_fhk_4q_202008_2a_1_4 like ef_fhk_4q_202008; 卡死,堵住,直到超時

查詢Mysql當(dāng)時會話情況:

select * from information_schema.processlist where command != 'Sleep' order by time desc; 也卡住

監(jiān)控系統(tǒng)不斷警報繁忙。Ctrl+C中斷SQL后

顯示ERROR 2013 (HY000): Lost connection to MySQL server during query

創(chuàng)建的表已存在,但是訪問出錯

mysql> select * from ef_fhk_4q_202008_2a_1_4;

ERROR 1030 (HY000): Got error 122 from storage engine

表無效,drop掉

mysql> drop table ef_fhk_4q_202008_2a_1_4;

懷疑主庫創(chuàng)建表存儲有點問題,改變思路,不在主庫上操作,改到從庫。先從2a(主庫)導(dǎo)出數(shù)據(jù),到2b(從庫)上導(dǎo)入和合并數(shù)據(jù)

in 2a(主庫):

mysqldump -uroot -p --set-gtid-purged=off fhk_601 ef_fhk_4q_202008 --where=“START_DATE>='2020-08-01 00:00:00' and START_DATE<='2020-08-04 23:59:59'“ >/opt/mysql/data/backup/import_export/ef_fhk_4q_202008_2a_1_4.sql

scp ef_fhk_4q_202008_2a_1_4.sql to 2b

in 2b(從庫):

chown mysql.msyql ef_fhk_4q_202008_2a_1_4.sql

set sql_log_bin=off;

set global super_read_only=off;

create database fhk_601_2b;

use fhk_601_2b;

source /opt/mysql/data/backup/2a_backup/ef_fhk_4q_202008_2a_1_4.sql;

alter table ef_fhk_4q_202008 rename to fhk_601.ef_fhk_4q_202008_2a_1_4;

stop slave;

use fhk_601;

insert into ef_fhk_4q_202008 select * from ef_fhk_4q_202008_2a_1_4 where FHK_ID not in (select FHK_ID from ef_fhk_4q_202008 where START_DATE>='2020-08-01 00:00:00' and START_DATE<='2020-08-04 23:59:59');

Query OK, 4466326 rows affected (24 min 3.27 sec)

Records: 4466326 Duplicates: 0 Warnings: 0

注:成功插入4466326條差異數(shù)據(jù)。

commit;

start slave;

五.切換主庫到2b

六.以2b(主庫)為基準(zhǔn),把整個2b(主庫)全量物理備份到2a(從庫),原2a數(shù)據(jù)刪除,重做從庫,配置主從同步復(fù)制關(guān)系

1.查看空間是否足夠

df -h

2.全量備份主庫

現(xiàn)網(wǎng)空間不足,所以采用壓縮方式備份,而且是最高極限壓縮

in 2b(主庫):

mysqlbackup --user=root --password=XXXXXXXX --backup-dir=/opt/mysql/data/backup --backup-image=./dball.mbi --with-timestamp --compress-level=9 --compress-method=zlib --skip-binlog --skip-relaylog backup-to-image

scp dball.mbi root@8.11.111.112:/opt/mysql/data/backup

3.從庫全量數(shù)據(jù)恢復(fù)

in 2a(從庫):

chown mysql.mysql dball.mbi

su - mysql

mysql.server stop

cd /opt/mysql/data/undo

rm -rf *

cd /opt/mysql/data/redo

rm -rf *

cd /opt/mysql/data/workdbs

rm -rf *

mysqlbackup --backup-image=/opt/mysql/data/backup/dball.mbi --backup-dir=/opt/mysql/data/backup --uncompress copy-back-and-apply-log --force

恢復(fù)全量備份的命令操作,在其他環(huán)境多次使用,都是正確的,但是在這次恢復(fù)的過程中,遇到了問題:

先是解壓拷貝文件

最后apply-log,發(fā)現(xiàn)有問題

InnoDB: Progress in percent: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 不斷循環(huán)

200901 12:43:51 MAIN INFO: MySQL server version is ‘5.7.21-SR1-enterprise-commercial-advanced-log’

200901 12:43:51 MAIN INFO: Restoring …5.7.21-SR1-enterprise-commercial-advanced-log version

200901 12:43:51 MAIN INFO: Creating 12 buffers each of size 65680.

200901 12:43:51 MAIN INFO: Apply-log operation starts with following threads

1 read-threads 1 process-threads 6 apply-threads

200901 12:43:51 MAIN INFO: Using up to 100 MB of memory.

200901 12:43:51 MAIN INFO: ibbackup_logfile’s creation parameters:

start lsn 2273308335616, end lsn 2274706102651,

start checkpoint 2273308336024.

200901 12:46:26 ALW2 INFO: A thread created with Id ‘46986332837632’

200901 12:46:26 ALW3 INFO: A thread created with Id ‘46986330736384’

200901 12:46:26 ALW6 INFO: A thread created with Id ‘46986324432640’

200901 12:46:26 PCR1 INFO: A thread created with Id ‘46986320230144’

200901 12:46:26 ALW4 INFO: A thread created with Id ‘46986328635136’

200901 12:46:26 RDR1 INFO: A thread created with Id ‘46986322331392’

200901 12:46:26 ALW5 INFO: A thread created with Id ‘46986326533888’

200901 12:46:26 ALW1 INFO: A thread created with Id ‘46986334938880’

200901 12:46:26 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273313578496.

200901 12:46:27 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273318821376.

200901 12:46:27 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273324064256.

200901 12:46:27 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273329307136.

200901 12:46:27 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273334550016.

200901 12:46:27 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273339792896.

200901 12:46:27 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273345035776.

200901 12:46:27 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273350278656.

200901 12:46:27 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273355521536.

200901 12:46:27 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273360764416.

200901 12:46:27 PCR1 INFO: 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

200901 16:46:15 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273366007296.

200901 16:46:15 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273371250176.

200901 16:46:15 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273376493056.

200901 16:46:15 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273381735936.

200901 16:46:15 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273386978816.

200901 16:46:15 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273392221696.

200901 16:46:15 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273397464576.

200901 16:46:15 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273402707456.

200901 16:46:15 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273407950336.

200901 16:46:15 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273413193216.

200901 16:46:15 PCR1 INFO: 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

200901 20:11:21 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273418436096.

200901 20:11:21 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273423678976.

200901 20:11:21 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273428921856.

200901 20:11:21 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273434164736.

200901 20:11:21 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273439407616.

200901 20:11:21 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273444650496.

200901 20:11:22 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273449893376.

200901 20:11:22 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273455136256.

200901 20:11:22 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273460379136.

200901 20:11:22 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273465622016.

200901 20:11:22 PCR1 INFO: 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

200901 23:15:11 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273470864896.

200901 23:15:11 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273476107776.

200901 23:15:11 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273481350656.

200901 23:15:12 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273486593536.

200901 23:15:12 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273491836416.

200901 23:15:12 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273497079296.

200901 23:15:12 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273502322176.

200901 23:15:12 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273507565056.

200901 23:15:12 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273512807936.

200901 23:15:12 RDR1 Progress in MB: 200

200901 23:15:12 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273518050816.

200901 23:15:12 PCR1 INFO: 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

200902 02:02:50 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273523293696.

200902 02:02:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273528536576.

200902 02:02:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273533779456.

200902 02:02:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273539022336.

200902 02:02:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273544265216.

200902 02:02:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273549508096.

200902 02:02:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273554750976.

200902 02:02:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273559993856.

200902 02:02:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273565236736.

200902 02:02:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273570479616.

200902 02:02:51 PCR1 INFO: 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

200902 04:33:22 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273575722496.

200902 04:33:23 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273580965376.

200902 04:33:23 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273586208256.

200902 04:33:23 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273591451136.

200902 04:33:23 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273596694016.

200902 04:33:23 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273601936896.

200902 04:33:23 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273607179776.

200902 04:33:23 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273612422656.

200902 04:33:23 PCR1 INFO: 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

200902 06:12:50 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273617665536.

200902 06:12:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273622908416.

200902 06:12:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273628151296.

200902 06:12:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273633394176.

200902 06:12:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273638637056.

200902 06:12:51 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273643879936.

200902 06:12:52 PCR1 INFO: InnoDB: Doing recovery: scanned up to log sequence number 2273649122816.

200902 06:12:52 PCR1 INFO: InnoDB: Starting an apply batch of log records to the database…

跑了24小時,還在不斷循環(huán)讀log sequence number,無法生成redo文件。

第二天,再跑一次,問題依舊

第三天,懷疑磁盤存儲有問題,壞道或者慢盤。打算把全備image文件復(fù)制到其他目錄

cp /opt/mysql/data/binlog/dball.mbi /opt/mysql/data/backup

清空數(shù)據(jù),再來一次

cd /opt/mysql/data/undo

ll

rm -rf *

cd /opt/mysql/data/redo

ll

rm -rf *

cd /opt/mysql/data/workdbs

ll

rm -rf *

只有數(shù)據(jù)目錄workdbs有足夠空間。借用數(shù)據(jù)目錄空間,在里面新建目錄,先執(zhí)行image文件全量解壓到目錄,再apply-log

mkdir /opt/mysql/data/workdbs/backup

mysqlbackup --backup-dir=/opt/mysql/data/workdbs/backup --backup-image=/opt/mysql/data/backup/dball.mbi image-to-backup-dir

mysqlbackup --backup-dir=/opt/mysql/data/workdbs/backup --uncompress apply-log

200904 13:35:43 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 13:35:43 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 13:35:45 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 13:35:45 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 13:35:47 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 13:35:47 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 13:35:49 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 13:35:49 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 13:35:51 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 13:35:51 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 13:35:53 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 13:35:53 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 13:35:56 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 13:35:56 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 13:35:58 PCR1 INFO: We were able to parse ibbackup_logfile up to

lsn 2274706102651.

200904 13:35:58 PCR1 INFO: Last MySQL binlog file position 0 727394712, file name mysql-bin.000549

200904 13:35:58 PCR1 INFO: The first data file is ‘/opt/mysql/data/workdbs/backup/datadir/ibdata1’

and the new created log files are at ‘/opt/mysql/data/workdbs/backup/datadir’

200904 13:35:58 MAIN INFO: Apply-log operation completed successfully.

200904 13:35:58 MAIN INFO: Full backup prepared for recovery successfully.

mysqlbackup completed OK!

mysql@rrsdb2a:~>

成功apply-log了,開始拷貝回數(shù)據(jù)

mysqlbackup --backup-dir=/opt/mysql/data/workdbs/backup copy-back --force

mysqlbackup completed OK!

成功全量恢復(fù)!

4.從庫增量數(shù)據(jù)恢復(fù)

前面因為apply-log失敗,折騰了幾天,目前恢復(fù)的全備是幾天前數(shù)據(jù),所以需要去備份這幾天的增量數(shù)據(jù)過來

in 2b(主庫):

mysqlbackup --user=root --password=XXXXXXX --incremental=optimistic --incremental-base=dir:/opt/mysql/data/binlog/2020-08-31_09-17-20 --backup-dir=/opt/mysql/data/binlog/ --backup-image=incremental_image4.mbi --with-timestamp --skip-binlog --skip-relaylog backup-to-image

200904 14:09:55 MAIN INFO: Image Path = /opt/mysql/data/binlog/2020-09-04_13-46-26/incremental_image4.mbi

200904 14:09:55 MAIN INFO: Backup contains changes from lsn 2274706102652 to lsn 2285329040425

200904 14:09:55 MAIN INFO: MySQL binlog position: filename mysql-bin.000561, position 928672897

mysqlbackup completed OK!

mysql@rrsdb2b:~>

增量備份完成!

查看之前全備的LSN位置

mysql@rrsdb2b:~/data/binlog/2020-08-31_09-17-20/meta> cat backup_variables.txt

[backup_variables]

apply_log_done=0

binlog_position=mysql-bin.000549:727394712

consistency_time_utc=1598868578674065

end_lsn=2274706102651

end_time_utc=1598868578681595

gtid_executed=7e631f40-d20b-11e7-bedd-fa163e2f43eb:1-51682279,8a2c650e-d20b-11e7-ad33-fa163e9fef2f:1-158641104:158641106-158641500:158641502-159133133:159133135-159133237:159133239-159133309:159133311-159133461:159133463-171037619:171037622-171037996:171037999-171038036:171038038-171038394:171038396-171052461:171052463-233470074:233470076-233470149:233470151-235190794:235190796-235190865:235190867-235191686:235191688-235191721:235191723-235191746:235191748-235192047:235192049-235192080:235192082-235192109:235192111-238672707:238672709-238672798:238672800-240852057:240852059-240852279:240852281-240855239:240855241-240858224:240858226-282962255:282962257-291985054:291985056-296532459:296532461-296586913

has_external_plugins=1

has_tde_tables=0

is_compressed=1

is_incremental=0

is_incremental_with_redo_log_only=0

is_onlyinnodb=0

is_partial=0

is_skip_unused_pages=0

meb_version=4.1.0

mysql_version=5.7.21-SR1-enterprise-commercial-advanced-log

start_lsn=2273308335616

start_time_utc=1598854640724531

mysql@rrsdb2b:~/data/binlog/2020-08-31_09-17-20/meta>

查看增量備份LSN位置

mysql@rrsdb2b:~/data/binlog/2020-09-04_13-46-26/meta> cat backup_variables.txt

[backup_variables]

apply_log_done=0

binlog_position=mysql-bin.000561:928672897

consistency_time_utc=1599217793024620

end_lsn=2285329040425

end_time_utc=1599217793031754

gtid_executed=7e631f40-d20b-11e7-bedd-fa163e2f43eb:1-52856158,8a2c650e-d20b-11e7-ad33-fa163e9fef2f:1-158641104:158641106-158641500:158641502-159133133:159133135-159133237:159133239-159133309:159133311-159133461:159133463-171037619:171037622-171037996:171037999-171038036:171038038-171038394:171038396-171052461:171052463-233470074:233470076-233470149:233470151-235190794:235190796-235190865:235190867-235191686:235191688-235191721:235191723-235191746:235191748-235192047:235192049-235192080:235192082-235192109:235192111-238672707:238672709-238672798:238672800-240852057:240852059-240852279:240852281-240855239:240855241-240858224:240858226-282962255:282962257-291985054:291985056-296532459:296532461-296586913

has_external_plugins=1

has_tde_tables=0

is_compressed=0

is_incremental=1

is_incremental_with_redo_log_only=0

is_onlyinnodb=0

is_partial=0

is_skip_unused_pages=0

mysql_version=5.7.21-SR1-enterprise-commercial-advanced-log

start_lsn=2274706102652

meb_version=4.1.0

start_time_utc=1599216386398910

mysql@rrsdb2b:~/data/binlog/2020-09-04_13-46-26/meta>

拷貝增量備份文件到從庫機器

scp /opt/mysql/data/binlog/2020-09-04_13-46-26/incremental_image4.mbi mysql@2a ip:/opt/mysql/data/backup

in 2a(從庫):

mkdir /opt/mysql/data/backup/incremental

互聯(lián)網(wǎng)上,無法完成增量備份為image文件的恢復(fù),必須恢復(fù)增量到全量(image解壓,需要足夠空間)上,再全量恢復(fù)數(shù)據(jù),官網(wǎng)資料沒有解答。

mysqlbackup --backup-dir=/opt/mysql/data/backup/incremental --backup-image=/opt/mysql/data/backup/incremental_image4.mbi image-to-backup-dir

mysqlbackup --backup-dir=/opt/mysql/data/backup/incremental apply-log

重點: 以下是我本人實踐成功的,經(jīng)過研究mysqlbackup幫助文檔,在已全量恢復(fù)的實例上,恢復(fù)增量image文件

mysqlbackup --backup-image=/opt/mysql/data/backup/incremental_image4.mbi --backup-dir=/opt/mysql/data/backup/incremental --incremental=optimistic copy-back-and-apply-log

100 200 300 400 500 600 700 800 900 1000

200904 14:56:48 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 14:56:48 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 14:56:50 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 14:56:50 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 14:56:52 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 14:56:52 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 14:56:54 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 14:56:54 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 14:56:56 PCR1 INFO: InnoDB: Setting log file size to 1073741824.

200904 14:56:56 PCR1 INFO: InnoDB: Progress in MB:.

100 200 300 400 500 600 700 800 900 1000

200904 14:56:59 PCR1 INFO: We were able to parse ibbackup_logfile up to

lsn 2285329040425.

200904 14:56:59 PCR1 INFO: Last MySQL binlog file position 0 928672897, file name mysql-bin.000561

200904 14:56:59 PCR1 INFO: The first data file is ‘/opt/mysql/data/workdbs/ibdata1’

and the new created log files are at ‘/opt/mysql/data/redo’

200904 14:56:59 MAIN INFO: MySQL server version is ‘5.7.21-SR1-enterprise-commercial-advanced-log’

200904 14:56:59 MAIN INFO: Restoring …5.7.21-SR1-enterprise-commercial-advanced-log version

200904 14:56:59 MAIN INFO: Apply-log operation completed successfully.

200904 14:56:59 MAIN INFO: Incremental backup applied successfully.

mysqlbackup completed OK! with 3 warnings

mysql@rrsdb2a:~/data/workdbs/backup/meta>

增量數(shù)據(jù)已恢復(fù)入從庫!

5.建立主從庫的同步復(fù)制關(guān)系

mysql.server start

mysql -uroot -p

reset slave all;

change master to master_host = '2b ip', master_port = 3310, master_user = 'rpl_user', master_password = 'XXXXXXXX', master_auto_position=1 for channel 'rpl1';

start slave;

show slave status\G;

成功同步

6.清理備份文件

cd /opt/mysql/data/workdbs

rm -rf backup

cd /opt/mysql/data/backup/import_export

rm -rf *

cd /opt/mysql/data/backup

rm -rf *.mbi

cd /opt/mysql/data/binlog

rm -rf *.mbi

回滾方案:

有備份了操作之前的2a和2b上的ef_fhk_4q_202008,若是需要回滾,可以刪除,導(dǎo)入備份。

后續(xù)規(guī)避建議:

1.做好主機和從機的數(shù)據(jù)庫的workdbs,binlog,log,tmp,undo等目錄的磁盤使用率監(jiān)控,使用率超過80%就要人工干預(yù)。

2.若是發(fā)生主從切換,主從不同步等情況,要有報警,報警需要人工進入查看干預(yù)。

總結(jié)

以上是生活随笔為你收集整理的mysql256次利用_【案例】【MySQL】一次复杂的主从库数据不一致修复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。