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

TR-4965:使用 iSCSI/ASM 在 AWS FSx/EC2 中部署和保護 Oracle 資料庫

貢獻者 kevin-hoke

Allen Cao、Niyaz Mohamed, NetApp

此解決方案提供了在 AWS FSx ONTAP儲存和 EC2 運算執行個體中使用 iSCSI 協定進行 Oracle 資料庫部署和保護的概述和詳細信息,以及在獨立 ReStart 中使用 asm 作為磁碟區管理器配置的 Oracle 資料庫。

目的

ASM(自動儲存管理)是一種受歡迎的 Oracle 儲存磁碟區管理器,在許多 Oracle 安裝中都有使用。它也是Oracle推薦的儲存管理解決方案。它為傳統的捲管理器和檔案系統提供了替代方案。自 Oracle 11g 版本以來,ASM 與網格基礎架構打包在一起,而不是與資料庫打包在一起。因此,為了在沒有 RAC 的情況下利用 Oracle ASM 進行儲存管理,必須在獨立伺服器中安裝 Oracle 網格基礎架構(也稱為 Oracle Restart)。這樣做無疑會增加 Oracle 資料庫部署的複雜度。但是,顧名思義,當 Oracle 以重新啟動模式部署時,失敗的 Oracle 服務會由網格基礎架構自動重新啟動或在主機重新啟動後無需使用者乾預,從而提供一定程度的高可用性或 HA 功能。

在本文檔中,我們示範如何在具有 EC2 運算執行個體的Amazon FSx ONTAP儲存環境中使用 iSCSI 協定和 Oracle ASM 部署 Oracle 資料庫。我們也示範如何透過NetApp BlueXP控制台使用NetApp SnapCenter服務來備份、還原和複製 Oracle 資料庫,以用於開發/測試或 AWS 公有雲中儲存高效的資料庫操作的其他用例。

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

  • 使用 iSCSI/ASM 在Amazon FSx ONTAP儲存和 EC2 運算執行個體中部署 Oracle 資料庫

  • 使用 iSCSI/ASM 在公用 AWS 雲端中測試和驗證 Oracle 工作負載

  • 測試和驗證在 AWS 中部署的 Oracle 資料庫重新啟動功能

對象

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

  • 一位 DBA 想要使用 iSCSI/ASM 在 AWS 公有雲中部署 Oracle。

  • 一位資料庫解決方案架構師想要在 AWS 公有雲中測試 Oracle 工作負載。

  • 想要部署和管理部署到 AWS FSx 儲存的 Oracle 資料庫的儲存管理員。

  • 希望在 AWS FSx/EC2 中建立 Oracle 資料庫的應用程式擁有者。

解決方案測試和驗證環境

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

架構

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

硬體和軟體組件

硬體

FSx ONTAP存儲

AWS 提供的目前版本

同一 VPC 和可用區中的一個 FSx HA 集群

用於計算的 EC2 實例

t2.xlarge/4vCPU/16G

兩個 EC2 T2 xlarge EC2 實例,一個作為主資料庫伺服器,另一個作為克隆資料庫伺服器

軟體

紅帽Linux

RHEL-8.6.0_HVM-20220503-x86_64-2-Hourly2-GP2

部署 RedHat 訂閱進行測試

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服務

版本

v2.3.1.2324

部署考慮的關鍵因素

  • EC2 運算執行個體。在這些測試和驗證中,我們使用 AWS EC2 t2.xlarge 執行個體類型作為 Oracle 資料庫運算執行個體。 NetApp建議在生產部署中使用 M5 類型的 EC2 執行個體作為 Oracle 的運算實例,因為它針對資料庫工作負載進行了最佳化。您需要根據實際工作負載需求,適當調整 EC2 執行個體的 vCPU 數量和 RAM 容量。

  • *FSx 儲存 HA 叢集單區域或多區域部署。 *在這些測試和驗證中,我們在單一 AWS 可用區中部署了一個 FSx HA 叢集。對於生產部署, NetApp建議在兩個不同的可用區部署 FSx HA 對。 FSx HA 叢集始終在 HA 對中配置,該 HA 對在主動-被動檔案系統中同步鏡像,以提供儲存級冗餘。多區域部署進一步增強了單一 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 配置。 EC2 執行個體資料庫伺服器透過 iSCSI 協定連接到 FSx 儲存。 EC2 執行個體通常部署單一網路介面或 ENI。單一 NIC 介面同時承載 iSCSI 和應用程式流量。透過仔細分析 Oracle AWR 報表來衡量 Oracle 資料庫峰值 I/O 吞吐量需求非常重要,這樣才能選擇出能夠同時滿足應用程式和 iSCSI 流量吞吐量要求的正確 EC2 運算執行個體。 NetApp也建議為兩個 FSx iSCSI 端點指派四個 iSCSI 連接,並正確配置多路徑。

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

  • *資料庫備份。 * NetApp提供了 SaaS 版本的SnapCenter software服務,用於在雲端進行資料庫備份、復原和克隆,可透過NetApp BlueXP控制台 UI 使用。 NetApp建議實施這樣的服務,以實現快速(一分鐘內)的 SnapShot 備份、快速(幾分鐘)的資料庫復原和資料庫複製。

解決方案部署

以下部分提供了逐步部署流程。

部署先決條件

Details

部署需要以下先決條件。

  1. 已設定 AWS 帳戶,並在您的 AWS 帳戶內建立了必要的 VPC 和網路段。

  2. 從 AWS EC2 控制台,您必須部署兩個 EC2 Linux 實例,一個作為主 Oracle DB 伺服器,另一個作為可選的備用克隆目標 DB 伺服器。有關環境設定的更多詳細信息,請參閱上一節中的架構圖。還請查看"Linux 實例使用者指南"了解更多。

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

  4. 步驟 2 和 3 可以使用以下 Terraform 自動化工具包執行,該工具包會建立一個名為 ora_01`以及一個名為 `fsx_01。在執行之前,請仔細檢查說明並更改變數以適合您的環境。

    git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
註 確保您已在 EC2 執行個體根磁碟區中指派至少 50G,以便有足夠的空間來暫存 Oracle 安裝檔案。

EC2 執行個體核心配置

Details

滿足先決條件後,以 ec2-user 身分登入 EC2 實例,並使用 sudo 以 root 使用者身分配置 Linux 核心以進行 Oracle 安裝。

  1. 建立暫存目錄 `/tmp/archive`資料夾並設置 `777`允許。

    mkdir /tmp/archive
    
    chmod 777 /tmp/archive
  2. 下載 Oracle 二進位安裝檔案和其他所需的 rpm 檔案並將其暫存到 `/tmp/archive`目錄。

    請參閱以下安裝檔案清單以說明 `/tmp/archive`在 EC2 執行個體上。

    [ec2-user@ip-172-30-15-58 ~]$ ls -l /tmp/archive
    total 10537316
    -rw-rw-r--. 1 ec2-user ec2-user      19112 Mar 21 15:57 compat-libcap1-1.10-7.el7.x86_64.rpm
    -rw-rw-r--  1 ec2-user ec2-user 3059705302 Mar 21 22:01 LINUX.X64_193000_db_home.zip
    -rw-rw-r--  1 ec2-user ec2-user 2889184573 Mar 21 21:09 LINUX.X64_193000_grid_home.zip
    -rw-rw-r--. 1 ec2-user ec2-user     589145 Mar 21 15:56 netapp_linux_unified_host_utilities-7-1.x86_64.rpm
    -rw-rw-r--. 1 ec2-user ec2-user      31828 Mar 21 15:55 oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
    -rw-rw-r--  1 ec2-user ec2-user 2872741741 Mar 21 22:31 p34762026_190000_Linux-x86-64.zip
    -rw-rw-r--  1 ec2-user ec2-user 1843577895 Mar 21 22:32 p34765931_190000_Linux-x86-64.zip
    -rw-rw-r--  1 ec2-user ec2-user  124347218 Mar 21 22:33 p6880880_190000_Linux-x86-64.zip
    -rw-r--r--  1 ec2-user ec2-user     257136 Mar 22 16:25 policycoreutils-python-utils-2.9-9.el8.noarch.rpm
  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,這在 EC2 執行個體中不可用。

    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. 在目前系統中停用透明大頁面。

    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo never > /sys/kernel/mm/transparent_hugepage/defrag

    新增以下行 `/etc/rc.local`停用 `transparent_hugepage`重啟後:

      # 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
  12. 透過更改禁用 selinux SELINUX=enforcing`到 `SELINUX=disabled。您必須重新啟動主機才能使變更生效。

    vi /etc/sysconfig/selinux
  13. 新增以下行到 limit.conf`設定檔案描述符限制和堆疊大小(不含引號) `" "

    vi /etc/security/limits.conf
      "*               hard    nofile          65536"
      "*               soft    stack           10240"
  14. 請依照下列說明為 EC2 執行個體新增交換空間:"如何使用交換檔案分配記憶體作為 Amazon EC2 執行個體中的交換空間?"要增加的特定空間量取決於 RAM 的大小,最高可達 16G。

  15. 改變 `node.session.timeo.replacement_timeout`在 `iscsi.conf`設定檔從120秒減少到5秒。

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

    systemctl enable iscsid
    systemctl start iscsid
  17. 檢索用於資料庫 LUN 對應的 iSCSI 啟動器位址。

    cat /etc/iscsi/initiatorname.iscsi
  18. 新增要用於 asm sysasm 群組的 ASM 群組。

    groupadd asm
  19. 修改 oracle 使用者以新增 ASM 作為輔助群組(oracle 使用者應該在 Oracle 預先安裝 RPM 安裝後建立)。

    usermod -a -G asm oracle
  20. 如果 Linux 防火牆處於活動狀態,請停止並停用它。

    systemctl stop firewalld
    systemctl disable firewalld
  21. 重啟 EC2 執行個體。

配置資料庫磁碟區和 LUN 並將其對應到 EC2 執行個體主機

Details

透過 ssh 以 fsxadmin 使用者身分使用 FSx 叢集管理 IP 登入 FSx 集群,從命令列配置三個磁碟區來託管 Oracle 資料庫二進位檔案、資料和日誌檔案。

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

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

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

    vol create -volume ora_01_data -aggregate aggr1 -size 100G -state online  -type RW -snapshot-policy none -tiering-policy snapshot-only
  4. 執行下列命令為 Oracle 日誌建立磁碟區。

    vol create -volume ora_01_logs -aggregate aggr1 -size 100G -state online  -type RW -snapshot-policy none -tiering-policy snapshot-only
  5. 在資料庫二進位磁碟區內建立二進位 LUN。

    lun create -path /vol/ora_01_biny/ora_01_biny_01 -size 40G -ostype linux
  6. 在資料庫資料卷內建立資料 LUN。

    lun create -path /vol/ora_01_data/ora_01_data_01 -size 20G -ostype linux
    
    lun create -path /vol/ora_01_data/ora_01_data_02 -size 20G -ostype linux
    
    lun create -path /vol/ora_01_data/ora_01_data_03 -size 20G -ostype linux
    
    lun create -path /vol/ora_01_data/ora_01_data_04 -size 20G -ostype linux
  7. 在資料庫日誌卷內建立日誌 LUN。

    lun create -path /vol/ora_01_logs/ora_01_logs_01 -size 40G -ostype linux
    
    lun create -path /vol/ora_01_logs/ora_01_logs_02 -size 40G -ostype linux
  8. 使用從上面的 EC2 核心配置的步驟 14 中檢索到的啟動器為 EC2 執行個體建立一個 igroup。

    igroup create -igroup ora_01 -protocol iscsi -ostype linux -initiator iqn.1994-05.com.redhat:f65fed7641c2
  9. 將 LUN 對應到上面建立的 igroup。為磁碟區內的每個附加 LUN 連續增加 LUN ID。

    lun map -path /vol/ora_01_biny/ora_01_biny_01 -igroup ora_01 -vserver svm_ora -lun-id 0
    lun map -path /vol/ora_01_data/ora_01_data_01 -igroup ora_01 -vserver svm_ora -lun-id 1
    lun map -path /vol/ora_01_data/ora_01_data_02 -igroup ora_01 -vserver svm_ora -lun-id 2
    lun map -path /vol/ora_01_data/ora_01_data_03 -igroup ora_01 -vserver svm_ora -lun-id 3
    lun map -path /vol/ora_01_data/ora_01_data_04 -igroup ora_01 -vserver svm_ora -lun-id 4
    lun map -path /vol/ora_01_logs/ora_01_logs_01 -igroup ora_01 -vserver svm_ora -lun-id 5
    lun map -path /vol/ora_01_logs/ora_01_logs_02 -igroup ora_01 -vserver svm_ora -lun-id 6
  10. 驗證 LUN 對應。

    mapping show

    預計回傳結果如下:

    FsxId02ad7bf3476b741df::> mapping show
      (lun mapping show)
    Vserver    Path                                      Igroup   LUN ID  Protocol
    ---------- ----------------------------------------  -------  ------  --------
    svm_ora    /vol/ora_01_biny/ora_01_biny_01           ora_01        0  iscsi
    svm_ora    /vol/ora_01_data/ora_01_data_01           ora_01        1  iscsi
    svm_ora    /vol/ora_01_data/ora_01_data_02           ora_01        2  iscsi
    svm_ora    /vol/ora_01_data/ora_01_data_03           ora_01        3  iscsi
    svm_ora    /vol/ora_01_data/ora_01_data_04           ora_01        4  iscsi
    svm_ora    /vol/ora_01_logs/ora_01_logs_01           ora_01        5  iscsi
    svm_ora    /vol/ora_01_logs/ora_01_logs_02           ora_01        6  iscsi

資料庫儲存配置

Details

