기술 정보
home
채널 소개
home

DB 비정상 종료시 DB down, boot 과정

문서 유형
기술 정보
분야
백업/복구
키워드
DB down
DB boot
1 more property

개요

특정 사유로 DB를 비정상적으로 종료할 시 down 및 로그 포함한 기동 절차에 대해 안내합니다.

방법

1. 모든 DB 접속세션 종료

WAS down 등으로 모든 DB 접속세션을 끊습니다. (jdown, kill -9 [jeus pid])

2. 세션 rollback 예상시간 확인

SQL> select sess_id, start_time, used_blk, EXP_RB_TIME from v$transaction; SESS_ID START_TIME USED_BLK EXP_RB_TIME ---------- -------------------------------- ---------- ----------- 33 2016-04-22 19:35:32 142690 970 1 row selected.
SQL
복사

3. DB 강제 종료

rollback 예상시간이 오래 걸려 완료까지 기다릴 수 없을 경우, checkpoint 수행 후 강제로 DB를 종료합니다.
-- checkpoint 수행 SQL> ALTER SYSTEM CHECKPOINT;
SQL
복사

4. tbdown abort

5. recovery 수행

다음 tbboot 시 recovery를 진행합니다.
[cache recovery 진행] [ACF][0] 01 tbsvr_mo:166 [0] acquires Instance Recovery lock(MOUNT mode) [ACF][0] 01 tbsvr_mo:230 [0] holding Instance Recovery locks(RECOVERY mode) [CLC][0] 01 tc_recov:1761 [0] TC RECOVERY...PREPARE[CLC][0] 01 tc_recov:1249 THREAD#0 logfile scanned. flushed=[582.4194386/0000.02c5dd33]. [CLC][0] 01 tc_recov:1271 THREAD#0, Recovery start tsn progress.(0000.02c02bdc => 0000.02c075d6) [CLC][0] 01 tc_recov:1400 THREAD#0 needs REPLAY, from 0000.02c075d6, (5786040 LOG_BLKs) [CLC][0] 01 tc_cf_df:2012 DATAFILES OPEN 0000.02c5dd34 [CLC][0] 01 tc_recov:1990 [0] TC RECOVERY...START. incar no 0[CLC][0] 01 tc_rset.:1382 RSET inits claiming bufs 632142 [CLC][0] 01 tc_rset.:1451 no more free bh for recovery [CLC][0] 01 tc_rset.:1485 complete_ir=0 claiming bufs (reco: 204512/632142, cur: 427630, skip: 0) [CLC][0] 01 tc_recov:2065 [0] can perform Partial Instance Recovery [cache recovery 1st pass Done.] [CLC][0] 01 tc_recov:2073 [0] IR 1st Pass Done … [cache recovery 2nd pass Done.] [CLC][0] 01 tc_recov:2018 [0] IR 2nd Pass Done … [cache recovery 완료] [CLC][0] 01 tc_recov:2090 [0] TC RECOVERY...DONE ... [Tx recovery 진행] [CT-][0] 01 tx_recov:1001 TX RECOVERY...PREPARE [CT-][0] 01 tx_recov:1094 TX RECOVERY...START (dead 34)[DB는 open 되고 Tx recovery는 특정세션에서 계속 진행.] [FRM][0] 01 tbsvr_ma:1496 Server is running at NORMAL mode (bootmode : NORMAL)[Tx recovery 완료] [CT-][0] 01 tx_recov:696 TX RECOVERY...DONE
SQL
복사
참고
세션이 종료되었을 때 진행 중이던 트랜잭션이 있다면, sess_recoverting이 수행됩니다.
이때 tbdown immediate 명령으로 종료했을 경우, sess_recoverting 이 완료될 때까지 기다렸다가 DB가 down 되며 tracelog에서는 30초 간격으로 나타나는 메시지를 통해 sess_recoverting 중임을 확인할 수 있습니다.
tbsvr_er:063 THROW. ec=ERROR_SERVER_IN_SHUTDOWN(-12039) [ Server instance is shutting down. ] (csr_id:4294967295) [tbsvr_wthr.c:2145:wthr_get_new_cli_con] [30초 간격으로 출력] tbsvr_sh:229 shutdown: waiting for releasing SESS lock (tid=38, thr_status=THR_STAT_WAITING, sess_status=SESS_RECOVERING) tbsvr_sh:229 shutdown: waiting for releasing SESS lock (tid=38, thr_status=THR_STAT_WAITING, sess_status=SESS_RECOVERING)
SQL
복사
주의
cache recovery는 수행하지 않고 건너뛸 수 없습니다.
또한, cache recovery 진행 도중 instance 종료 후 재 시작을 하게 된다면 처음부터 다시 시작하게 됩니다.