제 1장. RAC(Real Application Cluster) 1. GRID/RAC 개념 1) GRID의 개념 - 사용자가 원하는 데이터가 어디에 있는지, 어떤 컴퓨터가 요청을 처리하는지는 몰라도 원하는 만큼의 정보를 처리할 수 있음 - 기업의 IT환경에 적용해 보면, 기업내에 산재해 있는 소형 서버들을 연결하여 커다란 컴퓨터 처럼 사용한다는 개념 ■ 자원할당 : 자원을 요청하고 필요로 하는 누구든지 원하는 것을 얻을 수 있도록 하는것 ■ 정보공유 : 사용자와 Application이 필요로 하는 정보는 언제 어디서나 필요에 따라 이용할 수 있도록 해주는 것 ■ 고가용성 - GRID컴퓨팅의 필요성 저렴한 가격으로 기업의 인프라를 효율적으로 활용 할 수 있는 최적의 솔루션 - Oracle GRID 컴퓨팅 기업내 존재하는 중소형 서버들을 GRID 기술로 연결해 유휴 자원을 활용한다는 것 저비용 고효율을 강조하는 기업환경에서 오라클 GRID컴퓨팅 기술을 통해 저렴한 여러개의 서버를 연결시켜 하나의 커다란 서버로 활용가능. Oracle 10g의 g가 GRID의 g 2) RAC 개념 - Oracle Real Application Cluster는 OPS(Oracle Parallel Server)의 후속 제품으로 개발되어 Oracle 9i 버전부터 적용되어 있다 - 동일 데이터베이스를 여러 인스턴스가 접근할 수 있다 - 모든 노드가 동일한 데이터베이스에 접속가능하다 - 데이터베이스 디스크는 모든 노드가 Database에 access를 허용하기 위해 전역으로 사용해야 함 ![]() 2) RAC의 장점 ■ 확장성 - 데이터의 증가로 인한 시스템부하를 발생하면 더 큰 시스템을 구매하고 이관하는데 많은 비용이 소모되었다. ■ 고가용성 - Rolling Patch, Rolling Upgrade로 서비스 정지를 최소화 시켜줌 ![]() 2. RAC구조 및 동작원리 1) RAC구조 물리적인 하나의 데이터베이스를 여러대의 서버가 공유하는 것 모든 노드들은 같은 데이터를 사용하게 되어 논리적으로는 하나의 데이터베이스를 이용하는 것임 ![]() [ 노드 3개를 이용하여 RAC를 구성한 예 ] ![]() [ 최적의 구성예 ] ![]() 3. RAC 구성 시 고려사항 1) RAC 내 공유 오브젝트의 관리 ![]() [ 설계방향 ] - 인스턴스별로 사용하는 오브젝트에 대한 파티션 나누기 : 공유테이블 생성시 경합을 최소화 하기 위해 extent 를 인스턴스별로 할당한다 : 시퀀스 같이 공유하는 오브젝트의 캐시값을 증대시킨다 - LOCK의 배분을 조절(init.ora의 gc_files_to_lock, gc_rollback_segment 등) : 공유 오브젝트를 중점 관리 테이블스페이스에 집중화 하고, 이 테이블스페이스에 많은 LOCK을 할당한다 : 조회 위주의 데이터와 전혀 공유하지 않는 데이터(한 노드에서만 사용하는 데이터) 에는 LOCK을 최소화 한다 - 동시에 같은 데이터를 액세스 하는 애플리케이션은 한 노드에서 수행하도록 하는 어플리케이션 파티셔팅 : 동일한 어플리케이션은 같은 노드에서 수행하도록 배치한다 : 업무별로 그룹핑하여 노드간에 경합이 없도록 한다 2) 인스턴스 장애 시 복구요구 시간 산정 - 하나의 노드에 장애가 발생 했을때 얼마나 빠른 시간내에 서비스를 할수 있는가에 대한 요구사항을 기반으로 인스턴스 복구 시간을 고려해 구성해야 함 3) 어플리케이션 서비스의 자동복구 요구 - 돌발 장애시 사용자가 모르게 복구되기를 원한다면 ![]() 4) 자원의 효율적인 사용요구 - 많은 사용자가 시스템 사용시 모든 노드가 균일하게 사용하도록 해야 한다.
|