数据库教程:MySQL 数据库双向镜像、循环镜像(复制)分享

上述就是数据库技术:MySQL 数据库双向镜像、循环镜像(复制)分享的全部内容,如果对大家有所用处且需要了解更多关于mysql数据库学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)! 对于双向数据库镜像,就是数据库A的数据变化要镜像到数据库B中,同时数据库B里的修改也要同时复制到数据库A里。
  对于循环数据库镜像,就是多个数据库A、B、C、D等,对其中任一个数据库的修改,都要同时镜像到其它的数据库里。
应用:同一个ZenCart网店的数据库和程序,可以放置在不同的主机上,在任一台主机上新增的订单、客户资料,都会同时加入其它的主机数据库里。
  要实现双向或循环数据库镜像,首先要解决的就是防止数据库中自动递增(AUTO_INCREMENT)字段的冲突,以免多数据库各自生成一样的增量值。
  下面以三台主机循环镜像为例,A是B的主镜像,B是C的主镜像,C是A的主镜像。三台主机上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这三个数据库。 您可能感兴趣的文章:sqlserver复制表从一个数据库到另一个数据库MySQL快速复制数据库数据表的方法mysql跨数据库复制表(在同一IP地址中)示例sqlserver复制表复制数据库存储过程的方法复制SqlServer数据库的方法简单讲解MySQL的数据库复制方法通过SQLServer2008数据库复制实现数据库同步备份复制数据库表中两个字段数据的SQL语句MySQL数据库InnoDB引擎主从复制同步经验

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/910218.html

(0)
上一篇 2021年10月24日
下一篇 2021年10月24日

精彩推荐