关于最近一次数据库表的丢失的教训
2011-07-02 13:29
302 查看
前天数据库表数据丢失的杯具就发生在偶的身上.这也证明了,无知识的可怕性与无胆量的杯具.
这一段时间,我一直都是在负责管理数据库,主要是管理数据库中的生产数据,而对于数据库本身的管理,可以说是一无所知(这也是俺下一个阶段打算学习的).而前几天发生的事情却让我倍受折磨.
我在最近一次导数据中,不经意间删掉了一张生产数据表的所有数据.因为系统前一段时间上线,写了一个脚本作为系统初始化数据用的,为了每次测试的方便,所以就是数据初始化前面加了一段delete ....commit;
正是因为这一段,才有了下面的杯具.
脚本是经过bat通过sqlplus连接到数据库进行数据操作了,而最近,又希望从别的库中的向这个系统的这个表的导数据,所以就把原先的脚本找来改改就用了,但是那一段delete sql没有删掉,所以杯具就发生了.
让我发现在sql执行的结果时,不应当的后果时,心跳马上就加速了,第一反应就是完蛋了,这次死定了,我怎么才能把数据给补上呢?我一心直想着自已如何才能把数据给补上,我该怎么办呢?????
东拼西凑,数据也还是不够,就这样一天的工作日子就这样过去了.晚上回到家可是寝食难安呀,心想,要不给经理发个email,然后摆出一副死猪不怕活水烫,等着他来处理....再要不就卷铺盖走了,大不了老子不干了....
忽然,脑子灵光一闪,有了,oracle数据库数据恢复不是有好多办法吗?为什么白天没有想到,到网上baidu一下,果然oracle数据库数据恢复有好多办法,但是现在已经是夜里2点,只好等到天亮了.原先我发现,现在才是真正的杯具开始,明明已经有了办法补救,可是也能慢慢的等,时间真的好好漫长长长长长长长长呀....................
7点多一点点,就到公司了,打算用网上讲的办法恢复数据库的数据,例如闪回,可是黄金时间已经过了(已经过了24小时了),早死菜了,想要找恢复日志,因为管理员密码没有,如果这果不是经理们都知道了这件事了, 那也可能数据修好了,也要死菜......怎么办呢????
山重水复疑无路,柳暗花明又一村.可能是老天帮我.在我打算放弃的时候,把这件事告诉了我的同事,因为他是作这个项目的需求的,所以数据他是很清楚的,他晃然间给我点提示.
原来,我删掉的那个表是一张部表,大约7张表的总表,那么我只需要把好7张表的数据找到,然后按照数据汇总的规则生成总据不就o了,(当时设计这个表就是为系统oltp的访问性能,并且数据生成规则全部写在java里,而是处理单行记录,啊啊啊,我只好自已写了????不是吗??还好,有思路了,经过半天的奋斗,数据终于整理完了,写进库里了,这样可以放松了.
但是我回想了这件事情,其实这件事情很简单,如果当时我不心跳加速,平心静气,1分秒就可能搞定这件事情了.
比如可以这样恢复数据 select * from table_name as of timestamp to_timestamp('2011-06-30 09:01:30','yyyy-mm-dd hh24:mi:ss');
当时心一加速,一切都忘了....................这就是导致杯具的主要原因.人要学会承担.
这一段时间,我一直都是在负责管理数据库,主要是管理数据库中的生产数据,而对于数据库本身的管理,可以说是一无所知(这也是俺下一个阶段打算学习的).而前几天发生的事情却让我倍受折磨.
我在最近一次导数据中,不经意间删掉了一张生产数据表的所有数据.因为系统前一段时间上线,写了一个脚本作为系统初始化数据用的,为了每次测试的方便,所以就是数据初始化前面加了一段delete ....commit;
正是因为这一段,才有了下面的杯具.
脚本是经过bat通过sqlplus连接到数据库进行数据操作了,而最近,又希望从别的库中的向这个系统的这个表的导数据,所以就把原先的脚本找来改改就用了,但是那一段delete sql没有删掉,所以杯具就发生了.
让我发现在sql执行的结果时,不应当的后果时,心跳马上就加速了,第一反应就是完蛋了,这次死定了,我怎么才能把数据给补上呢?我一心直想着自已如何才能把数据给补上,我该怎么办呢?????
东拼西凑,数据也还是不够,就这样一天的工作日子就这样过去了.晚上回到家可是寝食难安呀,心想,要不给经理发个email,然后摆出一副死猪不怕活水烫,等着他来处理....再要不就卷铺盖走了,大不了老子不干了....
忽然,脑子灵光一闪,有了,oracle数据库数据恢复不是有好多办法吗?为什么白天没有想到,到网上baidu一下,果然oracle数据库数据恢复有好多办法,但是现在已经是夜里2点,只好等到天亮了.原先我发现,现在才是真正的杯具开始,明明已经有了办法补救,可是也能慢慢的等,时间真的好好漫长长长长长长长长呀....................
7点多一点点,就到公司了,打算用网上讲的办法恢复数据库的数据,例如闪回,可是黄金时间已经过了(已经过了24小时了),早死菜了,想要找恢复日志,因为管理员密码没有,如果这果不是经理们都知道了这件事了, 那也可能数据修好了,也要死菜......怎么办呢????
山重水复疑无路,柳暗花明又一村.可能是老天帮我.在我打算放弃的时候,把这件事告诉了我的同事,因为他是作这个项目的需求的,所以数据他是很清楚的,他晃然间给我点提示.
原来,我删掉的那个表是一张部表,大约7张表的总表,那么我只需要把好7张表的数据找到,然后按照数据汇总的规则生成总据不就o了,(当时设计这个表就是为系统oltp的访问性能,并且数据生成规则全部写在java里,而是处理单行记录,啊啊啊,我只好自已写了????不是吗??还好,有思路了,经过半天的奋斗,数据终于整理完了,写进库里了,这样可以放松了.
但是我回想了这件事情,其实这件事情很简单,如果当时我不心跳加速,平心静气,1分秒就可能搞定这件事情了.
比如可以这样恢复数据 select * from table_name as of timestamp to_timestamp('2011-06-30 09:01:30','yyyy-mm-dd hh24:mi:ss');
当时心一加速,一切都忘了....................这就是导致杯具的主要原因.人要学会承担.
相关文章推荐
- 最近工作中一次关于SEM服务器TIME_OUT状态过多的调查报告
- 关于数据库一致改关闭下redo日志文件丢失的处理办法的总结
- 关于数据库一致改关闭下redo日志文件丢失的处理办法的总结
- 解决数据库中插入时间丢失时分秒(关于Mi和MM两个见文底)
- 一次导如数据库时主表数据丢失的解决过程
- 关于access和outlook,以及word和Excel数据丢失的教训
- 关于数据库分表分库的一次分享
- 记一次使用xutils3的数据库模块的教训org.xutils.ex.DbException: <init> []
- 关于一次 ORA-01118: 无法添加任何其他数据库文件: 超出限制 4120 的错误处理
- 数据库-关于丢失更新和乐观锁的那些故事
- 一次血的教训,阿里云rds mysql 数据库,本地化并日志恢复已删除的两天数据
- 关于git reset --hard导致文件丢失的血的教训
- 一次血的教训,阿里云rds mysql 数据库,本地化并日志恢复已删除的两天数据
- 如何实现添加多条信息到GridView中,而一次保存到数据库,不被页面刷新而丢失数据呢?
- 数据库恢复,记录一次全量数据文件丢失的恢复
- 关于SQL数据库丢失.LDF文件后附加数据库的方法
- 数据库-关于丢失更新和乐观锁的那些故事
- 如何得到最近一次数据库操作影响的数据行数?
- 一次Windows 注册表中注册表项目丢失导致的Oracle 数据库启动问题。
- 最近在Bilibili做的一次关于个人网站搭建的分享