LINUX
2019.02.15 / 19:11

tibero 기동과 종료

hanulbit
추천 수 4

1. 기동 단계

1) nomount : parameter 조회, instance 조회

2) mount : controlfile만 있다면 조회가 가능

- open이 아닐 경우 sys만 접속, 사용자 데이터 조회 불가, dictionary view 사용

- $TB_SID.tip이 정상일 경우 instance 기동에 문제가 없음

- c1.ctl : control file(binary)이고 redolog 및 datafile 목록

  size는 크지 않지만 tibero instance가 이용하고 redolog, datafile에 접근이 가능한 것은 DB의 PATH 정보를 담음

- controlfile은 기록내역과 경로까지 정보를 담고 있기 때문에 메타데이터 정보와 일치해야 open 가능

  다중화된 controlfile 중 하나라도 망가지면 open에 어려움이 있음

- 손상된 파일은 mount모드에서 redo recover로 복구

3) open

 

2. 기동 방법

1) resetlogs : 복구 할 때 자주 사용

2) tbboot 할 때 normal 모드 일 때만 정상적으로 작동

 

3. 티베로 프로세스 확인 방법
[tibero@localhost ~]$ ps -ef | grep tbsvr
tibero     3920      1 15 11:19 pts/1    00:00:01 tbsvr          -t NORMAL -SVR_SID tibero
tibero     3922   3920  0 11:19 pts/1    00:00:00 tbsvr_TBMP     -t NORMAL -SVR_SID tibero
tibero     3923   3920  0 11:19 pts/1    00:00:00 tbsvr_WP000    -t NORMAL -SVR_SID tibero    // 쓰레드를 10개
tibero     3924   3920  1 11:19 pts/1    00:00:00 tbsvr_WP001    -t NORMAL -SVR_SID tibero
tibero     3925   3920  0 11:19 pts/1    00:00:00 tbsvr_PEP000   -t NORMAL -SVR_SID tibero    // 병렬 쓰레드
tibero     3926   3920  0 11:19 pts/1    00:00:00 tbsvr_PEP001   -t NORMAL -SVR_SID tibero
tibero     3927   3920  0 11:19 pts/1    00:00:00 tbsvr_PEP002   -t NORMAL -SVR_SID tibero
tibero     3928   3920  0 11:19 pts/1    00:00:00 tbsvr_PEP003   -t NORMAL -SVR_SID tibero
tibero     3929   3920  7 11:19 pts/1    00:00:00 tbsvr_AGNT     -t NORMAL -SVR_SID tibero
tibero     3930   3920  0 11:19 pts/1    00:00:00 tbsvr_DBWR     -t NORMAL -SVR_SID tibero
tibero     3931   3920 10 11:19 pts/1    00:00:00 tbsvr_RECO     -t NORMAL -SVR_SID tibero
tibero     4036   3861  0 11:19 pts/1    00:00:00 grep --color=auto tbsvr

 

4. tbdown

1) tbdown -h : tbdown에 대한 옵션 설명

2) 정상 종료

- tbdown normal : 접속한 세션이나 진행되고 있는 트랜잭션이 있는 경우 끝날 때까지 기다린다.

- tbdown post_tx : 모든 트랜잭션이 끝날 때까지 기다린 후 종료, commit을 하지 않을 경우 계속 기다린다.

- tbdown immediate : 접속한 세션이나 트랜잭션을 강제로 세션 종료, rollback 후 종료된다.

3) 비정상 종료 (강제로 외부에서 죽이는 방법)  // 비정상 종료 이후에 재기동 시간 걸리고 tibero monitor process(MTHR)가 메시지를 받고 다른 process에게 강제 종료 시그널을 전달한다.

- tbdown abort : 트랜잭션을 정리하지 않고 instance가 내려간다.(rollback 안 함)

- tbdown sitchover

- tbdown abnormal : process를 kill로 종료시키기 때문에 log에 남지 않는다.

- tbdown clean : log가 남지 않고 공유메모리나 쓰레드 자원을 해제시킨다.

  tibero가 비정상 종료일 때 충돌이 나서 기동되지 않는 경우 tbdown clean을 수행하여 instance를 강제 종료한다.

 

** CPU가 100% 사용하고 있을 때 비정상적인 종료를 하면 abort라도 종료가 안 될 수 있다.

   서로 메시지를 주고 받을 수 없을 때 OS kill 명령어가 정상 작동하더라도 abnormal로 종료가 된다.

 

-------------------- 연습 --------------------

▶ 1번 세션(terminal_1)

[tibero@localhost ~]$ tbsql sys/tibero

tbSQL 6

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Connected to Tibero.

SQL> create table t1(c1 number);

Table 'T1' created.

SQL> insert into t1 values(10);

1 row inserted.
▶ 2번 세션(terminal_2)

[tibero@localhost ~]$ tbsql sys/tibero

tbSQL 6

TmaxData Corporation Copyright (c) 2008-. All rights reserved.

Connected to Tibero.

SQL> select count(1) from v$transaction;

  COUNT(1)
----------
         1

1 row selected.

SQL> tbdown post_tx

▶ 1번 세션(terminal_1)

SQL> commit;

▶ 2번 세션(terminal_2)
DB instance was terminated.

▶ 종료 후 프로세스 확인 : 살아있는 프로세스 없음
[tibero@localhost ~]$ ps -ef | grep tbsvr


 

5. 종료 단계

1) database close : TSM에 있는 모든 database data와 recover data를

   datafile, redologfile에 각각 기록 → dirty block을 disk에 내리고 close

2) dismounting database : controlfile에 이전의 log를 기록

3) instance shutdown : TSM에 있는 memory가 제거되고 process가 종료

   abnormal shutdown이 되었을 경우 TSM에 memory가 상주되어 있거나 process가 종료되지 않을 수 있다.

   따라서 이전 instance를 제거하거나 tbdown abort 명령어로 새로운 instance를 강제 종료하고 tbdown clean 한다.