5:使用GTID进行复制
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,服务器 192.168.1.1(master) 192.168.1.2(slave)同步服务器,只有当已经在复制但不使用gtid的服务器时才需要此步骤,,对于新服务器,请继续执行步骤5。将每个服务器上
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
数据库怎么登陆
春考网络技术能考的专业
销售软件开发有前途吗
长城宽带能加服务器
数据库的远程同步备份软件
数据库tno是指课程名吗
cmd指令进入数据库
输入法的汉字数据库
数据库概念设计的策略
吉林软件开发培训
bcp文件是什么数据库
个人发现网络安全
进服务器命令m
二道区通用网络技术哪家好
如何预防网络安全问题论文
个体工商户用什么软件开发票
信息网络安全宣传ppt
局域网邮件服务器 邮件转发
电脑上怎么上服务器未响应
合肥视觉工控机服务器
服务器ip地址安全吗
旺旺吧是什么数据库
大数据计算机网络安全吗
信恩网络技术有限公司
数据库系统用户有哪些内容
三一重工服务器
数据库的端口号的使用
网络安全在我身边画
网络安全的规章制度有哪些
浙江一张图软件开发公司