4. 인스턴스 기동/종료 방법
인스턴스를 기동 시키기 위해서는 SHARED_MEMORY_STATIC_KEY 프로퍼티가 설정 되어 있어야 하며, Client Server dedicate 모델에서 인스턴스를 기동 시키기 위해서는 리스너가 실행 되어 있어야 한다.
sysdba role을 가지고 접속 후 기동을 시키면 됨.
1. 인스턴스 기동
Startup은 오라클과 마찬가지로 내부적으로 다음과 같은 순서로 기동 된다.
gSQL> select INSTANCE_STATUS from v$instance; 명령을 이용하여 확인 가능
IDLE |
인스턴스가 기동되지 않은 상태.
- 인스턴스에 필요한 프로퍼티 수정 가능 (파일 수정 또는 ALTER SYSTEM SET property=value SCOPE=file ; ) - gsql 에서 \startup 명령 수행 가능
|
NOMOUNT |
인스턴스를 관리하는 gmaster 프로세스를 기동 시킴
- gmater를 기동 시킨다. - gmaster내의 Timer와 Cleanup 쓰레드가 기동됨. - SSA(Shared memory Static Area)를 할당 하고 초기화 함
|
MOUNT |
$GOLDILOCKS_DATA 환경변수를 이용하여 프로퍼티들과 복구를 위한 Control File을 읽어 들인다
- 데이터 베이스가 Mount된 상태이고, Control File을 읽어서, 데이터 파일, 로그파일 등 사용하는 파일들의 정보 제어 가능 - 다음의 명령어 수행 가능 - ALTER SYSTEM OPEN DATABASE - ALTER DATABASE ADD LOGFILE - ALTER DATABASE DROP LOGFILE - ALTER DATABASE RENAME LOGFILE - ALTER DATABASE { ARCHIVELOG | NOARCHIVELOG } - ALTER DATABASE DELETE BACKUP - ALTER DATABASE REGISTER - ALTER DATABASE RECOVER - ALTER DATABASE RESTORE - ALTER SESSION SET - ALTER SYSTEM RESET - ALTER SYSTEM SWITCH LOGFILE - ALTER SYSTEM { KILL | DISCONNECT } SESSION - ALTER TABLESPACE ADD { DATAFILE | MEMORY } - ALTER TABLESPACE RENAME DATAFILE - ALTER TABLESPACE OFFLINE
|
OPEN |
- Instance에서 사용하는 모든 데이터파일을 공유 메모리로 로딩한다. - Instance 복구 수행. - NOLOGGING 인덱스를 구축한다. - Ager Thread가 삭제하지 못한 객체나 파일을 정리한다. - 딕셔너리(Dictionary) 객체를 위한 캐시를 구축한다. - "SHARED_SESSION" property가 YES로 설정된 경우 gmaster내의 Process Monitor 쓰레드가 구동된다. - Process Monitor 쓰레드는 balancer process, dispatcher process, shared-server process를 실행한다.
데이터 베이스가 정상적으로 종료 되었다는 가정하에 Open시에 READ ONLY 모드로 오픈 할 수 있다.
gSQL> alter system open database read only;
|
단계적 Startup 하는 방법
% gsql --as sysdba Connected to an idle instance.
gSQL> \ startup nomount Startup success
gSQL> alter system mount database; System altered.
gSQL> alter system open database; System altered.
|
한번에 Startup 하는 방법
$ gsql --as sysdba
Copyright © 2010 SUNJESOFT Inc. All rights reserved. Release Trunk.3.1.0 revision(22178)
Enter user-name: sys Enter password:
Connected to an idle instance.
gSQL> \startup open
Startup success
|
2. 인스턴스 종료
오라클과 마찬가지로 인스턴스 종료 방법으로 다음의 옵션을 제공 함.
NORMAL |
- 새로운 세션을 허용하지 않는다. - 이미 접속되어 있는 세션에서 새로운 트랜잭션이나 Statement들은 허용한다. - Instance에 접속되어 있는 모든 세션이 종료되기를 기다린다. - 이후 Instance 구동 시 Instance 복구 과정을 수행하지 않는다. |
TRANSACTIONAL |
- 새로운 세션과 트랜잭션을 허용하지 않는다. - 이미 진행된 트랜잭션에서 새로운 Statement들은 허용한다. - 현재 진행중인 트랜잭션들이 종료되기를 기다린다. - 현재 진행중인 트랜잭션이 종료된 이후에 세션은 자동 종료된다. - 이후 Instance 구동 시 Instance 복구 과정을 수행하지 않는다. |
IMMEDIATE |
- 새로운 세션과 트랜잭션을 허용하지 않는다. - 현재 진행중인 세션과 트랜잭션들은 강제로 종료시킨다. - 시스템의 백그라운드 쓰레드들이 수행 중이던 것을 완료할 때까지 기다린다. - 이후 Instance 구동 시 Instance 복구 과정을 수행하지 않는다. |
ABORT |
- 새로운 세션과 트랜잭션을 허용하지 않는다. - 현재 진행중인 세션과 트랜잭션들은 강제 종료된다. - 시스템의 백그라운드 쓰레드들을 즉시 종료시킨다. - 이후 Instance 구동 시 Instance 회복과정을 수행한다. |
종료 시키는 방법
% gsql --as sysdba Connected to GOLDILOCKS Database.
gSQL> \ shutdown normal Shutdown success
|
3. 리스너 기동/종료
리스너 설정은 인스턴스 설정과 마찬가지로 프로퍼티 파일 또는 환경 변수로 설정할 수 있다.
프로퍼티 파일의 내용이 환경변수 값보다 우선한다.
프로퍼티 파일 : $GOLDILOCKS_DATA/conf/goldilocks.listener.conf
프로퍼티 |
설 명 |
기본 값 |
LISTEN_PORT |
glsnr가 연결을 대기하는 Port이다. TCP 연결을 원하는 Client들은 여기에 지정된 Port로 접속을 시도해야만 한다 |
22581 (1024 ~ 49151) |
TCP_HOST |
glsnr가 bind하는 ip address ( ip address (ip v4)) |
0.0.0.0 |
BACKLOG |
client가 동시에 접속 시 glsnr가 동시에 처리할 수 있는 client수이다. 이 설정 값이 client의 동시 접속자수를 보장해주지는 않는다 |
1024 (1 ~ 32768) |
DEFAULT_CS_MODE |
client에서 접속 모드를 dedicated 또는 shared 선택을 안 한경우에 기본 접속 모드를 설정한다 |
dedicated ( dedicated | shared ) |
TCP_VALIDNODE_CHECKING |
접속을 시도한 client가 유효한 client인지 검증할지를 설정한다.
- 이 값이 "NO"로 설정되면 client 검증을 하지 않는다. - 이 값이 "YES"로 설정되고 TCP_INVITED_FILE에 설정된 파일이 존재하면 TCP_INVITED_FILE에 설정된 파일의 ip address를 가진 client만 유효한 사용자로 설정된다. - 이 값이 "YES"로 설정되고 TCP_INVITED_FILE에 설정된 파일이 존재하지 않고 TCP_EXCLUDED_FILE에 설정된 파일이 존재하면 TCP_EXCLUDED_FILE에 설정된 파일의 ip address를 제외하고 유효한 사용자로 설정된다. - 이 값이 "YES"로 설정되고 TCP_INVITED_FILE에 설정된 파일이 존재하지 않고 TCP_EXCLUDED_FILE에 설정된 파일도 존재하지 않으면 client검증을 하지 않는다.
|
NO ( YES | NO ) |
TCP_INVITED_FILE |
TCP_VALIDNODE_CHECKING값이 "YES"인 경우만 사용된다. 여기에 설정된 파일이 존재할 경우 파일에 포함된 사용자(ip address)만 접속이 가능하다 |
goldilocks.invited.conf |
TCP_EXCLUDED_FILE |
TCP_VALIDNODE_CHECKING값이 "YES"이고 TCP_INVITED_FILE에 설정된 파일이 없는 경우만 사용된다. 여기에 설정된 파일이 존재할 경우 파일에 포함된 사용자(ip address)를 제외하고 접속이 가능하다. |
goldilocks.excluded.conf |
TIMEOUT |
glsnr의 timeout 값이며 단위는 초(second)이다. glsnr에서 client와 통신시에 client가 응답이 없거나 반응이 느린 경우 timeout에 의해서 접속이 해제된다 |
100 ( 0 ~ 2147483647 ) |
LISTENER_LOG_DIR |
glsnr에서 출력되는 log가 저장되는 디렉토리를 설정한다. 설정값의 <GOLDILOCKS_DATA>는 $GOLDILOCKS_DATA환경 변수의 값으로 대체된다 |
<GOLDILOCKS_DATA>/trc |
UDS_DIR |
glsnr에서 사용되는 Unix Domain Socket 파일이 저장되는 디렉토리를 설정한다. 디렉토리 최대 길이는 60byte 이내로 설정해야 한다 |
/tmp |
리스너 기동
% glsnr --start Listener is started successfully.
$ glsnr --start --silent (기동 메시지 출력 안 함)
$ glsnr --start --home Gliese/home/g1n1_home Listener is started successfully
|
리스너 종료
% glsnr --stop Listener is stopped.
|
리스너 상태 확인
$ glsnr --status Listener is not running.
$ glsnr --start Listener is started successfully.
$ glsnr --status Listener process ID : 27880 Listener configuration Unix Domain Path : /tmp/unix-glsnr.22581 TCP Listen Host : 0.0.0.0, default C/S mode : Dedicated Connection Timeout(second)
Listener is running.
|
옵션 확인
$ glsnr --help
Usage: glsnr [options]
Options:
--silent don't print message --start start listener --stop stop listener --status show listener status --help show listner help messages
|