MySql高可用性HA主从配置(双主双从HA模式)

来源:互联网 发布:c语言puts和putchar 编辑:程序博客网 时间:2024/05/18 04:00
双主双从是在一主一从基础上发展过来的高可用性双保险配置,和一主一从的区别并不是很大,主要注意的是双主中的my.cnf的配置
一。网络拓扑图
    
二. 搭建准备
    在各台集群机上安装好mysql,并打开mysql的binlog日志.
    #> vi /usr/my.cnf
        # 在[mysqld]中添加:
        #设置binlog的路径和名字
        log-bin=/var/logs/mysql/slave1-bin
        #设置binlog的目录管理文件的路径和名字.名字可以修改,但是存放路径不要轻易修改。
        log-bin-index=slave1-bin.index
        #配置binlog的保存时间为10天
        expire_logs_day=10


三. my.cnf配置
    #>vi /usr/my.cnf
    
        [mysqld]
        # auto_increment,控制自增列AUTO_INCREMENT的行为用于MASTER-MASTER之间的复制,防止出现重复值,auto_increment_increment=n有多少台服务器,n 就设置为多少
        auto_increment_increment=2
        #auto_increment_offset=1设置步长,这里设置为1,这样Master的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID
        #注意此值的设置,不同的master设置不应该一样,否则就容易引起主键冲突,譬如master的offset=1,则masterB的offset=2,masterC的offset=3
        auto_increment_offset=1
        

        #此参数是配置从服务器的更新是否写入二进制日志,这个选项默认是不打开的,注意,在双主的模式中,此参数一定要设置,否则在masterB上进行了更新数据,在masterA和slaveB-1上会更新,但是在slaveA-1上不会更新
        log-slave-updates
        #经过1日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法,但效率最低。默认设置是n=0。
        sync_binlog=1
四.    创建用户
    在masterA 和masterB 上分别创建访问用户
    #>mysql -uroot -uroot
    mysql> create user mysync;
    myslq> GRANT REPLICATION SLAVE ON *.* TO 'mysync'@'%' IDENTIFIED BY 'q123456';

五.    配置准备
    在masterA 和masterB上刷新binlog日志
    mysql>
        reset slave;
        reset master;
        stop slave;
        show mster status;
        show slave status \G;
        
四. 在slave上配置master服务    
    #>mysql -uroot -uroot
    mysql>
        change master to master_host='192.168.2.99',
        master_user='mysync',
        master_password='q123456',
        master_log_file='slave1-bin.000001',
        master_log_pos=120;
        
    *此处需要注意。如果以masterA 为例,则需要在masterB和slaveA-1上进行此操作,而slaveB-1上不需要进行;同样的,如果以masterB为例,则需要在mastarA和slaveB-1的mysql上执行此段代码,注意要根据各自对应替换对应的地方

五. 启动slave服务
    在各个服务器中分别启动 slave服务
    mysql> start slave;

六. 验证slave status 和检查是否成功
    mysql>show show slave status \G;
0 0