Oracle 시작 과정 내부 초기 화 심층 분석

1 Oracle 시작 옵션;
Oracle 데이터베이스 가 startup 에서 시 작 될 때 Oracle 은 기본 위치 $ORACLEHOME / dbs 에서 초기 화 된 매개 변수 파일 찾기;Oracle 은 다음 순서 로 초기 화 파일 을 찾 습 니 다.
Spfile$ORACLE_SID.ora
Spfile.ora
Init$ORACLE_SID.ora
Oacle 데이터 베 이 스 를 몇 가지 방식 으로 시작 할 수 있 습 니 다. 서로 다른 방식 으로 시작 하면 데이터 베 이 스 를 시작 하 는 정도 에 영향 을 줄 수 있 습 니 다. 시작 상 태 는 nomount (데이터 베 이 스 를 불 러 오지 않 음) - > mount (데이터 베 이 스 를 불 러 오기 완료) - > open (데이터 베 이 스 를 엽 니 다)
1.1 STARTUP NOMOUNT;
SQL> startup nomount
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size		    2253664 bytes
Variable Size		 1375734944 bytes
Database Buffers	  218103808 bytes
Redo Buffers		    7319552 bytes

Oracle 은 매개 변수 파일 을 읽 고 인 스 턴 스 를 열 어 Oracle 배경 프로 세 스 를 시작 하여 Oracle 에 SGA 를 할당 합 니 다.이 때 데이터베이스 상 태 는 불 러 오지 않 았 습 니 다.
1.2 ALTER DATABASE MOUNT;
SQL> alter database mount;

Database altered.

Oracle 은 제어 파일 을 열 고 읽 으 며 데이터 파일 을 가 져 오고 로그 파일 의 이름과 위 치 를 다시 만 듭 니 다.이 때 데이터 베 이 스 를 불 러 옵 니 다.
1.3 ALTER DATABASE OPEN;
SQL> alter database open;

Database altered.

Oracle 은 데이터 파일 을 열 고 로그 파일 을 다시 만 듭 니 다. 이로써 Oracle 은 대외 적 으로 서 비 스 를 제공 할 수 있 습 니 다.
2 10046 사건 을 통 해 내부 시작 과정 보기
SQL> startup nomount;

Total System Global Area 1603411968 bytes
Fixed Size		    2253664 bytes
Variable Size		 1375734944 bytes
Database Buffers	  218103808 bytes
Redo Buffers		    7319552 bytes
SQL> oradebug setmypid
Statement processed.
SQL> oradebug tracefile_name
/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_3682.trc
SQL> alter session set events'10046 trace name context forever,level 12';

Session altered.
SQL> alter database mount;

Database altered.

SQL> alter database open;

Database altered.

udump 파일 보기
[oracle@rhel6 ~]$ more /oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_3682.trc
Trace file /oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_3682.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/app/oracle/product/11.2.0
System name:    Linux
Node name:      rhel6
Release:        2.6.32-431.el6.x86_64
Version:        #1 SMP Sun Nov 10 22:19:54 EST 2013
Machine:        x86_64
VM name:        VMWare Version: 6
Instance name: orcl

Oracle 데이터베이스 mount 시작 읽 기 제어 파일, 로그 파일 쓰기
...
WAIT #140528657591192: nam='control file sequential read' ela= 8 file#=0 block#=1 blocks
=1 obj#=-1 tim=1502627703012561
WAIT #140528657591192: nam='control file sequential read' ela= 2 file#=1 block#=1 blocks
=1 obj#=-1 tim=1502627703012583
WAIT #140528657591192: nam='control file sequential read' ela= 47 file#=0 block#=3 block
s=8 obj#=-1 tim=1502627703012650
WAIT #140528657591192: nam='control file sequential read' ela= 13 file#=1 block#=3 block
s=8 obj#=-1 tim=1502627703012674
...
WAIT #140528657591192: nam='ADR block file read' ela= 847  =0  =0  =0 obj#=-1 tim=150262
7707123048
WAIT #140528657591192: nam='ADR block file read' ela= 576  =0  =0  =0 obj#=-1 tim=150262
7707124068
WAIT #140528657591192: nam='ADR block file read' ela= 562  =0  =0  =0 obj#=-1 tim=150262
7707125013
WAIT #140528657591192: nam='ADR block file read' ela= 473  =0  =0  =0 obj#=-1 tim=150262
7707125891
...

Oracle 데이터베이스 open 프로 세 스 는 제어 파일 정 보 를 읽 고 디스크 데이터 파일 의 머리 를 읽 는 것 과 비교 합 니 다.
alter database open
END OF STMT
PARSE #140528657591192:c=0,e=274,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=0,tim=1502627713
479605
WAIT #140528657591192: nam='control file sequential read' ela= 8 file#=0 block#=1 blocks
=1 obj#=-1 tim=1502627713479904
WAIT #140528657591192: nam='control file sequential read' ela= 4 file#=1 block#=1 blocks
=1 obj#=-1 tim=1502627713479922
WAIT #140528657591192: nam='control file sequential read' ela= 2 file#=0 block#=15 block
s=1 obj#=-1 tim=1502627713479931
...
WAIT #140528657591192: nam='Disk file operations I/O' ela= 11 FileOperation=2 fileno=1 f
iletype=2 obj#=-1 tim=1502627713481300
WAIT #140528657591192: nam='Disk file operations I/O' ela= 6 FileOperation=2 fileno=2 fi
letype=2 obj#=-1 tim=1502627713481317
WAIT #140528657591192: nam='Disk file operations I/O' ela= 4 FileOperation=2 fileno=3 fi
letype=2 obj#=-1 tim=1502627713481327
WAIT #140528657591192: nam='Disk file operations I/O' ela= 4 FileOperation=2 fileno=4 fi
letype=2 obj#=-1 tim=1502627713481338
WAIT #140528657591192: nam='Disk file operations I/O' ela= 5 FileOperation=2 fileno=201 
filetype=2 obj#=-1 tim=1502627713481351

좋은 웹페이지 즐겨찾기