之乎者也2011

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

主从库同步失效的原因各种各样,一般都是在从库上不小心执行了写操作,也有可能从库服务器意外重启等等。
进入从库执行show slave status\G看到下面两行:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

任意一个不为yes就说明同步出了问题。

基本上解决的办法无外乎这么几种:
1. 如果是事务回滚造成的那么可以尝试:

mysql > slave stop;
mysql > set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql > slave start;

2. 如果上面的方法没有作用,那么基本上下面的方法一定奏效:
①主库操作:

flush tables with read lock;    //主库上锁表
show master status;   //记录 master log file及file position

比如:

+--------------------------+----------------+-------------------+------------------------+
| File                          | Position       | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------------+----------------+--------------------+-----------------------+
| xxxx-log.000001     | 156                | xxxx                   |                              |
+--------------------------+----------------+--------------------+-----------------------+
tar -cvf database.tar ./data   //备份数据文件
unlock tables;   //解锁主库表

②从库操作

将主库数据库文件copy到从库中
启动从库
stop slave;
reset slave;
change master to master_host='主库IP',master_user='用户名',master_password='密码',master_port=端口,master_log_file='xxxx-log.000001',master_log_pos=156;
start slave;

然后登陆从库

show slave status\G;
 
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

上面2项都为’Yes’,表示slave正常

posted on 2011-09-05 05:23  之乎者也2011  阅读(403)  评论(0编辑  收藏  举报