闪回数据库使用的是闪回日志,闪回日志存在于闪回目录(也就是快速闪回区中)
闪回日志:就是数据块修改之前的镜像,简称前像

1.查看闪回目录的位置:
show parameter recovery

如果闪回目录没有设定,要先设定
先设定大小:alter system set db_recovery_file_dest_size=2G;
再设定位置:alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area';

闪回日志就存在于/u01/app/oracle/flash_recovery _area目录中

发现没有闪回日志因为闪回数据库功能没有打开:
SQL> select flashback_on from v$database;

2. 打开闪回数据库:

数据库必须处于归档模式:

SQL> archive log list

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;

cd /u01/app/oracle/flash_recovery_area/ORCL/flashback
ls
o1_mf_8vt1w7cz_.flb--这个文件就是闪回日志

闪回日志:就是数据块修改之前的镜像,简称前像,由RVWR进程写入闪回日志

ps -ef | grep rvwr

3. 使用闪回数据库恢复scott用户

模拟损坏:

SQL> drop user scott cascade;
SQL> create user tt default tablespace users identified by a;
SQL> grant connect, resource to tt; SQL> conn tt/a
SQL> create table tt as select * from tab;
SQL> select * from tt; SQL> conn /as sysdba select 'execute dbms_logmnr.add_logfile('''||member||''')' from v$logfile SQL> exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo03.log')
SQL> exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo02.log')
SQL> exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/orcl/redo01.log') SQL> exec dbms_logmnr.start_logmnr();
SQL> select scn, sql_redo from v$logmnr_contents where sql_redo like '%drop%';
SQL> select min(scn) from v$logmnr_contents where sql_redo like '%drop%' --找最新的scn SQL> shutdown immediate
SQL> startup mount;
SQL> flashback database to scn 521102;
SQL> alter database open; --error
SQL> alter database open read only;--以只读方式打开,检查数据是否已经闪回,如果没有闪回,可以启动到mount重新闪回 SQL> conn scott/tiger
SQL> select * from tab; SQL> conn tt/a--从故障点之后的数据将全部丢失 SQL> conn /as sysdba
SQL> shutdown immediate
SQL> startup mount
SQL> flashback database to scn 521102;
SQL> alter database open resetlogs;

4. 闪回目标:

SQL> show parameter db_flashback_retention_target

5. 监视闪回数据库:

监视快速恢复区的空间使用情况是非常重要的,因为这样可以知道在多大程度上满足了保留目标

1)查看快速恢复区磁盘限额:

select estimated_flashback_size, flashback_size from v$flashback_database_log;

estimated_flashback_size :使用先前记录的闪回数据,来估计要满足当前闪回保留目标时闪回日志在快速恢复区中所需的磁盘空间,该估计基于以下两段时间中较短时间段内的工作量:自实例启动以来的时间段或等于闪回保留目标的最近时间间隔
flashback_size :提供当前闪回数据的大小,以字节表示

2)确定当前闪回窗口:

select oldest_flashback_scn, oldest_flashback_time from v$flashback_database_log;

oldest_flashback_scn 和 oldest_flashback_time :显示可以将数据库闪回到的最小SCN 和时间的近似值

3)使用v$flashback_database_stat视图监视闪回数据库日志中记录闪回数据的开销。可以使用此视图确定闪回数据生成过程中的比率变化

select begin_time, end_time, flashback_data, db_data, redo_data, estimated_flashback_size as est_fb_sze from v$flashback_database_stat;

基于这些信息,可能需要调整保留时间或快速恢复区大小
flashback_data :表示在时间间隔内写入的闪回数据字节数
redo_data :表示在时间间隔内写入的重做数据字节数
db_data:提供读取和写入的数据块字节数
estimated_flashback_size:时间间隔的结束时,评估需要闪回空间的大小

4)可以查询 v$recovery_file_dest 来查看有关快速恢复区的信息

select name, space_limit as quota, space_used as used, space_reclaimable as reclaimable, number_of_files as files from v$recovery_file_dest ;

列说明:
NAME:快速恢复区名称,指示位置字符串
SPACE_LIMIT:DB_RECOVERY_FILE_DEST_SIZE 参数中指定的磁盘限额
SPACE_USED:快速恢复区文件使用的空间(以字节表示)
SPACE_RECLAIMABLE:使用空间管理算法,通过删除过时、冗余的以及其它低优先级的文件而回收的空间大小
NUMBER_OF_FILES:文件数

5)查看哪些文件使用闪回区域:

select FILE_TYPE TYPE, PERCENT_SPACE_USED PSU, PERCENT_SPACE_RECLAIMABLE PSR, NUMBER_OF_FILES NOF
from V$FLASH_RECOVERY_AREA_USAGE;

6.还原点:

1)什么是还原点(Restore point)
还原点相当于某个时间点或者某个SCN的别名

2)Restore point的类型
Restore point有两种类型:Normal和Guaranteed

2.1)Normal restore point:相当于某个时间点或者SCN的一个别名,restore point的名字和对应的SCN会保存在控制文件中创建了normal restore point后,如果需要执行flashback database/flashback table/point-in-time recovery等操作时,就可以制定目标时间点为该restore point,而不需要指定当时的SCN

select flashback_on from v$database;

create restore point b1;
select scn,TIME,NAME from v$restore_point; drop user scott cascade; SQL> shutdown immediate
SQL> flashback database to restore point b1;----b1就相当于scn号
SQL> alter database open resetlogs; SQL> conn scott/tiger
SQL> select * from tab;
SQL> conn /as sysdba

闪回数据库无论打开还是关闭,都可以创建normal restore point

select flashback_on from v$database;
drop restore point b1; shutdown immediate
startup mount
alter database flashback off; select flashback_on from v$database; alter database open;
create restore point b1;
drop restore point b1;

2.2)Guaranteed restore point:

1. 它的功能与normal restore point的功能基本一致,也是作为SCN的一个别名
2. 与flashback database相关的特性,在执行flashback database到之前的某个时间点时,必须保证所需要的flashback log存在,创建一个guaranteed restore point,可以保证能将数据库flashback到该点,即使没有系统开启flashback database功能,这是因为,在创建guaranteed restore point之后,对于任何block的第一次变更,都会将其前映象整个的记录下来

如果没有开启flashback database功能,只能将数据库闪回到guaranteed restore point;如果启用了flashback database功能,那么guaranteed restore point可以保证能将数据库flashback到guaranteed restore point之后的任何时间点

如果数据库没有开启闪回数据库功能,创建guaranteed restore point。此时只能将数据库闪回到guaranteed restore point

实验:

select flashback_on from v$database;
create restore point b1 guarantee flashback database;---报错,由于没有启用闪回数据库功能 shutdown immediate
startup mount
create restore point b1 guarantee flashback database;
select flashback_on from v$database;
alter database open; drop user scott cascade; shutdown immediate
startup mount
flashback database to restore point b1;
alter database open resetlogs;
conn scott/tiger
此时只能将数据库闪回到guaranteed restore point
drop restore point b1;
select flashback_on from v$database;
shutdown immediate
startup mount
create restore point b1 guarantee flashback database; select flashback_on from v$database; alter database open; create user test default tablespace users identified by a;
grant connect,resource to test; create restore point b2; drop user test cascade; shutdown immediate
startup mount
flashback database to restore point b2;
alter database open;

如果数据库开启闪回数据库功能,创建guaranteed restore point
此时能将数据库闪回到guaranteed restore point之后的任何时间点

select flashback_on from v$database;
create restore point b1 guarantee flashback database;---创建成功,由于启用闪回数据库功能 select flashback_on from v$database; create user test default tablespace users identified by a;
grant connect,resource to test; create restore point b2; drop user test cascade; shutdown immediate
startup mount
flashback database to restore point b2;
alter database open resetlogs; 查询restore point: select NAME, SCN, TIME, GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE from V$RESTORE_POINT

name:restore point的名称
scn:创建restore point时的scn
time:创建restore point的时间点
GUARANTEE_FLASHBACK_DATABASE:是否是确保
STORAGE_SIZE:为了满足确保,闪回日志所占用的磁盘空间大小

OCP读书笔记(12) - 执行闪回数据库的更多相关文章

  1. OCP读书笔记(11) - 使用闪回技术II

    闪回归档 1. 什么是闪回数据归档? 闪回归档是用来保存一个或多个表的历史数据的新数据库对象,以及该数据的存储保留和清除策略.归档只是保存数据库中一个或多个表的所有事务处理的变化的一个或多个表空间,数 ...

  2. OCP读书笔记(10) - 使用闪回技术I

    使用闪回技术查询数据 闪回查询:就是查询表在过去某个时间点的数据,所用到的技术就是undo数据 SQL> conn scott/tiger 创建测试表 SQL> create table ...

  3. 【DG】利用闪回数据库(flashback)修复Failover后的DG环境

    利用闪回数据库(flashback)修复Failover后的DG环境 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能, ...

  4. Oracle 12c 新特性之 PDB 级别闪回数据库

    在Oracle Database 12.1中,闪回数据库操作仅限于 CDB ,Oracle Database 12.2支持 CDB 与 PDB 数据库的闪回. PDB 的还原点种类:1. normal ...

  5. Flashback Database 闪回数据库

    一.  Flashback Database 说明 Flashback Database 功能非常类似与 RMAN 的不完全恢复, 它可以把整个数据库回退到过去的某个时点的状态, 这个功能依赖于 Fl ...

  6. Flasback数据库(闪回数据库)

    数据库闪回原理: 一旦启用了闪回数据库,修改的块映像会不时从数据库缓冲区复制到闪回缓冲区.通过新的后台恢复写入器(Recovery Writer, RVWR)将此闪回缓冲区内容刷新到磁盘和闪回日志接着 ...

  7. 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...

  8. Oracle Flashback Technologies - 闪回数据库

    Oracle Flashback Technologies - 闪回数据库 根据指定的SCN,使用rman闪回数据库 #查看可以闪回到多久前 SQL> select * from v$flash ...

  9. oracle闪回技术总结之闪回数据库

    [实施步骤] 步骤一.设置如下的初始化参数: Sql>小时:以分钟为单位 SQL> 点00分左右发现表被删除 切了几个归档 22:00:38SQL>:06:05 SQL> :0 ...

随机推荐

  1. 【linux驱动】linux驱动总览

    欢迎转载,转载时需保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...

  2. Android漫游记(4)---.so文件动态调试一例

    Android平台的动态调试一直以来是个困扰我等Coder的头疼问题,特别是对于本地的动态调试支持.能够说是"弱智"级别的,不知道Google的新版NDK和新出的Android S ...

  3. Ubuntu环境下SSH的安装及使用

    Ubuntu环境下SSH的安装及使用 SSH是指Secure Shell,是一种安全的传输协议,Ubuntu客户端可以通过SSH访问远程服务器 .SSH的简介和工作机制可参看上篇文章SSH简介及工作机 ...

  4. FMX对象释放

    今天盒子中有朋友遇到对象释放的问题,原文在这里,他的实现大意是建立一个TmyLayout = class(TLayout),然后在这个类中画线,Form对象调用实例化这个类来画线,然后释放掉这个对象, ...

  5. android——写xml

    在PersonService的基础上,加上savePersons(·····),这时的PersonService为: package com.njupt.xml; import java.io.Fil ...

  6. CSS中的几个概念--------Day39

    世界杯疯狂来袭,让这个原本就高温的夏季瞬间被引爆了,这肆虐的激情仿佛让一切都灼热了起来,绽放着刺目的光,工作之余总有那么一群人在那激烈的讨论着争辩着,抑不住的亢奋. 非常不巧,往往这群身影中总有我的存 ...

  7. N-Queens And N-Queens II [LeetCode] + Generate Parentheses[LeetCode] + 回溯法

    回溯法 百度百科:回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标.但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步又一次选择,这样的走不通就退回再走的技术为回溯法 ...

  8. 网页 css

    css---- 层叠样式表(Cascading Style Sheet) 一,层叠样式表的分类 1,外部样式表:在外部定义样式表,然后在页面head里面附加该样式表 2,内嵌样式表:直接在网页head ...

  9. ASP.NET - TreeView 增删

    效果: 前端代码: <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Si ...

  10. catalan 数——卡特兰数(转)

    Catalan数——卡特兰数 今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来后来查了下,原来是Catalan数.悲剧啊,现在整理一下 一.Catalan数的定义令h(1) ...