Flasback数据库(闪回数据库)
数据库闪回原理:
一旦启用了闪回数据库,修改的块映像会不时从数据库缓冲区复制到闪回缓冲区。通过新的后台恢复写入器(Recovery Writer, RVWR)将此闪回缓冲区内容刷新到磁盘和闪回日志接着LGWR将日志缓冲区刷新到磁盘,然后DBWR写数据文件。
执行数据库闪回时,Oracle读取闪回日志以提取每个改变块的数据块版本,并将这些版本复制到文件。
具体实验步骤如下:
1. 配置闪回数据库
//确保数据库处于archivelog模式
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
//创建闪回恢复区,并限定它占用的最大空间
SQL> alter system set db_recovery_file_dest='C:\ora\flash_recovery_area';
SQL> alter system set db_recovery_file_dest_size=1G;
//设置闪回保留目标时间。闪回日志是以循环方式重用,更新的数据将覆盖旧的数据。此参数指示oracle在重写它之前保留的分钟数。
SQL> alter system set db_flashback_retention_target=1440;
//干净关闭并加载数据库
SQL> shutdown immediate;
SQL> startup mount;
//启用闪回日志
SQL> alter database flashback on;
2. 监视闪回数据库
//查询闪回能力并估计为满足目标时间闪回日志所需空间
SQL> select retention_target, flashback_size, oldest_flashback_time
2 from v$flashback_database_log;
RETENTION_TARGET FLASHBACK_SIZE OLDEST_FLASHBACK_TIME
---------------- -------------- ---------------------
1440 8192000 2014-03-26 22:40:54
//显示启用闪回数据库而付出的代价,单位是每小时i/o字节数
SQL> select end_time, flashback_data, db_data, redo_data
2 from v$flashback_database_stat;
END_TIME FLASHBACK_DATA DB_DATA REDO_DATA
----------- -------------- ---------- ----------
2014-03-26 5472256 3719168 2918400
//查看闪回缓冲区大小,此大小不受dba控制
SQL> select * from v$sgastat where name='flashback generation buff';
POOL NAME BYTES
------------ -------------------------- ----------
shared pool flashback generation buff 3981204
3. 使用flasback闪回数据库
场景:在2014-03-26 22:40:54,dba不小心删除了用户scott。dba发现这个错误后用flashback闪回数据库
SQL> drop user scott cascade;
恢复步骤:
//此时其它类型的关闭都无意义
SQL> shutdown abort;
SQL> startup mount;
//闪回数据库并以只读模式打开(sqlplus中可以精确到秒,em中只能精确到分)
SQL> flashback database to timestamp to_timestamp('2014-03-26 22:40:54','yyyy-mm-dd hh24:mi:ss');
SQL> alter database open read only;
//闪回完毕后可以查看到模式已经恢复回来了,因为其中的对象可以查询到了
SQL> select * from scott.dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON已选择8行。
//确定已经找到满意的时间点后执行恢复操作
SQL> shutdown abort;
SQL> startup mount;
SQL> recover database until time '2014-03-26 22:40:54';
//执行最后一次数据库关闭,并使用resetlogs打开来创建数据库的一个新化身,此时数据库可以正常使用
SQL> shutdown abort;
SQL> startup mount;
SQL> alter database open resetlogs;
//测试发现之前误删除的用户又回来了
SQL> select * from scott.dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON已选择8行。
实验完毕
Flasback数据库(闪回数据库)的更多相关文章
- [Flashback]开启数据库闪回数据库功能
Flashback是Oracle中一个重要的功能,想要使用闪回数据库功能,需要将数据库置于闪回数据库的状态. 1.检查数据库是否开启归档状态 SQL> archive log list; Dat ...
- Oracle Flashback Technologies - 闪回数据库
Oracle Flashback Technologies - 闪回数据库 根据指定的SCN,使用rman闪回数据库 #查看可以闪回到多久前 SQL> select * from v$flash ...
- OCP读书笔记(12) - 执行闪回数据库
闪回数据库使用的是闪回日志,闪回日志存在于闪回目录(也就是快速闪回区中)闪回日志:就是数据块修改之前的镜像,简称前像 1.查看闪回目录的位置:show parameter recovery 如果闪回目 ...
- oracle闪回技术总结之闪回数据库
[实施步骤] 步骤一.设置如下的初始化参数: Sql>小时:以分钟为单位 SQL> 点00分左右发现表被删除 切了几个归档 22:00:38SQL>:06:05 SQL> :0 ...
- 【DG】利用闪回数据库(flashback)修复Failover后的DG环境
利用闪回数据库(flashback)修复Failover后的DG环境 1.1 BLOG文档结构图 1.2 前言部分 1.2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能, ...
- Oracle 12c 新特性之 PDB 级别闪回数据库
在Oracle Database 12.1中,闪回数据库操作仅限于 CDB ,Oracle Database 12.2支持 CDB 与 PDB 数据库的闪回. PDB 的还原点种类:1. normal ...
- Flashback Database 闪回数据库
一. Flashback Database 说明 Flashback Database 功能非常类似与 RMAN 的不完全恢复, 它可以把整个数据库回退到过去的某个时点的状态, 这个功能依赖于 Fl ...
- ORACLE数据库闪回日志写满
网站页面无法显示完整.检查web服务是正常的,所以可能是ORACLE数据库出了问题. 首先检查闪回日志写满 然后检查归档日志文件写满的缘故了.使用以下几个命令可以看出当前归档日志文件的使用情况: se ...
- oracle数据库flashback系列--闪回数据库在dataguard中的使用
很多人在学习flashback database这个oracle技术的时候,都会有一个疑问,就是如果我只有一个数据库作为生产库的话,是否有这样的业务需求导致我们要把数据库闪回到以前的时间点?以及这样做 ...
随机推荐
- 移动互联网(APP)产品设计的经验分享【转】
随着移动互联网的发展,越来越多的Web产品开始布局移动端,因此最近经常碰到PM们在交流讨论移动APP产品的设计.我从事移动互联网已经有一年多了,通过不断的学习和实践也积累了一些心得,今天整理并分享一下 ...
- 关于JAVA那点事---i++和++i
对i++和++i 一直有点晕,今天专门抽空来研究相关的知识. 先从简单的说起. 有如下程序: int i=0; i=i++; system.out.print(i); 一眼望去这个结果显而易见是1,但 ...
- Mysql 5.6 新特性(转载)
本文转载自 http://blog.csdn.net/wulantian/article/details/29593803 感谢主人的辛苦整理 一,安全提高 1.提供保存加密认证信息的方法,使用.my ...
- ORM之PetaPoco错误--VS中NUGet程序包管理安装PetaPoco
一般在Vs中使用PetaPoco的时候都是使用NuGet程序包管理来安装PetaPoco的,如果你在安装PetaPoco前设置了ConnectionString,那么PetaPoco中的T4模板会自动 ...
- Delphi 中的MD5实现方法(转)
在Delphi自带的Indy控件中其实是提供了MD2,MD4,MD5对象的,我们可以直接使用它们来完成MD5的签名算法.而不需要再去找其它的DLL或是Pas了. 在Uses单元中引用 IdHashMe ...
- ubuntu忘记密码,忘记root密码的解决方法
转载于http://forum.ubuntu.org.cn/viewtopic.php?t=272164 ubuntu的root默认是禁止使用的,在安装的时候也没要求你设置root的密码,和红帽系统系 ...
- Windows7 下配置添加ASP功能
按照如下顺序添加 1.控制面板-程序-打开或关闭Windows功能 2.Internet信息服务-万维网服务-应用程序开发功能 3.勾选ASP 和ASP.net选项 确定后安装完毕即可支持.
- 调整Windows8允许多用户登录
最近LP说要在继续教育平台上学习,好像是中级的需要进行继续教育吧,具体情况不管了.LP说网站登录后没办法听到声音看到视频,但是我的可以,系统环境是Win8,IE10,不过是在Chrome下使用IPA插 ...
- setTimeout、clearTimeout、setInterval,clearInterval ——小小计时器
先看下效果 话不多说上代码~ <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Typ ...
- Apache 安装与配置
安装Apache 1.下载apache软件http://www.apache.org 2.安装 以管理员身份进行安装 3.设置主机名与域名 4.选择安装类型 5.自定义安装路径 6.开始安装 7.安装 ...