Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Przywróć tradycyjną replikację z GTID

Jeśli chcesz przywrócić starą wersję:

# Teraz wyłączymy GTID

Niewolnik 192.168.66.7

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

Mistrz 192.168.66.5

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

Niewolnik 192.168.66.7

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

Mistrz 192.168.66.5

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

W tym momencie replikacja zostanie przerwana po stronie niewolnika. zatrzymamy salve i zmienimy pozycję mastera oraz wzmiankę o pliku dziennika, jak poniżej, pokazano błąd ze statusu slave.

Niewolnik 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)

Teraz sprawdź, czy replikacja statusu urządzenia podrzędnego będzie działać poprawnie, ale nadal będziemy musieli zatrzymać identyfikatory GTID.

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)

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

Mistrz 192.168.66.5

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

Teraz wyłączymy tryb gtid =off

Niewolnik 192.168.66.7

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

Mistrz 192.168.66.5

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

Spowoduje to zatrzymanie zmiany identyfikatora GTID po cofnięciu się

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

Ale Exec_Master_Log_Pos:181924 Relay_Log_Space:182357 będzie się zmieniał, to wyjście można zaobserwować w statusie show slave.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. zaktualizować wiele wierszy za pomocą limitu w mysql?

  2. Przewodnik po projektowaniu bazy danych dla systemu zamówień restauracji w MySQL

  3. Łączysz się z bazą danych z rozszerzenia Chrome?

  4. Kiedy powinienem używać indeksu złożonego?

  5. Klauzula OUTPUT w MySQL