我的编程空间,编程开发者的网络收藏夹
学习永远不晚

5:使用GTID进行复制

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

5:使用GTID进行复制

  1. 服务器 192.168.1.1(master) 192.168.1.2(slave)
  2. 同步服务器,只有当已经在复制但不使用gtid的服务器时才需要此步骤,,对于新服务器,请继续执行步骤5。将每个服务器上的read_only系统变量设置为ON,使服务器成为只读的,方法是发出以下命令:
    • 分别在master和slave上
    • mysql> SET @@global.read_only = ON;
    • Query OK, 0 rows affected (0.00 sec)
  3. 等待所有正在进行的事务提交或回滚。然后,让slave赶上master。在继续之前,确保slave已经处理了所有更新,这一点非常重要
  4. 将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
    • #确实停掉了
  5. 启用两台服务器并开启 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配置
      • 5:使用GTID进行复制
      • 参数解释
        • log-bin 表示开启二进制日志
        • server_id 这是唯一的,用来区分服务器,在复制拓扑结构中,不能出现相同的server_id
        • gtid_mode 表示开启GTID
        • enforce_gtid_consistency 确保仅记录对基于GTID的复制安全的语句
    • slave配置
      • 5:使用GTID进行复制
      • 参数解释(相同参数的解释请参考上面)
        • skip-slave-start 指定了--skip-slave-start的话,那么mysql启动的时候复制就不会启动
    • 然后启动master和slave的mysql,这时候可以将master的只读模式给禁用了
  6. 配置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。
  7. 进行一个新的备份
    • 由于您已启用GTID,因此在启用GTIDs之前创建的现有备份现在无法在这些服务器上使用。。此时进行一个新的备份,这样您就不会没有一个可用的备份。
  8. 在slave上
    • 启动复制
    • mysql> start slave;
    • Query OK, 0 rows affected (0.00 sec)
    • #查看是否连接上了master
    • mysql> show slave status\G
    • 5:使用GTID进行复制
    • 看到了两个YES,那就说明没问题了
    • 禁用只读模式
    • 仅当您在步骤2中将服务器配置为只读时,才需要执行以下步骤。要允许服务器再次开始接受更新,请发出以下语句:
    • mysql> SET @@global.read_only = OFF;
    • Query OK, 0 rows affected (0.00 sec)
  9. 在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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

5:使用GTID进行复制

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL之GTID复制怎么使用

本篇内容主要讲解“MySQL之GTID复制怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL之GTID复制怎么使用”吧!从MySQL 5.6.5开始新增了一种基于GTID的复制方式
2023-06-30

使用Office剪贴板进行复制和粘贴

使用Office剪贴板进行复制和粘贴可以帮助提高您在Office程序中的工作效率。以下是使用剪贴板进行复制和粘贴的步骤:1. 打开要复制内容的文件或文档,并选择要复制的文本、图像或其他内容。2. 在主菜单中,点击“主页”选项卡。3. 在“剪
2023-09-13

Android使用socket进行二进制流数据传输

这篇文章主要介绍了Android使用socket进行二进制流数据传输,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2023-05-15

Android使用MediaRecorder类进行录制视频

编程网提醒大家使用MediaRecorder录音录像的设置代码步骤一定要按照API指定的顺序来设置,否则报错 步骤为: 1、设置视频源,音频源,即输入源 2、设置输出格式 3、设置音视频的编码格式 一、首先看布局文件,这里有一个Surfac
2022-06-06

编程热搜

目录