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

Azure VM和Azure NetApp Files 整套Oracle部署程序

貢獻者

透過Azure入口網站主控台部署Azure VM搭配Anf for Oracle

如果您是Azure新手、首先需要設定Azure帳戶環境。這包括註冊貴組織以使用Azure Active Directory。下一節是這些步驟的摘要。如需詳細資料、請參閱連結的Azure專屬文件。

建立及使用Azure資源

設定Azure環境並建立帳戶並與訂閱建立關聯之後、您就可以使用帳戶登入Azure入口網站、以建立執行Oracle所需的資源。

1.建立虛擬網路或vnet

Azure Virtual Network(vnet)是Azure中私有網路的基礎建置區塊。Vnet可讓Azure虛擬機器(VM)等多種Azure資源、安全地彼此通訊、網際網路及內部部署網路。在佈建Azure VM之前、必須先設定Vnet(部署VM的位置)。

請參閱 "使用Azure入口網站建立虛擬網路" 以建立vnet。

2.建立NetApp儲存帳戶和容量資源池

在此部署案例中、Azure VM OS是使用一般Azure儲存設備進行配置、但會配置Anf Volume以透過NFS執行Oracle資料庫。首先、您需要建立NetApp儲存帳戶和容量集區來裝載儲存磁碟區。

請參閱 "設定Azure NetApp Files 功能以建立NFS Volume" 設定ANF容量資源池。

3.為Oracle配置Azure VM

根據您的工作負載、判斷您需要哪種Azure VM、以及要為Oracle部署的VM vCPU和RAM大小。然後從Azure主控台按一下VM圖示、啟動VM部署工作流程。

  1. 在Azure VM頁面上、按一下* Create*、然後選擇* Azure虛擬機器*。

    此螢幕快照顯示可用Azure VM的清單。

  2. 選擇部署的訂閱ID、然後選擇資源群組、區域、主機名稱、VM映像、大小、和驗證方法。移至「磁碟」頁面。

    此螢幕快照顯示「建立虛擬機器」頁面的輸入。
    此螢幕快照顯示「建立虛擬機器」頁面的其他輸入。

  3. 選擇*優質SSD *作為OS本機備援、並保留資料磁碟空白、因為資料磁碟是從ANF儲存設備掛載。前往「Networking(網路)」頁面。

    此快照顯示「Create a Virtual Machine Disk」(建立虛擬機器磁碟)頁面的輸入。

  4. 選擇vnet和子網路。分配用於外部VM存取的公有IP。然後前往「管理」頁面。

    此螢幕快照顯示「建立虛擬機器」頁面的進一步輸入。

  5. 保留管理的所有預設值、並移至「進階」頁面。

    此快照顯示「建立虛擬機器管理」頁面的輸入。

  6. 保留「進階」頁面的所有預設值、除非您在部署後需要使用自訂指令碼自訂VM。然後前往「標記」頁面。

    此快照顯示「建立虛擬機器進階」頁面的輸入。

  7. 視需要為VM新增標記。接著前往「檢閱+建立」頁面。

    此快照顯示「建立虛擬機器標記」頁面的輸入。

  8. 部署工作流程會在組態上執行驗證、如果驗證通過、請按一下「建立」以建立VM。

    「此螢幕快照顯示「建立虛擬機器檢閱與建立」頁面的輸入內容。」

4.為Oracle配置ANF資料庫磁碟區

您必須分別為Oracle二進位、資料和記錄磁碟區的ANF容量集區建立三個NFS磁碟區。

  1. 在Azure主控台的Azure服務清單下、按Azure NetApp Files 一下「功能」以開啟Volume建立工作流程。如果您有多個ANF儲存帳戶、請按一下您要配置磁碟區的帳戶。

    此螢幕快照會顯示Azure服務頁面、並反白顯示ANF。

  2. 在您的NetApp儲存帳戶下、按一下* Volumes 、然後按 Add Volume*建立新的Oracle Volume。

    此螢幕快照顯示NetApp儲存帳戶的登陸畫面。
    此螢幕快照顯示NetApp儲存帳戶可用的磁碟區。

  3. 最佳做法是先識別Oracle磁碟區、並以VM主機名稱做為前置詞、接著識別主機上的掛載點、例如u01表示Oracle二進位檔、u02表示Oracle資料、u03表示Oracle記錄檔。為磁碟區選擇與VM相同的vnet。按一下*下一步:傳輸協定>*。

    Volume Creation(Volume建立)畫面。

  4. 選擇NFS傳輸協定、將Oracle主機IP位址新增至允許的用戶端、然後移除允許所有IP位址0.00.0.0/0的預設原則。然後單擊*下一步:標記>*。

    Volume Creation(Volume建立)畫面上的Protocol輸入。

  5. 視需要新增Volume標記。然後按一下*檢閱+建立>*。

    標記在Volume Creation(Volume建立)畫面上輸入的內容。

  6. 如果驗證通過、請按一下*「Create」(建立)*以建立磁碟區。

    檢閱並建立Volume建立畫面的階段。

