Skip to main content
NetApp Solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

TR-5002: Azure NetApp Files를 사용한 Oracle Active Data Guard 비용 절감

기여자

Allen Cao, Niyaz Mohamed, NetApp

이 솔루션은 Microsoft ANF(Azure NetApp Files)를 기본 및 대기 데이터베이스 스토리지로 사용하여 Oracle Data Guard를 구성하여 Azure 클라우드에서 Oracle Data Guard HA/DR 솔루션의 라이센스 및 운영 비용을 절감하는 개요와 세부 정보를 제공합니다.

목적

Oracle Data Guard는 기본 데이터베이스 및 대기 데이터베이스 복제 구성의 엔터프라이즈 데이터에 대한 고가용성, 데이터 보호 및 재해 복구를 보장합니다. Oracle Active Data Guard는 기본 데이터베이스에서 대기 데이터베이스로 데이터 복제가 활성 상태인 동안 사용자가 대기 데이터베이스에 액세스할 수 있도록 합니다. Data Guard는 Oracle Database Enterprise Edition의 기능입니다. 별도의 라이센스가 필요하지 않습니다. 반면 Active Data Guard는 Oracle Database Enterprise Edition 옵션이므로 별도의 라이센스가 필요합니다. 여러 대기 데이터베이스가 Active Data Guard 설정의 기본 데이터베이스로부터 데이터 복제를 수신할 수 있습니다. 그러나 각각의 추가 대기 데이터베이스에는 활성 Data Guard 라이센스와 기본 데이터베이스의 크기로 추가 스토리지가 필요합니다. 운영 비용이 빠르게 증가합니다.

Oracle 데이터베이스 운영 비용을 절감하고 Azure 클라우드에서 Active Data Guard를 설정할 계획이라면 대안을 고려해야 합니다. Active Data Guard 대신 Data Guard를 사용하여 기본 데이터베이스에서 Azure NetApp Files 스토리지의 단일 물리적 대기 데이터베이스로 복제합니다. 그런 다음 이 대기 데이터베이스의 여러 복사본을 복제 및 읽기/쓰기 액세스를 위해 열어 보고, 개발, 테스트 등과 같은 다른 많은 사용 사례를 제공할 수 있습니다. 그 결과 Active Data Guard의 기능을 효과적으로 제공하는 동시에 Active Data Guard 라이센스를 제거합니다. 이 문서에서는 ANF 스토리지의 기존 기본 데이터베이스 및 물리적 대기 데이터베이스로 Oracle Data Guard를 설정하는 방법을 설명합니다. 대기 데이터베이스는 NetApp SnapCenter 데이터베이스 관리 도구를 통해 필요에 따라 활용 사례를 위해 읽기/쓰기 액세스를 위해 백업 및 복제됩니다. 또한 NetApp 솔루션 엔지니어링 팀은 사용자 개입 없이 완전하고 자동화된 데이터베이스 클론 라이프사이클 관리를 위해 사용자 정의 일정에 따라 클론을 새로 고칠 수 있는 자동화 툴 키트를 제공합니다.

이 솔루션은 다음과 같은 사용 사례를 해결합니다.

  • Azure 지역의 Microsoft Azure NetApp Files 스토리지에서 기본 데이터베이스와 물리적 대기 데이터베이스 간에 Oracle Data Guard를 구현합니다.

  • 보고, 개발, 테스트 등과 같은 사용 사례를 제공하기 위해 물리적 대기 데이터베이스를 백업하고 복제합니다

  • 자동화를 통한 Oracle 데이터베이스 클론 업데이트 라이프사이클 관리

대상

이 솔루션은 다음과 같은 사용자를 대상으로 합니다.

  • 고가용성, 데이터 보호 및 재해 복구를 위해 Azure 클라우드에서 Oracle Active Data Guard를 설정하는 DBA입니다.

  • Azure 클라우드의 Oracle Active Data Guard 구성에 관심이 있는 데이터베이스 솔루션 설계자

  • Oracle Data Guard를 지원하는 Azure NetApp Files 스토리지를 관리하는 스토리지 관리자

  • Azure 클라우드 환경에서 Oracle Data Guard를 가동하려는 애플리케이션 소유자.

솔루션 테스트 및 검증 환경

이 솔루션의 테스트 및 검증은 실제 사용자 구축 환경과 일치하지 않을 수도 있는 Azure 클라우드 연구소 설정에서 수행되었습니다. 자세한 내용은 섹션을 참조하십시오 구축 시 고려해야 할 주요 요소.

있습니다

이 이미지는 ANF의 Azure Cloud에서 Oracle Data Guard를 구현한 모습을 자세히 보여줍니다.

하드웨어 및 소프트웨어 구성 요소

* 하드웨어 *

Azure NetApp Files

Microsoft에서 제공하는 최신 버전입니다

2개의 3TiB 용량 풀, 표준 서비스 수준, 자동 QoS를 사용합니다

DB 서버용 Azure VM

표준 B4ms(vCPU 4개, 16GiB 메모리)

3개의 DB VM, 1개는 운영 DB 서버로, 1개는 스탠바이 DB 서버로, 3개는 클론 DB 서버로 사용됩니다

* 소프트웨어 *

RedHat Linux

Red Hat Enterprise Linux 8.6(LVM) - x64 Gen2

테스트를 위해 RedHat 서브스크립션을 배포했습니다

Oracle 데이터베이스

버전 19.18

RU 패치 p34765931_190000_Linux-x86-64.zip 를 적용했습니다

Oracle OPatch

버전 12.2.0.1.36

최신 패치 p6880880_190000_Linux-x86-64.zip

SnapCenter

버전 6.0.1

빌드 6.0.1.4487

NFS 를 참조하십시오

버전 3.0

Oracle에 대해 dNFS가 설정되었습니다

가상 NY to LA DR 설정을 사용한 Oracle Data Guard 구성

* 데이터베이스 *

* DB_UNIQUE_NAME *

* Oracle Net 서비스 이름 *

기본

NTAP_뉴욕

NTAP_NY.internal.cloudapp.net

대기

NTAP_LA

