jlzzjlzz亚洲乱熟在线播放

系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 數據庫 > Mysql > 詳細頁面

MySQL pt-slave-restart工具的使用簡介

時間:2021-04-07來源:www.farandoo.com作者:電腦系統城

 在MySQL主從復制環境的搭建中,常常會遇到一種場景,主庫和從庫都要初始化用戶的賬號密碼,正常的情況下,需要在主庫和從庫都關閉session級別的binlog,然后再進行用戶信息導入。

    但是有時候會忽略關閉session級別binlog這個前置動作,例如在基于GTID的復制模式下,主從庫都直接導入了用戶的賬號密碼信息,主庫和從庫都將賬號密碼的事務記錄到了自己的GTID中,此時我們如果利用GTID的方式搭建復制,會出現報錯,因為從庫已經有賬號了,所以主庫上同步到從庫的用戶信息會出現報錯現象,提示用戶已經存在,這種情況下,我們需要在從庫跳過從主庫復制過來的創建用戶的SQL語句。

    在GTID模式下,通過下面的辦法可以跳過一個事務:

1
2
3
4
5
6
stop slave;
set gtid_next=xxxxx;
begin;
commit;
set gtid_next=automatic;
start slave;

但是在事務數很多的情況下,我們不能一個一個跳過,需要批量跳過同一個錯誤,這里有幾種方式可以進行處理;

MySQL復制問題的三個參數介紹 

分別是調整slave_skip_errors參數或者slave_exec_mode 參數

今天我們來看另外一種方法,就是利用pt-slave-restart工具來進行事務跳過,命令如下:

1 ./pt-slave-restart -uroot -proot123 --error-numbers=1062

命令很容易理解,寫清楚錯誤編碼,直接跳過就行,它會打印出來很多信息,默認情況下打印內容為:時間戳、連接信息、中繼日志文件、中繼日志位置以及上一個錯誤號。例如:

2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root relay-bin.000005         369 1032 
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root relay-bin.000005         726 1032 
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root relay-bin.000005        1085 1032 
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root relay-bin.000005        1444 1032 
2020-09-22T00:59:09 P=3306,h=192.168.7.194,p=...,u=root relay-bin.000005        1800 1032

你可以使用--verbose選項添加更多信息,也可以使用--quiet選項阻止所有輸出。

注意事項:

當采用多線程復制(slave_parallel_workers > 0)時,pt-slave-restart不能跳過事務。pt-slave-restart不能確定GTID事件是哪個特定slave線程執行失敗的事務。

如果需要使用,請暫時關閉多線程復制的workers

關于pt-slave-restart的其他參數,可以使用pt-slave-restart --help的命令查看,也可以參考下面的常見參數列表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
--always        :永不停止slave線程,手工停止也不行
 
--ask-pass      :替換-p命令,防止密碼輸入被身后的開發窺屏
 
--error-numbers :指定跳過哪些錯誤,可用,進行分隔
 
--error-text    :根據錯誤信息進行匹配跳過
 
--log           :輸出到文件
 
--recurse       :在主端執行,監控從端
 
--runtime       :工具執行多長時間后退出:默認秒,m=minute,h=hours,d=days
 
--slave-user --slave-password :從庫的賬號密碼,從主端運行時使用
 
--skip-count    :一次跳過錯誤的個數,膽大的可以設置大些,不指定默認1個
 
--master-uuid   :級聯復制的時候,指定跳過上級或者上上級事務的錯誤
 
--until-master  :到達指定的master_log_pos,file位置后停止,格式:”file:pos“
 
--until-relay   :和上面一樣,但是根據relay_log的位置來停止

以上就是MySQL pt-slave-restart工具的使用簡介的詳細內容

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載