在Azure VM上安裝及設定Oracle

NetApp解決方案團隊已建立許多以Ansible為基礎的自動化工具套件、協助您順利在Azure中部署Oracle。請遵循下列步驟、在Azure VM上部署Oracle。

設定Ansible控制器

如果您尚未設定Ansible控制器、請參閱 "NetApp解決方案自動化",詳細說明如何設定Ansible控制器。

取得Oracle部署自動化工具套件

在主目錄中的使用者ID下複製Oracle部署工具套件複本、以供登入Ansible控制器。

git clone https://github.com/NetApp-Automation/na_oracle19c_deploy.git

使用您的組態執行工具組

請參閱 "CLI部署Oracle 19c資料庫" 使用CLI執行方針。從Azure主控台建立資料庫Volume時、您可以忽略ONTAP 全域VARS檔案中的變數組態的部分、而非從CLI建立資料庫Volume。

註 此工具套件預設部署Oracle 19c搭配RU 19.8。只要稍微變更預設組態、就能輕鬆調整為其他任何修補程式層級。此外、預設的基礎資料庫作用中記錄檔也會部署到資料Volume中。如果您需要在記錄磁碟區上使用中的記錄檔、則應在初始部署之後重新放置。如有需要、請聯絡NetApp解決方案團隊尋求協助。

設定AzAcSnap備份工具、為Oracle提供應用程式一致的快照

Azure應用程式一致的Snapshot工具(AzAcSnap)是一種命令列工具、可處理所有必要的協調作業、將第三方資料庫置於應用程式一致的狀態之後、再進行儲存快照、藉此保護資料。然後將這些資料庫傳回作業狀態。NetApp建議在資料庫伺服器主機上安裝此工具。請參閱下列安裝與組態程序。

安裝AzAcSnap工具

  1. 取得最新版本的 "AzArcSnap安裝程式"

  2. 將下載的自我安裝程式複製到目標系統。

  3. 使用預設安裝選項、以root使用者身分執行自我安裝程式。如有必要、請使用執行檔案 chmod +x *.run 命令。

     ./azacsnap_installer_v5.0.run -I

設定Oracle連線功能

Snapshot工具可與Oracle資料庫通訊、需要具備適當權限的資料庫使用者來啟用或停用備份模式。

1.設定AzAcSnap資料庫使用者

下列範例顯示Oracle資料庫使用者的設定、以及使用sqlplus與Oracle資料庫通訊。範例命令會在Oracle資料庫中設定使用者(AZACSNAP)、並視需要變更IP位址、使用者名稱和密碼。

  1. 從Oracle資料庫安裝啟動sqlplus以登入資料庫。

    su – oracle
    sqlplus / AS SYSDBA
  2. 建立使用者。

    CREATE USER azacsnap IDENTIFIED BY password;
  3. 授予使用者權限。此範例設定AZACSNAP使用者的權限、讓資料庫進入備份模式。

    GRANT CREATE SESSION TO azacsnap;
    GRANT SYSBACKUP TO azacsnap;
  4. 將預設使用者的密碼過期時間變更為無限。

    ALTER PROFILE default LIMIT PASSWORD_LIFE_TIME unlimited;
  5. 驗證資料庫的azacsnap連線能力。

    connect azacsnap/password
    quit;

2.設定Linux使用者的azacsnap、以便使用Oracle wallet存取資料庫

