在安装Oracle软件时建议更改undo_retention参数,建议将默认900的值更改为10800秒,即3小时;alter system set undo_retention=10800 scope = both ;
加入一张employees 表中数据被删除一部分,并且已经提交,需要恢复,并且数据库运行在归档模式。
思路:通过SCN号来讲表恢复到原来的记录上
首先查看SCN好的变化:
conn /as sysdba
select name,first_change# fscn,next_change# nscn,first_time
from v$archived_log;
NAME FSCN
---------------------------------------- ---------------------
NSCN FIRST_TIME
--------------------- -------------------
5795407 2012-09-14:22:00:52
/u/oracle/fast_recovery_area/ORA11G/arch 5795407
ivelog/2012_09_17/o1_mf_1_43_85fzkcbs_.a
rc
5803747 2012-09-17:18:10:38
/u/oracle/fast_recovery_area/ORA11G/arch 5803747
ivelog/2012_09_17/o1_mf_1_44_85fzkh75_.a
NAME FSCN
---------------------------------------- ---------------------
NSCN FIRST_TIME
--------------------- -------------------
rc
5807441 2012-09-17:18:40:43
/u/oracle/fast_recovery_area/ORA11G/arch 5807441
ivelog/2012_09_17/o1_mf_1_45_85fzkmq7_.a
rc
5810907 2012-09-17:18:40:47
/u/oracle/fast_recovery_area/ORA11G/arch 5810907
(显示部分)
获得当前SCN
SQL> select dbms_flashback.get_system_change_number fscn from dual;
FSCN
---------------------
5874910
连接上用户(尝试用用户恢复):
conn /as sysdba
查看现有数据:
SQL> select count(*) from employees;
COUNT(*)
----------
107
创建一张恢复表:
SQL> create table t as select * from employees where 1=0;
表已创建。
根据提供的大致误操作时间,结合V$archived_log视图,选择执行闪回查询;
SQL> select count(*) from employees as of scn 5810907;
COUNT(*)
----------
107
找到最合适的值,例如最合适的值为5810907
选择SCN为5810907的时间点进行恢复:
SQL> insert into t select * from employees as of scn 5810907;
已创建 107 行。
SQL> commit;
提交完成。
完成,查看数据完整性!
- 大小: 32.9 KB
分享到:
相关推荐
"SCN号的闪回"是Oracle数据库中一个重要的恢复机制,全称为System Change Number,它是Oracle数据库中记录事务更改的唯一序列号。SCN是一个不断增加的数字,每次数据库中的数据发生变化时,都会生成一个新的SCN,...
在实际应用中,Oracle的闪回技术还涵盖了其他方面,如闪回数据库、闪回表空间、闪回事务等。闪回数据库允许恢复整个数据库到某个时间点;闪回表空间则可以恢复单个表空间到特定状态;闪回事务则可撤销指定的事务操作...
-- 按照SCN闪回 FLASHBACK TABLE tablename TO SCN 123456; -- 按照时间闪回 FLASHBACK TABLE tablename TO TIMESTAMP to_timestamp('2011-05-07 08:23:48', 'yyyy-mm-dd hh24:mi:ss'); ``` **闪回限制**: - 必须...
Oracle 9i版本引入了闪回技术,为用户提供了一种强大的工具来恢复到特定的时间点或者系统更改编号(SCN)的状态。 #### 二、闪回操作的基础概念 1. **UNDO_RETENTION**:这是一个系统参数,用于指定undo数据在undo...
这是最强大的闪回功能,可将整个数据库恢复到一个已知的系统改变号(SCN)或时间点。此操作需要在数据库启动时启用闪回日志,并且在执行闪回数据库之前需要关闭数据库。使用`FLASHBACK DATABASE TO TIMESTAMP`或`TO...
Oracle 闪回技术是Oracle数据库提供的一种强大工具,主要用于数据恢复和事务跟踪。它允许数据库管理员和用户在数据库层面恢复到过去的某个时间点,从而能够有效地处理意外的数据删除、更新错误或其他类似的事故。这...
- **定义**:闪回技术是Oracle提供的一种用于恢复数据的技术,它可以在不需要备份的情况下恢复到某个特定的时间点或者系统更改号(SCN)的状态。 - **应用场景**:当发生数据丢失或数据损坏时,通过闪回技术可以快速...
使用`V$FLASHBACK_DATABASE_LOG`和`V$FLASHBACK_DATABASE_STAT`视图可以获取关于闪回窗口的信息,如估计的闪回大小、实际闪回大小以及最早的闪回SCN和时间。 此外,通过Oracle企业管理器(EM)可以更方便地配置和...
在Oracle 10g中,闪回技术得到了进一步发展,增加了闪回版本查询、闪回事务查询、闪回表和闪回删除等功能,极大地提升了数据恢复的效率和便利性。闪回技术允许对行级和事务级的数据变化进行恢复,减少恢复时间,并且...
除了数据库级别的回闪外,Oracle 10g还支持表级别的回闪——**Oracle Flashback Table**。通过此功能,可以将单个表恢复到过去某个特定时间点的状态。这对于因误删除或更新数据而导致的问题非常有用。 ```sql -- 将...
2. **闪回数据库(Flashback Database)**:自Oracle 10g版本起,这项技术允许将整个数据库恢复到某个过去的SCN(系统更改编号)或时间点,而无需关闭数据库。这是通过在数据库级别启用闪回模式实现的。 3. **闪回...
在灾难性故障后,若整个数据库需要恢复,Oracle的闪回数据库功能可将数据库恢复到最近的还原点、时间点或者SCN(系统改变号)。这通常涉及RMAN(恢复管理器)和物理备份。 5. **闪回事务(Flashback Transaction)...
该方式可以根据事务的系统更改号(SCN)来恢复到某个特定的数据库状态。 `select * from test as of scn &scn` Flashback Query 的实现依赖于 undo 表空间的大小,如果闪回的数据量过大,回滚段不够,则会抛出...
Oracle闪回技术主要包括以下几种类型:闪回查询(Flashback Query)、闪回表(Flashback Table)、闪回事务查询(Flashback Transaction Query)、闪回数据库(Flashback Database)和闪回删除(Flashback Drop)。...
Oracle 闪回查询 Oracle 闪回查询是 Oracle 9i 中引入的一项新特性,用于恢复误删数据或错误的 DML 操作。它利用 Oracle 的多版本读一致性特性,通过 undo 机制提供所需的前镜像中的数据。用户可以通过指定时间点或...
该技术允许选择性地复原某些对象,在 Oracle 11g 中,闪回技术包括闪回数据库、闪回表、闪回查询、闪回版本查询、闪回事务查询和闪回丢弃等方面。 2. 闪回数据库(Flashback Database) 闪回数据库允许用户通过 ...
Oracle 闪回操作是Oracle数据库提供的一种高级恢复技术,它允许用户恢复数据库、表或单个行至一个特定的时间点或系统改变号 (SCN)。这种功能在处理误操作,如误删数据、错误更新等场景时尤其有用,因为它可以避免...
- **闪回查询 (Flashback Query)**:此技术允许用户基于特定时间点或系统改变号 (SCN) 查看数据的历史版本,用于检查和恢复单个行的错误修改。通过查询,用户可以比较当前数据和历史数据,如果需要,可以撤销错误...