복구 (인스턴스복구)
RAC 에서 미디어 복구 부분은 싱글 인스턴스의 그것과 다르지 않다.
- 인스턴스들은 끊임없이 상호간에 통신을 수행 => 한 인스턴스가 사라지면 다른 인스턴스들은 즉시 인지
- 다른 인스턴스 들은 사라진 인스턴스 복구를 위한 IR 락 획득 경쟁 후 락 획득한 인스턴스가 사라진 인스턴스에 대한 인스턴스 복구 수행
- 장애 인스턴스 캐시에 존재 했던 블록에 적용된 변경을 복구 (커밋 되지 않은 것은 롤백)
- 장애 인스턴스가 소유한 마스터 리소스를 재구성 하고, 장애 인스턴스에 대한 모든 참조를 GRD를 이용하여 클린아웃 수행 후 GRD rebalancing (인스턴스 개수가 달라졌으므로 해시 알고리즘 재적용 필요)
- RAC 복구 장점 : 완전히 자동화됨
- RAC 복구 단점 : GRD 의 재구성과 rebalancing 으로 인해 짧은 순간 동안 인스턴스가 동결됨 (실제 몇초?)
- SHADOW 리소스 & PI(Past Image)
- 장애가 발생한 인스턴스의 마스터 리소스 이미지를 재구성하기 위해 살아 있는 노드들의 모든 SHADOW 리소스를 스캔
- 마스터 리소스를 리빌드할 때, 장애가 발생한 인스턴스에 대한 enqueue 를 소유한 마스터 리소스는 제외할 수 있다. (예외: BL 리소스 / exclusive 락 : 복구가 필요하기 때문)
- PI는 블록의 최근 복사본이며, 디스크에 기록되었을 가능성이 높다.
- PI 블록의 SCN 보다 리두 레코드의 SCN 이 작다면, 복구 불필요 (복구 시간 단축)
REBALANCING
- "논리적" 및 "물리적" 인스턴스에 대한 매우 작은 맵(map)을 유지, 안정적인 상태의 논리적 인스턴스 N 은 물리적 인스턴스 N 이 된다.
- 한 인스턴스가 클러스터에서 분리되면, 다른 논리적 인스턴스에 해당 물리적 인스턴스를 할당하기 위해 맵을 조정하고, 물리적 인스턴스에 대한 마스터 리소스를 재생성한다.
- 이로 인해 모든 리소스를 재분배 할 필요가 없지만, 리소스가 불공평하게 분배됨
- 2차적인 메커니즘이 그뒤에 수행 되어 점진적으로 리소스를 공평하게 분배할 수도 있음
- 해시 알고리즘은 256 블록 (11.2) 단위에 기반, 데이터 파일은 256 개의 연속된 블록의 청크로 나뉘어지고, 청크내의 모든 블록은 하나의 인스턴스가 마스터가 됨 (MULTI BLOCK 읽기 요청시 하나의 인스턴스에 속한 블록들일 가능성이 높다)
- 클러스터 내에 인스턴스를 추가할 때 BL 리소스 재분배 알고리즘은 알기 어렵다, 아마도 각 인스턴스의 모든 N 번째 청크의 관리를 새로운 노드로 전달 하는것 같음