Mysql(1)--主从复制(position和gtid)

1.概念

  • 指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器
  • 主服务器中的数据自动复制到从服务器中
  • 即就是主数据库做什么,从数据库做什么

2.主从复制工作原理

  • Master数据库只要发生变化,立马记录到Binary log日志文件中
  • Slave数据库启动一个I/O thread连接Master数据库,请求Master变化的二进制日志
  • Slave I/O获取到的二进制日志,保存到自己的Relay log日志文件中
  • Slave有一个SQL thread定期检查Realy log是否变化,变化就更新数据
    在这里插入图片描述

3.使用mysql主从的原因

  • 实现服务器的负载均衡
  • 通过复制实现数据的异地备份
  • 提高数据库系统的可用性

4.主从复制的原理(position)

  • 异步复制(主从复制)master节点不会关心slave节点的状态,只需要写自己的数据即可
  • 能不能完成复制看slave节点的io线程和sql线程是否开启
  • mysql的主从配置又叫replication,AB复制,基于binlog二进制日志
  • 主数据库必须开启binlog二进制日志才能进行复制
  • mysql的主从复制(异步复制)(基于position)把一个事件拆开来复制
  • 并不是以一个完整的事件为单位来进行复制
主库开启binlog日志(设置log-bin参数)
主从server-id不同
从库服务器能连同主库
master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
从库生成两个线程,一个i/o线程,一个SQL线程,i/o线程去请求主库的binlog,sql线程进行日志回放来复制
slave将master的binary log events拷贝到它的中继日志(relay log);
slave重做中继日志中的事件,将更改应用到自己的数据上。
  • 注意:
  • 一开始两个mysql必须一模一样,否则会报错 master自己做自己的,写在自己的日志里
  • slave能否同步成功取决于IO线程,和SQL线程回放日志 IO通过联系master拿到master的二进制日志,SQL回放日志
  • slave节点的数据总比master节点的数据慢

5.实验步骤

实验环境:

  • master节点:number1,ip为172.25.254.1
  • slave节点:number2,ip为172.25.254.2
  • 测试:真机,ip为172.25.254.76

配置master节点(number1上)

  • 在官网上下载mysql的包mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar
  • tar xf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar #解压
  • 安装所需要的rpm包
yum install mysql-community-client-5.7.25-1.el7.x86_64.rpm 
mysql-community-common-5.7.25-1.el7.x86_64.rpm 
mysql-community-libs-5.7.25-1.el7.x86_64.rpm 
mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm 
mysql-community-server-5.7.25-1.el7.x86_64.rpm -y
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL主从复制GTID(Global Transaction Identifier)是一种用于标识和跟踪事务的机制。GTID是一个全局唯一的标识符,用于确保主从复制中每个事务的唯一性和一致性。它在MySQL 5.6版本中引入,并在之后的版本中得到改进和增强。 使用GTID进行主从复制可以简化配置和管理,并提供更可靠的数据同步。下面是使用GTID进行主从复制的基本步骤: 1. 在主服务器上启用GTID功能: 在主服务器的配置文件(my.cnf)中添加以下参数: ``` [mysqld] server-id=1 log-bin enforce-gtid-consistency=true ``` 启用GTID功能并设置服务器ID和二进制日志。 2. 在从服务器上启用GTID功能: 在从服务器的配置文件中添加以下参数: ``` [mysqld] server-id=2 enforce-gtid-consistency=true ``` 设置服务器ID和启用GTID功能。 3. 配置主从关系: 在主服务器上创建一个用于复制的用户,并授予适当的权限。 4. 在从服务器上配置主服务器信息: 在从服务器上执行以下命令: ``` CHANGE MASTER TO MASTER_HOST='主服务器IP', MASTER_USER='复制用户', MASTER_PASSWORD='复制用户密码', MASTER_AUTO_POSITION=1; ``` 这将配置从服务器以使用GTID复制并将其连接到主服务器。 5. 启动主从复制: 在从服务器上执行以下命令开始复制: ``` START SLAVE; ``` 从服务器将开始从主服务器接收和应用事务。 通过以上步骤,你可以使用GTID实现MySQL主从复制。这种方式可以提供更高的数据一致性和可靠性,并简化了配置和管理过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值