Oracle Exadata Database Service on Dedicated Infrastructure로 마이그레이션

이 섹션에서는 Oracle Exadata 워크로드를 Oracle Exadata Database Service on Dedicated Infrastructure로 마이그레이션하고 VMware 애플리케이션을 Oracle Cloud VMware Solution으로 마이그레이션하는 방법에 대해 설명합니다.

구조

이 아키텍처는 온프레미스 Oracle Exadata 데이터베이스 및 VMware 애플리케이션에서 Oracle Exadata Database Service on Dedicated InfrastructureOracle Cloud VMware Solution으로의 마이그레이션을 보여줍니다.

Oracle Zero Downtime Migration을 사용하면 온프레미스에서 클라우드로 데이터를 마이그레이션할 때 다운타임을 최소화하면서 데이터베이스 마이그레이션을 자동화할 수 있습니다.

HCX 및 vMotion와 같은 VMware 툴을 사용하여 VMware에서 실행되는 온프레미스 애플리케이션을 Oracle Cloud VMware Solution으로 마이그레이션하십시오. Oracle Cloud VMware Solution은 OCI 테넌시 내에서 OCI 베어메탈 인스턴스에서 실행되는 VMware 소프트웨어 정의 데이터 센터(SDDC)의 완전 자동화된 구현을 제공합니다.

다음 다이어그램은 이 참조 아키텍처를 보여줍니다.



migrate-vmware-cloud-solution-exadata 전용-architecture.zip

이 구조는 다음 구성 요소를 지원합니다.

  • 지역

    Oracle Cloud Infrastructure 리전은 가용성 도메인이라는 하나 이상의 데이터 센터를 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며 방대한 거리로 구분할 수 있습니다(국가 또는 대륙).

  • VCN(가상 클라우드 네트워크) 및 서브넷

    VCN은 Oracle Cloud Infrastructure 지역에서 설정한 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존 데이터 센터 네트워크와 마찬가지로 VCN은 사용자가 네트워크 환경을 완전히 제어할 수 있도록 합니다. VCN에는 VCN을 생성한 후 변경할 수 있는 겹치지 않는 여러 CIDR 블록이 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있습니다. 서브넷은 지역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속된 주소 범위로 구성됩니다. 서브넷 생성 후 서브넷의 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • Oracle Exadata Database Service on Dedicated Infrastructure

    Oracle Exadata Database Service on Dedicated Infrastructure는 OCI 데이터 센터에서 Oracle Exadata Database Machine을 서비스로 제공합니다. Oracle Exadata Database Service on Dedicated Infrastructure 서비스는 OCI 리전의 단일 Exadata 랙에서 실행되는 하나 이상의 VM 클러스터에서 실행되는 많은 Oracle 데이터베이스를 호스팅할 수 있습니다. Oracle Exadata Database Service on Dedicated Infrastructure는 데이터베이스 통합을 위한 이상적인 플랫폼입니다.

  • Oracle Cloud VMware Solution SDDC(소프트웨어 정의 데이터 센터)

    Oracle과 VMware은 파트너가 Oracle Cloud Infrastructure 내에서 사용할 수 있도록 VMware 인증 SDDC(소프트웨어 정의 데이터 센터) 구현을 개발했습니다. Oracle Cloud VMware Solution이라는 이 구현은 Oracle Cloud Infrastructure를 사용하여 고가용성 VMware SDDC를 호스팅합니다. 또한 모든 온프레미스 VMware SDDC 워크로드를 Oracle Cloud VMware Solution으로 원활하게 마이그레이션할 수 있습니다. Oracle Cloud VMware Solution에는 다음과 같은 VMware 구성요소가 포함되어 있습니다.

    • VMware vSphere ESXi
    • VMware 밴
    • VMware vCenter
    • VMware NSX-T
    • VMware (선택) HCX
  • 베어메탈

    Oracle Cloud VMware Solution SDDC(Software-Defined Data Center)는 Oracle Cloud VMware Solution을 호스팅하는 베어메탈 서버를 포함하고 있습니다. 베어메탈 서버는 많은 코어 수, 대용량 메모리 및 높은 대역폭(예: Oracle Cloud VMware Solution)이 필요한 애플리케이션을 지원합니다. Oracle Cloud VMware Solution을 베어메탈 서버에 배포하고 다른 퍼블릭 클라우드 및 온프레미스 데이터 센터에 비해 성능이 크게 향상된 가상 머신을 구성할 수 있습니다.

  • 서비스 게이트웨이

    서비스 게이트웨이는 VCN에서 Oracle Cloud Infrastructure Object Storage와 같은 다른 서비스로의 액세스를 제공합니다. VCN에서 Oracle 서비스로의 트래픽은 Oracle 네트워크 패브릭을 통해 이동하며 인터넷을 경유하지 않습니다.

  • DRG(동적 경로 지정 게이트웨이)

    DRG는 동일한 지역의 VCN과 지역 외부의 네트워크(예: 다른 Oracle Cloud Infrastructure 지역의 VCN, 온프레미스 네트워크 또는 다른 클라우드 공급자의 네트워크) 간에 전용 네트워크 트래픽 경로를 제공하는 가상 라우터입니다.

  • FastConnect

    Oracle Cloud Infrastructure FastConnect는 데이터 센터 및 Oracle Cloud Infrastructure 간 전용 개인 연결을 생성할 수 있는 쉬운 방법을 제공합니다. FastConnect는 인터넷 기반 연결과 비교할 때 더 높은 대역폭 옵션과 보다 안정적인 네트워킹 환경을 제공합니다.

  • 파일 스토리지

    OCI File Storage는 논리적 마이그레이션 중에 공유 파일 시스템에서 마이그레이션된 데이터베이스를 가져오는 데 사용됩니다.

  • 객체 스토리지

    OCI Object Storage는 마이그레이션 중 임시 스토리지의 논리적 및 물리적 마이그레이션에 사용됩니다.

