基于破平台的文本编辑器,写了个“;+”没有出现编译异常,代码直接执行,导致“+”后面的“where”条件没有用上~批量更新了合同表,很无奈,也很庆幸自己复查了一下发现了这个巨恐怖的事情,再一次刷新了我一个程序狗三观!!!
第一件事就是关闭服务器,然后导出数据,备份,导入导出命令如下:
导出:EXP zzmes/zzmes@ORCL buffer=4096 owner=zzmes file=f:\zzmes20170114.dmp 用户 密码 要导出的数据库连接 导入:IMP zzmes/zzmes@ORCL buffer=30720 fromuser=zzmes touser=zzmes file=F:\zzmes20170114.dmp 用户 密码 要导入到的数据库 导出用户 导出用户 已导出的文件
然后在网上找到了如下命令恢复了数据,具体可以参考下面博客:http://vvv-110.iteye.com/blog/2072702,但是一定要尽快去恢复,而且一定提前备份了再去,防止二次受伤,你懂的。。。。。。
一、执行如下SQL将test_temp表中的数据恢复到 2014 05 28 11:00:00
注意,这里一定要先删除全部数据,否则可能会导致数据重复,我用的就是第一种,搞定~
delete from test_tmp; insert into test_tmp select * from test_tmp as of timestamp to_timestamp(‘2014-05-28 11:00:00‘,‘yyyy-mm-dd hh24:mi:ss‘) commit;
二、如下:
select timestamp_to_scn(to_timestamp(‘2014-05-27 11:00:00‘,‘YYYY-MM-DD HH:MI:SS‘)) from dual;
或select * from sys.smon_scn_time order by time_dp desc;
得到结果 71547785
然后 insert into test_tmp select * from test_tmp AS OF SCN 71547785
三、如下:
select * from v$sqlarea ;SELECT * FROM v$session;SELECT * FROM v$session a,v$sqlarea b WHERE b.ADDRESS = a.PREV_SQL_ADDR;
通过这条语句找到的数据是有限的 因为有的用户可能已经断开和oracle的连接了
最近的心情很烦躁,这样不好~烦心的事情越来越多,做自己不酷,做更好的自己才最酷~