学堂 学堂 学堂公众号手机端

Oracle回收站 使用

lewis 4年前 (2021-03-09) 阅读数 6 #技术
查询回收站
SELECT * FROM RECYCLEBIN;
SELECT * FROM USER_RECYCLEBIN; --USER_RECYCLEBING与RECYCLEBIN是同义词,字段完全一样

开启或关闭回收站会话级别开启/关闭
ALTER SESSION SET RECYCLEBIN = OFF/ON;

系统级别开启/关闭
ALTER SYSTEM SET RECYCLEBIN = OFF/ON SCOPE=SPFILE;--(需要重启数据库)


查询回收站中的表数据
SELECT * FROM "BIN$KlM0Cy+QG0jgU3AVGawe9w==$0";
清空回收站中的数据
PURGE TABLE BIN$KlM0Cy+QG0jgU3AVGawe9w==$0;--根据OBJECT_NAME名称清除
PURGE TABLE EMPLOYEES;--根据ORIGINAL_NAME名称清除
PURGE RECYCLEBIN;--清空回收站数据
PURGE RECYCLEBIN EXAMPLE USER SCOTT;--清空回收站数据,但保留scott用户的数据

还原回收站中的数据表
FLASHBACK TABLE EMPLOYEES TO BEFORE DROP;--还原成原来的表名
FLASHBACK TABLE EMPLOYEES TO BEFORE DROP RENAME TO EMPLOYEES_NEW;--还原成新的表名

还原表附属的对象

注意:回收站中的表,当表恢复以后,相关的索引也会同时恢复,但索引的名字仍旧会使用在回收站中的名称
所以需要将索引重新命名,以便知道各个索引的含义

1、查询已恢复表的索引名称
SELECT INDEX_NAME, INDEX_TYPE, TABLE_NAME, UNIQUENESS
FROM USER_INDEXES
WHERE TABLE_NAME = 'EMP1';

2、将索引重命名
ALTER INDEX "BIN$KlNYwcBGG1LgU3AVGazI7Q==$0" RENAME TO

参考文档

​​http://docs.oracle.com/cd/B28359_01/server.111/b28310/tables011.htm​​


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门