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

TR-4965 :使用 iSCSI/ASM 的 AWS FSS/EC2 中的 Oracle 資料庫部署與保護

貢獻者

NetApp公司的Alleno Cao、Niyazz Mohamed

此解決方案提供 AWS FSX ONTAP 儲存設備中 Oracle 資料庫部署與保護的概觀與詳細資料、以及使用磁碟區管理程式在獨立重新啟動時設定 iSCSI 傳輸協定和 Oracle 資料庫的 EC2 運算執行個體。

目的

ASM (自動儲存管理)是許多 Oracle 安裝中常用的 Oracle 儲存 Volume Manager 。這也是 Oracle 推薦的儲存管理解決方案。它是傳統 Volume 管理程式和檔案系統的替代方案。從 Oracle 11g 版開始、 ASM 就會隨附網格基礎架構、而非資料庫。因此、若要在沒有 RAC 的情況下使用 Oracle ASM 進行儲存管理、您必須在獨立伺服器中安裝 Oracle 網格基礎架構、也稱為 Oracle 重新啟動。這樣做肯定會增加 Oracle 資料庫部署的複雜度。不過、顧名思義、當 Oracle 部署在重新啟動模式時、故障的 Oracle 服務會透過網格基礎架構自動重新啟動、或在主機重新開機之後、而無需使用者介入、這會提供一定程度的高可用度或 HA 功能。

在本文件中、我們將示範如何在 Amazon FSX ONTAP 儲存環境中使用 iSCSI 傳輸協定和 Oracle ASM 部署 Oracle 資料庫、以及如何使用 EC2 運算執行個體。我們也示範如何透過 NetApp BlueXP 主控台使用 NetApp SnapCenter 服務來備份、還原及複製您的 Oracle 資料庫、以供開發 / 測試、或是在 AWS 公有雲中執行儲存效率資料庫作業的其他使用案例。

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

  • 在 Amazon FSX ONTAP 儲存設備和 EC2 運算執行個體中部署 Oracle 資料庫、並搭配 ISCSI/ASM

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

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

目標對象

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

  • DBA 希望使用 iSCSI/ASM 在 AWS 公有雲中部署 Oracle 。

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

  • 想要部署及管理部署至 AWS FSX 儲存設備的 Oracle 資料庫的儲存管理員。

  • 想要在 AWS FS3/EC2 中備份 Oracle 資料庫的應用程式擁有者。

解決方案測試與驗證環境

此解決方案的測試與驗證作業是在AWS FSX和EC2環境中執行、而該環境可能與最終部署環境不符。如需詳細資訊、請參閱一節 部署考量的關鍵因素

架構

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

硬體與軟體元件

硬體

FSX ONTAP 支援儲存

AWS 提供的目前版本

同一個 VPC 和可用區域中的一個 FSX HA 叢集

EC2運算執行個體

T2.xlarge / 4vcpU/16G

兩個 EC2 T2 大型 EC2 執行個體、一個做為主要資料庫伺服器、另一個做為複製資料庫伺服器

軟體

RedHat Linux

RHEL-8.6.0_HVM-20220504-x86_64:2-Hourly2-GP2

已部署RedHat訂閱以進行測試

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

版本

v2.3.1.2324

部署考量的關鍵因素

  • * EC2 運算執行個體。 * 在這些測試與驗證中、我們使用 AWS EC2 T2.xlge 執行個體類型來執行 Oracle 資料庫運算執行個體。NetApp 建議在正式作業部署中使用 M5 類型 EC2 執行個體作為 Oracle 的運算執行個體、因為它已針對資料庫工作負載進行最佳化。您必須根據實際工作負載需求、適當調整 EC2 執行個體的 vCPU 數量和 RAM 數量。

  • * FSX儲存HA叢集單一或多區域部署。*在這些測試與驗證中、我們在單一AWS可用性區域中部署了FSXHA叢集。對於正式作業部署、NetApp建議在兩個不同的可用度區域中部署一組FSXHA配對。FSXHA叢集會以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 也建議將四個 iSCSI 連線分配給兩個 FSX iSCSI 端點、並正確設定多重路徑。

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

  • * 資料庫備份。 * NetApp 提供 SnapCenter 軟體服務的 SaaS 版本、可在雲端中進行資料庫備份、還原及複製、並可透過 NetApp BlueXP 主控台 UI 取得。NetApp 建議實作這樣的服務、以快速(一分鐘內)進行快照備份、快速(幾分鐘)資料庫還原和資料庫複製。

解決方案部署

下節提供逐步部署程序。

部署的先決條件

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. 您可以使用下列 Terraform 自動化工具組來執行步驟 2 和 3 、此工具組會建立名為的 EC2 執行個體 ora_01 以及名為的 FSX 檔案系統 fsx_01。請仔細檢閱指示內容、並在執行前變更變數以符合您的環境。

    git clone https://github.com/NetApp-Automation/na_aws_fsx_ec2_deploy.git
註 請確定您已在 EC2 執行個體根磁碟區中至少分配 50g 、以便有足夠的空間來存放 Oracle 安裝檔案。

EC2 執行個體核心組態

Details

在已配置先決條件的情況下、以 EC2 使用者和 Sudo to root 使用者的身分登入 EC2 執行個體、以設定 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. 停用目前系統中的透明 hugepages 。

    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=enforcingSELINUX=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 群組、以用於 asm sysasm 群組。

    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 叢集、並使用 FSX 叢集管理 IP 來裝載 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

現在、匯入並設定適用於 Oracle 網格基礎架構的 FSX 儲存設備、以及在 EC2 執行個體主機上安裝資料庫。

  1. 使用 SSH 金鑰和 EC2 執行個體 IP 位址、以 EC2 使用者的身分透過 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. 以 fsxadmin 使用者的身分透過 SSH 登入 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. 以 EC2 使用者的身分透過 SSH 登入 EC2 執行個體、並取消註解以啟用密碼驗證 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=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_HOMEORACLE_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. 從網格主頁 /u01/app/oracle/product/19.0/grrid 和 Oracle 使用者的身分啟動 gridSetup.sh 適用於網格基礎架構安裝。

     ./gridSetup.sh -applyRU /tmp/archive/34762026/ -silent -responseFile /tmp/archive/gridsetup.rsp

    忽略有關網格基礎架構錯誤群組的警告。我們使用單一 Oracle 使用者來管理 Oracle 重新啟動、因此這是正常情況。

  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
    +
    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. Valiate 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. 從 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 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 主目錄 /u01/app/oracle/product/19.0/db1 執行無訊息軟體專屬資料庫安裝。

     ./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 使用者、請使用 dbca 來建立資料庫。

    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 重新啟動 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 。

    /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;

這將完成在 Amazon FSX ONTAP 和 EC2 運算執行個體上的 Oracle 19c 版本 19.18 重新啟動部署。如有需要、 NetApp 建議將 Oracle 控制檔和線上記錄檔重新定位至 +logs 磁碟群組。

使用 SnapCenter 服務備份、還原及複製 Oracle 資料庫

請參閱 "適用於 Oracle 的 SnapCenter 服務" 如需使用 NetApp BlueXP 主控台備份、還原及複製 Oracle 資料庫的詳細資訊、