225_mysql_复制技术_复制拓扑调整_一主二从_级联复制

举报
alexsully 发表于 2021/11/13 13:13:01 2021/11/13
【摘要】 复制拓扑调整

1 传统模式下

1.1 传统复制下 并行复制 改 串行复制

Master1 – slave1 master-slave2 à master1-slave1-slave2

1 查看slave 状态
	slave1&2 show slave status\G
	
2 从库创建工具表(用SUPER权限用户操作)
	slave1 & 2
		  set @@global.super_read_only="OFF"
		  SET sql_log_bin=0; create database test1;
		  
    
3 主库创建工具表待slave报错
	master: create database test1;
	slave1&2: show slave status \G; #LAST_ERROR & LAST_SQL_ERROR
			  Select * from perfomance_schema.replication_applier_status_by_worker where LAST_ERROR_MESSAGE != ""\G;
			  
4 准备切slave2的主为slave1
	slave1: show slave status \G;  # FILE & POSITION & EXECUTED_GTID_SET
	Slave2: stop slave ;
			reset slave all;
			change master to  master_host = slave1, master_user="repl", master_password="xxx", master_port="3306",master_log_file="file",master_log_pos="position"
			start slave 
			show slave status \G
	slave1&slave2 : set sql_log_bin=0; drop database test1;
	
5 重启slave1 SQL线程, 删除master工具库
	slave1 : start slave sql_thread;
			  show slave status \G; 
			  
    master: drop  database test1;
			 show create database test1\G;
			
6 pt_table_checksum 检验主从数据一致性;业务低峰期
	pt_table_checksum h="localhost" , u="admin", p="password", P=3306, --database="db_name" --nocheck-replication-filters --replicate=test.checksums --no-check-binlog-format

1.2串行复制改为并行复制

Master1-slave1-slave2  à  master1-slave1; master1-slave2

1 查看slave1&2 状态 
	slave1&2 show slave status\G  # 确保主备复制状态正常
	slave1 : stop slave sql_thread; 
			# relay_master_log_file: 相对master1来说 slave1应用到哪个binlog文件 (file_master)
			# exec_master_log_pos: 相对master1来说,slave1应用到哪个binlog文件的哪个position (file_master_position)
			
2 操作slave2 变更主为 slave1
	slave2: show slave status\G 
			# 要确保 relay_master_log_file = master_log_file 说明SQL重放文件与 IO接到的文件相同
			# 要确保 exec_master_log_pos = read_master_log_pos  说明SQL重放文件的位置与IO接到文件位置相同
	
		     stop slave 
		     reset slave all;
			 change master to  master_host = master1, master_user="repl", master_password="xxx", master_port="3306",master_log_file="file_master",master_log_pos="file_master_position"
			 start slave;
			 show slave status \G;
			 
3 重启slave1
	slave1: start slave sql_thread;
			 show slave status \G;
			 
			
4  pt_table_checksum 检验主从数据一致性;业务低峰期
	pt_table_checksum h="localhost" , u="admin", p="password", P=3306, --database="db_name" --nocheck-replication-filters --replicate=test.checksums --no-check-binlog-format
	

2 GTID 复制模式下

2.1 并行复制 改为 串行复制

Master1 – slave1 master-slave2 à master1-slave1-slave2

1 查看slave1&2 状态 
	slave1&2 show slave status\G  # 确保主备复制状态正常
	slave1 : show slave status\G 
			# retrieved_gtid_set: slave1 IO线程从master1收到的GTID_SET信息   (I/0-server_uuid: transaction_id)
			# executed_gtid_set: slave1 SQL线程应用到基于某个binlog的 GTID_SET (SQL-server_uuid: transaction_id)
			# Auto_position: 1  # 表示开启自动定位功能
	
			
2 操作slave2 变更主为 slave1
	slave2: show slave status\G  # 确保SQL/IO线程正常 Yes
		     stop slave 
		     reset slave all;
			 # 指向slave1
			 change master to  master_host = slave1, master_user="repl", master_password="xxx", master_port="3306", master_auto_position;
			 start slave;
			 show slave status \G;   #待slave 追上 master1

2.2 串行复制 改为并行复制

Master1-slave1-slave2  à  master1-slave1; master1-slave2

1 查看slave1&2 状态 
	slave1&2 show slave status\G  # 确保主备复制状态正常
	slave1 : show slave status\G 
			# retrieved_gtid_set: slave1 IO线程从master1收到的GTID_SET信息   (I/0-server_uuid: transaction_id)
			# executed_gtid_set: slave1 SQL线程应用到基于某个binlog的 GTID_SET (SQL-server_uuid: transaction_id)
			# Auto_position: 1  # 表示开启自动定位功能
	
			
2 操作slave2 变更主为 master1 
	slave2: show slave status\G  # 确保SQL/IO线程正常 Yes
		     stop slave 
		     reset slave all;
			 # 指向master1
			 change master to  master_host = master1, master_user="repl", master_password="xxx", master_port="3306", master_auto_position;
			 start slave;
			 show slave status \G;   #待slave 追上 master1

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。