>데이터 베이스 >Oracle >Oracle 클래식 기술 RAC에 대한 자세한 설명

Oracle 클래식 기술 RAC에 대한 자세한 설명

WBOY
WBOY앞으로
2022-03-14 17:28:113992검색

이 기사에서는 RAC 관련 문제를 주로 소개하는 Oracle에 대한 관련 지식을 제공합니다. Oracle Real Application Cluster는 클러스터 환경에서 다중 시스템 공유 데이터베이스를 구현하여 애플리케이션의 고가용성을 보장하는 데 사용됩니다.

Oracle 클래식 기술 RAC에 대한 자세한 설명

추천 튜토리얼: "Oracle Tutorial"

증가하는 비즈니스 볼륨을 처리하기 위해 일반적으로 두 가지 일반적인 방향이 있습니다. 하나는 수직적 확장, 즉 CPU 컴퓨팅 성능, 메모리 용량 및 메모리 용량을 늘리는 것입니다. 단일 서버의 디스크 운반 용량 등, 다른 하나는 서버 수를 늘려 처리 능력을 높이는 것입니다. 전자는 업무 중단, 확장 제한 등 많은 문제를 안고 있으며, 특히 인터넷 서비스의 급속한 발전으로 인해 단일 서버로는 업무 부하 요구 사항을 충족하기 어렵기 때문에 현재는 수평적 확장 방식이 더 많이 사용되고 있습니다.

Oracle RAC란 무엇입니까?

Oracle Real Application Cluster(RAC, 실시간 애플리케이션 클러스터)는 클러스터 환경에서 다중 시스템 공유 데이터베이스를 구현하는 데 사용되어 애플리케이션의 고가용성을 동시에 보장하며 병렬 처리 및 로드를 자동으로 실현할 수 있습니다. 균형을 유지하고 내결함성 및 중단점 없는 복구 시 데이터베이스 오류를 실현할 수 있습니다. 네트워크 컴퓨팅 환경을 지원하는 오라클 데이터베이스의 핵심 기술입니다.

공유 스토리지 다중 활성 클러스터

이 아키텍처에서는 클러스터의 여러 노드가 동일한 데이터베이스 인스턴스를 실행하고 데이터가 완전히 일관되며 사용자가 어떤 노드에서 액세스하든 얻은 데이터는 동일합니다. 아래 그림은 Oracle RAC의 개략도입니다. 클러스터는 3개의 노드로 구성되며 데이터를 공유합니다.
Oracle 클래식 기술 RAC에 대한 자세한 설명
RAC의 특징은 다음과 같이 요약할 수 있습니다.

  • 노드는 서로 연결되어 하나의 서버로 나타납니다.
  • 클러스터 소프트웨어는 내부 구조를 숨깁니다.
  • 디스크는 공유됩니다.
  • 각 머신은 동일한 운영 체제를 사용합니다.
  • 여러 인스턴스가 동일한 데이터베이스에 액세스합니다.
  • 각 노드에는 하나의 인스턴스가 있습니다.
  • 데이터베이스 파일은 물리적 또는 논리적 액세스를 지원합니다.
  • 데이터 읽기 및 쓰기는 소프트웨어에 의해 제어됩니다.

Oracle 클래식 기술 RAC에 대한 자세한 설명
Oracle 클래식 기술 RAC에 대한 자세한 설명

Oracle RAC와 단일 데이터베이스 서버의 차이점

아래에 표시된 것처럼 주요 차이점은 RAC는 클러스터형 데이터베이스이며 클러스터 소프트웨어를 통해 관리된다는 것입니다.
Oracle 클래식 기술 RAC에 대한 자세한 설명
Oracle 클래식 기술 RAC에 대한 자세한 설명

Oracle RAC 하드웨어 아키텍처

전체 클러스터의 가용성을 보장하기 위해 Oracle RAC에는 배포 중 하드웨어에 대한 많은 요구 사항이 있습니다. 네트워크 수준에서 Oracle RAC에는 외부 액세스 네트워크, 내부 개인 네트워크 및 스토리지 네트워크라는 총 3개의 네트워크 시스템이 있습니다.

네트워크에 대한 외부 액세스는 말할 필요도 없이 모두가 이해한다고 믿습니다. 내부 사설망은 주로 데이터 전송, 하트비트, 클러스터 관리 등 Oracle 클러스터 내부 사용에 사용됩니다. 네트워크의 이 부분에는 링크 오류로 인해 클러스터 이상이 발생하지 않도록 배포 중에 이중 스위치와 이중 물리적 링크가 필요합니다. 뒤에는 RAC 클러스터가 스토리지 리소스에 액세스하는 데 사용하는 스토리지 네트워크가 있습니다. 이 부분도 링크 중복입니다.
Oracle 클래식 기술 RAC에 대한 자세한 설명

또 다른 예는 아래 그림으로, 2노드 RAC 시스템으로, 호스트에서 스위치까지 이중화가 구현되어 있어 어떤 장치에 장애가 발생하더라도 비즈니스에 영향을 미치지 않음을 알 수 있습니다. 공유 스토리지에는 RAID 중복 기능이 제공됩니다.
Oracle 클래식 기술 RAC에 대한 자세한 설명
그 중 호스트는 노드라고 합니다. 각 호스트는 내부 및 외부 네트워크에 액세스하기 위해 동일한 CPU, 메모리 및 기타 구성을 가져야 하며, 공유 스토리지에 연결하려면 HBA 카드가 있어야 합니다. 하지만 대부분은 FC 스위치를 통해 FC 스토리지 어레이에 연결됩니다. 공유 스토리지는 RAC 아키텍처의 핵심입니다. 대부분의 파일은 공유 스토리지에 있으며, 공유 스토리지의 보안을 위해 많은 기능이 개발되었습니다. 일반적으로 광섬유는 FC 인터페이스를 통해 연결되며 SCSI 프로토콜을 실행합니다.

Oracle RAC 소프트웨어 아키텍처

아래와 같이 2노드 RAC 시스템입니다. Oracle RDBMS는 데이터베이스 소프트웨어이고 Oracle Clusterware는 클러스터 소프트웨어입니다. 드라이버는 주로 네트워크 카드, HBA 카드, ASMLib 등입니다.

각 노드에는 동일한 운영 체제가 있어야 하며 패치 번호 등을 포함하여 버전이 일관되어야 합니다. 예를 들어 운영 체제: RHEL AS 4.8 64비트, Linux 커널 버전: 2.6.9-89.EL.
Oracle 클래식 기술 RAC에 대한 자세한 설명
Oracle RAC를 더 깊이 이해하기 위해 내부 소프트웨어 모듈의 구성을 살펴보겠습니다. 전체 데이터베이스 수준에서는 큰 차이가 없습니다. 주요 추가 사항은 가상 IP(VIP), ASM, 클러스터웨어 및 쿼럼 디스크입니다. 이러한 새로운 구성 요소는 함께 작동하여 Oracle의 다중 활성 클러스터 기능을 완성합니다.

가상 IP는 애플리케이션이 데이터베이스에 액세스하기 위한 입구입니다. 이 IP는 어떤 서버에도 바인딩되지 않지만 클러스터의 모든 서버 간에 이동할 수 있습니다. 이 기능으로 인해 서버 충돌이 발생하면 데이터베이스 클러스터는 동일한 인터페이스를 통해 외부 세계에 서비스를 제공할 수 있습니다.
Oracle 클래식 기술 RAC에 대한 자세한 설명
ASM과 Clusterware는 클러스터 관리 기능을 구현하여 동시 디스크 액세스로 인한 데이터 불일치 위험을 방지하기 위해 디스크를 관리하고, Clusterware는 Oracle 클러스터의 소프트웨어 프로세스 및 리소스 스케줄링을 관리하는 데 사용됩니다.

쿼럼 디스크는 클러스터 내 서버의 이상 여부를 확인하는 데 사용됩니다. 클러스터의 노드는 쿼럼 디스크의 특정 영역에 있는 데이터를 정기적으로 업데이트하여 자체 상태를 표시합니다. 다른 노드는 이 데이터를 기반으로 노드가 다운되었는지 여부를 확인할 수 있습니다.

논리 구조

다음 그림은 Oracle RAC의 논리적 구조이며, 내부의 각 구성 요소를 차례로 소개합니다.
Oracle 클래식 기술 RAC에 대한 자세한 설명

DLM: 동시성 제어

각 노드는 공유 스토리지 데이터에 액세스할 수 있는 동일한 권한을 갖습니다. Oracle RAC는 DLM(분산 잠금 관리)을 사용하여 여러 노드 간의 동시 액세스를 제어합니다. 분산 잠금 관리자는 노드 간 공유 리소스 경쟁을 조정하는 역할을 담당하며, 노드가 데이터에 액세스할 때 먼저 DLM을 통해 적용하고 다른 노드와 충돌하지 않는지 확인한 후 사용할 수 있습니다.

OCR: Amnesia

Amnesia: 각 노드에 클러스터 구성 정보의 복사본이 있는 경우 구성을 수정한 후 동기화가 없으면 오류가 발생합니다.

따라서 클러스터는 모든 노드가 공유하는 하나의 구성 정보만 가질 수 있습니다. Oracle RAC는 기억 상실증을 해결하기 위해 OCR 디스크 파일을 사용합니다.

OCR 디스크는 마스터 노드에서만 수정할 수 있습니다. 각 노드에는 OCR 캐시 메모리에 복사본이 있습니다. 노드가 OCR 디스크를 수정하려고 하면 마스터 노드를 요청하고 이 노드의 OCR 프로세스는 로컬 및 기타 노드 OCR 캐시 내용을 업데이트합니다. OCR 디스크는 몇 시간마다 정기적으로 백업됩니다.

투표 디스크: 분할 브레인

스플릿 브레인: 클러스터의 노드는 하트비트 감지를 사용하여 상대방이 양호한지 확인합니다. 하트비트에 문제가 있으면 두 노드 모두 상대방이 실수했다고 생각합니다. , 그들은 데이터의 독점적 사용을 요구할 것이므로 이는 데이터 일관성을 파괴할 것입니다.

투표 디스크는 노드 간 구성원의 상태를 기록하는 데 사용됩니다. 분할 브레인이 발생하면 가장 많은 표를 얻은 노드가 선택되어 제어권을 얻고 다른 노드는 추방됩니다.

IO 격리: 쫓겨난 노드는 더 이상 데이터에 접근할 수 없으므로 IO 격리가 필요합니다. Oracle RAC의 메커니즘은 실패한 노드를 다시 시작하는 것입니다.

Cache Fusion Lock

데이터베이스 파일이 공유되며 Cache Fusion Lock은 클러스터 수준 외부의 스토리지 공유 및 동시 액세스 제어를 해결합니다.

네 가지 종류의 네트워크

1.공용 네트워크: 공용 IP를 사용하여 외부 데이터 쿼리, 데이터베이스 유지 관리, 서버 유지 관리를 제공합니다.

2.가상 네트워크: 가상 IP를 사용하여 애플리케이션 연결을 제공하고, 애플리케이션은 이 IP를 사용합니다.

TCP/IP 프로토콜에서 TCP 헤더에는 소스 및 대상 포트가 포함되고, IP ​​헤더에는 소스 및 대상 IP가 포함되며, 애플리케이션 계층 데이터베이스 모니터는 IP 및 포트를 기록합니다. TCP가 시간 초과되면 알려집니다. 데이터베이스나 모니터에 문제가 있다는 것입니다. TCP/IP 프로토콜 스택 시간 초과는 OS에 의해 결정되며 OS마다 정의가 다릅니다. 오류 포착 시간을 단축하기 위해 Oracle RAC는 VIP를 사용합니다. 가상 IP는 유동적이며 물리적 네트워크 카드에 바인딩되지 않습니다. 노드에 장애가 발생하면 VIP가 양호한 노드로 이동됩니다. 그러나 양호한 노드 모니터링에서는 VIP를 찾을 수 없습니다. 다른 VIP가 연결 요청 보내기로 전환합니다.

3.개인 네트워크: 고속이 필요한 RAC 하트비트 감지 및 캐시 퓨전 잠금을 위해 개인 IP를 사용합니다.

4. 스토리지 네트워크: 스토리지 장치, HBA 카드 및 FC 네트워크로 구성됩니다.

Oracle Clusterware

단일 머신에서는 OS만이 상위 계층 요청을 처리할 수 있지만, 머신이 여러 대일 경우 클러스터 관리 소프트웨어인 Oracle Clusterware는 OS 커널보다 먼저 다른 노드에 대한 요청을 가로채서 클러스터웨어와 통신합니다. 요청을 완료하기 위해 다른 노드를 사용합니다.

애플리케이션 계층: RDBMS

애플리케이션 계층은 여러 CRS 리소스로 구성됩니다. 각 리소스는 여러 프로세스로 구성된 완전한 서비스입니다. LMON(Lock Monitor)은 CRS Resource를 모니터링하여 이상 발생 시 재시작 및 전환하여 Oracle RAC 서비스의 고가용성을 보장합니다.

Cache Fusion

Cache Fusion은 문자 그대로 이해될 수 있습니다. 캐시 융합은 실제로 각 노드의 캐시를 통합된 방식으로 관리하여 모든 읽기에 대해 디스크를 작동할 필요가 없으며 IO 성능을 가속화합니다. 개인 네트워크는 매우 빠르기 때문에 디스크를 읽는 것보다 빠릅니다. 다양한 위치에서 데이터 블록을 읽는 데 걸리는 시간:

  • 로컬 캐시: 0.01ms
  • 다른 노드에 대한 네트워크 액세스 캐시: 2.5ms
  • 디스크: 14ms. 그러나 이제 스토리지 측에 SSD 또는 올플래시 어레이를 사용하면 대기 시간은 약 1ms입니다. 따라서 올플래시 어레이에서는 Cache Fusion이 아마도 의미가 없을 것입니다.

Cache Fusion은 캐시를 하나의 큰 캐시로 취급하는 GCS(Global Cache Service)를 통해 관리됩니다.

읽기 캐시 프로세스

Oracle 클래식 기술 RAC에 대한 자세한 설명

쓰기 캐시 프로세스

Oracle 클래식 기술 RAC에 대한 자세한 설명

쓰기 디스크 프로세스

Oracle 클래식 기술 RAC에 대한 자세한 설명

로드 밸런싱

사용자가 RAC와 같은 다양한 요청을 시작할 때 로드 밸런싱은 작업을 다른 시스템에 균등하게 분산하는 역할을 담당합니다. 우수한.

사용자별 배포

여러 머신에서 무작위로 선택되는건가요? 아니요! 이는 너무 낮습니다. RAC는 각 시스템의 상태에 따라 작업을 동적으로 할당합니다. 데이터베이스가 실행 중일 때 PMON 백그라운드 프로세스 노드의 로드 정보가 Listener에 등록되며 1~10분 간격으로 업데이트됩니다. 각 노드의 Listener는 모든 노드의 로드 상태를 알고 가장 바쁜 노드에 클라이언트 요청을 보냅니다.

서비스별 할당

사용자별 할당은 Cache Fusion을 더 바쁘게 만들 수 있다는 단점이 있습니다. RAC 노드 데이터는 공유되기 때문에 모든 사람이 Cache Fusion을 통해 데이터를 동기화합니다. RAC의 성능은 Cache Fusion의 성능에 따라 크게 제한됩니다. 값비싼 InfiniBand를 사용하는 등 Private 네트워크를 더욱 강력하게 만들거나, 다른 하나는 Cache Fusion의 트래픽을 줄여 실제로 노드 인스턴스 간의 종속성을 줄이는 것입니다. 사용자에 따른 할당 메커니즘은 후속 솔루션에 도움이 되지 않습니다.

그래서 RAC는 서비스에 따른 노드 할당을 지원합니다. 예를 들어 생산과 판매에 서로 다른 노드가 사용되므로 자신의 데이터가 자신의 Cache에 있으므로 다른 노드에 액세스할 필요가 없습니다. 성능이 향상되었습니다.

세 가지 유형의 클러스터

  • 로드 밸런싱 클러스터: 특정 알고리즘에 따라 서로 다른 구성원에게 요청을 할당합니다.
  • 고성능 클러스터(HPC, High Performance Cluster): 벡터 프로세서와 같은 특수 소프트웨어 및 하드웨어로 구성된 멋진 머신입니다. , 컴퓨팅 Tianhe Computer와 같은 강력한 성능, 매우 비싼
  • 고신뢰성 클러스터(HAC: High Available Cluster, Failover Cluster): 매우 우수한 신뢰성, 하드웨어 및 소프트웨어의 강력한 내결함성, 일상적으로 사용되는 데이터베이스 클러스터가 이 범주에 속합니다.

고신뢰성 클러스터

이중 머신 상시 대기

일반적으로 그 중 하나는 유휴 상태이고 대기 상태입니다. 작동하는 하나가 실패하면 대체 하나가 대신됩니다.
Oracle 클래식 기술 RAC에 대한 자세한 설명
이중 머신 백업

일반적으로 두 머신 모두 자체 작업을 수행하지만, 한 머신이 실패하면 다른 머신이 두 사람의 작업을 수행해야 하기 때문에 일부 리소스를 예약해야 합니다.
Oracle 클래식 기술 RAC에 대한 자세한 설명
더블 머신 듀플렉스

예:

사장님과 둘째 형이 함께 가게를 엽니다. 보통 사장님은 찐빵을 주로 팔고, 둘째 형은 주로 두유를 판다. , 둘째 동생이 다시 찐빵을 팔다가 두유를 다시 팔고, 둘째 아이가 더 이상 좋지 않아서 사장님이 찐빵과 두유를 팔아요.

Baozi Soy Milk는 서로를 돌보는 것을 심박 감지라고 하고, 서로의 작업을 대신하는 것을 장애 조치라고 합니다. 두 형제가 갑자기 눈과 귀가 멀고, 상대방이 지금 일하고 있는지도 모르고, 둘 다 상대방의 일을 대신해야 한다고 생각하는 경우를 분할 뇌라고 하며, 그 다음에는 아버지와 같은 제3자가 , 문제를 해결하려면 이것이 필요합니다. 이를 투표라고 하며, 두 아내가 와서 그들 중 한 명을 데려가도록 요청하는 것을 IO 격리라고 합니다. Oracle RAC는 최고의 성능과 가장 복잡한 시스템을 갖춘 이 범주에 속합니다.

Oracle 클래식 기술 RAC에 대한 자세한 설명

추천 튜토리얼: "Oracle Learning Tutorial"

위 내용은 Oracle 클래식 기술 RAC에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제