ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

ORACLE恢复删除的表数据

2021-11-02 23:35:00  阅读:277  来源: 互联网

标签:NAME 删除 -- 恢复 drop recyclebin ORACLE table 回收站


1、oracle中有recyclebin表,用来保存用户删除的表的相关信息,相当于回收站。在recyclebin打开的情况下,用户drop掉的对象并没有被数据库删除,仍然会占用空间,除非用户手工进行purge或因为存储空间不够而被数据库清掉。

show parameter recyclebin;
--运行该SQL可以知道recyclebin这个表是否是开启的

a、recycle bin有dba_recyclebin和user_recyclebin两种视图

     dba_recyclebin放置所有用户drop掉的对象,不含system表空间,包含以下字段

OWNER                --drop掉的对象所属的用户
OBJECT_NAME          --对象名,命名规范是BIN$unique_id$version,BIN代表RecycleBin,unique_id是数据库中该对象的唯一标志,24个字符长度,version表示该对象的版本号
ORIGINAL_NAME        --原始表名
OPERATION            --操作,有drop
TYPE                 --类型,有index、table、lob、lob index
TS_NAME              --用户类型,有TS_ODS、USERS
CREATETIME           --创建时间
DROPTIME             --drop时间
DROPSCN              --drop的scn号
PARTITION_NAME       
CAN_UNDROP        
CAN_PURGE          
RELATED               
BASE_OBJECT      
PURGE_OBJECT    
SPACE                 

user_recyclebin放置当前用户drop掉的对象,字段比 dba_recyclebin少了一个OWNER

 

b、利用flashback还原回收站内容

语法:FLASHBACK TABLE [已删除TABLE名|”RECYCLEBIN中的名字”] TO BEFORE DROP;

flashback table "BIN$KI5DFtx9TnyUTUiZIuC8YA==$0" to before drop;
--这里是OBJECT_NAME,也可以是ORIGINAL_NAME

--再把这个表删除了通过ORIGINAL_NAME恢复也是一样的
flashback table sell to before drop;
--这里是ORIGINAL_NAME

 

 

c、如果有几个的ORIGINAL_NAME都是一样的,通过ORIGINAL_NAME恢复,只能恢复最后被drop掉的对象;若想明确某个对象就通过OBJECT_NAME恢复。

如果在数据库中存在和回收站相同对象名的表时,恢复回收站的对象时需要rename对选哪个名。如数据库中存在一个表名为atest,回收站中也存在一个atest

 flashback table atest to before drop;
--flashback table "BIN$6b6dC4BIR9CZLSfGZWvrVQ==$0" to before drop;
--使用object_name或origin_name都会出现错误

flashback table atest to before drop rename to atest_bak;
--atest是原始名,atest_bak是重新的命名

 

 

d、清空回收站,之后不可以通过回收站恢复清空的数据

purge table stest;
--清空某个特定对象,stest是表名

 

purge user_recyclebin;
--purge dba_recyclebin;需要改用户拥有系统权限,否则不允许清空

 

 参考文章https://blog.csdn.net/u010098331/article/details/50782395

 

标签:NAME,删除,--,恢复,drop,recyclebin,ORACLE,table,回收站
来源: https://www.cnblogs.com/muhai/p/15501744.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有