- 浏览: 126395 次
- 来自: ...
最近访客 更多访客>>
文章分类
最新评论
-
dwangel:
给messageSource设置属性
<property ...
Spring i18n的better practice(相对于appfuse) -
dwangel:
spring 的message tag有一个属性text,可以 ...
Spring i18n的better practice(相对于appfuse) -
sn201:
awk高级篇
有问题啊!有问题!有问题!有问题!有问题!
i ...
awk文本处理总结(入门,中级,高级) -
happy_javaboy:
...
Log4j日志管理系统简单使用说明
大家在平时开发中,有时意外的删除过表,可能就是直接重新创建该表。在oracle10g中,可以用Flashback drop恢复用一个被删除(drop)了的对象,oracle自动将该对象放入回收站。Flashback drop恢复的原理也是利用oracle的回收站来恢复被删除(drop)的对象。
回收站,是一个虚拟的容器,用于存放所有被删除的对象。其实,对于一个对象的删除,数据库仅仅是简单的重命名操作。
数据库参数recyclebin设置为on.(即默认设置)。参数recyclebin为on,则表示把Drop的对象放入回收站。为off,则表示直接删除对象而不放入回收站。
查看recyclebin值命令如:
SQL> show parameter bin;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
recyclebin string on
在系统或会话级别中修改参数recyclebin值的命令为:
SQL>alter system set recyclebin = on|off;
SQL>alter session set recyclebin = on|off;
查看回收站的相关信息视图有:recyclebin/user_recyclebin/dba_recyclebin.
手动清除回收站的信息为:purge recyclebin(或purge table original_name);
删除一张表而不想放入回收站的命令为:drop table table_name purge;
示例1:
1.查看用户下回收站的信息,此时回收站为空
SQL>selectOBJECT_NAME,ORIGINAL_NAME,TYPEfromuser_recyclebin;
OBJECT_NAME ORIGINAL_NAME TYPE
------------------------------ ------------- ------
2.创建测试表tab_test,并为该表增加ind_test索引
SQL>createtabletab_testasselect*fromall_objects;
Tablecreated
SQL>createindexind_testontab_test(object_id);
Indexcreated
SQL> select count(*) from tab_test;
COUNT(*)
----------
40699
3。用drop命令删除tab_test表
SQL>droptabletab_test;
Tabledropped
4。查看用户回收站信息,此时会记录删除后的对象在回收站中的相关信息,此时还能正常操作回收站中的对象,但不能操作DDL/DML语句
SQL>selectOBJECT_NAME,ORIGINAL_NAME,TYPEfromuser_recyclebin;
OBJECT_NAME ORIGINAL_NAME TYPE
------------------------------ ------------- ------
BIN$a+iPOcq+QXiwUT8B3c3QoA==$0 IND_TEST INDEX
BIN$zFJjV8zFSlqbLecXbDeANQ==$0 TAB_TEST TABLE
SQL>selectcount(*)from"BIN$zFJjV8zFSlqbLecXbDeANQ==$0";
COUNT(*)
----------
40699
SQL>deletefrom"BIN$zFJjV8zFSlqbLecXbDeANQ==$0";
deletefrom"BIN$zFJjV8zFSlqbLecXbDeANQ==$0"
ORA-38301:无法对回收站中的对象执行DDL/DML
5.用flashback恢复表到删除之前的状态
SQL>flashbacktabletab_testtobeforedrop;
Done
SQL> select count(*) from tab_test;
COUNT(*)
----------
40699
6.恢复表的索引(此时表中的索引同时也被恢复了,只不过该索引还是保留回收站中的索引名称)
SQL> select index_name from user_indexes where table_name = 'TAB_TEST';
INDEX_NAME
------------------------------
BIN$a+iPOcq+QXiwUT8B3c3QoA==$0
SQL> alter index "BIN$a+iPOcq+QXiwUT8B3c3QoA==$0" rename to ind_test;
Index altered
SQL> select index_name from user_indexes where table_name = 'TAB_TEST';
INDEX_NAME
------------------------------
IND_TEST
示例2:
1.查看用户下回收站的信息,此时回收站为空
SQL>selectOBJECT_NAME,ORIGINAL_NAME,TYPEfromuser_recyclebin;
OBJECT_NAME ORIGINAL_NAME TYPE
------------------------------ ------------- ------
2.创建测试表test1,并输入数据
SQL> create table test1(id number);
Table created
SQL> insert into test1 values(1);
1 row inserted
SQL> insert into test1 values(2);
1 row inserted
SQL> insert into test1 values(3);
1 row inserted
SQL> insert into test1 values(4);
1 row inserted
SQL> commit;
Commit complete
SQL> select count(*) from test1;
COUNT(*)
----------
4
3.删除test1表,然后在重新创建test1表
SQL> drop table test1;
Table dropped
SQL> create table test1(id number);
Table created
SQL> insert into test1 values(1);
1 row inserted
SQL> commit;
Commit complete
SQL> select count(*) from test1;
COUNT(*)
----------
1
4.再次删除test1表
SQL> drop table test1;
Table dropped
5.查询回收站信息(此时回收站中有两条test1表的数据)
SQL>select*fromuser_recyclebin;
OBJECT_NAME ORIGINAL_NAME TYPE
------------------------------ --------------------
BIN$Uk69X077TQWqQ0OQ3u1FdQ==$0 TEST1 TABLE
BIN$kpG5ZWdlRUi/jO6X0EYP+A==$0 TEST1 TABLE
5.用flashback恢复表到删除之前的状态
SQL> flashback table test1 to before drop;
Done
SQL> select count(*) from test1;
COUNT(*)
----------
1
此时查看恢复后的test1,发现恢复到最近一次的信息,因此可说明多次删除后,在回收站中会存在多条与test1有关的数据,而用flashback table test1 to before drop命令恢复到的是test1表中最近一次删除的信息
发表评论
-
Oracle性能调优-优化排序操作
2010-08-07 11:37 1182关于Oracle 10g性能方面,谈论最多的就是新的自动工作负 ... -
Oracle中的外连接简单介绍
2006-08-11 09:53 550在讲外连接之前,先举例介绍内连接,也就是一般的相等连接。 s ... -
SQLServer和Oracle常用函数对比
2006-08-11 09:55 357SQLServer和Oracle是大家经常用到的数据库,在此感 ... -
Oracle SQL 内置函数大全
2006-08-24 10:37 549... -
Oracle PL/SQL入门之慨述
2006-09-05 21:14 533一、PL/SQL出现的目的 结构化查询语言(Structur ... -
Oracle:PL/SQL 中如何使用Array
2006-09-18 20:41 643因为在PL/SQL 中并没有数 ... -
java高级编程:基于JNDI的应用开发
2006-10-02 18:08 591基于JNDI的应用开发 ... -
开源技术之Tomcat数据源配置总结
2006-10-06 14:55 603成功配置环境Tomcat5.0.28+ ... -
Java调用存储过程
2006-10-11 14:22 623摘要:本文阐述了怎 ... -
JNDI配置原理详解
2006-10-11 14:55 676最近写书,写到JNDI,到 ... -
ORACLE SEQUENCE的简单介绍
2006-12-28 11:01 749在oracle中sequence就是所 ... -
oracle系统表查询
2007-07-30 17:03 574数据字典dict总是属于Ora ... -
JOB
2007-09-04 17:42 445var jobno number begin sys.db ... -
网络收集:PLSQL常用方法汇总
2007-10-18 14:03 740网络收集:PLSQL常用方法汇总 在SQLPLUS下,实现中- ... -
oracle pl/sql 创建同义词
2007-10-24 11:05 1367CREATE OR REPLACE Procedure Cre ... -
索引分析和比较
2007-11-21 10:20 740转自:http://tb.blog.csdn.net/Trac ... -
ORACLE索引与高性能SQL介绍
2007-11-21 15:05 490转自:http://blog.csdn.net/annicyb ... -
oracle动态游标的简单实现方法
2008-05-27 09:17 768下面就是例子程序 --明细表打印予处理 通用报表: pro ... -
Oracle触发器
2008-05-27 15:22 632是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用 ... -
Oracle体系结构之-Oracle中各种名称
2008-05-31 15:18 796一、数据库名 数据 ...
相关推荐
Oracle 闪回特性 FLASHBACK & RECYCLEBIN Flashback 系列是 Oracle 数据库中的一组功能强大且实用的闪回机制,旨在帮助数据库管理员和开发者快速恢复数据库中的各种对象,包括表、数据、事务等。Flashback 系列的...
2. 闪回丢弃(Flashback Drop):类似于操作系统的垃圾回收站功能,可以从中恢复被drop的表或索引。该功能基于撤销数据。 3. 闪回查询(Flashback Query):查询过去某个时间点或者某个 SCN 值时表中的数据信息。 4....
flashback drop是指Oracle提供的闪回技术中的一种,它允许用户通过闪回查询功能将被删除的对象从回收站中恢复。这个功能使得在误删除对象后能够迅速而准确地恢复数据,缩短了数据恢复的时间,减少了数据丢失的风险...
Oracle 10g引入了多种闪回功能,包括Flashback Database、Flashback Drop、Flashback Query以及Flashback Table。 1. **Flashback Database**: - Flashback Database允许用户将整个数据库恢复到过去的一个特定...
7. **闪回丢弃(Flashback Drop)**:类似于操作系统中的“回收站”,被DROP的表或索引可以在闪回丢弃中找回,前提是撤销数据未被清除。 在使用闪回技术时,需要确保有足够的存储空间来保存闪回日志,并且要合理...
### Flashback闪回技术 #### 一、概述 Flashback技术是Oracle数据库中一项重要的数据恢复工具,它基于Undo Segment中的内容实现,并受到UNDO_RETENTION参数的影响。要使用这项特性,用户必须启用自动撤销管理表...
2. **使用闪回功能**:通过`FLASHBACK TABLE table_name TO BEFORE DROP;`命令恢复已删除的表。 #### 五、闪回表数据的修改 对于表中的数据被意外修改或删除的情况,可以使用以下方法恢复: 1. **闪回查询**:使用...
3. **闪回删除(Flashback Drop)** 如果不小心删除了表,可以使用`FLASHBACK TABLE`配合`RENAME`来恢复。例如: ```sql FLASHBACK TABLE deleted_table TO BEFORE DROP; RENAME deleted_table TO original_...
- 插入数据 `INSERT INTO test (a) VALUES ('测试flashbackdrop')`; - 提交 `COMMIT`; - 错误地删除表 `DROP TABLE test`; - 使用 Flashback Drop 恢复表 `FLASHBACK TABLE test TO BEFORE DROP`; ##### 5. ...
闪回删除(Flashback Drop)可以轻松将一个已经被Drop的表还原回来。相应的索引、数据库约束也会被还原(除了外键约束)。例如,可以使用以下SQL语句来闪回删除表: SQL> flashback table emp to before drop ...
- **删除闪回(Flashback Drop)**: 对于被删除的表,可以使用`flashback table to before drop`来恢复,但需注意,恢复后的索引名可能还在回收站中,需要手动重命名: ```sql SQL> flashback table s_emp1 to ...
- **闪回删除 (Flashback Drop):** 用于恢复被误删除的表。 - **闪回查询 (Flashback Query):** 查看数据库在任意历史时间点的状态。 - **闪回版本查询 (Flashback Version Query):** 显示行的版本随时间变化的历史...
Oracle闪回技术主要包括以下几种类型:闪回查询(Flashback Query)、闪回表(Flashback Table)、闪回事务查询(Flashback Transaction Query)、闪回数据库(Flashback Database)和闪回删除(Flashback Drop)。...
5. **闪回删除(Flashback Drop)**:当误删了表或者分区时,可以通过`FLASHBACK TABLE`命令将其恢复回来,前提是没有执行过`PURGE`操作。 6. **闪回数据归档(Flashback Data Archive)**:这是对历史数据进行长期...
值得注意的是,闪回操作依赖于数据库的闪回日志(Flashback Log)和事务日志,因此必须确保这些日志文件有足够的空间以支持闪回操作。此外,闪回功能可能会受制于数据库的闪回区大小和回收站策略,过度依赖闪回可能...
3. **闪回删除(Flashback Drop)**:允许管理员恢复被DROP操作删除的对象,如表、索引等,到它们被删除前的状态。 4. **闪回版本查询(Flashback Versions Query)**:提供了一种查询方式,可以看到特定行在不同...
3. 闪回删除:对于误删除的表,通过`FLASHBACK DROP`可以恢复。 4. 数据比较:`FLASHBACK QUERY`可用于对比当前数据与过去某时刻的数据,以分析变化。 监控闪回数据库的关键在于确保有足够的空间来存储闪回日志,...
如果一个管理员不小心使用DROP TABLE命令删除了表,可以通过Flashback Table来恢复。命令格式为`FLASHBACK TABLE table_name TO BEFORE DROP;`。但需要注意的是,这仅在表被放入回收站且未被其他操作覆盖的情况下...