시작하기 전에

시작하기 전에 이 설정에 사용된 주요 구성요소의 버전을 확인하고 나중에 참조할 수 있도록 제품 설명서를 검토하십시오.

요구사항 검토

  • 소스 데이터베이스가 Oracle Database 버전 19.18 Enterprise Edition 이상을 실행 중인지 확인합니다.
  • 대상 데이터베이스는 Oracle Database 버전 19.18 Enterprise Edition 이상에서 Oracle Exadata Database Service on Dedicated Infrastructure X8 이상이어야 합니다.
  • Oracle Zero Downtime Migration은 버전 21.4 이상이어야 합니다.
  • 중간 스토리지에는 OCI Object Storage, Oracle ZFS Storage Appliance(NAS) 및 OCI File Storage가 포함되어야 합니다.

문서 검토

이 솔루션 플레이북에서는 데이터베이스 워크로드를 마이그레이션하는 방법을 설명합니다. VMware 워크로드를 마이그레이션하는 방법을 알아보려면 아래 솔루션을 참조하십시오. 추가 리소스는 데이터베이스 이전을 위한 컨텍스트, 세부 정보 및 참조에 유용합니다.

워크로드의 VMware 구성요소를 Oracle Cloud VMware Solution으로 마이그레이션하는 방법을 알아봅니다.

Oracle Zero Downtime Migration 리소스를 검토합니다.

물리적 마이그레이션 리소스 검토:

논리적 이전 리소스 검토:

Oracle Database 리소스 검토:

필수 제품 및 역할 정보

이 솔루션을 사용하려면 다음 제품이 필요합니다.

  • Oracle Cloud Infrastructure Identity and Access Management
  • OCI 컴퓨트
  • OCI Object Storage
  • OCI 파일 스토리지
  • Oracle Zero Downtime Migration
  • Oracle Exadata
  • Oracle Exadata Database Service on Dedicated Infrastructure

다음은 각 제품에 필요한 역할입니다.

제품 이름: 역할 다음에 필요...
Oracle Cloud Infrastructure Identity and Access Management: OCI_user
  • 물리적 마이그레이션을 위한 인증 토큰 만들기
  • 논리적 이전을 위한 API 키 생성
OCI 컴퓨팅: admin OCI 컴퓨트 인스턴스를 생성하여 Oracle Zero Downtime Migration 소프트웨어 실행
OCI 오브젝트 스토리지: Storage Admin 논리적 및 물리적 마이그레이션을 위한 OCI Object Storage 버킷 생성
OCI 파일 스토리지: Storage Admin 논리적 마이그레이션을 위한 OCI File Storage 생성
Oracle Zero Downtime Migration: opc zdmuser을 생성하여 Oracle Zero Downtime Migration 소프트웨어 설치 및 실행
Oracle Zero Downtime Migration: zdmuser
  • Oracle Zero Downtime Migration 소프트웨어 설치
  • Oracle Zero Downtime Migration 실행
Oracle Exadata: root/sudoer user
  • 네트워크 연결 저장 장치에서 네트워크 파일 시스템 공유를 마운트하여 논리적 마이그레이션을 위해 데이터베이스를 내보냅니다.
  • Oracle Zero Downtime Migration 가상 머신에서 비밀번호 없는 SSH 사용
  • sudo 명령을 실행하여 Oracle Zero Downtime Migration 소프트웨어 에이전트 설치
  • sudo 명령을 실행하여 데이터베이스 백업 또는 익스포트
Oracle Exadata 데이터베이스: sys/system
  • 물리적 마이그레이션을 위해 Oracle Recovery Manager(RMAN)를 사용하여 데이터 백업
  • 데이터 펌프를 실행하여 논리적 이전을 위해 데이터베이스 엑스포트
Oracle Exadata Database Service on Dedicated Infrastructure: Database Admin Create target Oracle Exadata Database Service on Dedicated Infrastructure database
Oracle Exadata Database Service on Dedicated Infrastructure VM 클러스터 노드: opc
  • 논리적 이전을 위해 데이터베이스를 임포트하려면 OCI File Storage에서 네트워크 파일 시스템 공유를 마운트합니다.
  • Oracle Zero Downtime Migration 가상 머신에서 비밀번호 없는 SSH 사용
  • Oracle Zero Downtime Migration 소프트웨어 에이전트 설치
  • sudo 명령을 실행하여 데이터베이스 복원 또는 임포트
Oracle Exadata Database Service on Dedicated Infrastructure Database: sys/system
  • 물리적 마이그레이션을 위해 RMAN(Oracle Recovery Manager)을 사용하여 데이터 복원
  • 논리적 이전을 위해 데이터 펌프를 실행하여 데이터베이스 임포트

필요한 것을 얻으려면 Oracle 제품, 솔루션 및 서비스를 참조하십시오.

논리적 및 물리적 마이그레이션 정보

Oracle Zero Downtime Migration은 Oracle Exadata에서 Oracle Exadata Database Service on Dedicated Infrastructure로의 두 가지 유형의 데이터베이스 마이그레이션(논리적 마이그레이션 및 물리적 마이그레이션)을 지원합니다.

논리적 이전은 Oracle Data Pump와 Oracle GoldenGate의 조합을 사용하지만 물리적 이전은 Oracle Recovery Manager(RMAN)Oracle Data Guard의 조합을 사용합니다. 다음 표에서는 논리적 또는 물리적 마이그레이션을 사용해야 하는 시나리오에 대해 설명합니다.

