multimaster.md 2.4 KB
Newer Older
M
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实现了一个点对点的主从复制架构,现在,
Joe 要给交易库和用户库建立一个公用的从库,实现多主复制。假设主库
的服务器名为 trade 和 auth ,从库名为 standby 。 他应该如何操作?

我们假设现在是全新的环境,Trade、Auth 和 Standby 都是独立存在的 
MySQL 服务器。


## 答案

1. 分别编辑主库auth和trade的配置(my.cnf),设定server_id以及binlog和relay-bin相关的信息
2. 重启主库
3. 修改从库配置(my.cnf),设定server_id以及binlog和relay-bin相关的信息
4. 重启从库
5. 分别在主库服务器上建立来自从库的复制账号
6. 在主库上执行 `FLUSH TABLES WITH READ LOCK;` 锁定
7. 在主库执行 `SHOW MASTER STATUS;` ,记录 binlog 文件及 Position 信息
8. 备份主库,生成备份文件,
9. 登录主库,执行`UNLOCK TABLES;`解锁主服务器
10. 在从库上用来自 trade 和 auth 的备份恢复
11. 登录从库,为两个主库分别配置不同的 `FOR CHNANEL`信息(例如这里设定为`autho-master``trade-master`),并对应配置主服务器的地址、端口、登录信息和binlog启动位置。
12. 在从库执行 `START SLAVE FOR CHANNEL 'autho-master';``START SLAVE FOR CHANNEL 'trade-master''`启动复制线程。
13. 重启从库

## 选项

### A

1. 分别编辑主库auth和trade的配置(my.cnf),设定server_id以及binlog和relay-bin相关的信息
2. 重启主库
3. 修改从库配置(my.cnf),设定server_id以及binlog和relay-bin相关的信息
4. 重启从库
5. 分别在主库服务器上建立来自从库的复制账号
6. 在主库上执行 `FLUSH TABLES WITH READ LOCK;` 锁定
7. 在主库执行 `SHOW MASTER STATUS;` ,记录 binlog 文件及 Position 信息
8. 备份主库,生成备份文件,
9. 登录主库,执行`UNLOCK TABLES;`解锁主服务器
10. 在从库上用来自 trade 和 auth 的备份恢复
11. 登录从库,配置主服务器的地址(将两个主服务器用逗号分开)、端口、登录信息和binlog启动位置。
12. 在从库执行 `START SLAVE';`启动复制线程。
13. 重启从库

### B

1. 重复《主从复制》一节的操作步骤,将 trade 配置成 auth 的从库
2. 重复《主从复制》一节的操作步骤,将 standby 配置成 trade 的从库

### C

所有选项都不对。