Skip to main content
NetApp database solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

TR-5003:ANF 上的高吞吐量 Oracle VLDB 實現

貢獻者 netapp-revathid kevin-hoke

Allen Cao、Niyaz Mohamed, NetApp

此解決方案提供了在 Azure 雲端中使用 Oracle Data Guard 在 Microsoft Azure NetApp Files (ANF) 上配置高吞吐量 Oracle 超大型資料庫 (VLDB) 的概述和詳細資訊。

目的

高吞吐量和任務關鍵型 Oracle VLDB 對後端資料庫儲存提出了很高的要求。為了滿足服務等級協定 (SLA),資料庫儲存必須提供所需的容量和每秒高輸入/輸出作業數 (IOPS),同時保持亞毫秒延遲效能。在具有共享儲存資源環境的公有雲中部署此類資料庫工作負載時,這一點尤其具有挑戰性。並非所有儲存平台都是平等的。進階Azure NetApp Files儲存與 Azure 基礎架構結合,可滿足如此高要求的 Oracle 工作負載的需求。在經過驗證的性能基準測試中("Azure NetApp Files多個磁碟區上的 Oracle 資料庫效能" ),ANF 透過 SLOB 工具在合成的 100% 隨機選擇工作負載中提供了 250 萬次讀取 IOPS,延遲為 700 微秒。對於標準 8k 區塊大小,這相當於大約 20 GiB/s 的吞吐量。

在本文檔中,我們示範如何在具有多個 NFS 捲和 Oracle ASM 的 ANF 儲存體上設定具有 Data Guard 配置的 Oracle VLDB 以實現儲存負載平衡。備用資料庫可以透過快照快速(幾分鐘)備份,並根據需要複製以供用例進行讀取/寫入存取。 NetApp解決方案工程團隊提供了自動化工具包,可按照使用者定義的計畫輕鬆建立和刷新克隆。

此解決方案適用於以下用例:

  • 在跨 Azure 區域的 Microsoft Azure NetApp Files儲存空間上的 Data Guard 設定中實作 Oracle VLDB。

  • 快照備份並複製實體備用資料庫,以透過自動化服務於報告、開發、測試等用例。

對象

此解決方案適用於以下人群:

  • 在 Azure 雲端中使用 Data Guard 設定 Oracle VLDB 以實現高可用性、資料保護和災難復原的 DBA。

  • 對 Azure 雲端中具有 Data Guard 配置的 Oracle VLDB 感興趣的資料庫解決方案架構師。

  • 管理支援 Oracle 資料庫的Azure NetApp Files儲存的儲存管理員。

  • 喜歡在 Azure 雲端環境中使用 Data Guard 建立 Oracle VLDB 的應用程式擁有者。

解決方案測試和驗證環境

此解決方案的測試和驗證是在 Azure 雲端實驗室設定中進行的,該設定可能與實際使用者部署環境不符。有關更多信息,請參閱部署考慮的關鍵因素

架構

此圖提供了 ANF 上的 Azure 雲端中 Oracle Data Guard 實作的詳細圖片。

硬體和軟體組件

硬體

Azure NetApp Files

Microsoft 提供的目前版本

兩個 4 TiB 容量池、進階服務等級、自動 QoS

用於資料庫伺服器的 Azure VM

標準 B4ms(4 個 vcpus,16 GiB 記憶體)

三個資料庫虛擬機,一個作為主資料庫伺服器,一個作為備用資料庫伺服器,第三個作為克隆資料庫伺服器

軟體

紅帽Linux

Red Hat Enterprise Linux 8.6(LVM)-x64 Gen2

部署 RedHat 訂閱進行測試

Oracle 網格基礎架構

版本 19.18

已套用RU補丁p34762026_190000_Linux-x86-64.zip

Oracle 資料庫

版本 19.18

已套用RU補丁p34765931_190000_Linux-x86-64.zip

dNFS一次性補丁

p32931941_190000_Linux-x86-64.zip

適用於網格和資料庫

Oracle OPatch

版本 12.2.0.1.36

最新補丁 p6880880_190000_Linux-x86-64.zip

Ansible

版本核心 2.16.2

python版本-3.10.13

NFS

版本 3.0

為 Oracle 啟用 dNFS

Oracle VLDB Data Guard 配置,模擬紐約到洛杉磯的災難復原設置

資料庫

資料庫唯一名稱

Oracle 網路服務名稱

