1.说明:

Ø  采用的技术。

使用的是多个技术。

1.      闪回日志

2.      回收站

3.      回滚段

无法使用回收站的操作

Drop table xxx purge;

Drop tablespace xxx

Drop user xxx cascade;

Truncate一个表

Truncate不会有回滚数据,不会有回收站,所以不能使用闪回表的方式回收,只能使用闪回数据库的方式恢复。

回收站逻辑上是一个,实际上是多少,每个表空间有自己的回收站,可以单独清空。

Ø  关于数据闪回的几点说明

1、系统表空间数据不得闪回

2、实体在数据库保存时间不可保证,保留时间取决于系统运行状况,可能是几秒钟,也可能是几个月。

3、基表闪回时,建立在表上的约束不可保证。

Ø 记录当前时间或SCN

为了以防万1,最好在数据库变动前记录时间或SCN

SQL> selectto_char(sysdate,'YYYY-MM-DD HH24:mi:ss') from dual;

SQL> selectcurrent_scn from v$database;

2.开启闪回

开启闪回需要数据库在归档模型下,所以首先需要开启归档。并且在mount状态下。

首先查看是否开启闪回:

SQL> select flashback_on fromV$database;

FLASHBACK_ON

------------------

NO

如果已经开启了闪回,无须执行下面的操作。

SQL> alter system set db_recovery_file_dest_size=30Gscope=both;

SQL> alter system setdb_recovery_file_dest='/u01/flashback' scope=both;

SQL> shutdown immediate

SQL> startup mount

SQL> alter database archivelog;

SQL> alter database flashback on;

SQL> alter database open;

再进行确认:

SQL> select flashback_on fromV$database;

FLASHBACK_ON

------------------

YES

3.闪回操作

Ø 闪回数据库。

可以有下面3个不同的方法,按实际需要,任选其一

SQL> flashback database totimestamp(sysdate-1/24);

SQL> flashback database to timestamp

to_timestamp('2013-09-1016:00:00','YYYY-MM-DD HH24:mi:ss');

SQL> flashback database to scn 463954;

Ø 闪回表:

闪回表可以分为两种情况,一种是drop闪回,一种是闪回到指定时间或SCN

先要开启row movement

SQL>alter table emp enable row movement;

闪回到指定时间或SCN

 

SQL>flashback table emp to timestampto_timestamp

('2013-09-12 08:00:00','yyyy-mm-ddhh24:mi:ss');

SQL>flashback table emp to scn 4354761;

DROP闪回:

如果误对表做了drop操作,可用下面的方法闪回

SQL>flashback table s_emp1 to before drop;

可以以下面的方法闪回

SQL>flashback table flashbacktable to before drop rename to a;

SQL>flashback table "回收站实体名"to before drop;

--闪回表后表的索引也会回来,但是索引名还是在recyclebin中显示的名字,所以使用 alterindex“ bin$xxx” rename to xxxx 命令修改索引名称。

SQL>alter index "BIN$s6TKiw4uafDgRAAVF3jtoA==$0"

rename to PK_PC_STIM_INJ_ENHANCE_MON

Ø  查询闪回(flashbackquery)

delete数据库里的数据都删除了以后,还commit, 采用下面的方法实现数据的还原

·查询过去某指定时间点数据库中的数据。

SQL>select* from emp as of timestamp to_timestamp('2013-07-05 08:00:00','yyyy-mm-ddhh24:mi:ss');

·删除表后将数据添加到原表中

SQL>insertinto emp select * from emp

as of timestamp to_timestamp

('2013-07-05 08:00:00','yyyy-mm-ddhh24:mi:ss');

Ø 9i的闪回查询

9i的flashback 是基于undo的,9i根本没有recycle bin,想闪回表和库是不可能的,只能闪回查询

SQL>SELECTCOUNT(*) FROM class_daily as of timestamp to_timestamp('2013-03-21 14:58:00','yyyy-mm-ddhh24:mi:ss');

Ø  删除闪回(flashbackdrop)

闪回被dropped的基表,

·显示回收站信息

SQL>show recyclebin

--select* from user_recyclebin

·彻底删除基表

SQL>drop table s_emp1 purge ;

----彻底删除一个表用PURGE,这样的删除的表不能闪回。

·清除回收站

SQL>purge recyclebin;

·查数据库选项产品:

SQL>select * from V$option;

· truncate删除后不保留存储空间,而Delete删除后,保留存储空间,如果要删掉这些存储空间,以释放空间,可以执行以下命令:

