双主

目录

双主

原理

     双主
     1 2          2 2
  id 1 3 5     id 2 4 6 
     主1 binlog -> 主2 -relaylog -> 主2 执行 -> binlog -> 主1 ......
         Slave_IO_Runninga      Slave_SQL_Running
#当遇到id是自己执行的语句时,该语句就不会被执行

重要配置选项


auto_increment_increment 定义AUTO_INCREMENT的步长    2|2    3|4 5|6
auto_increment_offset    定义AUTO_INCREMENT的起点值  1|2
log_slave_updates(使从服务器把复制的事件记录到自己的二进制日志中,双主时必须配置这个选项)。
sync_binlog 这使得mysql在每次提交事务的时候把二进制日志的内容同步到磁盘上,所以即使服务器崩溃,也会把事件写入日志中

在A,B库上分别建立同步的用户

A上
grant REPLICATION SLAVE ON *.* to 'user'@'B' identified by 'passwd';
flush privileges;

B上
grant REPLICATION SLAVE ON *.* to 'user'@'A' identified by 'passwd';
flush privileges;

A库上看从B库的哪个位置开始同步

[root@localhost data]# cat xtrabackup_binlog_pos_innodb
/data/mysql/3307/binlog/binlog.000001   319462845

在A上执行

stop slave;
CHANGE MASTER TO  MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=319462845, \
master_user='B', master_password='passwd', master_host='B', MASTER_PORT=3307;
start slave;

观察主从是否同步
show slave status\G

同步后执行
stop slave;

然后执行
show master status\G

目录