涉及以下几个参数:log_archive_min_succeed_dest动态参数 log_archive_dest_state_ 参数
log_archive_format log_archive_dest_1
1.开启归档模式
SQL> show user
USER 为 "SYS"
SQL> archive loglist
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 32
当前日志序列 36
SQL> shutdown immediate;
SQL> startup mount; 开启归档模式 需要在MOUNT状态下进行。
ORACLE 例程已经启动。
Total System Global Area 431038464 bytes
Fixed Size 1375088 bytes
Variable Size 327156880 bytes
Database Buffers 96468992 bytes
Redo Buffers 6037504 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> archive loglist;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST ---开启归档后默认归档位置是闪回区
最早的联机日志序列 32
下一个存档日志序列 36
当前日志序列 36
SQL> show parameter log_archive_max_process
NAME TYPE VALUE
----------------------------------------------- ------------------------------
log_archive_max_processes integer 4
SQL> show parameter log_archive_dest_
NAME TYPE VALUE
----------------------------------------------- ------------------
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_state_13 string enable
2.指定归档日志存放目录
SQL> alter system set log_archive_dest_1="location=d:\disk1\offlinelog\ mandatory"; 这里如果是RAC的话,可以指定为闪回区并具体到实例alter system set log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST' sid='*'
系统已更改。
SQL> show parameter log_archive_dest_1
NAME TYPE VALUE
----------------------------------------------- ------------------------------
log_archive_dest_1 string location=d:\disk1\offlinelog\ mandatory
SQL> alter system set log_archive_dest_2="location=d:\disk2\offlinelog\ ";
系统已更改。
SQL> show parameter log_archive_dest_2
NAME TYPE VALUE
----------------------------------------------- -----------------------------
log_archive_dest_2 string location=d:\disk2\offlinelog\
SQL> alter system set log_archive_dest_3="location=d:\disk3\offlinelog\ optional";
系统已更改。
SQL> alter system setlog_archive_dest_4="location=d:\disk4\offlinelog\ optional";
系统已更改。
SQL> alter system setlog_archive_dest_5="location=d:\disk5\offlinelog\ mandatory";
系统已更改。
设置归档目录时的几个参数:
optional该目录下的归档日志文件是可选的。mandatory强制性的必须归档,ORACLE默认未指明即是OPTIONAL 。
SQL> showparameter log_archive_dest_
NAME TYPE VALUE
----------------------------------------------- ------------------------------
log_archive_dest_1 string location=d:\disk1\offlinelog\ mandatory
log_archive_dest_2 string location=d:\disk2\offlinelog\
log_archive_dest_3 string location=d:\disk3\offlinelog\ optional
log_archive_dest_4 string location=d:\disk4\offlinelog\ optional
log_archive_dest_5 string location=d:\disk5\offlinelog\ mandatory
log_archive_dest_6 string
SQL> col destination for a30
SQL> select destination,binding,target,status from v$archive_dest;
DESTINATION BINDING TARGET STATUS
------------------------------ ---------------- ---------
d:\disk1\offlinelog\ MANDATORY PRIMARY VALID
d:\disk2\offlinelog\ OPTIONAL PRIMARY VALID 设置参数时未指定OPTIONAL,ORACLE默认即是此参数值。
d:\disk3\offlinelog\ OPTIONAL PRIMARY VALID
d:\disk4\offlinelog\ OPTIONAL PRIMARY VALID
d:\disk5\offlinelog\ MANDATORY PRIMARY VALID
OPTIONAL PRIMARY INACTIVE
OPTIONAL PRIMARY INACTIVE
查询已经产生的归档日志名--系统默认的命令格式
SQL> select name,blocks from v$archived_log;
NAME BLOCKS
------------------------------------------------------------------------------------------
/u01/app/oracle/flash_recovery_area/BYS001/archivelog/2013_06_08/o1_mf_1_12_8v63 762
########################################################################################
3.修改生成的归档日志名格式
初始化参数LOG_ARCHIVE_FORMAT用于指定归档日志的文件名格式,设置该初始化参数时,可以指定以下匹配符:
%s: 日志序列号 %S: 日志序列号(带有前导0) %t: 重做线程编号.%T: 重做线程编号(带有前导0) %a: 活动ID %d: 数据库ID号 %r RESETLOGS的值.
比如arch_%s_%r
注意:
未设置 log_archive_dest_ 参数,只设置LOG_ARCHIVE_FORMAT参数时,生成的归档日志名并不是LOG_ARCHIVE_FORMAT中指定的文件名,而仍是原来的系统命令。
log_archive_format的参数只对log_archive_dest和log_archive_dest_n生效。
SQL> alter system set log_archive_format='arch_%s_%t_%r.arc' scope=both; 因为此参数是静态参数--从报错中也能看出,不能用scope=both;
alter system setlog_archive_format='arch_%s_%t_%r.arc' scope=both
ORA-02095: specified initializationparameter cannot be modified
SQL> alter system set log_archive_format='arch_%s_%t_%r.arc' scope=spfile;
System altered
手动切换日志查看是否生成归档日志
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 d:\disk5\offlinelog\
最早的联机日志序列 33
下一个存档日志序列 37
当前日志序列 37
SQL> alter system switch logfile;
系统已更改。
SQL> host
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator\桌面>dir d:\disk5\offlinelog
驱动器 D 中的卷是新加卷
卷的序列号是 D089-4E9A
d:\disk5\offlinelog 的目录
2013-01-27 16:12 <DIR> .
2013-01-27 16:12 <DIR> ..
2013-01-27 16:12 3,437,568 ARC0000000037_0802131748.0001
1 个文件 3,437,568 字节
2 个目录 475,342,848 可用字节
C:\Documents and Settings\Administrator\桌面>dir d:\disk1\offlinelog
驱动器 D 中的卷是新加卷
卷的序列号是 D089-4E9A
d:\disk1\offlinelog 的目录、
2013-01-27 16:12 <DIR> .
2013-01-27 16:12 <DIR> ..
2013-01-27 16:12 3,437,568ARC0000000037_0802131748.0001
1 个文件 3,437,568 字节
2 个目录 475,342,848 可用字节
注:'arch_%s_%t_%r.arc'格式生成的日志名不应该是上面ARC0000000037_0802131748.0001这种,不过这实验是很久前在WIN下做的。
后来在LINUX下是正常的,如此种格式:/u01/app/oracle/archbys001/arch_14_1_817472254.arc
##########################################################################################
4. log_archive_min_succeed_dest动态参数,限定ORACLE系统必须保证成功的归档日志文件组数的最低要求。
如此此数值小于等于设置归档目录时指定的mandatory的个数,对系统没有影响 。
如果此数值大于mandatory的个数,ORACLE除了保证mandatory选项对应的日志成功外,成功的归档日志文件数至少不能低于这一值。
在我的这个实验中,上面只设置了两个mandatory,现在设置 log_archive_min_succeed_dest为3,则ORACLE会保证最少成功3个归档日志文件。
SQL> show parameterlog_archive_min_succeed_dest
NAME TYPE VALUE
----------------------------------------------- ------------------------------
log_archive_min_succeed_dest integer 1
SQL> alter system setlog_archive_min_succeed_dest = 3;
系统已更改。
SQL> show parameterlog_archive_min_succeed_dest
NAME TYPE VALUE
----------------------------------------------- ------------------------------
log_archive_min_succeed_dest integer 3
#########################################################################################
5.log_archive_dest_state_ 参数为系统维护提供方便,
归档日志物理路径状态被设置为DEFER时,ORACLE不会对这路径进行归档操作。
可以在某一归档日志目录出错时使用此参数,正常后再修改,可以不影响数据库系统的正常运行。
如以后路径状态改为ENABLE,所丢失的归档文件必须手工恢复。
SQL> show parameterlog_archive_dest_state_
NAME TYPE VALUE
----------------------------------------------- ------------------------------
log_archive_dest_state_1 string enable
SQL> select destination,binding,target,status from v$archive_dest;
DESTINATION BINDING TARGET STATUS
------------------------------ ---------------- ---------
d:\disk1\offlinelog\ MANDATORY PRIMARY VALID
d:\disk2\offlinelog\ OPTIONAL PRIMARY VALID
d:\disk3\offlinelog\ OPTIONAL PRIMARY VALID
d:\disk4\offlinelog\ OPTIONAL PRIMARY VALID
d:\disk5\offlinelog\ MANDATORY PRIMARY VALID
OPTIONAL PRIMARY INACTIVE
SQL> alter system set log_archive_dest_state_1 = defer;
系统已更改。
SQL> select destination,binding,target,status from v$archive_dest;
DESTINATION BINDING TARGET STATUS
------------------------------ ---------------- ---------
d:\disk1\offlinelog\ MANDATORY PRIMARY DEFERRED
d:\disk2\offlinelog\ OPTIONAL PRIMARY VALID
d:\disk3\offlinelog\ OPTIONAL PRIMARY VALID
d:\disk4\offlinelog\ OPTIONAL PRIMARY VALID
d:\disk5\offlinelog\ MANDATORY PRIMARY VALID
OPTIONAL PRIMARY INACTIVE
SQL> alter system set log_archive_dest_state_1 = enable;
系统已更改。
SQL> show parameter log_archive_dest_state_1
NAME TYPE VALUE
----------------------------------------------- ------------------------------
log_archive_dest_state_1 string ENABLE
SQL> select destination,binding,target,status from v$archive_dest;
DESTINATION BINDING TARGET STATUS
------------------------------ ---------------- ---------
d:\disk1\offlinelog\ MANDATORY PRIMARY VALID
d:\disk2\offlinelog\ OPTIONAL PRIMARY VALID
d:\disk3\offlinelog\ OPTIONAL PRIMARY VALID
d:\disk4\offlinelog\ OPTIONAL PRIMARY VALID
d:\disk5\offlinelog\ MANDATORY PRIMARY VALID
OPTIONAL PRIMARY INACTIVE