基本的

NTAP_NY

NTAP_NY.internal.cloudapp.net

支援

NTAP_LA

NTAP_LA.internal.cloudapp.net

部署考慮的關鍵因素

  • Azure NetApp Files配置。 Azure NetApp Files在 Azure NetApp儲存帳戶中指派為 Capacity Pools。在這些測試和驗證中,我們部署了一個 2 TiB 容量池來託管東部區域的 Oracle 主資料庫,並部署了一個 4 TiB 容量池來託管西部 2 區域的備用資料庫和資料庫克隆。 ANF 容量池有三種服務等級:Standard、Premium 和 Ultra。 ANF容量池的IO容量取決於容量池的大小及其服務等級。在建立容量池時,可以將 QoS 設定為“自動”或“手動”,並將靜態資料加密設為“單次”或“兩次”。

  • *調整資料庫磁碟區的大小。 *對於生產部署, NetApp建議根據 Oracle AWR 報告對 Oracle 資料庫吞吐量需求進行全面評估。在決定資料庫的 ANF 磁碟區大小時,要同時考慮資料庫大小以及吞吐量需求。透過為 ANF 自動配置 QoS,可確保在超級服務等級分配的每 TiB 磁碟區容量下頻寬為 128 MiB/s。更高的吞吐量可能需要更大的容量才能滿足要求。

  • *單卷或多卷。 *由於 QoS 是根據磁碟區大小和容量池服務等級嚴格執行的,因此單一大磁碟區可以提供與具有相同聚合大小的多個磁碟區類似的效能等級。建議為 Oracle VLDB 實作多個磁碟區(多個 NFS 掛載點),以便更好地利用共用後端 ANF 儲存資源池。實作 Oracle ASM 以實現多個 NFS 磁碟區上的 IO 負載平衡。

  • 應用程式捲組。為 Oracle 部署應用程式磁碟區組 (AVG) 以最佳化效能。依應用程式磁碟區組部署的磁碟區會放置在區域或區域基礎架構中,以實現應用程式虛擬機器的最佳化延遲和吞吐量。

  • Azure VM 考慮事項。在這些測試和驗證中,我們使用了具有 4 個 vCPU 和 16 GiB 記憶體的 Azure VM - Standard_B4ms。您需要為具有高吞吐量需求的 Oracle VLDB 選擇適當的 Azure DB VM。除了 vCPU 數量和 RAM 數量之外,在達到資料庫儲存容量之前,VM 網路頻寬(入口和出口或 NIC 吞吐量限制)也可能成為瓶頸。

  • dNFS 配置。透過使用 dNFS,在具有 ANF 儲存的 Azure 虛擬機器上執行的 Oracle 資料庫可以比本機 NFS 用戶端驅動更多的 I/O。確保應用 Oracle dNFS 補丁 p32931941 來解決潛在的錯誤。

解決方案部署

假設您已將主 Oracle 資料庫部署在 VNet 內的 Azure 雲端環境中,作為設定 Oracle Data Guard 的起點。理想情況下,主資料庫部署在具有 NFS 掛載的 ANF 儲存體上。您的主要 Oracle 資料庫也可以在NetApp ONTAP儲存或 Azure 生態系統或私有資料中心內的任何其他儲存體上執行。以下部分示範了在 Azure 中具有 ANF 儲存體的主 Oracle DB 與 Azure 中具有 ANF 儲存體的實體備用 Oracle DB 之間的 Oracle Data Guard 設定中 ANF 上的 Oracle VLDB 的配置。

部署先決條件

Details

