如何查看修改oracle归档日志路径

69次阅读
没有评论

共计 7096 个字符,预计需要花费 18 分钟才能阅读完成。

这篇文章将为大家详细讲解有关如何查看修改 oracle 归档日志路径,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1. 修改归档日志的格式

默认格式是:“%t_%s_%r.dbf”,我们尝试将格式修改为“%t_%s_%r.arch”,这是一个静态参数,需要重新启动数据库才生效。
SQL show parameter log_archive_format

NAME     TYPE VALUE
———————————— ———– ——————————
log_archive_format     string %t_%s_%r.dbf
SQL alter system set log_archive_format= %t_%s_%r.arch scope=spfile;

System altered

2. 修改修改归档日志的位置
1)使用“archive log list”命令查看一下默认情况下归档日志存放的位置
SQL archive log list
Database log mode       Archive Mode
Automatic archival       Enabled
Archive destination       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     1
Next log sequence to archive   2
Current log sequence       2

2)上面结果提到 USE_DB_RECOVERY_FILE_DEST 这个 Archive destination,其实我们可以去掉“USE_”使用“DB_RECOVERY_FILE_DEST”得到数据库中的参数详解。
SQL show parameter db_recovery_file_dest

NAME     TYPE VALUE
———————————— ———– ——————————
db_recovery_file_dest     string /u01/app/oracle/fast_recovery_
area
db_recovery_file_dest_size     big integer 4182M

3)将 db_recovery_file_dest 参数置空
SQL alter system set db_recovery_file_dest = scope=spfile;
System altered.

4)以防万一,将 log_archive_dest 参数也置空
SQL alter system set log_archive_dest = scope=spfile;
System altered.

5)我们这里采用的生效参数是 log_archive_dest_1,修改方法如下。请注意语法
alter system set log_archive_dest_1 = location=/oradata/arch/ora10g scope=spfile;
alter system set log_archive_dest_1= LOCATION=/oradata/arch/archivelogvalid_for=(all_logfiles,all_roles) db_unique_name=ocrl scope=spfile;

6)重新启动数据库,使上述所有修改的参数生效。
sys@ora10g shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@ora10g  
sys@ora10g startup;
ORACLE instance started.

Total System Global Area 2.1475E+10 bytes
Fixed Size                  2111160 bytes
Variable Size            2399144264 bytes
Database Buffers         1.9059E+10 bytes
Redo Buffers               14663680 bytes
Database mounted.
Database opened.

7)确认修改成功
(1)第一种确认方法:使用“archive log list”命令关注“Archive destination”信息
sys@ora10g archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /oracle/arch/ora10g
Oldest online log sequence     121
Next log sequence to archive   123
Current log sequence           123

(2)第二种确认方法:手工归档一下,通过 v$archived_log 视图确认
sys@ora10g alter system switch logfile;

System altered.

sys@ora10g col NAME for a40
sys@ora10g alter session set nls_date_format = yyyy-mm-dd hh34:mi:ss

Session altered.

sys@ora10g select recid, name, first_time from v$archived_log;

     RECID NAME                                     FIRST_TIME
———- —————————————- ——————-
         1                                          2009-06-06 01:38:39
         2                                          2009-06-06 05:50:32
… 这省略之前的归档日志信息 …
       132 /oracle/arch/ora10g/1_123_688786498.arch 2009-09-20 11:26:26

8)上面的修改过程,也可以通过直接修改 pfile 文件达到目的
列一下修改之后的关键参数内容:
$ cat $ORACLE_HOME/dbs/initora10g.ora
这里省略不关心的其他参数
*.log_archive_format= %t_%s_%r.arch
*.db_recovery_file_dest=
*.log_archive_dest=
*.log_archive_dest_1= location=/oracle/arch/ora10g

3. 修改流程介绍完毕,我们再一起讨论一些有趣的现象。
1)有趣现象一:使用 log_archive_dest 参数,不使用上面提到的 log_archive_dest_1 参数一样可以达到修改归档路径的目的
精简式列一下这个修改流程:
(1)修改归档文件格式
alter system set log_archive_format= %t_%s_%r.arch scope=spfile; 
(2)将 db_recovery_file_dest 置空
alter system set db_recovery_file_dest = scope=spfile;
(3)将 log_archive_dest_1 置空
alter system set log_archive_dest_1 = scope=spfile;
(4)启用 log_archive_dest 参数
alter system set log_archive_dest = /oracle/arch/ora10g scope=spfile;
(5)重启数据库使上面的所有参数生效
shutdown immediate;
startup;
(6)当然,上面的过程一样可以通过修改 pfile 的方法来完成
修改后的 pfile 关键参数内容如下:
*.log_archive_format= %t_%s_%r.arch
*.db_recovery_file_dest=
*.log_archive_dest= /oracle/arch/ora10g
*.log_archive_dest_1=

上面的方法一样可以达到修改归档路径的目的,不过不推荐使用 log_archive_dest 这个参数,在 10g 中,建议您使用 log_archive_dest_n 参数完成修改。

