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

TR-4979:在 VMware Cloud on AWS 中使用用戶端安裝的 FSx ONTAP實作簡化的自主管理 Oracle

貢獻者 netapp-revathid kevin-hoke

Allen Cao、Niyaz Mohamed, NetApp

此解決方案概述並詳細介紹了在 AWS 中的 VMware Cloud 中部署和保護 Oracle,其中使用 FSx ONTAP作為主資料庫存儲,並使用 asm 作為磁碟區管理器在獨立 ReStart 中配置 Oracle 資料庫。

目的

幾十年來,企業一直在私人資料中心的 VMware 上運行 Oracle。 AWS 上的 VMware Cloud (VMC) 提供一鍵式解決方案,將 VMware 的企業級軟體定義資料中心 (SDDC) 軟體引入 AWS 雲端的專用、彈性、裸機基礎架構。 AWS FSx ONTAP為 VMC SDDC 提供優質儲存和資料結構,使客戶能夠在基於 vSphere 的私有雲、公有雲和混合雲環境中運行 Oracle 等業務關鍵型應用程序,並優化對 AWS 服務的存取。無論是現有或新的 Oracle 工作負載,AWS 上的 VMC 均可在 VMware 上提供熟悉、簡化且自我管理的 Oracle 環境,並具備 AWS 雲端的所有優勢,同時將所有平台管理和最佳化工作交給 VMware。

本文檔示範如何在 VMC 環境中使用Amazon FSx ONTAP作為主資料庫儲存來部署和保護 Oracle 資料庫。 Oracle 資料庫可以作為直接 VM 用戶端掛載的 LUN 或 NFS 掛載的 VMware VMDK 資料儲存磁碟部署到 FSx 儲存上的 VMC。本技術報告重點介紹如何將 Oracle 資料庫部署為使用 iSCSI 協定和 Oracle ASM 的 VMC 叢集中的 VM 的直接客戶端安裝的 FSx 儲存。我們也示範如何使用NetApp SnapCenter UI 工具備份、復原和複製 Oracle 資料庫,以用於開發/測試或其他用例,以便在 AWS 上的 VMC 中進行儲存高效的資料庫操作。

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

  • 在 AWS 上的 VMC 中部署 Oracle 資料庫,並使用Amazon FSx ONTAP作為主資料庫存儲

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

  • 使用NetApp SnapCenter工具在 AWS 上的 VMC 中克隆 Oracle 資料庫以用於開發/測試或其他用例

對象

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

  • 一位 DBA 希望使用Amazon FSx ONTAP在 AWS 上的 VMC 中部署 Oracle

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

  • 一位儲存管理員希望使用Amazon FSx ONTAP部署和管理部署到 AWS 上的 VMC 的 Oracle 資料庫

  • 希望在 AWS 雲端上的 VMC 中建立 Oracle 資料庫的應用程式擁有者

解決方案測試和驗證環境

此解決方案的測試和驗證是在 AWS 上的 VMC 的實驗室環境中進行的,該環境可能與最終部署環境不符。有關更多信息,請參閱部署考慮的關鍵因素

架構

此圖提供了具有 iSCSI 和 ASM 的 AWS 公有雲中的 Oracle 部署配置的詳細圖片。

硬體和軟體組件

硬體

FSx ONTAP存儲

AWS 提供的目前版本

一個與 VMC 位於同一 VPC 和可用區域中的 FSx ONTAP HA 集群

VMC SDDC 集群

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

10.37 TB vSAN存儲

軟體

紅帽Linux

RHEL-8.6,4.18.0-372.9.1.el8.x86_64 內核

部署 RedHat 訂閱進行測試

Windows 伺服器

2022 標準版,10.0.20348 內部版本 20348

託管SnapCenter伺服器

Oracle 網格基礎架構

版本 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

工作小組部署

BlueXP backup and recovery

版本 1.0

部署為 ova vSphere 插件虛擬機

VMware vSphere

版本 8.0.1.00300

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

開啟 JDK

版本 java-1.8.0-openjdk.x86_64

資料庫虛擬機器上的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 的連接。 *當您在 VMware Cloud on AWS 上部署 SDDC 時,它會在 AWS 帳戶和專用於您的組織並由 VMware 管理的 VPC 中建立。您還必須將 SDDC 連接到屬於您的 AWS 帳戶(稱為客戶 AWS 帳戶)。此連線可讓您的 SDDC 存取屬於您的客戶帳戶的 AWS 服務。 FSx ONTAP是部署在您的客戶帳戶中的 AWS 服務。一旦 VMC SDDC 連接到您的客戶帳戶,FSx 儲存即可供 VMC SDDC 中的虛擬機器直接安裝。

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

  • FSx 儲存叢集大小。 Amazon FSx ONTAP儲存檔案系統提供高達 160,000 個原始 SSD IOPS、高達 4GBps 的吞吐量以及最大 192TiB 的容量。但是,您可以根據部署時的實際需求,根據預先配置的 IOPS、吞吐量和儲存限制(最小 1,024 GiB)來確定叢集大小。容量可以動態調整,而不會影響應用程式的可用性。

  • Oracle 資料和日誌佈局。在我們的測試和驗證中,我們分別部署了兩個 ASM 磁碟組用於資料和日誌。在 +DATA asm 磁碟組中,我們在資料磁碟區中配置了四個 LUN。在 +LOGS asm 磁碟組中,我們在日誌磁碟區中設定了兩個 LUN。通常, Amazon FSx ONTAP磁碟區內佈局的多個 LUN 可提供更好的效能。

  • iSCSI 配置。 VMC SDDC 中的資料庫虛擬機器透過 iSCSI 協定連接到 FSx 儲存。透過仔細分析 Oracle AWR 報告來確定應用程式和 iSCSI 流量吞吐量要求,從而衡量 Oracle 資料庫峰值 I/O 吞吐量要求,這一點很重要。 NetApp也建議為兩個 FSx iSCSI 端點指派四個 iSCSI 連接,並正確配置多路徑。

  • *您建立的每個 Oracle ASM 磁碟組所使用的 Oracle ASM 冗餘等級。 *由於 FSx ONTAP已經在 FSx 叢集層級鏡像存儲,因此您應該使用外部冗餘,這表示該選項不允許 Oracle ASM 鏡像磁碟組的內容。

  • *資料庫備份。 * NetApp提供了SnapCenter software套件,用於資料庫備份、復原和克隆,並具有使用者友好的 UI 介面。 NetApp建議實施這樣的管理工具,以實現快速(一分鐘內)的 SnapShot 備份、快速(幾分鐘內)的資料庫復原和資料庫複製。

