您的位置:首页 > 数据库

不停止主数据库操作,只操作从数据库,实现快速恢复的方法和局限性

2017-05-04 11:02 344 查看
一般异常操作,可以如下恢复,只能在从机上做。

slave stop;

set GLOBAL sql_slave_skip_counter=1;

slave start;

show slave status;

但是对于大型实时变换的数据库,该方法不行。

断电异常,可以在从机上如下恢复。

在主库服务器上,寻找通电前的最后一个bin-log日志,通过该日志进行恢复。

mysqlbinlog /var/lib/mysql/mysql-bin.000003 >  mysql-bin.000003.txt

tail -n 100000 mysql-bin.000003.txt > tail_mysql-bin.000003.txt

vi tail_mysql-bin.000003.txt

注意最后几行

#170504 10:39:10 server id 107  end_log_pos 2711        Query   thread_id=137   exec_time=0     error_code=0

SET TIMESTAMP=1493865550/*!*/;

insert into `menber` (`name`, `id`) values('三清','23')

/*!*/;

DELIMITER ;

# End of log file

ROLLBACK /* added by mysqlbinlog */;

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

找到偏移量2711

回到从机操作

slave stop;

change master to  master_host='172.27.206.6',master_user='repl',master_password='repl', master_log_file='mysql-bin.000003',master_log_pos=2711;

slave start;

show slave status;

从新进行主的插入操作,发现新增加数据可以同步过来。但是故障期间的数据无法同步过来。造成两边数据不一致。对于历史数据不敏感的同步数据库。可以采用此方法。本方法不需要停止主数据库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: