·软件知识库 ·模板素材库
注册 | 登录

您所在的位置: INDEX > oracle > 【备份恢复】 闪回数据库(一)闪回数据库的管理

【备份恢复】 闪回数据库(一)闪回数据库的管理

许杰 Sun Jul 05 12:01:51 CST 2015 字号:

Flashback Database闪回数据库:与RMAN的不完全恢复非常类似,它可以把整个数据库回退到过去的某个时点的状态,
这个功能依赖于Flashback log日志。比RMAN更快速和高效,因此Flashback Database 可以看作是不完全恢复的替代技术。
闪回数据库的前提是要开启归档日志。 闪回原理:在启用闪回数据时,会将修改过的块的前映像作为闪回数据库日志保存在闪回恢复区中,如出现逻辑坏块或
用户错误操作需要恢复到过去的时间点,闪回数据库将还原数据库的前映像,然后使用归档日志和redo前滚到期望恢复的时间点,
因为无需还原数据库的数据文件,所有此过程速度比较传统的还原恢复通常快很多。
闪回限制:
1.Flashback Database 不能解决Media Failure, 这种错误RMAN恢复仍是唯一选择;
2.如果删除了数据文件或者利用Shrink技术缩小数据文件大小,这时不能用Flashback Database技术回退到改变之前的状态,
这时候就必须先利用RMAN把删除之前或者缩小之前的文件备份restore出来,然后利用Flashback Database执行剩下的Flashback Database;    
3.如果控制文件是从备份中恢复出来的,或者是重建的控制文件,也不能使用Flashback Database。
4.使用Flashback Database能恢复到的最早的SCN,取决与Flashback Log中记录的最早SCN。

1.1数据库闪回基本步骤
前提:闪回归档日志可用
1) 关闭数据库
2) 启动数据库到mount状态(exclusive模式)
3) 闪回至某个时间点,SCN或还原点
4) Read only打开数据库,验证是否已还原到理想的时间点
5) 使用resetlogs打开数据库

1.2常用闪回数据库方法
1) 基于SCN闪回
FLASHBACK [STANDBY] DATABASE [] TO
[BEFORE] SCN
2) 基于时间戳闪回
FLASHBACK [STANDBY] DATABASE [] TO
[BEFORE] TIMESTMP
3) 基于可靠还原点闪回
FLASHBACK [STANDBY] DATABASE [] TO
[BEFORE] RESTORE POINT
4) RMAN命令行执行闪回数据库

1.3开启数据库闪回功能
1)验证数据库是否开启闪回, NO表示未开启(默认)
SYS@PROD1>select flashback_on from v$database;

FLASHBACK_ON
------------------
NO

2) 闪回日志保留期限(默认保留1天,本测试改为保留2天)
SYS@PROD1>show parameter flashback;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target        integer     1440

SYS@PROD1>alter system set db_flashback_retention_target=2880;

System altered.

SYS@PROD1>show parameter flashback;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target        integer     2880

3)启用闪回数据库功能
启用闪回数据库需使用闪回日志,而闪回日志在闪回归档里;闪回归档又必须要启用快速恢复区(因为闪回归档在快速恢复区里),同时又得启用归档进程

SYS@PROD1>show parameter recovery;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/app/oracle/fast_recovery_
                                                area
db_recovery_file_dest_size           big integer 4182M
recovery_parallelism                 integer     0

SYS@PROD1>archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app/backup
Oldest online log sequence     1
Next log sequence to archive   3
Current log sequence           3

启动闪回数据库
11g中可以直接在open状态开启闪回,无须关库启动到mount状态
SYS@PROD1>select flashback_on from v$database;

FLASHBACK_ON
------------------
YES

[oracle@host01 ~]$ ps -ef|grep rvw
oracle   19049     1  0 15:09 ?        00:00:00 ora_rvwr_PROD1
oracle   19077 18833  0 15:13 pts/4    00:00:00 grep rvw

RVWR:恢复写入器(Recovery Writer) 负责维护闪回恢复区中块的前映像,要与FLASHBACK DATABASE命令一起使用.

1.4监视闪回数据库
1.4.1查看快速恢复区磁盘配额
SYS@PROD1>select estimated_flashback_size,flashback_size from v$flashback_database_log;

ESTIMATED_FLASHBACK_SIZE FLASHBACK_SIZE
------------------------ --------------
                      0      104857600

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

1.4.2确定当前闪回窗口
SYS@PROD1>select oldest_flashback_scn,oldest_flashback_time from v$flashback_database_log;

OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI
-------------------- -------------------
            1227217 2016-12-26 15:09:46

3) OLDEST_FLASHBACK_SCN 显示可以将数据库闪回到的最小 SCN
4) OLDEST_FLASHBACK_TIME 显示可以将数据库闪回到的最小时间的近似值。

1.4.3监视闪回数据库日志中的事件记录
SYS@PROD1>select * from v$flashback_database_stat;

BEGIN_TIME          END_TIME            FLASHBACK_DATA    DB_DATA  REDO_DATA
------------------- ------------------- -------------- ---------- ----------
ESTIMATED_FLASHBACK_SIZE
------------------------
2016-12-26 15:09:46 2016-12-26 15:22:49         663552    1269760     244736
                      0
                     
使用 V$FLASHBACK_DATABASE_STAT 视图监视闪回数据库日志中记录闪回数据的开销。此视图包含24小时的信息,
每一行代表一个小时的时间间隔。可以使用此视图确定闪回数据生成过程中的比率变化
1) BEGIN_TIME 开始时间间隔
2) END_TIME 结束时间间隔
3) FLASHBACK_DATA 时间间隔内写入的闪回数据字节数
4) DB_DATA 提供读取和写入的数据块字节数。此视图还包含该间隔所需的估计闪回空间。
5) REDO_DATA 时间间隔内写入的闪回重做数据字节数
6) ESTIMATED_FLASHBACK_SIZE 该间隔所需的估计闪回空间



『相关搜索』
版本信息:kms v1.3 鄂ICP备2023004815号-1 51LA统计