解決方案部署

以下部分提供了在 AWS 上的 VMC 中部署 Oracle 19c 的逐步過程,其中將 FSx ONTAP儲存直接安裝到單一節點中的 DB VM,使用 Oracle ASM 作為資料庫磁碟區管理器重新啟動配置。

部署先決條件

Details

部署需要以下先決條件。

  1. 已建立使用 VMware Cloud on AWS 的軟體定義資料中心 (SDDC)。有關如何在 VMC 中建立 SDDC 的詳細說明,請參閱 VMware 文檔"VMware Cloud on AWS 入門"

  2. 已設定 AWS 帳戶,並在您的 AWS 帳戶內建立了必要的 VPC 和網路段。 AWS 帳戶已連結到您的 VMC SDDC。

  3. 從 AWS EC2 控制台部署Amazon FSx ONTAP儲存 HA 叢集來託管 Oracle 資料庫磁碟區。如果您不熟悉 FSx 儲存的部署,請參閱文檔"建立 FSx ONTAP檔案系統"以獲得逐步說明。

  4. 上述步驟可以使用以下 Terraform 自動化工具包執行,該工具包會建立一個 EC2 執行個體作為 VMC 中透過 SSH 和 FSx 檔案系統存取 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 根磁碟區中指派至少 50G,以便有足夠的空間儲存 Oracle 安裝檔案。

DB VM 核心配置

Details

在滿足先決條件後,透過 SSH 以管理員使用者身分登入 Oracle VM,並以 root 使用者身分使用 sudo 配置 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. 安裝設備映射器多路徑。

    yum install device-mapper-multipath
  11. 在目前系統中停用透明大頁面。

    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=enforcing`到 `SELINUX=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

資料庫虛擬機器儲存配置

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. 透過 SSH 以 fsxadmin 使用者身分登入 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 以管理員使用者身分登入資料庫虛擬機,並透過取消註釋啟用密碼驗證 PasswordAuthentication yes`然後註解掉 `PasswordAuthentication no

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

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

    sudo passwd oracle
  4. 以 Oracle Restart 軟體擁有者使用者 (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=OEL5`和 `CV_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_HOME`和 `ORACLE_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. 從 grid home /u01/app/oracle/product/19.0.0/grid 並以 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 使用者身分重新載入 multipathd。

    systemctl restart multipathd
  20. 以Oracle用戶執行以下指令完成設定:

    /u01/app/oracle/product/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /tmp/archive/gridsetup.rsp -silent
  21. 以 Oracle 使用者身分建立 LOGS 磁碟組。

    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. 驗證 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. 從資料庫主目錄刪除 `OPatch`目錄。

    rm -rf OPatch
  5. 從 DB home 解壓縮 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=OEL5`和 `CV_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 home /u01/app/oracle/product/19.0.0/cdb3 執行靜默純軟體 DB 安裝。

     ./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 啟動 DB 建立。

    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_HOME /u01/app/oracle/product/19.0.0/cdb4 中使用單一 PDB 建立容器資料庫 cdb4。

  2. 以 Oracle 使用者身份,在建立資料庫後驗證 Oracle Restart 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 還原目標大小設為兩個 cdb 的 +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;

這完成了在Amazon FSx ONTAP儲存和 VMC DB VM 上重新啟動 Oracle 19c 版本 19.18 的部署。如果需要, NetApp建議將 Oracle 控製檔案和線上日誌檔案重新定位到 +LOGS 磁碟組。

使用SnapCenter進行 Oracle 備份、復原和克隆

SnapCenter設定

Details

SnapCenter依賴資料庫 VM 上的主機端插件來執行應用程式感知的資料保護管理活動。有關適用於 Oracle 的NetApp SnapCenter插件的詳細信息,請參閱此文檔"您可以使用 Oracle 資料庫插件做什麼"。以下提供了設定SnapCenter以進行 Oracle 資料庫備份、復原和複製的進階步驟。

  1. 從NetApp支援網站下載最新版本的SnapCenter software:"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磁碟區快照實作更快的資料庫備份、復原或複製。由於資料庫在快照之前處於 Oracle 備份模式,因此快照與應用程式一致。

  1. Resources`選項卡,將 VM 新增至SnapCenter後,會自動發現 VM 上的任何資料庫。最初,資料庫狀態顯示為 `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 Restart 網格控制中,我們觀察到當 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 Restart 網格控制中註冊,並且刪除的測試表在克隆的資料庫 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>

這完成了 AWS 上的 VMC SDDC 中 Oracle 資料庫的SnapCenter備份、復原和克隆的示範。