归档的路径和名称


涉及到归档路径的参数有:

LOG_ARCHIVE_DEST
LOG_ARCHIVE_DEST_n

在10g中,如果我们没配置这2个参数,还和一个参数有关:

DB_RECOVERY_FILE_DEST

在archive log list中可以看到

sys@ORALOCAL(10.1.26.26)> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     139
Next log sequence to archive   141
Current log sequence           141
sys@ORALOCAL(10.1.26.26)>
 
sys@ORALOCAL(10.1.26.26)> show parameter recover
 
NAME                                 TYPE        VALUE
----------------------------------
-- ----------- ------------------------------
db_recovery_file_dest                string      D:\oracle\product\10.2.0\flash
                                                
_recovery_area
db_recovery_file_dest_size           big integer 2G
recovery_parallelism                 integer     0
sys@ORALOCAL(10.1.26.26)>

归档日志的名称和下面这个参数有关:

LOG_ARCHIVE_FORMAT

但是,上述的参数有的时候,配合还是有问题,我们来一一看看:

【情况一】刚刚安装完数据库,未配置时:

sys@ORALOCAL(10.1.26.26)> show parameter arch
 
NAME                                 TYPE        VALUE
----------------------------------
-- ----------- ------------------------------
log_archive_dest                     string
log_archive_dest_1                   string
log_archive_format                   string      oralocal_%r_%T_%S.arc
 
sys@ORALOCAL(10.1.26.26)>
 
sys@ORALOCAL(10.1.26.26)> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     147
Next log sequence to archive   149
Current log sequence           149
 
sys@ORALOCAL(10.1.26.26)> show parameter DB_RECOVERY_FILE_DEST
 
NAME                                 TYPE        VALUE
----------------------------------
-- ----------- ------------------------------
db_recovery_file_dest                string      D:\oracle\product\10.2.0\flash
                                                
_recovery_area
db_recovery_file_dest_size           big integer 2G
sys@ORALOCAL(10.1.26.26)>

我们看到,此时设置的归档日志格式为oralocal_%r_%T_%S.arc,由于没设置log_archive_dest和log_archive_dest_1,因此归档路径根据DB_RECOVERY_FILE_DEST来。我们切出几个arch之后,去看看生成的归档如何:

sys@ORALOCAL(10.1.26.26)> alter system switch logfile;
 
System altered.
 
Elapsed: 00:00:00.39
sys@ORALOCAL(10.1.26.26)> /
 
System altered.
 
Elapsed: 00:00:00.20
sys@ORALOCAL(10.1.26.26)> /
 
System altered.
 
Elapsed: 00:00:04.14
sys@ORALOCAL(10.1.26.26)> host
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
 
C:\Documents and Settings\hejianmin>cd D:\oracle\product\10.2.0\flash_recovery_area
 
C:\Documents and Settings\hejianmin>d:
 
D:\oracle\product\10.2.0\flash_recovery_area>
D:\oracle\product\10.2.0\flash_recovery_area>
D:\oracle\product\10.2.0\flash_recovery_area>ls
ORALOCAL
 
D:\oracle\product\10.2.0\flash_recovery_area>cd ORALOCAL
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL>ls
ARCHIVELOG
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL>cd ARCHIVELOG
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG>ls
2008_11_14  2008_11_19  2008_11_21  2008_11_27  2008_11_28  2008_12_01  2008_12_03  2008_12_04  2008_12_08  2008_12_23  2008_12_24
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG>cd 2008_12_24
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>ls -l
total 8028
-
rwxrwxrwa   1 Administrators  SYSTEM          3312640 Dec 24 10:28 O1_MF_1_146_4O34101L_.ARC
-
rwxrwxrwa   1 Administrators  SYSTEM           525824 Dec 24 10:45 O1_MF_1_147_4O351JNJ_.ARC
-
rwxrwxrwa   1 Administrators  SYSTEM           195072 Dec 24 11:27 O1_MF_1_148_4O37KH9S_.ARC
-
rwxrwxrwa   1 Administrators  SYSTEM            74240 Dec 24 11:39 O1_MF_1_149_4O386TYD_.ARC
-
rwxrwxrwa   1 Administrators  SYSTEM             1024 Dec 24 11:39 O1_MF_1_150_4O386WF9_.ARC
-
rwxrwxrwa   1 Administrators  SYSTEM             1536 Dec 24 11:39 O1_MF_1_151_4O386ZBD_.ARC
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>