NTAP_LA.internal.cloudapp.net

구축 시 고려해야 할 주요 요소

  • * 대기 데이터베이스 복제. * 기본 데이터베이스에서 트랜잭션 로그를 수신하고 적용하는 동안 물리적 대기 데이터베이스를 DB VM에 복제하고 마운트하여 개발, 테스트 또는 보고서와 같은 다른 워크로드를 지원할 수 있습니다. 클론은 씬 또는 일반 클론일 수 있습니다. 현재 ANF는 대기 데이터베이스의 전체 복사본인 일반 클론만 지원합니다. ANF 씬 클론 옵션이 곧 릴리즈될 예정입니다. 데이터베이스 볼륨의 씬 클론 복제본의 경우 대기 데이터베이스의 동일한 DB 볼륨을 공유하고 쓰기 시 복사 기술을 활용하여 쓰기 입출력을 처리합니다. 따라서 클론은 스토리지 효율성이 매우 뛰어나 새로운 쓰기 입출력에 대해 최소한의 증분 새 스토리지 할당으로 다른 많은 활용 사례에서 사용할 수 있습니다. 따라서 Active Data Guard 스토리지 설치 공간을 크게 줄여 스토리지 비용을 크게 절감할 수 있습니다. 데이터베이스를 운영 스토리지에서 대기 ANF 스토리지로 전환할 경우 Oracle 성능을 최고 수준으로 유지하기 위해 FlexClone 작업을 최소화하는 것이 좋습니다 NetApp.

  • * Oracle 소프트웨어 요구 사항. * 일반적으로 물리적 대기 데이터베이스는 패치 세트 예외(PSE), 중요 패치 업데이트(CPU), 및 패치 세트 업데이트(PSU)(의 My Oracle Support Note 1265700.1 에 설명된 대로 Oracle Data Guard Standby-First Patch Apply 프로세스가 진행 중인 경우 제외 "support.oracle.com"

  • 대기 데이터베이스 디렉터리 구조 고려 사항. 가능한 경우 기본 및 대기 시스템의 데이터 파일, 로그 파일 및 제어 파일은 이름과 경로 이름이 같아야 하며 OFA(Optimal Flexible Architecture) 명명 규칙을 사용해야 합니다. 대기 데이터베이스의 보관 디렉터리도 크기 및 구조를 포함하여 사이트 간에 동일해야 합니다. 이 전략을 통해 백업, 스위치오버 및 페일오버 같은 다른 작업에서 동일한 단계를 실행할 수 있으므로 유지 관리의 복잡성이 줄어듭니다.

  • * 강제 로깅 모드. * 대기 데이터베이스로 전파할 수 없는 기본 데이터베이스에서 로깅되지 않은 직접 쓰기로부터 보호하려면 대기 생성을 위한 데이터 파일 백업을 수행하기 전에 기본 데이터베이스에서 강제 로깅을 켜십시오.

  • * Azure VM 사이징. * 이러한 테스트 및 검증에서 Azure VM-Standard_B4ms를 vCPU 4개와 16GiB 메모리를 사용했습니다. 실제 워크로드 요구 사항에 따라 vCPU 수와 RAM 양에 따라 Azure DB VM의 크기를 적절하게 조정해야 합니다.

  • * Azure NetApp Files 구성. * Azure NetApp Files는 Azure NetApp 스토리지 계정에서 로 `Capacity Pools`할당됩니다. 이러한 테스트 및 검증에서 3TiB 용량 풀을 사용하여 동부 지역에 Oracle 기본 풀을 호스팅하고 서부 2 지역에 대기 데이터베이스를 구축했습니다. ANF 용량 풀에는 Standard, Premium 및 Ultra의 3가지 서비스 수준이 있습니다.  ANF 용량 풀의 IO 용량은 용량 풀의 크기와 서비스 수준을 기준으로 합니다. 운영 구축 환경의 경우 NetApp Oracle 데이터베이스 처리량 요구 사항을 전체적으로 평가하고 그에 따라 데이터베이스 용량 풀을 사이징하는 것이 좋습니다. 용량 풀을 생성할 때 QoS를 자동 또는 수동으로 설정하고 유휴 시 데이터 암호화를 단일 또는 이중으로 설정할 수 있습니다.  

  • * dNFS 구성. * DNFS를 사용하면 ANF 스토리지가 있는 Azure 가상 머신에서 실행되는 Oracle 데이터베이스가 네이티브 NFS 클라이언트보다 훨씬 많은 I/O를 구동할 수 있습니다. NetApp 자동화 툴킷을 사용하여 자동화된 Oracle 구축은 NFSv3에서 dNFS를 자동으로 구성합니다.

솔루션 구축

Oracle Data Guard를 설정하기 위한 시작점으로 VNet 내의 Azure 클라우드 환경에 기본 Oracle 데이터베이스가 이미 구축되어 있다고 가정합니다. 이상적인 목표는 NFS 마운트를 통해 ANF 스토리지에 운영 데이터베이스를 구축하는 것입니다. Oracle 데이터베이스 스토리지용으로 세 가지 NFS 마운트 지점이 생성됩니다. Oracle 바이너리 파일의 경우 mount/u01, Oracle 데이터 파일 및 제어 파일의 경우 mount/u02, Oracle 현재 및 아카이빙된 로그 파일의 경우 mount/u03, 중복 제어 파일입니다.

또한 기본 Oracle 데이터베이스는 NetApp ONTAP 스토리지 또는 Azure 에코시스템 또는 프라이빗 데이터 센터 내에서 선택한 기타 스토리지에서 실행될 수 있습니다. 다음 섹션에서는 ANF 스토리지가 있는 Azure의 기본 Oracle DB에서 ANF 스토리지가 있는 Azure의 물리적 대기 Oracle DB로 Oracle Data Guard를 설정하기 위한 단계별 구축 절차를 제공합니다.

배포를 위한 사전 요구 사항

Details

배포에는 다음과 같은 사전 요구 사항이 필요합니다.

  1. Azure 클라우드 계정이 설정되었으며 필요한 VNet 및 네트워크 서브넷이 Azure 계정 내에 생성되었습니다.

  2. Azure 클라우드 포털 콘솔에서 최소 3개의 Azure Linux VM, 1개는 운영 Oracle DB 서버로, 1개는 대기 Oracle DB 서버로, 보고, 개발 및 테스트용 클론 타겟 DB 서버를 구축해야 합니다. 환경 설정에 대한 자세한 내용은 이전 섹션의 아키텍처 다이어그램을 참조하십시오. 자세한 내용은 Microsoft를 "Azure 가상 머신"참조하십시오.

  3. 운영 Oracle 데이터베이스는 운영 Oracle DB 서버에 설치 및 구성되어 있어야 합니다. 반면, 대기 Oracle DB 서버 또는 클론 Oracle DB 서버에는 Oracle 소프트웨어만 설치되고 Oracle 데이터베이스는 생성되지 않습니다. 이상적으로는 Oracle 파일 디렉토리 레이아웃이 모든 Oracle DB 서버에서 정확히 일치해야 합니다. Azure 클라우드 및 ANF의 자동화된 Oracle 구축을 위한 NetApp 권장 사항에 대한 자세한 내용은 다음 기술 보고서를 참조하십시오.

  4. Azure 클라우드 포털 콘솔에서 두 개의 ANF 스토리지 용량 풀을 구축하여 Oracle 데이터베이스 볼륨을 호스팅합니다. ANF 스토리지 용량 풀은 실제 DataGuard 구성과 유사하게 다른 지역에 위치해야 합니다. ANF 스토리지 구축에 익숙하지 않은 경우 설명서에서 단계별 지침을 참조하십시오"QuickStart: Azure NetApp Files를 설정하고 NFS 볼륨을 생성합니다".

    Azure 환경 구성을 보여 주는 스크린샷

  5. 운영 Oracle 데이터베이스와 스탠바이 Oracle 데이터베이스가 서로 다른 두 지역에 있는 경우 VPN 게이트웨이를 구성하여 두 개의 개별 VNet 간에 데이터 트래픽이 흐르도록 해야 합니다. Azure의 자세한 네트워킹 구성은 이 문서의 범위를 벗어납니다. 다음 스크린샷은 VPN 게이트웨이가 어떻게 구성되고, 연결되며, 데이터 트래픽 흐름이 실험실에서 확인되는지 몇 가지 참조를 제공합니다.

    랩 VPN 게이트웨이: Azure 환경 구성을 보여 주는 스크린샷

    기본 VNet 게이트웨이: Azure 환경 구성을 보여 주는 스크린샷

    VNet Gateway 연결 상태: Azure 환경 구성을 보여 주는 스크린샷

    트래픽 흐름이 설정되어 있는지 확인합니다(세 개의 점을 클릭하여 페이지를 엽니다). Azure 환경 구성을 보여 주는 스크린샷

Data Guard용 기본 데이터베이스를 준비합니다

Details

이 데모에서는 Oracle 바이너리의 경우 /u01, Oracle 데이터 파일의 경우 /u02, Oracle 제어 파일의 경우 /u03, Oracle 액티브 로그, 보관된 로그 파일, 이중화된 Oracle 제어 파일의 경우 세 가지 NFS 마운트 지점으로 운영 Azure DB 서버에 NTAP이라는 운영 Oracle 데이터베이스를 설정합니다. 다음은 Oracle Data Guard 보호를 위한 기본 데이터베이스를 설정하는 자세한 절차를 보여 줍니다. 모든 단계는 Oracle 데이터베이스 소유자 또는 기본 사용자로 oracle 실행해야 합니다.

  1. 운영 Azure DB Server orap.internal.cloudapp.net 의 운영 데이터베이스 NTAP은 처음에 ANF를 데이터베이스 스토리지로 사용하는 독립 실행형 데이터베이스로 구축됩니다.

    orap.internal.cloudapp.net:
    resource group: ANFAVSRG
    Location: East US
    size: Standard B4ms (4 vcpus, 16 GiB memory)
    OS: Linux (redhat 8.6)
    pub_ip: 172.190.207.231
    pri_ip: 10.0.0.4
    
    [oracle@orap ~]$ df -h
    Filesystem                 Size  Used Avail Use% Mounted on
    devtmpfs                   7.7G  4.0K  7.7G   1% /dev
    tmpfs                      7.8G     0  7.8G   0% /dev/shm
    tmpfs                      7.8G  209M  7.5G   3% /run
    tmpfs                      7.8G     0  7.8G   0% /sys/fs/cgroup
    /dev/mapper/rootvg-rootlv   22G  413M   22G   2% /
    /dev/mapper/rootvg-usrlv    10G  2.1G  8.0G  21% /usr
    /dev/sda1                  496M  181M  315M  37% /boot
    /dev/mapper/rootvg-homelv  2.0G   47M  2.0G   3% /home
    /dev/sda15                 495M  5.8M  489M   2% /boot/efi
    /dev/mapper/rootvg-varlv   8.0G  1.1G  7.0G  13% /var
    /dev/mapper/rootvg-tmplv    12G  120M   12G   1% /tmp
    /dev/sdb1                   32G   49M   30G   1% /mnt
    10.0.2.36:/orap-u02        500G  7.7G  493G   2% /u02
    10.0.2.36:/orap-u03        450G  6.1G  444G   2% /u03
    10.0.2.36:/orap-u01        100G  9.9G   91G  10% /u01
    
    [oracle@orap ~]$ cat /etc/oratab
    #
    
    
    
    # This file is used by ORACLE utilities.  It is created by root.sh
    # and updated by either Database Configuration Assistant while creating
    # a database or ASM Configuration Assistant while creating ASM instance.
    
    # A colon, ':', is used as the field terminator.  A new line terminates
    # the entry.  Lines beginning with a pound sign, '#', are comments.
    #
    # Entries are of the form:
    #   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
    #
    # The first and second fields are the system identifier and home
    # directory of the database respectively.  The third field indicates
    # to the dbstart utility that the database should , "Y", or should not,
    # "N", be brought up at system boot time.
    #
    # Multiple entries with the same $ORACLE_SID are not allowed.
    #
    #
    NTAP:/u01/app/oracle/product/19.0.0/NTAP:N
  2. Oracle 사용자로 운영 DB 서버에 로그인합니다. sqlplus 를 통해 데이터베이스에 로그인하고 기본 로그온을 활성화합니다.

    alter database force logging;
    [oracle@orap admin]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Tue Nov 26 20:12:02 2024
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2022, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.18.0.0.0
    
    SQL> alter database force logging;
    
    Database altered.
  3. sqlplus에서 운영 DB에서 플래시백을 활성화합니다. 플래시백은 장애 조치 후 기본 데이터베이스를 대기 데이터베이스로 쉽게 복원할 수 있도록 합니다.

    alter database flashback on;
    SQL> alter database flashback on;
    
    Database altered.
  4. Oracle 암호 파일을 사용하여 redo 전송 인증 구성 - 설정되지 않은 경우 orapwd 유틸리티를 사용하여 기본 파일에 pwd 파일을 생성하고 대기 데이터베이스 $oracle_home/dbs 디렉토리에 복사합니다.

  5. 현재 온라인 로그 파일과 크기가 같은 기본 DB에 대기 redo 로그를 생성합니다. 로그 그룹은 하나 이상의 온라인 로그 파일 그룹입니다. 그러면 대체 작동이 발생하고 재실행 데이터를 받기 시작하면 기본 데이터베이스가 대기 역할로 빠르게 전환될 수 있습니다. 다음 명령을 네 번 반복하여 4개의 대기 로그 파일을 생성합니다.

    alter database add standby logfile thread 1 size 200M;
    SQL> alter database add standby logfile thread 1 size 200M;
    
    Database altered.
    
    SQL> /
    
    Database altered.
    
    SQL> /
    
    Database altered.
    
    SQL> /
    
    Database altered.
    
    
    SQL> set lin 200
    SQL> col member for a80
    SQL> select group#, type, member from v$logfile;
    
        GROUP# TYPE    MEMBER
    ---------- ------- --------------------------------------------------------------------------------
             3 ONLINE  /u03/orareco/NTAP/onlinelog/redo03.log
             2 ONLINE  /u03/orareco/NTAP/onlinelog/redo02.log
             1 ONLINE  /u03/orareco/NTAP/onlinelog/redo01.log
             4 STANDBY /u03/orareco/NTAP/onlinelog/o1_mf_4__2m115vkv_.log
             5 STANDBY /u03/orareco/NTAP/onlinelog/o1_mf_5__2m3c5cyd_.log
             6 STANDBY /u03/orareco/NTAP/onlinelog/o1_mf_6__2m4d7dhh_.log
             7 STANDBY /u03/orareco/NTAP/onlinelog/o1_mf_7__2m5ct7g1_.log
  6. sqlplus 에서 편집할 spfile 에서 pfile 을 만듭니다.

    create pfile='/home/oracle/initNTAP.ora' from spfile;
  7. pfile을 수정하고 다음 매개 변수를 추가합니다.

    vi /home/oracle/initNTAP.ora
    Update the following parameters if not set:
    
    DB_NAME=NTAP
    DB_UNIQUE_NAME=NTAP_NY
    LOG_ARCHIVE_CONFIG='DG_CONFIG=(NTAP_NY,NTAP_LA)'
    LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=NTAP_NY'
    LOG_ARCHIVE_DEST_2='SERVICE=NTAP_LA ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=NTAP_LA'
    REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
    FAL_SERVER=NTAP_LA
    STANDBY_FILE_MANAGEMENT=AUTO
  8. sqlplus에서 수정된 pfile에서 spfile을 다시 생성하여 $ORACLE_HOME/dbs 디렉토리에 있는 기존 spfile을 덮어씁니다.

    create spfile='$ORACLE_HOME/dbs/spfileNTAP.ora' from pfile='/home/oracle/initNTAP.ora';
  9. 이름 확인을 위해 $ORACLE_HOME/NETWORK/ADMIN 디렉토리에서 Oracle tnsnames.ora를 수정합니다.

    vi $ORACLE_HOME/network/admin/tnsnames.ora
    # tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.0.0/NTAP/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    
    NTAP_NY =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = orap.internal.cloudapp.net)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SID = NTAP)
        )
      )
    
    NTAP_LA =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oras.internal.cloudapp.net)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SID = NTAP)
        )
      )
    
    LISTENER_NTAP =
      (ADDRESS = (PROTOCOL = TCP)(HOST = orap.internal.cloudapp.net)(PORT = 1521))
    참고 Azure DB 서버의 이름을 기본값과 다르게 지정하는 경우 호스트 이름 확인을 위해 로컬 호스트 파일에 이름을 추가합니다.
  10. 주 데이터베이스의 데이터 가드 서비스 이름 NTAP_NY_DGMGRL.internal.cloudapp.net 을 listener.ora 파일에 추가합니다.

    vi $ORACLE_HOME/network/admin/listener.ora
    # listener.ora Network Configuration File: /u01/app/oracle/product/19.0.0/NTAP/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    
    LISTENER.NTAP =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = orap.internal.cloudapp.net)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )
    
    SID_LIST_LISTENER.NTAP =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = NTAP_NY_DGMGRL.internal.cloudapp.net)
          (ORACLE_HOME = /u01/app/oracle/product/19.0.0/NTAP)
          (SID_NAME = NTAP)
        )
      )
  11. sqlplus 를 통해 데이터베이스를 종료하고 다시 시작하고 데이터 가드 매개 변수가 현재 활성 상태인지 확인합니다.

    shutdown immediate;
    startup;
    SQL> show parameter name
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    cdb_cluster_name                     string
    cell_offloadgroup_name               string
    db_file_name_convert                 string
    db_name                              string      NTAP
    db_unique_name                       string      NTAP_NY
    global_names                         boolean     FALSE
    instance_name                        string      NTAP
    lock_name_space                      string
    log_file_name_convert                string
    pdb_file_name_convert                string
    processor_group_name                 string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    service_names                        string      NTAP_NY.internal.cloudapp.net
    SQL> sho parameter log_archive_dest
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest                     string
    log_archive_dest_1                   string      LOCATION=USE_DB_RECOVERY_FILE_
                                                     DEST VALID_FOR=(ALL_LOGFILES,A
                                                     LL_ROLES) DB_UNIQUE_NAME=NTAP_
                                                     NY
    log_archive_dest_10                  string
    log_archive_dest_11                  string
    log_archive_dest_12                  string
    log_archive_dest_13                  string
    log_archive_dest_14                  string
    log_archive_dest_15                  string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_16                  string
    log_archive_dest_17                  string
    log_archive_dest_18                  string
    log_archive_dest_19                  string
    log_archive_dest_2                   string      SERVICE=NTAP_LA ASYNC VALID_FO
                                                     R=(ONLINE_LOGFILES,PRIMARY_ROL
                                                     E) DB_UNIQUE_NAME=NTAP_LA
    log_archive_dest_20                  string
    log_archive_dest_21                  string
    .
    .

