说出来你可能都不信,就在刚才,我把生产环境的数据弄坏了。。。
故事是这样的:
因为写的时候没注意,把特定情况的标点符号写错了,然后通知改改,简单呀,谁还不会批量修改呢,连上VPN,登上数据库,然后一键UPDATE,因为远程办公的问题,没有把WHERE选中,🙃,接下来发生的事儿,大家应该都明白了,赶紧查看是否备份,呵呵,果然没有。
经过了一个小时的懊悔,剁手,报告,想方案,竟然找到了一个办法,不知道是老天眷顾我,还是我的操作不是很致命,竟然一分钟就修复了,有图有真相:
直接放上网上的文章,大家可以自己备着,顺便来讨论一下,
你们公司是如何防止执行sql语句出错的,流程是怎样的?
系统已上线,给客户修改bug的时候,使用delete语句删表数据,没想到库没切换成测试库。误删了正式库的数据,而且一次备份都没有做过,玩大了
不扯了,进入主题
网上很多方法,都是针对至少有一次备份的情况下进行数据恢复的,没有备份就基本上只能找数据恢复公司了。本章将通过日志来恢复误删的数据,若是日志文件都没有了,那就真的玩大了
步骤:
1、下载恢复工具,提取码:u1dv。注:本人使用的库是2008r2,网上说此工具只能支持到2012版本。本章并未进行测试
2、解压进入ApexSQLLog2014文件夹,运行ApexSQLLog.exe文件
3、输入数据库连接信息,选择指定数据库
4、等待加载日志文件,点击下一步
5、选择误操作时间
6、选择操作方式,这边测试的是delete
7、选择要误操作的表
选择好后,直接点击Next
8、选择open results in grid
9、等待加载出误操作的日志信息列表
10、选择要恢复的数据,点击Create undo script
9、生成的脚本文件就是误删的数据了
至此找回误删数据的所有步骤已经完成