成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Slave被誤寫入數據如何恢復到主庫

數據庫 其他數據庫
在GreatSQL主從復制環境中,有時候可能會出現一些誤操作,將本應該寫入到主庫的數據寫入到了從庫,導致主從數據不一致,影響數據同步。是否可以將寫入從庫的數據同步寫入主庫呢?

背景

在GreatSQL主從復制環境中,有時候可能會出現一些誤操作,將本應該寫入到主庫的數據寫入到了從庫,導致主從數據不一致,影響數據同步。是否可以將寫入從庫的數據同步寫入主庫呢?

測試環境

角色

IP地址

數據庫開放端口

版本

主庫

192.168.137.179

3308

GreatSQL 8.0.32

從庫

192.168.137.180

3308

GreatSQL 8.0.32

復制鏈路:

greatsql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 192.168.137.179
                  Master_User: root
                  Master_Port: 3308
                Connect_Retry: 60
              Master_Log_File: binlog.000001
          Read_Master_Log_Pos: 157
               Relay_Log_File: oracle_dts-relay-bin.000002
                Relay_Log_Pos: 367
        Relay_Master_Log_File: binlog.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

表數據

主庫

greatsql> select * from dept;
+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
|     60 | it         | 成都     |
+--------+------------+----------+
5 rows in set (0.00 sec)

greatsql> insert into dept select 70,'IT','CTU';
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

greatsql> commit;
Query OK, 0 rows affected (0.00 sec)

從庫

greatsql> select * from dept;
+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
|     60 | it         | 成都     |
|     70 | IT         | CTU      |
+--------+------------+----------+
6 rows in set (0.00 sec)

主庫寫入的數據正常同步到從庫

在從庫寫入數據

greatsql> insert into dept select 80,'IT','SZ';
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

greatsql> insert into dept select 90,'SALES','SZ';
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

從庫數據

greatsql> select * from dept;
+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
|     60 | it         | 成都     |
|     70 | IT         | CTU      |
|     80 | IT         | SZ       |
|     90 | SALES      | SZ       |
+--------+------------+----------+
8 rows in set (0.00 sec)

主庫數據

greatsql> select * from dept;
+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
|     60 | it         | 成都     |
|     70 | IT         | CTU      |
+--------+------------+----------+
6 rows in set (0.01 sec)

此時從庫寫入的數據在主庫中并沒有出現

解析從庫的二進制日志

$ mysqlbinlog -vv --base64-output=decode-rows  binlog.000002>b002.sql

 BEGIN
/*!*/;

#at 354
#240221 16:10:25 server id 18001  end_log_pos 416 CRC32 0xcc81584b      Table_map: `scott`.`dept` mapped to number 101
#has_generated_invisible_primary_key=0
#at 416
#240221 16:10:25 server id 18001  end_log_pos 462 CRC32 0x5149e38a      Write_rows: table id 101 flags:
 STMT_END_F

###INSERT INTO `scott`.`dept`
###SET
###@1=80 /* INT meta=0 nullable=0 is_null=0 */
###@2='IT' /* VARSTRING(56) meta=56 nullable=1 is_null=0 */
###@3='SZ' /* VARSTRING(52) meta=52 nullable=1 is_null=0 */
#at 462
#240221 16:10:25 server id 18001  end_log_pos 493 CRC32 0xab795e4a      Xid = 34

可以看到寫入的從庫寫入的數據在 binlog.000002,我們可以通過 grep 從庫的 server id 確定日志文件中有沒有在從庫寫入的數據。

復制從庫日志到主庫

$ scp binlog.000002  192.168.137.179:/tmp/
Warning: Permanently added '192.168.137.179' (ECDSA) to the list of known hosts.
root@192.168.137.179's password: 
binlog.000002                                                        100%  836     1.1MB/s   00:00

應用從庫的二進制日志

應用從庫的日志到主庫