이것으로 Data Guard에 대한 기본 데이터베이스 설정이 완료되었습니다.

대기 데이터베이스를 준비하고 Data Guard를 활성화합니다

Details

Oracle Data Guard를 사용하려면 운영 DB 서버와 일치시키기 위해 대기 DB 서버의 패치 세트를 포함한 Oracle 소프트웨어 스택과 OS 커널 구성이 필요합니다. 간편한 관리와 간소화를 위해 스탠바이 DB 서버의 데이터베이스 스토리지 구성은 데이터베이스 디렉토리 레이아웃 및 NFS 마운트 지점 크기 등 운영 DB 서버와도 이상적으로 일치해야 합니다. 다음은 대기 Oracle DB 서버를 설정하고 HA/DR 보호를 위해 Oracle DataGuard를 활성화하는 절차입니다. 모든 명령은 기본 Oracle 소유자 사용자 ID로 `oracle`실행해야 합니다.

  1. 먼저 운영 Oracle DB 서버에서 기본 데이터베이스 구성을 검토합니다. 이 데모에서는 ANF 스토리지에 3개의 NFS 마운트를 사용하여 운영 DB 서버에 NTAP이라는 운영 Oracle 데이터베이스를 설정합니다.

  2. NetApp 문서 TR-4987에 따라 Oracle 대기 DB 서버를 설정하는 경우 의 2단계에 있는 Playbook execution`"TR-4987: NFS를 지원하는 Azure NetApp Files 기반의 단순하고 자동화된 Oracle 배포" 태그를 사용하여 `-t software_only_install 자동 Oracle 설치를 실행합니다. 수정된 명령 구문은 다음과 같습니다. 이 태그를 사용하면 Oracle 소프트웨어 스택을 설치 및 구성할 수 있지만 데이터베이스 생성이 중지됩니다.

    ansible-playbook -i hosts 4-oracle_config.yml -u azureuser -e @vars/vars.yml -t software_only_install
  3. 데모 실습의 대기 사이트에 있는 대기 Oracle DB 서버 구성

    oras.internal.cloudapp.net:
    resource group: ANFAVSRG
    Location: West US 2
    size: Standard B4ms (4 vcpus, 16 GiB memory)
    OS: Linux (redhat 8.6)
    pub_ip: 172.179.119.75
    pri_ip: 10.0.1.4
    
    [oracle@oras ~]$ df -h
    Filesystem                 Size  Used Avail Use% Mounted on
    devtmpfs                   7.7G     0  7.7G   0% /dev
    tmpfs                      7.8G     0  7.8G   0% /dev/shm
    tmpfs                      7.8G  265M  7.5G   4% /run
    tmpfs                      7.8G     0  7.8G   0% /sys/fs/cgroup
    /dev/mapper/rootvg-rootlv   22G  413M   22G   2% /
    /dev/mapper/rootvg-usrlv    10G  2.1G  8.0G  21% /usr
    /dev/sda1                  496M  181M  315M  37% /boot
    /dev/mapper/rootvg-varlv   8.0G  985M  7.1G  13% /var
    /dev/mapper/rootvg-homelv  2.0G   52M  2.0G   3% /home
    /dev/mapper/rootvg-tmplv    12G  120M   12G   1% /tmp
    /dev/sda15                 495M  5.8M  489M   2% /boot/efi
    /dev/sdb1                   32G   49M   30G   1% /mnt
    10.0.3.36:/oras-u01        100G  9.5G   91G  10% /u01
    10.0.3.36:/oras-u02        500G  8.1G  492G   2% /u02
    10.0.3.36:/oras-u03        450G  4.8G  446G   2% /u03
  4. Oracle 소프트웨어가 설치 및 구성되면 Oracle home 및 path를 설정합니다. 또한 스탠바이 $ORACLE_HOME DBS 디렉토리에서 Oracle 암호를 복사하지 않은 경우 기본 데이터베이스에서 복사합니다.

    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/NTAP
    export PATH=$PATH:$ORACLE_HOME/bin
    scp oracle@10.0.0.4:$ORACLE_HOME/dbs/orapwNTAP .
  5. 다음 항목으로 tnsnames.ora 파일을 업데이트합니다.

    vi $ORACLE_HOME/network/admin/tnsnames.ora
    # tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.0.0/NTAP/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    
    NTAP_NY =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = orap.internal.cloudapp.net)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SID = NTAP)
        )
      )
    
    NTAP_LA =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oras.internal.cloudapp.net)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SID = NTAP)
        )
      )
  6. listener.ora 파일에 DB 데이터 가드 서비스 이름을 추가합니다.

    vi $ORACLE_HOME/network/admin/listener.ora
    # listener.ora Network Configuration File: /u01/app/oracle/product/19.0.0/NTAP/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    
    LISTENER.NTAP =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = oras.internal.cloudapp.net)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = NTAP)
        )
      )
    
    SID_LIST_LISTENER.NTAP =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = NTAP_LA_DGMGRL.internal.cloudapp.net)
          (ORACLE_HOME = /u01/app/oracle/product/19.0.0/NTAP)
          (SID_NAME = NTAP)
        )
      )
    
    LISTENER =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oras.internal.cloudapp.net)(PORT = 1521))
      )
  7. dbca를 실행하여 운영 데이터베이스 NTAP에서 대기 데이터베이스를 인스턴스화합니다.

    dbca -silent -createDuplicateDB -gdbName NTAP -primaryDBConnectionString orap.internal.cloudapp.net:1521/NTAP_NY.internal.cloudapp.net -sid NTAP -initParams fal_server=NTAP_NY -createAsStandby -dbUniqueName NTAP_LA
    [oracle@oras admin]$ dbca -silent -createDuplicateDB -gdbName NTAP -primaryDBConnectionString orap.internal.cloudapp.net:1521/NTAP_NY.internal.cloudapp.net -sid NTAP -initParams fal_server=NTAP_NY -createAsStandby -dbUniqueName NTAP_LA
    Enter SYS user password:
    
    Prepare for db operation
    22% complete
    Listener config step
    44% complete
    Auxiliary instance creation
    67% complete
    RMAN duplicate
    89% complete
    Post duplicate database operations
    100% complete
    
    Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/NTAP_LA/NTAP_LA.log" for further details.
  8. 중복된 대기 데이터베이스의 유효성을 검사합니다. 새로 복제된 대기 데이터베이스는 처음에 읽기 전용 모드로 열립니다.

    [oracle@oras admin]$ cat /etc/oratab
    #
    
    
    
    # This file is used by ORACLE utilities.  It is created by root.sh
    # and updated by either Database Configuration Assistant while creating
    # a database or ASM Configuration Assistant while creating ASM instance.
    
    # A colon, ':', is used as the field terminator.  A new line terminates
    # the entry.  Lines beginning with a pound sign, '#', are comments.
    #
    # Entries are of the form:
    #   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
    #
    # The first and second fields are the system identifier and home
    # directory of the database respectively.  The third field indicates
    # to the dbstart utility that the database should , "Y", or should not,
    # "N", be brought up at system boot time.
    #
    # Multiple entries with the same $ORACLE_SID are not allowed.
    #
    #
    NTAP:/u01/app/oracle/product/19.0.0/NTAP:N
    [oracle@oras admin]$ export ORACLE_SID=NTAP
    [oracle@oras admin]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Tue Nov 26 23:04:07 2024
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2022, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.18.0.0.0
    
    SQL> select name, open_mode from v$database;
    
    NAME      OPEN_MODE
    --------- --------------------
    NTAP      READ ONLY
    
    SQL> show parameter name
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    cdb_cluster_name                     string
    cell_offloadgroup_name               string
    db_file_name_convert                 string
    db_name                              string      NTAP
    db_unique_name                       string      NTAP_LA
    global_names                         boolean     FALSE
    instance_name                        string      NTAP
    lock_name_space                      string
    log_file_name_convert                string
    pdb_file_name_convert                string
    processor_group_name                 string
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    service_names                        string      NTAP_LA.internal.cloudapp.net
    SQL> show parameter log_archive_config
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_config                   string      DG_CONFIG=(NTAP_NY,NTAP_LA)
    SQL> show parameter fal_server
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    fal_server                           string      NTAP_NY
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    /u02/oradata/NTAP/system01.dbf
    /u02/oradata/NTAP/sysaux01.dbf
    /u02/oradata/NTAP/undotbs01.dbf
    /u02/oradata/NTAP/pdbseed/system01.dbf
    /u02/oradata/NTAP/pdbseed/sysaux01.dbf
    /u02/oradata/NTAP/users01.dbf
    /u02/oradata/NTAP/pdbseed/undotbs01.dbf
    /u02/oradata/NTAP/NTAP_pdb1/system01.dbf
    /u02/oradata/NTAP/NTAP_pdb1/sysaux01.dbf
    /u02/oradata/NTAP/NTAP_pdb1/undotbs01.dbf
    /u02/oradata/NTAP/NTAP_pdb1/users01.dbf
    
    NAME
    --------------------------------------------------------------------------------
    /u02/oradata/NTAP/NTAP_pdb2/system01.dbf
    /u02/oradata/NTAP/NTAP_pdb2/sysaux01.dbf
    /u02/oradata/NTAP/NTAP_pdb2/undotbs01.dbf
    /u02/oradata/NTAP/NTAP_pdb2/users01.dbf
    /u02/oradata/NTAP/NTAP_pdb3/system01.dbf
    /u02/oradata/NTAP/NTAP_pdb3/sysaux01.dbf
    /u02/oradata/NTAP/NTAP_pdb3/undotbs01.dbf
    /u02/oradata/NTAP/NTAP_pdb3/users01.dbf
    
    19 rows selected.
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    /u02/oradata/NTAP/control01.ctl
    /u03/orareco/NTAP_LA/control02.ctl
    
    SQL> col member form a80
    SQL> select group#, type, member from v$logfile order by 2, 1;
    
        GROUP# TYPE    MEMBER
    ---------- ------- --------------------------------------------------------------------------------
             1 ONLINE  /u03/orareco/NTAP_LA/onlinelog/o1_mf_1_mndl6mxh_.log
             2 ONLINE  /u03/orareco/NTAP_LA/onlinelog/o1_mf_2_mndl7jdb_.log
             3 ONLINE  /u03/orareco/NTAP_LA/onlinelog/o1_mf_3_mndl8f03_.log
             4 STANDBY /u03/orareco/NTAP_LA/onlinelog/o1_mf_4_mndl99m7_.log
             5 STANDBY /u03/orareco/NTAP_LA/onlinelog/o1_mf_5_mndlb67d_.log
             6 STANDBY /u03/orareco/NTAP_LA/onlinelog/o1_mf_6_mndlc2tw_.log
             7 STANDBY /u03/orareco/NTAP_LA/onlinelog/o1_mf_7_mndlczhb_.log
    
    7 rows selected.
  9. 단계에서 대기 데이터베이스를 다시 mount 시작하고 다음 명령을 실행하여 대기 데이터베이스 관리 복구를 활성화합니다.

    alter database recover managed standby database disconnect from session;
    SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup mount;
    ORACLE instance started.
    
    Total System Global Area 6442449688 bytes
    Fixed Size                  9177880 bytes
    Variable Size            1090519040 bytes
    Database Buffers         5335154688 bytes
    Redo Buffers                7598080 bytes
    Database mounted.
    SQL> alter database recover managed standby database disconnect from session;
    
    Database altered.
  10. 대기 데이터베이스 복구 상태를 확인합니다. 를 확인합니다 recovery logmerger 인치 APPLYING_LOG 조치.

    SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;

