教學課程:備份 Azure VM 中的 SAP HANA 資料庫

本教學課程說明如何將執行於 Azure VM 上的 SAP HANA 資料庫備份至 Azure 備份復原服務保存庫。 在本文章中,您將了解如何:

  • 建立和設定保存庫
  • 探索資料庫
  • 設定備份

這裡提供我們目前支援的所有案例。

必要條件

設定備份之前,請務必先執行下列動作:

  • 在與執行 SAP Hana 的 VM 相同的區域和訂用帳戶中識別或建立復原服務保存庫
  • 允許從 VM 到網際網路的連線,使其可連線到 Azure,如設定網路連線一節所述。
  • 確定 Azure Resoure Manager ARM_ VM 的 SAP Hana 伺服器 VM 名稱和資源群組名稱的合併長度未超過 84 個字元 (傳統 VM 的限制為 77 個字元)。 之所以有此限制,是因為服務會保留某些字元。
  • hdbuserstore 中應該會有一個金鑰符合下列準則:
    • 此金鑰應位於預設的 hdbuserstore 中。 預設值是已安裝之 SAP HANA 下的 <sid>adm 帳戶。
    • 針對 MDC,此金鑰應指向 NAMESERVER的 SQL 連接埠。 在 SDC 的案例中,則應指向 INDEXSERVER 的 SQL 連接埠
    • 此金鑰應具有新增和刪除使用者的認證
    • 請注意,您可以在成功執行預先註冊指令碼後刪除此金鑰
  • 您也可以選擇如上述步驟所述,建立 hdbuserstore 中現有 Hana 系統使用者的金鑰,而不是建立自訂金鑰。
  • 以根使用者身分,在安裝 HANA 的虛擬機器中執行 SAP HANA 備份設定指令碼 (預先註冊指令碼)。 此指令碼能讓 HANA 系統做好備份準備,並要求將您在上述步驟中建立的金鑰以輸入的形式傳遞。 若要瞭解如何將此輸入作為參數傳遞給指令碼,請參閱預先註冊指令碼的功能一節。 該節亦詳述了預先註冊指令碼的用途。
  • 如果您的 HANA 安裝程式使用私人端點,請使用 -sn 或 --skip-network-checks 參數來執行預先註冊指令碼

注意

預先註冊指令碼會為在 RHEL (7.4、7.6 及 7.7) 上執行的 SAP Hana 工作負載安裝 compat-unixODBC234,並為 RHEL 8.1 安裝 unixODBC此套件位於 RHEL for SAP Hana (適用於 RHEL 7 伺服器) SAP 解決方案 (RPM) 的更新服務存放庫 \(英文\)。 對於 Azure Marketplace RHEL 映像,存放庫是 rhui-rhel-sap-hana-for-rhel-7-server-rhui-e4s-rpms

了解備份與還原輸送量效能

透過 Backint 提供的 SAP HANA Azure VM 內部備份 (記錄和非記錄),會串流至 Azure 復原服務保存庫 (內部使用 Azure 儲存體 Blob),因此請務必了解此串流方法。

HANA 的 Backint 元件可提供「管道」(要讀取的管道,以及要寫入的管道),並連線到資料庫檔案所在的基礎磁碟,然後由 Azure 備份服務讀取,並傳輸至 Azure 復原服務保存庫 (此為遠端 Azure 儲存體帳戶)。 除了 Backint 原生的驗證檢查之外,Azure 備份服務也會執行總和檢查碼來驗證串流。 這些驗證可確保 Azure 復原服務保存庫中的資料確實可靠且可復原。

因為串流主要涉及磁碟,所以您必須了解讀取的磁碟效能和網路效能以傳輸備份資料,從而量測備份和還原效能。 請參閱此篇文章,以深入了解 Azure VM 中的磁碟/網路輸送量和效能。 上述內容也適用於備份和還原效能。

