
互为主从:两个节点各自都要开启binlog和relay log;
这样可能会产生以下问题:
1、数据不一致;
2、自动增长id;(能不用最好不用)
定义一个节点使用奇数id
auto_increment_offset=1
auto_increment_increment=2
另一个节点使用偶数id
auto_increment_offset=2
auto_increment_increment=2
配置:
1、server_id必须要使用不同值;
2、均启用binlog和relay log;
3、存在自动增长id的表,为了使得id不相冲突,需要定义其自动增长方式;
服务启动后执行如下两步:
4、都授权有复制权限的用户账号;
5、各把对方指定为主节点;
编辑配置文件:
第一个节点:vim /etc/my.cnf
第二个节点:vim /etc/my.cnf
启动服务:
各自创建用户账号
启动线程:START SLAVE [IO_THREAD | SQL_THREAD];
查看状态:SHOW SLAVE STATUS;
测试
复制时应该注意的问题:
在从服务器启动read_only,但仅对非SUPER权限的用户有效;
阻止所有用户:
mysql> FLUSH TABLES WITH READ LOCK; 读锁
2、尽量确保复制时的事务安全
在master节点启用参数:
sync_binlog = ON
如果用到的是InnoDB存储引擎:
innodb_flush_logs_at_trx_commit=ON
innodb_support_xa=ON
3、从服务器意外中止时尽量避免自动启动复制线程
4、从节点:设置参数
sync_master_info=ON 立即同步
sync_relay_log_info=ON