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

TR-4979 :在 VMware Cloud 上使用來賓安裝的 FSX ONTAP 、在 AWS 上簡化、自我管理的 Oracle

貢獻者

NetApp公司的Alleno Cao、Niyazz Mohamed

目的

數十年來、企業一直在私有資料中心執行 Oracle on VMware 。AWS 上的 VMware Cloud ( VMC )提供按鈕式解決方案、可將 VMware 的企業級軟體定義資料中心( SDDC )軟體帶入 AWS Cloud 專用、靈活、裸機的基礎架構。AWS FSX ONTAP 為 VMC SDDC 提供優質儲存設備、並提供資料架構、讓客戶能夠在 vSphere ® 型私有、公有和混合雲環境中執行 Oracle 等業務關鍵應用程式、並能最佳化存取 AWS 服務。無論是現有或新的 Oracle 工作負載、 AWS 上的 VMC 都能在 VMware 上提供熟悉、簡化且自我管理的 Oracle 環境、並享有 AWS 雲端的所有優點、同時將所有平台管理與最佳化作業延後至 VMware 。

本文件說明如何在 VMC 環境中部署及保護 Oracle 資料庫、並將 Amazon FSX ONTAP 作為主要資料庫儲存設備。Oracle 資料庫可部署至 FSX 儲存設備上的 VMC 、做為直接 VM 來賓安裝 LUN 或 NFS 安裝的 VMware VMDK 資料存放區磁碟。本技術報告著重於 Oracle 資料庫部署、將其作為直接安裝於來賓的 FSX 儲存設備、部署至使用 iSCSI 傳輸協定和 Oracle ASM 的 VMC 叢集中的 VM 。我們也示範如何使用 NetApp SnapCenter UI 工具來備份、還原及複製 Oracle 資料庫、以供開發 / 測試、或是在 AWS 上的 VMC 中執行儲存效率高的資料庫作業。

本解決方案可解決下列使用案例:

  • 在 AWS 上的 VMC 中部署 Oracle 資料庫、並將 Amazon FSX ONTAP 做為主要資料庫儲存設備

  • 使用 NetApp SnapCenter 工具在 AWS 上的 VMC 中備份和還原 Oracle 資料庫

  • 使用 NetApp SnapCenter 工具在 AWS 上的 VMC 中進行開發 / 測試用的 Oracle 資料庫複製、或其他使用案例

目標對象

本解決方案適用於下列人員:

  • DBA 希望在 AWS 上使用 Amazon FSX ONTAP 在 VMC 中部署 Oracle

  • 資料庫解決方案架構設計師、希望在 AWS 雲端上的 VMC 中測試 Oracle 工作負載

  • 想要部署及管理部署至 AWS 上 VMC 的 Oracle 資料庫、並搭配 Amazon FSX ONTAP 的儲存管理員

  • 想要在 AWS 雲端上的 VMC 中備份 Oracle 資料庫的應用程式擁有者

解決方案測試與驗證環境

此解決方案的測試與驗證是在實驗室環境中執行、而在 AWS 上執行的 VMC 可能與最終部署環境不符。如需詳細資訊、請參閱一節 [Key Factors for Deployment Consideration]

架構

此映像提供在 AWS 公有雲中使用 iSCSI 和 ASM 的 Oracle 部署組態的詳細圖片。

硬體與軟體元件

硬體

FSX ONTAP 支援儲存

AWS 提供的目前版本

一個 FSX ONTAP HA 叢集位於與 VMC 相同的 VPC 和可用性區域

VMC SDDC 叢集

Amazon EC2 i3. 金屬單節點 / Intel Xeon E5-2686 CPU 、 36 核心 /512G RAM

10.37 TB vSAN 儲存設備

軟體

RedHat Linux

RHEL-8.6 、 4.18.0-372.9.1.el8.x86_64 核心

已部署RedHat訂閱以進行測試

Windows伺服器

2022 Standard 、 10.0.20348 Build 20348

託管 SnapCenter 伺服器

Oracle Grid 基礎架構

版本 19.18

已套用 RU 修補程式 p34762026_190000_Linux-x86-64.zip

Oracle資料庫

版本 19.18

已套用 RU 修補程式 p34765931_190000_Linux-x86-64.zip

Oracle OPatch

12.2.0.1.36 版

最新修補程式 p6880880_190000_Linux-x86-64.zip

伺服器SnapCenter

版本 4.9P1

工作群組部署

適用於 VM 的 BlueXP 備份與還原

1.0 版

部署為 ova vSphere 外掛程式 VM

VMware vSphere

8.0.1.00300 版

VMware Tools 版本: 11365 - Linux 、 12352 - Windows

開啟 JDK

版本 Jave-1.8.0-OpenJDK.x86_64

DB VM 上的 SnapCenter 外掛程式需求

AWS 上 VMC 中的 Oracle 資料庫組態

伺服器

資料庫

* 資料庫儲存 *

ora_01

cdb1 ( cdb1_pdb1 、 cdb1_pdb2 、 cdb1_pdb3 )

FSX ONTAP 上的 VMDK 資料存放區

ora_01

cdb2 ( cdb2_pdb )

FSX ONTAP 上的 VMDK 資料存放區

ora_02

cdb3 ( cdb3_pdb1 、 cdb3_pdb2 、 cdb3_pdb3 )

直接安裝於來賓的 FSX ONTAP

ora_02

cdb4 ( cdb4_pdb )

直接安裝於來賓的 FSX ONTAP

部署考量的關鍵因素

  • * 從 FSX 到 VMC 連線能力。 * 在 AWS 上的 VMware Cloud 上部署 SDDC 時、會在 AWS 帳戶和 VPC 內建立、專供貴組織使用、並由 VMware 管理。您也必須將 SDDC 連線至屬於您的 AWS 帳戶、稱為客戶 AWS 帳戶。此連線可讓您的 SDDC 存取屬於您客戶帳戶的 AWS 服務。適用於 ONTAP 的 FSX 是部署在客戶帳戶中的 AWS 服務。一旦 VMC SDDC 連線至您的客戶帳戶、就能在 VMC SDDC 中為 VM 提供 FSX 儲存設備、以便直接裝載來賓。

  • * FSX儲存HA叢集單一或多區域部署。*在這些測試與驗證中、我們在單一AWS可用性區域中部署了FSXHA叢集。NetApp 也建議在同一個可用性區域的 AWS 上部署適用於 NetApp ONTAP 和 VMware Cloud 的 FSX 、以獲得更好的效能、並避免在可用性區域之間傳輸資料費用。

  • * FSX 儲存叢集規模。 * 適用於 ONTAP 儲存檔案系統的 Amazon FSX 可提供多達 160,000 個原始 SSD IOPS 、高達 4Gbps 的處理量、以及最高 192TiB 容量。不過、您可以根據部署時的實際需求、根據已配置的 IOPS 、處理量和儲存限制(最低 1,024 GiB )來調整叢集大小。容量可即時動態調整、而不會影響應用程式可用度。

  • * Oracle 資料和記錄配置。 * 在我們的測試和驗證中、我們分別部署了兩個 ASM 磁碟群組來處理資料和記錄。在 +data asm 磁碟群組中、我們在資料磁碟區中配置了四個 LUN 。在 +logs asm 磁碟群組中、我們在一個記錄磁碟區中配置了兩個 LUN 。一般而言、在 Amazon FSX for ONTAP Volume 中配置多個 LUN 可提供更好的效能。

  • * iSCSI 組態。 * VMC SDDC 中的資料庫 VM 會使用 iSCSI 傳輸協定連線至 FSX 儲存設備。請務必仔細分析 Oracle AWR 報告、以判斷應用程式和 iSCSI 流量處理需求、以評估 Oracle 資料庫的尖峰 I/O 處理量需求。NetApp 也建議將四個 iSCSI 連線分配給兩個 FSX iSCSI 端點、並正確設定多重路徑。

  • * 您所建立的每個 Oracle ASM 磁碟群組都要使用 Oracle ASM 備援層級。 * 因為 FSX ONTAP 已經鏡射 FSX 叢集層級上的儲存設備、所以您應該使用「外部備援」、這表示該選項不允許 Oracle ASM 鏡射磁碟群組的內容。

  • * 資料庫備份。 * NetApp 提供 SnapCenter 軟體套件、以方便使用者的 UI 介面進行資料庫備份、還原及複製。NetApp 建議實作這樣的管理工具、以快速(在一分鐘內)備份快照、快速(分鐘)資料庫還原及資料庫複製。

