SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- --------------
1 1 14 5144576 1 YES INACTIVE
622580 04-4月 -09
2 1 15 5144576 1 NO CURRENT
643625 10-4月 -09
3 1 13 5144576 1 YES INACTIVE
620895 04-4月 -09
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 E:\oracle\orasjh\archive
最早的联机日志序列 13
下一个存档日志序列 15
当前日志序列 15
SQL> show parameter dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string C:\ORACLE\PRODUCT\10.2.0\ADMIN
\ORASJH\ADUMP
background_dump_dest string C:\ORACLE\PRODUCT\10.2.0\ADMIN
\ORASJH\BDUMP
core_dump_dest string C:\ORACLE\PRODUCT\10.2.0\ADMIN
\ORASJH\CDUMP
db_create_file_dest string
db_create_online_log_dest_1 string
db_create_online_log_dest_2 string
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_online_log_dest_5 string
db_recovery_file_dest string
db_recovery_file_dest_size big integer 0
log_archive_dest string E:\oracle\orasjh\archive
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
log_archive_duplex_dest string
log_archive_min_succeed_dest integer 1
standby_archive_dest string %ORACLE_HOME%\RDBMS
user_dump_dest string C:\ORACLE\PRODUCT\10.2.0\ADMIN
\ORASJH\UDUMP
SQL> alter system set log_archive_dest='E:\oracle\orasjh\archiv';
系统已更改。
--故意少写一个字母e,使这个路径实际上不存在。
SQL> show parameter log_archive_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string E:\oracle\orasjh\archiv
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_2 string
log_archive_dest_3 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_1 string enable
log_archive_dest_state_10 string enable
log_archive_dest_state_2 string enable
log_archive_dest_state_3 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 string enable
SQL> alter system switch logfile;
系统已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> alter system switch logfile;
系统已更改。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- -------- ---------------- ------------- -----------
1 1 17 5144576 1 YES ACTIVE 644547 2009-4-10 9
2 1 18 5144576 1 NO CURRENT 644557 2009-4-10 9
3 1 16 5144576 1 YES ACTIVE 644408 2009-4-10 9
--归档的路径都不存在,既然还能归档,oracle把他归档到哪里去了?
SQL>select name from v$archived_log;
E:\ORACLE\ORASJH\ARCHIVARC00015_0682881273.001
E:\ORACLE\ORASJH\ARCHIVARC00016_0682881273.001
E:\ORACLE\ORASJH\ARCHIVARC00017_0682881273.001
E:\ORACLE\ORASJH\ARCHIVARC00018_0682881273.001
E:\ORACLE\ORASJH\ARCHIVARC00019_0682881273.001
SQL> show parameter log_archive_format;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_format string ARC%S_%R.%T
--归档日志跑到上层目录了,而且归档的命名格式也变了。ARC%S_%R.%T的前面正好是我指定的那个不存在的目录archiv。我在9i下做了同样的实验得到同样的结论。
实验继续:
SQL> alter system set log_archive_dest='h:\oracle\orasjh\archiv';
alter system set log_archive_dest='h:\oracle\orasjh\archiv'
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-16032: 参数 LOG_ARCHIVE_DEST 的目标字符串无法被转换
ORA-09291: sksachk: 为归档目标指定的设备无效
OSD-04018: 无法访问指定的目录或设备。
O/S-Error: (OS 3) 系统找不到指定的路径。
SQL> alter system set log_archive_dest='E:\ora\orasjh\archiv';
alter system set log_archive_dest='E:\ora\orasjh\archiv'
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-16032: 参数 LOG_ARCHIVE_DEST 的目标字符串无法被转换
ORA-09291: sksachk: 为归档目标指定的设备无效
OSD-04018: 无法访问指定的目录或设备。
O/S-Error: (OS 3) 系统找不到指定的路径。
SQL> alter system set log_archive_dest='e:\oracle\ora\archiv';
alter system set log_archive_dest='e:\oracle\ora\archiv'
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-16032: 参数 LOG_ARCHIVE_DEST 的目标字符串无法被转换
ORA-09291: sksachk: 为归档目标指定的设备无效
OSD-04018: 无法访问指定的目录或设备。
O/S-Error: (OS 2) 系统找不到指定的文件。
SQL> alter system set log_archive_dest='h:\oracle\orasjh\1';
alter system set log_archive_dest='h:\oracle\orasjh\1'
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-16032: 参数 LOG_ARCHIVE_DEST 的目标字符串无法被转换
ORA-09291: sksachk: 为归档目标指定的设备无效
OSD-04018: 无法访问指定的目录或设备。
O/S-Error: (OS 3) 系统找不到指定的路径。
SQL> alter system set log_archive_dest='e:\oracle\orasjh\1';
系统已更改。
SQL> alter system set log_archive_dest='e:\oracle\orasjh\2\';
alter system set log_archive_dest='e:\oracle\orasjh\2\'
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-16032: 参数 LOG_ARCHIVE_DEST 的目标字符串无法被转换
ORA-09291: sksachk: 为归档目标指定的设备无效
OSD-04018: 无法访问指定的目录或设备。
O/S-Error: (OS 2) 系统找不到指定的文件。
--只能改最后一层目录。
SQL> alter system set log_archive_dest='e:\oracle\orasjh\archive';
系统已更改。
--最后恢复设置。