DBA进阶
MySQL主从同步
主从同步介绍
- 实现数据自动同步的服务结构
- 主服务器:接受客户端访问链接
- 从服务器:自动同步主服务器数据
拓扑结构
主从同步原理
Master
-启用binlog日志
slave
-slave_IO:复制master主机binlog日志文件里的SQL命令到本机的relay-log文件里
-selaveSQL:执行本机的relay-log文件里的SQL语句,实现与Master数据一致
构建主从同步
构建思路
配置主服务器
-启用binlog日志,授权用户,查看binlog日志信息
配置从服务器
-设置server_id
-确保与主服务器数据一致
-制定主库信息
-启动slave程序
-查看状态信息
配置主服务器
修改主配置文件
-启用binlog日志 并重启服务
授权用户
- 用户权限replication slave
- 用户名自定义
- 客户端地址允许从服务器连接
- 密码自定义
查看日志信息
配置从服务器
修改主配置文件my.cnf
-server_id 不允许与主服务器server_id值相同
确保与主服务数据一致
- 在主服务器上备份数据,将备份文件拷贝给从服务器
- 从服务器使用备份文件恢复数据
- 在从服务器查看备份文件记录的binlog日志信息
指定主服务器信息
查看slave状态
确认IO线程、SQL线程都是YES状态
相关文件
-存放在数据库目录下
主从同步模式
主从同步结构
结构类型
拓扑结构
配置从服务器
配置从服务器53
配置主从从
拓扑机构
配置主服务器53
配置步骤
- 启用binlog日志
- 重启数据库服务
- 用户授权
配置从服务器54
配置步骤
- 修改配置文件
- 用户授权
- 指定主库信息
- 启动slave进程
配置从服务器55
配置步骤
- 修改配置文件
- 指定主库信息
- 启动slave进程
测试配置
测试步骤
- 在主库授权访问数据的连接用户
- 客户端连接主库,执行与权限匹配的sql操作
- 授权用户连接第一台从库,可以看到主库的数据
- 授权用户连接第二台从库,可以看到主库的数据
复制模式
复制模式介绍
异步复制(Asynchronous relication)
-主服务器执行完一次事务后,立即将结果返回给客户端,不关心从服务器是否已完成同步数据
半同步复制(Semisynchronous relication)
-介于异步同步和完全同步之间
-主服务器在执行完一次事务后,等待至少一台从服务器同步数据完成,才将结果返回给客户端
模式配置
查看是否允许动态加载模块
-默认允许
命令行加载插件
使用数据库管理员root用户连接服务配置
启动半同步复制
-半同步复制,默认是关闭的
永久启用半同步复制
-修改主配置文件 /etc/my.cnf
-在[mysqld]下添加
使用master和slave两种角色时须同时启用