提交 85c17a66 编写于 作者: M Mars Liu

chains

上级 65591e52
......@@ -7,7 +7,7 @@ Joe 要给交易库建立一个从库,实现主从复制。假设主库的服
2. 重启主库
3. 修改从库配置(my.cnf),设定server_id以及binlog和relay-bin相关的信息
4. 重启从库
5. 在主库上建立来自从库的复制账号
5. 在主库上建立用于从库连接的复制账号,授予复制权限 `GRANT REPLICATION SLAVE ON *.* TO 'user'@'standby';`
6. 在主库上执行 `FLUSH TABLES WITH READ LOCK;` 锁定
7. 在主库执行 `SHOW MASTER STATUS;` ,记录 binlog 文件及 Position 信息
8. 备份主库,生成备份文件,
......
# 主从复制
# 多主复制架构
在上一节(主从复制)里,Joe实现了一个点对点的主从复制架构,现在,
Joe 要给交易库和用户库建立一个公用的从库,实现多主复制。假设主库
......@@ -14,7 +14,7 @@ MySQL 服务器。
2. 重启主库
3. 修改从库配置(my.cnf),设定server_id以及binlog和relay-bin相关的信息
4. 重启从库
5. 分别在主库服务器上建立来自从库的复制账号
5. 分别在主库服务器上建立来自从库的复制账号,授予复制权限 `GRANT REPLICATION SLAVE ON *.* TO 'user'@'standby';`
6. 在主库上执行 `FLUSH TABLES WITH READ LOCK;` 锁定
7. 在主库执行 `SHOW MASTER STATUS;` ,记录 binlog 文件及 Position 信息
8. 备份主库,生成备份文件,
......
# 主从复制
# 添加从库
`主从复制`一节里,Joe实现了一个点对点的主从复制架构,现在,
Joe 要添加一个名为 backup 的新的从库,他应该怎么做?
我们假设现在是全新的环境,Trade、Auth 和 Standby 都是独立存在的
MySQL 服务器。
简单起见,我们假设现在 trade 和 standby 已经配置为主从架构。
## 答案
1. 在主库上建立来自从库backup的复制账号
1. 在主库上建立来自从库backup的复制账号,授予复制权限 `GRANT REPLICATION SLAVE ON *.* TO 'user'@'backup';`
2. 修改从库配置(my.cnf),设定server_id以及binlog和relay-bin相关的信息
3. 重启从库
5. 在主库上执行 `FLUSH TABLES WITH READ LOCK;` 锁定
......@@ -19,7 +17,6 @@ MySQL 服务器。
9. 在从库backup上用该备份恢复
10. 登录backup,配置主服务器的地址、端口、登录信息和binlog启动位置。
11. 在 backup 执行 `START slave;` 启动复制线程。
12. 重启从库
## 选项
......
......@@ -2,7 +2,9 @@
"node_id": "mysql-88333dcb84a946a78bfd9f413c6e795b",
"keywords": [],
"children": [],
"export": [],
"export": [
"ms2chains.json"
],
"keywords_must": [],
"keywords_forbid": [],
"group": 0
......
{
"type": "code_options",
"author": "ccat",
"source": "ms2chains.md",
"notebook_enable": false,
"exercise_id": "9256f94d78444492bd05a9aaef5e0701"
}
\ No newline at end of file
# 从主从复制到链式复制
`添加从库`一节里,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
所有选项都不对。
\ No newline at end of file
{
"type": "code_options",
"author": "ccat",
"source": "chains2ms.md",
"notebook_enable": false,
"exercise_id": "b1aecdfdd82e4fac8657fe833aac4f49"
}
\ No newline at end of file
# 从链式复制到主从复制
Joe实现了一个链式复制架构,standby 是 trade 的从库,backup 是 standby 的从库。
现在,Joe 需要将 backup 修改为 trade 的从节点,实现一对多的主从复制。
他应该如何操作?
## 答案
1. 在 trade 服务器上建立用于 backup 访问的复制账户,授予复制权限 `GRANT REPLICATION SLAVE ON *.* TO 'user'@'bakcup';`
2. 在 standby 服务器上执行 `STOP SLAVE;`,停止复制
3. 在 standby 服务器执行 `SHOW MASTER STATUS;`,记录 binlog 文件和 position。
4. 在 backup 上执行 `SHOW SLAVE STATUS;`,确认复制进度与 standby 同步
5. 在 standby 上执行 `SHOW SLAVE STATUS` ,查看来自 trade 的同步进度,记录 `Relay_Master_Log_File``Exec_Master_Log_Pos`
6. 在 backup 上执行 `STOP SLAVE;` 停止复制,重新设置复制设定,将主服务器相关配置指向 trade
7. 在 standby 上执行 `START SLAVE;` 启动同步
8. 在 backup 上执行 `START SLAVE;` 启动同步
## 选项
### A
1. 在 standby 服务器上执行 `STOP SLAVE;`,停止复制
2. 在 standby 服务器执行 `SHOW MASTER STATUS;`,记录 binlog 文件和 position。
3. 在 backup 上执行 `SHOW SLAVE STATUS;`,确认复制进度与 standby 同步
4. 在 standby 上执行 `SHOW SLAVE STATUS` ,查看来自 trade 的同步进度,记录 `Relay_Master_Log_File``Exec_Master_Log_Pos`
5. 在 backup 上执行 `STOP SLAVE;` 停止复制,重新设置复制设定,将主服务器相关配置指向 trade
6. 在 standby 上执行 `START SLAVE;` 启动同步
7. 在 backup 上执行 `START SLAVE;` 启动同步
### B
1. 在 trade 服务器上建立用于 backup 访问的复制账户,授予复制权限 `GRANT REPLICATION SLAVE ON *.* TO 'user'@'bakcup';`
2. 在 standby 服务器上执行 `STOP SLAVE;`,停止复制
3. 在 standby 服务器执行 `SHOW MASTER STATUS;`,记录 binlog 文件和 position。
4. 在 backup 上执行 `SHOW SLAVE STATUS;`,确认复制进度与 standby 同步
5. 在 standby 上执行 `SHOW SLAVE STATUS` ,查看来自 trade 的同步进度,记录 `Relay_Master_Log_File``Exec_Master_Log_Pos`
6. 在 backup 上执行 `STOP SLAVE;` 停止复制,重新设置复制设定,将主服务器相关配置指向 trade
7. 在 standby 上执行 `START SLAVE;` 启动同步
8. 在 backup 上执行 `START SLAVE;` 启动同步
9. 在 trade 上执行 `START MASTER;` 启动同步
### C
所有选项都不对。
\ No newline at end of file
{
"node_id": "mysql-2f6f847907d4415788e98d2f70f64d3c",
"keywords": ["链式复制", "主从复制"],
"keywords": [
"链式复制",
"主从复制"
],
"children": [],
"export": [],
"export": [
"chains2ms.json"
],
"keywords_must": [],
"keywords_forbid": [],
"group": 0
......
......@@ -2361,7 +2361,12 @@
{
"添加从库": {
"node_id": "mysql-1c778aa1adfd43d4ac9da32df9e44238",
"keywords": [],
"keywords": [
"slave",
"master",
"standby",
"add slave"
],
"children": [],
"keywords_must": [],
"keywords_forbid": [],
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册