프린트 하기

OS환경 : Oracle Linux 6.8 (64bit)


DB 환경 : Oracle Database 12.2.0.1


에러 : ORA-01308: dictionary directory is not set

로그마이너를 사용하기 위해 exec dbms_logmnr_d.build 사용하던 중 에러 발생

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SQL> exec dbms_logmnr_d.build ('dict','/home/oracle/logmnr');
BEGIN dbms_logmnr_d.build ('dict','/home/oracle/logmnr'); END;
 
*
ERROR at line 1:
ORA-01308: dictionary directory is not set
ORA-06512: at "SYS.DBMS_LOGMNR_INTERNAL", line 7750
ORA-06512: at "SYS.DBMS_LOGMNR_INTERNAL", line 7406
ORA-06512: at "SYS.DBMS_LOGMNR_INTERNAL", line 7305
ORA-06512: at "SYS.DBMS_LOGMNR_INTERNAL", line 7698
ORA-06512: at "SYS.DBMS_LOGMNR_INTERNAL", line 7764
ORA-06512: at "SYS.DBMS_LOGMNR_INTERNAL", line 7912
ORA-06512: at "SYS.DBMS_LOGMNR_D", line 12
ORA-06512: at line 1


디렉토리가 없다고 해서 해당 파라미터 및 물리 경로 확인

1
2
3
4
5
SQL> show parameter utl_file_dir
 
NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir                 string     /home/oracle/logmnr

존재함


1
2
3
4
$ ls -al /home/oracle/logmnr
total 4
drwxr-xr-x   2 oracle dba    6 Feb 15 12:35 .
drwxr-xr-x. 13 oracle dba 4096 Feb 15 12:35 ..

존재함



해결 방법 : create directory 명령어로 directory를 만들어서 사용

디렉토리 생성

1
2
3
SQL> create directory dict as '/home/oracle/logmnr';
 
Directory created.


새로운 방법으로 DBMS_LOGMNR_D.build 사용

1
2
3
4
5
6
7
8
9
SQL>
BEGIN 
       SYS.DBMS_LOGMNR_D.build ( 
       dictionary_filename => 'logmnrdict.ora'
       dictionary_location => 'DICT'); <-디렉토리 이름 대문자로 입력
END;
/
 
PL/SQL procedure successfully completed.


디렉토리 파일 생성 확인

1
2
3
4
5
$ ls -al /home/oracle/logmnr
total 39256
drwxr-xr-x   2 oracle dba       27 Feb 15 12:59 .
drwxr-xr-x. 13 oracle dba     4096 Feb 15 12:58 ..
-rw-r--r--   1 oracle dba 40192885 Feb 15 12:55 logmnrdict.ora



원인 : Oracle 12R2부터는 UTL_FILE_DIR 파리미터가 사용되지 않음

UTL_FILE_DIR 초기화 매개 변수는 디렉토리 위치를 지정할때 사용되는 파라미터이지만 

Oracle 12R2부터는 UTL_FILE_DIR 파리미터가 사용되지 않음 

이버전과의 호환성을 위해 계속 지원되지만 대신 디렉토리를 사용할 것을 권장함




참조 : (문서 ID 2277747.1)

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/arpls/UTL_FILE.html#GUID-46843148-6037-4881-A784-F5B93D5F5A21