TR-5003:ANF 上的高吞吐量 Oracle VLDB 實現
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 雲端實驗室設定中進行的,該設定可能與實際使用者部署環境不符。有關更多信息,請參閱部署考慮的關鍵因素 。
架構
硬體和軟體組件
硬體 |
||
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
部署需要以下先決條件。
-
已設定 Azure 雲端帳戶,並在您的 Azure 帳戶內建立了必要的 VNet 和網路子網路。
-
從 Azure 雲端入口網站控制台,您需要部署至少三個 Azure Linux VM,一個作為主 Oracle DB 伺服器,一個作為備用 Oracle DB 伺服器,以及一個用於報表、開發和測試等的複製目標 DB 伺服器。有關環境設定的更多詳細信息,請參閱上一節中的體系結構圖。也審查了微軟"Azure 虛擬機"了解更多。
-
主 Oracle 資料庫應該已經在主 Oracle DB 伺服器中安裝並配置。另一方面,在備用 Oracle DB 伺服器或複製 Oracle DB 伺服器中,僅安裝了 Oracle 軟體,而沒有建立 Oracle 資料庫。理想情況下,Oracle 檔案目錄佈局應該與所有 Oracle DB 伺服器完全相符。有關NetApp對 Azure 雲端和 ANF 中自動化 Oracle 部署的建議的詳細信息,請參閱以下技術報告以取得協助。
-
"TR-4987:使用 NFS 在Azure NetApp Files上簡化、自動化 Oracle 部署"
確保在 Azure VM 根磁碟區中指派了至少 128G,以便有足夠的空間來暫存 Oracle 安裝檔案。
-
-
從 Azure 雲端入口網站控制台部署兩個 ANF 儲存容量池來託管 Oracle 資料庫磁碟區。 ANF 儲存容量池應位於不同的區域,以模擬真正的 DataGuard 配置。如果您不熟悉 ANF 儲存的部署,請參閱文檔"快速入門:設定Azure NetApp Files並建立 NFS 卷"以獲得逐步說明。
-
當主 Oracle 資料庫和備用 Oracle 資料庫位於兩個不同的區域時,應配置 VPN 閘道以允許兩個單獨的 VNet 之間的資料流量流動。 Azure 中的詳細網路配置超出了本文檔的範圍。以下螢幕截圖提供了有關如何在實驗室中設定、連接 VPN 閘道以及如何確認資料流量流動的一些參考。
實驗室 VPN 閘道:
主 VNet 閘道:
Vnet網關連線狀態:
驗證流量是否已建立(點擊三個點開啟頁面):
-
參考此文檔"為 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 的詳細資訊。
-
主 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
-
以 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 ~]$
-
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>
-
主資料庫上 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
-
主資料庫配置。
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
-
主資料庫上的 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 配置的詳細資訊。
-
演示實驗室中備用站點的備用 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
-
備用資料庫伺服器上的網格基礎架構配置。
[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 --------------------------------------------------------------------------------
-
備用資料庫伺服器上的 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
-
備用資料庫上的 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
-
備用資料庫配置。
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.
-
驗證備用資料庫復原狀態。注意 `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.
-
備用資料庫上的 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 環境。
-
透過 sqlplus 使用以下命令在主資料庫和備用資料庫上啟動資料保護代理程式。
alter system set dg_broker_start=true scope=both;
-
從主資料庫,以 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>
-
建立並啟用 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)
-
在 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解決方案工程團隊。 |
在哪裡可以找到更多信息
要了解有關本文檔中描述的信息的更多信息,請查看以下文檔和/或網站:
-
TR-5002:使用Azure NetApp Files降低 Oracle Active Data Guard 成本
-
TR-4974:在 AWS FSx/EC2 上使用 NFS/ASM 進行獨立重新啟動時 Oracle 19c
-
Azure NetApp Files
-
Oracle Data Guard 概念與管理