MySQL双机热备主主同步

本文详细介绍了在RedHat6.5系统环境下,使用MySQL5.6.15版本实现双机热备的配置流程。主要内容涵盖环境说明、配置前准备、数据同步、配置热备等关键步骤,特别针对主主模式下的主机和从机配置进行了详尽的指导。

MySQL双机热备同步
主主模式配置说明手册

1 MySQL热备配置 2
1.1 环境说明 2
1.2 配置前准备 2
1.2.1 停止当前同步 2
1.2.2 数据同步 3
1.3 配置热备 3
1.3.1 配置A作为主机, B作为从机 3
1.3.2 配置B作为主机, A作为从机 7

1MySQL热备配置

1.1 环境说明

系统:RedHat 6.5
MySQL版本:5.6.15 使用两台MySQL服务器(以下对两台MySQL服务器分别简称为A、B):
A:10.0.42.221 B:10.0.42.228 需要同步的数据库:
A服务器上的现存数据库 test221

1.2配置前准备
1.2.1停止当前同步

分别检查A、B 两台MySQL 服务器的主备状态,并停止同步。
#mysql>show slave status\G;
#mysql>stop slave;

1.2.2数据同步

以A的数据库数据为基准,将A的数据同步到B,保证配置热备前A和B的数据一致。具体的步骤如下:

  1. 对A要热备的数据库加读锁
    #mysql>use test221;
    #mysql>flush tables with read lock;
  2. 使用mysqldump 工具导出数据
    备份特定数据库(如test221):
    #mysqldump -u root -pXXXX test221> /home/dataBak.dump
    或备份所有的数据库:
    #mysqldump -u root -pXXXX --all-databases > /home/dataBak.dump
  3. 解锁数据库
    #mysql>unlock tables;
  4. 将A备份的文件dataBak.dump拷贝到B服务器上,并导入
    #mysql -u root -pXXXX < dataBak.dump
1.3配置热备
1.3.1配置A作为主机, B作为从机

配置A主机

  1. 给其它服务器赋予权限
    #mysql>GRANT REPLICATION SLAVE,RELOAD,SUPER ON . TO ‘kmailBack’@‘10.0.42.228’ IDENTIFIED BY ‘KmailBackUp2018!’ WITH GRANT OPTION;

kmailBack 和KmailBackUp2018!为在远程机器上访问本主机的用户名和密码,配置从机B时会用到;10.0.42.228为被授权访问本数据库的IP地址(也就是B的IP地址),若从机个数过多,可以配置为%。

  1. 修改/etc/my.cnf文件
    参数名称 修改后的值 描述 必填
    bind-address 10.0.42.228 配置为B的IP,以保证该主机可以被B访问。如果需要被多个机器访问,可以配置成0.0.0.0 是
    server-id 221 指定主机ID,不可为0,不可与其他服务器的该配置重复 是
    log-bin mysql-bin 开启binary log日志 是
    binlog-do-db test221 配置为要同步的数据库名称。配置该项只会将该数据库的改动记录到binary log日志中。不配置则默认把A(包括新建数据库等)引起的变化记录到binary log。 否
    auto-increment-increment 2 主键自增增量值,建议配置为主机总个数值。
    主从模式下不需要配置该项。若主主模式下,同一个时间只有一个主机对数据库进行改动,可不配置该项。 否
    auto-increment-offset 1 主键初始值,建议设置为主机的序号值。不可超过auto-increment-increment的值。
    主从模式下不需要配置该项。若主主模式下,同一个时间只有一个主机对数据库进行改动,可不配置该项。 否

A主机修改后配置如下

  1. 重启MySQL服务

    #service mysqld restart

  2. 查看Master状态
    #mysql> show master status;
    ±---------------±---------±------------------±---------------------±-----------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    ±---------------±---------±------------------±----------------------±----------------------+
    | mysql-bin.000004 | 120| test221 | | |
    ±-----------------±---------±-------------±-----------------±------------------------------+
    1 row in set (0.00 sec)

记录File 和 Position的值,在配置从服务器的时候需要用到。
配置B主机

  1. 修改/etc/my.cnf文件
    参数名称 修改后的值 描述 必填
    server-id 228 指定主机ID,不可与其他主机的该配置重复,不可为0 是
    replicate-do-db test221 指定要复制的数据库。如不需要指定要备份的数据库或A配置了binlog-do-db参数,此处可不配置。 否

B主机修改后配置如下

  1. 重启MySQL服务
    #service mysqld restart

  2. 配置Master主机
    #mysql>CHANGE MASTER TO MASTER_HOST=‘10.0.42.221’, MASTER_USER=‘kmailBack’,MASTER_PASSWORD=‘KmailBackUp2018!’, MASTER_LOG_FILE=‘mysql-bin.000004’,MASTER_LOG_POS=120;

