Oracle RAC Failover
1.FailOver 구성
① CTF(Connection Time Failover)
- 기본적으로 RACA를 구성하면 적용 됨.
② TAF(Transparent Application Failover)
- TAF는 별도의 구성작업 필요.
TAF_11G_TEST = (DESCRIPTION = (LOAD_BALANCE=ON) (FAIL_OVER=ON) (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.20X)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.20X)(PORT = 1521))) (CONNECT_DATA= (SERVICE_NAME = RAC) (FAILOVER_MODE= (TYPE=select) (METHOD=PRECONNECT) ) )
TYPE 1) Session : select fetch중에 Fail 발생 / Long Query 수행 시 재실행 필요 2) Select : Fetch중에 Fail 발생하더라도 Fetch 계속 / Fail시점에 부하 증가 METHOD 1) BASIC : Fail-Over 시점에 Connection 시도 / Fail 시점에 부하증가 2) Preconnect : Fail 시점이 아닌 Initial Connection시 맺어 놓음 / Memory 사용량 증가(PGA) |
③ JDBC FailOver 설정
jdbc:oracle:thin:@(DESCRIPTION= (LOAD_BALANCE=OFF)(FAILOVER=ON) (ADDRESS=(PROTOCOL=TCP) (HOST=서버주소1) (PORT=1521)) (ADDRESS=(PROTOCOL=TCP) (HOST=서버주소2) (PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=서비스네임))) <pre>jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=OFF)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP) (HOST=서버주소1) (PORT=1521))(ADDRESS=(PROTOCOL=TCP) (HOST=서버주소2) (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=서비스네임))) |
2.FailOver TEST Scenario
Target | 설명 | 비고 | 동작 후 상태 | 예상결과 |
Node 1 | 네트워크 1번 장애시 서비스 정상 유무 확인 | Node1에 미리 접속되어있는 세션 alive 여부 확인 | Listener shutdown | 신규 세션은 2번노드로 접속 |
Node 2 | 네트워크 1번 장애시 서비스 정상 유무 확인 | Node2에 미리 접속되어있는 세션 alive 여부 확인 | Listener shutdown | 신규 세션은 1번노드로 접속 |
Node 1 | VIP FAILBACK 확인 |
|
|
|
Node 2 | VIP FAILBACK 확인 |
|
|
|
Node 1, 2 | Private Network 라인 절체 ( 브레인 스플릿 ) | 기존 세션 alive 여부 확인 | CRS 재기동 후 통신X | 신규 세션은 1번노드로 접속 |
Node 1 | /etc/hosts의 VIP address 변경 후 cluster 시작 |
|
| IP 관련 에러메시지와 함께 cluster(CRS) 시작 불가 |
Node 2 | /etc/hosts의 VIP address 변경 후 cluster 시작 |
|
| IP 관련 에러메시지와 함께 cluster(CRS) 시작 불가 |
Node 1 | srvctl stop instance -d SID -i SID1 | Node1에 미리 접속되어있는 세션 alive 여부 확인 | Instance shutdown | 신규 세션은 2번노드로 접속 |
Node 2 | srvctl stop instance -d SID -i SID2 | Node2에 미리 접속되어있는 세션 alive 여부 확인 | Instance shutdown | 신규 세션은 1번노드로 접속 |
Node 1 | shutdown immediate | Node1에 미리 접속되어있는 세션 alive 여부 확인 |
| 신규 세션은 2번노드로 접속 |
Node 2 | shutdown immediate | Node2에 미리 접속되어있는 세션 alive 여부 확인 |
| 신규 세션은 1번노드로 접속 |
Node 1 | SID1의 oracle Instance의 smon을 kill로 죽였을 경우 |
| Instance 재기동 | 신규 세션은 2번노드로 접속후 DB 재기동 후 다시 1번노드로 정상접속 |
Node 2 | SID 2의 oracle Instance의 smon을 kill로 죽였을 경우 |
| Instance 재기동 | 신규 세션은 1번노드로 접속후 DB 재기동 후 다시 2번노드로 정상접속 |
Node 1 | srvctl stop listener -n node1 |
| Listener shutdown | 신규 세션은 2번노드로 접속, 기존세션 영향X |
Node 2 | srvctl stop listener -n node2 |
| Listener shutdown | 신규 세션은 1번노드로 접속, 기존세션 영향X |
Node 1 | Listener Process를 kill로 죽였을 경우 |
| CRS가 Listener 재기동 | 신규 세션은 2번노드로 접속후 리스너 재기동 후 다시 1번노드로 정상접속, 기존세션 영향X |
Node 2 | Listener Process를 kill로 죽였을 경우 |
| CRS가 Listener 재기동 | 신규 세션은 1번노드로 접속후 리스너 재기동 후 다시 2번노드로 정상접속, 기존세션 영향X |
Node 1 | crsctl stop crs | Node1에 미리 접속되어있는 세션 alive 여부 확인 | CRS정지 | 신규 세션은 2번노드로 접속 |
Node 2 | crsctl stop crs | Node2에 미리 접속되어있는 세션 alive 여부 확인 | CRS정지 | 신규 세션은 1번노드로 접속 |
Node 1 | kill -9 | Node1에 미리 접속되어있는 세션 alive 여부 확인 | 즉시 재기동 | 영향 없음 |
Node 2 | kill -9 | Node2에 미리 접속되어있는 세션 alive 여부 확인 | 즉시 재기동 | 영향 없음 |
Node 1 | kill -9 | Node1에 미리 접속되어있는 세션 alive 여부 확인 | 즉시 재기동 | 영향 없음 |
Node 2 | kill -9 | Node2에 미리 접속되어있는 세션 alive 여부 확인 | 즉시 재기동 | 영향 없음 |
Node 1 | kill -9 | Node1에 미리 접속되어있는 세션 alive 여부 확인 | ohasd.bin restart | 영향 없음 |
Node 2 | kill -9 | Node2에 미리 접속되어있는 세션 alive 여부 확인 | ohasd.bin restart | 영향 없음 |
Node 1 | kill -9 | Node1에 미리 접속되어있는 세션 alive 여부 확인 | 즉시 서버 리부트 | 신규 세션은 2번노드로 접속 |
Node 2 | kill -9 | Node2에 미리 접속되어있는 세션 alive 여부 확인 | 즉시 서버 리부트 | 신규 세션은 1번노드로 접속 |
Node 1 | kill -9 | Node1에 미리 접속되어있는 세션 alive 여부 확인 | 즉시 서버 리부트 | 신규 세션은 2번노드로 접속 |
Node 2 | kill -9 | Node2에 미리 접속되어있는 세션 alive 여부 확인 | 즉시 서버 리부트 | 신규 세션은 1번노드로 접속 |
Node 1 | shutdown -r now(init 6) |
| 서버 다운 | 신규 세션은 2번노드로 접속 |
Node 2 | shutdown -r now(init 6) |
| 서버 다운 | 신규 세션은 1번노드로 접속 |
Node 1 | 전원 off | Node1에 미리 접속되어있는 세션 alive 여부 확인 | 서버 다운 | 신규 세션은 2번노드로 접속 |
Node 2 | 전원 off | Node2에 미리 접속되어있는 세션 alive 여부 확인 | 서버 다운 | 신규 세션은 1번노드로 접속 |
'1. IT Story > DB' 카테고리의 다른 글
Oracle oradebug활용 Troubleshoot (0) | 2015.09.04 |
---|---|
Oracle RAC 11gR2 주요 Command(명령어) (0) | 2015.09.04 |
Oracle Flashback (0) | 2015.09.04 |
Oracle RAC 11gR2 Management (0) | 2015.09.04 |
OCR, VOTE ASM Disk에서 RawDevice로 Disk 변경 TEST (0) | 2015.08.26 |
ODA 기본 OS 상태(OVM환경)에서 Grid & DB Installation (0) | 2015.08.26 |
Oracle Exadata TEST Single Database Installation : Install Database S/W & TEST Database (1) | 2015.08.21 |
Oracle Exadata TEST Single Database Installation : Install Grid Infrastructure (1) | 2015.08.21 |