프린트 하기

내맘대로긍정이 알려주는

Oracle 23ai 신기능
무료 세미나 발표자료

다운로드 trending_flat

OS환경 : Oracle Linux6.8(64bit)


DB 환경 : Oracle Database 11.2.0.4


방법 : 오라클 sqlplus startup시 로깅 방법

strace -f -o를붙여 sqlplus 실행 후 startup 한다.

1
2
3
4
5
6
세션1
strace --o startup.out sqlplus / as sysdba
SQL> startup
 
세션2 
tail -300f startup.out



로그

strace -f -o startup.out sqlplus / as sysdba 직후 startup.out 파일 로그 1500줄 이상 발생

제일 하단 로그 glogin.sql(SQLPLUS 설정파일) 을 open해서 read 하는것을 확인할수 있음

1
2
3
4
5
6
7
8
19776 open("/orcl/oracle/app/11.2.0/db/sqlplus/admin/glogin.sql", O_RDONLY) = 9
19776 read(9"--\n-- Copyright (c) 1988, 2011, "..., 57344= 553
19776 read(9""57344)                = 0
19776 close(9)                          = 0
19776 write(1"SQL> "8)           = 8
19776 fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(1361), ...}) = 0
19776 mmap(NULL4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -10= 0x7f8676bec000
19776 read(0,


startup 명령어를 입력 한뒤 startup.out 파일 로그 463232줄 이상 발생(startup 한 세션 exit 안하면 계속발생)

로그파일 용량도 초당 1M 이상씩 빠르게 증가함


startup nomount 후 제일 마지막 10줄(마지막에 나오는 Redo Buffers 값인 2392064 로 검색함)

1
2
3
4
5
6
7
8
9
10
25513 write(1"Total System Global Area  830930"..., 42= 42
25513 write(1"Fixed Size\t\t    2257800 bytes\n"30= 30
25513 write(1"Variable Size\t\t  562039928 bytes"..., 33= 33
25513 write(1"Database Buffers\t  264241152 byt"..., 35= 35
25513 write(1"Redo Buffers\t\t    2392064 bytes\n"32= 32
25513 write(1"SQL> "8)           = 8
25513 read(0,  <unfinished ...>
25712 <... write resumed> )             = 324
25712 read(9,  <unfinished ...>
25624 <... poll resumed> )              = 0 (Timeout)


alter database mount 후 제일 마지막 10줄(마지막에 나오는 Database altered 로 검색함)

1
2
3
4
5
6
7
8
9
10
25712 <... write resumed> )             = 181
25513 write(1"\n"1 <unfinished ...>
25712 read(9,  <unfinished ...>
25513 <... write resumed> )             = 1
25513 lseek(33072, SEEK_SET)          = 3072
25513 read(3"\22\0A\0\0\0t\0B\0\0\0\212\0C\0\0\0\240\0D\0\0\0\261\0E\0\0\0\302\0"..., 512= 512
25513 write(1"Database altered."17= 17
25513 write(1"\n"1)                 = 1
25513 write(1"\n"1)                 = 1
25513 lseek(412288, SEEK_SET)         = 12288


alter database open 후 제일 마지막 10줄(마지막에 나오는 Database altered 로 검색함)

1
2
3
4
5
6
7
8
9
10
28795 <... read resumed> "\22\0A\0\0\0t\0B\0\0\0\212\0C\0\0\0\240\0D\0\0\0\261\0E\0\0\0\302\0"..., 512= 512
28886 <... times resumed> {tms_utime=45, tms_stime=21, tms_cutime=0, tms_cstime=0}) = 628051551
28795 brk(0x1b3e000 <unfinished ...>
28886 times( <unfinished ...>
28795 <... brk resumed> )               = 0x1b3e000
28886 <... times resumed> {tms_utime=45, tms_stime=21, tms_cutime=0, tms_cstime=0}) = 628051551
28795 write(1"Database altered."17 <unfinished ...>
28886 times( <unfinished ...>
28795 <... write resumed> )             = 17
28886 <... times resumed> {tms_utime=45, tms_stime=21, tms_cutime=0, tms_cstime=0}) = 628051551



+

저렇게 strace 명령으로 startup.out 을 키고 sqlplus 에서 startup 을 한 뒤 

sqlplus 를 빠져나가려고해도 바로 안빠져나가진다.

1
2
3
4
5
6
7
8
SQL> alter database open;
 
Database altered.
 
ORCL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters and Data Mining options
-- 이상태로 행걸려서 나가지지 않음


Ctrl+D, C로도 안나가져서 Ctrl+Z로 나간뒤 해당 계정(세션)도 완전히 나간뒤 다시 접속해야 db가 제대로 올라간다.

해당계정을 완전히 빠져나가지 않고 다시 sqlplus / as sysdba로 접속한뒤 startup 을 입력하면 아래와 같이 에러가 발생한다. 

nomount 상태로도 올라가지 않음 (ORA-00304: requested INSTANCE_NUMBER is busy)

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.4.0 Production on Fri Dec 14 10:46:19 2018
 
Copyright (c) 19822013, Oracle.  All rights reserved.
 
Connected to an idle instance.
 
SQL> startup nomount
ORA-00304: requested INSTANCE_NUMBER is busy
 
SQL> exit
SQL> Disconnected



참조 : 




'ORACLE > Admin' 카테고리의 다른 글

오라클 Primary Keys 설정  (0) 2018.12.12
오라클 create table 구문 옵션별 설명  (0) 2018.12.12
오라클 클러스터란?  (0) 2018.12.11
Oracle Database 18c Technical Architecture  (5) 2018.12.10
deadlock 발생 테스트 ORA-00060  (0) 2018.12.06