SQL>alterttable emp deallocate unused;

·如果还要保留一部分,可以用:

SQL>alterttable emp deallocate unused 200k;

Oracle闪回flashback总结的更多相关文章

  1. Oracle闪回flashback

    参考资料:Using Oracle Flashback Technology Oracle 11g的新特性闪回操作 闪回查询 闪回查询 闪回版本查询 闪回事务查询 闪回数据 闪回表 闪回删除 闪回数据 ...

  2. Oracle 闪回特性(FLASHBACK DATABASE)

    --===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --======================= ...

  3. Oracle 闪回归档(Flashback Database)

    cmd --管理员身份打开 sqlplus / as sysdba --管理数据库 shu immediate; --独占方式开始 startup mount --修改日期模式 alter datab ...

  4. oracle之三闪回flashback

    闪回 flashback 5.1 flashback 的功能:1)利用undo data回溯或撤销提交的数据,2)flashback log 使database 可以恢复到过去某个时间点,可以作为不完 ...

  5. oracle闪回表详解

    --- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...

  6. Oracle闪回操作

    Oracle闪回操作 1. 记录当前时间或SCN 在数据库变动前记录时间或SCN SQL> select  to_char(sysdate,'YYYY-MM-DD HH24:mi:ss') fr ...

  7. Oracle闪回表

    Oracle闪回技术 场景:测试环境数据库的表数据被误删除. 解决思路:使用闪回表技术 原理 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小 ...

  8. Oracle 闪回

    Oracle 闪回特性(FLASHBACK DATABASE) 本文来源于:gerainly 的<Oracle 闪回特性(FLASHBACK DATABASE) > -========== ...

  9. 6. Oracle闪回特性

    Oracle 闪回 (flashback)是9i版本提供的新特性.这一特性:其他数据库(PostgreSQL,Mysql)是羡慕不已.对数据恢复提供非常便捷的方式.闪回技术通常用于快速简单恢复数据库中 ...

随机推荐

  1. ThinkPHP 3.1.2 模板的使用技巧

    本节课大纲: 一.模板包含 <include file="完整模板文件名" /> <include file="./Tpl/default/Public ...

  2. ThinkPHP 3.1.2 控制器的模块和操作

    本节课大纲: 一.空模块和空操作 1.空操作 function _empty($name){ $this->show("$name 不存在 <a href='__APP__/In ...

  3. for循环语句之棋盘放粮食、百鸡百钱、纸张的折叠问题

    1.棋盘放粮食 ; ; i < ; i++) { ; ; j <= i; j++) { x = x * ; } lszl = lszl + x; } double zl = lszl * ...

  4. 统计图表类库--libchart使用简介

    1.饼图 #载入类文件 include "../libchart/classes/libchart.php"; header("Content-type: image/p ...

  5. Poj 2777 Count Color(线段树基础)

    又毁三观了.......虽然题目数据有坑:区间[a,b]可能会有a>b的情况,但是我一开始没有考虑它也能过. 此外莫名其妙的TLE #include <iostream> #incl ...

  6. URAL 1820. Ural Steaks(数学啊 )

    题目链接:space=1&num=1820" target="_blank">http://acm.timus.ru/problem.aspx? space ...

  7. NGUI出现Shader wants normals, but the mesh UIAtlas doesn&#39;t have them

    NGUI出现Shader wants normals, but the mesh UIAtlas doesn't have them,没有网格法线,打开UI Root上 UIPanel组建上的 Nor ...

  8. Android中如何查找内存泄露

    1.首先确定是否有内存泄露及哪个程序造成. 1.1.内存泄露已弹出out of memory对话框的情况. 这种情况很简单,直接看对话框就知道是哪个应用的问题了.然后再分析该应用是否是因为内存泄露造成 ...

  9. 由于物化视图定义为on commit导致update更新基表慢的解决方案

    由于物化视图定义为on commit导致update更新基表慢的解决方案 以下是模拟和解决测试过程: (模拟update慢的过程) 1.首先基于基表创建物化视图日志: create materiali ...

  10. 改ucosii的中断禁止和恢复代码,这是一个荒谬的错误【 mrs msr】

    ucosii原来的禁止中断以及恢复中断的代码是最简的,但是使用之前,必须声明一个固定名为 OS_CPU_SR   cpu_sr 的变量,吊在那里感觉很怪. ;********************* ...