oracle之flashback

来源:互联网 发布:170号段怎么充值淘宝 编辑:程序博客网 时间:2024/06/04 23:21

Flashback技术是基于undo segment 中的内容为基础的,因此受限于undo_retenton参数。要使用flash的特性,必须启用自动撤销管理表空间。

在Oracle 11g里面又出现了一个新特性:Oracle Flashback Data Archive。FDA通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo区别开来,这样就可以为闪回归档区单独这支存储策略,使之可以闪回到指定时间之前的旧数据而不影响undo策略。

在Oracle 10g中,FlashBack家族可以分为以下成员:Flashback Database、Flashback Drop、Flashback Query(分Flashback Query,Flashback Version Query,Flashback Transactong Query三种)和Flashback Table。

一、闪回恢复区(Flashback Recovery Area)

1、设置闪回恢复区

闪回恢复区主要通过3个初始化参数来设置和管理:

db_recovery_file_dest:指定闪回恢复区的位置

db_recovery_file_dest_size:指定闪回恢复区的可用空间大小

db_flashback_retention_target:指定数据库可以回退的时间,单位是分钟,默认1440分钟,也就是一天。当然,实际上可回退的时间还决定于闪回恢复区的大小,因为里面保存了回退所需要的flash log。所以这个参数要和db_recovery_file_dest_size配合修改。

2、取消闪回恢复区

将db_recovery_file_dest参数设置为空,可以停用闪回恢复区。如果已经启用Flashback database,则不能取消闪回恢复区。

SQL>alter system set db_recovery_file_dest='';

注意:

(1)db_recovery_file_dest_size只有在db_recovery_file_dest清空之后才可以清空。

3、闪回恢复区的内容

所有和恢复相关的文件都可以存放到闪回恢复区

SQL> select * from v$flash_recovery_area_usage;
FILE_TYPE            PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE                          0                         0               0
REDO LOG                              0                         0               0
ARCHIVED LOG                          0                         0               0
BACKUP PIECE                          0                         0               0
IMAGE COPY                            0                         0               0
FLASHBACK LOG                     24.41                         0               5
FOREIGN ARCHIVED LOG                  0                         0               0
7 rows selected

上面视图中查询的结果列出来的所有类型的文件,都可以通过闪回恢复区来存放、管理

4、闪回恢复区的一些限制

设置闪回恢复区后,如果没有设置过log_archive_dest_n参数,则归档日志默认保存到该区域内。实际上,oracle是通过隐式的设置log_archive_dest_10='location=USE_DB_RECOVERY_FILE_DEST'来实现的。所以,如果修改过log_archive_dest_n将归档日志保存到其他位置,也可以修改该参数继续使用闪回恢复区。

多个数据库的闪回恢复区可以指定到同一个位置,但是db_name不能一样,或者db_unique_name不能一样。RAC的闪回恢复区必须位于共享磁盘上,能被所有实例访问。

5、闪回恢复区的空间管理

闪回恢复区中添加或者删除文件等变化都将记录在数据库的alert日志中。在闪回恢复区中的空间超过85%的时候,数据库将会向alert文件中写入告警信息。而当超过97%的时候将会雪茹严重告警信息。当闪回恢复区空间不够是将会发生错误。

SQL> select * from V$recovery_File_Dest;
NAME                                                                             SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------------------------------------------------------------------- ----------- ---------- ----------------- ---------------
/u02/flashback

SQL> select * from v$flash_recovery_area_usage;
FILE_TYPE            PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE                          0                         0               0
REDO LOG                              0                         0               0
ARCHIVED LOG                          0                         0               0
BACKUP PIECE                          0                         0               0
IMAGE COPY                            0                         0               0
FLASHBACK LOG                     14.65                         0               3
FOREIGN ARCHIVED LOG                  0                         0               0
7 rows selected

通过查询视图v$flash_recovery_area_usage,可以获得当前闪回恢复区的空间使用情况,并且知道哪些文件占用了空间。

如果闪回恢复区空间耗尽,且归档路径设置到了闪回恢复区,则有日志无法归档,数据库会hang住。

6、flash recovery area空间不足导致DB不能打开或者hang住的处理方法

增加即可

7flash recovery area的备份

rman的备份同时支持对flash recovery ara的备份

在10g中oracle又引入了新的Flashback功能,使用了flash recovery area来存储flashback log等等。这个区域默认创建在oracle_base目录下,在其中可以存放备份集,镜像拷贝,归档日志、自动备份的控制文件以及spfile和flashback logs。存放位置和大小由参数db_recovery_file_dest和db_recovery_file_dest_size决定。

默认情况下数据库的flashback database是关闭的,可以再mount exclusive状态下打开。

(1)BACKUP RECOVERY AREA 命令只能备份到磁带上。在磁盘上备份会报错。

(2)Flash recovery area包含内容:控制文件、归档文件、flashback logs,控制文件,自动备份的控制文件,数据文件,数据文件拷贝,rman文件(包括备份集,镜像文件)

(3)backup recovery area将备份所有flash recoveryarea中的内容。


0 0
原创粉丝点击