闪回之 回收站、Flashback Drop (table、index、trigger等)
一: Flashback Drop 操作流程
模式一:drop table 后未新建同名表
SQL> create table flashdrop as select * from user_objects;
Table created.
SQL> create bitmap index ind_flashdrop  on flashdrop(object_type);
Index created.
SQL> drop table flashdrop;
Table dropped.
--查看 recyclebin 内的对象
SQL> select original_name,object_name,type,droptime from recyclebin;
ORIGINAL_NAME                    OBJECT_NAME                    TYPE                      DROPTIME
-------------------------------- ------------------------------ ------------------------- -------------------
IND_FLASHDROP                    BIN$ESs42vP2YC3gUw0ZZAqeww==$0 INDEX                     2015-03-13:08:08:19
FLASHDROP                        BIN$ESs42vP3YC3gUw0ZZAqeww==$0 TABLE                     2015-03-13:08:08:19
SQL> flashback table flashdrop to before drop;
Flashback complete.
SQL> select original_name,object_name,type,droptime from recyclebin;
no rows selected
--查看索引名字
SQL> col column_name for a40
SQL>  SELECT index_name, column_name, descend  FROM user_ind_columns  WHERE table_name = 'FLASHDROP';
INDEX_NAME                     COLUMN_NAME                              DESC
------------------------------ ---------------------------------------- ----
BIN$ESs42vP2YC3gUw0ZZAqeww==$0 OBJECT_TYPE                              ASC
--索引改为原来的名字   (说明 闪回表 后,即使未给索引重命名,执行计划依然可以走索引)
SQL> alter index "BIN$ESs42vP2YC3gUw0ZZAqeww==$0" rename to IND_FLASHDROP;
Index altered.
--查看是否成功改名
SQL>  SELECT index_name, column_name, descend  FROM user_ind_columns  WHERE table_name = 'FLASHDROP';
INDEX_NAME                     COLUMN_NAME                              DESC
------------------------------ ---------------------------------------- ----
IND_FLASHDROP                  OBJECT_TYPE                              ASC
SQL> select count(*) from flashdrop;
  COUNT(*)
----------
        11
补充:
--查看表约束名
select CONSTRAINT_NAME,TABLE_NAME, COLUMN_NAME from user_cons_columns where TABLE_NAME='FLASHDROP';
模式二:drop table 后新建同名表
SQL> drop table flashdrop;
Table dropped.
SQL> create table flashdrop as select * from user_objects;
Table created.
SQL> select original_name,object_name,type,droptime from recyclebin;
ORIGINAL_NAME                    OBJECT_NAME                    TYPE                      DROPTIME
-------------------------------- ------------------------------ ------------------------- -------------------
IND_FLASHDROP                    BIN$ESs42vP4YC3gUw0ZZAqeww==$0 INDEX                     2015-03-13:08:25:37
FLASHDROP                        BIN$ESs42vP5YC3gUw0ZZAqeww==$0 TABLE                     2015-03-13:08:25:37
SQL> flashback table flashdrop to before drop;
flashback table flashdrop to before drop
*
ERROR at line 1:
ORA-38312: original name is used by an existing object
SQL> flashback table flashdrop to before drop rename to flashtable;
Flashback complete.
SQL> select original_name,object_name,type,droptime from recyclebin;
no rows selected
SQL> select count(*) from flashtable;
  COUNT(*)
----------
        11
模式三:drop table 后新建同名表,再 drop 新同名表
SQL> select count(*) from flashdrop;
  COUNT(*)
----------
        13
SQL> drop table flashdrop;
Table dropped.
SQL> create table flashdrop as select * from user_objects;
Table created.
SQL> insert into flashdrop(object_name) values('andy');
1 row created.
SQL> select count(*) from flashdrop;
  COUNT(*)
----------
        14
SQL> drop table flashdrop;
Table dropped.
SQL> select original_name,object_name,type,droptime from recyclebin;
ORIGINAL_NAME                    OBJECT_NAME                    TYPE                      DROPTIME
-------------------------------- ------------------------------ ------------------------- -------------------
FLASHDROP                        BIN$ESs42vP9YC3gUw0ZZAqeww==$0 TABLE                     2015-03-13:08:42:21
FLASHDROP                        BIN$ESs42vP+YC3gUw0ZZAqeww==$0 TABLE                     2015-03-13:08:56:16
SQL> select count(*) from "BIN$ESs42vP9YC3gUw0ZZAqeww==$0";
  COUNT(*)
----------
        13
SQL> select count(*) from "BIN$ESs42vP+YC3gUw0ZZAqeww==$0";
  COUNT(*)
----------
        14
SQL> flashback table "BIN$ESs42vP+YC3gUw0ZZAqeww==$0" to before drop;
Flashback complete.
SQL> select count(*) from flashdrop;
  COUNT(*)
----------
        14
闪回之 回收站、Flashback Drop (table、index、trigger等)的更多相关文章
- Oracle 六闪回技术,flashback
		
