`
xiangkun
  • 浏览: 102030 次
  • 性别: Icon_minigender_1
  • 来自: 马尔代夫
社区版块
存档分类
最新评论

oracle中drop和delete的恢复

阅读更多

--删除了CUST表中的记录,用下面的语句恢复
alter table cust enable row movement
flashback table cust to timestamp to_timestamp('2008-03-19
12:00:00','yyyy-mm-dd hh24:mi:ss')

--删除了cust表,用下面的语句恢复
flashback table cust to before drop


闪回查询
(1).查询闪回
例如:
1)在删除员工smith记录后,希望查询到删除该行记录前的值,则可以查询emp在'2007-02-11 23:34:05'时的数据,查询方法如下:
select * from emp as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss') where ename='SMITH';
2)查询当前时间
alter session set nls_date_format='yyyy-mm-dd hh24:mi;ss';
select sysdate from dual;
delete from emp;
commit;
select * from emp as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss');
可以将闪回的数据重新插入到表中:
insert into empbak (select * from empbak as of timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss'));
(2).表闪回
表闪回要求用户必须要有flash any table权限,首先,必须对表进行下以下操作:
alter table empbak enable row movement;
执行闪回操作
flashback table emp to timestamp to_timestamp('2007-02-11 23:34:05','yyyy-mm-dd hh24:mi:ss');
注:如果表结构发生改变就没有办法闪回。
(3).删除闪回
删除闪回为删除oracle10g中的数据库实体提供了一个安全机制,当用删除一个表时,oracle10g 会将该表放到回收站中,回收站中的对象一真会保留,直到用户决定永久删除它们或出现表空间的空间不足时才会被删除。回收站是一个虚拟容器,用于存储所有被删除的对象。数据字典user_tables中的列dropped表示被删除的表.查询方法如下:
select table_name,dropped from user_tables;
也可以使用show命令显示回收站信息
sql>show recyclebin
或查询数据字典user_recyclebin获得回收站信息
SQL> select object_name,original_name,type,droptime from user_recyclebin;
例如;恢复被删除的表emp.
SQL>flashback table emp to before drop;
如果不知道原表名,可以直接使用回收站中的名称进行闪回。
SQL>flashback table "Bin$DSbdfd4rdfdfdfegdfsf==$0" to before drop;
在回收的同时可以修改表名:
SQL>flashback table "Bin$DSbdfd4rdfdfdfegdfsf==$0" to before drop rename to emp1;
真正删除某一个表,而不进入回收站,可以在删除表时增加purge选项.如将emp表彻底删除.
SQL>drop table emp purge;
也可以通过删除recyclebin区域来永久性删除表 ,原始删除表drop table emp cascade constraints
SQL>purge table emp;
删除当前用户的回收站
SQL>purge recyclebin;
删除全体用户在回收站的数据.
SQL>purge dba_recyclebin
(4).数据库闪回
使用数据库闪回功能,可以使数据库回到过去某一状态, 语法如下:
SQL>alter database flashback on
SQL>flashback database to scn 46963;
SQL>flashback database to timestamp to_timestamp('2007-2-12 12:00:00','yyyy-mm-dd hh24:mi:ss');

分享到:
评论

相关推荐

    delete,truncate和drop的区别

    尽管`drop`、`truncate`和`delete`都是DDL或DML操作,但在Oracle中,仍有可能恢复已删除的数据或表: - **drop操作**:如果Oracle的回收站功能被启用,则可以通过回收站恢复已删除的表。需要注意的是,这取决于表...

    Oracle恢复误删除数据

    在 Oracle 中,delete 方法可以使用闪回方法恢复删除的数据。如果在删除数据后还没有进行大量的操作(只要保证被删除数据的块没有被覆写),就可以利用闪回方式直接找回删除的数据。 首先,需要确定删除数据的时间...

    详解Truncate delete drop三者的区别

    详细阐述了Oracle中三种删除的方式truncate,drop和delete三者的区别和联系.

    Oracle数据库误删除数据的不同恢复方法整理(超级实用)

    当表被DROP后,如果没有立即被其他数据覆盖,Oracle会将其放置在**回收站**(Recycle Bin)中,这使得用户可以在一定时间内恢复被删除的表。 #### 三、误删除数据的具体恢复方法 ##### 3.1 DELETE误删除的恢复方法 ...

    Oracle数据库误删除数据的不同恢复方法整理

    对于Oracle数据库来说,它提供了一系列强大的数据恢复工具和技术,帮助管理员快速有效地恢复误删除的数据。本文将详细介绍Oracle数据库中不同场景下的数据恢复方法。 #### 二、Delete误删除的解决方法 **1. 原理**...

    oracle数据库删除数据Delete语句和Truncate语句的对比.docx

    Delete 语句和 Truncate 语句是 Oracle 数据库中两种常用的删除数据的方法,但是它们之间存在着明显的差异。 一、Delete 语句 Delete 语句是一种 DML(Data Manipulation Language)语句,用于删除表中的数据。 ...

    SQL语句中----删除表数据drop、truncate和delete的用法

    SQL语句中----删除表数据drop、truncate和delete的用法,对你爱不完

    利用 Oracle 系统触发器防止误删除表操作

    为了应对这类问题,可以通过创建Oracle系统触发器来实现对`DROP TABLE`和`TRUNCATE TABLE`命令的监控与阻止。以下详细介绍两种不同的Oracle版本(10g和8i)下如何创建相应的系统触发器。 ### Oracle 10g环境下的...

    Oracle数据库对象管理及备份与恢复.pdf

    Oracle的备份与恢复工具RMAN(Recovery Manager)提供了强大的备份、恢复和恢复管理功能。RMAN备份策略包括完全备份和增量备份,可以备份数据库文件和归档日志。RMAN备份命令包括BACKUP、DUPLICATE、COPY和RESTORE等...

    oracle 10g flashback(数据恢复)

    需要注意的是,在 Oracle 中,删除的表并不会立即从数据库中消失,而是会被移动到回收站(Recycle Bin),因此使用 **Flashback Drop** 命令可以在一定时间内恢复这些被删除的对象。 #### Oracle Flashback Version...

    ORACLE闪回技术恢复指南

    Oracle闪回技术是一项强大的特性,能够在无需借助传统的备份和恢复流程的情况下,帮助用户恢复丢失或损坏的数据。本文将涵盖闪回删除表、闪回删除、闪回查询等多种闪回类型,并通过具体的实例加深理解。 #### ...

    提升Oracle闪回特性快速恢复数据保安全.pdf

    根据用户对数据安全性的不同需求,应选择不同的备份和恢复策略,如完整备份、增量备份、逻辑备份等,以确保在面临自然灾害、硬件故障或人为错误时,能够最大程度地恢复数据。 6. **闪回数据库**:在Oracle 10g及...

    Oracle数据恢复神器Dbseeker 2.5

    因此,在由于各种原因引起的数据库不能打开或者数据库中的表被DROP,TRUNCATE,DELETE后,而且没有备份的情况下,使用Dbseeker能够及时找回数据表记录。 最新版本请访问http://www.dbseeker.com 2015/12/05 Dbseeker...

    oracle数据库删除数据Delete语句和Truncate语句的使用比较

    在Oracle数据库中,删除表中数据有两种主要方式:Delete语句和Truncate语句。两者在功能上相似,但有着显著的区别,适用于不同的场景。 **Delete语句** Delete语句是一种灵活的数据删除方式,它可以有条件地删除...

    oracle教程--深入浅出oracle学习资料

    RMAN(Recovery Manager)是Oracle提供的备份和恢复工具,结合归档日志和闪回技术,可以实现完整、增量、差异备份,并在数据丢失时进行恢复。 最后,性能优化是Oracle数据库管理员的日常任务。通过使用性能分析工具...

    零点起飞学Oracle

    备份和恢复是保证数据安全的关键,Oracle提供了RMAN(恢复管理器)工具和闪回技术来实现这一点。 最后,了解Oracle的高可用性和灾难恢复策略,如RAC(实时应用集群)、Data Guard、Flashback Database等,能帮助你...

    Oracle11i中文帮助文档4

    2. **SQL语言**:详述SQL语言在Oracle中的应用,包括DML(数据操纵语言)如INSERT、UPDATE、DELETE,以及DDL(数据定义语言)如CREATE、ALTER、DROP等,还有查询优化和子查询等内容。 3. **PL/SQL**:Oracle的编程...

    PRM-DUL Oracle(数据库恢复工具) v4.1.zip

    从1.0版本发布到现在,已经历了多次功能增强、补丁修正和恢复逻辑改进。PRM-DUL Oracle数据库恢复工具已在多个操作平台(AIX/HPUX/SOLARIS/Linux/Windows)被证明稳定可用。当前版本软件支持对Oracle 9i/10g/11g/12c...

Global site tag (gtag.js) - Google Analytics