通常我们操作数据库时可能会对数据库进行了一些错误的操作,做常见的是不小心将表中的数据给删除了或是直接将表给drop了。其实,这些操作后,我们都是可以进行数据恢复的,这里是我进行了一些实验,简单的恢复操作。
1、如果我们将表给删了怎么办?
在这里我们做一个实验
新建一张表t_user
create table t_user(
username varchar2(20) primary key,
age varchar2(10)
)
插入两条数据:
insert into t_user values('zzzz','1');
insert into t_user values('xxxx','2');
查看一下:
select * from t_user;
结果是:
zzzz 1 XX U
xxxx 2 XX U
我们继续操作
drop table t_user;
这事再去查询数据库时,没有了t_user这张表了。
但是我们想恢复这张表怎么办呢?
我们可以利用闪回,命令是这样的
flashback table t_user to before drop;
ok,再去查询一下t_user表,这个表以及表中的数据又存在了。
2、我们最常见的是删除了表中的数据,也就是truncate或是delete操作。
这是我们需要将闪回到删除之前的数据库看看
命令是:
(1)select * from t_user as of timestamp sysdate - 5/1440;
(2)select * from t_user as of timestamp(systimestamp-interval '1' minute);
这里的时间参数我们是可以设置的
在这里我们就可以看到我们删除数据之前的表的数据,接下来的操作就很简单了,我们就在上述命令前直接加上:insert into t_user就Ok了。
这些都是闪回能给我们带来的帮助,但是
注意:如果需要闪回一个表,需要以下条件:
·需要有flashback any table的系统权限或者是该表的flashback对象权限;
·需要有该表的select,insert,delete,alter权限;
·必须保证该表row movement。
如果希望能闪回数据库,需要设置如下参数:DB_RECOVER_FILE_DEST --日志的存放位置,
DB_RECOVER_FILE_DEST_SIZ --E恢复区的大小
在创建数据库的时候,Oracle将自动创建恢复区,但默认是关闭的,需要执行alter database flashback on命令。
执行Flashback Database命令格式:
SQL>flashback database to time to_timestamp(xxx);
SQL>flashback database to scn xxx
数据库的闪回状态可以从V$database视图中查询得到:
SQL> select dbid,name,flashback_on,current_scn from v$database;
DBID NAME FLASHBACK_ON CURRENT_SCN
---------- --------- ------------------ -----------
1692001961 ACF NO 8175168
分享到:
相关推荐
### Oracle数据库误删除数据的不同恢复方法 #### 一、引言 在日常的数据库管理工作中,数据误删除是一个常见的问题。对于Oracle数据库来说,它提供了一系列强大的数据恢复工具和技术,帮助管理员快速有效地恢复误...
当表被DROP后,如果没有立即被其他数据覆盖,Oracle会将其放置在**回收站**(Recycle Bin)中,这使得用户可以在一定时间内恢复被删除的表。 #### 三、误删除数据的具体恢复方法 ##### 3.1 DELETE误删除的恢复方法 ...
在日常操作中,有时可能会发生误操作,如误删除数据或锁定问题,本篇文章将详细讲解如何在Oracle中恢复误删除数据以及解锁相关操作。 1. **恢复误删除数据** 当你不小心删除了数据库表中的数据时,Oracle提供了一...
本文将详细介绍如何正确地删除Oracle表空间数据文件,探讨OFFLINE和OFFLINE DROP的区别,以及在操作系统层面删除数据文件后的恢复策略。 首先,我们来看如何使用`DROP DATAFILE`命令删除数据文件。这个命令允许管理...
在Oracle数据库管理中,数据文件(Data Files)是存储数据库对象如表、索引等的基础组件。当数据文件遭遇物理删除或丢失时,这将对数据库的...在实践中不断积累经验,你将成为一名真正掌握Oracle数据恢复技巧的大师。
Oracle 恢复误删除数据 Oracle 数据库是企业级的关系数据库管理系统,广泛应用于各种行业。然而,在实际操作中,误删除数据是一种常见的错误。因此,了解如何恢复误删除数据是非常重要的。本文将详细介绍 Oracle ...
在Oracle数据库中,`TRUNCATE TABLE`命令用于删除表中的所有数据,但它与`DELETE`语句有所不同。`TRUNCATE`操作是DDL(Data Definition Language)的一部分,而`DELETE`是DML(Data Manipulation Language)。由于`...
综上所述,Oracle数据库中误删除表空间的恢复是一项复杂但有序的过程,需要结合控制文件、数据字典、RMAN备份以及系统的当前状态进行综合考虑和操作。掌握这些技巧不仅有助于及时应对数据丢失的紧急情况,也是提升...
本文将深入探讨如何在危机情况下进行Oracle数据文件的物理删除恢复。这个话题对于DBA(数据库管理员)来说至关重要,因为数据的安全性和完整性是任何业务的核心。 首先,我们需要理解Oracle数据文件(Data Files)...
Oracle仅根据SCN执行恢复操作。这意味着SCN能够帮助我们确定数据的特定时间点状态,从而实现数据恢复。 #### 三、误删除数据的恢复步骤 ##### 1. 查询SCN 为了恢复数据,首先需要确定误删除数据之前的SCN值。这可以...
### Oracle误删除表恢复 在Oracle数据库管理过程中,误删表是常见的操作失误之一,而如何有效、快速地恢复这些被误删的表对于DBA(数据库管理员)来说至关重要。本文将详细介绍如何在Oracle环境下利用回收站功能...
在Oracle数据库中,`TRUNCATE TABLE`是一个用于删除表中所有数据的命令,它与`DELETE`语句不同,不记录任何删除操作,并且在大多数情况下执行速度更快。然而,一旦执行`TRUNCATE TABLE`,数据通常无法通过常规的...
### Oracle删除数据后的恢复方法 在Oracle数据库管理中,误删除数据是一个常见的问题。一旦数据被意外删除且已提交(即使用了`DELETE`语句并执行了`COMMIT`),恢复这些数据变得较为复杂。然而,Oracle提供了一些...
3. **恢复操作**:在需要时,使用RMAN进行恢复操作。 ### 总结 恢复Oracle中的表数据是一个复杂但至关重要的过程。通过合理利用闪回查询、闪回表、闪回删除等功能,可以在很大程度上避免数据丢失的风险。同时,...
### Oracle通过快照进行数据恢复 #### 一、引言 在日常的数据库管理工作中,数据丢失或误删除是常见的问题之一。对于Oracle数据库来说,它提供了多种手段来进行数据恢复,其中一种有效的方式就是利用快照...
本文将介绍如何查看 Oracle 表的历史记录和恢复删除的数据。 一、查看表操作历史记录 要查看表的操作历史记录,可以使用以下 SQL 语句: ```sql select * from v$sqlarea a where a.SQL_TEXT like '%表名%'; ``` ...
这一特性使得数据库管理员能够在不慎删除表等数据库对象后,能够轻松地从回收站中恢复这些对象,而无需执行复杂的不完全恢复操作或者使用导出/导入工具(EXP/IMP)。本文将详细介绍如何利用Oracle的回收站功能进行...
5. **UNDOTABLE空间**:Oracle的UNDO表空间记录了所有事务的撤销信息,如果数据刚刚被删除,且UNDO表空间有足够的保留时间,可以从中恢复。 6. **第三方工具**:市面上有一些专门的数据恢复工具,如Oracle Recovery...
在Oracle数据库环境中,数据...在实际操作前,务必备份所有相关数据,避免进一步损失,并确保有足够的权限执行恢复操作。此外,对于生产环境,强烈建议定期备份并测试恢复流程,以确保在真正需要时能够成功恢复数据。
在日常工作中,Oracle数据库作为企业级数据管理系统之一,经常面临着各种意外情况,如误删除、误操作或系统故障导致的数据丢失。在这种情况下,如何有效地恢复数据成为了一项重要的技能。本文将详细介绍在没有备份的...