![]() |
|
|||||||
![]() |
|
|
Thread Tools | Display Modes |
|
#1
IP: 49.87.2.24
|
|||
|
|||
|
在MySQL数据库镜像的贴子中,主数据库A 的数据镜像到从数据库B,是单向的,Zen Cart网店的数据读写
都必须在数据库A进行,结果会自动镜像到数据库B中。但是对数据库B的直接操作,不会影响数据库A。 对于双向数据库镜像,就是数据库A的数据变化要镜像到数据库B中,同时数据库B里的修改也要同时复制到 数据库A里。 对于循环数据库镜像,就是多个数据库A、B、C、D等,对其中任一个数据库的修改,都要同时镜像到其它 的数据库里。 应用:同一个Zen Cart网店的数据库和程序,可以放置在不同的主机上,在任一台主机上新增的订单、客 户资料,都会同时加入其它的主机数据库里。 要实现双向或循环数据库镜像,首先要解决的就是防止数据库中自动递增(AUTO_INCREMENT)字段的冲突, 以免多数据库各自生成一样的增量值。 下面以三台主机循环镜像为例,A是B的主镜像,B是C的主镜像,C是A的主镜像。三台主机上MySQL设置文件 /etc /my.cnf 中分别加入下面的参数: Code:
# 主机一:美国主机 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 这三个数据库。 |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| MySQL毫秒值和日期的指定格式的相互转换 | Kaitlin | MySQL | 0 | 2015-04-18 11:01 PM |
| mysql 帮助文档使用 | Haddam | MySQL | 0 | 2014-11-26 06:43 PM |
| 如何导入导出MySQL数据库 | topvip | 建站交流 | 0 | 2006-10-10 07:43 AM |
| mysql安装与简单使用 | sunshine | 服务器环境搭建 | 0 | 2006-01-11 07:29 PM |
| winxp下安装全新的apache,php(5.0),mysql(5.0)... | topvip | 服务器环境搭建 | 0 | 2006-01-08 10:28 PM |