5:使用GTID进行复制
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,服务器 192.168.1.1(master) 192.168.1.2(slave)同步服务器,只有当已经在复制但不使用gtid的服务器时才需要此步骤,,对于新服务器,请继续执行步骤5。将每个服务器上
千家信息网最后更新 2024年11月30日5:使用GTID进行复制
- 服务器 192.168.1.1(master) 192.168.1.2(slave)
- 同步服务器,只有当已经在复制但不使用gtid的服务器时才需要此步骤,,对于新服务器,请继续执行步骤5。将每个服务器上的read_only系统变量设置为ON,使服务器成为只读的,方法是发出以下命令:
- 分别在master和slave上
- mysql> SET @@global.read_only = ON;
- Query OK, 0 rows affected (0.00 sec)
- 等待所有正在进行的事务提交或回滚。然后,让slave赶上master。在继续之前,确保slave已经处理了所有更新,这一点非常重要
- 将master和slave上面的mysql服务都停止
- [root@iz2ze3bc56k6c4f3rsiahvz ~]# service mysqld stop
- Redirecting to /bin/systemctl stop mysqld.service
- #查看是否停止掉了
- [root@iz2ze3bc56k6c4f3rsiahvz ~]# ps -ef | grep mysql
- root 31143 30584 0 23:09 pts/0 00:00:00 grep --color=auto mysql
- #确实停掉了
- 启用两台服务器并开启 GTIDs。要启用基于GTID的复制,必须在启用GTID模式的情况下启动每个服务器,方法是将gtid_mode变量设置为ON,并启用enforce_gtid_consistency变量以确保仅记录对基于GTID的复制安全的语句。此外,在配置slave设置之前,您应该使用-skip-slave-start 选项启动slaves。为什么需要指定--skip-slave-start,因为指定了--skip-slave-start的话,那么mysql启动的时候复制就不会启动。由于在MySQL 5.7.5中添加了mysql.gtid_executed表,因此为了使用GTIDs启用二进制日志记录不是必须的。这意味着您可以使用GTIDs但没有二进制日志记录的slave服务器。Masters必须始终启用二进制日志记录,以便能够复制。
- 基于上面的讲述,我们需要针对master和slave进行不同的配置,下面我就贴上master和slave的配置图
- master配置
- 参数解释
- log-bin 表示开启二进制日志
- server_id 这是唯一的,用来区分服务器,在复制拓扑结构中,不能出现相同的server_id
- gtid_mode 表示开启GTID
- enforce_gtid_consistency 确保仅记录对基于GTID的复制安全的语句
- 参数解释
- slave配置
- 参数解释(相同参数的解释请参考上面)
- skip-slave-start 指定了--skip-slave-start的话,那么mysql启动的时候复制就不会启动
- 参数解释(相同参数的解释请参考上面)
- 然后启动master和slave的mysql,这时候可以将master的只读模式给禁用了
- 配置slave以使用基于GTID的自动定位。告诉slave使用具有基于GTID的事务的master作为复制数据源,并使用基于GTID的自动定位而不是基于文件的定位。在slave上发出CHANGE MASTER TO语句,包括语句中的MASTER_AUTO_POSITION选项,告诉slave对应master的事务是由GTID识别的。MASTER_LOG_FILE选项和MASTER_LOG_POS选项都不能与MASTER_AUTO_POSITION设置为1一起使用,尝试这样做会导致CHANGE MASTER TO语句失败并显示错误。
- 在master上
- #创建复制账号
- mysql> CREATE USER 'wangwu'@'%' IDENTIFIED BY 'Wangwu@123456';
- Query OK, 0 rows affected (0.00 sec)
- mysql> GRANT REPLICATION SLAVE ON . TO 'wangwu'@'%';
- Query OK, 0 rows affected (0.01 sec)
- #创建后一定要远程登录一下账号,验证一下是否能登录
- 在slave上
- 发出CHANGE MASTER TO
- mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.1' ,MASTER_USER = 'wangwu',MASTER_PASSWORD = 'Wangwu@123456', MASTER_AUTO_POSITION = 1;
- Query OK, 0 rows affected, 2 warnings (0.01 sec)
- 参数讲解
- MASTER_HOST master的ip地址
- MASTER_USER master的复制用户名
- MASTER_PASSWORD master的复制用户的密码
- MASTER_AUTO_POSITION 当将MASTER_AUTO_POSITION = 1与CHANGE MASTER TO一起使用时,slave尝试使用基于gtid的复制协议连接到master。
- 在master上
- 进行一个新的备份
- 由于您已启用GTID,因此在启用GTIDs之前创建的现有备份现在无法在这些服务器上使用。。此时进行一个新的备份,这样您就不会没有一个可用的备份。
- 在slave上
- 启动复制
- mysql> start slave;
- Query OK, 0 rows affected (0.00 sec)
- #查看是否连接上了master
- mysql> show slave status\G
- 看到了两个YES,那就说明没问题了
- 禁用只读模式
- 仅当您在步骤2中将服务器配置为只读时,才需要执行以下步骤。要允许服务器再次开始接受更新,请发出以下语句:
- mysql> SET @@global.read_only = OFF;
- Query OK, 0 rows affected (0.00 sec)
- 在master上面添加一些数据,然后在slave中是否能看到,如果能看到就说明没问题,如果看不到,就及时查看slave的错误日志
参考资料:https://dev.mysql.com/doc/refman/5.7/en/replication-gtids-howto.html
PREV:4:GTID简单介绍 https://blog.51cto.com/itzhoujun/2352688
NEXT: 6:多源复制的实现 https://blog.51cto.com/itzhoujun/2353940
服务
服务器
配置
语句
日志
二进制
参数
备份
步骤
事务
变量
模式
定位
解释
相同
安全
数据
方法
时候
用户
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
怀旧服联盟选择什么服务器
布鲁转服都转那个服务器去了
宝盈人工智能和富国互联网科技
3d模型软件开发现状
联想电视机网络无法连接到服务器
网络技术逆向学习法
阿里云服务器登录直播源码
答辩问题关于 数据库的
首席网络安全官和联络员
vnr数据库没有网络
计算机网络技术是什么系别
连接上数据库进行表创建
苹果笔记本服务器放到桌面
甘肃省中小学网络技术培训
公司起诉软件开发人员
msde数据库ip
计算机网络技术应用和发展
网络安全法安全监管机构
江苏高密度服务器虚拟主机
游戏服务器被关闭怎么办
电脑老是显示服务器被限制
宿迁工业网络技术供应商家
网络安全的收藏
软件开发的付款进度表
安徽芜湖软件开发培训怎么选
数据库监控哪家的好一些
高校网络安全教育宣传
mysql数据库平均值如何计算
快速找到两列相同的数据库
我的世界服务器权限