Flashback 技术基于Undo segment基于内容的, 因此,限制UNDO_RETENTON参数. 要使用flashback 特征,您必须启用自己主动撤销管理表空间. 在Oracle 11g ...
 - 【DG】利用闪回数据库(flashback)修复Failover后的DG环境
		
利用闪回数据库(flashback)修复Failover后的DG环境 1.1 BLOG文档结构图 1.2 前言部分 1.2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能, ...
 - oracle闪回、闪回数据归档Flashback Data Archive (Oracle Total Recall)的真正强大之处、11gR2增强以及合理使用
		
oracle的闪回很早就出来了,准确的说一直以来应该都较少被真正用户广为使用,除了dba和极少部分开发人员偶尔用于逻辑出错.误删恢复之外,较少被用于产生更有价值的用途. 各种闪回表flashback ...
 - 闪回事务(Flashback Transaction)
		
到目前为止,介绍的所有功能均不会直接将数据恢复为“以前”的样子.闪回查询只是查看,闪回数据归档只是延伸了闪回查询的时间窗口,闪回事务查询虽然提供了撤销SQL,但是否执行及如何执行还需要管理员进一步手动 ...
 - FlashBack 闪回
		
[学习目标] Flashback Database 功能非常类似与RMAN的不完全恢复,它可以把整个数据库回退到 过去的某个时点的状态,这个功能依赖于Flashback log日志.比RMAN 更快速 ...
 - oracle之三闪回flashback
		
闪回 flashback 5.1 flashback 的功能:1)利用undo data回溯或撤销提交的数据,2)flashback log 使database 可以恢复到过去某个时间点,可以作为不完 ...
 - 【Oracle】闪回drop后的表
		
本文介绍的闪回方式只适用于:删除表的表空间非system,drop语句中没有purge关键字(以上两种情况的误删除操作只能通过日志找回): 1.删除表后直接从回收站闪回 SCOTT@LGR> d ...
 - Oracle Flashback 闪回
		
Oracle 的闪回技术是一种数据恢复技术,仅能对用户逻辑错误进行恢复, 闪回针对的是提交commit的事务,没有提交的事务,使用rollback 1.闪回版本查询 Flashback Version ...
 - OCP读书笔记(11) - 使用闪回技术II
		
闪回归档 1. 什么是闪回数据归档? 闪回归档是用来保存一个或多个表的历史数据的新数据库对象,以及该数据的存储保留和清除策略.归档只是保存数据库中一个或多个表的所有事务处理的变化的一个或多个表空间,数 ...
 
随机推荐
- 洛谷P1038 神经网络==codevs1088 神经网络
			
P1038 神经网络 题目背景 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷款风险评估等诸多领域有广泛的应用.对神 ...
 - 【BZOJ3333】排队计划 树状数组+线段树
			
[BZOJ3333]排队计划 Description Input Output Sample Input 6 2 160 163 164 161 167 160 2 3 Sample Output 6 ...
 - oschina git服务, 如何生成并部署ssh key
			
1.如何生成ssh公钥 你可以按如下命令来生成 sshkey: ssh-keygen -t rsa -C "xxxxx@xxxxx.com" # Generating public ...
 - HTTP 304 详解
			
把Last-Modified 和ETags请求的http报头一起使用,这样可利用客户端(例如浏览器)的缓存.因为服务器首先产生 Last-Modified/Etag标记,服务器可在稍后使用它来判断页面 ...
 - Android Resources
			
Ref:Android开发最佳实践 Ref:Android高手速成--第一部分 个性化控件(View) Ref:Android高手速成--第二部分 工具库 Ref:Android高手速成--第三部分 ...
 - Office 2013“永久激活信息”备份
			
Office 2013“永久激活信息”备份还原简明教程及成功恢复的注意事项Office 2013永久激活后及时备份激活信息可以保证重装后快速激活.网上也有流行的各种备份工具,虽然操作简单,但是如果不理 ...
 - full_case parallel_case学习心得
			
一般情况下,DC把case语句综合成选择器电路,但也可能把case语句综合成优先权译码电路.有时,优先权译码电路是不必要的,这是可以使用“// synopsys parallel_case”引导语句强 ...
 - Linux系统BTC挖矿傻瓜教程
			
[Linux系统BTC/比特币矿池挖矿方案一]cgminer矿池挖矿程序(Linux系统 比特币(BTC) 矿池挖矿/采矿/造币)cgminer矿池挖矿程序[查看这里有没有最新版]http://ck. ...
 - 基于事件驱动的前端通信框架(封装socket.io)
			
socket.io的使用可以很轻松的实现websockets,兼容所有浏览器,提供实时的用户体验,并且为程序员提供客户端与服务端一致的编程体验.但是在使用socket.io的过程中,由于业务需求需要同 ...
 - Redis缓存全自动安装shell脚本
			
我只是把命令放到shell文件中了,方便安装,代码如下: #!/bin/bash # shell的执行选项: # -n 只读取shell脚本,但不实际执行 # -x 进入跟踪方式,显示所执行的每一条命 ...