sql >> Database teknologi >  >> RDS >> Mysql

Rul tilbage til traditionel replikering fra GTID

Hvis du vil rulle tilbage til det gamle :

# Nu skal vi slå GTID fra

Slave 192.168.66.7

mysql> set global gtid_mode='on_permissive';
Query OK, 0 rows affected (0.02 sec)

Skibsfører 192.168.66.5

mysql> set global gtid_mode='on_permissive';
Query OK, 0 rows affected (0.02 sec)

Slave 192.168.66.7

mysql> set global gtid_mode='off_permissive';
Query OK, 0 rows affected (0.01 sec)

Skibsfører 192.168.66.5

mysql> set global gtid_mode='off_permissive';
Query OK, 0 rows affected (0.01 sec)

På dette tidspunkt vil replikationen bryde på slavesiden. vi vil stoppe salven og ændre master position og logfil omtale som nedenfor fejl vist fra slave status.

Slave 192.168.66.7

mysql> show slave status\G
*************************** 1. row ***************************
Last_IO_Errno: 13114
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 
'Cannot replicate anonymous transaction when AUTO_POSITION = 1, at file ./mysql-bin.000007, 
position 196.; the first event '' at 4, the last event read from './mysql-bin.000007' at 275, 
the last byte read from './mysql-bin.000007' at 275.'

mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
mysql> change master to master_log_file='mysql-bin.000007',
master_log_pos=196,master_auto_position=0;
Query OK, 0 rows affected (0.02 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

Tjek nu, at slavestatusreplikeringen fungerer fint, men vi bliver stadig nødt til at stoppe GTID'erne.

mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.66.5
Master_User: syncstndby
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 1070076
Relay_Log_File: serverB-relay-bin.000002
Relay_Log_Pos: 1070204
Relay_Master_Log_File: mysql-bin.000007
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
.
.
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 1070076
Relay_Log_Space: 1070415
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
.
.
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: 1
Master_UUID: 95358015-b479-11ea-ab4c-080027267f61
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 more updates
Master_Retry_Count: 86400
.
.
Executed_Gtid_Set: 95358015-b479-11ea-ab4c-080027267f61:1-10110
.
.
Network_Namespace:
1 row in set (0.00 sec)

sek.
mysql> select @@global.gtid_owned;
+---------------------+
| @@global.gtid_owned |
+---------------------+
|                     |
+---------------------+
1 row in set (0.00 sec)

Skibsfører 192.168.66.5

mysql> select @@global.gtid_owned;
+---------------------+
| @@global.gtid_owned |
+---------------------+
|                     |
+---------------------+
1 row in set (0.00 sec)

Nu vil vi slå gtid-tilstanden fra =off

Slave 192.168.66.7

mysql> set global gtid_mode=off;
Query OK, 0 rows affected (0.01 sec)

Skibsfører 192.168.66.5

mysql> set global gtid_mode=off;
Query OK, 0 rows affected (0.01 sec)

Dette stopper med at ændre GTID'et, når du er flyttet tilbage

Executed_Gtid_Set:95358015-b479-11ea-ab4c-080027267f61:1-10110

Men Exec_Master_Log_Pos:181924 Relay_Log_Space:182357 vil blive ved med at ændre sig, dette output kan observeres i show slave status.


  1. Hvordan bruger man CASE Statement i MySQL?

  2. Sådan duplikerer du en database ved hjælp af phpMyAdmin

  3. Hvordan gemmer man adgangskoder sikkert i databasen?

  4. Sådan viser du samlingen af ​​din forbindelse i MySQL