프린트 하기

OS환경 : Oracle Linux 7.5 (64bit)


DB 환경 : Oracle Database 19.3.0.0


방법 : 오라클 19c $ORACLE_HOME/dbs 디렉토리의 hc_{SID}.dat 파일과 lk{SID} 파일

$ORACLE_HOME/dbs 경로로 이동 후 확인

1
2
3
4
5
6
7
8
9
10
11
$ cd $ORACLE_HOME/dbs
$ ls -al
total 28
drwxr-xr-x  2 oracle dba  114 Jul  4 21:45 .
drwxr-xr-70 oracle dba 4096 Jul  3 11:29 ..
-rw-rw----  1 oracle dba 1544 Jul  4 21:45 hc_orcl.dat
-rw-r--r--  1 oracle dba 3079 May 14  2015 init.ora
-rw-r--r--  1 oracle dba 1037 Jul  4 09:12 initorcl.ora
-rw-r-----  1 oracle dba   24 Jul  4 21:45 lkORCL
-rw-r-----  1 oracle dba 2048 Jul  3 11:50 orapworcl
-rw-r-----  1 oracle dba 3584 Jul  4 21:45 spfileorcl.ora



hc_orcl.dat 파일

인스턴스 상태 점검 모니터링을 위해 $ORACLE_HOME/dbs/hc_<ORACLE_SID>.dat가 작성됨
여기에는 인스턴스 상태를 모니터링하고 인스턴스가 시작되지 않은 경우 다운 된 이유를 확인하는 데 사용되는 정보가 포함되어 있음



lkORCL 파일

Oracle DB 기동 시 shared memory를 잠그는데 사용됨



두개 파일 모두 삭제 후 DB 기동 시 다시 생성됨

DB 중지 상태

1
2
$ ps -ef | grep pmon
oracle   18741  9106  0 23:58 pts/0    00:00:00 grep --color=auto pmon



hc_orcl.dat, lkORCL 파일 삭제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ cd $ORACLE_HOME/dbs
$ ls -al
total 28
drwxr-xr-x  2 oracle dba  114 Jul  4 21:45 .
drwxr-xr-70 oracle dba 4096 Jul  3 11:29 ..
-rw-rw----  1 oracle dba 1544 Jul  4 21:45 hc_orcl.dat
-rw-r--r--  1 oracle dba 3079 May 14  2015 init.ora
-rw-r--r--  1 oracle dba 1037 Jul  4 09:12 initorcl.ora
-rw-r-----  1 oracle dba   24 Jul  4 21:45 lkORCL
-rw-r-----  1 oracle dba 2048 Jul  3 11:50 orapworcl
-rw-r-----  1 oracle dba 3584 Jul  4 21:45 spfileorcl.ora
$ rm -rf hc_orcl.dat  lkORCL
$ ls -al
total 20
drwxr-xr-x  2 oracle dba   81 Jul  4 23:59 .
drwxr-xr-70 oracle dba 4096 Jul  3 11:29 ..
-rw-r--r--  1 oracle dba 3079 May 14  2015 init.ora
-rw-r--r--  1 oracle dba 1037 Jul  4 09:12 initorcl.ora
-rw-r-----  1 oracle dba 2048 Jul  3 11:50 orapworcl
-rw-r-----  1 oracle dba 3584 Jul  4 21:45 spfileorcl.ora



DB nomount 로 기동

1
2
3
4
5
6
7
8
SQL> startup nomount
ORACLE instance started.
 
Total System Global Area 1677718256 bytes
Fixed Size            8897264 bytes
Variable Size          536870912 bytes
Database Buffers     1124073472 bytes
Redo Buffers            7876608 bytes



기동 중 파일 확인

1
2
3
4
5
6
7
8
9
10
$ ls -al
total 24
drwxr-xr-x  2 oracle dba  118 Jul  5 00:00 .
drwxr-xr-70 oracle dba 4096 Jul  3 11:29 ..
-rw-rw----  1 oracle dba 1544 Jul  5 00:00 hc_orcl.dat
-rw-r--r--  1 oracle dba 3079 May 14  2015 init.ora
-rw-r--r--  1 oracle dba 1037 Jul  4 09:12 initorcl.ora
-rw-r-----  1 oracle dba    0 Jul  5 00:00 lkinstorcl
-rw-r-----  1 oracle dba 2048 Jul  3 11:50 orapworcl
-rw-r-----  1 oracle dba 3584 Jul  4 21:45 spfileorcl.ora

lkORCL이 아닌 lkinstorcl 파일이 잠깐 생겼다가 사라짐



nomount 기동 후 파일 확인

1
2
3
4
5
6
7
8
9
$ ls -al
total 24
drwxr-xr-x  2 oracle dba  100 Jul  5 00:00 .
drwxr-xr-70 oracle dba 4096 Jul  3 11:29 ..
-rw-rw----  1 oracle dba 1544 Jul  5 00:00 hc_orcl.dat
-rw-r--r--  1 oracle dba 3079 May 14  2015 init.ora
-rw-r--r--  1 oracle dba 1037 Jul  4 09:12 initorcl.ora
-rw-r-----  1 oracle dba 2048 Jul  3 11:50 orapworcl
-rw-r-----  1 oracle dba 3584 Jul  5 00:00 spfileorcl.ora

hc_orcl.dat 파일만 생김



마운트 상태로 변경

1
2
3
SQL> alter database mount;
 
Database altered.



파일 확인

1
2
3
4
5
6
7
8
9
10
$ ls -al
total 28
drwxr-xr-x  2 oracle dba  114 Jul  5 00:01 .
drwxr-xr-70 oracle dba 4096 Jul  3 11:29 ..
-rw-rw----  1 oracle dba 1544 Jul  5 00:01 hc_orcl.dat
-rw-r--r--  1 oracle dba 3079 May 14  2015 init.ora
-rw-r--r--  1 oracle dba 1037 Jul  4 09:12 initorcl.ora
-rw-r-----  1 oracle dba   24 Jul  5 00:01 lkORCL
-rw-r-----  1 oracle dba 2048 Jul  3 11:50 orapworcl
-rw-r-----  1 oracle dba 3584 Jul  5 00:01 spfileorcl.ora

lkORCL 파일도 생성됨



strings 명령으로 파일 내용 확인

1
2
3
4
5
$ strings hc_orcl.dat 
DO NOT DELETE OR OVERWRITE THIS FILE!!!
orcl
$ strings lkORCL 
DO NOT DELETE THIS FILE!

두 파일 모두 삭제하지 말라고 되어있음



db 중지 상태에서는 삭제해도 되지만 기동중에는 삭제하지 않는 것을 권장함

11.2 버전 이하에서 db 운영중 hc_orcl.dat 파일 삭제 시 ORA-7445가 발생한다고함

하지만 그 이후 버전에서는 운영중 hc_orcl.dat 파일을 삭제해도 재기동시 다시 생성된다고 설명하고 있음



참조 : Doc. 390474.1, Doc. 1505155.1

http://www.dba-oracle.com/t_hc_orcl_dat_file.htm

http://www.dba-oracle.com/t_ora_01102_cannot_mount_database_in_exclusive_mode.htm