`
wx1569063608
  • 浏览: 22614 次
文章分类
社区版块
存档分类
最新评论

mysql双主互备设置详细记录

 
阅读更多

mysql双主互备设置详细记录
1.环境详细信息:
    1.1 服务器A
            CentOS realse 6.8 final
            mysql,5.6.34
            192.168.31.133;
    1.2 服务器B,
            CentOS realse 6.8 final
            mysql,5.6.34
            192.168.31.132
2.说明
    2.1 对于一个mysql服务器,一般有两个线程来负责复制和被复制,当开启复制之后:
        2.1.1 作为主服务器Master,会把自己的每一次改动都记录到二进制日志binarylog中。(从服务器会负责来读取这个log, 然后在自己那里再执行一遍。)
        2.1.2 作为从服务器Slave,会用master上的账号登陆到master上,读取master的Binarylog,写入到自己的中继日志 relaylog,然后自己的sql线程会负责读取这个中继日志,并执行一遍。到这里主服务器上的更改就同步到从服务器上了。
3.设置详细步骤:
    3.1 在服务器A上创建专门用于备份的账户,在mysql中执行:
        grant replication slave on *.* to 'root_save'@'192.168.31.132' identified by 'root_save';
        其中192.168.31.132为B服务器的IP地址,前面的root_save为用户名,后面的root_save为密码
    3.2 开启主服务器(A服务器)的binarylog(配置my.cnf文件中的相关参数)
        #about master-slave
        #开启二进制日志
        log-bin=mysql-bin
        #设置二进制文件模式
        binlog_format=mixed
        #服务的ID,主从服务需要设置不同的值
        server-id=1

        #设置是否只读
        read-only=0
        #设置需要关注的数据库
        #binlog-do-db=i_test
        #设置需要忽略的数据库
        #which should be ignored
        binlog-ignore-db=mysql
        binlog-ignore-db=information_schema
        binlog-ignore-db=performance_schema
        #how many db servers
        auto-increment-increment = 10
        # 设置增长的初始值
        auto-increment-offset=2
        #end master-slave
    3.3 获取主服务器(A服务器)状态,和同步初态。
        3.3.1 先锁定需要同步的数据库,比如我们测试的i_test,在mysql中执行:
        use i_test;
        FLUSH TABLES WITH READ LOCK;
        3.3.2 导出数据库中的数据,在命令行中执行:
        mysqldump --master-data -u root -p i_test > i_test.sql
        3.3.3 查看A服务器的binary日志位置,在mysql中执行:
        show master status\G;
        执行结果如下:
        mysql> show master status\G;
        *************************** 1. row ***************************
                     File: mysql-bin.000007 #该参数在启动同步设置MASTER_LOG_FILE参数时使用
                 Position: 2879 #该参数在启动同步设置MASTER_LOG_POS参数时使用
             Binlog_Do_DB:
         Binlog_Ignore_DB: mysql,information_schema,performance_schema
        Executed_Gtid_Set:
        1 row in set (0.00 sec)

        ERROR:
        No query specified

        3.3.4 解锁数据库,在mysql中依次执行:
        use i_test;
        unlock tables;
    3.4 设置从服务器(B服务器)需要复制的数据库(配置my.cnf文件中的相关参数)
        #about master to slave
        log-bin=mysql-bin
        binlog-format=mixed
        #服务的ID,主从服务需要设置不同的值
        server-id=2

        #replicate-do-db=i_test
        #可以指定需要复制的数据库
        replicate-ignore-db=mysql
        #复制时需要排除的数据库
        replicate-ignore-db=information_schema
        replicate-ignore-db=performance_schema
        #中继日志的名字
        relay_log=mysqld-relay-bin
        #中继日志执行之后,这些变化是否需要计入自己的binarylog。 当你的B服务器需要作为另外一个服务器的主服务器的时候需要打开。  就是双主互相备份,或者多主循环备份。
        log-slave-updates=ON
        #about master to slave
    3.5 配置my.cnf文件之后重启mysql服务
    3.6 导入初态,开始同步
        在从服务器(B服务器)创建数据库,i_test,在mysql中执行:
        create database i_test;
        把刚刚从主服务器(A服务器上)导出的i_test.sql导入到从服务器(B服务器)的i_test数据库中,在命令行执行:
        mysql -u root -p i_test<i_test.sql
    3.7 开启同步
        在从服务器(B服务器)上执行
        CHANGE MASTER TO
        MASTER_HOST='192.***.***.***',#(A服务器IP)
        MASTER_USER='repl_user',#(A服务器创建的B服务器访问账号)
        MASTER_PASSWORD='hj3****',#(A服务器创建的B服务器访问账号的密码)
        MASTER_LOG_FILE='mysql-bin.000004',#(A服务器的当前二进制日志文件的名称)
        MASTER_LOG_POS=7145;#(A服务器的当前二进制日志文件的位置)
    3.8 重启从服务器(B服务器)的mysql服务
    3.9 查看从服务器(B服务器)的slave线程情况
        show slave status\G;
        只有在
        Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
        才说明配置成功,其中任意一个为NO都表示配置不成功,应当查看错误日志,进行查看。
    3.10 在主服务器(A服务器)上的i_test数据库中插入一条记录,在从服务器(B服务器)上进行查看,就能够正常的查看到了。
    3.11 以上完成A-B的复制,即简单的主从配置,
        现在开始配置B-A的复制,即:把B当成主服务器,A当成从服务器,从而实现双主热备.
    3.12 在B中创建用于复制的账户,类似于3.1,在mysql中执行:
        grant replication slave on *.* to 'root_save'@'192.168.31.133' identified by 'root_save';
    3.13 开启主服务器(B服务器)的binarylog,类似于3.2
        read-only=0
        binlog-ignore-db=mysql
        binlog-ignore-db=information_schema
        binlog-ignore-db=performance_schema
        auto-increment-increment = 10
        auto-increment-offset=6
    3.14 查看主服务器(B服务器)的master日志状态,类似于3.3.3
        show master status\G;
    3.15 开启从服务器(A服务器)的中继日志,类似于3.4
        #replicate-do-db=i_test
        replicate-ignore-db=mysql
        replicate-ignore-db=information_schema
        replicate-ignore-db=performance_schema
        relay_log=mysqld-relay-bin
        log-slave-updates = ON
    3.16 启动同步,在从服务器(A服务器)的mysql下执行:
        change master to
        master_host='192.168.31.132',
        master_user='root_save',
        master_password='root_save',
        master_log_file='mysql-bin.000006',
        master_log_pos=120;
    3.17 查看从服务器(A服务器)的slave状态是否正常
        show slave status\G;
        只有在
        Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
        才说明配置成功,其中任意一个为NO都表示配置不成功,应当查看错误日志,进行查看。
    3.18 完成以上操作之后,mysql双主热备就实现了。
4.配置过程中的注意事项:
    4.1 注意参数的拼写,下划线和中划线的书写
    4.2 注意查看错误日志
    4.3 注意设置的账号和密码是否正确
    4.4 注意对应端口是否开启以及防火墙的状态
    4.5 注意在开启从服务器的同步时,应当是即时查看主服务器的master状态
    4.6 注意设置mysql服务的开机启动

转载于:https://my.oschina.net/u/2615043/blog/788574

分享到:
评论

相关推荐

    mysql5.7.29双主 keepalived HA部署方案.pdf

    接下来是配置双主互备: 1. 在每台服务器的`/etc/my.cnf`中启用二进制日志功能(`log-bin`),设置日志格式(`binlog_format`)为混合模式。 2. 分配不同的`server-id`,用于区分两个MySQL实例。 3. 设置自增长ID的...

    mysql负载均衡和双击热备

    本文将详细介绍如何通过MySQL实现负载均衡及双主热备方案,帮助读者理解其工作原理及具体实施步骤。 #### 二、负载均衡的概念 负载均衡是指通过合理分配请求到不同的服务器上处理,以提高系统的响应速度和服务质量...

    mysql+keepalived互为主从架构.docx

    在这种架构中,两个MySQL服务器(Master M1 和 Master M2)互为主从,通过半同步复制确保数据在主备之间及时同步。Keepalived则用于监控和管理这两个MySQL节点,当一个主节点出现故障时,可以自动切换到另一个主节点...

    MYSQL分享.pptx

    MYSQL的高可用性解决方案包括单主多备、双主互备和集群/组复制等。单主多备是MYSQL的一种高可用性解决方案, MASTER故障恢复后需要重新搭建半同步复制。双主互备是MYSQL的一种高可用性解决方案,MASTER故障恢复不...

    MySQL主从复制原理架构部署

    3. Master - Master双主互备:这种配置可能会破坏事务的隔离性和数据一致性。 4. Master - Master - Master监控三台机器互相做对方的master:存在复制延迟的天生缺陷。 5. One slave and multiple masters(一从对多...

    MySQL 主从复制模式全面实践

    - **双主互备(Master-Master)**:这种架构中,每台服务器既是主服务器也是从服务器,互为主从进行数据同步。但它存在事务隔离性和数据一致性的问题。 - **多主监控(Master-Master-Monitor)**:三台机器互相作为...

    MySQL技能测试题目

    MySQL的主从同步是基于二进制日志实现的,主服务器执行的任何更改(DML和DDL语句)都会被记录到二进制日志中。从服务器连接到主服务器,并请求二进制日志的更新。主服务器将二进制日志发送给从服务器,从服务器执行...

    MySQL主从复制模式全面实践

    - M-M(Master-Master)双主互备:每个服务器既是主服务器也是从服务器,但可能导致事务隔离性和数据一致性的问题。 - M-M-M监控:三台服务器互相监控,形成循环的主从关系。 - 一从多主(One Slave Multiple ...

    UNIX设置MySql数据同步实现复制功能

    总的来说,UNIX系统中设置MySQL数据同步复制涉及的主要知识点包括:配置文件的定位与修改、创建同步用户和数据库、主从模式配置、双机互备以及错误处理与恢复。正确配置这些参数,可以构建起可靠的数据库复制环境,...

    MySQL数据库同步

    4. **双机互备模式**: - 如果希望实现双向同步,即A到B和B到A的同步,只需在A和B上同时配置主从关系,但要确保不会形成循环(避免无限循环的复制)。 5. **错误处理**: - 当出现错误时,同步线程可能停止。需要...

    mysql 双向同步的键值冲突问题的解决方法分享

    但在双向同步或多主互备的场景下,如果多个服务器同时插入记录,可能会导致自增ID重复,从而引发冲突。 上述问题在描述中被详细阐述,例如,假设我们有两个服务器A和B,它们都有一个包含自增ID的test表。如果在A上...

    一次 MySQL 误操作导致的事故,「高可用」都顶不住了!.doc

    系统采用的是MySQL双主模式,即两个数据库节点(node55和node56)互为主从,同时配备了Keepalived服务在各自宿主机上监控MySQL状态,以确保高可用性。 二、系统部署结构 系统由两个MySQL数据库实例和两个Keepalived...

    mysql 主从服务器的简单配置

    - 双机互备(双主复制)时,每个服务器既是主也是从,配置更为复杂,需要确保冲突解决策略。 6. **相关命令**: - 主服务器:`SHOW MASTER STATUS;`,`SHOW SLAVE HOSTS;`,`SHOW LOGS;`,`SHOW BINLOG EVENTS;`...

    数据库面试基础知识.docx

    19. **MySQL 主备同步的基本原理** - 通过复制日志(Binlog)实现从主服务器到从服务器的数据同步。 20. **如何优化数据库性能** - **索引**:合理创建索引以加速查询。 - **分库分表**:对大表进行水平拆分,...

    25丨 数据存储架构:如何改善系统的数据存储能力?.pdf

    - MySQL 的主从复制是通过记录主数据库的 Binlog(二进制日志),并将这些更新同步到从数据库的 Relay Log 中,再由从数据库重放这些日志来实现的。 - 主从复制可以实现读写分离,减轻主数据库的压力,提高系统...

Global site tag (gtag.js) - Google Analytics