oracle archivelog mode

备份恢复之前,我们先了解一下归档
归档的作用:
1.出现介质故障时,可以恢复(无论数据联机还是脱机都可以恢复,可以恢复到指定的时间点,可以恢复至日志文件的末尾(until cancel))
2.可以再数据库联机时进行备份
3.介质故障导致表空间(非system)脱机时,数据库其余都可用,因为表空间可以在数据库打开时恢复

归档模式如何更改:
1.关闭数据库 shutdown immediate
2.启动到mount startup mount
3.alter database archivelog;
4.alter database open
这里大家记一点,在改为archivelog模式后,记得全库做一次备份,之前的备份将不再有效,因为是noarchivelog的备份。
由于从10G以后,启用归档都是自动归档,所以这里不再介绍手动归档和自动归档
归档的相关参数:
SQL>  show parameter log_archive_max_processes  --最多可以指定10个

NAME                                 TYPE                             VALUE
------------------------------------ -------------------------------- ------------------------------
log_archive_max_processes            integer                          2

SQL>  ! ps -elf | grep ora_arc | grep -v grep 
0 S oracle    8962     1  0  75   0 - 1273970 -    Apr23 ?        00:00:00 ora_arc0_skyread
0 S oracle    8964     1  0  75   0 - 1273971 -    Apr23 ?        00:00:00 ora_arc1_skyread
这里对应两个进程arc0和arc1
LOG_ARCHIVE_START这个参数在10G后已经取消,在之前版本如果是true,那么就自动启动log_archive_max_processes指定个数的进程,
如果false,那么实例不自动启动arcN进程。
LOG_ARCHIVE_DEST_n参数:最多定义10个归档目标
LOG_ARCHIVE_DUPLEX_DEST:定义备份目标
如果没有指定LOG_ARCHIVE_DEST_n和log_archive_dest,那么将使用flashback_recovery_area作为归档目录
LOG_ARCHIVE_DEST_n是动态参数,可以再系统级和会话级进行修改
1.修改为本地位置加上location
2.远程目标由service指定
举例:
log_archive_dest_1                   string                           LOCATION=/database/oradata/arch
log_archive_dest_2                   string                           SERVICE=standby_db1
注意:本地归档设置必须要有,远程归档可选
可选选项:
1.MANDATORY 表示必须成功完成归档到该目标的操作才可以覆盖联机重做日志文件。
2.OPTIONAL 表示即使联机重做日志文件尚未成功地归档到该目标,也可以重新使用。
这是缺省设置。
REOPEN 属性
1.REOPEN 属性定义发生故障时是否必须重新尝试归档到目标。
如果为关键字REOPEN指定了值,
如REOPEN=600,则若发生故障,在经过指定时间(以秒计)后,归档程序将尝试写入该目标。
缺省值为300 秒。归档到目标的尝试次数没有限制。
归档中的所有错误将在主站点的警报文件中报告。
2.如果未指定REOPEN,则可选目标上的错误将被记录并忽略。
log_archive_min_succeed_dest指定成功归档到目标的最小数量
LOG_ARCHIVE_DEST_STATE_n缺省情况下,归档目标是ENABLE 状态,表明Oracle 服务器可以使用该目标,如果要暂停使用该目标位置
那么可以设置为DEFER,如果再改回到enable状态,需要手动将缺失的日志归档到该位置
LOG_ARCHIVE_FORMAT %s日志序列号,%t线程号。另外10G后多了r%,resetlogs ID
介绍完相关参数,再看下视图:
V$ARCHIVED_LOG
V$ARCHIVE_DEST
V$LOG_HISTORY
V$DATABASE
V$ARCHIVE_PROCESSES
V$RECOVERY_LOG
x$kcvfh
最后比较2个命令,我个人容易混淆,记录一下
ALTER SYSTEM ARCHIVE LOG ALL; --归档所有没有归档的日志文件,但是不包括当前的,日志不做切换
ALTER SYSTEM ARCHIVE LOG CURRENT;--归档所有没有归档的日志文件,包括当前,并做日志切换
ALTER SYSTEM ARCHIVE LOG CURRENT NOSWITCH;--同上,但是日志不做切换

你可能感兴趣的:(oracle archivelog mode)