From 8987244c407b7dcb13dec1f20d3cc8a2c82c4dcd Mon Sep 17 00:00:00 2001 From: Nguyen Thanh Cong Date: Fri, 20 Nov 2020 09:07:01 +0700 Subject: [PATCH] Use current slave_pos of slave to continue replicate Because gtid is global and all operation are write to binlog, so incase change to new master, we just use current slave_pos of slave, the slave will just continue from the appropriate point in the new master's binlog. Story: #2008376 Task: #41294 Change-Id: If129aef794c9b2e547c0a3acfc6855c3506cf930 --- .../guestagent/strategies/replication/mariadb_gtid.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/trove/guestagent/strategies/replication/mariadb_gtid.py b/trove/guestagent/strategies/replication/mariadb_gtid.py index b95853bb5e..4909ee6627 100644 --- a/trove/guestagent/strategies/replication/mariadb_gtid.py +++ b/trove/guestagent/strategies/replication/mariadb_gtid.py @@ -42,15 +42,11 @@ class MariaDBGTIDReplication(mysql_base.MysqlReplicationBase): logging_config = master_info['log_position'] last_gtid = '' - if 'gtid_pos' in logging_config: - # This will happen during master failover. - last_gtid = logging_config['gtid_pos'] - elif 'dataset' in master_info: + if 'dataset' in master_info: # This will happen when initial replication is set up. last_gtid = self.read_last_master_gtid(service) - - set_gtid_cmd = "SET GLOBAL gtid_slave_pos='%s';" % last_gtid - service.execute_sql(set_gtid_cmd) + set_gtid_cmd = "SET GLOBAL gtid_slave_pos='%s';" % last_gtid + service.execute_sql(set_gtid_cmd) change_master_cmd = ( "CHANGE MASTER TO "