DBFS(Oracle Database File System) 복제 구현

이 구현은 중간 계층 콘텐츠를 DBFS 폴더에 복사하고 Oracle Data Guard를 사용하여 보조 사이트에 복제하는 것으로 구성됩니다. 중간 계층은 DBFS 기반구조(데이터베이스, FUSE 라이브러리, 마운트 지점 등)에 종속되므로 DBFS에 직접 상주하지 않습니다. DBFS 마운트는 컨텐트 복사본을 저장하는 중간 스테이지 폴더일 뿐입니다.

대기로의 복제는 이 모델의 두 단계를 의미합니다. 기본 원본 폴더에서 중간 DBFS 마운트까지, 보조 사이트에서 DBFS 마운트부터 대기 대상 폴더까지입니다. 중간 복사본은 rsync를 사용하여 수행됩니다. 대기 시간이 짧고 로컬 rsync 복사본이므로 이 모델에서는 원격 rsync 복사 작업에서 발생하는 일부 문제가 방지됩니다.

주:

이 방법은 DBFS 접속을 허용하지 않는 Oracle Autonomous Database에서 지원되지 않습니다.


복제-중간 계층-dbfs-oracle.zip

DBFS를 사용하여 중간 계층 복제본을 구현할 경우의 이점은 다음과 같습니다.

  • 이 방법은 Oracle Data Guard 복제본의 견고성을 활용합니다.
  • 실제 중간 계층 스토리지는 보조 노드에 마운트된 상태로 유지될 수 있습니다. 모든 스위치오버 또는 페일오버 작업에서 보조 스토리지로 연결하거나 마운트하는 추가 단계는 없습니다.

다음은 DBFS를 사용하여 중간 계층 복제본을 구현할 때 고려해야 할 사항입니다.

  • 이 방법을 사용하려면 Oracle Data Guard가 있는 Oracle Database가 필요합니다.
  • 중간 계층 호스트는 DBFS를 마운트하기 위해 Oracle Database 클라이언트가 필요합니다.
  • 복제에 DBFS를 사용하면 설정, 데이터베이스 스토리지 및 수명 주기 측면에서 문제가 발생합니다. 따라서 Mid-tier 호스트에 Oracle Database 클라이언트를 설치하고, 테이블 저장 영역을 정리, 압축 및 줄이기 위한 특정 데이터베이스 유지 관리를 수행하며, DBFS 마운트 지점의 작동 방식을 잘 이해해야 합니다.
  • DBFS 디렉토리는 데이터베이스가 열려 있는 경우에만 마운트할 수 있습니다. Oracle Data GuardActive Data Guard가 아닌 경우 대기 데이터베이스가 마운트 상태입니다. 따라서 보조 사이트의 DBFS 마운트에 액세스하려면 데이터베이스를 스냅샷 대기로 변환해야 합니다. Active Data Guard를 사용하는 경우 파일 시스템을 읽기용으로 마운트할 수 있으며 스냅샷으로 전환할 필요가 없습니다.
  • 모든 아티팩트(특히 런타임 파일)를 대기로 복제하기 위한 범용 솔루션으로 DBFS를 사용하는 것은 권장되지 않습니다. DBFS를 사용하여 바이너리를 복제하면 오버킬링됩니다. 그러나 이 접근 방식은 스토리지 복제 또는 rsync와 같은 다른 방법이 시스템의 요구에 맞지 않는 경우 구성과 같은 몇 가지 아티팩트를 복제하는 데 적합합니다.
  • 각 환경에 대한 사용자정의 스크립트를 생성하고 주기적으로 실행하는 것은 사용자의 책임입니다.
  • 복제 방향을 바꾸는 방법을 구현하는 것은 사용자의 책임입니다.

데이터베이스 파일 시스템에 대한 복제 설정

이 구현은 rsync 기술을 사용하며 피어 투 피어 모델을 따릅니다. 이 모델에서는 중간 계층 피어 호스트 간에 직접 복사가 수행됩니다. 각 노드에는 해당 피어에 대한 SSH 접속이 있으며 SSH를 통해 rsync 명령을 사용하여 기본 중간 계층 파일 아티팩트를 복제합니다.

다음은 DBFS를 사용하여 중간 계층 복제본을 구현하는 데 필요합니다.

  • 기본 및 보조에서 복사를 수행하는 중간 계층 호스트에 Oracle Database 클라이언트 설치입니다.
  • 데이터베이스에 생성된 DBFS 파일 시스템입니다.
  • 기본 및 보조에서 복사본을 수행하는 중간 계층 호스트의 DBFS 마운트입니다. 그러면 데이터베이스의 DBFS 파일 시스템이 마운트됩니다. DBFS는 공유 가능한 파일 시스템이므로 이 파일 시스템을 둘 이상의 호스트에 마운트할 수 있습니다.
  • 중간 계층 파일 아티팩트를 기본 사이트의 DBFS 마운트로 복사하는 스크립트입니다.
  • DBFS 마운트의 중간 계층 파일 아티팩트를 보조 사이트의 폴더로 복사하는 스크립트입니다. 구현에 따라 이 방법을 사용하려면 롤 변환과 같은 데이터베이스 작업을 위해 중간 계층 호스트와 원격 데이터베이스 간에 SQL*net 접속이 필요할 수 있습니다.
  • 복제본에서 해당 정보를 제외하거나 복제본 후 적절한 정보로 업데이트하여 사이트별 정보를 관리하는 방법입니다.
  • 이러한 스크립트를 지속적으로 실행하도록 일정을 잡습니다.
  • 스위치오버 또는 페일오버 후 복제본의 방향을 변경하는 방식입니다.
예 1: DBFS를 사용하여 Oracle WebLogic 도메인 복제

주:

다음 예는 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 시스템의 예입니다.



wls-dbfs-복제 - oracle.zip

DBFS 방법을 사용하여 WebLogic 도메인을 복제하려면 다음을 수행하십시오.

  1. 관리 호스트와 원격 데이터베이스 간에 SQL*net 연결을 허용합니다.
    Oracle은 동적 경로 지정 게이트웨이와 함께 원격 피어링을 사용할 것을 권장합니다. 이 스크립트에서는 롤 변환과 같은 데이터베이스 작업을 수행하기 위해 이 연결이 필요합니다. 이 스크립트는 대기 롤을 사용하여 사이트에서 실행될 때 대기 데이터베이스를 스냅샷 대기로 변환하여 DBFS 마운트를 마운트합니다.
  2. 스크립트를 다운로드합니다.
    이 문서에서는 DBFS 마운트를 구성하고 복제를 자동화하는 스크립트를 제공합니다.
    1. GitHub에서 Oracle MAA 저장소로 이동합니다. 이 플레이북의 자세히 살펴보기 섹션을 참조하십시오.
    2. app_dr_common 디렉토리의 모든 스크립트를 다운로드합니다.
    3. wls_mp_dr 디렉토리의 모든 스크립트를 다운로드합니다.
    4. 기본 및 보조 관리 호스트에 복제되지 않은 위치로 복사합니다.
    5. 스크립트는 서로 호출합니다. 두 디렉토리의 스크립트를 복사하여 동일한 폴더에 배치합니다. oracle 사용자에게 실행 권한이 있는지 확인합니다.
  3. 기본 및 보조 관리 호스트에서 DBFS 마운트를 구성합니다.

    주:

    DBFS 마운트가 이미 있는 경우 이 단계를 건너뛸 수 있습니다. 예를 들어, 일부 SOA 마켓플레이스 스택에는 DBFS 마운트가 즉시 사용됩니다.
    기본 및 보조 WebLogic 관리 호스트에서 DBFS 마운트를 구성합니다. WebLogic Administration 호스트에 데이터베이스 클라이언트와 일부 운영 체제 패키지가 필요합니다. 각 관리 호스트에서 다음 단계를 따르십시오.
    1. 전자 배달에서 DB 클라이언트를 다운로드하여 중간 계층 호스트로 업로드합니다(아직 설치하지 않음). Oracle Database Client를 검색하고 데이터베이스 클라이언트만 선택합니다. 계속을 누른 다음 골드 이미지가 아닌 설치 프로그램 버전을 선택합니다.

      주:

      이미지 기반 설치가 아닌 설치 프로그램 버전을 다운로드해야 합니다. 최신 버전을 사용하는 것이 좋습니다.
      예를 들어, Linux x86-64, 1.1GB용 Oracle Database Client 19.3.0.0.0용 982064-01.zip 파일을 다운로드하여 모든 중간 계층 호스트의 /u01/install/V982064-01.zip에 업로드합니다.

      아직 설치하지 마십시오.

    2. app_dr_common 폴더 아래의 dbfs_dr_setup_root.sh 스크립트를 찾습니다.
      이 스크립트는 호스트에서 DBFS 마운트를 준비하기 위한 작업을 수행합니다. 데이터베이스 클라이언트 및 필요한 운영 체제 패키지를 설치하고, 데이터베이스에서 DBFS 사용자 및 스키마를 구성하고, DBFS 파일 시스템을 마운트하고, cron를 생성하므로 DBFS 파일 시스템이 호스트 부트 시 마운트됩니다.
    3. root 사용자로 스크립트를 실행합니다.
      구문은 다음과 같습니다.
      ./dbfs_dr_setup_root.sh  local_db_scan_name db_port  local_PDB_service pdb_sys_password path_to_dbclient_installer
      입력 매개변수로 WLS에서 사용하는 로컬 데이터베이스에 접속하는 데 사용되는 접속 데이터를 제공합니다. 기본 사이트 관리 호스트에서 기본 PDB 접속 데이터를 실행할 때 기본 PDB 접속 데이터를 제공하고 보조 관리 호스트에서 보조 PDB 접속 데이터를 제공합니다.

      주:

      보조 관리 호스트에서 이 스크립트를 실행하려면 대기 데이터베이스가 스냅샷 대기 모드여야 합니다.
      다음 예에서는 기본 중간 계층 관리 호스트를 실행합니다. 단일 행이어야 하며 기본 PDB 값과 비밀번호를 제공해야 합니다.
      ./dbfs_dr_setup_root.sh  drdba-scan.wlsdrvcnlon1ad2.wlsdrvcnlon1.oraclevcn.com 1521 mypdbservice.example.com  mypassword   /u01/install/V982064-01.zip
      다음 예에서는 보조 중간 계층 관리 호스트를 실행합니다. 단일 행이어야 하며 기본 PDB 값과 비밀번호를 제공해야 합니다.
      ./dbfs_dr_setup_root.sh  drdbb-scan.wlsdrvcnfra1ad2.wlsdrvcnfra1.oraclevcn.com 1521 mypdbservice.example.com  mypassword   /u01/install/V982064-01.zip
      이 스크립트 실행의 결과로 다음과 같은 결과가 나타납니다.
      아티팩트 설명
      데이터베이스 클라이언트 홈 /u01/app/oracle/client 이 스크립트는 호스트에 데이터베이스 클라이언트 소프트웨어를 설치합니다. 또한 yum를 사용하여 필요한 패키지를 설치합니다.
      데이터베이스 사용자

      이름: dbfsuser

      암호: sys와 동일

      DBFS용 PDB 데이터베이스의 사용자입니다.
      DBFS 테이블스페이스 tbsdbfs DBFS 마운트에 대한 PDB의 테이블스페이스입니다.
      DBFS 폴더 dbfsdir 테이블스페이스의 DBFS 폴더입니다.
      중간 계층 호스트의 폴더 DOMAIN_HOME/dbfs 여기에는 DBFS를 호스트에 마운트하는 데 필요한 사용자, 비밀번호 및 기타 아티팩트(tnsnames.ora, sqlnet.ora)를 저장하는 전자 지갑이 포함됩니다.
      Mid-tier 호스트의 스크립트 DOMAIN_HOME/dbfs/dbfsMount.sh 호스트에 DBFS 파일 시스템을 마운트하기 위한 스크립트입니다. 이 스크립트는 재부트 시 cron에 추가되므로 시스템을 재부트할 때 실행됩니다.
      중간 계층 호스트의 마운트 지점 /u02/data/dbfs_root DBFS 파일 시스템은 /u02/data/dbfs_root 마운트 지점에 dbfsdir 폴더로 마운트됩니다.

      스크립트를 재실행할 수 있지만 일부 항목(db 사용자, 테이블스페이스 등)이 이미 생성되었으므로 경고가 표시됩니다. 이러한 메시지는 무시해도 됩니다.

    4. DBFS 마운트가 중간 계층 관리 호스트에 있는지 확인합니다.
      [root@ prefix-wls-1]# df -h | grep dbfs
      dbfs-@PDB1:/     32G  248K   32G   1% /u02/data/dbfs_root
      [root@ prefix-wls-1]# ls /u02/data/dbfs_root
      dbfsdir
      이 DBFS 파일 시스템은 기본 사이트의 도메인 구성 복사본을 저장하기 위해 도움말 파일 시스템으로 사용됩니다.
  4. 복제본 스크립트를 준비합니다.
    이 문서는 이 구현에 대한 참조 스크립트인 config_replica.sh 스크립트를 제공합니다.
    1. 기본 Oracle WebLogic 관리 호스트에서 config_replica.sh 스크립트를 엽니다. 사용자정의 가능한 매개변수 섹션을 편집합니다.
      primary에 대해 적절한 변수를 제공해야 합니다. DR_METHOD 등록 정보에서 DBFS를 사용합니다.
    2. 보조 Oracle WebLogic 관리 호스트에서 동일한 작업을 수행합니다. 보조 변수에 적합한 변수를 제공해야 합니다.
  5. 복제 스크립트를 실행합니다.
    1. oracle 사용자로 기본 Oracle WebLogic 관리 호스트에서 config_replica.sh 스크립트를 실행합니다.
      스크립트는 현재 사이트 역할을 확인하고 기본 Oracle WebLogic Server 도메인에서 DBFS 마운트로 도메인 구성을 복사합니다.
    2. 실행을 모니터하고 오류가 있는지 확인합니다.
    3. 완료되면 보조 사이트의 Oracle WebLogic Administration Server 호스트에서 config_replica.sh 스크립트를 실행합니다.
      사용자 정의 매개변수에 적합한 값을 사용해야 합니다. 스크립트에서 데이터베이스 롤을 확인합니다. 대기 상태이므로 보조 스테이징 파일 시스템에서 보조 Oracle WebLogic Server 도메인으로 도메인 구성을 복사합니다.

    주:

    이 스크립트는 항상 기본 및 대기에서 모두 실행되어야 전체 복제를 수행할 수 있습니다. 먼저 기본에서 DBFS 폴더로 도메인을 복사한 다음 대기에서 DBFS에서 도메인 폴더로 도메인을 복사합니다. 빈도는 Oracle WebLogic Server 도메인에서 구성 변경이 수행되는 빈도에 따라 달라집니다.

데이터베이스 파일 시스템에 대한 복제 검증

switchover 또는 failover 작업에서 복제된 정보는 프로세스가 시작되기 전에 standby site에서 available 및 usable이어야 합니다. 또한 스냅샷 모드에서 대기 데이터베이스를 열어 보조 시스템을 검증하는 경우에도 필요합니다.

이 구현에서는 스토리지를 대기 데이터베이스에서 항상 사용할 수 있으므로 볼륨을 연결하거나 마운트할 필요가 없습니다. 필요한 유일한 작업은 최신 버전의 컨텐트가 포함되어 있는지 확인하는 것입니다.

standby에서 복제된 컨텐트를 사용하려면 다음을 수행하십시오.

  1. 복제를 실행합니다.
    복제본 스크립트를 실행하여 보조 시스템에서 최신 컨텐츠를 사용할 수 있도록 합니다.
  2. 예약된 복제를 사용 안함으로 설정합니다.
    마지막 복제본이 완료되면 복제본 스크립트를 사용 안함으로 설정합니다. 그렇지 않으면 스위치오버, 페일오버 또는 검증 절차를 방해할 수 있습니다. 작업 후 적절한 방향으로 다시 활성화합니다.

데이터베이스 파일 시스템에 대한 지속적인 복제 수행

보조 도메인을 기본 도메인과 동기화 상태로 유지하려면 복제 스크립트를 주기적으로 실행합니다.

중간 계층 호스트에서 rsync를 사용할 때는 다음 권장 사항을 따르십시오.
  • OS crontab 또는 다른 예약 도구를 사용하여 복제 일정을 잡습니다. 스크립트가 복제를 완료하도록 허용해야 합니다. 그렇지 않으면 후속 작업이 겹칠 수 있습니다.
  • 중간 계층 프로세스가 대기 사이트에서 중지된 상태를 유지합니다. 변경 사항이 복제되는 동안 서버가 대기 사이트에서 작동 중이면 변경 사항이 다음에 시작될 때 적용됩니다. standby site의 검증이나 switchover 또는 failover 절차 중에만 이 사이트를 시작합니다.
  • 각 사이트에 대한 특정 정보를 유지 관리하고 최신 상태로 유지합니다. 예를 들어, 복사본에서 tnsnames.ora를 건너뛰어 각 시스템에 연결 세부 정보가 포함되도록 합니다. 기본의 tnsnames.ora에서 변경(예: 새 별칭 추가)을 수행하는 경우 보조의 tnsnames.ora를 수동으로 업데이트합니다.
  • 전환 또는 페일오버 후 복제 방향을 바꿉니다. 이는 특정 구현에 따라 달라집니다. 스크립트는 동적 검사를 사용하여 활성 사이트의 사용자를 식별하거나 전환 또는 페일오버 후 수동으로 변경할 수 있습니다(예: 해당 스크립트를 사용 안함으로 설정하고 사용으로 설정). 제공된 예제에서 config_replica.sh 스크립트는 로컬 데이터베이스 롤을 확인하여 사이트의 실제 롤에 대한 실행을 자동으로 조정합니다.