MySQL主從修復
MySQL主從故障修復
測試庫:
192.168.1.2 主
192.168.1.3 從
192.168.1.4 主 4又是2的從庫
192.168.1.5 從
有人修改了192.168.1.2和192.168.1.3的資料庫引數後,重啟資料庫。
忘記了192.168.1.4又是192.168.1.2的從庫,導致192.168.1.2和192.168.1.4的主從斷掉。
並且在192.168.1.2上建立了新庫還原資料刪除等操作,導致192.168.1.4提示錯誤。
模擬如下:
透過從庫檢視主從狀態:
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.33.243
Master_User: master
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000006
Read_Master_Log_Pos: 303
Relay_Log_File: relay-log.000005
Relay_Log_Pos: 340
Relay_Master_Log_File: mysql-bin.000006
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB: test
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1049
Last_Error: Error 'Unknown database 'sakila'' on query. Default database: 'sakila'. Query: 'create table sakila (id int,name varchar(2))'
Skip_Counter: 0
Exec_Master_Log_Pos: 194
Relay_Log_Space: 745
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: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1049
Last_SQL_Error: Error 'Unknown database 'sakila'' on query. Default database: 'sakila'. Query: 'create table sakila (id int,name varchar(2))'
Replicate_Ignore_Server_Ids:
Master_Server_Id: 360360
1 row in set (0.00 sec)
記錄下二進位制日誌的和點的位置:
Relay_Master_Log_File: mysql-bin.000006
Exec_Master_Log_Pos: 194
停掉從庫的slave
mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)
並在主庫刪除掉新建的庫
mysql> drop database sakila;
Query OK, 1 row affected (0.04 sec)
重新進行主從複製
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 | 388 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql> change master to master_host='192.168.1.2',master_port=3306,master_user='master',master_password='123456',master_log_file='mysql-bin.000006',master_log_pos=388;
Query OK, 0 rows affected (0.01 sec)
mysql> start slave ;
Query OK, 0 rows affected (0.00 sec)
檢視主從狀態還提示原來的錯誤,使用sql_slave_skip_counter引數
mysql> show variables like '%skip%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| skip_external_locking | ON |
| skip_name_resolve | ON |
| skip_networking | OFF |
| skip_show_database | OFF |
| slave_skip_errors | OFF |
| sql_slave_skip_counter | 0 |
+------------------------+-------+
6 rows in set (0.00 sec)
預設為0
mysql> set global sql_slave_skip_counter = 1;
mysql> start slave;
還提示錯誤,繼續
mysql> set global sql_slave_skip_counter = 1;
mysql> start slave;
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.2
Master_User: master
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000006
Read_Master_Log_Pos: 388
Relay_Log_File: relay-log.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000006
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: test
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: 388
Relay_Log_Space: 403
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: 360360
最後在192.168.1.2上重新建庫並還原資料
測試庫:
192.168.1.2 主
192.168.1.3 從
192.168.1.4 主 4又是2的從庫
192.168.1.5 從
有人修改了192.168.1.2和192.168.1.3的資料庫引數後,重啟資料庫。
忘記了192.168.1.4又是192.168.1.2的從庫,導致192.168.1.2和192.168.1.4的主從斷掉。
並且在192.168.1.2上建立了新庫還原資料刪除等操作,導致192.168.1.4提示錯誤。
模擬如下:
透過從庫檢視主從狀態:
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.33.243
Master_User: master
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000006
Read_Master_Log_Pos: 303
Relay_Log_File: relay-log.000005
Relay_Log_Pos: 340
Relay_Master_Log_File: mysql-bin.000006
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB: test
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1049
Last_Error: Error 'Unknown database 'sakila'' on query. Default database: 'sakila'. Query: 'create table sakila (id int,name varchar(2))'
Skip_Counter: 0
Exec_Master_Log_Pos: 194
Relay_Log_Space: 745
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: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1049
Last_SQL_Error: Error 'Unknown database 'sakila'' on query. Default database: 'sakila'. Query: 'create table sakila (id int,name varchar(2))'
Replicate_Ignore_Server_Ids:
Master_Server_Id: 360360
1 row in set (0.00 sec)
記錄下二進位制日誌的和點的位置:
Relay_Master_Log_File: mysql-bin.000006
Exec_Master_Log_Pos: 194
停掉從庫的slave
mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)
並在主庫刪除掉新建的庫
mysql> drop database sakila;
Query OK, 1 row affected (0.04 sec)
重新進行主從複製
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 | 388 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql> change master to master_host='192.168.1.2',master_port=3306,master_user='master',master_password='123456',master_log_file='mysql-bin.000006',master_log_pos=388;
Query OK, 0 rows affected (0.01 sec)
mysql> start slave ;
Query OK, 0 rows affected (0.00 sec)
檢視主從狀態還提示原來的錯誤,使用sql_slave_skip_counter引數
mysql> show variables like '%skip%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| skip_external_locking | ON |
| skip_name_resolve | ON |
| skip_networking | OFF |
| skip_show_database | OFF |
| slave_skip_errors | OFF |
| sql_slave_skip_counter | 0 |
+------------------------+-------+
6 rows in set (0.00 sec)
預設為0
mysql> set global sql_slave_skip_counter = 1;
mysql> start slave;
還提示錯誤,繼續
mysql> set global sql_slave_skip_counter = 1;
mysql> start slave;
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.2
Master_User: master
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000006
Read_Master_Log_Pos: 388
Relay_Log_File: relay-log.000002
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000006
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: test
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: 388
Relay_Log_Space: 403
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: 360360
最後在192.168.1.2上重新建庫並還原資料
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-1788508/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【MySQL】主從GTID複製修復MySql
- MySQL主從不一致的修復過程MySql
- MySQL主從MySql
- redis cluster 故障後,主從位於不同節點的修復。Redis
- 【mysql】mysql的資料庫主從(一主一從)MySql資料庫
- MySQL 主從配置-之-一主一從MySql
- mysql主從配置MySql
- mysql 主從配置MySql
- mysql配置主從MySql
- mysql主從同步MySql主從同步
- mysql主從搭建MySql
- dataguard主庫壞塊的修復
- MySQL(14)---Docker搭建MySQL主從複製(一主一從)MySqlDocker
- mysql主從複製(一):一主多從MySql
- 如何修復mysql資料庫MySql資料庫
- 如何修復MySQL配置檔案?MySql
- MySQL主從同步配置MySql主從同步
- docker mysql 主從配置DockerMySql
- Oracle MySQL PG主從OracleMySql
- MYSQL主從搭建5.6.38MySql
- Mysql主從熱備MySql
- MySQL主從切換MySql
- MySQL 主從複製MySql
- MySQL主從備份MySql
- 【MySql】主從複製MySql
- MySQL主從複製MySql
- MySQL的主從複製與MySQL的主主複製MySql
- Mysql實現主從複製(一主雙從)MySql
- MYSQL資料庫主從同步(一主一從)MySql資料庫主從同步
- MySQL主從同步(一主一從、一主多從、主從從)等結構的概述與配置MySql主從同步
- MySQL主從複製與主主複製MySql
- MySQL 5.7主從新增新從庫MySql
- MySQL++:Liunx - MySQL 主從複製MySql
- MySQL(13)---MYSQL主從複製原理MySql
- mysql replication /mysql 主從複製原理MySql
- MySQL-主從複製之同步主從資料MySql
- mysql主從中,從和主資料相差較多MySql
- MySQL修復表的簡單分析MySql