Oracle【IT实验室】数据库备份与恢复之五:Flashback
Flashback在开发环境(有时生产环境的特殊情况下)是很有用的一个工具。
5.1 9i Flashback 简介
5.1.1 原理
当数据 update 或 delete 时,原来的数据会保存在 undo 表空间中,保存的最少时间是 UNDO_RETENTION.实际的保存时间与 undo表空间的大小和数据更改的繁忙程度相关。 UNDO_RETENTION 的参数(单位为秒)指定 Oracle保存用于 flashback查询的 undo映像 的时间。一般你可以将这个值设为一整天(864000秒),这样你就能看到前一天全天的映像。 当然,你的在线 undo日志必须足够大,大到足以能保存一整天的 undo日志数据,对于繁忙的 Oracle系统,这个数值可以达到很大。
5.1.2 一些限制
服务器必须配置成使用自动 undo管理。
在使用 Flashback查询时不能使用 DDL或者 DML.
Flashback 不取消 DDL操作,例如 DROP命令。 数据库管理员做一些必要的设置之后,一般用户才能使用 Flashback查询功能:
SQL> ALTER SYSTEM SET UNDO_MANAGEMENT=AUTO
SQL> ALTER SYSTEM SET UNDO_RETENTION=86400
SQL> GRANT EXECUTE ON DBMS_FLASHBACK TO USERNAME;
5.1.3 获得SCN或时间点
在 Flashback 时,可以尝试多个 SCN,获取最佳值。
如果能得知具体时间,那么可以获得准确的数据闪回。
SQL> alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS'; SQL> select sysdate from v$database;
捕捉提交的 SCN: // 不知为什么,两种方法获得的 SCN不一样
SQL> select dbms_flashback.get_system_change_number scn from dual;
SQL> select max(ktuxescnw * power(2,32) + ktuxescnb) SCN from x$ktuxe;
5.1.4 启用或禁用flashback查询
使用系统改变数(SCN)或者真实时间来指定 flashback 的时间点来获取数据映象。
方法一:SQL> select * from [TABLE] as of scn 129292;
SQL> select * from [TABLE] as of timestamp to_timestamp('时间', ‘时间格式');
SQL> select * from saflog as of timestamp to_timestamp('2007-12-18 08:40:00','YYYY-MM-DD HH24:MI:SS');
方法二:启用:
SQL> exec dbms_flashback.enable_at_system_change_number(112112);
SQL> exec dbms_Flashback.enable_at_time('28-AUG-02 11:00:00');启用后看到的只是闪回的结果,实际上并未恢复数据。且闪回状态下不能做DML操作。可以先恢复到一个临时表中。见示例。
禁用:SQL> execute dbms_flashback.disable();
5.1.5 示例:
10g 的 Flashback进行了增强和修改,通过回闪,用户可以完成许多不可能恢复的工作,目前 oracle10g 的回闪包括以下特性;
1〉oracle falshback Database.该特性允许 oracle 通过 Flashback database 语句,将数据库会滚到前一个时间点或者scn 上,而不需要作时间点的恢复工作!
2〉oracle falshback table.该特性允许 oracle通过 flashback table 语句,将表会滚到前一个时间点或者 scn 上。
3〉oracle falshback drop.该特性允许 oracle把恢复 drop掉的 table 或者索引。
4〉oracle falshback version query.该特性可以得到特定的表在某一个时间段内的任何修改记录!
5〉oracle falshback transaction query该特性可以限制用户在某一个事务级别上检查数据库的修改操作,适用于诊断问 题、分析性能、审计事务。
Oracle【IT实验室】数据库备份与恢复之五:Flashback的更多相关文章
- Oracle【IT实验室】数据库备份与恢复之四:RMAN(备份与恢复管理器)
RMAN是ORACLE提供的一个备份与恢复的工具,可以用来备份和还原数据库文件. 归档日志和控制文件.它也可以用来执行完全或不完全的数据库恢复. RMAN可以由命令行接口或者 OEM的 Backup ...
- Oracle数据库备份与恢复
第一章. 理解什么是数据库恢复 当 我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的故障(硬件故障.软件故障.网络故障.进程故障和系统故障)影响数据库系 统的操作,影响数据 ...
- Oracle 10g数据库备份与恢复操作手册
Oracle 10g数据库备份与恢复操作手册 目录 Oracle 10g数据库备份与恢复操作手册... 前言... 文档目的... 文档范围... 目标读者... 其他说明... 冷备份... 热备份 ...
- oracle 数据库备份与恢复
oracle 数据库备份与恢复 包含四个部分: 1.数据泵备份与恢复 2.rman备份与恢复 3.CSV增量备份恢复 4.截库操作 1.数据泵备份与恢复 expdp/ / impdp 时的 CONTE ...
- Oracle数据库备份与恢复的三种方法
转自blueskys567原文Oracle数据库备份与恢复的三种方法, 2006-10. 有删改 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份. 导出 ...
- ORACLE数据库备份与恢复详解
ORACLE数据库备份与恢复详解 学习过程中的总结,有兴趣不妨看看,如果有不对的地方,高手不要留情!! Oracle的备份与恢复有三种标准的模式,大致分为两 大类,备份恢复(物理上的)以及导入导出(逻 ...
- oracle实例名,数据库名,服务名等概念差别与联系
数据库名.实例名.数据库域名.全局数据库名.服务名 这是几个令非常多刚開始学习的人easy混淆的概念.相信非常多刚開始学习的人都与我一样被标题上这些个概念搞得一头雾水.我们如今就来把它们弄个明确. 一 ...
- Oracle 六闪回技术,flashback
Flashback 技术基于Undo segment基于内容的, 因此,限制UNDO_RETENTON参数. 要使用flashback 特征,您必须启用自己主动撤销管理表空间. 在Oracle 11g ...
- 为Oracle GoldenGate准备数据库
了解如何为Oracle GoldenGate准备数据库,包括如何配置连接和日志记录,如何在数据库中启用Oracle GoldenGate,如何设置闪回查询以及如何管理服务器资源. 为集成进程配置连接 ...
随机推荐
- django缓存
由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5 ...
- ext 对齐
layout : { type : 'hbox', pack : 'end' } buttonAlign:'center', //按钮居中 pack : String Controls how t ...
- idea 排除编译文件,恢复编译
- phpcms新闻轮播图实现
首页如果有新闻的轮播图,点击图片可以进入相关的新闻.因为已经使用外部js轮播插件,所以想不修改插件进行轮播 我用的js插件是yx-rotaion插件,配合phpcms的get工具箱对新闻进行读取并抽取 ...
- CDN——到底用还是不用?
最近在学bootstrap,在知乎上搜索bootstrap看到有人问bootstrap基础包体积较大,对性能影响会不会很大,看到两种方法来减少对性能的影响: 有选择地部分加载,bootstrap带有L ...
- Struts2学习笔记《一》
(一)struts2中JSP页面数据与Action对应的三种方式 1.属性驱动,及页面中带有name属性的值传递过来action中,struts2会将值直接映射到getter.setter接收器中 此 ...
- Alien Dictionary
There is a new alien language which uses the latin alphabet. However, the order among letters are un ...
- C#之new修饰符
转自MSDN:https://msdn.microsoft.com/zh-cn/library/435f1dw2.aspx new隐藏基类成员 在用作修饰符时,new关键字可以显式的隐藏从基类继承的 ...
- Qt qss 使用
1.在资源文件建立一个qss文件.如blue.qss 2. 调用 #include "mainwindow.h" #include <QApplication> #in ...
- [转]Git远程操作详解
原文:http://www.ruanyifeng.com/blog/2014/06/git_remote.html Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多 ...