部署需要以下先決條件。

  1. 已設定 Azure 雲端帳戶,並在您的 Azure 帳戶內建立了必要的 VNet 和網路子網路。

  2. 從 Azure 雲端入口網站控制台,您需要部署至少三個 Azure Linux VM,一個作為主 Oracle DB 伺服器,一個作為備用 Oracle DB 伺服器,以及一個用於報表、開發和測試等的複製目標 DB 伺服器。有關環境設定的更多詳細信息,請參閱上一節中的體系結構圖。也審查了微軟"Azure 虛擬機"了解更多。

  3. 主 Oracle 資料庫應該已經在主 Oracle DB 伺服器中安裝並配置。另一方面,在備用 Oracle DB 伺服器或複製 Oracle DB 伺服器中,僅安裝了 Oracle 軟體,而沒有建立 Oracle 資料庫。理想情況下,Oracle 檔案目錄佈局應該與所有 Oracle DB 伺服器完全相符。有關NetApp對 Azure 雲端和 ANF 中自動化 Oracle 部署的建議的詳細信息,請參閱以下技術報告以取得協助。

  4. 從 Azure 雲端入口網站控制台部署兩個 ANF 儲存容量池來託管 Oracle 資料庫磁碟區。 ANF 儲存容量池應位於不同的區域,以模擬真正的 DataGuard 配置。如果您不熟悉 ANF 儲存的部署,請參閱文檔"快速入門:設定Azure NetApp Files並建立 NFS 卷"以獲得逐步說明。

    顯示 Azure 環境配置的螢幕截圖。

  5. 當主 Oracle 資料庫和備用 Oracle 資料庫位於兩個不同的區域時,應配置 VPN 閘道以允許兩個單獨的 VNet 之間的資料流量流動。 Azure 中的詳細網路配置超出了本文檔的範圍。以下螢幕截圖提供了有關如何在實驗室中設定、連接 VPN 閘道以及如何確認資料流量流動的一些參考。

    實驗室 VPN 閘道:顯示 Azure 環境配置的螢幕截圖。

    主 VNet 閘道:顯示 Azure 環境配置的螢幕截圖。

    Vnet網關連線狀態:顯示 Azure 環境配置的螢幕截圖。

    驗證流量是否已建立(點擊三個點開啟頁面):顯示 Azure 環境配置的螢幕截圖。

  6. 參考此文檔"為 Oracle 部署應用程式磁碟區群組"為 Oracle 部署應用程式磁碟區群組。

Data Guard 的主要 Oracle VLDB 配置

Details

在此示範中,我們在主 Azure DB 伺服器上設定了一個名為 NTAP 的主 Oracle 資料庫,該資料庫有六個 NFS 掛載點:/u01 用於 Oracle 二進位文件,/u02、/u04、/u05、/u06 用於 Oracle 資料日誌檔案和 Oracle 控製文件,/u03 用於 Oracle 活動和 Oracle 檔案。此設定可作為參考配置。您的實際部署應該考慮到容量池大小、服務等級、資料庫磁碟區數量和每個磁碟區的大小的特定需求和要求。

