技术开发 频道

MYSQL数据库主主同步实战

  【IT168 技术文档】MYSQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环。当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知下一次更新。

  在实际项目中,两台分布于异地的主机上安装有MYSQL数据库,两台服务器互为主备,客户要求当其中一台机器出现故障时,另外一台能够接管服务器上的应用,这就需要两台数据库的数据要实时保持一致,在这里使用MYSQL的同步功能实现双机的同步复制。

  以下是操作实例:

  1、数据库同步设置

  主机操作系统:RedHat Enterprise Linux 5

  数据库版本:mysql Ver 14.12 Distrib 5.0.22

  前提:MYSQL数据库正常启动

  假设两台主机地址分别为:

  ServA:10.240.136.9

  ServB:10.240.136.149

  1.1 配置同步账号

  在ServA上增加一个ServB可以登录的帐号:

  Mysql>GRANT all privileges ON *.* TO tongbu@'10.240.136.149' IDENTIFIED BY '123456';

  在ServB上增加一个ServA可以登录的帐号:

  Mysql>GRANT all privileges ON *.* TO tongbu@'10.240.136.9' IDENTIFIED BY '123456';

  1.2 配置数据库参数

  1、 以root用户登录ServA,修改ServA的my.cnf文件

  vi /etc/my.cnf

  在[mysqld]的配置项中增加如下配置:

1 default-character-set=utf8
2
3   log-bin=mysql-bin
4
5   relay-log=relay-bin
6
7   relay-log-index=relay-bin-index
8
9   server-id=1
10
11   master-host=10.240.136.149
12
13   master-user=tongbu
14
15   master-password=123456
16
17   master-port=3306
18
19   master-connect-retry=30
20
21   binlog-do-db=umsdb
22
23   replicate-do-db=umsdb
24
25   replicate-ignore-table=umsdb.boco_tb_menu
26
27   replicate-ignore-table=umsdb.boco_tb_connect_log
28
29   replicate-ignore-table=umsdb.boco_tb_data_stat
30
31   replicate-ignore-table=umsdb.boco_tb_log_record
32
33   replicate-ignore-table=umsdb.boco_tb_workorder_record
0
相关文章