不停止主数据库操作,只操作从数据库,实现快速恢复的方法和局限性
来源:互联网 发布:底层软件开发 编辑:程序博客网 时间:2024/05/16 14:31
一般异常操作,可以如下恢复,只能在从机上做。
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;
从新进行主的插入操作,发现新增加数据可以同步过来。但是故障期间的数据无法同步过来。造成两边数据不一致。对于历史数据不敏感的同步数据库。可以采用此方法。本方法不需要停止主数据库。
0 0
- 不停止主数据库操作,只操作从数据库,实现快速恢复的方法和局限性
- 对数据库的备份和恢复操作,Sql语句实现
- 数据库备份和恢复操作
- DB2从备份恢复数据库 操作
- 如何实现快速地从超大数据库中提取数据并进行相关的操作
- SSH之继承HibernateDaoSupport对数据库的操作和不继承HibernateDaoSupport对数据库的操作的方法
- 数据库误操作恢复
- 实现数据库的操作
- oracle数据库启动停止操作
- mysql常用操作-----数据库的备份和恢复
- C#操作SQLserver数据库的备份和恢复
- SQL数据库有关备份和恢复的语句及操作
- DB2 数据库在线备份和恢复的操作步骤
- mysql数据库的优化、恢复等操作
- VC++实现数据库操作和应用程序操作的分离
- 从RAC恢复到单实例数据库操作步骤
- Linux 命令操作开启、停止、重启Mysql数据库的方法
- 数据库操作失误恢复总结
- 让Lua支持Linq吧
- LeetCode 95. Unique Binary Search Trees II
- caffe windows学习:第一个测试程序
- printk 中console_cmdline数组的填充
- 观察者模式
- 不停止主数据库操作,只操作从数据库,实现快速恢复的方法和局限性
- 【UGUI】制作艺术字体
- 谈谈DB2的db2fmp进程
- 【Java学习之旅】——Java如何实现像c#的#region实现代码折叠
- Eclipse 推荐书籍列表
- 常用工具类(8/14)
- WPF生成dll,以及从dll中恢复exe
- 详细了解HTML标签内容模型
- Android中MediaCodec和MediaMuxer的使用