데이터베이스와 인스턴스
단일 인스턴스와 RAC의 인스턴스 및 데이터베이스 대응 관계, RAC 여부를 조회하는 방법
#핵심 요약
인스턴스 하나는 데이터베이스 하나에만 연결됨
같은 서버에 데이터베이스가 여러 개면 데이터베이스마다 인스턴스가 하나씩 필요함
RAC(Real Application Clusters)는 서로 다른 서버의 여러 인스턴스가 공유 스토리지에 있는 데이터베이스 하나에 동시에 연결된 구성임
RAC에서도 "인스턴스 하나는 데이터베이스 하나에만" 원칙은 지켜짐
완화되는 것은 반대 방향, "데이터베이스 하나는 인스턴스 하나만"임
GV$INSTANCE의 PARALLEL 열과 CLUSTER_DATABASE 파라미터로 RAC인지 단일 인스턴스인지 확인함
#개념과 동작 원리
| 구성 | 형태 | 인스턴스 : 데이터베이스 |
|---|---|---|
| 비클러스터(단일 인스턴스) | 각 인스턴스가 로컬 스토리지의 자기 데이터베이스에 연결 | 1 : 1 |
| 클러스터(RAC) | 여러 서버의 인스턴스가 공유 스토리지의 데이터베이스 하나에 연결 | N : 1 |
RAC의 목적: 인스턴스 하나에 장애가 나도 나머지가 서비스를 이어가는 고가용성, 부하를 여러 인스턴스가 나누는 성능 확장
실습에서는 금융권과 대규모 커머스의 운영 데이터베이스에서 RAC를 자주 접한다고 적었음
V$ 뷰는 접속한 인스턴스 하나의 정보만, 이름 앞에 G(Global)가 붙은 GV$ 뷰는 RAC 전체 노드의 정보를 모아 보여 줌
실습에서는 Grid Infrastructure 설치 파일 안에 클러스터 소프트웨어와 ASM 소프트웨어가 들어 있다고 적었음
설치는 ASM과 Oracle Restart 단일 인스턴스 구성를 봄
#필수 명령어 또는 SQL
SELECT instance_number, instance_name, host_name, parallel
FROM gv$instance;
SHOW PARAMETER cluster_database결과 해석:
| 구성 | GV$INSTANCE 결과 |
CLUSTER_DATABASE |
|---|---|---|
| 단일 인스턴스 | 행 1개, PARALLEL = NO |
FALSE |
| RAC(예시, 2노드) | 노드마다 1행, PARALLEL = YES |
TRUE |
수업 자료 본문은 "V$INSTANCE의 PARALLEL 열"을 조회하라고 적고 예시 SQL은 GV$INSTANCE를 썼음
#사용 조건과 주의사항
RAC 여부에 따라 기동, 종료 절차와 장애 대응이 달라지므로 낯선 서버에서는 먼저 확인함