Azure 備份服務針對非記錄備份 (例如完整備份、差異備份和增量備份),會嘗試達到最高每秒 420 MB 的速度,而 HANA 的記錄備份則最高為每秒 100 MB。 如上所述,無法保證絕對能達成這些速度,且會取決於下列因素:

  • VM 未快取的磁碟輸送量上限:從資料區域或記錄區域讀取。
  • 基礎磁碟類型和其輸送量:從資料區域或記錄區域讀取。
  • VM 的網路輸送量上限:寫入至復原服務保存庫。
  • VNET 是否具有 NVA/防火牆,此為網路輸送量
  • Azure NetApp 檔案上的資料/記錄 (從 ANF 讀取並寫入至保存庫) 是否會取用 VM 的網路。

重要

在較小規模的 VM 中,如果未快取的磁碟輸送量非常接近或小於每秒 400 MB,您需要注意備份服務所耗用的整體磁碟 IOPS,這可能會影響到 SAP Hana 的磁碟讀取/寫入相關作業。 在此情況下,如果想要節流或是以最大限制來控制備份服務的耗用量,您請參考下一節。

限制備份輸送量效能

如果您想要以最大值來節流備份服務磁碟的 IOPS 耗用量,請執行下列步驟。

  1. 前往 [opt/msawb/bin] 資料夾

  2. 建立名為 "ExtensionSettingsOverrides.JSON" 的新 JSON 檔案

  3. 將機碼值組新增至 JSON 檔案,如下所示:

    {
    "MaxUsableVMThroughputInMBPS": 120
    }
    
  4. 變更檔案的存取權限和擁有權,如下所示:

    chmod 750 ExtensionSettingsOverrides.json
    chown root:msawb ExtensionSettingsOverrides.json
    
  5. 不需要重新啟動任何服務。 Azure 備份服務將嘗試限制此檔案中所述的輸送量效能。

注意

如果未套用變更,請重新啟動資料庫。

預先註冊指令碼的功能

執行預先註冊指令碼時,會執行下列功能:

  • 根據您的 Linux 發行版本,指令碼會安裝或更新 Azure 備份代理程式所需的任何必要套件。
  • 會對 Azure 備份伺服器和相依服務 (如 Microsoft Entra ID 和 Azure 儲存體) 執行輸出網路連線檢查。
  • 這會使用必要條件中所述的自訂使用者金鑰或系統使用者金鑰,來登入您的 HANA 系統。 可用來在 HANA 系統中建立備份使用者 (AZUREWLBACKUPHANAUSER),且使用者金鑰可在預先註冊指令碼成功執行之後刪除。 請注意,您不得刪除系統使用者金鑰
  • 其會檢查並警告 /opt/msawb 資料夾是否放在根分割區中,且根分割區的大小為 2 GB。 指令碼建議您將根分割區大小增加到 4 GB,或將 /opt/msawb 資料夾移至有空間可成長到大小上限 4 GB 的不同位置。 請注意,如果您將 /opt/msawb 資料夾放在 2 GB 大小的根分割區中,可能會導致根分割區填滿並導致備份失敗。
  • AZUREWLBACKUPHANAUSER 會被指派下列必要的角色和權限:
    • 針對 MDC:資料庫管理員和備份管理員 (從 HANA 2.0 SPS05 開始):在還原期間建立新的資料庫。
    • 針對 SDC:備份管理員:在還原期間建立新的資料庫。
    • 目錄讀取:讀取備份目錄。
    • SAP_INTERNAL_HANA_SUPPORT:存取數個私人資料表。 只有低於 HANA 2.0 SPS04 Rev 46 的 SDC 和 MDC 版本才需要。 HANA 2.0 SPS04 Rev 46 和更高版本不需要此項目,由於我們現在會透過 HANA 小組的修正來取得公用資料表中的必要資訊。
  • 此指令碼會將金鑰新增至 AZUREWLBACKUPHANAUSER 的 hdbuserstore,供 HANA 備份外掛程式處理所有作業 (資料庫查詢、還原作業、設定和執行備份)。
  • 或者也可以選擇建立自己的自訂備份使用者。 請確定已將下列必要角色和權限指派給此使用者:
    • 針對 MDC:資料庫管理員和備份管理員 (從 HANA 2.0 SPS05 開始):在還原期間建立新的資料庫。
    • 針對 SDC:備份管理員:在還原期間建立新的資料庫。
    • 目錄讀取:讀取備份目錄。
    • SAP_INTERNAL_HANA_SUPPORT:存取數個私人資料表。 只有低於 HANA 2.0 SPS04 Rev 46 的 SDC 和 MDC 版本才需要。 HANA 2.0 SPS04 Rev 46 和更高版本不需要此項目,因為我們現在會透過 HANA 小組的修正來取得公用資料表中的必要資訊。
  • 接著將金鑰新增至自訂備份使用者中,供 HANA 備份外掛程式處理所有作業 (資料庫查詢、還原作業、設定和執行備份)。 將此自訂備份使用者金鑰以參數形式傳遞至指令碼:-bk CUSTOM_BACKUP_KEY_NAME-backup-key CUSTOM_BACKUP_KEY_NAME請注意,此自訂備份金鑰的密碼若是到期,可能會導致備份和還原失敗。
  • 如果您的 HANA <sid>adm 使用者是 Active Directory (AD) 使用者,請在 AD 中建立 msawb 群組,並將 <sid>adm 使用者新增至此群組。 您現在必須使用參數:-ad <SID>_ADM_USER or --ad-user <SID>_ADM_USER,在預先註冊的指令碼中指定 <sid>adm 為 AD 使用者。

