天天看点

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

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