oracle recyclebin 回收站

sql 复制代码
18:34:50 SYS@cndb> show parameter recyclebin;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
recyclebin                           string      on

ALTER SESSION SET recyclebin = ON;
ALTER SYSTEM SET recyclebin = ON SCOPE = SPFILE;

--查看表DDL
select dbms_metadata.get_ddl('TABLE','JZPD_MZJ_WBGYHBZ') from dual;

drop table luan_zxk.JZPD_MZJ_WBGYHBZ   -- purge那么将无法恢复
可以查看回收站中的表
select * from recyclebin where ORIGINAL_NAME='JZPD_MZJ_WBGYHBZ';
恢复表
flashback table JZPD_MZJ_WBGYHBZ to before drop;
to before drop 表示恢复这个表及其所有依赖的对象。如果该表的名称已经被其它表使用,那么执行 flashback table 该表时则会报错:ORA-38312:original name is used by an existing object, 这时,可以在执行 flashback table 时将表重命名
flashback table JZPD_MZJ_WBGYHBZ to before drop rename to JZPD_MZJ_WBGYHBZ_old;
rename to 表示将该表恢复后重命名。如果该表已经被删除了多次,那么使用 flashback table 恢复该表将默认恢复最后一次删除的那个,如果想恢复之前的一个版本,需要在回收站中查询该表,然后可以使用那个恢复并重命名的方式依次恢复每一个。

确认
SELECT * FROM luan_zxk.JZPD_MZJ_WBGYHBZ

--清除整个回收站的内容
purge recyclebin;

使用 flashback table 需要注意:

1)数据库将从回收站恢复该表的所有索引,注意bitmap join Index不能恢复,因为该索引在表格删除后不会被放入回收站中,所以不能恢复;

2)数据库将恢复该表的trigger和constraint,除了指向其它表的完整性约束;

3)当删除一个表格时,定义在该表格上的所有物化视图日志也被删除,但不会放入回收站中,因此,物化视图日志不能随着表格被恢复;

4)当删除一个表格时,该表格相关的所有索引都将被放入回收站中,如果数据库空间不足,数据库将首先清除掉索引的空间,因此,在这种情况下,恢复表格将无法恢复所有的索引;

5)如果被删除的表格已经被 purge 了,那么将无法恢复。

相关推荐
fofantasy12 分钟前
NSK LH12AN 微型导轨技术手册
运维·网络·数据库·经验分享·规格说明书
杨运交18 分钟前
[032][缓存模块]基于Redis Bitmap的用户行为统计实战:签到与日活分析
数据库·redis·缓存
一 乐34 分钟前
家政服务管理系统|基于springboot + vue家政服务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·家政服务管理系统
努力成为AK大王2 小时前
并发编程的核心挑战、优化方案与核心知识点总结
java·开发语言·数据库
En^_^Joy3 小时前
Django开发:模板系统入门指南
数据库·django·sqlite
无关86884 小时前
Redis Bitmaps 用户签到系统设计方案
数据库·redis·缓存
江华森4 小时前
FastAPI 极速开发指南 — 从零到生产级 API 实战
数据库·fastapi
老纪5 小时前
Redis分布式锁进第九零篇
数据库·redis·分布式
haven-8525 小时前
MySQL事务ACID、隔离级别、MVCC、幻读解决
数据库·mysql