Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_mysql
提交
85c17a66
S
skill_tree_mysql
项目概览
CSDN 技术社区
/
skill_tree_mysql
通知
21
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_mysql
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
85c17a66
编写于
6月 02, 2022
作者:
M
Mars Liu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chains
上级
65591e52
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
138 addition
and
13 deletion
+138
-13
data/3.MySQL高阶/6.运维与架构/1.主从复制/slave_master.md
data/3.MySQL高阶/6.运维与架构/1.主从复制/slave_master.md
+1
-1
data/3.MySQL高阶/6.运维与架构/2.多主复制/multimaster.md
data/3.MySQL高阶/6.运维与架构/2.多主复制/multimaster.md
+2
-2
data/3.MySQL高阶/6.运维与架构/3.添加从库/addslave.md
data/3.MySQL高阶/6.运维与架构/3.添加从库/addslave.md
+3
-6
data/3.MySQL高阶/6.运维与架构/4.从主从复制到链式复制/config.json
data/3.MySQL高阶/6.运维与架构/4.从主从复制到链式复制/config.json
+3
-1
data/3.MySQL高阶/6.运维与架构/4.从主从复制到链式复制/ms2chains.json
data/3.MySQL高阶/6.运维与架构/4.从主从复制到链式复制/ms2chains.json
+8
-0
data/3.MySQL高阶/6.运维与架构/4.从主从复制到链式复制/ms2chains.md
data/3.MySQL高阶/6.运维与架构/4.从主从复制到链式复制/ms2chains.md
+53
-0
data/3.MySQL高阶/6.运维与架构/5.从链式复制到主从复制/chains2ms.json
data/3.MySQL高阶/6.运维与架构/5.从链式复制到主从复制/chains2ms.json
+8
-0
data/3.MySQL高阶/6.运维与架构/5.从链式复制到主从复制/chains2ms.md
data/3.MySQL高阶/6.运维与架构/5.从链式复制到主从复制/chains2ms.md
+47
-0
data/3.MySQL高阶/6.运维与架构/5.从链式复制到主从复制/config.json
data/3.MySQL高阶/6.运维与架构/5.从链式复制到主从复制/config.json
+7
-2
data/tree.json
data/tree.json
+6
-1
未找到文件。
data/3.MySQL高阶/6.运维与架构/1.主从复制/slave_master.md
浏览文件 @
85c17a66
...
...
@@ -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.
备份主库,生成备份文件,
...
...
data/3.MySQL高阶/6.运维与架构/2.多主复制/multimaster.md
浏览文件 @
85c17a66
#
主从复制
#
多主复制架构
在上一节(主从复制)里,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.
备份主库,生成备份文件,
...
...
data/3.MySQL高阶/6.运维与架构/3.添加从库/addslave.md
浏览文件 @
85c17a66
#
主从复制
#
添加从库
在
`主从复制`
一节里,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. 重启从库
## 选项
...
...
data/3.MySQL高阶/6.运维与架构/4.从主从复制到链式复制/config.json
浏览文件 @
85c17a66
...
...
@@ -2,7 +2,9 @@
"node_id"
:
"mysql-88333dcb84a946a78bfd9f413c6e795b"
,
"keywords"
:
[],
"children"
:
[],
"export"
:
[],
"export"
:
[
"ms2chains.json"
],
"keywords_must"
:
[],
"keywords_forbid"
:
[],
"group"
:
0
...
...
data/3.MySQL高阶/6.运维与架构/4.从主从复制到链式复制/ms2chains.json
0 → 100644
浏览文件 @
85c17a66
{
"type"
:
"code_options"
,
"author"
:
"ccat"
,
"source"
:
"ms2chains.md"
,
"notebook_enable"
:
false
,
"exercise_id"
:
"9256f94d78444492bd05a9aaef5e0701"
}
\ No newline at end of file
data/3.MySQL高阶/6.运维与架构/4.从主从复制到链式复制/ms2chains.md
0 → 100644
浏览文件 @
85c17a66
# 从主从复制到链式复制
在
`添加从库`
一节里,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
data/3.MySQL高阶/6.运维与架构/5.从链式复制到主从复制/chains2ms.json
0 → 100644
浏览文件 @
85c17a66
{
"type"
:
"code_options"
,
"author"
:
"ccat"
,
"source"
:
"chains2ms.md"
,
"notebook_enable"
:
false
,
"exercise_id"
:
"b1aecdfdd82e4fac8657fe833aac4f49"
}
\ No newline at end of file
data/3.MySQL高阶/6.运维与架构/5.从链式复制到主从复制/chains2ms.md
0 → 100644
浏览文件 @
85c17a66
# 从链式复制到主从复制
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
data/3.MySQL高阶/6.运维与架构/5.从链式复制到主从复制/config.json
浏览文件 @
85c17a66
{
"node_id"
:
"mysql-2f6f847907d4415788e98d2f70f64d3c"
,
"keywords"
:
[
"链式复制"
,
"主从复制"
],
"keywords"
:
[
"链式复制"
,
"主从复制"
],
"children"
:
[],
"export"
:
[],
"export"
:
[
"chains2ms.json"
],
"keywords_must"
:
[],
"keywords_forbid"
:
[],
"group"
:
0
...
...
data/tree.json
浏览文件 @
85c17a66
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录