解決方案部署

以下各節提供在 AWS 上的 VMC 中部署 Oracle 19c 的逐步程序、並將直接掛載的 FSX ONTAP 儲存設備部署至單一節點的 DB VM 重新啟動組態、並將 Oracle ASM 做為資料庫 Volume Manager 。

部署的先決條件

Details

部署需要下列先決條件。

  1. 已建立使用 VMware Cloud on AWS 的軟體定義資料中心( SDDC )。如需如何在 VMC 中建立 SDDC 的詳細指示、請參閱 VMware 文件 "開始使用AWS上的VMware Cloud"

  2. 已設定AWS帳戶、並已在AWS帳戶中建立必要的VPC和網路區段。AWS 帳戶會連結至 VMC SDDC 。

  3. 從 AWS EC2 主控台、部署 Amazon FSX for ONTAP Storage HA 叢集來主控 Oracle 資料庫磁碟區。如果您不熟悉FSX儲存設備的部署、請參閱文件 "為SfSX. ONTAP 檔案系統建立FSX" 以取得逐步指示。

  4. 您可以使用下列 Terraform 自動化工具組來執行上述步驟、此工具組可透過 SSH 和 FSX 檔案系統、在 VMC 存取中建立 EC2 執行個體作為 SDDC 的跳接主機。在執行之前、請仔細檢閱指示並變更變數以符合您的環境。

    git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
  5. 在 AWS 上的 VMware SDDC 中建置虛擬機器、以裝載要部署在 VMC 中的 Oracle 環境。在我們的示範中、我們建置了兩個 Linux VM 做為 Oracle DB 伺服器、一個 Windows 伺服器做為 SnapCenter 伺服器、以及一個選用的 Linux 伺服器做為 Ansible 控制器、以便在需要時進行自動化 Oracle 安裝或組態。以下是實驗室環境的快照、供解決方案驗證之用。

    顯示 VMC SDDC 測試環境的螢幕擷取畫面。

  6. 此外、 NetApp 也提供數個自動化工具套件、可在適用的情況下執行 Oracle 部署和組態。請參閱 "資料庫自動化工具套件" 以取得更多資訊。

註 請確定您已在 Oracle VM 根 Volume 中至少分配 50 g 、以便有足夠的空間來存放 Oracle 安裝檔案。

DB VM 核心組態

Details

在已配置先決條件的情況下、透過 SSH 以管理員使用者身分登入 Oracle VM 、並使用 Sudo 以 root 使用者身分登入、以設定 Linux 核心以進行 Oracle 安裝。Oracle 安裝檔案可分段在 AWS S3 貯體中、並傳輸至 VM 。

  1. 建立暫存目錄 /tmp/archive 資料夾並設定 777 權限。

    mkdir /tmp/archive
    chmod 777 /tmp/archive
  2. 下載 Oracle 二進位安裝檔案及其他必要的 rpm 檔案、並將這些檔案登錄至 /tmp/archive 目錄。

    請參閱下列要在中說明的安裝檔案清單 /tmp/archive 在 DB VM 上。

    [admin@ora_02 ~]$ ls -l /tmp/archive/
    total 10539364
    -rw-rw-r--. 1 admin  admin         19112 Oct  4 17:04 compat-libcap1-1.10-7.el7.x86_64.rpm
    -rw-rw-r--. 1 admin  admin    3059705302 Oct  4 17:10 LINUX.X64_193000_db_home.zip
    -rw-rw-r--. 1 admin  admin    2889184573 Oct  4 17:11 LINUX.X64_193000_grid_home.zip
    -rw-rw-r--. 1 admin  admin        589145 Oct  4 17:04 netapp_linux_unified_host_utilities-7-1.x86_64.rpm
    -rw-rw-r--. 1 admin  admin         31828 Oct  4 17:04 oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
    -rw-rw-r--. 1 admin  admin    2872741741 Oct  4 17:12 p34762026_190000_Linux-x86-64.zip
    -rw-rw-r--. 1 admin  admin    1843577895 Oct  4 17:13 p34765931_190000_Linux-x86-64.zip
    -rw-rw-r--. 1 admin  admin     124347218 Oct  4 17:13 p6880880_190000_Linux-x86-64.zip
    -rw-rw-r--. 1 admin  admin        257136 Oct  4 17:04 policycoreutils-python-utils-2.9-9.el8.noarch.rpm
    [admin@ora_02 ~]$
  3. 安裝 Oracle 19c 預先安裝 RPM 、以滿足大多數核心組態需求。

    yum install /tmp/archive/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
  4. 下載並安裝遺失的 compat-libcap1 在 Linux 8 中。

    yum install /tmp/archive/compat-libcap1-1.10-7.el7.x86_64.rpm
  5. 從 NetApp 下載並安裝 NetApp 主機公用程式。

    yum install /tmp/archive/netapp_linux_unified_host_utilities-7-1.x86_64.rpm
  6. 安裝 policycoreutils-python-utils

    yum install /tmp/archive/policycoreutils-python-utils-2.9-9.el8.noarch.rpm
  7. 安裝開放式 JDK 1.8 版。

    yum install java-1.8.0-openjdk.x86_64
  8. 安裝 iSCSI 啟動器公用程式。

    yum install iscsi-initiator-utils
  9. 安裝 SG3_utils 。

    yum install sg3_utils
  10. 安裝 device-mapper-multipath 。

    yum install device-mapper-multipath
  11. 停用目前系統中的透明 hugepages 。

    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
  12. 在中新增下列行 /etc/rc.local 以停用 transparent_hugepage 重新開機後。

    vi /etc/rc.local
      # Disable transparent hugepages
              if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
                echo never > /sys/kernel/mm/transparent_hugepage/enabled
              fi
              if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
                echo never > /sys/kernel/mm/transparent_hugepage/defrag
              fi
  13. 變更以停用 SELinux SELINUX=enforcingSELINUX=disabled。您必須重新啟動主機、才能使變更生效。

    vi /etc/sysconfig/selinux
  14. 新增下列行至 limit.conf 設定檔案描述元限制和堆疊大小。

    vi /etc/security/limits.conf
    *               hard    nofile          65536
    *               soft    stack           10240
  15. 如果沒有使用此指示設定交換空間、請將交換空間新增至 DB VM : "如何使用交換檔、在Amazon EC2執行個體中將記憶體配置為交換空間?" 要新增的確切空間量取決於 RAM 大小、最高可達 16G 。

  16. 變更 node.session.timeo.replacement_timeout 在中 iscsi.conf 組態檔案的時間為 120 到 5 秒。

    vi /etc/iscsi/iscsid.conf
  17. 在 EC2 執行個體上啟用和啟動 iSCSI 服務。

    systemctl enable iscsid
    systemctl start iscsid
  18. 擷取用於資料庫 LUN 對應的 iSCSI 啟動器位址。

    cat /etc/iscsi/initiatorname.iscsi
  19. 新增 asm 管理使用者( Oracle )的 asm 群組。

    groupadd asmadmin
    groupadd asmdba
    groupadd asmoper
  20. 修改 Oracle 使用者、將 asm 群組新增為次要群組( Oracle 使用者應該是在 Oracle 預先安裝 RPM 安裝之後建立的)。

    usermod -a -G asmadmin oracle
    usermod -a -G asmdba oracle
    usermod -a -G asmoper oracle
  21. 如果 Linux 防火牆處於作用中狀態、請停止並停用該防火牆。

    systemctl stop firewalld
    systemctl disable firewalld
  22. 取消註解、為管理員使用者啟用無密碼 Sudo # %wheel ALL=(ALL) NOPASSWD: ALL 行位於 /etc/sudoers 檔案中。變更檔案權限以進行編輯。

    chmod 640 /etc/sudoers
    vi /etc/sudoers
    chmod 440 /etc/sudoers
  23. 重新啟動 EC2 執行個體。

將 FSX ONTAP LUN 配置並對應至 DB VM

Details

透過 ssh 和 FSX 叢集管理 IP 、以 fsxadmin 使用者身分登入 FSX 叢集、從命令列配置三個磁碟區。在磁碟區內建立 LUN 、以裝載 Oracle 資料庫二進位、資料和記錄檔。

  1. 以 fsxadmin 使用者身分透過 SSH 登入 FSX 叢集。

    ssh fsxadmin@10.49.0.74
  2. 執行下列命令、為 Oracle 二進位檔案建立磁碟區。

    vol create -volume ora_02_biny -aggregate aggr1 -size 50G -state online  -type RW -snapshot-policy none -tiering-policy snapshot-only
  3. 執行以下命令以建立 Oracle 資料的磁碟區。

    vol create -volume ora_02_data -aggregate aggr1 -size 100G -state online  -type RW -snapshot-policy none -tiering-policy snapshot-only
  4. 執行以下命令以建立 Oracle 記錄的磁碟區。

    vol create -volume ora_02_logs -aggregate aggr1 -size 100G -state online  -type RW -snapshot-policy none -tiering-policy snapshot-only
  5. 驗證建立的磁碟區。

    vol show ora*

    命令輸出:

    FsxId0c00cec8dad373fd1::> vol show ora*
    Vserver   Volume       Aggregate    State      Type       Size  Available Used%
    --------- ------------ ------------ ---------- ---- ---------- ---------- -----
    nim       ora_02_biny  aggr1        online     RW         50GB    22.98GB   51%
    nim       ora_02_data  aggr1        online     RW        100GB    18.53GB   80%
    nim       ora_02_logs  aggr1        online     RW         50GB     7.98GB   83%
  6. 在資料庫二進位磁碟區內建立二進位 LUN 。

    lun create -path /vol/ora_02_biny/ora_02_biny_01 -size 40G -ostype linux
  7. 在資料庫資料磁碟區內建立資料 LUN 。

    lun create -path /vol/ora_02_data/ora_02_data_01 -size 20G -ostype linux
    lun create -path /vol/ora_02_data/ora_02_data_02 -size 20G -ostype linux
    lun create -path /vol/ora_02_data/ora_02_data_03 -size 20G -ostype linux
    lun create -path /vol/ora_02_data/ora_02_data_04 -size 20G -ostype linux
  8. 在資料庫記錄磁碟區中建立記錄 LUN 。

    lun create -path /vol/ora_02_logs/ora_02_logs_01 -size 40G -ostype linux
    lun create -path /vol/ora_02_logs/ora_02_logs_02 -size 40G -ostype linux
  9. 使用從上述 EC2 核心組態的步驟 14 擷取的啟動器、為 EC2 執行個體建立 igroup 。

    igroup create -igroup ora_02 -protocol iscsi -ostype linux -initiator iqn.1994-05.com.redhat:f65fed7641c2
  10. 將 LUN 對應到上述建立的 igroup 。為每個額外的 LUN 依序遞增 LUN ID 。

    lun map -path /vol/ora_02_biny/ora_02_biny_01 -igroup ora_02 -vserver svm_ora -lun-id 0
    lun map -path /vol/ora_02_data/ora_02_data_01 -igroup ora_02 -vserver svm_ora -lun-id 1
    lun map -path /vol/ora_02_data/ora_02_data_02 -igroup ora_02 -vserver svm_ora -lun-id 2
    lun map -path /vol/ora_02_data/ora_02_data_03 -igroup ora_02 -vserver svm_ora -lun-id 3
    lun map -path /vol/ora_02_data/ora_02_data_04 -igroup ora_02 -vserver svm_ora -lun-id 4
    lun map -path /vol/ora_02_logs/ora_02_logs_01 -igroup ora_02 -vserver svm_ora -lun-id 5
    lun map -path /vol/ora_02_logs/ora_02_logs_02 -igroup ora_02 -vserver svm_ora -lun-id 6
  11. 驗證 LUN 對應。

    mapping show

    預計將會歸還:

    FsxId0c00cec8dad373fd1::> mapping show
      (lun mapping show)
    Vserver    Path                                      Igroup   LUN ID  Protocol
    ---------- ----------------------------------------  -------  ------  --------
    nim        /vol/ora_02_biny/ora_02_u01_01            ora_02        0  iscsi
    nim        /vol/ora_02_data/ora_02_u02_01            ora_02        1  iscsi
    nim        /vol/ora_02_data/ora_02_u02_02            ora_02        2  iscsi
    nim        /vol/ora_02_data/ora_02_u02_03            ora_02        3  iscsi
    nim        /vol/ora_02_data/ora_02_u02_04            ora_02        4  iscsi
    nim        /vol/ora_02_logs/ora_02_u03_01            ora_02        5  iscsi
    nim        /vol/ora_02_logs/ora_02_u03_02            ora_02        6  iscsi

DB VM 儲存組態

Details