注意

若要了解指令碼可接受的其他參數,請使用命令 bash msawb-plugin-config-com-sap-hana.sh --help

若要確認金鑰是否已建立,請使用 SIDADM 認證在 HANA 電腦上執行 HDBSQL 命令:

hdbuserstore list

命令輸出應該會顯示 {SID}{DBNAME} 金鑰,且使用者會顯示為 AZUREWLBACKUPHANAUSER。

注意

請確定您在 /usr/sap/{SID}/home/.hdb/ 下有一組唯一的 SSFS 檔案。 此路徑中應該只有一個資料夾。

以下會概略說明完成預先註冊指令碼執行的所需步驟。 請注意,在此流程中,我們會提供系統使用者金鑰做為預先註冊指令碼的輸入參數。

負責人 要執行的項目 註解
<sid>adm (OS) HANA OS 閱讀本教學課程,並下載預先註冊指令碼。 教學課程:將 HANA 資料庫備份至 Azure VM

下載預先註冊指令碼
<sid>adm (OS) HANA OS 啟動 HANA (HDB 啟動) 在設定之前,請確定 HANA 已經啟動且正在執行。
<sid>adm (OS) HANA OS 執行命令:
hdbuserstore Set
hdbuserstore Set SYSTEM <hostname>:3<Instance#>13 SYSTEM <password>

注意
請確定使用的是主機名稱,而不是 IP 位址/FQDN。
<sid>adm (OS) HANA OS 執行 命令:
hdbuserstore List
檢查結果是否包含預設存放區,如下所示:

KEY SYSTEM
ENV : <hostname>:3<Instance#>13
USER : SYSTEM
Root (OS) HANA OS 執行 AZURE 備份 HANA 預先註冊指令碼 ./msawb-plugin-config-com-sap-hana.sh -a --sid <SID> -n <Instance#> --system-key SYSTEM
<sid>adm (OS) HANA OS 執行命令:
hdbuserstore List
檢查結果是否包含新的行數,如下所示:

KEY AZUREWLBACKUPHANAUSER
ENV : localhost: 3<Instance#>13
USER: AZUREWLBACKUPHANAUSER
Azure 參與者 Azure 入口網站 設定 NSG、NVA、Azure 防火牆等,以允許輸出至 Azure 備份服務、Microsoft Entra ID 和 Azure 儲存體的流量。 設定網路連線
Azure 參與者 Azure 入口網站 建立或開啟復原服務保存庫,然後選取 HANA 備份。 尋找欲備份的所有目標 HANA VM。
Azure 參與者 Azure 入口網站 探索 HANA 資料庫並設定備份原則。 例如:

每週備份:每星期日上午 2:00、每週備份保留期為 12 週、每月備份保留期為 12 個月、每年備份保留期為 3 年
差異或增量:每天,星期日除外
記錄:每隔 15 分鐘,保留 35 天
Azure 參與者 Azure 入口網站 復原服務保存庫 – 備份項目 – SAP Hana 檢查備份工作 (Azure 工作負載)。
HANA 系統管理員 HANA Studio 檢查備份主控台、備份目錄、backup.log、backint.log 與 globa.ini SYSTEMDB 和租用戶資料庫。

