亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

mysql GTID復制跳過復制錯誤的方式有哪些

發布時間:2021-11-06 17:23:55 來源:億速云 閱讀:295 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹mysql GTID復制跳過復制錯誤的方式有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1、從庫執行了事務,主庫執行語句時導致沖突:

解決辦法一:跳過錯誤(少數錯誤推薦)

(1)停止slave進程
(2)設置事務號,事務號從Executed_Gtid_Set事務號+1獲取,即跳過當前執行完成的下一條事務,在session里設置gtid_next,即跳過這個GTID
(3)執行空事物
(4)恢復自動事物號
(5)啟動slave進程

mysql> STOP SLAVE;
mysql> SET @@SESSION.GTID_NEXT= '8f9e146f-0a18-11e7-810a-0050568833c8:4';
mysql> BEGIN; COMMIT;
mysql> SET SESSION GTID_NEXT = AUTOMATIC;
mysql> START SLAVE;

解決辦法二:重置master方法跳過錯誤(不推薦,因為需要執行reset master;如果其他節點記錄有該實例的位點信息的話,切換時需要重新找位點)

mysql> STOP SLAVE;
mysql> RESET MASTER;
mysql> SET @@GLOBAL.GTID_PURGED ='8f9e146f-0a18-11e7-810a-0050568833c8:1-4';
mysql> START SLAVE;

上面這些命令的用意是,忽略8f9e146f-0a18-11e7-810a-0050568833c8:1-4 這個GTID事務,下一次事務接著從 5 這個GTID開始,即可跳過上述錯誤。

解決辦法三:使用pt-slave-restart工具,忽略特定錯誤,(沖突較多時可以使用,建議保留relaylog核對事務),

pt-slave-restart工具的作用是監視某些特定的復制錯誤,然后忽略,并且再次啟動SLAVE進程(Watch and restart MySQL replication after errors)。

pt-slave-restart工具原理初探
1、檢查版本信息和兼容性
set autocommit=1
SHOW VARIABLES LIKE 'wait\_timeout'
SET SESSION wait_timeout=10000
SELECT @@SQL_MODE
SET @@SQL_QUOTE_SHOW_CREATE = 1/*!40101, @@SQL_MODE='NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION'*/
SELECT @@SERVER_ID
SHOW SLAVE STATUS
SELECT CONCAT(@@hostname, @@port)
SHOW VARIABLES LIKE 'version%'
SHOW ENGINES
SHOW VARIABLES LIKE 'innodb_version'
SELECT @@GLOBAL.gtid_mode(是否開啟GTID決定跳過事務的方式)
SELECT @@GLOBAL.slave_parallel_workers AS threads(不支持并行復制)
2、檢查同步錯誤
SHOW SLAVE STATUS;
如果使用--error-numbers則檢查Last_SQL_Errno:錯誤號,判斷是否匹配;如果匹配繼續進行,不匹配不做任何操作
如果使用--error-text則檢查Last_SQL_Error:報錯內容,判斷是否匹配;如果匹配繼續進行,不匹配不做任何操作
3、跳過事務
SET GTID_NEXT='026b75e5-d99f-11e7-a343-000c29dc5f5c:2023';
set autocommit=0;
commit;
set autocommit=1;
SET GTID_NEXT='AUTOMATIC';
START SLAVE;
4、繼續判斷狀態,如果還有報錯繼續2,3,4步驟
SHOW SLAVE STATUS;

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.137.101
                  Master_User: repluser
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 3435
               Relay_Log_File: mysql-relay-bin.000016
                Relay_Log_Pos: 1026
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
  Replicate_Wild_Ignore_Table: passport.cooke,passport.user_token,sysbench_test.sbtest1,sysbench_test.sbtest_1
                   Last_Errno: 1062
                   Last_Error: Error 'Duplicate entry '9' for key 'PRIMARY'' on query. Default database: 'test'. Query: 'insert into backup_test (id,backup_que) values(9,'1_111')'
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 2856
              Relay_Log_Space: 2362
               Last_SQL_Errno: 1062
               Last_SQL_Error: Error 'Duplicate entry '9' for key 'PRIMARY'' on query. Default database: 'test'. Query: 'insert into backup_test (id,backup_que) values(9,'1_111')'
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1013307
                  Master_UUID: 026b75e5-d99f-11e7-a343-000c29dc5f5c
             Master_Info_File: mysql.slave_master_info
     Last_SQL_Error_Timestamp: 180504 11:58:07
           Retrieved_Gtid_Set: 026b75e5-d99f-11e7-a343-000c29dc5f5c:1004-2018
            Executed_Gtid_Set: 026b75e5-d99f-11e7-a343-000c29dc5f5c:1-2016,
5f5c73b5-2768-11e8-9e7e-000c298bd943:1-2997,
68be50a9-3ba1-11e8-a25d-000c298bd943:1-4
                Auto_Position: 1

[root@vm102 yum.repos.d]# pt-slave-restart  --user=mg -h227.0.0.1 -P3307 -p123qwe  --error-numbers=1062
2018-05-04T11:47:31 P=3307,h=127.0.0.1,p=...,u=mg mysql-relay-bin.000016         448 1062 
2018-05-04T11:47:31 P=3307,h=127.0.0.1,p=...,u=mg mysql-relay-bin.000016         737 1062 

[root@vm102 yum.repos.d]# pt-slave-restart  --user=mg -h227.0.0.1 -P3307 -p123qwe  --error-text="backup_test" 
2018-05-04T12:00:23 P=3307,h=127.0.0.1,p=...,u=mg mysql-relay-bin.000016        1026 1062 
2018-05-04T12:00:24 P=3307,h=127.0.0.1,p=...,u=mg mysql-relay-bin.000016        1315 1062 

參數解釋:
 --slave-password=s     Sets the password to be used to connect to the slaves
  --slave-user=s         Sets the user to be used to connect to the slaves
  --sleep=i              Initial sleep seconds between checking the slave ( default 1)
  --socket=s         -S  Socket file to use for connection=
--password=s       -p  Password to use when connecting
pt-slave-resetart  -S./mysql.sock —error-numbers=1032
 --error-numbers=h      Only restart this comma-separated list of errors
 --host=s           -h  Connect to host
 --user=s           -u  User for login if not current user

以上是“mysql GTID復制跳過復制錯誤的方式有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

如皋市| 蒲江县| 方山县| 迭部县| 澎湖县| 凤台县| 孟津县| 平武县| 开封县| 巴林右旗| 山阳县| 灵宝市| 衡东县| 双辽市| 时尚| 嘉峪关市| 宝兴县| 曲麻莱县| 齐齐哈尔市| 米易县| 达拉特旗| 漳浦县| 彭州市| 克山县| 如皋市| 洞头县| 钟山县| 永德县| 邹平县| 天柱县| 惠来县| 阿拉善左旗| 洛宁县| 安多县| 田阳县| 江油市| 罗山县| 鹰潭市| 昌平区| 钟山县| 二连浩特市|