我们看到当没有设置的时候,归档是放在DB_RECOVERY_FILE_DEST/<数据库SID>/ARCHIVELOG/<日期>的路径下,而且路径的归档名称是不按照之前设定的log_archive_format格式。
我们用rman做备份,发现能把目录下的日志全部备份走:

D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>ls
O1_MF_1_146_4O34101L_.ARC  O1_MF_1_148_4O37KH9S_.ARC  O1_MF_1_150_4O386WF9_.ARC
O1_MF_1_147_4O351JNJ_.ARC  O1_MF_1_149_4O386TYD_.ARC  O1_MF_1_151_4O386ZBD_.ARC
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>rman target /
 
Recovery Manager: Release 10.2.0.1.0 - Production on 星期三 1224 10:50:51 2008
 
Copyright (c) 1982, 2005, OracleAll rights reserved.
 
connected to target database: ORALOCAL (DBID=3897889420)
 
RMAN> run{
2> backup archivelog all format 'd:\archbak_%u%p%s.rmn'
3> delete input;
4> }
 
Starting backup at 24-12月-08
current log archived
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=143 devtype=DISK
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=146 recid=125 stamp=674299684
input archive log thread=1 sequence=147 recid=126 stamp=674300722
input archive log thread=1 sequence=148 recid=127 stamp=674303279
input archive log thread=1 sequence=149 recid=128 stamp=674303963
input archive log thread=1 sequence=150 recid=129 stamp=674303964
input archive log thread=1 sequence=151 recid=130 stamp=674303967
input archive log thread=1 sequence=152 recid=131 stamp=674304714
channel ORA_DISK_1: starting piece 1 at 24-12月-08
channel ORA_DISK_1: finished piece 1 at 24-12月-08
piece handle=D:\ARCHBAK_0CK324MV112.RMN tag=TAG20081224T105203 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07
channel ORA_DISK_1: deleting archive log(s)
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_146_4O34101L_.ARC recid=125 stamp=6
74299684
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_147_4O351JNJ_.ARC recid=126 stamp=6
74300722
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_148_4O37KH9S_.ARC recid=127 stamp=6
74303279
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_149_4O386TYD_.ARC recid=128 stamp=6
74303963
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_150_4O386WF9_.ARC recid=129 stamp=6
74303964
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_151_4O386ZBD_.ARC recid=130 stamp=6
74303967
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_152_4O38YBN0_.ARC recid=131 stamp=6
74304714
Finished backup at 24-12月-08
 
RMAN>
 
RMAN> exit
 
 
Recovery Manager complete.
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>ls
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>

【情况二】设置log_archive_dest,但是不设置log_archive_dest_1:

sys@ORALOCAL(10.1.26.26)> show parameter arch
 
NAME                                 TYPE        VALUE
----------------------------------
-- ----------- ------------------------------
log_archive_dest                     string      D:\oracle\product\10.2.0\ARCH_
                                                
TMP\ORALOCAL
log_archive_dest_1                   string
log_archive_format                   string      oralocal_%r_%T_%S.arc
 
sys@ORALOCAL(10.1.26.26)> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     152
Next log sequence to archive   154
Current log sequence           154
sys@ORALOCAL(10.1.26.26)>

在这里,我们看到了在log_archive_dest设置了一个路径,但是通过archive log list看到的还是DB_RECOVERY_FILE_DEST。我们来测试一把arch的切出。