AzAcSnap預設安裝會建立azacsnap OS使用者。它的Bash Shell環境必須設定為使用儲存在Oracle電子錢包中的密碼來存取Oracle資料庫。

  1. 以root使用者身分執行 cat /etc/oratab 用於識別主機上的Oracle_Home和Oracle_SID變數的命令。

    cat /etc/oratab
  2. 將Oracle_Home、Oracle_SID、TNs_Admin和路徑變數新增至azacsnap使用者Bash設定檔。視需要變更變數。

    echo "export ORACLE_SID=ORATEST" >> /home/azacsnap/.bash_profile
    echo "export ORACLE_HOME=/u01/app/oracle/product/19800/ORATST" >> /home/azacsnap/.bash_profile
    echo "export TNS_ADMIN=/home/azacsnap" >> /home/azacsnap/.bash_profile
    echo "export PATH=\$PATH:\$ORACLE_HOME/bin" >> /home/azacsnap/.bash_profile
  3. 身為Linux使用者azacsnap、請建立錢包。系統會提示您輸入電子錢包密碼。

    sudo su - azacsnap
    
    mkstore -wrl $TNS_ADMIN/.oracle_wallet/ -create
  4. 將連線字串認證新增至Oracle Wallet。在以下命令範例中、AZACSNAP是AzAcSnap要使用的ConnectString、azacsnap是Oracle資料庫使用者、而AzPasswd1是Oracle使用者的資料庫密碼。系統會再次提示您輸入電子錢包密碼。

    mkstore -wrl $TNS_ADMIN/.oracle_wallet/ -createCredential AZACSNAP azacsnap AzPasswd1
  5. 建立 tnsnames-ora 檔案:在以下命令範例中、主機應設定為Oracle資料庫的IP位址、而伺服器SID應設定為Oracle資料庫SID。

    echo "# Connection string
    AZACSNAP=\"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.30.137.142)(PORT=1521))(CONNECT_DATA=(SID=ORATST)))\"
    " > $TNS_ADMIN/tnsnames.ora
  6. 建立 sqlnet.ora 檔案:

    echo "SQLNET.WALLET_OVERRIDE = TRUE
    WALLET_LOCATION=(
        SOURCE=(METHOD=FILE)
        (METHOD_DATA=(DIRECTORY=\$TNS_ADMIN/.oracle_wallet))
    ) " > $TNS_ADMIN/sqlnet.ora
  7. 使用電子錢包測試Oracle存取。

    sqlplus /@AZACSNAP as SYSBACKUP

    命令的預期輸出:

    [azacsnap@acao-ora01 ~]$ sqlplus /@AZACSNAP as SYSBACKUP
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Thu Sep 8 18:02:07 2022
    Version 19.8.0.0.0
    
    Copyright (c) 1982, 2019, Oracle.  All rights reserved.
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.8.0.0.0
    
    SQL>

設定ANF連線功能

本節說明如何啟用Azure NetApp Files 與NetApp(與VM)的通訊。

  1. 在Azure Cloud Shell工作階段中、請確定您已登入訂閱、且您想要在預設情況下與服務主體建立關聯。

    az account show
  2. 如果訂閱不正確、請使用下列命令:

    az account set -s <subscription name or id>
  3. 使用Azure CLI建立服務主體、如下列範例所示:

    az ad sp create-for-rbac --name "AzAcSnap" --role Contributor --scopes /subscriptions/{subscription-id} --sdk-auth

    預期輸出:

    {
      "clientId": "00aa000a-aaaa-0000-00a0-00aa000aaa0a",
      "clientSecret": "00aa000a-aaaa-0000-00a0-00aa000aaa0a",
      "subscriptionId": "00aa000a-aaaa-0000-00a0-00aa000aaa0a",
      "tenantId": "00aa000a-aaaa-0000-00a0-00aa000aaa0a",
      "activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
      "resourceManagerEndpointUrl": "https://management.azure.com/",
      "activeDirectoryGraphResourceId": "https://graph.windows.net/",
      "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
      "galleryEndpointUrl": "https://gallery.azure.com/",
      "managementEndpointUrl": "https://management.core.windows.net/"
    }
  4. 將輸出內容剪貼到名為的檔案中 oracle.json 儲存在Linux使用者azacsnap使用者bin目錄中、並以適當的系統權限保護檔案。