ROLE                        THREAD#  SEQUENCE# ACTION
------------------------ ---------- ---------- ------------
post role transition              0          0 IDLE
recovery apply slave              0          0 IDLE
recovery apply slave              0          0 IDLE
recovery apply slave              0          0 IDLE
recovery apply slave              0          0 IDLE
recovery logmerger                1         18 APPLYING_LOG
managed recovery                  0          0 IDLE
RFS async                         1         18 IDLE
RFS ping                          1         18 IDLE
archive redo                      0          0 IDLE
redo transport timer              0          0 IDLE

ROLE                        THREAD#  SEQUENCE# ACTION
------------------------ ---------- ---------- ------------
gap manager                       0          0 IDLE
archive redo                      0          0 IDLE
archive redo                      0          0 IDLE
redo transport monitor            0          0 IDLE
log writer                        0          0 IDLE
archive local                     0          0 IDLE

17 rows selected.

SQL>

이것으로 관리되는 대기 복구가 활성화된 상태에서 기본 볼륨에서 대기 상태로 NTAP에 대한 Data Guard 보호 설정이 완료됩니다.

Data Guard Broker를 설정합니다

Details

Oracle Data Guard Broker는 Oracle Data Guard 구성의 생성, 유지 관리 및 모니터링을 자동화하고 중앙 집중화하는 분산 관리 프레임워크입니다. 다음 섹션에서는 Data Guard Broker를 설정하여 Data Guard 환경을 관리하는 방법을 보여 줍니다.

  1. sqlplus 를 통해 다음 명령을 사용하여 기본 데이터베이스와 대기 데이터베이스 모두에서 데이터 가드 브로커를 시작합니다.

    alter system set dg_broker_start=true scope=both;
  2. 기본 데이터베이스에서 Data Guard Borker에 SYSDBA로 연결합니다.

    [oracle@orap ~]$ dgmgrl sys@NTAP_NY
    DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Dec 11 20:53:20 2024
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
    
    Welcome to DGMGRL, type "help" for information.
    Password:
    Connected to "NTAP_NY"
    Connected as SYSDBA.
    DGMGRL>
  3. Data Guard Broker 구성을 만들고 활성화합니다.

    DGMGRL> create configuration dg_config as primary database is NTAP_NY connect identifier is NTAP_NY;
    Configuration "dg_config" created with primary database "ntap_ny"
    DGMGRL> add database NTAP_LA as connect identifier is NTAP_LA;
    Database "ntap_la" added
    DGMGRL> enable configuration;
    Enabled.
    DGMGRL> show configuration;
    
    Configuration - dg_config
    
      Protection Mode: MaxPerformance
      Members:
      ntap_ny - Primary database
        ntap_la - Physical standby database
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 3 seconds ago)
  4. Data Guard Broker 관리 프레임워크 내에서 데이터베이스 상태를 확인합니다.

    DGMGRL> show database db1_ny;
    
    Database - db1_ny
    
      Role:               PRIMARY
      Intended State:     TRANSPORT-ON
      Instance(s):
        db1
    
    Database Status:
    SUCCESS
    
    DGMGRL> show database db1_la;
    
    Database - db1_la
    
      Role:               PHYSICAL STANDBY
      Intended State:     APPLY-ON
      Transport Lag:      0 seconds (computed 1 second ago)
      Apply Lag:          0 seconds (computed 1 second ago)
      Average Apply Rate: 2.00 KByte/s
      Real Time Query:    OFF
      Instance(s):
        db1
    
    Database Status:
    SUCCESS
    
    DGMGRL>