D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>ls -l
total 5980
-rwxrwxrwa   1 Administrators  SYSTEM          2998272 Dec 24 15:38 O1_MF_1_153_4O3P80KG_.ARC
-rwxrwxrwa   1 Administrators  SYSTEM            61440 Dec 24 15:53 O1_MF_1_154_4O3Q2FQB_.ARC
-rwxrwxrwa   1 Administrators  SYSTEM             1024 Dec 24 15:53 O1_MF_1_155_4O3Q2GQB_.ARC
-rwxrwxrwa   1 Administrators  SYSTEM             1024 Dec 24 15:53 O1_MF_1_156_4O3Q2NRS_.ARC
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>cd D:\oracle\product\10.2.0\ARCH_TMP\ORALOCAL
 
D:\oracle\product\10.2.0\ARCH_TMP\ORALOCAL>ls -l
total 5980
-rwxrwxrwa   1 Administrators  SYSTEM          2998272 Dec 24 15:38 ORALOCAL_670498572_001_00153.ARC
-rwxrwxrwa   1 Administrators  SYSTEM            61440 Dec 24 15:53 ORALOCAL_670498572_001_00154.ARC
-rwxrwxrwa   1 Administrators  SYSTEM             1024 Dec 24 15:53 ORALOCAL_670498572_001_00155.ARC
-rwxrwxrwa   1 Administrators  SYSTEM             1024 Dec 24 15:53 ORALOCAL_670498572_001_00156.ARC
 
D:\oracle\product\10.2.0\ARCH_TMP\ORALOCAL>

我们看到分别在log_archive_dest和db_recovery_file_dest 都产生了归档,区别是在db_recovery_file_dest 路径下的归档格式不按照LOG_ARCHIVE_FORMAT,而log_archive_dest下的归档格式符合LOG_ARCHIVE_FORMAT。

我们测试一下备份:

RMAN> run{
2> backup archivelog all format 'd:\aaa_%u%p%s.rmn'
3> delete input;
4> }
 
Starting backup at 24-12月-08
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=140 devtype=DISK
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=153 recid=133 stamp=674318340
input archive log thread=1 sequence=154 recid=135 stamp=674319182
input archive log thread=1 sequence=155 recid=137 stamp=674319183
input archive log thread=1 sequence=156 recid=139 stamp=674319189
input archive log thread=1 sequence=157 recid=141 stamp=674323326
channel ORA_DISK_1: starting piece 1 at 24-12月-08
channel ORA_DISK_1: finished piece 1 at 24-12月-08
piece handle=D:\AAA_0DK32MSO113.RMN tag=TAG20081224T160224 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:13
channel ORA_DISK_1: deleting archive log(s)
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_153_4O3P80KG_.ARC recid=133 stamp=6
74318340
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_154_4O3Q2FQB_.ARC recid=135 stamp=6
74319182
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_155_4O3Q2GQB_.ARC recid=137 stamp=6
74319183
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_156_4O3Q2NRS_.ARC recid=139 stamp=6
74319189
archive log filename=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\O1_MF_1_157_4O3V3T87_.ARC recid=141 stamp=6
74323326
Finished backup at 24-12月-08
 
RMAN>
 
RMAN>

从rman的执行过程中我们看到只备份走了db_recovery_file_dest下的归档,对于log_archive_dest下的归档,都没备份走:

D:\oracle\product\10.2.0\ARCH_TMP\ORALOCAL>ls -l
total 8500
-rwxrwxrwa   1 Administrators  SYSTEM          2998272 Dec 24 15:38 ORALOCAL_670498572_001_00153.ARC
-rwxrwxrwa   1 Administrators  SYSTEM            61440 Dec 24 15:53 ORALOCAL_670498572_001_00154.ARC
-rwxrwxrwa   1 Administrators  SYSTEM             1024 Dec 24 15:53 ORALOCAL_670498572_001_00155.ARC
-rwxrwxrwa   1 Administrators  SYSTEM             1024 Dec 24 15:53 ORALOCAL_670498572_001_00156.ARC
-rwxrwxrwa   1 Administrators  SYSTEM          1290240 Dec 24 17:02 ORALOCAL_670498572_001_00157.ARC
 
D:\oracle\product\10.2.0\ARCH_TMP\ORALOCAL>cd D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORALOCAL\ARCHIVELOG\2008_12_24\
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>ls -l
total 0
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>

【情况三】设置log_archive_dest_1,但是不设置log_archive_dest:

sys@ORALOCAL(10.1.26.26)> show parameter arch
 
NAME                                 TYPE        VALUE
----------------------------------
-- ----------- ------------------------------
log_archive_dest                     string
log_archive_dest_1                   string      LOCATION=D:\oracle\product\10.
                                                
2.0\ARCH_TMP\ORALOCAL
log_archive_format                   string      oralocal_%r_%T_%S.arc
 
sys@ORALOCAL(10.1.26.26)> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            D:\oracle\product\10.2.0\ARCH_TMP\ORALOCAL
Oldest online log sequence     157
Next log sequence to archive   159
Current log sequence           159
sys@ORALOCAL(10.1.26.26)>

我们看到,当设置log_archive_dest_1之后,用archive log list看到的已经是在log_archive_dest_1 上的路径,而不是db_recovery_file_dest上的。

通过几次切换arch,看到只有在log_archive_dest_1上产生了归档,且归档文件的格式是符合log_archive_format ,在DB_RECOVERY_FILE_DEST//ARCHIVELOG/<日期>的路径下没有归档:

sys@ORALOCAL(10.1.26.26)> alter system switch logfile;
 
System altered.
 
Elapsed: 00:00:19.37
sys@ORALOCAL(10.1.26.26)> /
 
System altered.
 
Elapsed: 00:00:00.62
sys@ORALOCAL(10.1.26.26)> /
 
System altered.
 
Elapsed: 00:00:06.60
sys@ORALOCAL(10.1.26.26)> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
 
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>ls -l
total 0
 
D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\ARCHIVELOG\2008_12_24>cd  D:\oracle\product\10.2.0\ARCH_TMP\ORALOCAL
 
D:\oracle\product\10.2.0\ARCH_TMP\ORALOCAL>ls -l
total 1157
-
rwxrwxrwa   1 Administrators  SYSTEM            60928 Dec 24 17:53 ORALOCAL_670498572_001_00159.ARC
-
rwxrwxrwa   1 Administrators  SYSTEM             1024 Dec 24 17:53 ORALOCAL_670498572_001_00160.ARC
-
rwxrwxrwa   1 Administrators  SYSTEM             1536 Dec 24 17:53 ORALOCAL_670498572_001_00161.ARC
-
rwxrwxrwa   1 Administrators  SYSTEM           521216 Dec 24 18:02 ORALOCAL_670498572_001_00162.ARC
-
rwxrwxrwa   1 Administrators  SYSTEM             1024 Dec 24 18:02 ORALOCAL_670498572_001_00163.ARC
-
rwxrwxrwa   1 Administrators  SYSTEM             6656 Dec 24 18:02 ORALOCAL_670498572_001_00164.ARC
 
D:\oracle\product\10.2.0\ARCH_TMP\ORALOCAL>

看到只在log_archive_dest_1路径下产生了归档,且归档的名称是LOG_ARCHIVE_FORMAT的格式。

我们也再测试一下备份:

RMAN> run{
2> backup archivelog all format 'd:\aaa%u%p%s.rmn'
3> delete input;
4> }
 
