Oracle闪回操作
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闪回操作的更多相关文章
- Oracle闪回技术详解
概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速 ...
- PLSQL_闪回操作1_Flashback Query
2014-07-02 Created By BaoXinjian
- Oracle 闪回特性(FLASHBACK DATABASE)
--===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --======================= ...
- oracle闪回表详解
--- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...
- Oracle闪回技术
(一)闪回技术概要 闪回技术是数据库备份与恢复的重要补充手段,主要包括以下7种特性: 特性 原理 数据库支持 闪回查询(Flashback Query) 利用undo表空间中的回退信息,查询过去某个时 ...
- Oracle闪回表
Oracle闪回技术 场景:测试环境数据库的表数据被误删除. 解决思路:使用闪回表技术 原理 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小 ...
- Oracle 闪回
Oracle 闪回特性(FLASHBACK DATABASE) 本文来源于:gerainly 的<Oracle 闪回特性(FLASHBACK DATABASE) > -========== ...
- 6. Oracle闪回特性
Oracle 闪回 (flashback)是9i版本提供的新特性.这一特性:其他数据库(PostgreSQL,Mysql)是羡慕不已.对数据恢复提供非常便捷的方式.闪回技术通常用于快速简单恢复数据库中 ...
- MySQL模拟Oralce闪回操作
在前面的文章中我们介绍了MySQL误操作后数据恢复(update,delete忘加where条件),大概操作是通过sed命令把binlog中相关SQL误操作给逆向回来,然后导入SQL文件来恢复错误操作 ...
随机推荐
- 采购件不允许挂BOM
应用 Oracle Bill Of Materiel 层 Level Function 函数名 Funcgtion Name BOM_BOMFDBOM 表单名 Form Name BOMFDBOM ...
- TFS Build Definition
1. TFS Build 简介 在团队项目开发中,编译常常是一个很困难的事情! 可能你会反问编译有什么难的?不就是右键,然后点击 Build/Rebuild, 或者直接按 F5 么?这都不会,真不知 ...
- [C#]Stream.Write Extension Method
在处理Stream型态时常会使用到Stream.Write这个方法,每次都会有种疑问就是,大多数的处理都是要将Buffer整个写入,為何偏偏每次都要将索引带0,长度带為Buffer的大小呢?另外在处理 ...
- 魔兽世界---屠夫(Just a Hook)
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- 解决Android中TextView首行缩进的问题
方式一:(推荐) setText("\u3000\u3000"+xxxxx); 方式二:这种方式不同分辨率会有问题 setText(""+xxxxx); 半角: ...
- English - therefore,so,hence,then,accordingly,thus用法解析
这几个词的区别大致可从以下几方面去看: 1.therefore adv.因此, 所以=for that reason=consequently常用于连接两个并列分句,其前加“and”或分号“:”.He ...
- Dictionary<string, string> 排序
.net framework 2.0 版 Dictionary<string, string> collection = new Dictionary<string, string& ...
- VC MFC 屏蔽ESC和ENTER键关闭对话框
方法一: 窗体头文件中加入: protected: virtual BOOL PreTranslateMessage(MSG* pMsg); // PreTranslateMessage是消息在送给T ...
- node中的get请求和post请求的不同操作【node学习第五篇】
获取get的请求内容 /** * Created by Administrator on 2016/8/5. */ var http = require("http"); var ...
- BZOJ 3533: [Sdoi2014]向量集( 线段树 + 三分 )
答案一定是在凸壳上的(y>0上凸壳, y<0下凸壳). 线段树维护, 至多N次询问, 每次询问影响O(logN)数量级的线段树结点, 每个结点O(logN)暴力建凸壳, 然后O(logN) ...