1.Oracle的回收站
删除前:select * from tab;
删除表:drop table emp;
默认删除到Oracle的回收站。
删除后:select * from tab;
(删除的表仍然存在,但是名字很怪)
查看回收站:show recyclebin;
(删除的表名字形如BIN$*****)
可以通过回收站中的表的名字查看表原来的内容:select * from “BIN$*****”;
清空回收站:purge recyclebin;
(不能恢复)
彻底删除一张表(不经过回收站):drop table emp purge;
通过企业版Oracle数据库的闪回技术(flashback)进行恢复删除的表:
11g:7种,10g:6种
闪回表
闪回查询
闪回删除:flashback drop 恢复回收站中的表
闪回版本查询
闪回事务查询
闪回数据归档
恢复回收站中的表:flashback table emp to before drop;
如果闪回同名表需要重命名:
1.第一次闪回:先恢复后删除的表:flashback table emp to before drop;
2.第二次闪回:需要重命名:flashback table emp to before drop rename to emp_old;
2.HDFS的回收站
2.1 打开HDFS回收站功能
打开回收站功能,编辑core-site.xml配置文件,加上如下配置参数:
# vim core-site.xml
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
注意:这里的时间阈值:1440的单位是分钟,也就是一天。
加上这个参数后就打开了HDFS的回收站功能。删除文件时,就可以把文件先删除到回收站中,回收站里的文件可以快速回复。但是超过设置的时间阈值后,回收站的文件就会被自动永久删除,释放占用的数据块。
删除一个文件:
# hdfs dfs -rm /input/data.txt
默认情况下,HDFS的回收站是被禁用的,此时的删除日志是:
Deleted /input/data.txt
打开回收站功能时,删除文件是将文件移动到HDFS上的一个隐藏目录下,删除日志是:
Moved: *** to trash at: ***/.Trash/Current
2.2 查看HDFS回收站
# hdfs dfs -lsr /usr/root/.Trash/Current
2.3 从HDFS回收站恢复文件
# hdfs dfs -cp /usr/root/.Trash/Current/input/data.txt /input