Starting backup at 24-12月-08
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=159 recid=143 stamp=674326423
input archive log thread=1 sequence=160 recid=144 stamp=674326424
input archive log thread=1 sequence=161 recid=145 stamp=674326430
input archive log thread=1 sequence=162 recid=146 stamp=674326927
input archive log thread=1 sequence=163 recid=147 stamp=674326951
input archive log thread=1 sequence=164 recid=148 stamp=674326959
input archive log thread=1 sequence=165 recid=149 stamp=674328897
input archive log thread=1 sequence=166 recid=150 stamp=674328975
channel ORA_DISK_1: starting piece 1 at 24-12月-08
channel ORA_DISK_1: finished piece 1 at 24-12月-08
piece handle=D:\AAA0EK32SCH114.RMN tag=TAG20081224T173616 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
channel ORA_DISK_1: deleting archive log(s)
archive log filename=D:\ORACLE\PRODUCT\10.2.0\ARCH_TMP\ORALOCAL\ORALOCAL_670498572_001_00159.ARC recid=143 stamp=674326423
archive log filename=D:\ORACLE\PRODUCT\10.2.0\ARCH_TMP\ORALOCAL\ORALOCAL_670498572_001_00160.ARC recid=144 stamp=674326424
archive log filename=D:\ORACLE\PRODUCT\10.2.0\ARCH_TMP\ORALOCAL\ORALOCAL_670498572_001_00161.ARC recid=145 stamp=674326430
archive log filename=D:\ORACLE\PRODUCT\10.2.0\ARCH_TMP\ORALOCAL\ORALOCAL_670498572_001_00162.ARC recid=146 stamp=674326927
archive log filename=D:\ORACLE\PRODUCT\10.2.0\ARCH_TMP\ORALOCAL\ORALOCAL_670498572_001_00163.ARC recid=147 stamp=674326951
archive log filename=D:\ORACLE\PRODUCT\10.2.0\ARCH_TMP\ORALOCAL\ORALOCAL_670498572_001_00164.ARC recid=148 stamp=674326959
archive log filename=D:\ORACLE\PRODUCT\10.2.0\ARCH_TMP\ORALOCAL\ORALOCAL_670498572_001_00165.ARC recid=149 stamp=674328897
archive log filename=D:\ORACLE\PRODUCT\10.2.0\ARCH_TMP\ORALOCAL\ORALOCAL_670498572_001_00166.ARC recid=150 stamp=674328975
Finished backup at 24-12月-08
 
RMAN> exit
 
 
Recovery Manager complete.
 
D:\oracle\product\10.2.0\ARCH_TMP\ORALOCAL>ls -l
total 0

我们看到这个的备份也正常备份走了。

【总结】:

1.未配置LOG_ARCHIVE_DEST和LOG_ARCHIVE_DEST_n,以DB_RECOVERY_FILE_DEST为准,不按照LOG_ARCHIVE_FORMAT格式,生成1份归档,rman备份时候备走。

2.配置LOG_ARCHIVE_DEST,但未配置LOG_ARCHIVE_DEST_n。在DB_RECOVERY_FILE_DEST和LOG_ARCHIVE_DEST各自生成1份归档;在DB_RECOVERY_FILE_DEST下的arch名称不符合规范,在LOG_ARCHIVE_DEST下的arch符合LOG_ARCHIVE_FORMAT;rman只备份走DB_RECOVERY_FILE_DEST,但不备份走LOG_ARCHIVE_DEST下的arch。

3.配置LOG_ARCHIVE_DEST_n,但未配置LOG_ARCHIVE_DEST,以LOG_ARCHIVE_DEST_n为准,生成1份归档,在DB_RECOVERY_FILE_DEST下不产生归档。生成的arch按照LOG_ARCHIVE_FORMAT格式命名。rman备份时候备走LOG_ARCHIVE_DEST_n下的归档。

· 【文章发布信息】发表于: 2008-12-24 @ 21:15:40 · ||分类: Study note

2 条评论 »

  1. yuyu 于 2008-12-25 @ 16:15:30 留言

    越搞越没质量了。。。。

  2. 小荷 于 2008-12-25 @ 23:05:52 留言

    re yuyu:不好意思让你见笑了,刚刚开始从9i转向10g,有些概念性的东西还没搞清。

RSS 为此帖反馈评论 · 反向跟踪 网站

留条评论