[terry笔记]Flashback
flashback 闪回,主要功能有两个:闪回查询(flashback query)、闪回恢复(flashback table/database)
开启闪回flashback功能(归档下才可开启数据库闪回)
select name,flashback_on from v$database; /*查看flashback是否开启*/
show parameter db_recovery; /*查看闪回恢复区及大小是否设置*/
alter system set db_recovery_file_dest_size='2G'; /*先设置闪回恢复区的大小*/
alter system set db_recovery_file_dest='c:\u01\fast_recovery_area'; /*再设置闪回恢复区路径*/
alter system set db_flashback_retention_target = 1440; /*设置数据库回退的时间,默认1440分钟为一天时间*/
alter database flashback on; /*开启flashback功能*/
闪回查询需要设置undo_management=auto(默认即可)
闪回表需要recycle bin
闪回数据库需要flashback area
一、flashback query闪回查询
1.as of timestamp
select * from t as of timestamp sysdate-20/1440; /*按时间查询,此查询是查询20分钟前的*/
2.as of scn
select * from t as of scn 1234567;
当前scn:
select dbms_flashback.get_system_change_number from dual;
select current_scn from v$database;
其实在oracle内部as of timestamp/scn 最后都是转换为scn进行闪回查询。
可以通过timestamp_to_scn与scn_to_timestamp进行转换
SQL> select timestamp_to_scn(sysdate) from dual;
SQL> select to_char(scn_to_timestamp(1582900),'yyyy-mm-dd hh24:mi:ss') from dual;
闪回查询需要保证表的结构没有做过ddl
二、flashback table闪回表
如果删除的表含有索引、触发器、约束、物化试图等,需要在恢复表后恢复其完整性。
flashback table xx.xxx to before drop rename to xxx; /*按照删除闪回不用开启行迁移*/ alter table xxx enable row movement; /*因为闪回表需要改变rowid,所以需要行迁移*/
select row_movement from user_tables where table_name = 'XXX';
/*根据scn/timestamp闪回,需要注意其触发器会失效,可以加上选项enable triggers*/
flashback table xxx to scn 1234567;
flashback table xxx to timestamp sysdate-x/1440;
此功能需要开启回收站:
show parameter recyclebin select object_name,original_name,type from recyclebin; /*查询回收站中都有哪些对象*/
SQL> drop table t;
表已删除。 SQL> select object_name,original_name,type from recyclebin; OBJECT_NAME ORIGINAL_NAME TYPE
------------------------------ -------------------------------- -------------------------
BIN$OiJJIiwuTaCJqY+UV8eTWQ==$0 T TABLE SQL> flashback table t to before drop;
flashback table "BIN$OiJJIiwuTaCJqY+UV8eTWQ==$0" to before drop;
闪回完成。
三、flashback database闪回数据库
闪回数据库无法恢复被删除的数据文件,控制文件不可以被重建,不支持shrink后的恢复。
需要设置db_recovery_file_dest(_size),并且会在这里面产生flashback logs,需要开启force logging
select flashback_on,force_logging from v$database;
alter database flashback on;
alter database force logging;
show parameter db_flashback_retention_target /*希望能恢复到多长时间以内,默认1440分钟*/
SQL> select current_scn from v$database; CURRENT_SCN
-----------
1592391 SQL> drop table t purge;
表已删除。 SQL> shutdown immediate
ORA-01031: 权限不足
SQL> conn / as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。 SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 535662592 bytes
Fixed Size 1385840 bytes
Variable Size 352324240 bytes
Database Buffers 176160768 bytes
Redo Buffers 5791744 bytes
数据库装载完毕。 SQL> flashback database to scn 1592391;
闪回完成。 SQL> alter database open resetlogs;
数据库已更改。
/*open resetlogs会丢失flashback的时间点到目前的数据,可以用read only的方式打开数据库,用逻辑导出误操作的表,再执行recover database重新应用redo,将数据库恢复到flashback database之前状态,然后逻辑导入。*/
alter database open read only;
[terry笔记]Flashback的更多相关文章
- [terry笔记]RMAN综合学习之恢复
[terry笔记]RMAN综合学习之备份http://www.cnblogs.com/kkterry/p/3308405.html [terry笔记]RMAN综合学习之恢复 http://www.cn ...
- [terry笔记]RMAN综合学习之备份
rman是最经济实惠的oracle备份工具,在这里做一个rman的整体学习. 文章中大多是rman命令的语法,还是最好做做实验,以便印象深刻,因为大多数数据库的备份就是按时跑脚本,恢复也不是经常能遇到 ...
- [terry笔记]RMAN综合学习之配置
[terry笔记]RMAN综合学习之备份http://www.cnblogs.com/kkterry/p/3308405.html [terry笔记]RMAN综合学习之恢复 http://www.cn ...
- [terry笔记]Oracle会话追踪(二):TKPROF
接上一笔记[terry笔记]Oracle会话追踪(一):SQL_TRACE&EVENT 10046 http://www.cnblogs.com/kkterry/p/3279282.html ...
- [terry笔记]Oracle会话追踪(一):SQL_TRACE&EVENT 10046
SQL_TRACE/10046 事件是 Oracle 提供的用于进行 SQL 跟踪的手段,在日常的数据库问题诊断和解决中是非常常用的方法.但其生成的trace文件需要tkprof工具生成一个可供人 ...
- [terry笔记]ogg_迁移同步实验_零停机
oracle golden gate我最近正在琢磨,这个软件我觉得约等于dataguard的逻辑模式,我认为其最大的优势是更可控制,比如可以细化到某个schema.某个table的同步. 如下实验的主 ...
- [terry笔记]dblink
dblink在分布式数据库集群中很常见,今天简单的总结一下. db link 的命名和global_names有关,global_name是数据库全局名称,global_name在你所管理的数据库中要 ...
- [terry笔记]Oracle10g/11g安装-redhat5.5
操作系统准备工作 其实真正的进入图形界面安装是简单的,只是前期的配置比较繁琐,如版本.空间.位置.软件包.用户.环境变量.内核参数,这里主要讨论前期配置. 10g与11g的单实例安装基本一样,主要区别 ...
- [terry笔记]对人员列表文件进行数据库操作
原文件(数据已经脱敏): staff_id,name,age,phone,dept,enroll_date1,姬建明,25,152015410,运维,2013-11-012,刘海龙,26,186184 ...
随机推荐
- Android——主流分辨率
VGA:480*640 QVGA:240*320 HVGA:320*480 WVGA:480*800 FWVGA:480*854 IntelHaxm.exe 模拟器加速器
- OC基础(16)
autorelease基本使用 autorelease注意事项 *:first-child { margin-top: 0 !important; } body > *:last-child { ...
- 使用django表单,使网页添加上传文件,并分析文件。
开发环境是: apache + python + django+ eclipse(开发环境) 欲达到目的: 在网页上,添加上传文件控件.然后读取csv文件,并分析csv文件. 操作步骤: django ...
- DZ!NT论坛 3.6.711删除用户各种错解决方案
DZ!NT论坛 3.6.711删除用户各种错解决方案 首先删除一个用户~ado.net报错 对象名 'dnt_spaceposts' 无效. 对象名 'dnt_spaceconfigs' 无效. ...
- svn上传文件
转自:http://zhouhaitao.iteye.com/blog/1122918 如何将指定文件或文件夹直接提交到svn指定目录? 如何将指定文件或文件夹直接提交到svn指定目录? 一般我们都是 ...
- 【Robot Framework】robot framework 学习以及selenium、appnium、requests实践(三)
看了上一章的内容,想必较为简单的case也都会编写了吧,但是是不是觉得,如果能够实现用例参数化,是不是会节省很多劳动力,这节就来学下RF中的user keywords,会让你发现写用例原来可以这么简单 ...
- js获取服务器控件DropDownList所选中的各项属性
var ddl = document.getElementById("DropDownList1"); alert(ddl.selectedIndex);//选择索引值 alert ...
- mysql中-e用法
实际应用中,不仅可以先登陆mysql再使用,还可以在链接的时候进行sql操作,此时需要加参数-e 例: >mysql -hlocalhost -P8080 -uroot -p123456 -e' ...
- Android WebView与JavaScript交互操作(Demo)
应用场景: 为了使Android移动项目能够在较短的时间内完成开发,同时降低技术人员开发的成本投入,往往会采用Hybrid APP的开发模式.相关Hybrid APP(混合型应用)参看:http:// ...
- maven auto-config 多环境自动打包
摘自:http://doc.okbase.net/bjhecwq/archive/118121.html maven有许多优秀的插件,最近在研究打包中替换多重环境的配置,同事介绍使用阿里的auto-c ...