首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql双主主从

基础概念

MySQL 双主主从(Dual Master Replication)是一种高可用性和数据冗余的架构设计,其中两个 MySQL 服务器都可以接受写操作,并且相互之间进行数据同步。这种架构通常用于需要高可用性和负载均衡的场景。

优势

  1. 高可用性:当一个主服务器出现故障时,另一个主服务器可以接管服务,保证系统的可用性。
  2. 负载均衡:两个主服务器可以分担写操作的负载,提高系统的整体性能。
  3. 数据冗余:数据在两个主服务器之间同步,确保数据的冗余和安全性。

类型

MySQL 双主主从通常通过以下几种方式实现:

  1. 基于 GTID(Global Transaction Identifiers)的复制:这是 MySQL 5.6 及以上版本推荐的复制方式,通过 GTID 来标识事务,确保数据的一致性和复制的可靠性。
  2. 基于二进制日志的复制:这是传统的复制方式,通过二进制日志来同步数据。

应用场景

  1. 高并发写操作:适用于需要处理大量写操作的场景,如电商平台的订单系统、社交网络的数据更新等。
  2. 高可用性要求:适用于对系统可用性要求极高的场景,如金融系统、在线支付系统等。

常见问题及解决方法

问题:数据不一致

原因:在双主主从架构中,如果两个主服务器之间的复制出现延迟或中断,可能会导致数据不一致。

解决方法

  1. 监控复制状态:定期检查两个主服务器之间的复制状态,确保复制正常进行。
  2. 设置合理的复制延迟阈值:当复制延迟超过一定阈值时,触发报警或自动修复机制。
  3. 使用 GTID:GTID 可以更好地保证数据的一致性,减少数据不一致的风险。

问题:主服务器故障

原因:主服务器硬件故障、网络问题或软件错误可能导致主服务器无法正常工作。

解决方法

  1. 自动故障转移:配置自动故障转移机制,当主服务器故障时,自动将流量切换到备用主服务器。
  2. 定期备份:定期对主服务器进行数据备份,确保在故障发生时可以快速恢复数据。
  3. 监控和报警:实时监控主服务器的状态,一旦发现异常,立即触发报警。

问题:复制冲突

原因:当两个主服务器同时修改同一条记录时,可能会导致复制冲突。

解决方法

  1. 应用层冲突解决:在应用层实现冲突检测和解决机制,确保数据的一致性。
  2. 使用分布式锁:在修改数据时使用分布式锁,避免多个主服务器同时修改同一条记录。
  3. 设计合理的数据模型:尽量避免在多个主服务器上同时修改同一条记录的情况。

示例代码

以下是一个简单的 MySQL 双主主从配置示例:

主服务器 1 配置(my.cnf)

代码语言:txt
复制
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW
gtid_mode = ON
enforce_gtid_consistency = ON

主服务器 2 配置(my.cnf)

代码语言:txt
复制
[mysqld]
server-id = 2
log-bin = mysql-bin
binlog-format = ROW
gtid_mode = ON
enforce_gtid_consistency = ON

从服务器配置(my.cnf)

代码语言:txt
复制
[mysqld]
server-id = 3
relay-log = mysql-relay-bin
log-slave-updates = 1
read-only = 1

启动复制

在主服务器 1 上执行:

代码语言:txt
复制
CHANGE MASTER TO
MASTER_HOST='主服务器2的IP',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_AUTO_POSITION=1;
START SLAVE;

在主服务器 2 上执行:

代码语言:txt
复制
CHANGE MASTER TO
MASTER_HOST='主服务器1的IP',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_AUTO_POSITION=1;
START SLAVE;

参考链接

MySQL 官方文档 - 复制

腾讯云 MySQL 产品

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL主从配置——

MySQL主从配置—— 本人是测试环境,准备了两台安装好mysql的服务器(masterA和masterB),可以保证没数据写入,否则需要先将两台服务器上的数据一致,然后再进行主从配置,步骤是:先...环境 MySQL)架构思路: 两台mysql都可读写,互为主备,默认只使用一台(masterA)负责数据的写入,另一台(masterB)备用; masterA是masterB的主库,masterB...又是masterA的主库,它们互为主从; 所有提供服务的从服务器与masterB进行主从同步(即可实现多从); 架构图 搭建主从配置 创建主从同步用户 masterA: [root@adailinux...] datadir = /data/mysql socket = /tmp/mysql.sock server_id = 1 #指定server-id,必须保证主从服务器的...: Yes 主从同步测试 在masterA上创建一个库: mysql> create database adai0001; Query OK, 1 row affected (0.00 sec) mysql

1.3K40

配置MySQL主从引发的反思 原

记一次mysql配置全过程 [danger] 强烈建议在执行本节所有操作前将所有操作命令操作copy到Sublime Text编辑器替换port为要配置主从mysql实例对应的端口,避免误操作...搭建mysql结构 配置文件 数据库配置示例文件(Attention: 因为数据库要配置主模式,所以在部署时主库和从库的server-id一定不能一样): $ cat 3314.cnf [mysqld3314...mysql复制的模式: 主从复制: 主库授权从库远程连接,读取binlog日志并更新到本地数据库的过程;主库写数据后,从库会自动同步过来(从库跟着主库变); 复制: 主从相互授权连接,读取对方...Note:如果需要新从库和主库构建集群,从库必须不能接受任何写请求!!!...问题处理 如果搭建过程中发现slave状态错误,应立刻停止slave(stop slave),检测操作步骤,排查错误,重建主从! 如果是恢复中的一个节点,必须先停止2个节点主从同步。

95830
  • Mysql主从同步(1)-主从环境部署梳理

    4)Mysql复制的模式 1--主从复制:主库授权从库远程连接,读取binlog日志并更新到本地数据库的过程;主库写数据后,从库会自动同步过来(从库跟着主库变); 2--复制:主从相互授权连接...(提升性能) 6)Mysql主从复制工作流程细节     1)MySQL支持单向、异步复制,复制过程中一个服务器充当服务器,而一个或多个其它服务器充当从服务器。...log保存周期: expire_logs_days=14 --------------------------下面记录下mysql主从同步环境的实施过程----------------------...主从同步的效果 现在数据库上写入新数据 mysql> unlock tables; #解锁,否则新数据无法写入 mysql> insert into huanqiu.haha values(100...而从库只能读不能写,一旦从库有写入数据,就会造成主从数据不一致! 下面就说下Mysql复制环境,在slave上更新数据时,master也能自动同步过来。

    2.4K51

    mycat主从主从复制和读写分离实现

    192.168.247.130() 192.168.247.132 (从) 192.168.247.133(备用) 192.168.247.134(从) 2.配置从复制模式....* TO 'slave'@'%' IDENTIFIED BY '123123'; 然后在两个从库的mysql中执行如下命令,由于我们是从,所以需要将ip指定对应的主机ip,每个从机指定不同的主机...原因是我们这的从并不是写的,也就是实际上写入的时候只有一个。还有如果其中一个主机宕机,肯定新上位的主机数据要一直的才行。 ? ?...此时从的主从模式已经搭建完毕,当在主机上插入一条数据,此时可以看到其余3台上面都有了相应的数据 ? ? ? ?...-1 表示不自动切换# 2 基于 MySQL 主从同步的状态决定是否切换。

    1K30

    MySQL主从复制与复制

    数据同步我们可以通过MySQL内部配置就可以轻松完成,主要有主从复制和复制。...完成主从复制配置       3.4、测试主从复制             在192.168.95.12中             mysql>SLAVE START;   #开启复制             ...主从复制的配置就是如此的简单。 4、MySql复制      4.1、实现原理             复制即在两台MySQL主机内都可以变更数据,而且另外一台主机也会做出相应的变更。...    4.3、开始构建复制            因为主复制是两个主从复制组合一起,所以我就接着上面主从复制接着配置。            ...完成复制配置 回到顶部     4.4、测试复制            分别开启slave start;            mysql>SHOW SLAVE STATUS\G   #查看主从复制是否配置成功

    1.1K70

    MySQL主从复制与复制

    阅读目录 1、简介 2、环境说明 3、主从复制      3.1、MySQL      3.2、配置文件     3.3、开始构建主从复制       3.4、测试主从复制 4、MySql复制      ...数据同步我们可以通过MySQL内部配置就可以轻松完成,主要有主从复制和复制。...主从复制的配置就是如此的简单。 4、MySql复制      4.1、实现原理             复制即在两台MySQL主机内都可以变更数据,而且另外一台主机也会做出相应的变更。...    4.3、开始构建复制            因为主复制是两个主从复制组合一起,所以我就接着上面主从复制接着配置。            ...完成复制配置     4.4、测试复制            分别开启slave start;            mysql>SHOW SLAVE STATUS\G   #查看主从复制是否配置成功

    1.6K50

    MySQL主从复制与复制

    数据同步我们可以通过MySQL内部配置就可以轻松完成,主要有主从复制和复制。...完成主从复制配置       3.4、测试主从复制             在192.168.95.12中             mysql>START SLAVE;   #开启复制             ...主从复制的配置就是如此的简单。 4、MySql复制      4.1、实现原理             复制即在两台MySQL主机内都可以变更数据,而且另外一台主机也会做出相应的变更。...    4.3、开始构建复制            因为主复制是两个主从复制组合一起,所以我就接着上面主从复制接着配置。            ...完成复制配置     4.4、测试复制            分别开启start slave;            mysql>SHOW SLAVE STATUS\G   #查看主从复制是否配置成功

    89120

    mysql5.7()复制 原

    准备工作 (本文永久地址:http://woymk.blog.51cto.com/10000269/1922786) 配置环境:centos6.9,mysql5.7 先安装、配置好两台MySQL服务器...在server2操作 vi /etc/my.cnf 修改或增加: server-id=2 #这个数值不能和一样 log-bin=mysql-bin # 启用二进制日志 auto-increment-increment...= 2  #每次增长2 auto-increment-offset = 2 #设置自动增长的字段的偏移量 可选参数(2选1,这两个参数设置成和一样): replicate-do-db=db1,db2...回到server1上操作 运行mysql客户端 mysql -uroot -p 取消server1上数据库的锁定 mysql> unlock tables; 执行以下命令 stop slave; ...复制测试 经测试,复制配置成功。 具体过程略,请自行请参考上一篇 mysql5.7主从配置 里的方法。

    2.5K20

    MySQL 高可用——

    MySQL的高可用方案一般有如下几种: keepalived+,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+,MHA和PXC。...Keepalived+mysql来实现MySQL-HA,我 们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配置虚 拟IP,实现当其中的一台...一、配置两台MySQL同步 该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二日志记录这些改 变。MySQL将事务写入二进制日志。...同步就是两台机器互为主的关系,在任何一台机器上写入都会同 步。 若mysql主机开启了防火墙,需要关闭防火墙或创建规则。...注:若MYSQL服务器已经存在,只是后期才搭建从MYSQL服务器,在置配数据同步前应先将 MYSQL服务器的要同步的数据库拷贝到从MYSQL服务器上(如先在MYSQL上备份数据库,再用备份 在从MYSQL

    2.1K21

    mysql 5.6配置同步

    mysql8.0已经发布几年了,现在还有使用mysql5.6的情况,今天我们来温故一下mysql5.6的配置, 配置 MySQL 5.6 同步的步骤如下: 请注意,你需要在两个服务器上都执行这些步骤...1.配置 my.cnf 文件 打开 /etc/my.cnf 文件并添加以下配置: 在 Master1 上: [mysqld] server_id=1 log_bin=mysql-bin replicate-do-db...2.重启 MySQL 服务 使用以下命令重启 MySQL 服务: sudo service mysql restart 3....在 MySQL 交互式命令行中输入: CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO...以上就是配置 MySQL 5.6 同步的步骤。请注意,同步需要小心处理,因为它可能导致数据不一致的问题,如双重写入。因此,建议只在熟悉这个概念的情况下使用它,并确保有恰当的冲突解决策略。

    32320

    基于HAVIP +Keepalived部署MySQL

    /product/215/20186 唯一需要注意的是在部署时要填写对端所有的IP以及优先级的设置 建议主从分开进行部署使用 image.png 实现目的 1.一多从架构可以缓解读的压力,但是一旦宕机了...,就不能写了 多多从架构可避免该问题 01和02互为主 03和04为从库 2.安装MySQL vim /etc/yum.repos.d/mysql.repo [Mysql] name = Mysql....000001,Position为154即可 查看02 image.png 在从slave服务器上设置Master: 在02和03的为01,同理01和04的为02。...搞清楚主从关系后,在02和03执行如下操作: CHANGE MASTER TO MASTER_HOST='172.16.48.3', MASTER_USER='copy01', MASTER_PASSWORD...01中创建表 image.png 在04中查询 image.png image.png image.png 确定同步无异常 2.测试HAVIP——使用root账户登陆正常 qinhl——多从环境

    1.4K20

    MySQL主从备份和备份配置+Keepalived+MySQL读写分离

    一、MySQL主从备份 为保证数据库的安全和效率,可以使用主从备份,当有写的操作可以在服务器上操作,操作完之后备份到从服务器上,当有读操作时可以访问从服务器,这样在一定程度上保证了数据库的安全,当服务器的...test数据库操作,看是否这些操作会同步到从服务器上 二、MySQL备份 备份的设置就是将从服务器上的设置在服务器上操作一遍,服务器上的操作在从服务器上操作一遍,这里就不再赘述 三、 MySQL...服务,成功 也可以查出数据库 keepalived+mysql主从同步成功 四、MySQL读写分离 mysql读写分离是在mysql主从同步的基础上做的,mysql服务器负责写,多台mysql从服务器负责读...,mysql主从同步仅仅是把mysql服务器的数据库同步到了mysql从服务器上,如果要实现读写分离,还需要一个服务器去协调。...主从备份+mysql读写分离配置完成。

    3.2K30

    MySQL数据同步【热备】

    数据库同步方式   两台服务器互为主从,双向同步数据 ? 创建数据库表  为试验双向同步,简单编写了一个创建数据库和一个用户表的语句。  并分别在服务器242和243上的MySQL中执行语句。...C:\Program Files\MySQL\MySQL Server X.Y)....设置主机并启动从服务器线程 服务242上用MySQL命令行工具执行如下语句: mysql> stop slave; mysql> change master to master_host='192.168.206.243...Show Slave Status 部分释义  ① Slave_IO_Status:线程已经连接上服务器,正等待二进制日志事件到达。如果服务器正空闲,会持续较长的时间。...故障排除  试验过程中遇到几个主要问题: 1.MySQL版本间复制兼容性 官方是推荐使用最近的版本,复制功能在不断改进中,同时推荐主从服务器使用相同的版本;     为了避免出现一些兼容性的问题,这里两台数据库服务器上的

    2.5K100

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券