$ mysqlbinlog binlog.000002|mysql -uroot -p -h127.1 -P3308

主庫應用從庫二進制日志時,從庫二進制日志信息未發生變化

greatsql> show binary logs;
+---------------+-----------+-----------+
| Log_name      | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000001 |       498 | No        |
| binlog.000002 |       836 | No        |
| binlog.000003 |       237 | No        |
+---------------+-----------+-----------+
3 rows in set (0.00 sec)

主從復制鏈路狀態正常

greatsql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 192.168.137.179
                  Master_User: root
                  Master_Port: 3308
                Connect_Retry: 60
              Master_Log_File: binlog.000001
          Read_Master_Log_Pos: 1059
               Relay_Log_File: oracle_dts-relay-bin.000002
                Relay_Log_Pos: 1269
        Relay_Master_Log_File: binlog.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

可以看到主庫在應用從庫產生的二進制日志時,從庫沒有重復應用這些二進制日志(By default, the replication I/O (receiver) thread does not write binary log events to the relay log if they have the replica's server ID (this optimization helps save disk usage). ),出現主鍵沖突,導致復制狀態出錯

查看主庫數據

greatsql> select * from dept;
+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
|     60 | it         | 成都     |
|     70 | IT         | CTU      |
|     80 | IT         | SZ       |
|     90 | SALES      | SZ       |
+--------+------------+----------+
8 rows in set (0.00 sec)

后續測試,主庫寫入數據可正常同步到從庫。

責任編輯:武曉燕 來源: GreatSQL社區
相關推薦

2018-07-24 16:40:29

MySQL主從架構主庫宕機

2014-10-11 17:48:46

排名恢復

2021-04-20 08:33:29

SQL快照數據

2022-12-01 14:02:02

MySQL數據文件

2024-08-09 10:06:09

2020-11-08 13:42:00

勒索軟件加密數據數據安全

2022-05-20 08:18:24

Git存儲哈希值

2011-05-10 14:00:54

2019-10-10 08:00:00

LinuxWindows分區

2011-05-13 13:26:52

master數據庫恢復

2009-12-21 16:17:01

2018-07-11 10:24:33

數據恢復數據刪除

2021-08-06 23:15:51

分區數據操作系統

2023-12-18 16:07:15

2018-06-04 09:12:54

2017-09-11 10:09:59

刪庫DBA淘汰

2011-03-30 14:19:56

MySQL數據庫修改恢復

2024-04-18 08:00:00

腦裂問題Redis哨兵模式

2011-03-07 14:15:33

standby數據庫

2023-10-25 08:01:30

redis主庫服務
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品久久久一区二区三区 | 91精品中文字幕一区二区三区 | 自拍视频精品 | 国产美女一区二区 | 久久亚洲国产精品 | 国产高清精品在线 | 精品成人佐山爱一区二区 | 成人在线精品视频 | 国产精品久久久久久影视 | 亚洲一区中文字幕 | 成人一区精品 | 欧美一级大片免费看 | 日韩不卡一区二区三区 | www亚洲精品 | 超碰超碰 | 久久国产麻豆 | 亚洲欧美精品一区 | av免费网站在线观看 | 99久久免费精品国产男女高不卡 | 毛片毛片毛片毛片毛片 | 81精品国产乱码久久久久久 | 五月天国产 | 成年人在线视频 | 日韩欧美国产一区二区三区 | 国产69精品久久99不卡免费版 | 久久成人人人人精品欧 | 亚洲成人免费av | 国产在视频一区二区三区吞精 | 日韩精品免费播放 | 亚洲精品视频免费观看 | 精品中文字幕一区二区 | 国产激情精品一区二区三区 | www.久草.com| 免费一级毛片 | 91伦理片 | 亚洲国产网站 | 国产欧美视频一区二区 | 国产特级毛片 | 亚洲高清视频在线观看 | 欧美日韩高清免费 | 久久久久久成人 |