Oracle数据库恢复删除的表
可以查询出回收站中删除的表 original_name是原表名
select object_name,original_name,type,droptime
from user_recyclebin;
对删除的表进行恢复
在上面要是能查出来就恭喜你数据库有回收站机制并在开启状态。
有同名的恢复最新删除的。
flashback table 原表名 to before drop;
– 查询所有表名
SELECT TABLE_NAME,COMMENTS from all_tab_comments where OWNER='模式名'
–删除表,进入到回收站
drop table ahic_sms_interface$_;
–查看是否开启了回收站,on代表开启了
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='recyclebin';
–关闭数据库回收站机制,初始的不让改
ALTER SYSTEM SET RECYCLEBIN=OFF;
–开启数据库回收站机制
修改 on状态,需要注意的是要指定scope=spfile,因为这个参数是不能再内存中修改的,也有10g和11g的差别需要使用不同的参数
alter system set recyclebin=on scope=spfile;
开启后需要重启数据库才生效
停止 shutdown
开启 startup
–清空回收站
purge recyclebin;
对表进行恢复 回滚
ALTER TABLE 表名 ENABLE ROW MOVEMENT;
FLASHBACK TABLE 表名 TO TIMESTAMP TO_TIMESTAMP('2021-03-03 17:39:00','YYYY-MM-DD HH24:MI:SS');