成功執行預先註冊指令碼並驗證之後,您可以接著檢查連線需求,然後從復原服務保存庫設定備份

建立復原服務保存庫

復原服務保存庫是一個管理實體,可儲存一段時間內所建立的復原點,並提供介面以供執行備份相關作業。 這些作業包括製作隨選備份、執行還原,以及建立備份原則。

若要建立復原服務保存庫:

  1. 登入 Azure 入口網站

  2. 搜尋備份中心,然後移至 [備份中心] 儀表板。

    Screenshot that shows where to search for and select 'Backup center'.

  3. 在 [概觀] 窗格中,選取 [保存庫]

    Screenshot of the button for creating a Recovery Services vault.

  4. 選取 [復原服務保存庫]>[繼續]

    Screenshot that shows where to select Recovery Services as the vault type.

  5. 在 [復原服務保存庫] 窗格中,輸入下列值:

    • 訂用帳戶:選取要使用的訂用帳戶。 如果您是唯一一個訂用帳戶的成員,就會看到該名稱。 如果您不確定要使用哪個訂用帳戶,請使用預設的訂用帳戶。 只有在您的公司或學校帳戶與多個 Azure 訂用帳戶相關聯時,才會有多個選擇。

    • 資源群組:使用現有資源群組,或建立新的群組。 若要檢視訂用帳戶中可用的資源群組清單,請選取 [使用現有項目],然後在下拉式清單中選取資源。 若要建立新的資源群組,請選取 [新建],然後輸入名稱。 如需有關資源群組的詳細資訊,請參閱 Azure Resource Manager 概觀

    • 保存庫名稱:輸入自訂名稱以識別保存庫。 這個名稱對 Azure 訂用帳戶必須是唯一的。 指定的名稱至少要有 2 個字元,但不能超過 50 個字元。 名稱開頭必須是字母,且只能包含字母、數字和連字號。

    • 區域:選取保存庫的地理區域。 若要建立保存庫來協助保護任何資料來源,保存庫必須與資料來源位於相同區域。

      重要

      如果不確定資料來源的位置,請關閉視窗。 在入口網站中,移至您的資源清單。 如果您在多個區域中有資料來源,請為每個區域建立一個復原服務保存庫。 先在第一個位置建立保存庫,然後再於另一個位置建立保存庫。 不需要指定用來儲存備份資料的儲存體帳戶。 復原服務保存庫和 Azure 備份會自動處理該事宜。

    Screenshot that shows fields for configuring a Recovery Services vault.

  6. 提供值之後,選取 [檢閱 + 建立]

  7. 若要完成建立復原服務保存庫,請選取 [建立]

    建立復原服務保存庫可能需要一點時間。 監視右上角 [通知] 區域中的狀態通知。 保存庫建立之後,就會出現在復原服務保存庫的清單中。 如果保存庫未出現,請選取 [重新整理]

    Screenshot that shows the button for refreshing the list of backup vaults.

注意

Azure 備份現在支援不可變保存庫,可協助您確保復原點建立後,一直到其備份原則中設定的到期日前無法刪除。 您可以讓此不變性無法逆轉,以最大程度防止備份資料受到各種威脅,包括勒索軟體攻擊和惡意執行者。 深入了解

此時會建立復原服務保存庫。

啟用跨區域還原

在復原服務保存庫中,您可以啟用跨區域還原。 了解如何開啟跨區域還原

深入了解跨區域還原。

