DBFS(Oracle Database File System) 복제 구현
대기로의 복제는 이 모델의 두 단계를 의미합니다. 기본 원본 폴더에서 중간 DBFS 마운트까지, 보조 사이트에서 DBFS 마운트부터 대기 대상 폴더까지입니다. 중간 복사본은 rsync를 사용하여 수행됩니다. 대기 시간이 짧고 로컬 rsync 복사본이므로 이 모델에서는 원격 rsync 복사 작업에서 발생하는 일부 문제가 방지됩니다.
주:
이 방법은 DBFS 접속을 허용하지 않는 Oracle Autonomous Database에서 지원되지 않습니다.DBFS를 사용하여 중간 계층 복제본을 구현할 경우의 이점은 다음과 같습니다.
- 이 방법은 Oracle Data Guard 복제본의 견고성을 활용합니다.
- 실제 중간 계층 스토리지는 보조 노드에 마운트된 상태로 유지될 수 있습니다. 모든 스위치오버 또는 페일오버 작업에서 보조 스토리지로 연결하거나 마운트하는 추가 단계는 없습니다.
다음은 DBFS를 사용하여 중간 계층 복제본을 구현할 때 고려해야 할 사항입니다.
- 이 방법을 사용하려면 Oracle Data Guard가 있는 Oracle Database가 필요합니다.
- 중간 계층 호스트는 DBFS를 마운트하기 위해 Oracle Database 클라이언트가 필요합니다.
- 복제에 DBFS를 사용하면 설정, 데이터베이스 스토리지 및 수명 주기 측면에서 문제가 발생합니다. 따라서 Mid-tier 호스트에 Oracle Database 클라이언트를 설치하고, 테이블 저장 영역을 정리, 압축 및 줄이기 위한 특정 데이터베이스 유지 관리를 수행하며, DBFS 마운트 지점의 작동 방식을 잘 이해해야 합니다.
- DBFS 디렉토리는 데이터베이스가 열려 있는 경우에만 마운트할 수 있습니다. Oracle Data Guard가 Active Data Guard가 아닌 경우 대기 데이터베이스가 마운트 상태입니다. 따라서 보조 사이트의 DBFS 마운트에 액세스하려면 데이터베이스를 스냅샷 대기로 변환해야 합니다. Active Data Guard를 사용하는 경우 파일 시스템을 읽기용으로 마운트할 수 있으며 스냅샷으로 전환할 필요가 없습니다.
- 모든 아티팩트(특히 런타임 파일)를 대기로 복제하기 위한 범용 솔루션으로 DBFS를 사용하는 것은 권장되지 않습니다. DBFS를 사용하여 바이너리를 복제하면 오버킬링됩니다. 그러나 이 접근 방식은 스토리지 복제 또는
rsync와 같은 다른 방법이 시스템의 요구에 맞지 않는 경우 구성과 같은 몇 가지 아티팩트를 복제하는 데 적합합니다. - 각 환경에 대한 사용자정의 스크립트를 생성하고 주기적으로 실행하는 것은 사용자의 책임입니다.
- 복제 방향을 바꾸는 방법을 구현하는 것은 사용자의 책임입니다.
데이터베이스 파일 시스템에 대한 복제 설정
이 구현은 rsync 기술을 사용하며 피어 투 피어 모델을 따릅니다. 이 모델에서는 중간 계층 피어 호스트 간에 직접 복사가 수행됩니다. 각 노드에는 해당 피어에 대한 SSH 접속이 있으며 SSH를 통해 rsync 명령을 사용하여 기본 중간 계층 파일 아티팩트를 복제합니다.
다음은 DBFS를 사용하여 중간 계층 복제본을 구현하는 데 필요합니다.
- 기본 및 보조에서 복사를 수행하는 중간 계층 호스트에 Oracle Database 클라이언트 설치입니다.
- 데이터베이스에 생성된 DBFS 파일 시스템입니다.
- 기본 및 보조에서 복사본을 수행하는 중간 계층 호스트의 DBFS 마운트입니다. 그러면 데이터베이스의 DBFS 파일 시스템이 마운트됩니다. DBFS는 공유 가능한 파일 시스템이므로 이 파일 시스템을 둘 이상의 호스트에 마운트할 수 있습니다.
- 중간 계층 파일 아티팩트를 기본 사이트의 DBFS 마운트로 복사하는 스크립트입니다.
- DBFS 마운트의 중간 계층 파일 아티팩트를 보조 사이트의 폴더로 복사하는 스크립트입니다. 구현에 따라 이 방법을 사용하려면 롤 변환과 같은 데이터베이스 작업을 위해 중간 계층 호스트와 원격 데이터베이스 간에 SQL*net 접속이 필요할 수 있습니다.
- 복제본에서 해당 정보를 제외하거나 복제본 후 적절한 정보로 업데이트하여 사이트별 정보를 관리하는 방법입니다.
- 이러한 스크립트를 지속적으로 실행하도록 일정을 잡습니다.
- 스위치오버 또는 페일오버 후 복제본의 방향을 변경하는 방식입니다.
주:
다음 예는 Oracle WebLogic 시스템에 적용됩니다. DBFS를 통해 중간 계층 시스템의 다른 폴더를 복사하기 위한 참조로 사용할 수 있지만, 이 특정 예에서는 WebLogic 관리자의 도메인 폴더를 DBFS를 통해 보조로 복제하는 스크립트를 사용합니다.이 예에서는 DBFS를 통해 WebLogic 관리 호스트의 도메인 폴더를 복제하는 방법을 보여줍니다. 도메인 폴더 외부에 있는 컨텐츠와 다른 호스트의 컨텐츠는 이 예에 포함되지 않습니다. 도메인 폴더는 DBFS에 직접 상주하지 않습니다. DBFS 마운트는 도메인 폴더의 복사본을 저장하는 중간 스테이징 폴더일 뿐입니다.
이 예에서는 기본 및 대기 사이트에서 주기적으로 실행되어야 하는 이러한 작업을 수행할 수 있는 스크립트를 제공합니다. 이 스크립트는 WebLogic 관리 도메인 폴더를 복사하여 tmp, .lck, .state 파일 및 tnsnames.ora 파일과 같은 일부 항목을 건너뜁니다. 이 절차는 다음으로 구성됩니다.
- 스크립트가 기본 사이트의 WebLogic 관리 호스트에서 실행되면 스크립트는 WebLogic 도메인 폴더를 DBFS 폴더로 복사합니다.
- DBFS에 복사된 파일은 데이터베이스에 저장될 때 Oracle Data Guard를 통해 대기 데이터베이스로 자동으로 전송됩니다.
- 스크립트가 보조 사이트의 WebLogic 관리 호스트에서 실행되는 경우:
- 이 스크립트는 대기 데이터베이스를 스냅샷 대기로 변환합니다.
- 그런 다음 대기 데이터베이스에서 DBFS 파일 시스템을 마운트합니다.
- 이제 복제된 도메인 폴더를 이 DBFS 폴더에서 사용할 수 있습니다. 이 스크립트는 DBFS 마운트에서 실제 도메인 폴더로 복사합니다.
- 마지막으로 이 스크립트는 대기 데이터베이스를 다시 물리적 대기로 변환합니다.
- 역할 변경의 경우 스크립트는 실행을 자동으로 조정하여 새 역할에 적용합니다. 데이터베이스 롤을 확인하여 사이트의 실제 롤을 수집합니다.
이 스크립트는 WebLogic 관리 호스트의 도메인 폴더만 복제합니다. DOMAIN_HOME/config 폴더 아래의 컨텐츠는 관리 서버가 시작될 때 WebLogic 도메인의 일부인 다른 모든 노드로 자동으로 복사됩니다. 이 폴더 외부의 파일과 다른 호스트에 있는 파일은 복제되지 않으므로 별도로 동기화해야 합니다.
애플리케이션 배치 작업의 경우 WebLogic 관리 콘솔에서 파일 업로드 배치 옵션을 사용합니다. 이렇게 하면 배포된 파일이 관리 서버($DOMAIN_HOME/servers/admin_server_name/upload)의 업로드 디렉토리 아래에 배치되고 구성 복제본 스크립트가 대기 사이트와 동기화됩니다.
이 예에서는 DB 클라이언트를 설치하고 중간 계층 호스트에서 DBFS 마운트를 구성하기 위한 다른 스크립트를 제공합니다. 이미지는 DBFS 복제를 사용하는 OCI용 Oracle WebLogic Server 시스템의 예입니다.
DBFS 방법을 사용하여 WebLogic 도메인을 복제하려면 다음을 수행하십시오.
데이터베이스 파일 시스템에 대한 복제 검증
switchover 또는 failover 작업에서 복제된 정보는 프로세스가 시작되기 전에 standby site에서 available 및 usable이어야 합니다. 또한 스냅샷 모드에서 대기 데이터베이스를 열어 보조 시스템을 검증하는 경우에도 필요합니다.
이 구현에서는 스토리지를 대기 데이터베이스에서 항상 사용할 수 있으므로 볼륨을 연결하거나 마운트할 필요가 없습니다. 필요한 유일한 작업은 최신 버전의 컨텐트가 포함되어 있는지 확인하는 것입니다.
standby에서 복제된 컨텐트를 사용하려면 다음을 수행하십시오.
데이터베이스 파일 시스템에 대한 지속적인 복제 수행
보조 도메인을 기본 도메인과 동기화 상태로 유지하려면 복제 스크립트를 주기적으로 실행합니다.
rsync를 사용할 때는 다음 권장 사항을 따르십시오.
- OS crontab 또는 다른 예약 도구를 사용하여 복제 일정을 잡습니다. 스크립트가 복제를 완료하도록 허용해야 합니다. 그렇지 않으면 후속 작업이 겹칠 수 있습니다.
- 중간 계층 프로세스가 대기 사이트에서 중지된 상태를 유지합니다. 변경 사항이 복제되는 동안 서버가 대기 사이트에서 작동 중이면 변경 사항이 다음에 시작될 때 적용됩니다. standby site의 검증이나 switchover 또는 failover 절차 중에만 이 사이트를 시작합니다.
- 각 사이트에 대한 특정 정보를 유지 관리하고 최신 상태로 유지합니다. 예를 들어, 복사본에서
tnsnames.ora를 건너뛰어 각 시스템에 연결 세부 정보가 포함되도록 합니다. 기본의tnsnames.ora에서 변경(예: 새 별칭 추가)을 수행하는 경우 보조의tnsnames.ora를 수동으로 업데이트합니다. - 전환 또는 페일오버 후 복제 방향을 바꿉니다. 이는 특정 구현에 따라 달라집니다. 스크립트는 동적 검사를 사용하여 활성 사이트의 사용자를 식별하거나 전환 또는 페일오버 후 수동으로 변경할 수 있습니다(예: 해당 스크립트를 사용 안함으로 설정하고 사용으로 설정). 제공된 예제에서
config_replica.sh스크립트는 로컬 데이터베이스 롤을 확인하여 사이트의 실제 롤에 대한 실행을 자동으로 조정합니다.

