`
kb5706
  • 浏览: 41272 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

FLASHBACK恢复技术

 
阅读更多

1、闪回删除:利用回收站恢复删除的表

1)创建测试表,并删除
SQL> createtablet1 (no number);

表已创建。

SQL> drop table t1;

表已删除。

2)当表删除后,其实只是将其重名,查看scott用户拥有的表,会发现多出一行
SQL> set wrap off;
SQL> select * from tab;
在列 CLUSTERID 前截断 (按要求)


TNAME TABTYPE
------------------------------------------------------------ --------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
BIN$NQzxLfRlQAKBq7RriSxCrA==$0 TABLE

3)查看回收站
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------

T1 BIN$NQzxLfRlQAKBq7RriSxCrA==$0 TABLE 2011-12-23:20:43:54

4)恢复删除的表t1
SQL> flashback table t1 to before drop;

闪回完成。

SQL> desc t1;
名称 是否为空? 类型
----------------------------------------- -------- ---------------------

NO NUMBER

2、闪回查询和闪回表

1)删除emp表一行数据
SQL> select count(*) from emp;

COUNT(*)
----------
14

SQL> delete from emp where empno=7934;

已删除 1 行。

SQL> commit;

提交完成。

SQL> select count(*) from emp;

COUNT(*)
----------
13

2)使用闪回查询,可以查看到指定时间点之前的数据
SQL> select * from emp as of timestamp
to_timestamp('20111223 20:50:00','yyyy dd hh24:mi:ss');
在列 SAL 前截断 (按要求)

在列 COMM 前截断 (按要求)

在列 DEPTNO 前截断 (按要求)


EMPNO ENAME JOB MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
7369 SMITH CLERK 7902 17-12月-80
7499 ALLEN SALESMAN 7698 20-2月 -81
7521 WARD SALESMAN 7698 22-2月 -81
7566 JONES MANAGER 7839 02-4月 -81
7654 MARTIN SALESMAN 7698 28-9月 -81
7698 BLAKE MANAGER 7839 01-5月 -81
7782 CLARK MANAGER 7839 09-6月 -81
7788 SCOTT ANALYST 7566 19-4月 -87
7839 KING PRESIDENT 17-11月-81
7844 TURNER SALESMAN 7698 08-9月 -81
7876 ADAMS CLERK 7788 23-5月 -87

EMPNO ENAME JOB MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
7900 JAMES CLERK 7698 03-12月-81
7902 FORD ANALYST 7566 03-12月-81
7934 MILLER CLERK 7782 23-1月 -82

已选择14行。

3)利用闪回查询的结果,把数据插入回表
SQL> insert into emp select * from emp as of timestamp to_timestamp('20111223 20
:50:00','yyyymmdd hh24:mi:ss') where empno=7934;

已创建 1 行。

SQL> commit;

提交完成。

4)也可以使用闪回表的方式
启动行移动功能
SQL> alter table emp enable row movement;

表已更改。

SQL>flashback table emp to timestamp to_timestamp('20111223 20:50:00','yyyymmdd
hh24:mi:ss');

闪回完成。


注意:
•FLASHBACK TABLE 命令可作为单个事务处理执行,以获取DML 互斥锁。
• 不闪回统计信息。
• 保留当前索引和相关对象。
• 闪回表操作:
– 不能对系统表执行
– 不能跨多个DDL 操作
– 会生成还原和重做数据


3、闪回数据库

1)关机并启动flashback功能

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 197135236 bytes
Database Buffers 406847488 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> alter database flashback on;

数据库已更改。

SQL> alter database open;

数据库已更改。

2)查看当前scn
SQL> select current_scn from v$database;

CURRENT_SCN
-----------
653354

3)删除表t1,并进行数据库闪回恢复

删除表t1
SQL> truncate table t1;

表被截断。

闪回数据库
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 201329540 bytes
Database Buffers 402653184 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL>
SQL> flashback database to scn 653354;

闪回完成。

使用resetlogs打开数据库,并查看恢复数据
SQL> alter database open resetlogs;

数据库已更改。

SQL> select count(*) from t1;

COUNT(*)
----------
50318

注意:
在执行完flashback database 命令之后,oracle 提供了两种方式让你修复数据库:
1). 直接alter database open resetlogs 打开数据库,当然,指定scn 或者timestamp 时间点之后产生的数据统统丢失。
2). 先执行alter database open read only 命令以read-only 模式打开数据库,然后立刻通过逻辑导出的方式将误操作涉及表的数据导出,再执行recover database 命令以重新应用数据库产生的redo,将数据库修复到flashback database 操作前的状态,然后再通过逻辑导入的方式,将之前误操作的表重新导入,这样的话对现有数据的影响最小,不会有数据丢失。

参考文献:

分享到:
评论

相关推荐

    利用oracle闪回技术恢复误删除的表或误更新的记录.pdf

    为了使 Oracle 数据库从任何逻辑误操作中迅速地恢复,Oracle 推出了闪回技术。 该技术首 先以闪回查询( Flashback Query)出现在 Oracle 9i 版本中,后来 Oracle 在 10g 中对该技术 进行了全面扩展,提供了闪回...

    Linux下的flashback脚本

    一个客户比较关心逻辑错误的恢复,我们给他推荐的方案是在容灾库上使用flashback技术,下面是一个简单的linux的脚本。   #!/bin/bash export LOGIN_USER=test export LOGIN_PWD=test ###...

    Oracle 12c-备份恢复学习实践手册合集

    Oracle 12c 闪回技术 Flashback Database.pdf Oracle 12c 闪回技术 Oracle Flashback技术.pdf Oracle 12c 管理UNDO.pdf Oracle 12c 数据库备份和恢复概述.pdf Oracle 12c 用户管理的备份和恢复.pdf Oracle 12c SCN...

    oracle闪回技术

    oracle 的闪回技术 flashback 恢复 delete、update、drop 的误操作

    oracle truncate恢复工具

    用户truncate误删 schema下的若干数据表,无法使用flashback query等技术恢复数据,尝试从之前的全备份中恢复,数据库restore速度较快,但是archivelog恢复时由于HP data Protecter的不明原因导致归档恢复十分缓慢,...

    闪回技术、备份恢复与优化

    利用Oracle 10g引入的闪回(Flashback)技术在绝对多数情况下可以完全避免令人生畏的不完全恢复,而且速度更快、更安全、更可靠、也更简单。安全与效率总是一对矛盾,越安全可靠的系统其效率也越差,如何在即能够...

    大话Oracle RAC:集群、高可用性、备份与恢复

    第2部分是实践篇,每一章都针对RAC的一个知识点展开讲解,包括Oracle Clusterware的维护、HA与LB、备份、恢复、Flashback家族、RAC和Data Guard的结合使用、RAC和Stream的结合使用,最后对ASM进行深入介绍,并给出...

    《大话Oracle RAC:集群 高可用性 备份与恢复》

    第2部分是实践篇,每一章都针对RAC的一个知识点展开讲解,包括Oracle Clusterware的维护、HA与LB、备份、恢复、Flashback家族、RAC和Data Guard的结合使用、RAC和Stream的结合使用,最后对ASM进行深入介绍,并给出...

    在Flashback数据库上获得高可用性

    本文将介绍重现数据库将会成为作者最喜欢Oracle10g特性之一。无论你是否纠正了用户的错误,只是看看先前的数据库状态,或者在衰退测试之后...我们看到这项技术很容易使用,比传统的恢复更快,并且最好的是,它是免费的!

    大话OracleRAC集群高可用性备份与恢复

    第二部分是实践篇,每一章都针对RAC的一个知识点展开讲解,包括Oracle Clusterware的维护、HA与LB、备份、恢复、Flashback家族、RAC和Data Guard的结合使用、RAC和Stream的结合使用,最后对ASM进行深入介绍,并给出...

    Oracle 的闪回技术

    Oracle 的闪回技术(flashback)其数据恢复的一种重要机制。

    大话Oracle RAC 集群 高可用性 备份与恢复

    第二部分是实践篇,每一章都针对rac的一个知识点展开讲解,包括oracle clusterware的维护、ha与lb、备份、恢复、flashback家族、rac和data guard的结合使用、rac和stream的结合使用,最后对asm进行深入介绍,并给出...

    Oracle 闪回技术详细介绍及总结

    需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是介质丢失的错误,闪回技术就回天乏术了,还是得借助于Oracle一些高级的备份恢复工具如RAMN去完成(这才是Oracle强大备份恢复机制的精髓所在啊) ...

    oracle误删数据恢复方法小结

    Or(www.jb51.net)acle 9i中提供了一项新的技术手段–闪回查询,用户使用闪回查询可以及时取得误操作前的数据,并可以针对错误进行相应的恢复措施,而这一切都无需DBA干预 因为一时手贱,生产上的数据被我给delete掉...

    oracle 9i使用闪回查询恢复数据库误删问题

    Oracle 9i中提供了一项新的技术手段–闪回查询,用户使用闪回查询可以及时取得误操作前的数据,并可以针对错误进行相应的恢复措施,而这一切都无需DBA干预。 因为一时手贱,生产上的数据被我给delete掉了。 用的是...

    大话oracle rac

    第二部分是实践篇,每一章都针对RAC的一个知识点展开讲解,包括Oracle Clusterware的维护、HA与LB、备份、恢复、Flashback家族、RAC和Data Guard的结合使用、RAC和Stream的结合使用,最后对ASM进行深入介绍,并给出...

    大话oracle-rac 10g

    一个知识点展开讲解,包括oracle clusterware的维护、ha与lb、备份、恢复、flashback家族、rac和data guard的结合使用、rac和stream的结合使用,最后对asm进行深入介绍,并给出性能调整的指导思想。

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

     ●oracle恢复管理器和oracle闪回技术  ●资源管理器  ●oracle自动存储管理  ●oracle调度程序  ●自动工作负荷知识库  ●性能调整 作译者  John Watson就职于BPLC Management Consultants,负责公司欧洲...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

     ●oracle恢复管理器和oracle闪回技术  ●资源管理器  ●oracle自动存储管理  ●oracle调度程序  ●自动工作负荷知识库  ●性能调整 作译者  John Watson就职于BPLC Management Consultants,负责公司欧洲...

Global site tag (gtag.js) - Google Analytics