log_archive_format 的错误设置导致无法归档
=====================================
log_archive_format 其作用是用于控制归档文件的命名规则。
基于此,oracle 提供变量来灵活命名的使用。 同时随着oracle
的版本的变化,变量也有相应的变化。
------
NOTE:如果对这变量使用不正确,将导致数据库无法归档。
-------
例如在oracle 9i 中没有 %r 这个变量,是在 10g 中新增的。
如果你在 9i 中 log_archive_format 中设置了这个参数的
话,数据库在归档的时候将不能识别这个参数,从而导致归档
失败。
(在数据库启动时,没有对这个参数的合法性进行检查,只有
当进行归档是进行检查,所用设置这个参数时,一定要参考
相应oracle的版本指导手册设置)
=====================================
对此我做如下的测试:
测试环境:
OS -> windows
DB --- > oracle 9.2.0.1
--------------------------------------------------------
归档信息
SQL> archive log list ;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination D:\oracle\archive\2
Oldest online log sequence 27
Next log sequence to archive 30
Current log sequence 31
归档相关参数设置
NAME VALUE
------------------------------ -----------------------------
log_archive_start TRUE
log_archive_dest_1 location=D:\oracle\archive\1
log_archive_dest_2 location=D:\oracle\archive\2
log_archive_format archive_%t_%s.arc ------------> 现在设置为正确设置,归档能成功进行。
SQL> archive log list ;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination D:\oracle\archive\2
Oldest online log sequence 29
Next log sequence to archive 33
Current log sequence 33
SQL>
SQL> alter system switch logfile ; -------------> 切换日志,归档。归档成功。
System altered.
SQL> archive log list ;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination D:\oracle\archive\2
Oldest online log sequence 30
Next log sequence to archive 34
Current log sequence 34
SQL>
改变参数 log_archive_format
SQL> alter system set log_archive_format='archive_%t_%s_%r.arc' scope=spfile ; -----> 修改此参数,不会进行合法性的检查。
System altered.
SQL> shutdown immediate ;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup ----------->启动时也不对其进行合法性的检查。
ORACLE instance started.
Total System Global Area 160504432 bytes
Fixed Size 453232 bytes
Variable Size 109051904 bytes
Database Buffers 50331648 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL>
SQL> alter system switch logfile ; -----------> 切换日志,以备归档
System altered.
SQL> alter system archive log all ; ------------> 手动归档 。(归档失败)
---------------------------------
alter.log 中的错误信息如下:
--------------------------------
Thu Aug 04 16:22:34 2011
Errors in file d:\oracle\admin\orcl_nt\bdump\orclnt_arc2_3132.trc
ORA-00294: invalid archivelog format specifier 'r'
Thu Aug 04 16:22:44 2011
ARCH: Evaluating archive log 3 thread 1 sequence 34
ARCH: Unable to archive log 3 thread 1 sequence 34
Log actively being archived by another process
Thu Aug 04 16:23:10 2011
===========================================================
log_archive_format 其作用是用于控制归档文件的命名规则。
基于此,oracle 提供变量来灵活命名的使用。 同时随着oracle
的版本的变化,变量也有相应的变化。
------
NOTE:如果对这变量使用不正确,将导致数据库无法归档。
-------
例如在oracle 9i 中没有 %r 这个变量,是在 10g 中新增的。
如果你在 9i 中 log_archive_format 中设置了这个参数的
话,数据库在归档的时候将不能识别这个参数,从而导致归档
失败。
(在数据库启动时,没有对这个参数的合法性进行检查,只有
当进行归档是进行检查,所用设置这个参数时,一定要参考
相应oracle的版本指导手册设置)
=====================================
对此我做如下的测试:
测试环境:
OS -> windows
DB --- > oracle 9.2.0.1
--------------------------------------------------------
归档信息
SQL> archive log list ;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination D:\oracle\archive\2
Oldest online log sequence 27
Next log sequence to archive 30
Current log sequence 31
归档相关参数设置
NAME VALUE
------------------------------ -----------------------------
log_archive_start TRUE
log_archive_dest_1 location=D:\oracle\archive\1
log_archive_dest_2 location=D:\oracle\archive\2
log_archive_format archive_%t_%s.arc ------------> 现在设置为正确设置,归档能成功进行。
SQL> archive log list ;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination D:\oracle\archive\2
Oldest online log sequence 29
Next log sequence to archive 33
Current log sequence 33
SQL>
SQL> alter system switch logfile ; -------------> 切换日志,归档。归档成功。
System altered.
SQL> archive log list ;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination D:\oracle\archive\2
Oldest online log sequence 30
Next log sequence to archive 34
Current log sequence 34
SQL>
改变参数 log_archive_format
SQL> alter system set log_archive_format='archive_%t_%s_%r.arc' scope=spfile ; -----> 修改此参数,不会进行合法性的检查。
System altered.
SQL> shutdown immediate ;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup ----------->启动时也不对其进行合法性的检查。
ORACLE instance started.
Total System Global Area 160504432 bytes
Fixed Size 453232 bytes
Variable Size 109051904 bytes
Database Buffers 50331648 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL>
SQL> alter system switch logfile ; -----------> 切换日志,以备归档
System altered.
SQL> alter system archive log all ; ------------> 手动归档 。(归档失败)
---------------------------------
alter.log 中的错误信息如下:
--------------------------------
Thu Aug 04 16:22:34 2011
Errors in file d:\oracle\admin\orcl_nt\bdump\orclnt_arc2_3132.trc

Thu Aug 04 16:22:44 2011
ARCH: Evaluating archive log 3 thread 1 sequence 34
ARCH: Unable to archive log 3 thread 1 sequence 34
Log actively being archived by another process
Thu Aug 04 16:23:10 2011
===========================================================
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25380220/viewspace-704122/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25380220/viewspace-704122/