ORACLE恢复删除表或表记录

一:表的恢复

对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的。一般步骤有:
1、从flash back里查询被删除的表
select * from recyclebin

ORACLE恢复删除表或表记录


2.执行表的恢复
flashback table tb to before drop,这里的tb代表你要恢复的表的名称。

二:表数据恢复

对误删的表记录,只要没有truncate语句,就可以根据事务的提交时间进行选择恢复,一般步骤有:
1、先从flashback_transaction_query视图里查询,视图提供了供查询用的表名称、事务提交时间、UNDO_SQL
等字段。
如:

select * from flashback_transaction_query where table_name='TEST';


2、执行表记录恢复
一般先根据时间进行查询,查询语句模式为

select * from tb as of timestamp to_timestamp(time,'yyyy-mm-dd hh34:mi:ss');

tb指表名称,time指某个时间点

如;

select * from scott.test as of timestamp to_timestamp('2009-12-11 20:53:57','yyyy-mm-dd hh34:mi:ss');

若有数据,恢复极为简单了,语句为flashback table tb to timestamp to_timestamp(time,'yyyy-mm-dd hh34:mi:ss');

flashback table scott.test to timestamp to_timestamp('2009-12-11 20:47:30','yyyy-mm-dd hh34:mi:ss');

注意:alter table testvarchar enable row movement;
这个命令的作用是,允许Oracle 修改分配给行的rowid。在Oracle 中,插入一行时就会为它分配一个rowid,而且
这一行永远拥有这个rowid。闪回表处理会对EMP 完成DELETE,并且重新插入行,这样就会为这些行分配一个新
的rowid。要支持闪回就必须允许Oracle 执行这个操作

免责声明:
1.本站所有内容只做学习和交流使用。 版权归原作者所有。
2.保证站内提供的所有可下载源码资源(软件等)都是按“原样”提供,本站未做过任何改动;但本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。
3.本站部分内容均收集于网络!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。请联系站长邮箱:admin#ibian.online(#换成@)处理!

给TA打赏
共{{data.count}}人
人已打赏
数据库

MSSQL 数据修改

2025-2-21 9:44:06

数据库

Oracle如何删除重复数据保留第一条记录

2025-2-21 10:32:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索