現在、請匯入並設定用於在 VMC 資料庫 VM 上安裝 Oracle 網格基礎架構和資料庫的 FSX ONTAP 儲存設備。

  1. 使用 Windows 跳躍伺服器的 Putty 、以管理員使用者身分透過 SSH 登入 DB VM 。

  2. 使用任一 SVM iSCSI IP 位址探索 FSX iSCSI 端點。變更為您的環境專屬入口網站位址。

    sudo iscsiadm iscsiadm --mode discovery --op update --type sendtargets --portal 10.49.0.12
  3. 登入每個目標以建立 iSCSI 工作階段。

    sudo iscsiadm --mode node -l all

    命令的預期輸出為:

    [ec2-user@ip-172-30-15-58 ~]$ sudo iscsiadm --mode node -l all
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 10.49.0.12,3260]
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 10.49.0.186,3260]
    Login to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 10.49.0.12,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 10.49.0.186,3260] successful.
  4. 檢視並驗證使用中 iSCSI 工作階段清單。

    sudo iscsiadm --mode session

    傳回 iSCSI 工作階段。

    [ec2-user@ip-172-30-15-58 ~]$ sudo iscsiadm --mode session
    tcp: [1] 10.49.0.186:3260,1028 iqn.1992-08.com.netapp:sn.545a38bf06ac11ee8503e395ab90d704:vs.3 (non-flash)
    tcp: [2] 10.49.0.12:3260,1029 iqn.1992-08.com.netapp:sn.545a38bf06ac11ee8503e395ab90d704:vs.3 (non-flash)
  5. 驗證 LUN 是否已匯入主機。

    sudo sanlun lun show

    這會傳回來自 FSX 的 Oracle LUN 清單。

    [admin@ora_02 ~]$ sudo sanlun lun show
    controller(7mode/E-Series)/                                                  device          host                  lun
    vserver(cDOT/FlashRay)        lun-pathname                                   filename        adapter    protocol   size    product
    -------------------------------------------------------------------------------------------------------------------------------
    nim                           /vol/ora_02_logs/ora_02_u03_02                 /dev/sdo        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_logs/ora_02_u03_01                 /dev/sdn        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_04                 /dev/sdm        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_03                 /dev/sdl        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_02                 /dev/sdk        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_01                 /dev/sdj        host34     iSCSI      20g     cDOT
    nim                           /vol/ora_02_biny/ora_02_u01_01                 /dev/sdi        host34     iSCSI      40g     cDOT
    nim                           /vol/ora_02_logs/ora_02_u03_02                 /dev/sdh        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_logs/ora_02_u03_01                 /dev/sdg        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_04                 /dev/sdf        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_03                 /dev/sde        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_02                 /dev/sdd        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_data/ora_02_u02_01                 /dev/sdc        host33     iSCSI      20g     cDOT
    nim                           /vol/ora_02_biny/ora_02_u01_01                 /dev/sdb        host33     iSCSI      40g     cDOT
  6. 設定 multipath.conf 具有下列預設項目和黑名單項目的檔案。

    sudo vi /etc/multipath.conf

    新增下列項目:

    defaults {
        find_multipaths yes
        user_friendly_names yes
    }
    
    blacklist {
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
        devnode "^hd[a-z]"
        devnode "^cciss.*"
    }
  7. 啟動多重路徑服務。

    sudo systemctl start multipathd

    現在、多重路徑裝置會出現在中 /dev/mapper 目錄。

    [ec2-user@ip-172-30-15-58 ~]$ ls -l /dev/mapper
    total 0
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e68512d -> ../dm-0
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685141 -> ../dm-1
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685142 -> ../dm-2
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685143 -> ../dm-3
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685144 -> ../dm-4
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685145 -> ../dm-5
    lrwxrwxrwx 1 root root       7 Mar 21 20:13 3600a09806c574235472455534e685146 -> ../dm-6
    crw------- 1 root root 10, 236 Mar 21 18:19 control
  8. 以 fsxadmin 使用者身分透過 SSH 登入 FSX ONTAP 叢集、以 6c574xxx 開始擷取每個 LUN 的序列十六進位數字 …​ 、十六進位數字以 3600a0980 開始、即 AWS 廠商 ID 。

    lun show -fields serial-hex

    並依下列方式退貨:

    FsxId02ad7bf3476b741df::> lun show -fields serial-hex
    vserver path                            serial-hex
    ------- ------------------------------- ------------------------
    svm_ora /vol/ora_02_biny/ora_02_biny_01 6c574235472455534e68512d
    svm_ora /vol/ora_02_data/ora_02_data_01 6c574235472455534e685141
    svm_ora /vol/ora_02_data/ora_02_data_02 6c574235472455534e685142
    svm_ora /vol/ora_02_data/ora_02_data_03 6c574235472455534e685143
    svm_ora /vol/ora_02_data/ora_02_data_04 6c574235472455534e685144
    svm_ora /vol/ora_02_logs/ora_02_logs_01 6c574235472455534e685145
    svm_ora /vol/ora_02_logs/ora_02_logs_02 6c574235472455534e685146
    7 entries were displayed.
  9. 更新 /dev/multipath.conf 用於爲多路徑設備添加用戶友好名稱的文件。

    sudo vi /etc/multipath.conf

    包含下列項目:

    multipaths {
            multipath {
                    wwid            3600a09806c574235472455534e68512d
                    alias           ora_02_biny_01
            }
            multipath {
                    wwid            3600a09806c574235472455534e685141
                    alias           ora_02_data_01
            }
            multipath {
                    wwid            3600a09806c574235472455534e685142
                    alias           ora_02_data_02
            }
            multipath {
                    wwid            3600a09806c574235472455534e685143
                    alias           ora_02_data_03
            }
            multipath {
                    wwid            3600a09806c574235472455534e685144
                    alias           ora_02_data_04
            }
            multipath {
                    wwid            3600a09806c574235472455534e685145
                    alias           ora_02_logs_01
            }
            multipath {
                    wwid            3600a09806c574235472455534e685146
                    alias           ora_02_logs_02
            }
    }
  10. 重新啟動多重路徑服務、以驗證所在的裝置 /dev/mapper 已變更為 LUN 名稱與序列十六進位 ID 。

    sudo systemctl restart multipathd

    檢查 /dev/mapper 若要返回、請執行下列步驟:

    [ec2-user@ip-172-30-15-58 ~]$ ls -l /dev/mapper
    total 0
    crw------- 1 root root 10, 236 Mar 21 18:19 control
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_biny_01 -> ../dm-0
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_data_01 -> ../dm-1
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_data_02 -> ../dm-2
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_data_03 -> ../dm-3
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_data_04 -> ../dm-4
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_logs_01 -> ../dm-5
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_02_logs_02 -> ../dm-6
  11. 使用單一主分割區來分割二進位 LUN 。

    sudo fdisk /dev/mapper/ora_02_biny_01
  12. 使用 XFS 檔案系統格式化分割的二進位 LUN 。

    sudo mkfs.xfs /dev/mapper/ora_02_biny_01p1
  13. 將二進位 LUN 掛載至 /u01

    sudo mkdir /u01
    sudo mount -t xfs /dev/mapper/ora_02_biny_01p1 /u01
  14. 變更 /u01 將點所有權掛載至 Oracle 使用者及其相關的主要群組。

    sudo chown oracle:oinstall /u01
  15. 尋找二進位 LUN 的 UUI 。

    sudo blkid /dev/mapper/ora_02_biny_01p1
  16. 將裝載點新增至 /etc/fstab

    sudo vi /etc/fstab

    新增下列行。

    UUID=d89fb1c9-4f89-4de4-b4d9-17754036d11d       /u01    xfs     defaults,nofail 0       2
  17. 以 root 使用者身分新增適用於 Oracle 裝置的 udev 規則。

    vi /etc/udev/rules.d/99-oracle-asmdevices.rules

    包括下列項目:

    ENV{DM_NAME}=="ora*", GROUP:="oinstall", OWNER:="oracle", MODE:="660"
  18. 以 root 使用者身分重新載入 udev 規則。

    udevadm control --reload-rules
  19. 以 root 使用者身分觸發 udev 規則。

    udevadm trigger
  20. 以 root 使用者身分重新載入 multipathd 。

    systemctl restart multipathd
  21. 重新啟動 EC2 執行個體主機。

