ITPub博客

首页 > 数据库 > Oracle > Backup And Recovery User's Guide-执行闪回删除操作

Backup And Recovery User's Guide-执行闪回删除操作

原创 Oracle 作者:LuiseDalian 时间:2014-02-28 00:19:10 0 删除 编辑

执行闪回删除操作

使用FLASHBACK TABLE…TO BEFORE DROP语句从回收站恢复对象。

可以指定表在回收站中的名称或原始的名称。

场景:

假设错误地删除了表。

许多次你被请求在测试库中删除表,但这次你意外地连接到了生产库并删除了hr.employee_demo表。

规划:使用FLASHBACK TABLE获取删除的对象

练习:获取删除的表

--1. 使用SQL*Plus连接到目标数据库,并从回收站获取被删除的表的名称

--1.1 ORIGINAL NAMERRECYCLEBIN NAME分别为对象的原始名称和在回收站中的名称

SHOW RECYCLEBIN;

ORIGINAL NAME    RECYCLEBIN NAME                   TYPE         DROP TIME

---------------- --------------------------------- ------------ -------------

EMPLOYEE_DEMO    BIN$gk3lsj/3akk5hg3j2lkl5j3d==$0  TABLE    2005-04-11:17:08:54

--1.2 也可以查看USER_RECYCLEBINDBA_RECYCLEBIN来获取表的名称

SELECT object_name AS recycle_name, original_name, type FROM recyclebin;

RECYCLE_NAME                      ORIGINAL_NAME          TYPE

--------------------------------  ---------------------  ----------

BIN$gk3lsj/3akk5hg3j2lkl5j3d==$0  EMPLOYEE_DEMO          TABLE

BIN$JKS983293M1dsab4gsz/I249==$0  I_EMP_DEMO             INDEX

-- 如果你计划手动地还原依赖对象的原始名称,则在还原表之前要确保清楚每个依赖的对象的系统产生的回收站的名称

-- 注意对象视图例如DBA_OBJECTS不显示回收站对象

-- 2. (可选),查询在回收站中的表.必须在查询中使用对象的回收站名称而不是原始名称

SELECT * FROM   "BIN$gk3lsj/3akk5hg3j2lkl5j3d==$0";

-- 注意:如果你具有必须的权限,则也可以在回收站中的表上使用闪回查询,但只能使用回收站名称而不是原始名称。

--       不能在回收站中的对象上执行DMLDDL操作。

--3. 获取删除的表. 使用FLASHBACK TABLE ... TO BEFORE DROP

--3.1 使用回收站对象名称,要用双引号引起来,因为在名称中有特殊字符

FLASHBACK TABLE "BIN$gk3lsj/3akk5hg3j2lkl5j3d==$0" TO BEFORE DROP;

--3.2 使用原始名称

FLASHBACK TABLE HR.EMPLOYEE_DEMO TO BEFORE DROP;

--3.3 给还原后的表指定新的名称

FLASHBACK TABLE "BIN$KSD8DB9L345KLA==$0" TO BEFORE DROP RENAME TO hr.emp_demo;

--4. (可选)验证所有依赖的对象仍然是系统产生的回收站对象名称

SELECT INDEX_NAME FROM   USER_INDEXES WHERE  TABLE_NAME = 'EMPLOYEE_DEMO';

INDEX_NAME

------------------------------

BIN$JKS983293M1dsab4gsz/I249==$0

--5. 将获取的索引改名为原始的名称

ALTER INDEX "BIN$JKS983293M1dsab4gsz/I249==$0" RENAME TO I_EMP_DEMO;

--6. 如果获取的表在它被放入回收站之前具有引用约束,则重建约束。这步必须手动完成,因为回收站不会保留引用约束。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1096758/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    5685581