現在,在 EC2 執行個體主機上匯入並設定 Oracle 網格基礎架構和資料庫安裝的 FSx 儲存。

  1. 使用您的 SSH 金鑰和 EC2 執行個體 IP 位址,以 ec2-user 身分透過 SSH 登入 EC2 執行個體。

    ssh -i ora_01.pem ec2-user@172.30.15.58
  2. 使用 SVM iSCSI IP 位址發現 FSx iSCSI 端點。然後變更為特定於您的環境的入口網站地址。

    sudo iscsiadm iscsiadm --mode discovery --op update --type sendtargets --portal 172.30.15.51
  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: 172.30.15.51,3260]
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 172.30.15.13,3260]
    Login to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 172.30.15.51,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:sn.1f795e65c74911edb785affbf0a2b26e:vs.3, portal: 172.30.15.13,3260] successful.
  4. 查看並驗證活動 iSCSI 會話清單。

    sudo iscsiadm --mode session

    傳回 iSCSI 會話。

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

    sudo sanlun lun show

    這將傳回來自 FSx 的 Oracle LUN 清單。

    [ec2-user@ip-172-30-15-58 ~]$ sudo sanlun lun show
    controller(7mode/E-Series)/                                   device          host                  lun
    vserver(cDOT/FlashRay)        lun-pathname                    filename        adapter    protocol   size    product
    
    svm_ora                       /vol/ora_01_logs/ora_01_logs_02 /dev/sdn        host3      iSCSI      40g     cDOT
    svm_ora                       /vol/ora_01_logs/ora_01_logs_01 /dev/sdm        host3      iSCSI      40g     cDOT
    svm_ora                       /vol/ora_01_data/ora_01_data_03 /dev/sdk        host3      iSCSI      20g     cDOT
    svm_ora                       /vol/ora_01_data/ora_01_data_04 /dev/sdl        host3      iSCSI      20g     cDOT
    svm_ora                       /vol/ora_01_data/ora_01_data_01 /dev/sdi        host3      iSCSI      20g     cDOT
    svm_ora                       /vol/ora_01_data/ora_01_data_02 /dev/sdj        host3      iSCSI      20g     cDOT
    svm_ora                       /vol/ora_01_biny/ora_01_biny_01 /dev/sdh        host3      iSCSI      40g     cDOT
    svm_ora                       /vol/ora_01_logs/ora_01_logs_02 /dev/sdg        host2      iSCSI      40g     cDOT
    svm_ora                       /vol/ora_01_logs/ora_01_logs_01 /dev/sdf        host2      iSCSI      40g     cDOT
    svm_ora                       /vol/ora_01_data/ora_01_data_04 /dev/sde        host2      iSCSI      20g     cDOT
    svm_ora                       /vol/ora_01_data/ora_01_data_02 /dev/sdc        host2      iSCSI      20g     cDOT
    svm_ora                       /vol/ora_01_data/ora_01_data_03 /dev/sdd        host2      iSCSI      20g     cDOT
    svm_ora                       /vol/ora_01_data/ora_01_data_01 /dev/sdb        host2      iSCSI      20g     cDOT
    svm_ora                       /vol/ora_01_biny/ora_01_biny_01 /dev/sda        host2      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 集群,檢索以 6c574xxx…​ 開頭的每個 LUN 的序列十六進制數,十六進制數以 3600a0980 開頭,這是 AWS 供應商 ID。

    lun show -fields serial-hex

    並傳回如下結果:

    FsxId02ad7bf3476b741df::> lun show -fields serial-hex
    vserver path                            serial-hex
    ------- ------------------------------- ------------------------
    svm_ora /vol/ora_01_biny/ora_01_biny_01 6c574235472455534e68512d
    svm_ora /vol/ora_01_data/ora_01_data_01 6c574235472455534e685141
    svm_ora /vol/ora_01_data/ora_01_data_02 6c574235472455534e685142
    svm_ora /vol/ora_01_data/ora_01_data_03 6c574235472455534e685143
    svm_ora /vol/ora_01_data/ora_01_data_04 6c574235472455534e685144
    svm_ora /vol/ora_01_logs/ora_01_logs_01 6c574235472455534e685145
    svm_ora /vol/ora_01_logs/ora_01_logs_02 6c574235472455534e685146
    7 entries were displayed.
  9. 更新 `/dev/multipath.conf`檔案來為多路徑設備添加一個用戶友好的名稱。

    sudo vi /etc/multipath.conf

    包含以下條目:

    multipaths {
            multipath {
                    wwid            3600a09806c574235472455534e68512d
                    alias           ora_01_biny_01
            }
            multipath {
                    wwid            3600a09806c574235472455534e685141
                    alias           ora_01_data_01
            }
            multipath {
                    wwid            3600a09806c574235472455534e685142
                    alias           ora_01_data_02
            }
            multipath {
                    wwid            3600a09806c574235472455534e685143
                    alias           ora_01_data_03
            }
            multipath {
                    wwid            3600a09806c574235472455534e685144
                    alias           ora_01_data_04
            }
            multipath {
                    wwid            3600a09806c574235472455534e685145
                    alias           ora_01_logs_01
            }
            multipath {
                    wwid            3600a09806c574235472455534e685146
                    alias           ora_01_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_01_biny_01 -> ../dm-0
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_01_data_01 -> ../dm-1
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_01_data_02 -> ../dm-2
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_01_data_03 -> ../dm-3
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_01_data_04 -> ../dm-4
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_01_logs_01 -> ../dm-5
    lrwxrwxrwx 1 root root       7 Mar 21 20:41 ora_01_logs_02 -> ../dm-6
  11. 使用單一主分割區對二進位 LUN 進行分割。

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

    sudo mkfs.xfs /dev/mapper/ora_01_biny_01p1
  13. 掛載二進位 LUN 到 /u01

    sudo mount -t xfs /dev/mapper/ora_01_biny_01p1 /u01
  14. 改變 `/u01`掛載點所有權歸 Oracle 使用者及其關聯的主要群組。

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

    sudo blkid /dev/mapper/ora_01_biny_01p1
  16. 新增掛載點 /etc/fstab

    sudo vi /etc/fstab

    新增以下行。

    UUID=d89fb1c9-4f89-4de4-b4d9-17754036d11d       /u01    xfs     defaults,nofail 0       2
    註 重要的是僅使用 UUID 和 nofail 選項掛載二進位文件,以避免 EC2 執行個體重新啟動期間可能出現的根鎖定問題。
  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 以 ec2-user 身分登入 EC2 實例,並透過取消註解來啟用密碼驗證 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=dba
    oracle.install.asm.OSOPER=oper
    oracle.install.asm.OSASM=asm
    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_01_data_01,/dev/mapper/ora_01_data_02,/dev/mapper/ora_01_data_03,/dev/mapper/ora_01_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/grid
    export ORACLE_BASE=/tmp
    cd /u01/app/oracle/product/19.0.0/grid/bin
  13. 提供磁碟設備以供 Oracle ASM 過濾器驅動程式使用。

     ./asmcmd afd_label DATA01 /dev/mapper/ora_01_data_01 --init
    
     ./asmcmd afd_label DATA02 /dev/mapper/ora_01_data_02 --init
    
     ./asmcmd afd_label DATA03 /dev/mapper/ora_01_data_03 --init
    
     ./asmcmd afd_label DATA04 /dev/mapper/ora_01_data_04 --init
    
     ./asmcmd afd_label LOGS01 /dev/mapper/ora_01_logs_01 --init
    
     ./asmcmd afd_label LOGS02 /dev/mapper/ora_01_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 /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

    忽略電網基礎設施錯誤群組的警告。我們使用單一 Oracle 使用者來管理 Oracle Restart,因此這是預料之中的。

  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 使用者身份,從 $GRID_HOME 建立 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
    +
    Name                Target  State        Server                   State details
    Local Resources
    ora.DATA.dg         ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.LISTENER.lsnr   ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.LOGS.dg         ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.asm             ONLINE  ONLINE       ip-172-30-15-58          Started,STABLE
    ora.ons             OFFLINE OFFLINE      ip-172-30-15-58          STABLE
    Cluster Resources
    ora.cssd            ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.diskmon         OFFLINE OFFLINE                               STABLE
    ora.driver.afd      ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.evmd            ONLINE  ONLINE       ip-172-30-15-58          STABLE
  23. 驗證 ASM 過濾器驅動程式狀態。

    [oracle@ip-172-30-15-58 grid]$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid
    [oracle@ip-172-30-15-58 grid]$ export ORACLE_SID=+ASM
    [oracle@ip-172-30-15-58 grid]$ export PATH=$PATH:$ORACLE_HOME/bin
    [oracle@ip-172-30-15-58 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  1048576     81920    81847                0           81847              0             N  DATA/
    MOUNTED  EXTERN  N         512             512   4096  1048576     81920    81853                0           81853              0             N  LOGS/
    ASMCMD> afd_state
    ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host 'ip-172-30-15-58.ec2.internal'

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/db1
    cd /u01/app/oracle/product/19.0.0/db1
  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 p34765931_190000_Linux-x86-64.zip
  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/db1
    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. 從 db1 home /u01/app/oracle/product/19.0.0/db1 執行靜默純軟體 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=db1.demo.netapp.com
    sid=db1
    createAsContainerDatabase=true
    numberOfPDBs=3
    pdbName=db1_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 使用者身份,從 $ORACLE_HOME 目錄,使用 dbca 啟動 DB 建立。

    bin/dbca -silent -createDatabase -responseFile /tmp/archive/dbca.rsp
    
    output:
    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/db1.
    Database Information:
    Global Database Name:db1.demo.netapp.com
    System Identifier(SID):db1
    Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db1/db1.log" for further details.
  13. 以 Oracle 使用者身份,在建立資料庫後驗證 Oracle Restart HA 服務。

    [oracle@ip-172-30-15-58 db1]$ ../grid/bin/crsctl stat res -t
    
    Name           	Target  State        Server                   State details
    
    Local Resources
    
    ora.DATA.dg		ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.LISTENER.lsnr	ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.LOGS.dg		ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.asm		ONLINE  ONLINE       ip-172-30-15-58          Started,STABLE
    ora.ons		OFFLINE OFFLINE      ip-172-30-15-58          STABLE
    
    Cluster Resources
    
    ora.cssd        	ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.db1.db		ONLINE  ONLINE       ip-172-30-15-58          Open,HOME=/u01/app/oracle/product/19.0.0/db1,STABLE
    ora.diskmon		OFFLINE OFFLINE                               STABLE
    ora.driver.afd	ONLINE  ONLINE       ip-172-30-15-58          STABLE
    ora.evmd		ONLINE  ONLINE       ip-172-30-15-58          STABLE
  14. 設定 Oracle 用戶 .bash_profile

    vi ~/.bash_profile
  15. 新增以下條目:

    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/db1
    export ORACLE_SID=db1
    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'
  16. 驗證已建立的 CDB/PDB。

    source /home/oracle/.bash_profile
    
    sqlplus / as sysdba
    
    SQL> select name, open_mode from v$database;
    
    NAME      OPEN_MODE
    
    DB1       READ WRITE
    
    SQL> select name from v$datafile;
    
    NAME
    
    +DATA/DB1/DATAFILE/system.256.1132176177
    +DATA/DB1/DATAFILE/sysaux.257.1132176221
    +DATA/DB1/DATAFILE/undotbs1.258.1132176247
    +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.265.1132177009
    +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.266.1132177009
    +DATA/DB1/DATAFILE/users.259.1132176247
    +DATA/DB1/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.267.1132177009
    +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/system.271.1132177853
    +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/sysaux.272.1132177853
    +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/undotbs1.270.1132177853
    +DATA/DB1/F7852758DCD6B800E0533A0F1EAC1DC6/DATAFILE/users.274.1132177871
    
    NAME
    
    +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/system.276.1132177871
    +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/sysaux.277.1132177871
    +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/undotbs1.275.1132177871
    +DATA/DB1/F785288BBCD1BA78E0533A0F1EACCD6F/DATAFILE/users.279.1132177889
    +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/system.281.1132177889
    +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/sysaux.282.1132177889
    +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/undotbs1.280.1132177889
    +DATA/DB1/F78529A14DD8BB18E0533A0F1EACB8ED/DATAFILE/users.284.1132177907
    
    19 rows selected.
    
    SQL> show pdbs
    
        CON_ID CON_NAME                       OPEN MODE  RESTRICTED
    
             2 PDB$SEED                       READ ONLY  NO
             3 DB1_PDB1                       READ WRITE NO
             4 DB1_PDB2                       READ WRITE NO
             5 DB1_PDB3                       READ WRITE NO
    SQL>
  17. 將 DB 復原目標大小設定為 +LOGS 磁碟組大小。

    alter system set db_recovery_file_dest_size = 80G scope=both;
  18. 使用sqlplus登入資料庫並啟用存檔日誌模式。

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

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

使用SnapCenter服務備份、復原和克隆 Oracle 資料庫

"適用於 Oracle 的SnapCenter服務"有關使用NetApp BlueXP控制台備份、還原和克隆 Oracle 資料庫的詳細資訊。