探索資料庫

  1. 在 Azure 入口網站中,移至 [備份中心],然後按一下 [+備份]

    Screenshot showing to start checking for SAP HANA databases.

  2. 選取 [Azure VM 中的 SAP Hana] 作為資料來源類型,選取要用於備份的復原服務保存庫,然後按一下 [繼續]

    Screenshot showing to select an SAP HANA database in Azure VM.

  3. 選取 [開始探索]。 這會對保存庫區域中未受保護的 Linux VM 起始探索。

    • 進行探索之後,未受保護的 VM 會出現在入口網站中,並依照名稱和資源群組列出。
    • 如果 VM 未如預期列出,請檢查該 VM 是否已備份在保存庫中。
    • 多個 VM 可以有相同名稱,但會屬於不同的資源群組。

    Screenshot showing to select Start Discovery.

  4. 在 [選取虛擬機器] 中選取連結,以下載提供權限讓 Azure 備份服務存取 SAP Hana VM 以進行資料庫探索的指令碼。

  5. 在每個裝載 SAP Hana 資料庫以進行備份的 VM 上執行指令碼。

  6. 在 VM 上執行指令碼後,在 [選取虛擬機器] 中選取 VM。 然後選取 [探索 DB]

  7. Azure 備份會探索 VM 上的所有 SAP HANA 資料庫。 在探索期間,Azure 備份會向保存庫註冊 VM,並在 VM 上安裝延伸模組。 資料庫上不會安裝代理程式。

    Screenshot showing the discovered SAP HANA databases.

設定備份

現在,啟用備份。

  1. 在步驟 2 中,選取 [設定備份]

    Screenshot showing to configure Backup.

  2. 在 [選取要備份的項目] 中,選取您想要保護的所有資料庫 >[確定]

    Screenshot showing to select databases to back up.

  3. 在 [備份原則]>[選擇備份原則] 中,根據下方指示,為資料庫建立新的備份原則。

    Screenshot showing to choose backup policy.

  4. 在建立原則後,在 [備份] 功能表上選取 [啟用備份]

    Screenshot showing how to enable backup.

建立備份原則

備份原則會定義備份的進行時間和備份的保留時間長度。

  • 原則會建立於保存庫層級上。
  • 多個保存庫可以使用相同的備份原則,但您必須將備份原則套用至每個保存庫。

注意

備份在 Azure VM 中執行的 SAP Hana 資料庫時,Azure 備份不會配合日光節約時間的變更自動調整。

請視需要手動修改原則。

指定原則設定,如下所示:

  1. 在 [原則名稱] 中,為新原則輸入名稱。 在此案例中,請輸入 SAPHANA

    Enter name for new policy

  2. 在 [完整備份原則] 中,選取 [備份頻率]。 您可以選擇 [每日] 或 [每週]。 在本教學課程中,我們選擇 [每日] 備份。

    Select a backup frequency

  3. 在 [保留範圍] 中,設定完整備份的保留期設定。

    • 依預設會選取所有選項。 請清除您不想要使用的任何保留範圍限制,並設定您要使用的限制。
    • 所有備份類型 (完整/差異/記錄) 的最小保留期間皆為七天。
    • 復原點會根據其保留範圍標記為保留。 例如,如果您選取每日完整備份,每天只會觸發一次完整備份。
    • 系統會根據每週保留範圍和設定,標記和保留特定日期的備份。
    • 每月和每年保留範圍會以類似方式運作。
  4. 在 [完整備份原則] 功能表中,選取 [確定] 接受設定。

  5. 然後,選取 [差異備份] 以新增差異原則。

  6. 在 [差異備份原則] 中,選取 [啟用] 以開啟頻率和保留控制項。 我們已啟用會在每週日凌晨 2:00 執行的差異備份,此備份會保留 30 天

    Differential backup policy

    注意

    您可以選擇 [差異] 或 [增量] 做為每日備份,但不能同時選擇兩者。

  7. 在 [增量備份原則] 中,選取 [啟用] 以開啟頻率和保留控制項。

    • 您每天最多可以觸發一次增量備份。
    • 增量備份最多可以保留 180 天。 如果您需要保留更久,則必須使用完整備份。

    Incremental backup policy

  8. 選取 [確定] 以儲存原則,然後返回主要 [備份原則] 功能表。

  9. 選取 [記錄備份],以新增交易記錄備份原則。

    • [記錄備份] 會預設為 [啟用]。 此選項無法停用,因為 SAP HANA 管理所有的記錄備份。
    • 我們將備份排程設為 2 小時,並將保留期間設為 15 天

    Log backup policy

    注意

    只有在順利完成一個完整備份後,記錄備份才會開始運作。

  10. 選取 [確定] 以儲存原則,然後返回主要 [備份原則] 功能表。

  11. 在完成備份原則的定義後,選取 [確定]

現在,您已成功設定 SAP HANA 資料庫的備份。

後續步驟