註 請確定Json檔案的格式完全符合上述說明、尤其是在以雙引號(")括住的URL中。

完成AzAcSnap工具的設定

請依照下列步驟設定及測試快照工具。測試成功之後、您可以執行第一個資料庫一致的儲存快照。

  1. 變更快照使用者帳戶。

    su - azacsnap
  2. 變更命令的位置。

    cd /home/azacsnap/bin/
  3. 設定儲存備份詳細資料檔案。這會建立一個 azacsnap.json 組態檔。

    azacsnap -c configure –-configuration new

    三個Oracle Volume的預期輸出:

    [azacsnap@acao-ora01 bin]$ azacsnap -c configure --configuration new
    Building new config file
    Add comment to config file (blank entry to exit adding comments): Oracle snapshot bkup
    Add comment to config file (blank entry to exit adding comments):
    Enter the database type to add, 'hana', 'oracle', or 'exit' (for no database): oracle
    
    === Add Oracle Database details ===
    Oracle Database SID (e.g. CDB1): ORATST
    Database Server's Address (hostname or IP address): 172.30.137.142
    Oracle connect string (e.g. /@AZACSNAP): /@AZACSNAP
    
    === Azure NetApp Files Storage details ===
    Are you using Azure NetApp Files for the database? (y/n) [n]: y
    --- DATA Volumes have the Application put into a consistent state before they are snapshot ---
    Add Azure NetApp Files resource to DATA Volume section of Database configuration? (y/n) [n]: y
    Full Azure NetApp Files Storage Volume Resource ID (e.g. /subscriptions/.../resourceGroups/.../providers/Microsoft.NetApp/netAppAccounts/.../capacityPools/Premium/volumes/...): /subscriptions/0efa2dfb-917c-4497-b56a-b3f4eadb8111/resourceGroups/ANFAVSRG/providers/Microsoft.NetApp/netAppAccounts/ANFAVSAcct/capacityPools/CapPool/volumes/acao-ora01-u01
    Service Principal Authentication filename or Azure Key Vault Resource ID (e.g. auth-file.json or https://...): oracle.json
    Add Azure NetApp Files resource to DATA Volume section of Database configuration? (y/n) [n]: y
    Full Azure NetApp Files Storage Volume Resource ID (e.g. /subscriptions/.../resourceGroups/.../providers/Microsoft.NetApp/netAppAccounts/.../capacityPools/Premium/volumes/...): /subscriptions/0efa2dfb-917c-4497-b56a-b3f4eadb8111/resourceGroups/ANFAVSRG/providers/Microsoft.NetApp/netAppAccounts/ANFAVSAcct/capacityPools/CapPool/volumes/acao-ora01-u02
    Service Principal Authentication filename or Azure Key Vault Resource ID (e.g. auth-file.json or https://...): oracle.json
    Add Azure NetApp Files resource to DATA Volume section of Database configuration? (y/n) [n]: n
    --- OTHER Volumes are snapshot immediately without preparing any application for snapshot ---
    Add Azure NetApp Files resource to OTHER Volume section of Database configuration? (y/n) [n]: y
    Full Azure NetApp Files Storage Volume Resource ID (e.g. /subscriptions/.../resourceGroups/.../providers/Microsoft.NetApp/netAppAccounts/.../capacityPools/Premium/volumes/...): /subscriptions/0efa2dfb-917c-4497-b56a-b3f4eadb8111/resourceGroups/ANFAVSRG/providers/Microsoft.NetApp/netAppAccounts/ANFAVSAcct/capacityPools/CapPool/volumes/acao-ora01-u03
    Service Principal Authentication filename or Azure Key Vault Resource ID (e.g. auth-file.json or https://...): oracle.json
    Add Azure NetApp Files resource to OTHER Volume section of Database configuration? (y/n) [n]: n
    
    === Azure Managed Disk details ===
    Are you using Azure Managed Disks for the database? (y/n) [n]: n
    
    === Azure Large Instance (Bare Metal) Storage details ===
    Are you using Azure Large Instance (Bare Metal) for the database? (y/n) [n]: n
    
    Enter the database type to add, 'hana', 'oracle', or 'exit' (for no database): exit
    
    Editing configuration complete, writing output to 'azacsnap.json'.
  4. 身為azacsnap Linux使用者、請執行azacsnap測試命令進行Oracle備份。

    cd ~/bin
    azacsnap -c test --test oracle --configfile azacsnap.json

    預期輸出:

    [azacsnap@acao-ora01 bin]$ azacsnap -c test --test oracle --configfile azacsnap.json
    BEGIN : Test process started for 'oracle'
    BEGIN : Oracle DB tests
    PASSED: Successful connectivity to Oracle DB version 1908000000
    END   : Test process complete for 'oracle'
    [azacsnap@acao-ora01 bin]$
  5. 執行第一個Snapshot備份。

    azacsnap -c backup –-volume data --prefix ora_test --retention=1