配置归档模式

来源:互联网 发布:nginx 反向代理配置 编辑:程序博客网 时间:2024/05/29 10:17

redo log history:归档redo log历史信息

非归档模式:默认模式,循环写,checkpoint发生后redo log file才能被重用。只能冷备。

归档模式:checkpoint发生后并且redo log file被归档redo log file才能被重用。在控制文件里的一个entry会记录归档日志文件的log sequence number。主要用于介质恢复。热备。除SYSTEM表空间外的其他一个表空间由于介质损坏offline时,剩余的表空间仍然可用,因为数据库工作的同时表空间也能被恢复。

开启归档模式:
1、shutdown normal/immediate/transactional
2、startup mount
3、alter database archivelog
4、alter database open
5、全备数据库,作为备份起始点。

启动自动归档
LOG_ARCHIVE_START=TRUE(设置一次后自动启动自动归档)

alter system archive log start to 'd:/test/log'(手动开启自动归档模式)
指定数据库启动时最大归档进程数(ARC0-ARC9,最多10个)
LOG_ARCHIVE_MAX_PROCESSES

查看归档状态信息
SQL>archive log list

停止自动归档
先alter system archive log stop;再LOG_ARCHIVE_START=FALSE;

手动归档
alter system archive log +
current:归档指定线程的当前redo log file组;
next:归档最老的未归档的联机重做日志文件组;
all:归档指定线程中满了但是未归档的所有联机重做日志文件组;
logfile:归档成员文件名为指定logfile的联机重做日志文件组;
group:归档联机重做日志文件组;
change:基于SCN归档;
sequence:根据log sequence number归档联机重做日志文件组;
thread:归档指定线程的联机重做日志文件组。

归档路径参数
(新方法)log_archive_dest_n(n在不同版本不一样,版本越高n越大,即归档路径越多)
alter system set log_archive_dest_1="location=d:/log mandatory reopen=600":存储在本地磁盘,必须归档成功后才能重用redo log file,600秒后再次归档。
alter system set log_archive_dest_1="service=orcl optional":存储在远端,不需归档成功也能重用redo log file,optional是默认选项。
mandatory:强制,必须确保归档成功后才能重用redo log file。
reopen:归档失败后,间隔多少秒重新归档,默认为300秒,不限制尝试的次数。
optional:不需归档成功也能重用redo log file。

或者
(旧方法)用log_archive_dest指定主要的位置,用log_archive_duplex_dest指定一个备份的位置。

一个redo log file重用的前提:
1.被定义为mandaroty的目录都成功归档
2.成功归档的目录数大于等于log_archive_min_succeed_dest指定的目录数。


控制归档目录状态
log_archive_dest_state_n:默认为enable。
可设置某个目录临时不归档。alter system set log_archive_dest_state_1=defer;
tip:再次enable目录时,必须把之前没拷贝的log手动归档到这个目录。

归档日志的文件名
log_archive_format指定文件名,
%s和%S为log sequence number;%S是固定长度,不足就在前面补0;
%t和%T为thread number;
%r:resetlogs ID that ensures unique names are constructed for the archived log files across multiple incarnations of the database。

TIPS:为了进行不完全恢复,所以要进行open resetlogs,open resetlogs后log sequence number从1开始,恢复的话就可以只恢复根据当前Incarnation的log sequence number指定的数据了。可以跨Incarnation进行恢复,reset database to incarnation 1; recover database until sequence 32。查看数据库的Incarnation,RMAN>list incarnation
    当数据库从9i或8i升级到10g时, 如果compatible参数也设成了10以上, 则LOG_ARCHIVE_FORMAT参数中必须包含%s, %t, %r参数. 其中%s是Log Seuqence; %t是Thread ID, RAC的节点中设有THREAD参数, 就是这个值了; %r指的是Resetlog ID了, 比较新, 得从Oracle 10g中增加的跨Resetlogs恢复功能说起.
    为了支持这个功能, Oracle 10g在控制文件中新增了一部份内容, 就是历次Open Resetlogs的经过, 每经历一次Open Restlogs就生成了一个新的Incarnation, 反应到数据库中则是V$DATABASE_INCARNATION视图.select incarnation#,status from v$database_incarnation;

动态视图
v$archive_log
v$archive_dest
v$log_history
v$archive_processes

 

 

原创粉丝点击