文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>mysql 双向热备...

mysql 双向热备...

时间:2010-08-13  来源:weibinhu

mysql 热备配置出现的问题

最近公司做mysql数据库的双向热备,期间遇到有如下问题:

1、主备机的server-id=ID 数一样导致不能建立mysql热备;

2、同步的数据库表建了触发器,会导致同步到备机重复进行写操作,导致“primary key”主键重复写入错误;

3、跨库操作的sql语句,不记mysql同步日志,不同步到备机上;

mysql双向热备实施

1、建立mysql数据库双向热备,首先建立复制帐号,帐号名和密码为“slaveuser”,执行的sql语句如下:

GRANT REPLICATION SLAVE ON *.* TO 'slaveuser' @ '%' IDENTIFIED BY 'slaveuser';

 

2、修改主备机的my.cnf配置文件

server-id = 1

log-bin=mysql-bin
relay-log=relay-bin

log-slave-updates

#slave-skip-errors = all(可选)

master-host     =   RedunHost
master-user     =   slaveuser
master-password =  slavepass

master-port=8004

#跨库操作配置

replicate-wild-do-table=db_name.%

如果需要同步跨库操作,需使用 –replicate-wild-do-table=db_name.% 选项

#replicate-do-db=db_name 指定要复制的数据库,本身不支持跨库更新

replicate-do-table=db_name.t_name (db_name.%) 同replicate-do-db功能类似,与replicate-do-db区别,支持跨库更新
 

注解:

server-id = 1
服务器ID号,整数值,保证唯一标识一台服务器就可以
log-bin=mysql-bin
打开二进制日志

relay-log=relay-bin
中继日志名称
master-host     =   RedunHost
主服务器IP地址或者主机名,比如:172.20.16.204
master-user= slaveuser
主服务器上创建的复制用户帐号名称,比如以上创建的:slaveuser
master-password=slaveuser
主服务器上创建的复制用户帐号密码,比如以上创建的:slaveuser
relay-log-index=relay-bin
中继索引文件名称

slave-skip-errors =all 是跳过错误,继续执行复制操作(可选)

log-slave-updates

log-slave-updates 这个参数一定要加上,否则不会给更新的记录些到二进制文件里

主备机执行Reset master;reset slave;stop slave;start slave;

重启主备机mysql服务,主备机执行show slave status\G,如果复制状态Slave_IO_Running,Slave_SQL_Running都为Yes,说明复制已经配置正确。

注:以上配置针对主备机数据库数据一致进行的操作
    

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载