数据库主从不一致解决

mysql

休假回来,发现维护的一个数据库主从出现了问题,使用命令 show slave status\G;得到了错误信息。



一般情况下遇到mysql主从数据库的数据不能同步的话,可以从slave数据库的状态看出来,这里建议通过脚本来做实时监控。

检查slave数据库的状态是否出现error,或是检查Seconds_Behind_Master参数后跟的是否为数字,如果有异常则显示为null。

1、我们需要从主库通过mysqldump命令备份一份数据出来,并记录主库的file和position。

导出命令如下:

mysqldump -R -u root -p test --add-drop-table > /data0/test.20111101.sql

2、将备份出来的数据文件拷贝到从库主机上,然后将从库stop slave后就可以导入拷贝过来的数据了。

导入命令如下:

mysql -u root -p mysql < mysql.20111101.sql

3、导入数据后登录从数据库,change到主库的记录位置。

命令如下:

change master to master_log_file='master-mysql-bin.000001',master_log_pos=225302970;

start slave;

然后通过show slave status\G即可查看从库状态。

4、当检查slave数据库服务器状体出现如下错误时,

Last_Error: Error 'Duplicate entry '1' for key 'PRIMARY'' on query. Default database: 'dnslog'. Query: 'insert into logop (logtime,tbname, sqlstr) VALUES('2011-10-25 07:00:00','logcount04','C/x??}?

根据提示可以知道是由于重复插入数据导致错误。先stop slave然后使用SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;再执行start slave后最后再通过show slave status\G;查看slave从库状态。

5、如果还是不能解决问题则需要修复表,先stop slave然后repair table logop;再执行start slave后最后通过show slave status\G;查看slave从库状态。


2014-11-23 09:38:59

数据库
数据库

这是介绍的地方

数据库的标签

本文相关标签

推荐应用

友情链接


皖ICP备14007051号-2 关于穆子龙