In Oracle 12.2 an archive log directory is accepted, if top level directory does not exist:
oracle@localhost:/u01/app/oracle/product/12.2.0/dbhome_1/dbs/ [DMK] ls -l /u02/oradata/DMK/ total 2267920 drwxr-xr-x. 2 oracle dba 96 Dec 6 05:36 arch ...
Now database accepts this non existing archivelog destination:
SQL> alter system set log_archive_dest_3='LOCATION=/u02/oradata/DMK/arch/arch2';
System altered.
But not this:
SQL> alter system set log_archive_dest_4='LOCATION=/u02/oradata/DMK/arch/arch2/arch4'; alter system set log_archive_dest_4='LOCATION=/u02/oradata/DMK/arch/arch2/arch4' * ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-16032: parameter LOG_ARCHIVE_DEST_4 destination string cannot be translated ORA-07286: sksagdi: cannot obtain device information. Linux-x86_64 Error: 2: No such file or directory
Log file format is set as following:
SQL> show parameter log_archive_format;
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_format string %t_%s_%r.dbf SQL>
Now let’s see how archive log files look like in log_archive_dest_3:
oracle@localhost:/u01/app/oracle/product/12.2.0/dbhome_1/dbs/ [DMK] ls -l /u02/oradata/DMK/arch/arch2* -rw-r-----. 1 oracle dba 3845120 Dec 6 05:36 /u02/oradata/DMK/arch/arch21_5_960106002.dbf
So Oracle just adds the non existing top level directory to beginning of archivelog filename.
Cet article Naming of archivelog files with non existing top level archivelog directory est apparu en premier sur Blog dbi services.