Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE STARTUP/STOP 과정의이해 2010. 05 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved.
Document Control Change Record Date Author Change Reference 2010-05 swj0701 Created Reviews Date Name (Position) Distribution Name Location ALTIBASE STARTUP/STOP 과정의이해 2 page of 26
목차 개요... 4 ALTIBASE STARTUP... 5 STARTUP 개요... 5 PROCESS 단계... 6 CONTROL 단계... 10 META 단계... 13 SERVICE 단계... 16 ALTIBASE SHUTDOWN... 19 SHUTDOWN 개요... 19 NORMAL... 19 IMMEDIATE... 20 ABORT... 25 ALTIBASE STARTUP/STOP 과정의이해 3 page of 26
개요 본문서는 ALTIBASE 가구동되는과정과종료되는과정에대해서설명하고, 각과정에서 ALTIBASE 내부모듈들이동작하는내용과사용자가수행할수있는작업에대해서기술한다. 본문서는 ALTIBASE 5.3.3 버전의 STARTUP 과 STOP 과정에대해서기술한다. ALTIBASE STARTUP/STOP 과정의이해 4 page of 26
ALTIBASE STARTUP ALTIBASE 는 STARTUP 의과정을 4 단계로구분하여제공한다. 본장에서는 ALTIBASE 가 STARTUP 되는각단계의상태와각단계로전이될때내부적으로수행되는동작들에대해서기술한다. 또, 사용자가각단계에서수행할수있는작업들에대하여기술함으로써 ALTIBASE 를효율적으로사용할수있도록한다. STARTUP 개요 DB 를구동하는과정이 1 단계로이루어져있으면, 서버가구동되기이전에할수있는작업과서버구동이후에할수있는작업이엄격히구분되며, 한번의명령어실행으로 DB 가구동완료되기때문에 DBA 가클라이언트와구별된작업을수행할수없다. 이로인해메타마이그레이션, 복구기능에대한제약사항이발생하게된다. 이러한문제점을해결하기위해 ALTIBASE 는 DB 가구동되는단계를 PROCESS, CONTROL, META, SERVICE 의 4 단계로구분하여제공하며, 각단계별로 DBA 가 DB 의생성, 메타업그레이드와선택별복구등의작업이가능하도록제공한다. ALTIBASE 를구동할때, 각단계로전이하기위해서는 STARTUP 이라는명령어를사용하게되는데, 이명령어는 isql 에 SYSDBA 권한으로접근한후에사용할수있다. 각단계로상태를변경할때, 다음단계로의전이는가능하지만이전단계로의복귀는지원하지않는다. 위의그림에서붉은화살표는상태가전이되는과정으로 ALTIBASE 를구성하는모듈 (Storage Manager, Query Processor, Communication Manager) 들이각단계를위한준비작업을한다. 파란색화살표는각단계의상태를의미한다. 사용자는각단계에서제공되는기능을수행할수있다. 아래의절에서는각단계별로 ALTIBASE 내부적으로수행되는동작들과사용자가수행할수있는작업들에대해서설명한다. ALTIBASE STARTUP/STOP 과정의이해 5 page of 26
PROCESS 단계 PROCESS 단계전환명령어 ALTIBASE 를구동시킬때의가장처음단계로써, startup process 명령어를통하여상태를전이할수있다. shell> isql u sys p manager sysdba ---------------------------------------------- Altibase Client Query utility. Release Version 5.3.3.1 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ---------------------------------------------- ISQL_CONNECTION = TCP, SERVER = 127.0.0.1, PORT_NO = 20300 isql(sysdba)> STARTUP PROCESS Connecting to the DB server.. Connected. TRANSITION TO PHASE : PROCESS Command execute success. isql(sysdba)> PROCESS 단계는각모듈 (Storage Manager, Query Processor, Communication Manager 등 ) 이초기화되는단계이며, 서버와 isql 이통신을하기위해 ALTIBASE 프로세스를시작하게된다. 이단계에서는 DB 에대한접근이불가능하다. 초기 PROCESS 단계의내부동작 ALTIBASE 는 STARTUP 이되는과정을 $ALTIBASE_HOME/trc/altibase_boot.log 파일에기록하기때문에각단계에서 DB 내부적으로어떤동작을수행하는지확인할수있다. 다음은 PROCESS 단계로 STARTUP 될때기록된부트로그이며, 이로그를통하여어떤동작들을수행하는지알아본다. [[[[[[ ALTIBASE STARTUP - Boot ]]]]]] [2010/05/07 09:05:31] [Thread-182894163552] [Level-0] ==> Check & Loading of Altibase Properties. ----------------------------------------------(1) [2010/05/07 09:05:31] [Thread-182894163552] [Level-0]... [2010/05/07 09:05:31] [Thread-182894163552] [Level-0] ==> Initialize Process Signal System --------------------------------------------------------(2) [2010/05/07 09:05:31] [Thread-182894163552] [Level-0]... ==> Checking ide Layer Initialization Result ---------------------------------------------(3) ALTIBASE STARTUP/STOP 과정의이해 6 page of 26
... ==> Initialize All Module Message Logging System --------------------------------------(4)... ==> Initialize Altibase Memory Manager ---------------------------------------------------(5)... ==> Logging Altibase Version Information. -------------------------------------------------(6)... ==> Logging Host System Up-Time. ----------------------------------------------------------(7) SYSTEM UPTIME => 09:05:31 up 69 days, 15:33, 4 users, load average: 0.30, 2.18, 1.84... ==> Do Daemonizing.. ----------------------------------------------------------------------------(8)... ==> Logging Altibase Process ID. --------------------------------------------------------------(9) ALTIBASE PROCESS ID => 5487... ==> Loading Error Message Binary File ------------------------------------------------------(10)... ==> Initialize Process Lock File -----------------------------------------------------------------(11)... ==> Initialize Storage Manager -----------------------------------------------------------------(12) [SM-PREPARE] Lock Manager -----------------------------------------------------------------(13) [SM-PREPARE] Transaction Manager -------------------------------------------------------(14) [SM-PREPARE] Index Manager ---------------------------------------------------------------(15)... ==> Initialize Query Processor ------------------------------------------------------------------(16)... ==> Initialize MT Module ------------------------------------------------------------------------(17)... ==> Initialize Timer Thread ----------------------------------------------------------------------(18)... ==> Initialize Communication Manager ------------------------------------------------------(19)... ==> Initialize Thread Manager ------------------------------------------------------------------(20) ALTIBASE STARTUP/STOP 과정의이해 7 page of 26
... ==> Initialize Operating System Parameters -----------------------------------------------(21) [PREPARE] Check O/S Environment Variables..... ==> Initialize LK Module -----------------------------------------------------------------------(22)... ==> Initialize QueryProfile Manager --------------------------------------------------------(23)... ==> Initialize Service Manager ----------------------------------------------------------------(24)... TRANSITION TO PHASE : PROCESS ==> Initialize Process Lock File ----------------------------------------------------------------(25)... ==> Initialize Communication Manager -----------------------------------------------------(26)... ==> Initialize Storage Manager ----------------------------------------------------------------(27)... ==> Initialize Query Processor -----------------------------------------------------------------(28)... ==> Initialize LK Module ------------------------------------------------------------------------(29)... ALTIBASE 를생성또는구동하기위한각모듈의초기화 프로퍼티파일 Check 및 Loading(1) $ALTIBASE_HOME/conf/altibase.properites 파일을체크하고로딩함 Process Signal System 초기화 (2) Checking ide Layer Initialization Result(3) All Module Message Logging System 초기화 (4) Logging Host System Up-Time(7) Do Daemonizing(8) Error Message Binary File 초기화 (10) Lock Manager 동시성제어를위해사용하는 lock item 을초기화 ALTIBASE STARTUP/STOP 과정의이해 8 page of 26
Process Lock File 초기화 (25) $ALTIBASE_HOME/conf/altibase.properties 파일에 Lock 을획득함 ALTIBASE 프로세스의중복구동방지 라이선스검사 서버의주요모듈초기화 Communication Manager (26) Storage Manager (27) Query Processor (28) Database Link Module (29) ALTIBASE 프로세스를구동하고 isql 과통신 DB 공간에대해서접근할수없음 Fixed Table 에대한접근만가능 Meta 관련한초기화나작업을수행할수없음 (DB 접근이불가능 ) Create/Drop Database를수행할수있음 PROCESS 단계에서수행할수있는작업 사용자가 PROCESS 단계에서수행할수있는작업은다음과같다. Create Database 구문을사용하여데이터베이스생성 isql> create database mydb initsize=10m noarchivelog; (5.3 이전버전 ) isql> create database mydb initsize=10m noarchivelog character set MS949 national character set UTF8; (5.3 이상버전 ) 프로퍼티값들을변경 isql 에서 Alter 명령어로변경이가능한프로퍼티값들을변경 사용자가조회할수있는성능뷰 V$ALLCOLUMN V$DBA_2PC_PENDING V$INSTANCE V$PROPERTY V$TABLE V$TRACELOG V$TRANSACTION 성능뷰를구성하는칼럼정보 분산트랜잭션에서 in-doubt 상태의트랜잭션브랜치목록 현재알티베이스의다단계 startup 정보 알티베이스내부에설정된프로퍼티정보 모든성능뷰의레코드및칼럼정보 트레이스로깅정보 트랜잭션객체정보 ALTIBASE STARTUP/STOP 과정의이해 9 page of 26
V$TRANSACTION_MGR V$TXSEGS V$VERSION 알티베이스트랜잭션관리자정보 바인딩된트랜잭션세그먼트들의정보 알티베이스버전정보 CONTROL 단계등의상위단계로전이 CONTROL 단계 CONTROL 단계전환명령어 CONTROL 단계는 PROCESS 단계에서의작업을마치고 startup control 명령어를통해서상태를전이할수있다. isql(sysdba)> startup control; Connecting to the DB server... Connected. TRANSITION TO PHASE : PROCESS TRANSITION TO PHASE : CONTROL Command execute success. isql(sysdba)> PROCESS 단계 CONTROL 단계의내부동작 CONTROL 단계는 DB 의복구가가능한수준까지각매니저들을초기화하고, Storage Manager 모듈을구성하는주요관리자 (Buffer, Recovery, Disk 등 ) 를준비하는단계이다. 다음은 CONTROL 단계로 STARTUP 될때기록된부트로그이며, 이로그를통하여어떤동작들이수행되는지알아본다. TRANSITION TO PHASE : CONTROL [2010/04/16 15:01:35] [Thread-1094719840] [Level-0] ==> Initialize Communication Manager (1) [2010/04/16 15:01:35] [Thread-1094719840] [Level-0]... [2010/04/16 15:01:35] [Thread-1094719840] [Level-0] ==> Initialize Storage Manager (2) [2010/04/16 15:01:35] [Thread-1094719840] [Level-0] [SM-PREPARE] Dirty Page Manager..(3) ALTIBASE STARTUP/STOP 과정의이해 10 page of 26
[SM-PREPARE] Memory Manager (4) [SM-PREPARE] Memory Tablespace..(5) [2010/04/16 15:01:35] [Thread-1094719840] [Level-0] [SM-PREPARE] Volatile Manager [SM-PREPARE] Volatile Tablespace [SM-PREPARE] Disk Manager [SM-PREPARE] Buffer Manager [SM-PREPARE] Direct Buffer Manager.(6) (7) (8). (9)...(10) [SM-PREPARE] Log Manager Initialization.... (11) [SM-PREPARE] Recovery Manager Initialization... (12) [SM-PREPARE] Log Flush Thread Startup... (13) [SM-PREPARE] Tablespace..(14) [SM-PREPARE] Backup Manager Initialization... [SM-PREPARE] Index Pool (15) (16) ==> Initialize Query Processor..(17)... ==> Initialize LK Module...(18)... DB 의복구가가능한수준까지각모듈초기화 서버주요모듈초기화 Communication Manager(1) Storage Manager(2) Query Processor(17) ALTIBASE STARTUP/STOP 과정의이해 11 page of 26
DDL, DML 을사용한 DB 의변경연산을금지시킴 복구가가능한수준까지 Storage Manager 모듈준비 (3) ~ (16) Buffer Manager, Disk Manager, Recovery Manager 등을준비 CONTROL 단계에서수행할수있는작업 사용자가 CONTROL 단계에서수행할수있는작업은다음과같다. 선택적 DB 복구구문을사용하여 ALTIBASE 의복구를수행 완전복구 ( 현재시점까지의데이터파일복구 ) isql> ALTER DATABASE RECOVER DATABASE; 불완전복구 ( 과거의특정시각으로복구 ) isql> ALTER DATABASE RECOVER DATABASE UNTIL TIME '2010-05- 03:17:55:00'; 로그초기화 META 단계에서는 DB 가 Restart Recovery 를수행하기때문에 CONTROL 단계에서불완전복구를진행했을경우, 복구에반영되지않은로그들이 DB 를구동시키는과정에서문제를발생시킬수있다. 그렇기때문에 META 단계로전이하기전에반드시 alter 명령어를사용하여로그를 Reset 해줘야한다. isql> ALTER DATABASE db_name META RESETLOGS; 데이터베이스모드변경 isql> ALTER DATABASE ARCHIVELOG 또는 NOARCIVELOG; 성능뷰조회 PROCESS 단계에서조회가가능한성능뷰와추가적으로다음의성능뷰를조회할수있다 ( 일반테이블은조회할수없음 ). V$DATAFILES V$FILESTAT V$LFG V$LOCK_WAIT V$MEM_TABLESPACE_STAT US_DESC V$TABLESPACES V$TSSEGS 테이블스페이스에서사용하는데이터파일의정보 디스크의데이터파일별 I/O 통계정보 그룹커밋관련통계값 트랜잭션의락대기상태정보 메모리테이블스페이스의상태값내용정보 테이블스페이스정보 모든 TSS 세그먼트들의정보 ALTIBASE STARTUP/STOP 과정의이해 12 page of 26
META 단계등의상위상태로전이 META 단계 META 단계전환명령어 META 단계는 CONTROL 단계에서의작업을마치고 startup meta 명령어를통해서상태를전이할수있다. isql(sysdba)> startup meta; TRANSITION TO PHASE : META [SM] Recovery Phase - 1: Preparing Database : Dynamic Memory Version => Parallel Loading [SM] Recovery Phase - 2: Loading Database [SM] Recovery Phase - 3: Skipping Recovery & Starting Threads... Refining Disk Table [SM] Refine Memory Table:... [SM] Rebuilding Indices [Total Count:101]... Command execute success. isql(sysdba)> CONTROL 단계 META 단계의내부동작 META 단계는 CONTROL 단계에서작업한복구과정에대해서완료를하는단계이며, DB 구동을위해메모리와디스크의데이터파일들을체크하고 Restart Recovery 를수행하는단계이다. 다음은 META 단계로 STARTUP 될때기록된부트로그이며, 이로그를통하여어떤동작들을수행하는지알아본다. TRANSITION TO PHASE : META [2010/04/16 15:01:35] [Thread-1094719840] [Level-0] ==> Initialize Communication Manager ------------------------------------------------(1) [2010/04/16 15:01:35] [Thread-1094719840] [Level-0]... [2010/04/16 15:01:35] [Thread-1094719840] [Level-0] ==> Initialize Storage Manager ------------------------------------------------------------(2) [2010/04/16 15:01:35] [Thread-1094719840] [Level-0] [SM-PREPARE] Check DataBase ---------------------------------------------------------------(3) [SUCCEESS] ALTIBASE STARTUP/STOP 과정의이해 13 page of 26
[SM-PREPARE] Identify Database -------------------------------------------------------------(4) checking file(s) of all memory tablespace checking file(s) of all disk tablespace checking logfile(s) [SM-PREPARE] Buffer Flusher Initialization... -----------------------------------------(5) [SM-PREPARE] Transaction Segment Manager Initialization... --------------------(6) [SM-PREPARE] Restart Recovery -------------------------------------------(7) [SM] Recovery Phase - 1 : Preparing Database : Dynamic Memory Version => Parallel Loading [SM] Recovery Phase - 2 : Loading Database BEGIN DATABASE RESTORATION Restoring Tablespace : SYS_TBS_MEM_DIC BEGIN TABLESPACE[0] RESTORATION END TABLESPACE[0] RESTORATION Restoring Tablespace : SYS_TBS_MEM_DATA BEGIN TABLESPACE[1] RESTORATION END TABLESPACE[1] RESTORATION END DATABASE RESTORATION [SM] Recovery Phase - 3 : Skipping Recovery & Starting Threads... [SM-PREPARE] Prepare Logfile Thread Start... Refining Disk Table [SM-PREPARE] CheckPoint Manager --------------------------------------(8) [SM-PREPARE] Rebuild Transaction Segment Entries... ----------------------------(9) Reset Undo Tablespace... [SM-PREPARE] Minimum SCN Builder --------------------------------------------------(10) [SM-PREPARE] Memory Garbage Collector ----------------------------------------(11) [SM-PREPARE] Delete Manager ----------------------------------------(12) ALTIBASE STARTUP/STOP 과정의이해 14 page of 26
[SM-PREPARE] CheckPoint Thread Start ------------------------------------------(13) [SM-PREPARE] Database Refining -----------------------------------------(14) BEGIN DATABASE REFINING [SM] Refine Memory Table : END DATABASE REFINING [SM-PREPARE] Index Rebuilding -----------------------------------------(15) BEGIN INDEX BUILDING [SM] Rebuilding Indices [Total Count:100] END INDEX BUILDING... ==> Initialize Query Processor ------------------------------------------------------------(16)... ==> Initialize NLS System -----------------------------------------------------------------(17)... ==> Initialize LK Module -----------------------------------------------------------------(18)... 오류검사및 Restart Recovery 하여 DB 가구동가능한수준까지각모듈의초기화 각모듈의초기화 Communication Manager(1) Storage Manager(2) Query Processor(17) Database Link Module(18) 데이터파일에대한미디어오류를검사 (3) ~ (4) DB 에대한 Check / Identify 수행 정상구동이가능한지메모리 / 디스크테이블스페이스의데이터파일및로그파일검사 DBMS 에대해 Restart Recovery 과정을수행 (7) ALTIBASE STARTUP/STOP 과정의이해 15 page of 26
정상종료후에 DB 가구동이되면, Restart Recovery 과정이생략되지만비정상종료후에 DB 를구동하면 Restart Recovery 를수행함 Transaction Segment Entries Rebuild(9) 트랜잭션이시작되면 TSS(Transaction Status Slot) 가필요하기때문에 Transaction Segment 를 Rebuild 함 Transaction Segment 가 Undo Tablespace 에포함되어있기때문에 Undo Tablespace 를 Reset 함 체크포인트쓰레드를구동 Minimum SCN Rebuild(10) MVCC 의제공으로인한 Old 버전의데이터를삭제하기위한 Minimum SCN 을생성함 Garbage Collector Index 의 Old Key 삭제 Delete Manager Table 의 Old Record 삭제 Memory Index Rebuilding 수행 메모리는휘발성이라는특징을가지고있기때문에 DB 종료후새로구동할때, Index 를 Rebuild 함 Memory Table Refining Memory DB 의 Free slot, Free page 정보는디스크에기록되지않는런타임정보이기때문에 STARTUP 시재구축해야하며, 이런작업을 Memory Table Refining 시수행함 DDL, DML 을사용한 DB 변경연산을금지 META 단계에서수행할수있는작업사용자가 META 단계에서수행할수있는작업은다음과같다. 모든성능뷰조회가능 SERVICE 단계등의상위단계로상태전이가능 SERVICE 단계 SERVICE 단계전환명령어 SERVICE 단계는 META 단계에서의작업을마치고 startup service 명령어를통해서상태를전이할수있다. isql(sysdba)> startup service ALTIBASE STARTUP/STOP 과정의이해 16 page of 26
TRANSITION TO PHASE : SERVICE [CM] Listener started : TCP on port 20911 [CM] Listener started : UNIX [RP] Initialization : [PASS] --- STARTUP Process SUCCESS --- Command execute success. isql(sysdba)> META 단계 SERVICE 단계의내부동작 SERVICE 단계는사용자가 DB 를사용할수있는최종단계를의미한다. SERVICE 단계로구동이되면, Communication Manager 는클라이언트와의통신을위해 listener 를시작하며, 사용자는 isql 을이용한접속과, 어플리케이션이나다른클라이언트에서접속이가능해진다. 다음은 SERVICE 단계로 STARTUP 될때기록된부트로그이며, 이로그를통하여어떤동작들이수행되는지알아본다. TRANSITION TO PHASE : SERVICE [2010/04/16 15:01:40] [Thread-1094719840] [Level-0] ==> Preallocate Altibase Memory [2010/04/16 15:01:40] [Thread-1094719840] [Level-0]... ==> Initialize Communication Manager ---------------------------------------------------(1) [2010/04/16 15:01:40] [Thread-1094719840] [Level-0] [CM] Listener started : TCP on port 20911 [CM] Listener started : UNIX... ==> Initialize Storage Manager ------------------------------------------------------------(2)... ==> Initialize Query Processor -----------------------------------------------------------(3) [QP] META DB checking... -----------------------------------------------------------(4)... ==> Initialize Security Module -----------------------------------------------------------(5)... ==> Initialize LK Module ------------------------------------------------------------(6)... ==> Initialize XA Manager ------------------------------------------------------------(7) ALTIBASE STARTUP/STOP 과정의이해 17 page of 26
... ==> Initialize SNMP Service -------------------------------------------------------------(8)... ==> Initialize Replication Manager -------------------------------------------------------------(9) [REPL-PREPARE] Read Replication Information -------------------------------------------(10) [REPL-PREPARE] Replication Manager Init [REPL-PREPARE] Replication Manager Start [REPL-PREPARE] Replication Heart Beat Manager Start ==> Initialize MMX Service ----------------------------------------------------------(11)... --- STARTUP Process SUCCESS --- 사용자에게정상적인 DB 서비스를제공하기위한각모듈초기화 Communication Manager 를초기화함 (1) Listener 시작 DB 서비스를위한각모듈초기화 (2) ~(3), (5)~(8) Query Processor, Database Link Module, Security Module 등 Meta DB 체크 (4) 테이블, 인덱스 이중화모듈초기화 (9)~(10) 이중화정보 Read 이중화매니저시작 이중화 Heart Beat 매니저시작 각단계의메시지를 isql 로전송하고, 성공메시지를보냄 SERVICE 단계에서수행할수있는작업사용자가 Service 단계에서수행할수있는작업은다음과같다. isql 접속 정상적인 DB 운영이가능한상태 ALTIBASE STARTUP/STOP 과정의이해 18 page of 26
ALTIBASE SHUTDOWN 본장에서는 SHUTDOWN 의개요및특징에대해서설명하고, ALTIBASE 에서제공하는 SHUTDOWN 의세가지옵션들과 ALTIBASE 종료시에수행되는동작들에대해서기술한다. SHUTDOWN 개요 ALTIBASE 의 STARTUP 과정은 4 단계로구분되어진행하지만, SHUTDOWN 을하면 STARTUP 에서수행한과정을역순으로 (SERVICE META CONTROL PROCESS) 진행하며 1 단계로종료한다. 현재구동중인 ALTIBASE 서버를종료하기위해서는 isql 에 sysdba 권한으로접속하여 SHUTDOWN 명령어를사용한다. SHUTDOWN 명령어는세가지옵션 (NORMAL, IMMEDIATE, ABORT) 을지정하여사용할수있는데, NORMAL 과 IMMEDIATE 는 ALTIBASE 가 SERVICE 상태일때만수행가능하며, ABORT 는어떤상태에서도수행이가능하다. ALTIBASE 의 SHUTDOWN 명령어는 ALTIBASE 를설치한 OS 계정으로만수행이가능하다. NORMAL 서버를정상적으로종료하는방식으로서, 클라이언트들이모두종료될때까지서버의종료작업을대기하는방법이다. 서버가종료하면서수행하는일들은클라이언트 서버간통신세션을감지하는쓰레드의종료, 서비스쓰레드의종료, 자료저장관리자의종료, 그리고 ALTIBASE 서버프로세스가완전히종료되기를대기하는일들을수행함으로써 ALTIBASE 서버를종료한다. ALTIBASE STARTUP/STOP 과정의이해 19 page of 26
NORMAL 옵션을사용하여 ALTIBASE 서버를종료했을경우, 다음과같은메시지가출력된다. isql(sysdba)> shutdown normal; Ok..Shutdown Proceeding... TRANSITION TO PHASE : Shutdown Altibase [RP] Finalization : PASS Shutdown normal success. 다음은 NORMAL 옵션을사용하여 ALTIBASE 서버를종료할때, ALTIBASE 가수행하는동작들이다. 현재유저가 sysdba 권한인지확인 모든세션이종료할때까지대기 각모듈 (Storage Manager, Query Processor, Communication Manager 등 ) 을종료한다. ALTIBASE 프로세스를종료한다. IMMEDIATE ALTIBASE 서버를종료할때, 현재연결된세션들을강제로단절시킨다음, ALTIBASE 서버가현재실행중인트랜잭션을롤백시키고 ALTIBASE 서버를종료하는방법이다. ALTIBASE 에서제공하는 server stop 명령어를사용하여서버를종료하는경우에는 IMMEDIATE 옵션을사용하여종료하는것과동일한동작을하게된다. IMMEDIATE 옵션을사용하여 ALTIBASE 를종료했을때의메시지는다음과같다. isql(sysdba)> shutdown immediate Ok..Shutdown Proceeding... TRANSITION TO PHASE : Shutdown Altibase [RP] Finalization : PASS Shutdown immediate success. 다음은 IMMEDIATE 옵션을사용하여 ALTIBASE 를종료할때, ALTIBASE 가수행하는동작들이다. 현재유자가 sysdba 권한인지확인한다. 현재연결중인모든세션을종료시킨다. 현재수행중인트랜잭션들을롤백한다. 각모듈 (Storage Manager, Query Processor, Communication Manager 등 ) 을종료한다. ALTIBASE STARTUP/STOP 과정의이해 20 page of 26
ALTIBASE 프로세스를종료한다. [2010/05/10 10:43:09] [Thread-1094719840] [Level-0] ALTER DATABASE SHUTDOWN IMMEDIATE [2010/05/10 10:43:10] [Thread-182894163552] [Level-0] TRANSITION TO PHASE : Shutdown Altibase ==> Preparing Shutdown... ---------------------------------------------------------------(1)... ==> Shutdown MMX Module ----------------------------------------------------------------(2)... ==> Shutdown SNMP Module ----------------------------------------------------------------(3)... ==> Shutdown Service Module ------------------------------------------------------------(4) wait for threads [sock: 0, IPC: 0]to end [1 secs]... ==> Shutdown LK Module ------------------------------------------------------------------(5)... ==> Shutdown QueryProfile Module --------------------------------------------------------(6)... ==> Shutdown REPL Module ----------------------------------------------------------------(7) [REPL-SHUTDOWN] Replication Manager Shutdown [REPL-SHUTDOWN] Replication Manager Destroy [REPL-SHUTDOWN] Replication Heart Beat Manager Shutdown [REPL-SHUTDOWN] Replication Heart Beat Manager Destroy... ==> Shutdown Security Module -------------------------------------------------------------(8)... ==> Shutdown QP Module ---------------------------------------------------------------------(9)... ==> Shutdown SM Module -------------------------------------------------------------------(10) [SM-SHUTDOWN] CheckPoint Manager Thread ---------------------------------------(11) [SM-SHUTDOWN] Memory Garbage Collector Thread ------------------------------------(12) ALTIBASE STARTUP/STOP 과정의이해 21 page of 26
[SM-SHUTDOWN] Delete Manager Thread -----------------------------------------(13) [SM-SHUTDOWN] Table Compaction ------------------------------------------------(14) [SM-SHUTDOWN] CheckPoint Manager ----------------------------------------(15) [SM-SHUTDOWN] Memory Garbage Collector -----------------------------------------(16) [SM-SHUTDOWN] Delete Manager ------------------------------------------(17) [SM-SHUTDOWN] Minimum SCN Builder --------------------------------------------------(18) [SM-SHUTDOWN] Write Persistent Indices ---------------------------------------------(19) [SM-SHUTDOWN] Index Storage Area -------------------------------------------(20) [SM-SHUTDOWN] Index Manager -----------------------------------------(21) [SM-SHUTDOWN] Tablespace Manager --------------------------------------(22) [SM-SHUTDOWN] Transaction Segment Manager --------------------------------------(23) [SM-SHUTDOWN] Flush All DirtyPages And Checkpoint Database... --------------(24) [SM-SHUTDOWN] Flush Manager Destroy... --------------------------------------------(25) [SM-SHUTDOWN] Recovery Manager -----------------------------------------(26) [SM-PREPARE] Log Flush Thread Shutdown... ---------------------------------------(27) [SM-PREPARE] Log Prepare Thread Shutdown... ---------------------------------------(28) [SM-SHUTDOWN] Log Manager -----------------------------------------(29) ALTIBASE STARTUP/STOP 과정의이해 22 page of 26
[SM-SHUTDOWN] Backup Manager -----------------------------------------(30) [SM-SHUTDOWN] Index Pool Manager --------------------------------------------(31) [SM-SHUTDOWN] Transaction Manager -------------------------------------------(32) [SM-SHUTDOWN] Lock Manager ------------------------------------------(33) [SM-SHUTDOWN] Volatile Tablespace Destroy... ------------------------------------------(34) [SM-SHUTDOWN] Volatile Manager ---------------------------------------------(35) [SM-SHUTDOWN] Memory Tablespace Destroy... ------------------------------------------(36) [SM-SHUTDOWN] Memory Manager ----------------------------------------(37) [SM-SHUTDOWN] Dirty Page Manager -------------------------------------------(38) [SM-SHUTDOWN] Direct Buffer Manager --------------------------------------------(39) [SM-SHUTDOWN] Buffer Manager ------------------------------------------(40) [SM-SHUTDOWN] Disk Manager -----------------------------------------(41) [SM-SHUTDOWN] TableSpace Manager -----------------------------------------(42)... ==> Shutdown MT Module -----------------------------------------------------------------(43)... ==> Shutdown CM Module ------------------------------------------------------------------(44)... ==> Shutdown Timer Thread -------------------------------------------------------------------(45)... Mutex Leak List 1 : UNNAMED_LATCH ALTIBASE STARTUP/STOP 과정의이해 23 page of 26
2 : UNNAMED_LATCH 3 : UNNAMED_LATCH 4 : UNNAMED_LATCH 5 : UNNAMED_LATCH 6 : UNNAMED_LATCH 7 : UNNAMED_LATCH 8 : UNNAMED_LATCH 9 : UNNAMED_LATCH 10 : UNNAMED_LATCH 11 : UNNAMED_LATCH 12 : UNNAMED_LATCH 13 : UNNAMED_LATCH 14 : UNNAMED_LATCH 15 : UNNAMED_LATCH 16 : UNNAMED_LATCH 17 : UNNAMED_LATCH 18 : UNNAMED_LATCH 19 : UNNAMED_LATCH 20 : UNNAMED_LATCH 21 : UNNAMED_LATCH 22 : UNNAMED_LATCH 23 : UNNAMED_LAeTCH 24 : UNNAMED_LATCH 25 : REPL_RECOVERY_MUTEX Memory Leak List NAME SIZE COUNT Query_Meta 1020720 4015 Query_PSM_Execute 8640 24 Mathematics 2168 3 Cond_Manager 4600 25 SUM 1036128 4067 [2010/05/10 10:43:18] [Thread-182894163552] [Level-0] [[[[[[ ALTIBASE SHUTDOWN - Boot ]]]]]] SHUTDOWN IMMEDIATE 시의내부동작 부트로그를살펴보면, SHUTDOWN 은 STARTUP 할때와역순의과정을수행하여종료한다. SHUTDOWN IMMEDIATE 시 ALTIBASE 가내부적으로동작하는작업은다음과같다. SHUTDOWN 을위한준비를하며, 각모듈에대해종료함 Service, Database Link, Security, Query Processor, Storage Manager 등의모듈종료 (2)~(10) 서버운영중사용되었던모든 Resource 들을해제함 CheckPoint Manager, Memory Garbage Collector, Delete Manager 등 (11)~(42) Table Compaction ALTIBASE STARTUP/STOP 과정의이해 24 page of 26
메모리에할당된후제대로반환되지않은공간을시스템에반환함 Flush All DirtyPages And Checkpoint Database 메모리버퍼에적재된페이지들중 DirtyPages 에대해서디스크로 Flush 함 메모리테이블스페이스에있는데이터에대해체크포인트수행 Flush 해야하는대상과체크포인트를해야하는대상이많아지면 SHUTDOWN 시대기시간이길어질수도있음 Mutex Leak List 와 Memory Leak List SHUTDOWN 시모든 alloc 된 mutex, memory 에 destroy 를호출해야하고, 호출이안된것들은 SHUTDOWN 시로그에출력됨 특정문제가발생한경우가아니어도해당 List 가로그에출력될수있음 ABORT ALTIBASE 서버를 kill -9 시스템명령을사용하여강제로종료하는방법이다. 이방법으로 ALTIBASE 서버를종료하면, 데이터베이스의일관성을보장할수없기때문에 ALTIBASE 서버를구동할때, 데이터베이스복구과정을거쳐야한다. 다음은 ABORT 옵션을사용하여 ALTIBASE 를종료할때, ALTIBASE 가수행하는동작들이다. 현재유저가 sysdba 권한인지확인한다. 서버프로세스에게 kill -9 를전송한다. 서버프로세스가종료될때까지대기한다. ALTIBASE STARTUP/STOP 과정의이해 25 page of 26
알티베이스 서울특별시구로구구로 3 동 182-13 대륭포스트 2 차 1008 호 02-2082-1000 http://www.altibase.com 대전사무소대전광역시서구둔산동 921 주은리더스텔 901 호 042-489-0330 기술지원본부서울특별시구로구구로 3 동 182-13 대륭포스트 2 차 908 호 02-2082-1000 솔루션센터 02-2082-1114 http://support.altibase.com Copyright c 2000~2010 ALTIBASE Corporation. All Rights Reserved. 이문서는정보제공을목적으로제공되며, 사전에예고없이변경될수있습니다. 이문서는오류가있을수있으며, 상업적또는특정목적에부합하는명시적, 묵시적인책임이일체없습니다. 이문서에포함된 ALTIBASE 제품의특징이나기능의개발, 발표등의시기는 ALTIBASE 재량입니다. ALTIBASE는이문서에대하여관련된특허권, 상표권, 저작권또는기타지적재산권을보유할수있습니다. ALTIBASE STARTUP/STOP 과정의이해 26 page of 26