数据库中如何使用闪回删除来回退DROP TABLE操作

发布时间:2021-11-09 13:48:43 作者:小新
来源:亿速云 阅读:139

这篇文章主要为大家展示了“数据库中如何使用闪回删除来回退DROP TABLE操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“数据库中如何使用闪回删除来回退DROP TABLE操作”这篇文章吧。

--闪回
SELECT * FROM AA AS OF TIMESTAMP(sysdate-1/24/60)  --查看2个小时以前的数据
1/2就是12小时
1/24就是1小时
1/24/60就是1分钟

alter table tableName enable row movement; 
   这个命令的作用是,允许修改ORACLE分配给行的ROWID,在oracle中,插入一行数据
就会给它分配一个rowid,这行永远拥有这个ROWID,闪回表处理会对EMP完成DELETE操作
并添加新行,这样就会对新行分配一个新的ROWID; 否则会报 ora-08189错误。 
flashback table tableName to scn timestamp_to_scn(sysdate-1/12);--利用时间转换成SCN号,进行数据恢复.
SCN: 
   SCN(System ChangeNumber):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动
增加,他是系统中维持数据的一致性和顺序恢复的重要标志。

--恢复删除的表
DROP TABLE AA; 
1.用如下语句查询到这个表还在Oracle回收站中: 
SELECT * FROM user_recyclebin WHERE original_name='AA'; 


2.用以下语句进行恢复: 
FLASHBACK TABLE AA TO BEFORE DROP;
ORACLE10G增加了回收站(recycle bin)的功能,从原理来说就是一个数据字典,保存被DROP对象的信息,]
实际上被DROP的对象,并没有被数据库删除,任然占有空间。除非用户手工purge和数据空间不够被清除掉.

3.清除回收站的数据
purge table tableName
purge recyclebin;--全部清除

使用闪回删除来回退DROP TABLE操作

这部分解释了如何使用FLASHBACK TABLE…TO BEFORE DROP语句从回收站获取对象。

关于闪回删除

闪回删除可以回退DROP TABLE操作的影响

闪回删除要比可应用于该场景的其它恢复技术要快,例如基于时间点的恢复,不会导致停机或最近的事务的丢失。

当你删除一个表的时候,数据库不会立即移除与这个表相关的空间。

相反,这个表被改名了,并与其它相关的对象一起,被放入了回收站。

系统产生的回收站对象的名称是唯一的。可以像查询其它对象一样,查询在回收站中的对象。

FLAHSBACK操作从收回站获取对象,当获取被删除的表的时候,

可以指定这个表的原始的由用户指定的名称,也可以指定系统产生的名称。

当你删除一个表,这个表和所有它依赖的对象都进入到了回收站。

因此当执行闪回删除的时候,所有的对象通常都是一起被获取。

当从回收站还原表时,依赖的对象,例如索引,不会得到它们原始的名字,保留系统产生的回收站中的名称。

Oracle会获取定义在该表上的所有的索引(位图连接索引除外)、触发器和约束(引用其它表的引用完整性约束除外)

一些依赖的对象,例如索引,可以会儿因为空间压力而被回收。这种情况下被回收的对象不会从回收站获取。

以上是“数据库中如何使用闪回删除来回退DROP TABLE操作”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. 闪回数据库的简单介绍
  2. 大表DROP删除小技巧

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

数据库

上一篇:如何恢复Oracle数据库误删除数据的语句

下一篇:怎么理解Oracle等待事件的分类、发现及优化

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》