香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > MYSQL >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

MySQL 数据库双向镜像、循环镜像(复制)


时间:2020-11-02 13:27 作者:admin


对于双向数据库镜像,就是数据库A的数据变化要镜像到数据库B中,同时数据库B里的修改也要同时复制到数据库A里。

  对于循环数据库镜像,就是多个数据库A、B、C、D等,对其中任一个数据库的修改,都要同时镜像到其它的数据库里。

应用:同一个Zen Cart网店的数据库和程序,可以放置在不同的主机上,在任一台主机上新增的订单、客户资料,都会同时加入其它的主机数据库里。

  要实现双向或循环数据库镜像,首先要解决的就是防止数据库中自动递增(AUTO_INCREMENT)字段的冲突,以免多数据库各自生成一样的增量值。

  下面以三台主机循环镜像为例,A是B的主镜像,B是C的主镜像,C是A的主镜像。三台主机上mysql/' target='_blank'>mysql设置文件 /etc /my.cnf 中分别加入下面的参数:

# 主机一:美国主机 A, IP: 100.101.102.201
[MySQLd]
server-id = 10
log-bin = mysql-bin
log-slave-updates
replicate-same-server-id = 0
auto_increment_increment = 10
auto_increment_offset = 1
master-host = 100.101.102.203
master-user = repl_user
master-password = repl_password
report-host = 100.101.102.201

# 主机二:中国主机 B, IP: 100.101.102.202
[mysqld]
server-id = 20
log-bin = mysql-bin
log-slave-updates
replicate-same-server-id = 0
auto_increment_increment = 10
auto_increment_offset = 2
master-host = 100.101.102.201
master-user = repl_user
master-password = repl_password
report-host = 100.101.102.202

# 主机三:本地主机 C, IP: 100.101.102.203
[mysqld]
server-id = 30
log-bin = mysql-bin
log-slave-updates
replicate-same-server-id = 0
auto_increment_increment = 10
auto_increment_offset = 3
master-host = 100.101.102.202
master-user = repl_user
master-password = repl_password
report-host = 100.101.102.203


简单说明:
server-id:数据库标识,每个数据库标识必须唯一;
replicate-same-server-id:设置为0,防止数据循环更新;
auto_increment_increment:这是循环镜像里最重要的参数之一,表示自动增量为10,这将允许最多10台数据库加入这个循环镜像的阵列,而自动递增字段不会重复。
auto_increment_offset:这是循环镜像里最重要的参数之一,表示偏移值,每个数据库的偏移值必须唯一,且在1和auto_increment_increment之间。
master-host:主数据库服务器的IP;
master-user:用于连接主数据库的镜像用户名;
master-password:用于连接主数据库的镜像密码;
report-host:提供给主数据库用于反向连接的IP,因为主数据库有时无法正确判断从服务器的IP,所以这里最好填上从服务器自己的IP地址。


另外,有时只需要镜像某些数据库,可以在 my.cnf 中加入:
replicate-do-db = db_name1
replicate-do-db = db_name2
replicate-do-db = db_name3

这样就仅仅镜像db_name1/db_name2/db_name3


如果只是某些数据库不要镜像,可以在 my.cnf 中加入:
replicate-ignore-db=db_name1
replicate-ignore-db=db_name2
replicate-ignore-db=db_name3

这样镜像时就忽略 db_name1/db_name2/db_name3 这三个数据库。 (责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)