不停止主数据库操作,只操作从数据库,实现快速恢复的方法和局限性
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;
从新进行主的插入操作,发现新增加数据可以同步过来。但是故障期间的数据无法同步过来。造成两边数据不一致。对于历史数据不敏感的同步数据库。可以采用此方法。本方法不需要停止主数据库。
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;
从新进行主的插入操作,发现新增加数据可以同步过来。但是故障期间的数据无法同步过来。造成两边数据不一致。对于历史数据不敏感的同步数据库。可以采用此方法。本方法不需要停止主数据库。
相关文章推荐
- 一个通过数据库镜像实现SPS 2003门户快速备份与恢复的操作手册
- 一个通过数据库镜像实现SPS 2003门户快速备份与恢复的操作手册
- 数据库操作基本方法实现
- 如何实现快速地从超大数据库中提取数据并进行相关的操作
- 数据库操作基本方法实现
- JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- c#写webservice快速链接到数据库的方法Linq to Sql简单操作
- Sql Server实用操作-无数据库日志文件恢复数据库两种方法
- sql server中通过查询分析器实现数据库的备份与恢复方法分享
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- sql server中通过查询分析器实现数据库的备份与恢复方法分享
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份(转)
- 误操作数据库,通过日志恢复的方法