논리적 마이그레이션 물리적 이전
몇 개의 플러거블 데이터베이스 및/또는 스키마가 이전될 때 권장됩니다. 전체 데이터베이스가 이전될 때 권장됩니다. 예를 들어, 모든 플러거블 데이터베이스가 있는 컨테이너 데이터베이스 또는 리프트 앤 시프트가 있습니다.
선택적 플러그 가능한 데이터베이스(PDB) 및/또는 스키마를 마이그레이션할 수 있습니다. 컨테이너 데이터베이스는 컨테이너 데이터베이스로 이전되며 비컨테이너 데이터베이스는 비컨테이너 데이터베이스로 이전됩니다.
소스와 대상의 Sys 비밀번호는 다를 수 있습니다. 소스와 대상 간의 데이터베이스 이름은 다를 수 있습니다. Sys 소스와 대상의 암호와 데이터베이스 이름은 동일해야 합니다. 소스와 대상의 DB_UNIQUE_NAME은 달라야 합니다.
이전 중 데이터베이스를 업그레이드할 수 있습니다. 데이터베이스는 이전 과정에서 업그레이드할 수 없습니다.

논리적 이전을 사용하여 이전

이 절에서는 오프라인 논리적 마이그레이션을 수행하는 방법에 대해 설명합니다. 온라인 마이그레이션의 경우 문서 검토 섹션을 참조하십시오.

이전을 수행하기 전에 다음 사항에 유의하십시오.

  • Oracle Exadata의 소스 데이터베이스를 암호화할 필요가 없습니다. Oracle Zero Downtime Migration은 마이그레이션 중에 대상 데이터베이스를 암호화합니다.
  • 소스 및 대상 데이터베이스에는 동일한 sys 암호, 전자 지갑 암호, 데이터베이스 버전, 데이터베이스 이름 및 패치 레벨이 없어도 됩니다.
  • Oracle Zero Downtime Migration을 이용하면 특정 플러그 가능한 데이터베이스(PDB) 및/또는 스키마를 Oracle Exadata Database Service on Dedicated Infrastructure의 플러그 가능한 데이터베이스로 마이그레이션할 수 있습니다.
  • 논리적 마이그레이션에는 공유 파일 시스템이 필요합니다. 논리적 마이그레이션 중 Oracle Zero Downtime Migration은 데이터를 직접 OCI Object Storage로 내보내지 않습니다. 소스 Exadata 데이터베이스에서 Oracle Zero Downtime Migration은 공유 파일 시스템(네트워크 파일 시스템 또는 Oracle Advanced Cluster File System)으로 데이터를 내보냅니다. 그런 다음 내보낸 데이터가 OCI Object Storage로 업로드됩니다. Oracle Zero Downtime Migration은 데이터 덤프를 OCI Object Storage에서 OCI File Storage로 이동합니다. 마지막으로 Oracle Exadata Database Service on Dedicated Infrastructure는 네트워크 파일 시스템을 통해 OCI File Storage에서 데이터를 가져올 수 있습니다.
  • Oracle Exadata 온프레미스는 단일 인스턴스 및 RAC 데이터베이스를 모두 실행할 수 있습니다. Oracle Exadata Database Service on Dedicated Infrastructure는 RAC 데이터베이스를 실행합니다. 데이터베이스 마이그레이션 중 Oracle Zero Downtime Migration은 필요한 경우 단일 인스턴스를 RAC 데이터베이스로 변환합니다.
  • 온프레미스 Oracle Exadata에서 Oracle Transparent Data Encryption을 사용하여 데이터베이스를 암호화하는 것은 선택 사항입니다. Exadata에서 Oracle Exadata Database Service on Dedicated Infrastructure로 데이터베이스를 마이그레이션하는 경우 대상 Oracle Exadata Database Service on Dedicated Infrastructure 데이터베이스는 항상 암호화됩니다.
  • 다음 단계에서는 Oracle Exadata가 설치된 데이터 센터와 Oracle Exadata Database Service on Dedicated InfrastructureOracle Zero Downtime Migration 가상 머신이 구성된 OCI 가상 클라우드 네트워크(아키텍처 다이어그램에 표시된 대로 FastConnect 또는 IPSec VPN을 통해) 간에 직접 네트워크 연결이 있다고 가정합니다.

다음 단계에서는 오프라인 논리적 마이그레이션을 수행하는 방법에 대해 설명합니다.

  1. OCI 콘솔에서 대상 Oracle Exadata Database Service on Dedicated Infrastructure 데이터베이스가 구성될 동일한 VCN에 컴퓨트 인스턴스를 생성합니다.
    이 컴퓨트 인스턴스는 OCPU가 2개 이상, RAM이 16GB 이상인 모든 구성에서 Oracle Linux 7.9 운영체제를 실행할 수 있습니다. 이 가상 머신은 Oracle Zero Downtime Migration 소프트웨어를 실행하는 데 사용됩니다.
  2. 문서 검토 섹션의 Oracle Zero Downtime Migration 설치 설명서에 따라 OCI 컴퓨트 인스턴스에 Oracle Zero Downtime Migration 21.4 소프트웨어를 다운로드하고 설치합니다.
    Oracle Zero Downtime Migration 소프트웨어를 zdmuser로 실행합니다.
  3. Oracle Zero Downtime Migration 소프트웨어를 실행하는 컴퓨트 인스턴스에 zdmuser으로 로그인하고 SSH 키 쌍을 생성합니다. zdmuser 계정에서 소스 Exadata 데이터베이스의 모든 노드(root, privilege-sudoer user) 및 대상 Oracle Exadata Database Service on Dedicated Infrastructure 데이터베이스 opc user 계정의 모든 VM 클러스터 노드로 비밀번호가 없는 SSH를 사용으로 설정합니다.
  4. Oracle Zero Downtime Migration VM이 호스트 이름 및 IP 주소를 사용하여 소스 데이터베이스 호스트와 통신할 수 있는지 확인합니다. 다음 사항을 확인하십시오.
    • 필요한 경우 Oracle Zero Downtime Migration VM에서 VCN DNS 분석기 또는 /etc/hosts 파일을 수정합니다.
    • Oracle Zero Downtime Migration VM이 기본 리스너 포트 1521 및 SSH 포트 22의 소스 데이터베이스에 연결할 수 있는 보안 규칙이 있는지 확인합니다.
    • Oracle Zero Downtime Migration VM이 기본 리스너 포트 1521 및 SSH 포트 22의 대상 Oracle Exadata Database Service on Dedicated Infrastructure 호스트에 도달할 수 있는지 확인합니다.
  5. Oracle ZFS Storage Appliance 또는 네트워크 연결 스토리지 장치에서 마이그레이션이 진행되는 동안 데이터베이스 데이터 덤프의 위치 표시자로 사용할 네트워크 파일 시스템 공유를 만듭니다.
  6. Exadata 데이터베이스의 모든 노드에서 네트워크 파일 시스템 공유를 마운트합니다.
    모든 사용자에게 읽기, 쓰기, 실행(rwx) 권한이 있는지 확인합니다. 마운트 지점을 기록해 둡니다.
  7. OCI 콘솔에서 OCI File Storage를 생성합니다.
    마운트 대상, 내보내기 및 IP 주소를 확인합니다. 기본적으로 IP 주소는 Oracle Exadata Database Service on Dedicated Infrastructure 백업 네트워크에 있습니다.
  8. IP 주소를 사용하고 7단계에서 내보내면 Oracle Exadata Database Service on Dedicated Infrastructure VM 클러스터의 모든 노드에서 네트워크 파일 시스템을 통해 이 파일 스토리지를 마운트할 수 있습니다.
    가상 클라우드 네트워크에 Oracle Exadata Database Service on Dedicated Infrastructure 백업 네트워크에서 네트워크 파일 시스템 프로토콜을 허용하는 보안 정책이 포함되어 있는지 확인합니다. 마운트 지점을 확인합니다.
  9. OCI 콘솔 또는 REST API를 사용하여 대상 Oracle Exadata Database Service on Dedicated Infrastructure 데이터베이스를 생성합니다. 다음과 같이 데이터베이스를 구성합니다.
    • 새 Target Database의 이름은 원본 데이터베이스와 다를 수 있습니다.
    • 새 데이터베이스는 원본 데이터베이스보다 최신 버전일 수 있습니다.
    • admin 사용자에 대한 비밀번호를 제공하십시오. 암호를 기록해 둡니다.
    • 데이터베이스 생성 중에 백업 대상을 선택하거나 자동 백업을 활성화하지 마십시오. 이러한 설정은 데이터베이스 이전 후에 활성화할 수 있습니다.
    데이터베이스가 생성된 후 데이터베이스 OCID를 확인합니다.
  10. OCI 콘솔에서 OCI Object Storage 버킷이 존재하지 않으면 생성합니다.
    Swift URL, 오브젝트 스토리지 네임스페이스 및 버킷 이름을 확인합니다.
  11. OCI 콘솔을 사용하여 대상 Oracle Exadata Database Service on Dedicated Infrastructure 데이터베이스를 소유하고 10단계에서 생성된 OCI Object Storage 버킷에 데이터를 업로드할 수 있는 권한을 가진 OCI 사용자에 대한 API 키를 생성합니다.
    사용자 OCID, 테넌시 OCID, 지문 및 OCI 지역을 확인합니다. PEM 파일에 해당하는 개인 및 공개 키를 저장합니다. 이 API 키는 Oracle Zero Downtime Migration에서 OCI에 연결하여 데이터베이스 이전 중 대상 데이터베이스 정보를 가져오고 데이터 덤프를 OCI Object Storage에 업로드하는 데 사용됩니다.
  12. 이전 단계의 PEM 파일을 Oracle Zero Downtime Migration VM으로 복사합니다.
  13. 소스 Exadata 데이터베이스에 sys 사용자로 로그인하여 Streams_Pool_Size 매개변수가 2G 이상으로 설정되었는지 확인합니다. 예를 들면 다음과 같습니다.
    SQL>show parameter streams_pool_size;
    SQL>alter system set streams_pool_size=2G scope=both SID=’*’;                  
  14. Zero Downtime Migration에 포함된 Oracle Zero Downtime Migration의 논리적 마이그레이션 응답 파일 템플리트를 사용하여 마이그레이션에 대한 응답 파일을 생성합니다. 키 매개변수는 다음과 같습니다.
    • TARGETDATABASE_OCID: Oracle Exadata Database Service on Dedicated Infrastructure 대상 데이터베이스의 OCID입니다.
    • MIGRATION_METHOD: OFFLINE_LOGICAL
    • DATA_TRANSFER_MEDIUM: OSS
    • TARGETDATABASE_ADMINUSERNAME: system
    • SOURCEDATABASE_ADMINUSERNAME: system
    • SOURCEDATABASE_CONNECTIONDETAILS_HOST: 소스 Exadata 데이터베이스에 있는 첫번째 노드의 IP/호스트 이름입니다.
    • SOURCEDATABASE_CONNECTIONDETAILS_PORT: 1521
    • SOURCEDATABASE_CONNECTIONDETAILS_SERVICENAME: 소스 PDB 또는 비컨테이너 데이터베이스(비CDB)의 서비스 이름입니다. lsnrctl를 사용하여 찾습니다.
    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_TENANTID: 11단계의 테넌시 OCID입니다.
    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_USERID: 11단계의 사용자 OCID입니다.
    • OCIAUTHENTICATIONDETAILS_USERPRINCIPAL_FINGERPRINT: 11단계의 지문입니다.
    • OCIAUTHENTICATIONDETAILS_PRIVATEKEYFILE: 12단계의 Oracle Zero Downtime Migration 서버에 있는 개인 키 PEM 파일의 파일 경로입니다.
    • OCIAUTHENTICATIONDETAILS_REGIONID: 11단계의 OCI 사용자에 대한 OCI 영역 ID입니다.
    • TARGETDATABASE_CONNECTIONDETAILS_PORT: 1521
    • TARGETDATABASE_CONNECTIONDETAILS_SERVICENAME: 대상 데이터베이스에 있는 대상 플러그인할 수 있는 데이터베이스의 서비스 이름입니다. lsnrctl를 사용하여 찾습니다.
    • SOURCECONTAINERDATABASE_ADMINUSERNAME: system
    • SOURCECONTAINERDATABASE_CONNECTIONDETAILS_HOST: 소스 Exadata 데이터베이스에 있는 첫번째 노드의 IP/호스트 이름입니다.
    • SOURCECONTAINERDATABASE_CONNECTIONDETAILS_PORT: 1521
    • SOURCECONTAINERDATABASE_CONNECTIONDETAILS_SERVICENAME: Exadata 데이터베이스의 소스 컨테이너 데이터베이스에 대한 서비스 이름입니다. lsnrctl를 사용하여 찾습니다.
    • DATAPUMPSETTINGS_JOBMODE: SCHEMA
    • DATAPUMPSETTINGS_FIXINVALIDOBJECTS: TRUE
    • DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_NAME: mig
    • DATAPUMPSETTINGS_EXPORTDIRECTORYOBJECT_PATH: 6단계의 네트워크 파일 시스템 마운트 지점입니다.
    • DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_NAME: mig.
    • DATAPUMPSETTINGS_IMPORTDIRECTORYOBJECT_PATH: 8단계의 네트워크 파일 시스템 마운트 지점입니다.
    • DATAPUMPSETTINGS_CREATEAUTHTOKEN: TRUE
    • DATAPUMPSETTINGS_DATAPUMPPARAMETERS_IMPORTPARALLELISMDEGREE: 4
    • DATAPUMPSETTINGS_DATAPUMPPARAMETERS_EXPORTPARALLELISMDEGREE: 4
    • DATAPUMPSETTINGS_DATABUCKET_NAMESPACE: 10단계의 OCI Object Storage 이름 공간.
    • DATAPUMPSETTINGS_DATABUCKET_BUCKETNAME: 10단계의 OCI Object Storage 버킷 이름입니다.
    • TABLESPACEDETAILS_AUTOCREATE: TRUE
    • TABLESPACEDETAILS_USEBIGFILE: TRUE
    • TABLESPACEDETAILS_EXTENTSIZEMB: 512
    • EXCLUDEOBJECTS-1: owner:PDBADMIN
  15. Oracle Zero Downtime Migration Dry Run 이전 작업(-eval)을 실행하여 마이그레이션의 모든 필요 조건이 가능한지 검증합니다. 이렇게 하면 CPAT(Cloud Pre-Migration Advisor Tool)가 실행되어 소스 데이터베이스가 Oracle Zero Downtime Migration 논리적 마이그레이션을 사용하여 Oracle Exadata Database Service on Dedicated Infrastructure로 마이그레이션하기에 적합한지 검증합니다. 계속하기 전에 CPAT에서 보고한 문제를 해결하십시오. 예를 들면, 다음과 같습니다.
    
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_first_Exadata_node \
    -srcauth zdmauth \
    -srcarg1 user:root_or_sudoer_user \
    -srcarg2 identity_file:path_to_ssh_private_key/ssh_private_key_file_name \
    -srcarg3 sudo_location:/usr/bin/sudo \
    -targetnode IP/hostname_of_first_exadata_database_dedicated_VM_cluster_node
    -tgtarg1 user:opc \
    -tgtarg2 identity_file:path_to_ssh_private_key/ssh_private_key_file_name \
    -tgtarg3 sudo_location:/usr/bin/sudo \
    -rsp path_to_response_file/response_file_name_from_step_14 \
    -eval
    이 명령은 소스 및 대상 데이터베이스의 sys 사용자 암호를 요청합니다.
    성공적인 Dry Run 이전 후 다음 단계를 진행합니다.
  16. Dry Run 이전을 성공한 후 Oracle Zero Downtime Migration 작업을 실행합니다. 예를 들면, 다음과 같습니다.
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_first_Exadata_node \
    -srcauth zdmauth \
    -srcarg1 user:root_or_sudoer_user \
    -srcarg2 identity_file:path_to_ssh_private_key/ssh_private_key_file_name \
    -srcarg3 sudo_location:/usr/bin/sudo \
    -targetnode IP/hostname_of_first_exadata_database_dedicated_VM_cluster_node
    -tgtarg1 user:opc \
    -tgtarg2 identity_file:path_to_ssh_private_key/ssh_private_key_file_name \
    -tgtarg3 sudo_location:/usr/bin/sudo \
    -rsp path_to_response_file/response_file_name_from_step_14
    이 명령은 소스 및 대상 데이터베이스의 sys 사용자 암호를 요청합니다.

물리적 이전을 사용하여 이전

이 절에서는 오프라인 물리적 마이그레이션을 수행하는 방법에 대해 설명합니다. 온라인 마이그레이션의 경우 문서 검토 섹션을 참조하십시오.

물리적 마이그레이션을 수행하기 전에 다음 사항에 유의하십시오.

  • Oracle Database 19.16에는 테이블스페이스 암호화 관리를 위한 새로운 매개변수가 있습니다. 이 매개변수로 인해 물리적 마이그레이션이 충돌할 수 있습니다. 자세한 내용은 Review Documentation 섹션에서 Tablespace Encryption Management를 검토하십시오.
  • Oracle Exadata 온프레미스는 단일 인스턴스 및 RAC 데이터베이스를 모두 실행할 수 있습니다. Oracle Exadata Database Service on Dedicated Infrastructure는 RAC 데이터베이스를 실행합니다. 데이터베이스 마이그레이션 중 Oracle Zero Downtime Migration은 필요한 경우 단일 인스턴스를 RAC 데이터베이스로 변환합니다.
  • 소스 데이터베이스가 암호화되지 않은 경우에도 이전 전에 소스 데이터베이스에서 TDE(투명한 데이터 암호화) 전자 지갑을 정의해야 합니다.
  • 온프레미스 Oracle Exadata에서 Oracle Transparent Data Encryption을 사용하여 데이터베이스를 암호화하는 것은 선택 사항입니다. Exadata에서 Oracle Exadata Database Service on Dedicated Infrastructure로 데이터베이스를 마이그레이션하는 경우 대상 Oracle Exadata Database Service on Dedicated Infrastructure 데이터베이스는 항상 암호화됩니다.
  • 다음 단계에서는 Exadata가 설치된 데이터 센터와 Oracle Exadata Database Service on Dedicated InfrastructureOracle Zero Downtime Migration 가상 머신이 구성된 OCI 가상 클라우드 네트워크(아키텍처 다이어그램에 표시된 대로 FastConnect 또는 IPSec VPN을 통해) 간에 직접 네트워크 연결이 있다고 가정합니다.
  • Oracle Exadata의 소스 데이터베이스를 암호화할 필요가 없습니다. Oracle Zero Downtime Migration은 마이그레이션 중에 대상 데이터베이스를 암호화합니다.
  • 소스 및 대상 데이터베이스의 sys 비밀번호, 전자 지갑 비밀번호, 데이터베이스 버전 및 패치 레벨은 동일해야 합니다.
  • Oracle Zero Downtime Migration컨테이너 데이터베이스(CDB)CDB로, 비CDB를 비CDB로 마이그레이션합니다.
  • Oracle Zero Downtime MigrationOracle Database Backup Cloud Service를 사용하여 소스 Exadata 데이터베이스를 OCI Object Storage에 백업합니다. 그런 다음 Oracle Zero Downtime Migration이 이 백업에서 대상 데이터베이스를 복원합니다.

