Oracle闪回操作

1. 记录当前时间或SCN

在数据库变动前记录时间或SCN

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

SQL> select  current_scn from v$database;

2.开启闪回

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

首先查看是否开启闪回:

SQL> select flashback_on from V$database;

FLASHBACK_ON

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

NO

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

SQL> alter system set db_recovery_file_dest_size=30G scope=both;

SQL> alter system set db_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 from V$database;

FLASHBACK_ON

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

YES

3.闪回操作

3.1闪回数据库

SQL >flashback database to time to_date(xxx);
SQL >flashback database to time TO_TIMESTAMP (xxx);
SQL >flashback database to scn xxx
SQL >flashback database to sequence xxx thread 1
SQL>flashback database to timestamp(sysdate-1/24)

3.2闪回表

先要开启row movement

SQL>alter table emp enable row movement;

SQL >FLASHBACK TABLE tablename TO TIMESTAMP (JUL-07-2013, 02:33:00) 
SQL >FLASHBACK TABLE employee TO SCN 133456;
SQL >FLASHBACK TABLE t1 TO TIMESTAMP '2013-03-03 12:05:00' ENABLE TRIGGERS;

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

闪回到指定时间或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 11064241;

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

3.3查询闪回(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');

3.4 删除闪回(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;

4.关于数据闪回的几点说明

*系统表空间数据不得闪回

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

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

Oracle闪回操作的更多相关文章

  1. Oracle闪回技术详解

     概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速 ...

  2. PLSQL_闪回操作1_Flashback Query

    2014-07-02 Created By BaoXinjian

  3. Oracle 闪回特性(FLASHBACK DATABASE)

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

  4. oracle闪回表详解

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

  5. Oracle闪回技术

    (一)闪回技术概要 闪回技术是数据库备份与恢复的重要补充手段,主要包括以下7种特性: 特性 原理 数据库支持 闪回查询(Flashback Query) 利用undo表空间中的回退信息,查询过去某个时 ...

  6. Oracle闪回表

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

  7. Oracle 闪回

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

  8. 6. Oracle闪回特性

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

  9. MySQL模拟Oralce闪回操作

    在前面的文章中我们介绍了MySQL误操作后数据恢复(update,delete忘加where条件),大概操作是通过sed命令把binlog中相关SQL误操作给逆向回来,然后导入SQL文件来恢复错误操作 ...

随机推荐

  1. linux shell 札记

    shell 数组 数组索引: 单个元素索引: ${array[n]} 全部元素:   ${array[*]}  或者  ${array[@]} 部分索引: ${array[2:]} 数组所有元素统一加 ...

  2. 走进C标准库(7)——"string.h"中函数的实现memcmp,memcpy,memmove,memset

    我的memcmp: int memcmp(void *buf1, void *buf2, unsigned int count){ int reval; while(count && ...

  3. JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度

    网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWid ...

  4. 2016 Multi-University Training Contest 4 总结

    第四场多校队伍的发挥还是相当不错的. 我倒着看题,发觉最后一题树状数组可过,于是跟队友说,便开始写,十分钟AC. 欣君翻译01题给磊哥,发现是KMP裸题,但是发现模板太旧,改改后过了. 11题是一道毒 ...

  5. HDU 5811 Colosseo(拓扑排序+单调DP)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5811 [题目大意] 给出 一张单向图,现在将其划分成了两个部分,问划分之后的点是否分别满足按照一定 ...

  6. ldap for ruby

    Net::LDAP for Ruby (also called net-ldap) implements client access for the Lightweight Directory Acc ...

  7. 微信获取用户数据后台写法,author2.0认证

    /* 微信授权接口 */ //1.设置路由 router.get('/wechat/userinfo', function(req, res) { var cb = req.query.cb; //设 ...

  8. MapReduce实现矩阵相乘

    矩阵相乘能够查看百度百科的解释http://baike.baidu.com/view/2455255.htm?fr=aladdin 有a和b两个矩阵 a:                1   2   ...

  9. eclipse 修改编码

    在Eclipse的开发使用中,我们经常使用的是UTF-8,但是刚刚安装的或者是导入的项目是其他编码的默认是GBK的,这就造成我们的项目乱码,一些中文解析无法查看,对我们的开发造成不便. 工具/原料 E ...

  10. 用原生JS写移动动画案例及实际应用

    js很强大 相信很多人都知道,那么它有哪些强大之处呢?有兴趣的人可以去查查,这里就不赘述了,因为不在本片文章讨论的范围. 我们要讲的是怎么用原生JS写移动动画?我们先举一个最简单的动画例子,很多网站的 ...