Oracle 網格基礎架構安裝

Details
  1. 以管理員使用者身分透過 SSH 登入 DB VM 、並取消註解以啟用密碼驗證 PasswordAuthentication yes 然後留言 PasswordAuthentication no

    sudo vi /etc/ssh/sshd_config
  2. 重新啟動 sshd 服務。

    sudo systemctl restart sshd
  3. 重設 Oracle 使用者密碼。

    sudo passwd oracle
  4. 以 Oracle 重新啟動軟體擁有者使用者( Oracle )的身分登入。建立 Oracle 目錄、如下所示:

    mkdir -p /u01/app/oracle
    mkdir -p /u01/app/oraInventory
  5. 變更目錄權限設定。

    chmod -R 775 /u01/app
  6. 建立網格主目錄並加以變更。

    mkdir -p /u01/app/oracle/product/19.0.0/grid
    cd /u01/app/oracle/product/19.0.0/grid
  7. 解壓縮網格安裝檔案。

    unzip -q /tmp/archive/LINUX.X64_193000_grid_home.zip
  8. 從網格首頁刪除 OPatch 目錄。

    rm -rf OPatch
  9. 從網格主頁解壓縮 p6880880_190000_Linux-x86-64.zip

    unzip -q /tmp/archive/p6880880_190000_Linux-x86-64.zip
  10. 從網格首頁修改 cv/admin/cvu_config、取消註解並取代 CV_ASSUME_DISTID=OEL5CV_ASSUME_DISTID=OL7

    vi cv/admin/cvu_config
  11. 準備 gridsetup.rsp 用於無訊息安裝的檔案、並將 rsp 檔案放入 /tmp/archive 目錄。rsp 檔案應涵蓋 A 、 B 和 G 區段、並提供下列資訊:

    INVENTORY_LOCATION=/u01/app/oraInventory
    oracle.install.option=HA_CONFIG
    ORACLE_BASE=/u01/app/oracle
    oracle.install.asm.OSDBA=asmdba
    oracle.install.asm.OSOPER=asmoper
    oracle.install.asm.OSASM=asmadmin
    oracle.install.asm.SYSASMPassword="SetPWD"
    oracle.install.asm.diskGroup.name=DATA
    oracle.install.asm.diskGroup.redundancy=EXTERNAL
    oracle.install.asm.diskGroup.AUSize=4
    oracle.install.asm.diskGroup.disks=/dev/mapper/ora_02_data_01,/dev/mapper/ora_02_data_02,/dev/mapper/ora_02_data_03,/dev/mapper/ora_02_data_04
    oracle.install.asm.diskGroup.diskDiscoveryString=/dev/mapper/*
    oracle.install.asm.monitorPassword="SetPWD"
    oracle.install.asm.configureAFD=true
  12. 以 root 使用者身分登入 EC2 執行個體並設定 ORACLE_HOMEORACLE_BASE

    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/
    export ORACLE_BASE=/tmp
    cd /u01/app/oracle/product/19.0.0/grid/bin
  13. 初始化磁碟裝置以搭配 Oracle ASM 篩選器驅動程式使用。

     ./asmcmd afd_label DATA01 /dev/mapper/ora_02_data_01 --init
     ./asmcmd afd_label DATA02 /dev/mapper/ora_02_data_02 --init
     ./asmcmd afd_label DATA03 /dev/mapper/ora_02_data_03 --init
     ./asmcmd afd_label DATA04 /dev/mapper/ora_02_data_04 --init
     ./asmcmd afd_label LOGS01 /dev/mapper/ora_02_logs_01 --init
     ./asmcmd afd_label LOGS02 /dev/mapper/ora_02_logs_02 --init
  14. 安裝 cvuqdisk-1.0.10-1.rpm

    rpm -ivh /u01/app/oracle/product/19.0.0/grid/cv/rpm/cvuqdisk-1.0.10-1.rpm
  15. 未設定 $ORACLE_BASE

    unset ORACLE_BASE
  16. 以 Oracle 使用者身分登入 EC2 執行個體、並在中擷取修補程式 /tmp/archive 資料夾。

    unzip -q /tmp/archive/p34762026_190000_Linux-x86-64.zip -d /tmp/archive
  17. 從網格主頁 /u01/app/oracle/product/19.0/grrid 和 Oracle 使用者的身分啟動 gridSetup.sh 適用於網格基礎架構安裝。

     ./gridSetup.sh -applyRU /tmp/archive/34762026/ -silent -responseFile /tmp/archive/gridsetup.rsp
  18. 以 root 使用者身分執行下列指令碼:

    /u01/app/oraInventory/orainstRoot.sh
    /u01/app/oracle/product/19.0.0/grid/root.sh
  19. 以 root 使用者身分重新載入多路徑。

    systemctl restart multipathd
  20. 身為 Oracle 使用者、請執行下列命令以完成組態:

    /u01/app/oracle/product/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /tmp/archive/gridsetup.rsp -silent
  21. 身為 Oracle 使用者、請建立記錄磁碟群組。

    bin/asmca -silent -sysAsmPassword 'yourPWD' -asmsnmpPassword 'yourPWD' -createDiskGroup -diskGroupName LOGS -disk 'AFD:LOGS*' -redundancy EXTERNAL -au_size 4
  22. 身為 Oracle 使用者、請在安裝組態後驗證網格服務。

    bin/crsctl stat res -t
    [oracle@ora_02 grid]$ bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.LISTENER.lsnr
                   ONLINE  INTERMEDIATE ora_02                   Not All Endpoints Re
                                                                 gistered,STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.asm
                   ONLINE  ONLINE       ora_02                   Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      ora_02                   STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cssd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.driver.afd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.evmd
          1        ONLINE  ONLINE       ora_02                   STABLE
    --------------------------------------------------------------------------------
  23. Valiate ASM 篩選器驅動程式狀態。

    [oracle@ora_02 grid]$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid
    [oracle@ora_02 grid]$ export ORACLE_SID=+ASM
    [oracle@ora_02 grid]$ export PATH=$PATH:$ORACLE_HOME/bin
    [oracle@ora_02 grid]$ 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     81920    81780                0           81780              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  4194304     40960    40852                0           40852              0             N  LOGS/
    ASMCMD> afd_state
    ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'ora_02'
    ASMCMD> exit
    [oracle@ora_02 grid]$
  24. 驗證 HA 服務狀態。

    [oracle@ora_02 bin]$ ./crsctl check has
    CRS-4638: Oracle High Availability Services is online

Oracle 資料庫安裝

Details
  1. 以 Oracle 使用者身分登入、然後取消設定 $ORACLE_HOME$ORACLE_SID 如果已設定。

    unset ORACLE_HOME
    unset ORACLE_SID
  2. 建立 Oracle DB 主目錄、並將目錄變更為該目錄。

    mkdir /u01/app/oracle/product/19.0.0/cdb3
    cd /u01/app/oracle/product/19.0.0/cdb3
  3. 解壓縮 Oracle DB 安裝檔案。

    unzip -q /tmp/archive/LINUX.X64_193000_db_home.zip
  4. 從 DB 首頁刪除 OPatch 目錄。

    rm -rf OPatch
  5. 從 DB 主目錄解壓縮 p6880880_190000_Linux-x86-64.zip

    unzip -q /tmp/archive/p6880880_190000_Linux-x86-64.zip
  6. 從 DB 主目錄修改 cv/admin/cvu_config 並取消註解及取代 CV_ASSUME_DISTID=OEL5CV_ASSUME_DISTID=OL7

    vi cv/admin/cvu_config
  7. /tmp/archive 目錄中、解壓縮 DB 19.18 RU 修補程式。

    unzip -q /tmp/archive/p34765931_190000_Linux-x86-64.zip -d /tmp/archive
  8. 在中準備 DB 無訊息安裝 rsp 檔案 /tmp/archive/dbinstall.rsp 具有下列值的目錄:

    oracle.install.option=INSTALL_DB_SWONLY
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/u01/app/oraInventory
    ORACLE_HOME=/u01/app/oracle/product/19.0.0/cdb3
    ORACLE_BASE=/u01/app/oracle
    oracle.install.db.InstallEdition=EE
    oracle.install.db.OSDBA_GROUP=dba
    oracle.install.db.OSOPER_GROUP=oper
    oracle.install.db.OSBACKUPDBA_GROUP=oper
    oracle.install.db.OSDGDBA_GROUP=dba
    oracle.install.db.OSKMDBA_GROUP=dba
    oracle.install.db.OSRACDBA_GROUP=dba
    oracle.install.db.rootconfig.executeRootScript=false
  9. 從 cdb3 主頁 /u01/app/oracle/product/19.0/cdb3 執行無訊息軟體專屬資料庫安裝。

     ./runInstaller -applyRU /tmp/archive/34765931/ -silent -ignorePrereqFailure -responseFile /tmp/archive/dbinstall.rsp
  10. 以root使用者身分執行 root.sh 純軟體安裝後的指令碼。

    /u01/app/oracle/product/19.0.0/db1/root.sh
  11. 身為 Oracle 使用者、請建立 dbca.rsp 包含下列項目的檔案:

    gdbName=cdb3.demo.netapp.com
    sid=cdb3
    createAsContainerDatabase=true
    numberOfPDBs=3
    pdbName=cdb3_pdb
    useLocalUndoForPDBs=true
    pdbAdminPassword="yourPWD"
    templateName=General_Purpose.dbc
    sysPassword="yourPWD"
    systemPassword="yourPWD"
    dbsnmpPassword="yourPWD"
    datafileDestination=+DATA
    recoveryAreaDestination=+LOGS
    storageType=ASM
    diskGroupName=DATA
    characterSet=AL32UTF8
    nationalCharacterSet=AL16UTF16
    listeners=LISTENER
    databaseType=MULTIPURPOSE
    automaticMemoryManagement=false
    totalMemory=8192
  12. 身為 Oracle 使用者、請使用 dbca 啟動資料庫建立。

    bin/dbca -silent -createDatabase -responseFile /tmp/archive/dbca.rsp

    輸出:

Prepare for db operation
7% complete
Registering database with Oracle Restart
11% complete
Copying database files
33% complete
Creating and starting Oracle instance
35% complete
38% complete
42% complete
45% complete
48% complete
Completing Database Creation
53% complete
55% complete
56% complete
Creating Pluggable Databases
60% complete
64% complete
69% complete
78% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /u01/app/oracle/cfgtoollogs/dbca/cdb3.
Database Information:
Global Database Name:cdb3.vmc.netapp.com
System Identifier(SID):cdb3
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb3/cdb3.log" for further details.
  1. 重複步驟 2 中的相同程序、在單獨的 Oracle 主目錄 /u01/app/oracle/product/19.0/cdb4 中、使用單一的 PDB 建立容器資料庫 cdb4 。

  2. 身為 Oracle 使用者、在資料庫建立後驗證 Oracle 重新啟動 HA 服務、確認所有資料庫( cdb3 、 cdb4 )均已向 HA 服務註冊。

    /u01/app/oracle/product/19.0.0/grid/crsctl stat res -t

    輸出:

    [oracle@ora_02 bin]$ ./crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.LISTENER.lsnr
                   ONLINE  INTERMEDIATE ora_02                   Not All Endpoints Re
                                                                 gistered,STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.asm
                   ONLINE  ONLINE       ora_02                   Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      ora_02                   STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cdb3.db
          1        ONLINE  ONLINE       ora_02                   Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /cdb3,STABLE
    ora.cdb4.db
          1        ONLINE  ONLINE       ora_02                   Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /cdb4,STABLE
    ora.cssd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.driver.afd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.evmd
          1        ONLINE  ONLINE       ora_02                   STABLE
    --------------------------------------------------------------------------------
  3. 設定 Oracle 使用者 .bash_profile

    vi ~/.bash_profile

    新增下列項目:

    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/db3
    export ORACLE_SID=db3
    export PATH=$PATH:$ORACLE_HOME/bin
    alias asm='export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid;export ORACLE_SID=+ASM;export PATH=$PATH:$ORACLE_HOME/bin'
    alias cdb3='export ORACLE_HOME=/u01/app/oracle/product/19.0.0/cdb3;export ORACLE_SID=cdb3;export PATH=$PATH:$ORACLE_HOME/bin'
    alias cdb4='export ORACLE_HOME=/u01/app/oracle/product/19.0.0/cdb4;export ORACLE_SID=cdb4;export PATH=$PATH:$ORACLE_HOME/bin'
  4. 驗證為 cdb3 建立的 CDB/PDB 。

    cdb3
    [oracle@ora_02 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Mon Oct 9 08:19:20 2023
    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
    --------- --------------------
    CDB3      READ WRITE
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 CDB3_PDB1                      READ WRITE NO
             4 CDB3_PDB2                      READ WRITE NO
             5 CDB3_PDB3                      READ WRITE NO
    SQL>
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/CDB3/DATAFILE/system.257.1149420273
    +DATA/CDB3/DATAFILE/sysaux.258.1149420317
    +DATA/CDB3/DATAFILE/undotbs1.259.1149420343
    +DATA/CDB3/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.266.1149421085
    +DATA/CDB3/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.267.1149421085
    +DATA/CDB3/DATAFILE/users.260.1149420343
    +DATA/CDB3/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.268.1149421085
    +DATA/CDB3/06FB206DF15ADEE8E065025056B66295/DATAFILE/system.272.1149422017
    +DATA/CDB3/06FB206DF15ADEE8E065025056B66295/DATAFILE/sysaux.273.1149422017
    +DATA/CDB3/06FB206DF15ADEE8E065025056B66295/DATAFILE/undotbs1.271.1149422017
    +DATA/CDB3/06FB206DF15ADEE8E065025056B66295/DATAFILE/users.275.1149422033
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/CDB3/06FB21766256DF9AE065025056B66295/DATAFILE/system.277.1149422033
    +DATA/CDB3/06FB21766256DF9AE065025056B66295/DATAFILE/sysaux.278.1149422033
    +DATA/CDB3/06FB21766256DF9AE065025056B66295/DATAFILE/undotbs1.276.1149422033
    +DATA/CDB3/06FB21766256DF9AE065025056B66295/DATAFILE/users.280.1149422049
    +DATA/CDB3/06FB22629AC1DFD7E065025056B66295/DATAFILE/system.282.1149422049
    +DATA/CDB3/06FB22629AC1DFD7E065025056B66295/DATAFILE/sysaux.283.1149422049
    +DATA/CDB3/06FB22629AC1DFD7E065025056B66295/DATAFILE/undotbs1.281.1149422049
    +DATA/CDB3/06FB22629AC1DFD7E065025056B66295/DATAFILE/users.285.1149422063
    
    19 rows selected.
    
    SQL>
  5. 驗證為 cdb4 建立的 CDB/PDB 。

    cdb4
    [oracle@ora_02 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Mon Oct 9 08:20:26 2023
    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
    --------- --------------------
    CDB4      READ WRITE
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 CDB4_PDB                       READ WRITE NO
    SQL>
    
    SQL> select name from v$datafile;
    
    NAME
    --------------------------------------------------------------------------------
    +DATA/CDB4/DATAFILE/system.286.1149424943
    +DATA/CDB4/DATAFILE/sysaux.287.1149424989
    +DATA/CDB4/DATAFILE/undotbs1.288.1149425015
    +DATA/CDB4/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.295.1149425765
    +DATA/CDB4/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.296.1149425765
    +DATA/CDB4/DATAFILE/users.289.1149425015
    +DATA/CDB4/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.297.1149425765
    +DATA/CDB4/06FC3070D5E12C23E065025056B66295/DATAFILE/system.301.1149426581
    +DATA/CDB4/06FC3070D5E12C23E065025056B66295/DATAFILE/sysaux.302.1149426581
    +DATA/CDB4/06FC3070D5E12C23E065025056B66295/DATAFILE/undotbs1.300.1149426581
    +DATA/CDB4/06FC3070D5E12C23E065025056B66295/DATAFILE/users.304.1149426597
    
    11 rows selected.
  6. 使用 sqlplus 以 sysdba 登入每個 cdb 、並將 DB 恢復目的地大小設為兩個 cdbs 的 +logs 磁碟群組大小。

    alter system set db_recovery_file_dest_size = 40G scope=both;
  7. 使用 sqlplus 以 sysdba 登入每個 cdb 、並依序使用下列命令集啟用歸檔記錄模式。

    sqlplus /as sysdba
    shutdown immediate;
    startup mount;
    alter database archivelog;
    alter database open;

這項作業完成了 Oracle 19c 版本 19.18 重新啟動在 Amazon FSX 上的 ONTAP 儲存設備和 VMC DB VM 部署。如有需要、 NetApp 建議將 Oracle 控制檔和線上記錄檔重新定位至 +logs 磁碟群組。

使用 SnapCenter 進行 Oracle 備份、還原及複製

SnapCenter 設定

Details

SnapCenter 仰賴資料庫 VM 上的主機端外掛程式來執行應用程式感知的資料保護管理活動。如需 NetApp SnapCenter 外掛程式 for Oracle 的詳細資訊、請參閱本文件 "如何使用Oracle資料庫的外掛程式"。以下提供設定 SnapCenter 以進行 Oracle 資料庫備份、還原及複製的高階步驟。

  1. 從 NetApp 支援網站 下載最新版本的 SnapCenter 軟體: "NetApp支援下載"

  2. 身為系統管理員、請從安裝最新的 Java JDK "取得適用於桌面應用程式的 Java" 在 SnapCenter 伺服器 Windows 主機上。

    註 如果 Windows 伺服器部署在網域環境中、請將網域使用者新增至 SnapCenter 伺服器本機系統管理員群組、然後與網域使用者一起執行 SnapCenter 安裝。
  3. 以安裝使用者身分透過 HTTPS 連接埠 8846 登入 SnapCenter UI 、以設定 SnapCenter for Oracle 。

  4. 更新 Hypervisor Settings 在全域設定中。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  5. 建立 Oracle 資料庫備份原則。理想情況下、請建立個別的歸檔記錄備份原則、以允許更頻繁的備份間隔、在發生故障時將資料遺失降至最低。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  6. 新增資料庫伺服器 Credential 用於 SnapCenter 存取 DB VM 。認證應在 Linux VM 上擁有 Sudo 權限、或在 Windows VM 上擁有系統管理員權限。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  7. 將 FSX ONTAP 儲存叢集新增至 Storage Systems 使用叢集管理 IP 並透過 fsxadmin 使用者 ID 驗證。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  8. 將 VMC 中的 Oracle 資料庫 VM 新增至 Hosts 使用在上一步 6 中建立的伺服器認證。

    顯示 SnapCenter 組態的螢幕擷取畫面。

註 請確定 SnapCenter 伺服器名稱可以解析為 DB VM 的 IP 位址、而 DB VM 名稱可以解析為 SnapCenter 伺服器的 IP 位址。

資料庫備份

Details

相較於傳統的 RMAN 型方法、 SnapCenter 利用 FSX ONTAP Volume Snapshot 來加快資料庫備份、還原或複製速度。當資料庫在快照之前處於 Oracle 備份模式時、快照的應用程式一致。

  1. Resources 索引標籤中的任何資料庫都會在 VM 新增至 SnapCenter 之後自動探索。一開始、資料庫狀態會顯示為 Not protected

    顯示 SnapCenter 組態的螢幕擷取畫面。

  2. 建立資源群組、以邏輯群組(例如 DB VM 等)備份資料庫 在此範例中、我們建立了一個 ora_02_data 群組、為 VM ora_02 上的所有資料庫進行完整線上資料庫備份。資源群組 ora_02_log 僅在 VM 上執行歸檔記錄的備份。建立資源群組也會定義執行備份的排程。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  3. 您也可以按一下、手動觸發資源群組備份 Back up Now 並使用資源群組中定義的原則執行備份。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  4. 可在監控備份工作 Monitor 按一下執行中工作的索引標籤。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  5. 成功備份後、資料庫狀態會顯示工作狀態和最近的備份時間。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  6. 按一下資料庫以檢閱每個資料庫的備份集。

    顯示 SnapCenter 組態的螢幕擷取畫面。

資料庫恢復

Details

SnapCenter 從快照備份中為 Oracle 資料庫提供許多還原與還原選項。在本範例中、我們會示範時間點還原、以錯誤地恢復掉落的資料表。在 VM ora_02 上、兩個資料庫 cdb3 、 cdb4 共用相同的 +data 和 +logs 磁碟群組。一個資料庫的資料庫還原不會影響其他資料庫的可用性。

  1. 首先、建立測試表格、並在表格中插入一列、以驗證時間點恢復。

    [oracle@ora_02 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Fri Oct 6 14:15:21 2023
    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
    --------- --------------------
    CDB3      READ WRITE
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 CDB3_PDB1                      READ WRITE NO
             4 CDB3_PDB2                      READ WRITE NO
             5 CDB3_PDB3                      READ WRITE NO
    SQL>
    
    
    SQL> alter session set container=cdb3_pdb1;
    
    Session altered.
    
    SQL> create table test (id integer, dt timestamp, event varchar(100));
    
    Table created.
    
    SQL> insert into test values(1, sysdate, 'test oracle recovery on guest mounted fsx storage to VMC guest vm ora_02');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select * from test;
    
            ID
    ----------
    DT
    ---------------------------------------------------------------------------
    EVENT
    --------------------------------------------------------------------------------
             1
    06-OCT-23 03.18.24.000000 PM
    test oracle recovery on guest mounted fsx storage to VMC guest vm ora_02
    
    
    SQL> select current_timestamp from dual;
    
    CURRENT_TIMESTAMP
    ---------------------------------------------------------------------------
    06-OCT-23 03.18.53.996678 PM -07:00
  2. 我們從 SnapCenter 執行手動快照備份。然後放下表格。

    SQL> drop table test;
    
    Table dropped.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select current_timestamp from dual;
    
    CURRENT_TIMESTAMP
    ---------------------------------------------------------------------------
    06-OCT-23 03.26.30.169456 PM -07:00
    
    SQL> select * from test;
    select * from test
                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
  3. 從上次步驟建立的備份集、記下記錄備份的 SCN 編號。按一下 Restore 啟動還原復原工作流程。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  4. 選擇還原範圍。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  5. 從上次完整資料庫備份中、選擇直到記錄 SCN 為止的還原範圍。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  6. 指定要執行的任何選用預先指令碼。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  7. 指定要執行的任何選擇性指令碼後置作業。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  8. 視需要傳送工作報告。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  9. 檢閱摘要、然後按一下 Finish 以啟動還原與還原。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  10. 從 Oracle 重新啟動網格控制項、我們觀察到 cdb3 正在還原、而恢復 cdb4 已上線且可供使用。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  11. 寄件者 Monitor 索引標籤、開啟工作以檢閱詳細資料。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  12. 從 DB VM ora_02 、驗證在成功還原之後、刪除的資料表是否已恢復。

    [oracle@ora_02 bin]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Fri Oct 6 17:01:28 2023
    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
    --------- --------------------
    CDB3      READ WRITE
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 CDB3_PDB1                      READ WRITE NO
             4 CDB3_PDB2                      READ WRITE NO
             5 CDB3_PDB3                      READ WRITE NO
    SQL> alter session set container=CDB3_PDB1;
    
    Session altered.
    
    SQL> select * from test;
    
            ID
    ----------
    DT
    ---------------------------------------------------------------------------
    EVENT
    --------------------------------------------------------------------------------
             1
    06-OCT-23 03.18.24.000000 PM
    test oracle recovery on guest mounted fsx storage to VMC guest vm ora_02
    
    
    SQL> select current_timestamp from dual;
    
    CURRENT_TIMESTAMP
    ---------------------------------------------------------------------------
    06-OCT-23 05.02.20.382702 PM -07:00
    
    SQL>

資料庫複製

Details

在此範例中、相同的備份集是用來在不同的 Oracle_home 中、於同一個 VM 上複製資料庫。如果需要、這些程序同樣適用於從備份複製資料庫、以在 VMC 中分離 VM 。

  1. 開啟資料庫 cdb3 備份清單。從您選擇的資料備份中、按一下 Clone 啟動資料庫複製工作流程的按鈕。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  2. 命名複製資料庫的 SID 。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  3. 在 VMC 中選取 VM 作為目標資料庫主機。應已在主機上安裝並設定相同的 Oracle 版本。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  4. 在目標主機上選取適當的 Oracle_Home 、使用者和群組。將認證設為預設值。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  5. 變更複製資料庫參數、以符合複製資料庫的組態或資源需求。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  6. 選擇恢復範圍。 Until Cancel 在備份集中恢復到最後一個可用日誌文件的克隆。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  7. 檢閱摘要並啟動複製工作。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  8. 從監控複製工作的執行 Monitor 索引標籤。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  9. 複製的資料庫會立即在 SnapCenter 中登錄。

    顯示 SnapCenter 組態的螢幕擷取畫面。

  10. 從 DB VM ora_02 中、複製的資料庫也會在 Oracle 重新啟動網格控制項中登錄、而刪除的測試表格則會在複製的資料庫 cdb3tst 中復原、如下所示。

    [oracle@ora_02 ~]$ /u01/app/oracle/product/19.0.0/grid/bin/crsctl stat res -t
    --------------------------------------------------------------------------------
    Name           Target  State        Server                   State details
    --------------------------------------------------------------------------------
    Local Resources
    --------------------------------------------------------------------------------
    ora.DATA.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.LISTENER.lsnr
                   ONLINE  INTERMEDIATE ora_02                   Not All Endpoints Re
                                                                 gistered,STABLE
    ora.LOGS.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.SC_2090922_CDB3TST.dg
                   ONLINE  ONLINE       ora_02                   STABLE
    ora.asm
                   ONLINE  ONLINE       ora_02                   Started,STABLE
    ora.ons
                   OFFLINE OFFLINE      ora_02                   STABLE
    --------------------------------------------------------------------------------
    Cluster Resources
    --------------------------------------------------------------------------------
    ora.cdb3.db
          1        ONLINE  ONLINE       ora_02                   Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /cdb3,STABLE
    ora.cdb3tst.db
          1        ONLINE  ONLINE       ora_02                   Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /cdb4,STABLE
    ora.cdb4.db
          1        ONLINE  ONLINE       ora_02                   Open,HOME=/u01/app/o
                                                                 racle/product/19.0.0
                                                                 /cdb4,STABLE
    ora.cssd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.diskmon
          1        OFFLINE OFFLINE                               STABLE
    ora.driver.afd
          1        ONLINE  ONLINE       ora_02                   STABLE
    ora.evmd
          1        ONLINE  ONLINE       ora_02                   STABLE
    --------------------------------------------------------------------------------
    
    [oracle@ora_02 ~]$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/cdb4
    [oracle@ora_02 ~]$ export ORACLE_SID=cdb3tst
    [oracle@ora_02 ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Sat Oct 7 08:04:51 2023
    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
    --------- --------------------
    CDB3TST   READ WRITE
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
             2 PDB$SEED                       READ ONLY  NO
             3 CDB3_PDB1                      READ WRITE NO
             4 CDB3_PDB2                      READ WRITE NO
             5 CDB3_PDB3                      READ WRITE NO
    SQL> alter session set container=CDB3_PDB1;
    
    Session altered.
    
    SQL> select * from test;
    
            ID
    ----------
    DT
    ---------------------------------------------------------------------------
    EVENT
    --------------------------------------------------------------------------------
             1
    06-OCT-23 03.18.24.000000 PM
    test oracle recovery on guest mounted fsx storage to VMC guest vm ora_02
    
    
    SQL>

這完成了 SnapCenter 在 AWS 上的 VMC SDDC 中備份、還原及複製 Oracle 資料庫的示範。