ms2chains.md 2.7 KB
Newer Older
M
chains  
Mars Liu 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
# 从主从复制到链式复制

`添加从库`一节里,Joe实现了一个一对多的主从结构。standby 和 backup 都是trade 的从库。
现在,Joe 需要将 backup 修改为 standby 的从节点,实现链式复制。

他应该如何操作?

## 答案

1. 在 standby 和 backup 上分别执行 `STOP SLAVE`,停止复制
2. 在 standby 和 backup 上分别执行 `SHOW SLAVE STATUS;`,查看 `Relay_Master_Log_File``Exec_Master_Log_Pos` 是否一致
3. 如果状态一致,进入第 5 步。
4. 如果不一致,在 pos 靠前的服务上执行 `START SLAVE UNTIL MASTER_LOG_FILE='$file', Master_Log_Pos=$pos;`
   将变更同步到与另一台服务器一致。这里的 `$file``$pos` 即状态较新的那台服务器的状态值。
5. 在 standby 上创建用于 backup 连接的复制账号,授予复制权限 `GRANT REPLICATION SLAVE ON *.* TO 'user'@'backup';`
6. 在 standby 执行 `SHOW MASTER STATUS;` 获得其 binlog 文件和 position 值。 
7. 在 standby 执行 `START SLAVE`,启动复制过程。
8. 在 backup 服务器执行 `STOP SLAVE;` ,停止复制
9. 在 backup 设定 standby 服务器的地址、端口、登录信息和binlog启动位置,作为主库信息。
10. 在 backup 执行 `START slave;` 启动复制线程。

## 选项

### A

1. 在 standby 和 backup 上分别执行 `STOP SLAVE`,停止复制
2. 在 standby 和 backup 上分别执行 `SHOW SLAVE STATUS;`,查看 `Relay_Master_Log_File``Exec_Master_Log_Pos` 是否一致
3. 如果状态一致,进入第 5 步。
4. 如果不一致,在 pos 靠前的服务上执行 `START SLAVE UNTIL MASTER_LOG_FILE='$file', Master_Log_Pos=$pos;`
   将变更同步到与另一台服务器一致。这里的 `$file``$pos` 即状态较新的那台服务器的状态值。
5. 在 standby 上创建用于 backup 连接的复制账号
6. 备份 standby 。
7. 在 standby 执行 `START SLAVE`,启动复制过程。
8. 在 backup 服务器执行 `STOP SLAVE;` ,停止复制
9. 用standby 的备份文件恢复 backup。
10. 在 backup 执行 `START slave;` 启动复制线程。

### B

1. 在 standby 和 backup 上分别执行 `STOP SLAVE`,停止复制
2. 在 standby 和 backup 上分别执行 `SHOW SLAVE STATUS;`,查看 `Relay_Master_Log_File``Exec_Master_Log_Pos` 是否一致
3. 在 standby 上创建用于 backup 连接的复制账号
4. 在 standby 执行 `SHOW MASTER STATUS;` 获得其 binlog 文件和 position 值。
5. 在 standby 执行 `START SLAVE`,启动复制过程。
6. 在 backup 服务器执行 `STOP SLAVE;` ,停止复制
7. 在 backup 设定 standby 服务器的地址、端口、登录信息和binlog启动位置,作为主库信息。
8. 在 backup 执行 `START slave;` 启动复制线程。


### C

所有选项都不对。