다음 단계에서는 오프라인 물리적 마이그레이션을 수행하는 방법에 대해 설명합니다.

  1. OCI 콘솔에서 대상 데이터베이스가 구성될 동일한 서브넷에 컴퓨트 인스턴스를 생성합니다.
    이 컴퓨트 인스턴스는 OCPU가 2개 이상, RAM이 16GB 이상인 모든 구성에서 Oracle Linux 7.9 운영체제를 실행할 수 있습니다. 이 가상 머신은 Oracle Zero Downtime Migration 소프트웨어를 실행하는 데 사용됩니다.
  2. 문서 검토 섹션의 Oracle Zero Downtime Migration 설치 설명서에 따라 OCI 컴퓨트 인스턴스에 Oracle Zero Downtime Migration 21.4 소프트웨어를 다운로드하고 설치합니다.
    Oracle Zero Downtime Migration 소프트웨어를 zdmuser로 실행합니다.
  3. Oracle Zero Downtime Migration 소프트웨어를 실행하는 컴퓨트 인스턴스에 zdmuser으로 로그인하고 SSH 키 쌍을 생성합니다. zdmuser 계정에서 소스 Exadata 데이터베이스의 모든 노드(root, privilege-sudoer user) 및 대상 데이터베이스 opc user 계정의 모든 VM 클러스터 노드로 비밀번호가 없는 ssh를 사용으로 설정합니다.
  4. Oracle Zero Downtime Migration VM이 호스트 이름 및 IP 주소를 사용하여 소스 데이터베이스 호스트와 통신할 수 있는지 확인합니다. 다음 사항을 확인하십시오.
    • 필요한 경우 Oracle Zero Downtime Migration VM에서 VCN DNS 분석기 또는 /etc/hosts 파일을 수정합니다.
    • Oracle Zero Downtime Migration VM이 기본 리스너 포트 1521 및 SSH 포트 22의 소스 데이터베이스에 연결할 수 있는 보안 규칙이 있는지 확인합니다.
    • Oracle Zero Downtime Migration VM이 기본 리스너 포트 1521 및 SSH 포트 22의 대상 데이터베이스 호스트에 도달할 수 있는지 확인합니다.
  5. OCI 콘솔에서 OCI Object Storage 버킷이 존재하지 않으면 생성합니다.
    Swift URL, 오브젝트 스토리지 네임스페이스 및 버킷 이름을 확인합니다.
  6. OCI 콘솔에서 OCI Object Storage 버킷에 데이터를 업로드하는 OCI_user에 대한 인증 토큰을 생성합니다.
    토큰은 다시 표시되지 않습니다.
  7. 보안 정책에서 OCI_userOCI Object Storage 버킷에 데이터를 업로드할 수 있도록 허용합니다.
  8. OCI GUI 또는 REST API를 사용하여 Oracle Exadata Database Service on Dedicated Infrastructure 대상 데이터베이스를 생성합니다. 다음과 같이 Target Database를 구성합니다.
    • 대상 및 소스 데이터베이스의 이름은 동일해야 하지만 DB_UNIQUE_NAME가 달라야 합니다.
    • 소스 및 대상 데이터베이스의 sys 비밀번호, 전자 지갑 비밀번호, 데이터베이스 버전, 패치 레벨 및 시간대 파일 버전이 동일해야 합니다.
    • 백업 대상을 선택하거나 자동 백업을 사용으로 설정하지 마십시오. 이러한 설정은 데이터베이스가 이전된 후에 활성화할 수 있습니다.
  9. 소스 데이터베이스가 Archivelog 모드로 구성되었는지 확인합니다. Archivelog가 사용으로 설정되지 않은 경우 아래의 Enable Archivelog Mode를 참조하십시오.
  10. 소스 데이터베이스가 암호화되지 않은 경우 아래의 TDE(Transparent Data Encryption) 키 저장소 구성을 참조하십시오. 데이터는 암호화할 필요가 없으며 물리적 마이그레이션에는 TDE 키 저장소만 필요합니다. 키 저장소(전자 지갑) 비밀번호가 Oracle Exadata Database Service on Dedicated Infrastructure에서 대상 데이터베이스를 생성하는 데 사용된 시스템/전자 지갑 비밀번호와 동일한지 확인하십시오.
  11. Oracle Zero Downtime Migration에 대한 응답 파일을 만들어 마이그레이션을 실행합니다. 키 매개변수는 다음과 같습니다.
    • TGT_DB_UNIQUE_NAME: 대상 Oracle Exadata Database Service on Dedicated Infrastructure 데이터베이스에 대한 데이터베이스 고유 이름입니다.
    • MIGRATION_METHOD: OFFLINE_PHYSICAL 또는 ONLINE_PHYSICAL.
    • DATA_TRANSFER_MEDIUM: OSS
    • PLATFORM_TYPE: EXACS
    • HOST: 5단계의 OCI Object Storage 네임스페이스에 대한 Swift URL(https://swiftobjectstorage.<region>.oraclecloud.com/v1/<namespace>>. 형식) 예:
      https://switfobjectstorage.us-phoenix-1.oraclecloud.com/v1/axwytvijqqld
    • OPC_CONTAINER: 4단계의 OCI Object Storage 버킷 이름입니다.
    • SHUTDOWN_SRC: TRUE
  12. Oracle Zero Downtime Migration Dry Run 이전 작업(-eval)을 실행하여 마이그레이션의 모든 필요 조건이 가능한지 검증합니다. 예를 들면, 다음과 같습니다.
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_first_Exadata_node \
    -srcauth zdmauth \
    -srcarg1 user: root_or_sudoer_user \
    -srcarg2 identity_file: path_to_ssh_private_key/ssh_private_key_file_name
    \
    -srcarg3 sudo_location:/usr/bin/sudo \
    -targetnode IP/hostname_of_first_exadata_database_dedicated_VM_cluster_node
    -tgtarg1 user:opc \
    -tgtarg2 identity_file: path_to_ssh_private_key/ssh_private_key_file_name
    \
    -tgtarg3 sudo_location:/usr/bin/sudo \
    -rsp path_to_response_file/response_file_name_from_step_10 \
    -backupuser “OCI_user_id_for_user_allowed_to_upload_data_to_OCI_object_storage_bucket”
    -eval
    이 명령은 두 개의 암호를 요청합니다. 첫번째 비밀번호는 소스 데이터베이스의 sys 비밀번호입니다. 두번째 비밀번호는 OCI Object Storage 버킷에 데이터를 업로드하는 사용자의 OCI_user 비밀번호입니다. 여기에 유저 암호를 입력하지 말고 대신 6단계의 인증 토큰을 입력합니다.
    건식 실행 성공 후 다음 단계로 진행합니다.
  13. Oracle Zero Downtime Migration 작업을 실행합니다. 예를 들면, 다음과 같습니다.
    zdmcli migrate database -sourcedb source_db_name \
    -sourcenode IP/hostname_of_first_Exadata_node \
    -srcauth zdmauth \
    -srcarg1 user: root_or_sudoer_user \
    -srcarg2 identity_file: path_to_ssh_private_key/ssh_private_key_file_name
    \
    -srcarg3 sudo_location:/usr/bin/sudo \
    -targetnode IP/hostname_of_first_exadata_database_dedicated_VM_cluster_node
    -tgtarg1 user:opc \
    -tgtarg2 identity_file: path_to_ssh_private_key/ssh_private_key_file_name
    \
    -tgtarg3 sudo_location:/usr/bin/sudo \
    -rsp path_to_response_file/response_file_name_from_step_10 \
    -backupuser “OCI_user_id_for_user_allowed_to_upload_data_to_OCI_object_storage_bucket
    이 명령은 두 개의 암호를 요청합니다. 첫번째 비밀번호는 소스 데이터베이스의 sys 비밀번호입니다. 두번째 비밀번호는 OCI Object Storage 버킷에 데이터를 업로드하는 사용자의 OCI_user 비밀번호입니다. 여기에 유저 암호를 입력하지 말고 대신 6단계의 인증 토큰을 입력합니다.
오프라인 물리적 마이그레이션이 완료되었습니다.

아카이브 로그 모드 사용

Oracle Zero Downtime Migration 물리적 이전을 위해 소스 데이터베이스에서 아카이브 로그 모드를 사용으로 설정해야 합니다. 이 단계에서는 소스 데이터베이스에서 아카이브 로그 모드를 구성하는 방법에 대해 설명합니다.

  1. 소스 데이터베이스가 Archivelog 모드로 구성되지 않았는지 검증합니다.
    SQL> select log_mode from v$database;
    LOG_MODE
    ------------
    NOARCHIVELOG
  2. 소스 데이터베이스 로그 아카이브 대상을 구성합니다. 이 구성은 Exadata에서 실행되는 데이터베이스용이므로 Archivelog 대상은 Oracle RECO ASM 디스크 그룹이어야 합니다.
    SQL> alter system set log_archive_dest_1='LOCATION=+RECOC1' scope=both SID='*';
    System altered.
    SQL> select destination,STATUS from v$archive_dest where statuS='VALID';
    DESTINATION
    --------------------------------------------------------------------------------
    STATUS
    ---------
    +RECOC1
    VALID
  3. 데이터베이스를 종료합니다.
    $ srvctl stop database -d db_name
  4. 첫번째 노드에서 데이터베이스 마운트를 시작합니다.
    SQL> startup mount;
    ORACLE instance started.
  5. 아카이브 로그 모드를 사용으로 설정하십시오.
    alter database archivelog;
  6. 데이터베이스를 엽니다.
    alter database open;
  7. 데이터베이스가 Archivelog 모드인지 확인합니다.
    SQL> select log_mode from v$database;
    LOG_MODE
    ------------
    ARCHIVELOG
    SQL> select destination,STATUS from v$archive_dest where status='VALID';
    DESTINATION
    --------------------------------------------------------------------------------
    STATUS
    ---------
    +RECOC1
    VALID
  8. 두번째 노드에서 데이터베이스를 재시작합니다.
    $ srvctl start instance -d db_name -n hostname_node2
  9. 플러그 가능한 데이터베이스가 두 노드에서 열기, 읽기, 쓰기 모드인지 확인합니다. 플러그 가능한 데이터베이스가 열려 있지 않으면 두 노드에서 플러그 가능한 데이터베이스를 열고 상태를 저장합니다.
    SQL> Alter pluggabale database pdb_name open instances=all;
    SQL>Alter pluggable database pdb_name save state instances=all;

TDE(투명한 데이터 암호화) 키 저장소 구성

Oracle Zero Downtime Migration 물리적 이전에는 소스 데이터베이스가 암호화되지 않더라도 auto_login TDE 암호화 키 저장소/전자 지갑이 필요합니다. 이 키 저장소는 대상 데이터베이스 키 저장소와 동일한 비밀번호로 구성해야 합니다. 다음 단계에서는 소스 데이터베이스에서 키 저장소를 구성하는 방법에 대해 설명합니다.

  1. 데이터베이스에 대해 구성된 기본 키 저장소 위치가 있는지 확인합니다.
    SQL> select * from v$encryption_wallet;
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    /u01/app/oracle/admin/db_name/wallet
    NOT_AVAILABLE UNKNOWN SINGLE NONE UNDEFINED
    1
    SQL>
    이 출력은 구성된 키 저장소 또는 전자 지갑이 없음을 보여줍니다.
  2. 두 Exadata 노드에서 oracle 유저의 TNS_ADMIN 변수를 설정합니다.
    $ORACLE_HOME/network/admin/db_name
  3. TNS_ADMIN가 가리키는 두 Exadata 노드에 sqlnet.ora 파일을 저장할 디렉토리를 만듭니다.
    mkdir -p $ORACLE_HOME/network/admin/db_name
  4. TNS_ADMIN가 가리키는 디렉토리에 두 Exadata 노드에 다음 내용이 포함된 sqlnet.ora 파일을 만듭니다.
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)
     (METHOD_DATA=(DIRECTORY=/u01/app/oracle/admin/db_name/wallet)))
  5. 두 Exadata 노드의 sqlnet.ora가 가리키는 위치에 키 저장소 또는 전자 지갑을 저장할 디렉토리를 생성합니다.
    $mkdir -p $/u01/app/oracle/admin/db_name/wallet
  6. 첫번째 노드에서 암호로 보호되는 keystore를 생성합니다.
    대상 데이터베이스 키 저장소도 이 비밀번호로 구성해야 합니다.
    SQL>administer key management create keystore '/u01/app/oracle/admin/db_name/wallet' identified by keystore_password;
  7. 첫번째 노드에서 keystore를 엽니다.
    소스 데이터베이스가 비CDB인 경우 container = ALL를 제거합니다.
    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY keystore_password container = ALL;
  8. 키 저장소에 대한 백업을 생성합니다.
    소스 데이터베이스가 비CDB인 경우 container = ALL를 제거합니다.
    SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY keystore_password with backup container = ALL;
  9. keystore가 생성되고 백업되었는지 확인합니다.
    SQL> SELECT * FROM v$encryption_keys;
    Snip…
    ACTIVATING_PDBNAME
    --------------------------------------------------------------------------------
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    ATOlrcGaa0/iv/dFeRSkNSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    --------------------------------------------------------------------------------
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    db_name
    ACTIVATING_PDBID ACTIVATING_PDBUID ACTIVATING_PDBGUID CON_ID
    ---------------- ----------------- -------------------------------- ----------
    1 86B637B62FDF7A65E053F706E80A27CA
    Snip…
  10. 7단계에서 만든 키 저장소에서 auto_login 키 저장소를 만듭니다.
    SQL> ADMINISTER KEY MANAGEMENT CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE '/u01/app/oracle/admin/db_name/wallet' IDENTIFIED BY keystore_password ;
  11. 7단계에서 keystore를 닫습니다.
    SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY keystore_password;
  12. auto_login 키 저장소가 아직 열려 있는지 확인합니다.
    SQL> SELECT * FROM v$encryption_wallet;
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    /u01/app/oracle/admin/db_name/wallet
    OPEN AUTOLOGIN SINGLE NONE NO
  13. 노드 1에서 노드 2로 전자 지갑 파일을 생성합니다.
    cd /u01/app/oracle/admin/db_name/wallet.
    scp * node_2:/u01/app/oracle/admin/db_name/wallet
  14. 두 Exadata 노드에서 데이터베이스를 다시 시작합니다.
    $ srvctl stop database -d db_name
    $ srvctl start database -d db_name
    $ srvctl status database -d db_name
    Instance db_name1 is running on node node_1
    Instance db_name2 is running on node node_2
  15. 두 노드에서 auto_login 전자 지갑이 열려 있는지 확인합니다.
    SQL> SELECT * FROM v$encryption_wallet;
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    /u01/app/oracle/admin/db_name/wallet/
    OPEN AUTOLOGIN SINGLE NONE NO
    1
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    OPEN AUTOLOGIN SINGLE UNITED NO
    2
    WRL_TYPE
    --------------------
    WRL_PARAMETER
    --------------------------------------------------------------------------------
    STATUS WALLET_TYPE WALLET_OR KEYSTORE FULLY_BAC
    ------------------------------ -------------------- --------- -------- ---------
    CON_ID
    ----------
    FILE
    OPEN_NO_MASTER_KEY AUTOLOGIN SINGLE UNITED UNDEFINED
    3
    SQL>
  16. 플러그 가능한 데이터베이스가 두 노드에서 열기, 읽기, 쓰기 모드인지 확인합니다. 플러그 가능한 데이터베이스가 열려 있지 않으면 두 노드에서 플러그 가능한 데이터베이스를 열고 상태를 저장합니다.
    SQL> Alter pluggabale database pdb_name open instances=all;
    SQL>Alter pluggable database pdb_name save state instances=all;