傳統複製常見錯誤及填坑方法
阿新 • • 發佈:2018-11-19
傳統複製常見錯誤及填坑方法
環境
1、表不存在導致插入更新失敗
1.1、模擬複製錯誤產生
1.1.1、生成測試表sbtest.test
1.1.2、在備庫上檢視是否同步test表
1.1.3、主庫上往test表中插入資料
1.1.4、檢視備庫複製情況
1.2、複製錯誤跳過
1.2.1、主庫上檢視event執行資訊
1.2.2、結合主備資訊跳過錯誤
1.2.3、手動補上資料
2、ERROR 1062 從庫插入了資料,主鍵重複
2.1、模擬錯誤產生
2.1.1、建立測試表sbtest.shuihuchuan
2.1.2、備庫上檢視同步情況
2.1.3、備庫上插入資料
2.1.4、主庫上插入資料
2.1.5、檢視備庫複製情況
2.2、主鍵重複錯誤解決
2.2.1、備庫上刪除重複主鍵的記錄
3、ERROR 1032 刪除或更新資料,從庫找不到記錄
3.1、Could not execute Delete_rows錯誤
3.1.1、模擬複製報錯
3.1.2、記錄已經不存在,直接跳過錯誤就可以
3.2、Could not execute Update_rows錯誤
3.2.1、模擬複製報錯
3.2.2、從庫恢復不存在的記錄,並解決錯誤
傳統複製常見錯誤及填坑方法
環境
- 主庫:IP:192.168.1.21;版本:5.7.18
- 備庫:IP:192.168.1.128;版本:5.6.36
- 主庫測試庫: sbtest
- 備庫配置:Replicate_Do_DB: sbtest
1、表不存在導致插入更新失敗
1.1、模擬複製錯誤產生
1.1.1、生成測試表sbtest.test
- 在指定的複製庫下生成測試表test。但,不在sbtest庫下操作,而選擇了在mysql庫下操作生成sbtest.test
#主庫上操作
mysql> use mysql
Database changed
mysql> create table sbtest.test ( id int );
Query OK, 0 rows affected (0.08 sec)
mysql> use sbtest;
Database changed
mysql> show tables;
+------------------+
| Tables_in_sbtest |
+------------------+
| sanguoyanyi |
| test |
| xiyouji |
+------------------+
3 rows in set (0.00 sec)
1.1.2、在備庫上檢視是否同步test表
#備庫上操作
[email protected] : sbtest 03:33:13> use sbtest;
Database changed
[email protected] : sbtest 03:41:18> show tables;
+------------------+
| Tables_in_sbtest |
+------------------+
| sanguoyanyi |
| xiyouji |
+------------------+
2 rows in set (0.00 sec)
[email protected] : sbtest 03:41:43> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.21
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000026
Read_Master_Log_Pos: 331
Relay_Log_File: mysql-relay-bin.000004
Relay_Log_Pos: 463
Relay_Master_Log_File: mysql-bin.000026
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: sbtest
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 331
Relay_Log_Space: 636
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 12001
Master_UUID: 0a646c88-36e2-11e7-937d-fa163ed7a7b1
Master_Info_File: mysql.slave_master_info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp: