oracle如何找回语句 oracle删除恢复语句

在oracle中如何找回被删除的数据?

1、首先新建一张测试表TEST,里面输入记录。由于删除/更新/插入恢复步骤相同,这里仅演示删除数据的情况。

成都创新互联公司是一家专业提供润州企业网站建设,专注与网站设计、成都网站制作、H5页面制作、小程序制作等业务。10年已为润州众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

2、删除其中1条记录,查看表中记录情况,由下图可见,记录2被删除了。

3、恢复之前先确定要恢复到的时间点,下图可以看出2018-03-07 15:33:00数据是正确的。

SELECT *

FROM TEST AS OF TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');

4、下面进行表数据恢复。

FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');

可以看到报错了,原因是没有开启行移动。

5、开启该表的行移动。

ALTER TABLE TEST ENABLE ROW MOVEMENT;

6、再次执行数据恢复。

FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');

然后查看数据情况,可以看到已经恢复了。

oracle数据库误操作把表删除了,怎么找回?

一:表的恢复\x0d\x0a\x0d\x0a 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的。一般步骤有:\x0d\x0a\x0d\x0a1、从flash back里查询被删除的表\x0d\x0a\x0d\x0a select * from recyclebin\x0d\x0a\x0d\x0a2.执行表的恢复\x0d\x0a\x0d\x0a flashback table tb to before drop,这里的tb代表你要恢复的表的名称。\x0d\x0a\x0d\x0a二:表数据恢复\x0d\x0a\x0d\x0a 对误删的表记录,只要没有truncate语句,就可以根据事务的提交时间进行选择恢复,一般步骤有:\x0d\x0a\x0d\x0a1、先从flashback_transaction_query视图里查询,视图提供了供查询用的表名称、事务提交时间、UNDO_SQL等字段。\x0d\x0a\x0d\x0a 如:select * from flashback_transaction_query where \x0d\x0atable_name='TEST';\x0d\x0a\x0d\x0a 2、执行表记录恢复\x0d\x0a\x0d\x0a 一般先根据时间进行查询,查询语句模式为select * from tb as of timestamp \x0d\x0ato_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名称,time指某个时间点\x0d\x0a\x0d\x0a 如select * from scott.test as of timestamp to_timestamp('2009-12-11 \x0d\x0a20:53:57','yyyy-mm-dd hh24:mi:ss');\x0d\x0a\x0d\x0a 若有数据,恢复极为简单了,语句为flashback table tb to timestamp \x0d\x0ato_timestamp(time,'yyyy-mm-dd hh24:mi:ss');\x0d\x0a\x0d\x0a 如flashback table scott.test to timestamp to_timestamp('2009-12-11 \x0d\x0a20:47:30','yyyy-mm-dd hh24:mi:ss');\x0d\x0a\x0d\x0a注意:alter table testvarchar enable row movement;\x0d\x0a\x0d\x0a 这个命令的作用是,允许Oracle 修改分配给行的rowid。在Oracle \x0d\x0a中,插入一行时就会为它分配一个rowid,而且这一行永远拥有这个rowid。闪回表处理会对EMP \x0d\x0a完成DELETE,并且重新插入行,这样就会为这些行分配一个新的rowid。要支持闪回就必须允许Oracle 执行这个操作

Oracle数据库执行了delete语句,但没有提交,这是页面已经关闭了,怎么找回

一般情况下,若页面关闭了,session就断开了,SQL语句会自动提交,你的delete被执行了

所以,数据是无法找回了(若有日志,可通过日志恢复,若是单条数据,手工insert一条也是可以的)


网站栏目:oracle如何找回语句 oracle删除恢复语句
网页网址:http://hbruida.cn/article/hicpjs.html