读书人

开启存档模式及其相关参数

发布时间: 2013-10-28 11:21:45 作者: rapoo

开启归档模式及其相关参数

涉及以下几个参数: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


读书人网 >其他数据库

热点推荐