归档模式与非归档模式

在Oracle数据库中,主要有两种日志操作模式:归档模式(archivelog mode)及非归档模式(noarchivelog mode)。在默认情况下oracle数据库采用的是非归档模式。作为一个合格的DBA,应当深入了解这两种日志操作模式的特点,并且保证数据库运行在合 适的日志操作模式下。在讲重做日志归档模式(archivelog mode)及非归档模式(noarchivelog mode)之前我们先简单的了解一下oracle的日志切换步骤。oracle数据库的重做日志是重复写的,一般来说oracle数据库拥有多个重做日志 组(redo log group),每个重做日志组又包含多个成员(详细介绍请查考oracle官方文档),我们大部分的数据更改操作都会写入在线日志中,也就是当前正在使用 的重做日志。当一个重做日志写满或DBA发出switch log命令的时候就会发生日志切换,如果oracle运行在非归档模式下,oracle直接覆盖写下一个重做日志组。如果oracle运行在归档模式下则 oracle会查询即将写入的重做日志是否归档,没有归档则等待其归档,等归档完成以后再覆盖写入重做日志记录。当然如果发生了归档等待的话可以通过添加 重做日志组或开启更多的归档进程来避免这个等待事件。总的来说重做日志归档模式(archivelog mode)及非归档模式(noarchive mode)的最重要的区别就是当前的重做日志切换以后会不会被归档进程(archive process)copy到归档目的地(log_archive_dest)。

一. 非归档模式(noarchivelog mode)的利与弊

当oracle数据库运行在非归档模式下,控制文件确定了发生日志切换以后重做日志文件不需要归档,同时对于(日志写进程)LGWR来说此重做日志 组是可以直接使用的。非归档模式(noarchivelog mode)只能提供实例级别的故障恢复,需要介质恢复的时候oracle就爱莫能助了。如果很不幸的发生了,那么我们只能把数据库恢复到过去的某个时间点 上,前提是你完全冷备份了数据库。从备份时间点到故障发生期间的所有数据都只有丢失了。而且当oracle运行在非归档模式(noarchivelog mode)下的时候数据库不提供在线的表空间备份,换句话说热备是不可用的。

二. 归档模式(archivelog mode)的利与弊

当oracle数据库运行在归档模式下,控制文件确定了发生日志切换后的重做日志文件在归档前是不能被日志写进程)LGWR重用的。归档模式 (archivelog mode)下oracle数据库能从实例,介质的失败中得到恢复,当然最近一次的数据库全备及备份以来的所有归档日志的备份时必须的。同时我们还能利用归 档日志的重放来完成oracle standby的搭建(oracle standby以后会介绍,请大家留意)。归档模式(archivelog mode)又可以分为手动归档和自动归档,顾名思义手动归档需要DBA的干预;而自动归档,oracle会自己完成归档任务。

通过上面的简单描述我们应该对两种模式的利与弊有所了解了, 但是具体选择哪种模式 则需要我们从实际情况出发综合考虑。不过作为生产环境一般都是选用归档模式 (archivelog mode)。接下来将要介绍一下当前模式的查询以及模式的切换。 三. 当前模式查询 可以通过以下方式查询当前数据库是运行在哪种模式下的: [oracle@localhost~]$ sqlplus "/ as sysdba" SQL> archive log list Database log mode Automatic archival Archive destination Archive Mode Enabled /u01/oradata/archive_sid 9975 9977

Oldest online log sequence Next log sequence to archive Current log sequence

9977

SQL> select name,log_mode from v$database; NAME LOG_MODE

--------- ------------ SID ARCHIVELOG

四. 模式切换 oracle数据库日志操作模式的切换主要有两种: 1. 非归档模式 (noarchivelog mode) -> 归档模式(archivelog mode) 2. 归档模式(archivelog mode)-> 非归档模式 (noarchivelog mode)。两种模式的切换步骤大致都是相同的,只是在细微处有所差别。 当日志操作模式由归档模式切换到非归档模式的时候需要保证数据不需要介质恢复, 也就是 说数据库能正常打开。下面主要介绍一下数据库由非归档模式(noarchivelog mode)-> 归 档模式(archivelog mode)。 1. 关闭数据 shutdown,最好是正常关闭(不使用abort选项)

第2/4页

2. 备份数据库 为了防止在模式切换的时候发生不可预知的错误,请先备份一下数据库 3. 启动数据库到mount状态 SQL>startup mount SQL>alter database archivelog; SQL>alter system set log_archive_dest_1/log_archive_format .... --如果有必要 则修改归档目的,归档文件名等参数 SQL>alter database force logging; 4. 重启数据库 五. 相关参数简介 在oracle 10g R2中与归档相关的参数有: SQL> show parameter archive; NAME TYPE VALUE --可选,强制记录日志。

------------------------------------ ----------- ------------------------------ archive_lag_target log_archive_config log_archive_dest log_archive_dest_1 log_archive_dest_10 log_archive_dest_2 log_archive_dest_3 log_archive_dest_4 log_archive_dest_5 log_archive_dest_6 log_archive_dest_7 log_archive_dest_8 log_archive_dest_9 integer string string string string string string string string string string string string SERVICE=tnsname location=/u01/oradata/archive_sid 3600

第3/4页

log_archive_dest_state_1 log_archive_dest_state_10 log_archive_dest_state_2 log_archive_dest_state_3 log_archive_dest_state_4 log_archive_dest_state_5 log_archive_dest_state_6 log_archive_dest_state_7 log_archive_dest_state_8 log_archive_dest_state_9 log_archive_duplex_dest log_archive_format log_archive_local_first log_archive_max_processes log_archive_min_succeed_dest log_archive_start log_archive_trace remote_archive_enable standby_archive_dest

string string string string string string string string string string string string boolean

enable enable enable enable enable enable enable enable enable enable

arch_%t_%s_%r TRUE 2 1

integer integer

boolean integer string string

FALSE 0 true ?/dbs/arch

其中log_archive_dest_n为归档日志存放的地址,可以使远程的也可以是本地。在 10g r2中最多支持10个归档目的地(这个数目也就限制了standby的数量最多有9个); 与之相对应的是log_archive_dest_state_n, 此参数决定了log_archive_dest_n的设置是否 启用。参数log_archive_format确定了归档日志文件的名称%t表示归档线程号,%s表示 日志序列号,t%是重置日志ID(包含时间戳)。参数log_archive_max_processes确定了 启动多少个归档进程。 这几个参数对于我们来说是比较重要的, 当然其他的参数也需要了解, 具体的介绍请参考oracle administrator guid

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26844646/viewspace-756597/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26844646/viewspace-756597/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值