‘mysql-bin.000004’ 和 120 的具体值分别对应于A主机执行#mysql> show master status; 命令得到的File 和 Position的值

  1. 开启主从同步,并查看slave线程启动状态
    #mysql>start slave;
    #mysql>show slave status\G;
    1. row
    Slave_IO_State: Waiting for master to send event
    Master_Host: 10.0.42.221
    Master_User: root
    Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000004
    Read_Master_Log_Pos: 120
    Relay_Log_File: mail-relay-bin.000004
    Relay_Log_Pos: 283
    Relay_Master_Log_File: mysql-bin.000004
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    Replicate_Do_DB: test221
    ···
    Last_IO_Errno: 0
    Last_IO_Error:
    Last_SQL_Errno: 0
    Last_SQL_Error:
    ···

其中,当Slave_IO_Running 和 Slave_SQL_Running 的值都为Yes时,才表示配置成功。如果有任一个出现问题,可查看查询结果下面的错误信息进行定位。

  1. 测试
    A主机在test221数据库新建表TB_USER并向TB_USER表中插入1000条数据,B主机可正常同步。
1.3.2配置B作为主机, A作为从机

配置B主机

  1. 给其它服务器赋予权限
    #mysql>GRANT REPLICATION SLAVE,RELOAD,SUPER ON . TO ‘kmailBack’@‘10.0.42.221’ IDENTIFIED BY ‘KmailBackUp2018!’ WITH GRANT OPTION;

  2. 修改/etc/my.cnf文件
    参数名称 修改后的值 描述 必填
    bind-address 0.0.0.0 保证B主机可以A主机访问。如果主机过多,可以配置成0.0.0.0
    log-bin mysql-bin 开启binary log日志 是
    binlog-do-db test221 配置为要同步的数据库名称。配置该项只会将配置的数据库的改动记录到binary log日志中。不配置则默认把A上做的所有操作(包括新建数据库等)引起的变化记录到binary log。 否
    log-slave-updates 1 binary log日志执行之后,这些变化是否需要记入自己的binary log。当B主机需要作为另外一个主机的主服务器的时候需要打开。 单主主模式下该参数可不配置。双主互相备份,或者多主循环备份时需要配置。(eg:当A 和B配置了主主复制,B同时又作为C的主机时,若希望A做的修改能够同步到C,需要在B配置该项) 否
    auto-increment-increment 2 主键自增增量值,可配置为主主模式的主机个数。如果主主模式下,同一个时间只有一个主机对数据库进行改动,可不配置
    auto-increment-offset 2 主键初始值,建议第几个主机则配置为几,不可超过auto-increment-increment的值。如果主主模式下,同一个时间只有一个主机对数据库进行改动,可不配置。

B主机修改后配置如下:

  1. 重启MySQL服务
    #service mysqld restart
  2. 查看Master状态
    #mysql> show master status;
    ±---------------±---------±------------------±---------------------±-----------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    ±---------------±---------±------------------±----------------------±----------------------+
    | mysql-bin.000004 | 120 | test221 | | |
    ±-----------------±---------±-------------±-----------------±------------------------------+
    1 row in set (0.00 sec)

记录File 和 Position的值,在配置从服务器的时候需要用到。
配置A主机

  1. 配置Master主机
    #mysql>CHANGE MASTER TO MASTER_HOST=‘10.0.42.228’, MASTER_USER=‘kmailBack’,MASTER_PASSWORD=‘KmailBackUp2018!’, MASTER_LOG_FILE=‘mysql-bin.000004’,MASTER_LOG_POS=120;

  2. 开启主从同步,并查看slave线程启动状态
    #mysql>start slave;
    #mysql>show slave status\G;
    1. row
    Slave_IO_State: Waiting for master to send event
    Master_Host: 10.0.42.228
    Master_User: root
    Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000005
    Read_Master_Log_Pos: 120
    Relay_Log_File: mail-relay-bin.000004
    Relay_Log_Pos: 283
    Relay_Master_Log_File: mysql-bin.000005
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    Replicate_Do_DB: test221
    ···
    Last_IO_Errno: 0
    Last_IO_Error:
    Last_SQL_Errno: 0
    Last_SQL_Error:
    ···

  3. 测试
    在B主机,向test221数据库TB_USER表中插入1000条数据,A主机可正常同步。
    在A主机,向test221数据库TB_USER表中插入1000条数据,B主机可正常同步。

至此,主主模式配置完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值