首先要解决自增ID的冲突问题,可以通过修改配置文件自增ID的起始点和步长来调整A服务器生成奇数ID,B服务器生成偶数ID。
其次要解决延迟问题:
log-slave-updates 互为主从需要加入这一行
skip-name-resolve 跳过名称解析可以提高远程访问速度
接来要解决日志同步失败问题:
skip-slave-start 手动启动从服务比较安全,可避免突然宕机导致的数据日志不同步。
完整的服务器配置文件(目前一台再国内,一台再国外,同步延迟在10秒之内)
# A IP:10.90.0.10
server-id=10
log-bin=titicaca-10-bin
replicate-do-db = titicaca
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
auto_increment_offset = 1
auto_increment_increment = 2
skip-name-resolve
skip-slave-start
log-slave-updates
#
server-id=20
log-bin=titicaca-20-bin
replicate-do-db = titicaca
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
auto_increment_offset =
auto_increment_increment = 2
skip-name-resolve
skip-slave-start
log-slave-updates
配置文件修改好后重启服务器,此时slave应该尚未启动(因为之前配置文件禁止了slave自动启动),通过
CHANGE MASTER TO 脚本命令指定相关主服务器参数
A的主是B
B的主是A
大家配置参数的时候不要弄反
注:经过尝试,认为AB服务器二进制日志文件最好不要起一样的名称,速度会快些,具体原因不清楚。