이 글에서는 Oracle Database Enterprise Edition에 포함된 Oracle® Real Application Clusters(RAC) One Node 기능을 소개합니다. 11g Release 2에서 처음 도입된 이 기능은 단일 인스턴스 Oracle Database에 강력한 고가용성(HA)을 제공하여, 계획된 다운타임과 예기치 않은 다운타임 모두로부터 데이터베이스를 보호합니다. 아울러 One Node 사용에 필수적인 Oracle Grid Infrastructure 설치 절차도 단계별로 안내합니다.
소개
RAC One Node는 클러스터 내 한 노드에서 실행되는 단일 인스턴스 Oracle RAC로, 나머지 노드는 콜드 스탠바이(cold standby) 상태로 대기하는 구조입니다. One Node를 활용하면 데이터베이스 배포와 관리 프로세스를 표준화하고, 스토리지를 통합하며, 서비스 중단 없이 전체 멀티 노드 Oracle RAC 데이터베이스로 업그레이드할 수 있습니다.
RAC를 도입하면 지속적인 가용성(continuous availability)을 실현할 수 있습니다. 투명 애플리케이션 페일오버(TAF, Transparent Application Failover)라는 페일오버 라우팅 메커니즘이 서버 장애나 노드 사용 불가 상황에서 트랜잭션을 정상 서버로 자동 전환해 주기 때문에 지연 시간이 거의 발생하지 않습니다.
특히 TAF는 새 노드로 인스턴스를 신속하게 복제(clone)하는 방식으로 동작한다는 점이 특징입니다.
"노드에 장애가 발생하면 Oracle Clusterware가 클러스터 내 다른 서버에서
Oracle RAC One Node 인스턴스를 자동으로 재시작합니다."
TAF는 다운타임 없이 인스턴스 재배치(relocation)를 자동화하고 수동 개입 없이 처리할 수 있다는 점에서 큰 이점을 제공합니다. 이 과정에는 인스턴스 마이그레이션과 재배치를 원활하게 지원하는 Omotion 기능이 활용됩니다.
RAC One Node vs RAC
전통적으로 RAC는 여러 개의 독립 인스턴스가 각각 별도의 서버에서 구동되는 멀티 노드 아키텍처로 운영됩니다. 반면 RAC One Node는 클러스터 내 단일 노드에서 구동되는 RAC 형태로, 치명적 서버 장애나 순간 장애 발생 시 빠른 인스턴스 재배치(instance relocation) 기능을 제공합니다.
RAC는 라이브-라이브(live-live) 방식으로 동작합니다. 클러스터의 모든 노드가 활성 상태로 연결과 워크로드를 동시에 수용하며, 하나의 유닛처럼 협업합니다.
RAC One Node는 이름 그대로 라이브-스탠바이(live-standby) 방식으로 동작합니다. 한 노드만 활성 상태를 유지하고, 활성 노드에 계획된 또는 계획되지 않은 장애가 발생하면 나머지 노드가 워크로드를 즉시 인계받습니다.
RAC One Node의 주요 장점
RAC One Node 아키텍처가 제공하는 대표적인 이점은 다음과 같습니다.
- 세션을 온라인 상태를 유지한 채 활성 노드에서 마이그레이션할 수 있습니다.
- RAC One Node ↔ RAC 간 온라인 업그레이드가 간편합니다.
- Exadata 환경을 지원합니다.
- Oracle VM(OVM) 환경을 지원합니다.
- 롤링 패치(Rolling Patch) 적용 시 RAC와 동일한 인터페이스를 제공합니다.
- 11.2.0.2 버전부터 DBCA(Database Configuration Assistant)로 One Node 데이터베이스를 손쉽게 생성할 수 있습니다.
- RAC가 지원되는 동일한 플랫폼에서 One Node도 지원됩니다.
- 클러스터 페일오버 메커니즘이 높은 가용성을 보장합니다.
설치 전 필수 조건 (Red Hat Enterprise Linux Server 6)
One Node를 설치하기 전에 다음 작업을 반드시 수행해야 합니다.
root사용자로 Oracle 소프트웨어를 소유할 사용자 계정과 OS 그룹을 생성합니다.- 모든 노드의 날짜와 시간 설정을 최대한 동일하게 맞춥니다.
ntpd의 -x 옵션 또는 Oracle Cluster Time Synchronization Service(CTSSD)를 사용해 시간을 동기화할 수 있으며,ntpd -x구성 방법은 My Oracle Support 문서(ExtNote:551704.1)에서 확인할 수 있습니다. - 클러스터의 각 노드에 SSH(Secure Shell)를 구성하고, 다음 RPM 패키지가 설치되어 있는지 확인합니다.
binutils-2.20.51.0.2-5.11.el6.i686 compat-libcap1-1.10-1.i686 compat-libstdc++-33-3.2.3-69.el6.i686 gcc-4.4.4-13.el6.i686 gcc-c++-4.4.4-13.el6.i686 glibc-2.12-1.7.el6.i686 glibc-devel-2.12-1.7.el6.i686 Ksh libgcc-4.4.4-13.el6.i686 libstdc++-4.4.4-13.el6.i686 libstdc++-devel-4.4.4-13.el6.i686 libaio-0.3.107-10.el6.i686 libaio-devel-0.3.107-10.el6.i686 make-3.81-19.el6.i686 sysstat-9.0.4-11.el6.i686 - ASM 라이브러리를 점검합니다. Red Hat Enterprise Linux Server 6용으로 다음 Oracle ASMLib 패키지가 필요합니다.
oracleasm-support-2.1.8-1.el6.x86_64.rpm oracleasmlib-2.0.4-1.el6.x86_64.rpm - Oracle Downloads 사이트에서 Grid 및 RDBMS 설치 소프트웨어를 다운로드합니다. 설치 대상 플랫폼에 맞는 바이너리를 선택하세요.
- 양쪽 노드 모두에 Oracle Grid CRS Home용 디렉터리를 생성합니다. 기본적으로 Grid는
/u02/app에 설치됩니다.[grid@BOSODBD01 grid]$ cd /u02/app [grid@BOSODBD01 app]$ ls -lrt total 12 drwxr-xr-x. 3 root oinstall 4096 Sep 28 00:31 grid drwxrwxr-x. 9 grid oinstall 4096 Sep 30 22:48 oracle drwxrwx---. 6 grid oinstall 4096 Oct 7 21:11 oraInventory [grid@BOSODBD01 grid]$ ls -lrt total 4 drwxr-xr-x. 68 root oinstall 4096 Sep 28 00:36 11.2.0.4
Grid 설치
다음 절차에 따라 Grid를 설치합니다.
1단계: 설치 시작
VNC(Virtual Network Computing) 연결을 열고 grid 사용자로 접속한 뒤, Grid Infrastructure 설치 zip 파일을 저장해 둔 폴더로 이동(cd)하여 파일의 압축을 해제하고 ./runInstaller를 실행합니다.
첫 번째 설치 화면에서 Skip software updates(소프트웨어 업데이트 건너뛰기)를 선택하고 Next를 클릭한 후, 아래 이미지와 같이 옵션을 선택합니다.
다음 화면에서 Advanced Installation(고급 설치)을 선택합니다.
2단계: 노드 정보 입력
클러스터 이름과 SCAN 이름을 입력하고, 클러스터 노드 정보 화면에 올바른 기본 노드들이 표시되는지 확인합니다.
3단계: SSH 연결 구성 및 테스트
SSH Connectivity를 클릭하고 grid 사용자의 OS 비밀번호를 입력한 후 Setup을 선택하면, 비밀번호 없는 SSH 연결이 구성되고 테스트됩니다.
4단계: 네트워크 선택
아래 이미지와 같이 서브넷에 맞게 Network Interface Name과 Type을 선택합니다. 하나의 서브넷에는 하나의 인터페이스만 연결해야 합니다.
스토리지 옵션으로 Oracle ASM을 선택하고, 아래 이미지와 같이 데이터 스토리지용 디렉터리를 지정합니다.
5단계: 그룹 선택
아래 이미지와 같이 OS 그룹을 선택할 때는 매우 신중해야 합니다. 잘못된 그룹을 지정하면 이후 권한 문제가 발생할 수 있습니다.
6단계: Grid 디렉터리 지정
아래 이미지와 같이 Oracle Grid Infrastructure 클러스터의 base 디렉터리, HOME용 소프트웨어 디렉터리, 인벤토리(inventory) 디렉터리를 지정합니다.
7단계: 설치 완료
설정 검사(setup checks)가 끝나면 Ignore All을 체크하고 Next를 클릭해 설치를 진행합니다.
설치가 완료되면 아래 이미지와 같이 root.sh 스크립트 실행을 잊지 마세요.
8단계: 설치 후 점검
다음 작업을 수행해 설치가 정상적으로 완료되었는지 검증합니다.
root사용자로 다음 명령을 실행해 Grid 설치 상태를 확인합니다../crs_stat –t ./crsctl check cluster –allgrid사용자로 다음 명령을 실행해 Grid 설치를 확인합니다.crsctl query css votedisk- $GRID_HOME/bin 경로에서 다음 명령을 실행해 디스크 그룹(diskgroup)을 생성합니다.
asmca
데이터베이스 설치
다음 절차에 따라 데이터베이스를 설치합니다.
1단계: RDBMS 설치
oracle 사용자(RDBMS 소프트웨어 소유자)로 전환한 뒤 다음 명령으로 인스톨러를 실행합니다.
# su – oracle
# cd directory-where-you-staged-the-RDBMS-installation-software
# ./runInstaller
참고: 반드시 의도된 소프트웨어 소유자 계정으로 인스톨러를 실행해야 합니다. 소프트웨어 소유자를 변경하는 유일하게 지원되는 방법은 데이터베이스를 재설치하는 것이기 때문입니다.
2단계: Grid 옵션 선택
데이터베이스 설치 절차를 진행하다가 Grid Installation Options 화면이 나타나면, 아래 이미지와 같이 선택합니다.
3단계: 데이터베이스 구성 옵션 선택
데이터베이스 구성 유형과 세부 정보를 요구하는 화면에서는 아래 이미지와 같이 선택하고, 데이터베이스 스토리지를 묻는 질문에는 반드시 Oracle Automatic Storage Management를 선택합니다.
4단계: 디스크 그룹 선택
디스크 그룹은 Grid 설치 이후 생성됩니다. 아래 이미지와 같이 해당 디스크 그룹을 선택합니다.
오류가 표시되면 아래 이미지와 같이 Ignore All을 체크하여 무시합니다.
RAC One Node 주요 명령어
One Node 관리에 사용할 수 있는 대표적인 명령어는 다음과 같습니다.
srvctl config database -d <database_name>
출력 항목에 Type: RACOneNode가 표시되며, 이는 해당 데이터베이스가 One Node RAC임을 의미합니다.srvctl status database -d <database_name>
데이터베이스의 현재 상태를 확인합니다.srvctl relocate database -d <database_name> -n <hostname> -w 10 -v
RAC One Node를 클러스터 내 다른 노드로 재배치합니다. 현재 실행 중인 인스턴스를 종료한 후 다른 노드에서 데이터베이스 인스턴스를 새로 시작합니다.
결론
Oracle RAC One Node는 Oracle Database 가용성을 한층 끌어올리는 강력한 기능입니다.
최근 많은 조직이 서버 부하 감소, 인스턴스 가용성 향상, 워크로드 절감, 일상 운영을 방해하는 유지보수 다운타임 최소화, 그리고 데이터베이스 관리의 간소화를 추구하고 있습니다. Oracle RAC One Node는 클라우드 환경의 데이터베이스와 배포를 포함해 이러한 요구를 충족하는 최고 수준의 솔루션입니다.
궁금한 점이나 의견이 있다면 피드백 탭을 통해 남겨 주세요. 데이터베이스 서비스에 대해 더 자세히 알아보세요.