日期:2014-05-16  浏览次数:20685 次

mysql同步中断后的处理

mysql从服务器因硬件故障停止复制,无法从中断点开始继续复制。

?

在从库执行reset slave清除二进制日志,并重新生成master.info,最好将从库重启一下,slave stop

在主库reset master清除二进制日志

?

主库使用--skip-networking选项重启mysql服务,禁止网络连接,保证主库数据暂时无更新

?

删除从库的数据后,使用mysqldump将主库上的数据全部复制到从库

mysqldump --opt db_name | mysql --host=remote_host -C db_name

?

同步完成后,去掉--skip-networking选项重启主库mysql服务

?

从库slave start

show processlist

show slave status

?

  • LOAD TABLE tblname FROM MASTER #从机运行,从主机端重读指定的表的数据,每次只能读取一个,受timeout时间限制,需要调整timeout时间。执行这个命令需要同步账号有 reload和super权限。以及对相应的库有select权限。如果表比较大,要增加net_read_timeout 和 net_write_timeout 的值
  • LOAD DATA FROM MASTER #从机执行,从主机端重新读入所有的数据。执行这个命令需要同步账号有reload和super权限。以及对相应的库有select权限。如果表比较大, 要增加net_read_timeout 和 net_write_timeout的值

这两个命令只适用于MyISAM引擎

?

在从库设置连接MASTER MASTER_LOG_FILE为主库的File,MASTER_LOG_POS为主库的Position,即从库的master.info文件

CHANGE MASTER TO MASTER_HOST='192.168.1.1',MASTER_USER='slave',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-bin.030',MASTER_LOG_POS=870279;

?