2)有趣现象二:如果 db_recovery_file_dest 和 log_archive_dest 两个参数同时设置,会在这两个目录中同时产生归档日志
(1)修改 pfile,实验可以使用如下参数进行
*.log_archive_format= %t_%s_%r.arch
*.db_recovery_file_dest= /oracle/app/oracle/flash_recovery_area
*.log_archive_dest= /oracle/arch/ora10g
*.log_archive_dest_1=

(2)使用 pfile 重新启动数据库
sys@ora10g shutdown immediate;
sys@ora10g startup pfile = /oracle/app/oracle/product/10.2.0/db_1/dbs/initora10g.ora

(3)“有趣”现象出现了
sys@ora10g alter system switch logfile;
sys@ora10g alter system switch logfile;
sys@ora10g col NAME for a40
sys@ora10g alter session set nls_date_format = yyyy-mm-dd hh34:mi:ss
sys@ora10g select recid, name, first_time from v$archived_log;

     RECID NAME                                     FIRST_TIME
———- —————————————- ——————-
       137 /oracle/arch/ora10g/1_128_688786498.arch 2009-09-20 12:09:29
       138 /oracle/arch/ora10g/1_129_688786498.arch 2009-09-20 12:09:29
       139 /oracle/arch/ora10g/1_130_688786498.arch 2009-09-20 12:09:30
       140 /oracle/app/oracle/flash_recovery_area/O 2009-09-20 12:09:30
           RA10G/archivelog/2009_09_20/o1_mf_1_130_
           5ccccmw6_.arc

       141 /oracle/arch/ora10g/1_131_688786498.arch 2009-09-20 12:20:03
       142 /oracle/app/oracle/flash_recovery_area/O 2009-09-20 12:20:03
           RA10G/archivelog/2009_09_20/o1_mf_1_131_
           5cccd5kt_.arc

(4)结论
两个目录都会生成归档日志,内容是一样的;
/oracle/app/oracle/flash_recovery_area 目录下生成的归档文件的格式没有受 log_archive_format 参数影响,也就是说:log_archive_format 的参数只对 log_archive_dest 和 log_archive_dest_n 生效。

3)有趣现象三:db_recovery_file_dest 和 log_archive_dest_n 同时设置时,只有 log_archive_dest_n 的目录产生日志
(1)修改 pfile,实验可以使用如下参数进行
*.log_archive_format= %t_%s_%r.arch
*.db_recovery_file_dest= /oracle/app/oracle/flash_recovery_area
*.log_archive_dest=
*.log_archive_dest_1= location=/oracle/arch/ora10g

(2)使用 pfile 重新启动数据库
sys@ora10g shutdown immediate;
sys@ora10g startup pfile = /oracle/app/oracle/product/10.2.0/db_1/dbs/initora10g.ora

(3)实验结果如下
sys@ora10g alter system switch logfile;
sys@ora10g alter system switch logfile;
sys@ora10g col NAME for a40
sys@ora10g alter session set nls_date_format = yyyy-mm-dd hh34:mi:ss
sys@ora10g select recid, name, first_time from v$archived_log;

     RECID NAME                                     FIRST_TIME
———- —————————————- ——————-
       138 /oracle/arch/ora10g/1_129_688786498.arch 2009-09-20 12:09:29
       139 /oracle/arch/ora10g/1_130_688786498.arch 2009-09-20 12:09:30
       140 /oracle/app/oracle/flash_recovery_area/O 2009-09-20 12:09:30
           RA10G/archivelog/2009_09_20/o1_mf_1_130_
           5ccccmw6_.arc

       141 /oracle/arch/ora10g/1_131_688786498.arch 2009-09-20 12:20:03
       142 /oracle/app/oracle/flash_recovery_area/O 2009-09-20 12:20:03
           RA10G/archivelog/2009_09_20/o1_mf_1_131_
           5cccd5kt_.arc

       143 /oracle/arch/ora10g/1_132_688786498.arch 2009-09-20 12:20:21
       144 /oracle/arch/ora10g/1_133_688786498.arch 2009-09-20 12:32:58

(4)结论
比照“有趣现象二”的结论,看到这里只有 log_archive_dest_1 参数设置的归档路径生效了。

3)有趣现象四:log_archive_dest 和 log_archive_dest_1 参数不能同时设置
(1)修改 pfile,实验可以使用如下参数进行,db_recovery_file_dest 参数设置与否都不会影响我们的实验结果
*.log_archive_format= %t_%s_%r.arch
*.db_recovery_file_dest= /oracle/app/oracle/flash_recovery_area
*.log_archive_dest= /oracle/arch/ora10g
*.log_archive_dest_1= location=/oracle/arch/ora10g

(2)使用 pfile 重新启动数据库时就会报错,不能这样进行设置
sys@ora10g shutdown immediate;
sys@ora10g startup pfile = /oracle/app/oracle/product/10.2.0/db_1/dbs/initora10g.ora
ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST

(4)结论
log_archive_dest 和 log_archive_dest_1 参数不能同时设置,即如果启用了 log_archive_dest_1 参数就不能再使用 log_archive_dest 参数重复设置了。
通过这个实验,可以得到一个结论:log_archive_dest 这个参数只是为了向后兼容而存在的,因此在 9i 之后的版本 Oracle 中如果需要修改归档文件生成路径的话,还是建议您使用 log_archive_dest_n 参数。

关于“如何查看修改 oracle 归档日志路径”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计7096字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)