有關使用 ASM 在 NFS 上設定 Oracle Data Guard 的詳細逐步流程,請參閱"TR-5002- 使用Azure NetApp Files降低 Oracle Active Data Guard 成本""TR-4974- 使用 NFS/ASM 在 AWS FSx/EC2 上獨立重新啟動 Oracle 19c"相關章節。儘管 TR-4974 中的程式已在Amazon FSx ONTAP上得到驗證,但它們同樣適用於 ANF。以下說明了 Data Guard 配置中主 Oracle VLDB 的詳細資訊。

  1. 主 Azure DB 伺服器 orap.internal.cloudapp.net 上的主資料庫 NTAP 最初部署為獨立資料庫,其中 NFS 上的 ANF 和 ASM 作為資料庫儲存。

    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     0  7.7G   0% /dev
    tmpfs                      7.8G  1.1G  6.7G  15% /dev/shm
    tmpfs                      7.8G   17M  7.7G   1% /run
    tmpfs                      7.8G     0  7.8G   0% /sys/fs/cgroup
    /dev/mapper/rootvg-rootlv   22G   20G  2.1G  91% /
    /dev/mapper/rootvg-usrlv    10G  2.3G  7.8G  23% /usr
    /dev/sda1                  496M  181M  315M  37% /boot
    /dev/mapper/rootvg-varlv   8.0G  1.1G  7.0G  13% /var
    /dev/sda15                 495M  5.8M  489M   2% /boot/efi
    /dev/mapper/rootvg-homelv  2.0G   47M  2.0G   3% /home
    /dev/mapper/rootvg-tmplv    12G   11G  1.9G  85% /tmp
    /dev/sdb1                   32G   49M   30G   1% /mnt
    10.0.2.38:/orap-u06        300G  282G   19G  94% /u06
    10.0.2.38:/orap-u04        300G  282G   19G  94% /u04
    10.0.2.36:/orap-u01        400G   21G  380G   6% /u01
    10.0.2.37:/orap-u02        300G  282G   19G  94% /u02
    10.0.2.36:/orap-u03        400G  282G  119G  71% /u03
    10.0.2.39:/orap-u05        300G  282G   19G  94% /u05
    
    
    [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.
    #
    #
    +ASM:/u01/app/oracle/product/19.0.0/grid:N
    NTAP:/u01/app/oracle/product/19.0.0/NTAP:N
  2. 以 oracle 使用者登入主資料庫伺服器。驗證電網配置。

    $GRID_HOME/bin/crsctl stat res -t
    [oracle@orap ~]$ $GRID_HOME/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       orap                     STABLE
    ora.LISTENER.lsnr
                   ONLINE  ONLINE       orap                     STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       orap                     STABLE
    ora.asm
                   ONLINE  ONLINE       orap                     Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      orap                     STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       orap                     STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.evmd
          1        ONLINE  ONLINE       orap                     STABLE
    ora.ntap.db
          1        OFFLINE OFFLINE                               Instance Shutdown,ST
                                                                 ABLE
    --------------------------------------------------------------------------------
    [oracle@orap ~]$
  3. ASM 磁碟組配置。

    asmcmd
    [oracle@orap ~]$ asmcmd
    ASMCMD> lsdg
    State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
    MOUNTED  EXTERN  N         512             512   4096  4194304   1146880  1136944                0         1136944              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304    286720   283312                0          283312              0             N  LOGS/
    ASMCMD> lsdsk
    Path
    /u02/oradata/asm/orap_data_disk_01
    /u02/oradata/asm/orap_data_disk_02
    /u02/oradata/asm/orap_data_disk_03
    /u02/oradata/asm/orap_data_disk_04
    /u03/oralogs/asm/orap_logs_disk_01
    /u03/oralogs/asm/orap_logs_disk_02
    /u03/oralogs/asm/orap_logs_disk_03
    /u03/oralogs/asm/orap_logs_disk_04
    /u04/oradata/asm/orap_data_disk_05
    /u04/oradata/asm/orap_data_disk_06
    /u04/oradata/asm/orap_data_disk_07
    /u04/oradata/asm/orap_data_disk_08
    /u05/oradata/asm/orap_data_disk_09
    /u05/oradata/asm/orap_data_disk_10
    /u05/oradata/asm/orap_data_disk_11
    /u05/oradata/asm/orap_data_disk_12
    /u06/oradata/asm/orap_data_disk_13
    /u06/oradata/asm/orap_data_disk_14
    /u06/oradata/asm/orap_data_disk_15
    /u06/oradata/asm/orap_data_disk_16
    ASMCMD>
  4. 主資料庫上 Data Guard 的參數設定。

    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
    log_archive_dest_22                  string
  5. 主資料庫配置。

    SQL> select name, open_mode, log_mode from v$database;
    
    NAME      OPEN_MODE            LOG_MODE
    --------- -------------------- ------------
    NTAP      READ WRITE           ARCHIVELOG
    
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 NTAP_PDB1                      READ WRITE NO
             4 NTAP_PDB2                      READ WRITE NO
             5 NTAP_PDB3                      READ WRITE NO
    
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/DATAFILE/system.257.1189724205
    +DATA/NTAP/DATAFILE/sysaux.258.1189724249
    +DATA/NTAP/DATAFILE/undotbs1.259.1189724275
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.266.1189725235
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.267.1189725235
    +DATA/NTAP/DATAFILE/users.260.1189724275
    +DATA/NTAP/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.268.1189725235
    +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/system.272.1189726217
    +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/sysaux.273.1189726217
    +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/undotbs1.271.1189726217
    +DATA/NTAP/2B1302C26E089A59E0630400000A4D5C/DATAFILE/users.275.1189726243
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/system.277.1189726245
    +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/sysaux.278.1189726245
    +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/undotbs1.276.1189726245
    +DATA/NTAP/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/users.280.1189726269
    +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/system.282.1189726271
    +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/sysaux.283.1189726271
    +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/undotbs1.281.1189726271
    +DATA/NTAP/2B13061057039B10E0630400000AA001/DATAFILE/users.285.1189726293
    
    19 rows selected.
    
    SQL> select member from v$logfile;
    
    MEMBER
    --------------------------------------------------------------------------------
    +DATA/NTAP/ONLINELOG/group_3.264.1189724351
    +LOGS/NTAP/ONLINELOG/group_3.259.1189724361
    +DATA/NTAP/ONLINELOG/group_2.263.1189724351
    +LOGS/NTAP/ONLINELOG/group_2.257.1189724359
    +DATA/NTAP/ONLINELOG/group_1.262.1189724351
    +LOGS/NTAP/ONLINELOG/group_1.258.1189724359
    +DATA/NTAP/ONLINELOG/group_4.286.1190297279
    +LOGS/NTAP/ONLINELOG/group_4.262.1190297283
    +DATA/NTAP/ONLINELOG/group_5.287.1190297293
    +LOGS/NTAP/ONLINELOG/group_5.263.1190297295
    +DATA/NTAP/ONLINELOG/group_6.288.1190297307
    
    MEMBER
    --------------------------------------------------------------------------------
    +LOGS/NTAP/ONLINELOG/group_6.264.1190297309
    +DATA/NTAP/ONLINELOG/group_7.289.1190297325
    +LOGS/NTAP/ONLINELOG/group_7.265.1190297327
    
    14 rows selected.
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP/CONTROLFILE/current.261.1189724347
    +LOGS/NTAP/CONTROLFILE/current.256.1189724347
  6. 主資料庫上的 dNFS 配置。

    SQL> select svrname, dirname from v$dnfs_servers;
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.0.2.39
    /orap-u05
    
    10.0.2.38
    /orap-u04
    
    10.0.2.38
    /orap-u06
    
    
    SVRNAME
    --------------------------------------------------------------------------------
    DIRNAME
    --------------------------------------------------------------------------------
    10.0.2.37
    /orap-u02
    
    10.0.2.36
    /orap-u03
    
    10.0.2.36
    /orap-u01
    
    
    6 rows selected.

這完成了在具有 NFS/ASM 的 ANF 主站點上為 VLDB NTAP 設定 Data Guard 的示範。

針對 Data Guard 的備用 Oracle VLDB 配置

Details

Oracle Data Guard 需要 OS 核心配置和 Oracle 軟體堆疊(包括備用 DB 伺服器上的修補程式集)以與主 DB 伺服器相符。為了便於管理和簡單起見,備用資料庫伺服器的資料庫儲存配置理想情況下也應該與主資料庫伺服器匹配,例如資料庫目錄佈局和 NFS 掛載點的大小。

再次強調,有關使用 ASM 在 NFS 上設定 Oracle Data Guard 備用伺服器的詳細逐步流程,請參閱"TR-5002 - 使用Azure NetApp Files降低 Oracle Active Data Guard 成本""TR-4974 - 使用 NFS/ASM 在 AWS FSx/EC2 上獨立重新啟動 Oracle 19c"相關章節。以下說明了 Data Guard 設定中備用資料庫伺服器上備用 Oracle VLDB 配置的詳細資訊。

  1. 演示實驗室中備用站點的備用 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  1.1G  6.7G  15% /dev/shm
    tmpfs                      7.8G   25M  7.7G   1% /run
    tmpfs                      7.8G     0  7.8G   0% /sys/fs/cgroup
    /dev/mapper/rootvg-rootlv   22G   17G  5.6G  75% /
    /dev/mapper/rootvg-usrlv    10G  2.3G  7.8G  23% /usr
    /dev/mapper/rootvg-varlv   8.0G  1.1G  7.0G  13% /var
    /dev/mapper/rootvg-homelv  2.0G   52M  2.0G   3% /home
    /dev/sda1                  496M  181M  315M  37% /boot
    /dev/sda15                 495M  5.8M  489M   2% /boot/efi
    /dev/mapper/rootvg-tmplv    12G   11G  1.8G  86% /tmp
    /dev/sdb1                   32G   49M   30G   1% /mnt
    10.0.3.36:/oras-u03        400G  282G  119G  71% /u03
    10.0.3.36:/oras-u04        300G  282G   19G  94% /u04
    10.0.3.36:/oras-u05        300G  282G   19G  94% /u05
    10.0.3.36:/oras-u02        300G  282G   19G  94% /u02
    10.0.3.36:/oras-u01        100G   21G   80G  21% /u01
    10.0.3.36:/oras-u06        300G  282G   19G  94% /u06
    
    [oracle@oras ~]$ cat /etc/oratab
    #Backup file is  /u01/app/oracle/crsdata/oras/output/oratab.bak.oras.oracle line added by Agent
    #
    
    
    
    # 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.
    #
    #
    +ASM:/u01/app/oracle/product/19.0.0/grid:N
    NTAP:/u01/app/oracle/product/19.0.0/NTAP:N              # line added by Agent
  2. 備用資料庫伺服器上的網格基礎架構配置。

    [oracle@oras ~]$ $GRID_HOME/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       oras                     STABLE
    ora.LISTENER.lsnr
                   ONLINE  ONLINE       oras                     STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       oras                     STABLE
    ora.asm
                   ONLINE  ONLINE       oras                     Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      oras                     STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       oras                     STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.evmd
          1        ONLINE  ONLINE       oras                     STABLE
    ora.ntap_la.db
          1        ONLINE  INTERMEDIATE oras                     Dismounted,Mount Ini
                                                                 tiated,HOME=/u01/app
                                                                 /oracle/product/19.0
                                                                 .0/NTAP,STABLE
    --------------------------------------------------------------------------------
  3. 備用資料庫伺服器上的 ASM 磁碟組配置。

    [oracle@oras ~]$ asmcmd
    ASMCMD> lsdg
    State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
    MOUNTED  EXTERN  N         512             512   4096  4194304   1146880  1136912                0         1136912              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304    286720   284228                0          284228              0             N  LOGS/
    ASMCMD> lsdsk
    Path
    /u02/oradata/asm/oras_data_disk_01
    /u02/oradata/asm/oras_data_disk_02
    /u02/oradata/asm/oras_data_disk_03
    /u02/oradata/asm/oras_data_disk_04
    /u03/oralogs/asm/oras_logs_disk_01
    /u03/oralogs/asm/oras_logs_disk_02
    /u03/oralogs/asm/oras_logs_disk_03
    /u03/oralogs/asm/oras_logs_disk_04
    /u04/oradata/asm/oras_data_disk_05
    /u04/oradata/asm/oras_data_disk_06
    /u04/oradata/asm/oras_data_disk_07
    /u04/oradata/asm/oras_data_disk_08
    /u05/oradata/asm/oras_data_disk_09
    /u05/oradata/asm/oras_data_disk_10
    /u05/oradata/asm/oras_data_disk_11
    /u05/oradata/asm/oras_data_disk_12
    /u06/oradata/asm/oras_data_disk_13
    /u06/oradata/asm/oras_data_disk_14
    /u06/oradata/asm/oras_data_disk_15
    /u06/oradata/asm/oras_data_disk_16
  4. 備用資料庫上的 Data Guard 參數設定。

    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
  5. 備用資料庫配置。

    SQL> select name, open_mode, log_mode from v$database;
    
    NAME      OPEN_MODE            LOG_MODE
    --------- -------------------- ------------
    NTAP      MOUNTED              ARCHIVELOG
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       MOUNTED
             3 NTAP_PDB1                      MOUNTED
             4 NTAP_PDB2                      MOUNTED
             5 NTAP_PDB3                      MOUNTED
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/DATAFILE/system.261.1190301867
    +DATA/NTAP_LA/DATAFILE/sysaux.262.1190301923
    +DATA/NTAP_LA/DATAFILE/undotbs1.263.1190301969
    +DATA/NTAP_LA/2B12C97618069248E0630400000AC50B/DATAFILE/system.264.1190301987
    +DATA/NTAP_LA/2B12C97618069248E0630400000AC50B/DATAFILE/sysaux.265.1190302013
    +DATA/NTAP_LA/DATAFILE/users.266.1190302039
    +DATA/NTAP_LA/2B12C97618069248E0630400000AC50B/DATAFILE/undotbs1.267.1190302045
    +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/system.268.1190302071
    +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/sysaux.269.1190302099
    +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/undotbs1.270.1190302125
    +DATA/NTAP_LA/2B1302C26E089A59E0630400000A4D5C/DATAFILE/users.271.1190302133
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/system.272.1190302137
    +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/sysaux.273.1190302163
    +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/undotbs1.274.1190302189
    +DATA/NTAP_LA/2B13047FB98B9AAFE0630400000AFA5F/DATAFILE/users.275.1190302197
    +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/system.276.1190302201
    +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/sysaux.277.1190302229
    +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/undotbs1.278.1190302255
    +DATA/NTAP_LA/2B13061057039B10E0630400000AA001/DATAFILE/users.279.1190302263
    
    19 rows selected.
    
    SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/NTAP_LA/CONTROLFILE/current.260.1190301831
    +LOGS/NTAP_LA/CONTROLFILE/current.257.1190301833
    
    SQL> select group#, type, member from v$logfile order by 2, 1;
        GROUP# TYPE    MEMBER
    ---------- ------- --------------------------------------------------------------------------------
             1 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_1.280.1190302305
             1 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_1.259.1190302309
             2 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_2.281.1190302315
             2 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_2.258.1190302319
             3 ONLINE  +DATA/NTAP_LA/ONLINELOG/group_3.282.1190302325
             3 ONLINE  +LOGS/NTAP_LA/ONLINELOG/group_3.260.1190302329
             4 STANDBY +DATA/NTAP_LA/ONLINELOG/group_4.283.1190302337
             4 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_4.261.1190302339
             5 STANDBY +DATA/NTAP_LA/ONLINELOG/group_5.284.1190302347
             5 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_5.262.1190302349
             6 STANDBY +DATA/NTAP_LA/ONLINELOG/group_6.285.1190302357
    
        GROUP# TYPE    MEMBER
    ---------- ------- --------------------------------------------------------------------------------
             6 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_6.263.1190302359
             7 STANDBY +DATA/NTAP_LA/ONLINELOG/group_7.286.1190302367
             7 STANDBY +LOGS/NTAP_LA/ONLINELOG/group_7.264.1190302369
    
    14 rows selected.
  6. 驗證備用資料庫復原狀態。注意 `recovery logmerger`在 `APPLYING_LOG`行動。

    SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
    
    ROLE                        THREAD#  SEQUENCE# ACTION
    ------------------------ ---------- ---------- ------------
    recovery logmerger                1         32 APPLYING_LOG
    recovery apply slave              0          0 IDLE
    RFS async                         1         32 IDLE
    recovery apply slave              0          0 IDLE
    recovery apply slave              0          0 IDLE
    RFS ping                          1         32 IDLE
    archive redo                      0          0 IDLE
    managed recovery                  0          0 IDLE
    archive redo                      0          0 IDLE
    archive redo                      0          0 IDLE
    recovery apply slave              0          0 IDLE
    
    ROLE                        THREAD#  SEQUENCE# ACTION
    ------------------------ ---------- ---------- ------------
    redo transport monitor            0          0 IDLE
    log writer                        0          0 IDLE
    archive local                     0          0 IDLE
    redo transport timer              0          0 IDLE
    gap manager                       0          0 IDLE
    RFS archive                       0          0 IDLE
    
    17 rows selected.
  7. 備用資料庫上的 dNFS 配置。

SQL> select svrname, dirname from v$dnfs_servers;

SVRNAME
--------------------------------------------------------------------------------
DIRNAME
--------------------------------------------------------------------------------
10.0.3.36
/oras-u05

10.0.3.36
/oras-u04

10.0.3.36
/oras-u02

10.0.3.36
/oras-u06

10.0.3.36
/oras-u03

這樣就完成了 VLDB NTAP 的 Data Guard 設定演示,並在備用網站啟用了託管備用復原。

設定 Data Guard Broker

Details

Oracle Data Guard 代理程式是一個分散式管理框架,可自動並集中執行 Oracle Data Guard 配置的建立、維護和監控。以下部分示範如何設定 Data Guard Broker 來管理 Data Guard 環境。

  1. 透過 sqlplus 使用以下命令在主資料庫和備用資料庫上啟動資料保護代理程式。

    alter system set dg_broker_start=true scope=both;
  2. 從主資料庫,以 SYSDBA 身分連接到 Data Guard Borker。

    [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 立即將主資料庫故障轉移到備用資料庫。如果 `Fast-Start Failover`啟用後,當偵測到故障時,Data Guard Broker 可以將主資料庫故障轉移到備用資料庫,而無需使用者乾預。

透過自動化克隆其他用例的備用資料庫

Details

以下自動化工具包專門用於建立或刷新部署到 ANF 的 Oracle Data Guard 備用資料庫的克隆,並使用 NFS/ASM 配置實現完整的克隆生命週期管理。

git clone https://bitbucket.ngage.netapp.com/scm/ns-bb/na_oracle_clone_anf.git
註 目前,只有具有 bitbucket 存取權限的NetApp內部使用者才能存取該工具包。對於有興趣的外部用戶,請向您的客戶團隊要求存取權限或聯絡NetApp解決方案工程團隊。

在哪裡可以找到更多信息

要了解有關本文檔中描述的信息的更多信息,請查看以下文檔和/或網站: