加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
RDBMS2_DAY01_知识点版 8.74 KB
一键复制 编辑 原始数据 按行查看 历史
panglijing 提交于 2021-11-18 06:46 . update RDBMS2_DAY01_知识点版.
RDMBS2_DAY01
mysql 主从同步
1 主从同步介绍(什么主从同步结构):存储数据的服务结构 能够实现数据的自动同步(也就是数据备份功能)
实现数据自动同步的服务结构
主服务器(master):接受客户端访问连接
从服务器(slave):自动同步主服务器数据
2 主从同步工作过程
Master服务器 : 启用binlog日志
Slave服务器:
Slave_IO:复制master主机 binlog日志文件里的SQL命令到本机的relay-log文件里。
Slave_SQL:执行本机relay-log文件里的SQL语句,实现与Master数据一致。
3 主从同步结构模式
一主一从同步结构 (主从角色的数据库服务器各有一台)
一主多从同步结构 (主角色的服务器仅有1台 从角色的数据库服务器有多台)
主从从同步结构 (给一主一从结构中的从服务器 也配置从服务器)
主主同步结构 ( 2台数据库服务器 彼此是对方的主服务器 同时还是对方的从服务器)
4 配置主从同步
第一步 配置master服务器
具体步骤如下:
1) 启用binlog日志文件
2)用户授权
3)查看日志信息
第二步 配置slave服务器
具体步骤如下:
1) 指定server_id 并重启mysqld服务
2)确保数据一致(如果一致的此步骤可以省略)
3)指定主服务器信息
4)启动slave进程
5)查看状态 (IO线程和 SQL线程必须同时是YES 状态)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第一种同步结构 (一主一从同步结构)
第一步 配置master服务器 192.168.4.51
具体步骤如下:
1) 启用binlog日志文件
2)用户授权
3)查看日志信息
#查看到的日志名和偏移量是给 从服务器使用的
第二步 配置slave服务器 192.168.4.52
具体步骤如下:
1) 指定server_id 并重启mysqld服务
2)确保数据一致(如果一致的此步骤可以省略)
3)指定主服务器信息
4)启动slave进程
5)查看状态 (IO线程和 SQL线程必须同时是YES 状态)
测试主从同步的配置
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
第二种同步结构 (一主多从同步结构)
创建1台新的数据库服务器 配置地址是 192.168.4.53
把新数据库服务器也同时配置为192.168.4.51 的从服务器
在数据库服务器host53 做如下配置:
配置slave服务器
具体步骤如下:
1) 指定server_id 并重启mysqld服务
2)确保数据一致(如果一致的此步骤可以省略)
具体操作如下:
第1步:在主服务器host51 对db1库做完全备份 ,然后把
备份文件拷贝给host53 主机
第2步:host53 主机 使用备份文件恢复数据
3)指定主服务器信息
#在备份文件里查看日志名和偏移量
4)启动slave进程 mysql> start slave;
5)查看状态 (IO线程和 SQL线程必须同时是YES 状态)
6) 查看数据
mysql> select * from db1.t1;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~配置主从从结构~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
环境准备:把 host53 主机恢复为独立的数据库服务器 与今天的host54 host55 配置 主从从同步结构
然后准备新的数据库服务器 host54 和 host55 (使用模板机链接克隆)
第1步:配置主数据库服务器 192.168.4.53
1) 启用binlog日志
2) 用户授权
3) 查看日志信息
第2步:配置主机192.168.4.54 配置+休息 共 15分钟到 10:05
说明:因为host54主机同时是2种角色,所以2种角色的配置都要有
1) 修改主配置文件 并重启mysqld服务
2)确保数据一致(如果一致的此步骤可以省略)
3)指定主服务器信息
4)启动slave进程
5)查看状态 (IO线程和 SQL线程必须同时是YES 状态)
第3步:配置主机192.168.4.55 (做host54主机的从服务器)
1) 指定server_id 并重启mysqld服务
2)指定主服务器信息(binlog日志名和偏移量要做host54主机查看后填写)
3)启动slave进程
4)查看进程状态
第4步:验证主从从结构的配置
#在主服务器Host53主机创建的数据 在主机host54 和 host55 都能看到
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~配置主主结构~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
准备 新数据库服务器 192.168.4.68 和 192.168.4.69
2台数据库服务器分别做彼此的从服务器和主服务器,2台服务器2种角色的配置都要有
第1步: 配置数据库服务 host68
1) 启用binlog日志文件
2)用户授权
3)查看日志信息
第2步: 配置数据库服务 host69
1) 启用binlog日志文件
2)用户授权
3)查看日志信息
4) 指定主服务器信息(binlog日志名和偏移量要做host54主机查看后填写)
5)启动slave进程
6)查看状态信息
第3步:在host68 主机数据库管理员登录服务后
1) 把自己指定为host69 主机的slave 服务器
第4步:测试主主结构的配置
先在host68主机健库表插入记录 , 在host69 主机可以看到同样的数据
然后再在host69 库下的表插入新记录,在host68主机可以看到同样的数据
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mysql 主从同步模式
1)主从同步复制模式 可以在任意数据库服务器启用半同步服务模式 (统一在 192.168.4.50 主机 做实验)
主从数据库服务实现数据同步的工作方式
支持的工作方式:
第1种 异步复制模式(默认)
主服务器执行完一次事务后,立即将结果返给客户端,
不关心从服务器是否已经同步数据。
第2种 半同步复制模式
主服务器在执行完一次事务后,等待至少一台从服务器同步数据完成,
才将结果返回给客户端。
把主服务器和从服务器的工作模式都修改为半同步复制模式
方法1 命令行设置
好处:不要重启服务马上生效
安装模块
#安装master模块
MySQL> INSTALL PLUGIN rpl_semi_sync_master SONAME "semisync_master.so";
#安装slave模块
MySQL> INSTALL PLUGIN rpl_semi_sync_slave SONAME "semisync_slave.so";
#查看模块是否安装
mysql> SELECT plugin_name, plugin_status FROM information_schema.plugins
WHERE plugin_name LIKE "%semi%";
+----------------------+---------------+
| plugin_name | plugin_status |
+----------------------+---------------+
| rpl_semi_sync_master | ACTIVE |
| rpl_semi_sync_slave | ACTIVE |
+----------------------+---------------+
启用模块
#启用master模块
mysql> SET GLOBAL rpl_semi_sync_master_enabled=1;
#启用slave模块
mysql> SET GLOBAL rpl_semi_sync_slave_enabled=1;
#查看模块是否启用
MySQL> SHOW VARIABLES LIKE "rpl_semi_sync_%_enabled";
+------------------------------+-------+
| Variable_name | Value |
+------------------------------+-------+
| rpl_semi_sync_master_enabled | ON |
| rpl_semi_sync_slave_enabled | ON |
+------------------------------+-------+
方法2 永久配置 编辑主配置文件
vim /etc/my.cnf
[mysqld]
#安装模块
plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
#启用模块
rpl_semi_sync_slave_enabled=1
rpl_semi_sync_master_enabled=1
:wq
通过重启服务 验证半同步工作模式的永久配置
systemctl restart mysqld
MySQL> SHOW VARIABLES LIKE "rpl_semi_sync_%_enabled";
+------------------------------+-------+
| Variable_name | Value |
+------------------------------+-------+
| rpl_semi_sync_master_enabled | ON |
| rpl_semi_sync_slave_enabled | ON |
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化