MySQL一主兩從轉級聯複製【實操系列】

一主兩從 轉 級聯複製 示意圖如下

M  ---> S1
 \ 						====>      M ---> S1 ---> S2
  \ --> S2

如果有開啓GTID操作起來方便多,GTID是唯一的,直接操作即可。

如果使用file_name、position可以使用如下辦法(現在還沒開啓gtid真的是無力吐槽)

# 步驟1、 
# 現將S2的複製斷開
S2: stop slave;
# 步驟2、 
S1: stop slave; 					# S1複製斷開 
    show slave status \G;	# 得到當前S1同步到的M的文件和位置,
													# 注:S1並沒有同步到此處,得到位置也是方便使用start slave UNTIL來對齊複製
													#     Master_Log_File: mysql-bin.001773
													# Read_Master_Log_Pos: 64750877
													#    Slave_IO_Running: Yes
													#   Slave_SQL_Running: Yes
													# Exec_Master_Log_Pos: 64750877
		show master status; 	# 若複製對齊後,則需要找到當前S1的filename、pos
		+------------------+----------+--------------+------------------+
		| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
		+------------------+----------+--------------+------------------+
		| mysql-bin.001773 | 62794811 |              |                  |
		+------------------+----------+--------------+------------------+
		select sleep(1);      
		start slave;					
		select sleep(1);
		show slave status\G		# 檢查複製狀態
# 步驟3、
# S2開放複製,追趕到S1相同的位置
S2: start slave UNTIL MASTER_LOG_FILE ="mysql-bin.001773",  MASTER_LOG_POS=64750877;、
	show slave status\G             #     Master_Log_File: mysql-bin.001773
							        # Read_Master_Log_Pos: 78398909
								    #    Slave_IO_Running: Yes
									#   Slave_SQL_Running: No	 追到既定位置就沒用繼續使用binlog文件了
									# Exec_Master_Log_Pos: 64750877   已經追趕到S1的位置了
# 步驟4、
S2: stop slave;
	change master to master_host='S1',master_log_file='mysql-bin.001773',master_log_pos=62794811; 執行S1的地址和filename、position
    start slave;
 

此刻,已經完成了轉化到級聯複製的步驟。有點蛋疼。GTID纔是王道。

在這裏插入圖片描述

發佈了18 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章