教學課程:在 Azure VM 中備份 SAP HANA 資料庫
本教學課程說明如何將 Azure VM 上執行的 SAP HANA 資料庫備份至 Azure 備份 復原服務保存庫。 在本文章中,您將了解如何:
- 建立及設定保存庫
- 探索資料庫
- 設定備份
以下是 我們目前支援的所有案例。
必要條件
設定備份之前,請確定您執行下列動作:
- 識別或建立 與執行 SAP HANA 之 VM 相同的區域和訂用帳戶中的復原服務保存庫 。
- 允許從 VM 連線到因特網,以便連線到 Azure,如設定網路連線一節中所述。
- 請確定 AZURE Resource Manager 的 SAP HANA 伺服器 VM 名稱和資源組名的合併長度不會超過 84 個字元(ARM_ VM 和傳統 VM 的 77 個字元)。 這項限制是因為服務會保留某些字元。
- 金鑰應該存在於符合下列準則的 hdbuserstore 中:
- 它應該出現在預設 hdbuserstore 中。 預設值是
<sid>adm
安裝 SAP HANA 的帳戶。 - 針對 MDC,金鑰應該指向 NAMESERVER 的 SQL 連接埠。 如果是 SDC,它應該指向 INDEXSERVER 的 SQL 埠
- 它應該有認證來新增和刪除使用者
- 請注意,在執行預先註冊腳本成功之後,可以刪除此密鑰
- 它應該出現在預設 hdbuserstore 中。 預設值是
- 您也可以選擇為 hdbuserstore 中現有的 HANA SYSTSEM 使用者建立金鑰,而不是建立如上一個步驟所列的自定義密鑰。
- 在安裝 HANA 的虛擬機中,以根使用者身分執行 SAP HANA 備份組態腳本(預先註冊腳本)。 此腳本 會讓 HANA 系統準備好進行備份,並要求您在上述步驟中建立的金鑰必須傳遞為輸入。 若要瞭解如何將此輸入當做參數傳遞至腳本,請參閱 預先註冊腳本執行的一 節。 它也會詳細說明預先註冊腳本的功能。
- 如果您的 HANA 安裝程式使用私人端點,請使用 -sn 或 --skip-network-checks 參數執行預先註冊腳本。
注意
預先註冊腳本會針對 RHEL (7.4、7.6 和 7.7) 和 unixODBC for RHEL 8.1 上執行的 SAP HANA 工作負載安裝 compat-unixODBC234。 此套件位於適用於 SAP HANA 的 RHEL(適用於 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 MBps(例如完整、差異和增量),以及針對 HANA 進行記錄備份最多 100 MBps。 如前所述,這些不保證速度,並取決於下列因素:
- VM 的未快取磁碟輸送量上限 – 從數據或記錄區域讀取。
- 基礎磁碟類型和其輸送量 – 從數據或記錄區域讀取。
- VM 的最大網路輸送量 – 寫入復原服務保存庫。
- 如果 VNET 有 NVA/防火牆,則它是網路輸送量
- 如果 Azure NetApp Files 上的數據/記錄 – 同時讀取 ANF 和寫入保存庫會取用 VM 的網路。
重要
在較小的 VM 中,未快取的磁碟輸送量非常接近或小於 400 MBps,您可能會擔心備份服務會取用整個磁碟 IOPS,這可能會影響 SAP HANA 與磁碟讀取/寫入相關的作業。 在此情況下,如果您想要節流或將備份服務耗用量限製為上限,您可以參閱下一節。
限制備份輸送量效能
如果您想要將備份服務磁碟 IOPS 耗用量節流至最大值,請執行下列步驟。
移至 “opt/msawb/bin” 資料夾
建立名為 「Extension 設定Overrides.JSON」 的新 JSON 檔案
將索引鍵/值組新增至 JSON 檔案,如下所示:
{ "MaxUsableVMThroughputInMBPS": 120 }
變更檔案的許可權和擁有權,如下所示:
chmod 750 ExtensionSettingsOverrides.json chown root:msawb ExtensionSettingsOverrides.json
不需要重新啟動任何服務。 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 小組的修正,從公用數據表取得所需的資訊。
- 腳本會將金鑰新增至 適用於 HANA 備份外掛程式的 AZUREWLBACKUPHANAUSER 的 hdbuserstore ,以處理所有作業(資料庫查詢、還原作業、設定和執行備份)。
- 或者,您可以選擇建立自己的自定義備份使用者。 請確定此使用者已獲指派下列必要角色和權限:
- 針對 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 備份外掛程式的自訂備份使用者新增密鑰至 hdbuserstore,以處理所有作業(資料庫查詢、還原作業、設定和執行備份)。 將此自訂備份使用者金鑰傳遞至文稿做為參數:
-bk CUSTOM_BACKUP_KEY_NAME
或-backup-key CUSTOM_BACKUP_KEY_NAME
。 請注意,此自定義備份密鑰的密碼到期可能會導致備份和還原失敗。 - 如果您的 HANA
<sid>adm
使用者是 Active Directory (AD) 使用者,請在 AD 中建立 msawb 群組,<sid>adm
並將使用者新增至此群組。 您現在必須使用參數,在預先註冊腳本中指定<sid>adm
為 AD 使用者:-ad <SID>_ADM_USER or --ad-user <SID>_ADM_USER
。
注意
若要瞭解文稿接受的其他參數,請使用 命令 bash msawb-plugin-config-com-sap-hana.sh --help
若要確認金鑰建立,請使用 SIDADM 認證在 HANA 計算機上執行 HDBSQL 命令:
hdbuserstore list
命令輸出應該會顯示 {SID}{DBNAME} 金鑰,且用戶顯示為 AZUREWLBACKUPHANAUSER。
注意
請確定您在 底下 /usr/sap/{SID}/home/.hdb/
有一組唯一的 SSFS 檔案。 此路徑中應該只有一個資料夾。
以下是完成預先註冊腳本執行所需的步驟摘要。 請注意,在此流程中,我們會提供 SYSTEM 使用者金鑰作為預先註冊腳本的輸入參數。
負責人 | From | 要執行的項目 | 註解 |
---|---|---|---|
<sid> adm (OS) |
HANA OS | 閱讀教學課程並下載預先註冊腳本。 | 教學課程: 在 Azure VM 中備份 HANA 資料庫 下載預先註冊腳本 |
<sid> adm (OS) |
HANA OS | 啟動 HANA (HDB start) | 設定之前,請確定 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 |
根目錄 (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 和租用戶資料庫。 |
成功執行預先註冊腳本並驗證之後,您可以繼續檢查連線需求,然後從復原服務保存庫設定備份
建立復原服務保存庫
復原服務保存庫是一種管理實體,可儲存一段時間建立的恢復點,並提供執行備份相關作業的介面。 這些作業包括進行隨選備份、執行還原,以及建立備份原則。
若要建立復原服務保存庫:
登入 Azure 入口網站。
搜尋 備份中心,然後移至 備份中心 儀錶板。
在 [概 觀] 窗格中,選取 [保存庫]。
選取 [復原服務保存庫>繼續]。
在 [ 復原服務保存庫 ] 窗格中,輸入下列值:
訂用帳戶:選取要使用的訂用帳戶。 如果您只是一個訂用帳戶的成員,您會看到該名稱。 如果您不確定要使用哪個訂用帳戶,請使用預設訂用帳戶。 只有在您的公司或學校帳戶與多個 Azure 訂用帳戶相關聯時,才會有多個選擇。
資源群組:使用現有的資源群組或建立新的資源群組。 若要檢視訂用帳戶中可用的資源群組清單,請選取 [使用現有的],然後在下拉式清單中選取資源。 若要建立新的資源群組,請選取 [新建],然後輸入名稱。 如需資源群組的詳細資訊,請參閱 Azure Resource Manager 概觀。
保存庫名稱:輸入易記名稱以識別保存庫。 這個名稱對 Azure 訂用帳戶必須是唯一的。 指定至少 2 但不超過 50 個字元的名稱。 名稱必須以字母開頭,且只包含字母、數位和連字元。
區域:選取保存庫的地理區域。 若要建立保存庫以協助保護任何數據源,保存庫 必須 位於與數據源相同的區域中。
重要
如果您不確定資料來源的位置,請關閉視窗。 移至入口網站中的資源清單。 如果您在多個區域中有資料來源,請為每個區域建立一個復原服務保存庫。 在您在另一個位置建立保存庫之前,請先在第一個位置建立保存庫。 不需要指定記憶體帳戶來儲存備份數據。 復原服務保存庫和 Azure 備份 會自動處理。
提供值之後,請選取 [ 檢閱 + 建立]。
若要完成建立復原服務保存庫,請選取 [ 建立]。
建立復原服務保存庫可能需要一點時間。 監視右上方 [ 通知 ] 區域中的狀態通知。 建立保存庫之後,它會出現在復原服務保存庫清單中。 如果保存庫未出現,請選取 [ 重新整理]。
注意
Azure 備份 現在支援固定保存庫,可協助您確保建立的恢復點在到期前無法根據備份原則刪除。 您可以讓不變性無法復原,以從各種威脅中對備份數據進行最大保護,包括勒索軟體攻擊和惡意執行者。 深入了解。
復原服務保存庫現在已建立。
啟用跨區域還原
在復原服務保存庫中,您可以啟用跨區域還原。 瞭解如何 開啟跨區域還原。
深入瞭解 跨區域還原。
探索資料庫
在 Azure 入口網站 中,移至 [備份中心],然後按兩下 [+備份]。
選取 [Azure VM 中的 SAP HANA] 作為數據源類型,選取要用於備份的復原服務保存庫,然後按兩下 [繼續]。
選取 [ 開始探索]。 這會起始在保存庫區域中探索未受保護的Linux VM。
- 探索之後,未受保護的 VM 會出現在入口網站中,依名稱和資源群組列出。
- 如果 VM 未如預期般列出,請檢查它是否已備份在保存庫中。
- 多個 VM 可以具有相同的名稱,但它們屬於不同的資源群組。
在 [選取 虛擬機器] 中,選取連結以下載提供 Azure 備份 服務許可權的腳本,以存取 SAP HANA VM 以進行資料庫探索。
在裝載您要備份之 SAP HANA 資料庫的每個 VM 上執行腳本。
在 VM 上執行文稿之後,在 [選取 虛擬機器] 中,選取 VM。 然後選取 [ 探索 DB]。
Azure 備份 探索 VM 上的所有 SAP HANA 資料庫。 在探索期間,Azure 備份 向保存庫註冊 VM,並在 VM 上安裝擴充功能。 資料庫上未安裝任何代理程式。
設定備份
現在啟用備份。
在步驟 2 中,選取 [ 設定備份]。
在 [ 選取要備份的專案] 中,選取您要保護 >OK的所有資料庫。
在 [備份原則>選擇備份原則] 中,根據下列指示,為資料庫建立新的備份原則。
建立原則之後,請在 [ 備份 ] 功能表上,選取 [ 啟用備份]。
建立備份原則
備份原則會定義備份的建立時間,以及備份保留的時間長度。
- 原則會在保存庫層級建立。
- 多個保存庫可以使用相同的備份原則,但您必須將備份原則套用至每個保存庫。
注意
Azure 備份 備份在 Azure VM 中執行的 SAP HANA 資料庫時,不會自動調整日光節約時間變更。
視需要手動修改原則。
指定原則設定,如下所示:
在 [ 原則名稱] 中,輸入新原則的名稱。 在此情況下,請輸入 SAPHANA。
在 [完整備份原則] 中,選取 [ 備份頻率]。 您可以選擇 [每日] 或 [每周]。 在本教學課程中,我們選擇了 每日 備份。
在 [保留範圍] 中,設定完整備份的保留設定。
- 根據預設,會選取所有選項。 清除您不想使用的任何保留範圍限制,並設定您所做的限制。
- 任何類型的備份(完整/差異/記錄)的最小保留期間為七天。
- 恢復點會根據其保留範圍標記保留。 例如,如果您選取每日完整備份,則每天只會觸發一次完整備份。
- 特定日期的備份會根據每周保留範圍和設定來標記和保留。
- 每月和每年的保留範圍會以類似的方式運作。
在 [ 完整備份原則 ] 功能表中,選取 [ 確定 ] 以接受設定。
然後選取 [差異備份 ] 以新增差異原則。
在 [差異備份原則] 中,選取 [ 啟用 ] 以開啟頻率和保留控件。 我們已在每天上午 2:00 啟用差異備份,保留 30 天。
注意
您可以選擇差異或增量做為每日備份,但不能同時選擇兩者。
在 [增量備份原則] 中,選取 [啟用] 以開啟頻率和保留控件。
- 您最多可以每天觸發一個增量備份。
- 增量備份最多可以保留 180 天。 如果您需要較長的保留期,則必須使用完整備份。
選取 [ 確定 ] 以儲存原則,並返回主要 備份原則 功能表。
選取 [記錄備份 ] 以新增事務歷史記錄備份原則,
- 記錄備份 預設會設定為 [ 啟用]。 這無法停用,因為 SAP HANA 會管理所有記錄備份。
- 我們已將 2 小時設定為備份排程和 15 天的保留期間。
注意
記錄備份只會在完成一次成功的完整備份之後開始流動。
選取 [ 確定 ] 以儲存原則,並返回主要 備份原則 功能表。
完成定義備份原則之後,請選取 [ 確定]。
您現在已成功為 SAP HANA 資料庫設定備份(s)。