From 65591e524d27aec78199e893d0a9c03f6122e6d9 Mon Sep 17 00:00:00 2001 From: Mars Liu Date: Wed, 1 Jun 2022 23:25:28 +0800 Subject: [PATCH] add slave --- .../config.json" | 6 ++- .../slave_master.md" | 33 ++++++++++-- .../config.json" | 4 +- .../multimaster.json" | 7 +++ .../multimaster.md" | 52 +++++++++++++++++++ .../addslave.json" | 7 +++ .../addslave.md" | 48 +++++++++++++++++ .../config.json" | 6 ++- data/tree.json | 8 ++- 9 files changed, 160 insertions(+), 11 deletions(-) create mode 100644 "data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/multimaster.json" create mode 100644 "data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/multimaster.md" create mode 100644 "data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/addslave.json" create mode 100644 "data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/addslave.md" diff --git "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/1.\344\270\273\344\273\216\345\244\215\345\210\266/config.json" "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/1.\344\270\273\344\273\216\345\244\215\345\210\266/config.json" index 2609cc2..50c57af 100644 --- "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/1.\344\270\273\344\273\216\345\244\215\345\210\266/config.json" +++ "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/1.\344\270\273\344\273\216\345\244\215\345\210\266/config.json" @@ -1,6 +1,10 @@ { "node_id": "mysql-cc8606a40aac43cb8b063a65f51e4df1", - "keywords": ["slave", "master", "standby"], + "keywords": [ + "slave", + "master", + "standby" + ], "children": [], "export": [ "slave_master.json" diff --git "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/1.\344\270\273\344\273\216\345\244\215\345\210\266/slave_master.md" "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/1.\344\270\273\344\273\216\345\244\215\345\210\266/slave_master.md" index 11d91ba..8769e75 100644 --- "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/1.\344\270\273\344\273\216\345\244\215\345\210\266/slave_master.md" +++ "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/1.\344\270\273\344\273\216\345\244\215\345\210\266/slave_master.md" @@ -1,21 +1,44 @@ # 主从复制 -主从复制 +Joe 要给交易库建立一个从库,实现主从复制。假设主库的服务器名为 trade ,从库名为 standby 。 +他应该如何操作? + +1. 编辑主库配置(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. 登录主库,执行``解锁主服务器 +10. 在从库上用该备份恢复 +11. 登录从库,配置主服务器的地址、端口、登录信息和binlog启动位置。 +12. 在从库执行 `START slave;` 启动复制线程。 +13. 重启从库 ## 答案 -答案 +``` +1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 +``` ## 选项 ### A -选项1 +``` +1, 2, 3, 4, 5, 6 +``` ### B -选项2 +``` +12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 +``` ### C -选项3 +``` +2, 4, 6, 8, 10, 12 +``` \ No newline at end of file diff --git "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/config.json" "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/config.json" index 71784ac..e98efd9 100644 --- "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/config.json" +++ "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/config.json" @@ -2,7 +2,9 @@ "node_id": "mysql-91ba7f7a6b684b8aad01abd583cf0442", "keywords": [], "children": [], - "export": [], + "export": [ + "multimaster.json" + ], "keywords_must": [], "keywords_forbid": [], "group": 0 diff --git "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/multimaster.json" "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/multimaster.json" new file mode 100644 index 0000000..8443a29 --- /dev/null +++ "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/multimaster.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "ccat", + "source": "multimaster.md", + "notebook_enable": false, + "exercise_id": "6248de9d76ac496fbd80fbc2cbc1a3cb" +} \ No newline at end of file diff --git "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/multimaster.md" "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/multimaster.md" new file mode 100644 index 0000000..e9adfba --- /dev/null +++ "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/2.\345\244\232\344\270\273\345\244\215\345\210\266/multimaster.md" @@ -0,0 +1,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 + +所有选项都不对。 \ No newline at end of file diff --git "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/addslave.json" "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/addslave.json" new file mode 100644 index 0000000..f74471b --- /dev/null +++ "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/addslave.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "ccat", + "source": "addslave.md", + "notebook_enable": false, + "exercise_id": "b8bf473ce5fd444d8fe444d3a4f01c94" +} \ No newline at end of file diff --git "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/addslave.md" "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/addslave.md" new file mode 100644 index 0000000..2905e0f --- /dev/null +++ "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/addslave.md" @@ -0,0 +1,48 @@ +# 主从复制 + +在`主从复制`一节里,Joe实现了一个点对点的主从复制架构,现在, +Joe 要添加一个名为 backup 的新的从库,他应该怎么做? + +我们假设现在是全新的环境,Trade、Auth 和 Standby 都是独立存在的 +MySQL 服务器。 + + +## 答案 + +1. 在主库上建立来自从库backup的复制账号 +2. 修改从库配置(my.cnf),设定server_id以及binlog和relay-bin相关的信息 +3. 重启从库 +5. 在主库上执行 `FLUSH TABLES WITH READ LOCK;` 锁定 +6. 在主库执行 `SHOW MASTER STATUS;` ,记录 binlog 文件及 Position 信息 +7. 备份主库,生成备份文件, +8. 登录主库,执行``解锁主服务器 +9. 在从库backup上用该备份恢复 +10. 登录backup,配置主服务器的地址、端口、登录信息和binlog启动位置。 +11. 在 backup 执行 `START slave;` 启动复制线程。 +12. 重启从库 + +## 选项 + +### A + +1. 编辑主库配置(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. 登录主库,执行``解锁主服务器 +10. 在从库上用该备份恢复 +11. 登录从库,配置主服务器的地址、端口、登录信息和binlog启动位置。 +12. 在从库执行 `START slave;` 启动复制线程。 +13. 重启从库 + +### B + +重复《主从复制》一节的操作步骤,将 backup 配置成 standby 的从库 + +### C + +所有选项都不对。 \ No newline at end of file diff --git "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/config.json" "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/config.json" index 4600728..2b521f7 100644 --- "a/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/config.json" +++ "b/data/3.MySQL\351\253\230\351\230\266/6.\350\277\220\347\273\264\344\270\216\346\236\266\346\236\204/3.\346\267\273\345\212\240\344\273\216\345\272\223/config.json" @@ -1,8 +1,10 @@ { "node_id": "mysql-1c778aa1adfd43d4ac9da32df9e44238", - "keywords": [], + "keywords": ["slave", "master", "standby", "add slave"], "children": [], - "export": [], + "export": [ + "addslave.json" + ], "keywords_must": [], "keywords_forbid": [], "group": 0 diff --git a/data/tree.json b/data/tree.json index 79ed134..3993bf3 100644 --- a/data/tree.json +++ b/data/tree.json @@ -2337,11 +2337,15 @@ { "主从复制": { "node_id": "mysql-cc8606a40aac43cb8b063a65f51e4df1", - "keywords": [], + "keywords": [ + "slave", + "master", + "standby" + ], "children": [], "keywords_must": [], "keywords_forbid": [], - "group": 0 + "group": 2 } }, { -- GitLab