오류가 발생할 경우 Data Guard Broker를 사용하여 기본 데이터베이스를 standby instantaniouly로 페일오버할 수 있습니다. 이 설정된 경우 Fast-Start Failover 사용자 개입 없이 오류가 감지되면 Data Guard Broker가 기본 데이터베이스를 대기 데이터베이스로 페일오버할 수 있습니다.

다른 활용 사례에 대한 복제 스탠바이 데이터베이스

Details

Oracle Data Guard 설정에서 ANF에서 Oracle 대기 데이터베이스를 호스팅할 때의 주요 이점은 씬 클론이 설정된 경우 최소한의 추가 스토리지 투자로 다른 많은 사용 사례를 지원하도록 빠르게 복제할 수 있다는 것입니다. NetApp는 SnapCenter UI 도구를 사용하여 Oracle DataGuard 데이터베이스를 관리할 것을 권장합니다. 다음 섹션에서는 NetApp SnapCenter 툴을 사용하여 ANF에서 마운트된 복구 대기 데이터베이스 볼륨과 복구 중인 데이터베이스 볼륨을 개발, 테스트, 보고서 등의 다른 목적으로 스냅샷 생성 및 복제하는 방법을 보여 줍니다.

다음은 SnapCenter를 사용하여 Oracle Data Guard의 관리되는 물리적 대기 데이터베이스에서 읽기/쓰기 데이터베이스를 복제하는 고급 절차입니다. ANF에서 SnapCenter for Oracle을 설정 및 구성하는 방법에 대한 자세한 지침은 TR-4988을 참조하십시오"SnapCenter를 사용하여 ANF에서 Oracle 데이터베이스 백업, 복구 및 클론 생성".

  1. 테스트 테이블을 만들고 기본 데이터베이스의 테스트 테이블에 행을 삽입하여 UseCase 유효성 검사를 시작합니다. 그런 다음 트랜잭션이 대기 상태로 이동하는지 확인하고 마지막으로 클론을 생성합니다.

    [oracle@orap ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 11 16:33:17 2024
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2022, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.18.0.0.0
    
    SQL> alter session set container=ntap_pdb1;
    
    Session altered.
    
    SQL> create table test(id integer, dt timestamp, event varchar(100));
    
    Table created.
    
    SQL> insert into test values(1, sysdate, 'a test transaction at primary database NTAP on DB server orap.internal.cloudapp.net');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select * from test;
    
            ID
    ----------
    DT
    ---------------------------------------------------------------------------
    EVENT
    --------------------------------------------------------------------------------
             1
    11-DEC-24 04.38.44.000000 PM
    a test transaction at primary database NTAP on DB server orap.internal.cloudapp.
    net
    
    
    SQL> select instance_name, host_name from v$instance;
    
    INSTANCE_NAME
    ----------------
    HOST_NAME
    ----------------------------------------------------------------
    NTAP
    orap
    
    
    SQL>
  2. SnapCenter 구성에서 UNIX 사용자(데모용 azureuser) 및 Azure 자격 증명(데모용 Azure_anf)이 에 추가되었습니다 Credential Settings.

    GUI에서 이 단계를 보여 주는 스크린샷

  3. Azure_anf 자격 증명을 사용하여 ANF 스토리지를 에 `Storage Systems`추가합니다. Azure 하위 항목에 ANF 저장소 계정이 여러 개 있는 경우 드롭다운 목록을 클릭하여 올바른 저장소 계정을 선택해야 합니다. 이 데모에서는 두 개의 전용 Oracle 스토리지 계정을 만들었습니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  4. 모든 Oracle DB 서버가 SnapCenter에 `Hosts`추가되었습니다.

    GUI에서 이 단계를 보여 주는 스크린샷

    참고 클론 DB 서버에는 identtical Oracle 소프트웨어 스택이 설치 및 구성되어 있어야 합니다. 이 테스트 사례에서 Oracle 19C 소프트웨어는 설치 및 구성되지만 데이터베이스는 생성되지 않습니다.
  5. 오프라인/전체 데이터베이스 백업에 맞게 조정된 백업 정책을 생성합니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  6. 탭에서 백업 정책을 적용하여 대기 데이터베이스를 Resources 보호합니다. 처음 검색된 데이터베이스 상태는 로 `Not protected`표시됩니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  7. 백업을 수동으로 트리거하거나 백업 정책이 적용된 후 설정된 시간에 백업을 스케줄에 배치할 수 있습니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  8. 백업 후 데이터베이스 이름을 클릭하여 데이터베이스 백업 페이지를 엽니다. 데이터베이스 복제에 사용할 백업을 선택하고 Clone 버튼을 클릭하여 클론 워크플로우를 시작합니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  9. Complete Database Clone 선택하고 클론 인스턴스 SID의 이름을 지정합니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  10. 스탠바이 DB에서 복제된 데이터베이스를 호스팅하는 클론 DB 서버를 선택합니다. 데이터 파일의 기본값인 redo 로그를 그대로 사용합니다. /u03 마운트 지점에 제어 파일을 놓습니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  11. OS 기반 인증에 데이터베이스 자격 증명이 필요하지 않습니다. Oracle 홈 설정과 클론 DB 서버에 구성된 설정을 일치시킵니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  12. 필요한 경우 클론 DB의 PGA 또는 SGA 크기를 줄이는 등 클론 데이터베이스 매개 변수를 변경합니다. 클론 이전에 실행할 스크립트를 지정합니다(있는 경우).

    GUI에서 이 단계를 보여 주는 스크린샷

  13. 클론 후에 실행할 SQL을 입력합니다. 데모에서는 개발/테스트/보고서 데이터베이스에 대한 데이터베이스 아카이브 모드를 해제하는 명령을 실행했습니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  14. 원하는 경우 이메일 알림을 구성합니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  15. 요약을 검토하고 을 클릭합니다 Finish 를 눌러 클론을 시작합니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  16. 탭에서 클론 작업을 Monitor 모니터링합니다. 데이터베이스 볼륨 크기로 약 950GB의 데이터베이스를 복제하는 데 14분 정도 걸렸습니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  17. 에 즉시 등록되는 SnapCenter에서 클론 데이터베이스를 검증합니다 Resources 탭을 클릭합니다.

    GUI에서 이 단계를 보여 주는 스크린샷

  18. 클론 DB 서버에서 클론 데이터베이스를 쿼리합니다. 운영 데이터베이스에서 발생한 테스트 트랜잭션이 클론 데이터베이스까지 이동하는 것을 확인했습니다.

    [oracle@orac ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 11 20:16:09 2024
    Version 19.18.0.0.0
    
    Copyright (c) 1982, 2022, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.18.0.0.0
    
    SQL> select name, open_mode, log_mode from v$database;
    
    NAME      OPEN_MODE            LOG_MODE
    --------- -------------------- ------------
    NTAPDEV   READ WRITE           NOARCHIVELOG
    
    SQL> select instance_name, host_name from v$instance;
    
    INSTANCE_NAME
    ----------------
    HOST_NAME
    ----------------------------------------------------------------
    NTAPDEV
    orac
    
    
    SQL> alter pluggable database all open;
    
    Pluggable database altered.
    
    SQL> alter pluggable database all save state;
    
    Pluggable database altered.
    
    
    SQL> alter session set container=ntap_pdb1;
    
    Session altered.
    
    SQL> select * from test;
    
            ID
    ----------
    DT
    ---------------------------------------------------------------------------
    EVENT
    --------------------------------------------------------------------------------
             1
    11-DEC-24 04.38.44.000000 PM
    a test transaction at primary database NTAP on DB server orap.internal.cloudapp.
    net

이것으로 개발, 테스트, 보고서 또는 기타 사용 사례를 위해 Azure ANF 스토리지의 Oracle Data Guard에 있는 Oracle 대기 데이터베이스 클론 데모가 완료되었습니다. ANF의 Oracle Data Guard에서 여러 Oracle 데이터베이스를 동일한 대기 데이터베이스에서 복제할 수 있습니다.

추가 정보를 찾을 수 있는 위치

이 문서에 설명된 정보에 대한 자세한 내용은 다음 문서 및/또는 웹 사이트를 참조하십시오.