針對 Azure 上的 SAP Hana 資料庫備份進行疑難排解
本文提供在 Azure 虛擬機器上備份 SAP HANA 資料庫的疑難排解資訊。 若要深入了解我們目前支援的 SAP Hana 備份案例,請參閱案例支援。
必要條件和權限
在設定備份之前,請參閱 必要條件 和 預先註冊指令碼的作用 章節。
一般使用者錯誤
UserErrorHANAInternalRoleNotPresent
錯誤訊息 | Azure Backup doesn't have required role privileges to carry out Backup and Restore operations |
---|---|
可能的原因 | 當備份使用者 (AZUREWLBACKUPHANAUSER) 未 指派SAP_INTERNAL_HANA_SUPPORT 角色,或可能會覆寫角色時,所有作業都會失敗併發生此錯誤。 |
建議的動作 | 在 SAP HANA 執行個體上下載並執行預先註冊指令碼,或手動將 SAP_INTERNAL_HANA_SUPPORT 角色指派給備份使用者 (AZUREWLBACKUPHANAUSER)。 注意 如果您使用的是 HANA 2.0 SPS04 Rev 46 和更新版本,就不會發生這個錯誤,因為這些 HANA 版本中已不再使用 SAP_INTERNAL_HANA_SUPPORT 角色。 |
UserErrorInOpeningHanaOdbcConnection
錯誤訊息 | Failed to connect to HANA system |
---|---|
可能的原因 |
|
建議的動作 | 檢查系統是否正在執行。 如果有一或多個資料庫正在執行,請確定已設定必要的權限。 若要這麼做,請在 SAP HANA 執行個體上下載並執行預先註冊指令碼。 |
UserErrorHanaInstanceNameInvalid
錯誤訊息 | The specified SAP HANA instance is either invalid or can't be found |
---|---|
可能的原因 |
|
建議的動作 |
|
UserErrorHANALSNValidationFailure
錯誤訊息 | Backup log chain is broken |
---|---|
可能的原因 | 有很多原因會觸發 HANA LSN 記錄鏈結中斷,包括:
|
建議的動作 | 為解決此問題,Azure 備份會觸發自動修復的完整備份。 當此自動修復備份正在進行時,HANA 觸發的所有記錄備份都會失敗,並顯示 OperationCancelledBecauseConflictingAutohealOperationRunningUserError 錯誤。 自動修復完整備份完成之後,記錄和所有其他備份都會如預期開始運作。 如果您在 24 小時內沒看到系統觸發自動修復完整備份或任何成功的備份 (完整/差異/增量),請聯絡 Microsoft 支援服務。 |
UserErrorSDCtoMDCUpgradeDetected
錯誤訊息 | SDC to MDC upgrade detected. |
---|---|
可能的原因 | 當 SDC 系統升級至 MDC 後,備份會失敗並顯示此錯誤。 |
建議的動作 | 若要針對問題進行疑難排解並加以解決,請參閱 SDC 升級至 MDC。 |
UserErrorInvalidBackintConfiguration
錯誤訊息 | Backups will fail with this error when the Backint Configuration is incorrectly updated. |
---|---|
可能的原因 | 客戶會變更/更新 Azure 備份在設定保護流程期間所更新的 Backint 設定。 |
建議的動作 | 檢查是否已設定下列 (Backint) 參數:
|
UserErrorIncompatibleSrcTargetSystemsForRestore
錯誤訊息 | The source and target systems for restore are incompatible. |
---|---|
可能的原因 | 當來源和目標 HANA 資料庫和系統不相容時,還原流程會失敗並顯示此錯誤。 |
建議的動作 | 請確定您的還原案例不在下列可能不相容的還原清單中: 案例 1:還原期間無法重新命名 SYSTEMDB。 案例 2:來源 — SDC 和目標 — MDC:來源資料庫無法還原為目標上的 SYSTEMDB 或租用戶 DB。 案例 3:來源 — MDC 和目標 — SDC:來源資料庫 (SYSTEMDB 或租用戶 DB) 無法還原至目標。 若要深入了解,請參閱 SAP 支援啟動控制板中的附註 1642148。 |
UserErrorHANAPODoesNotExist
錯誤訊息 | Database configured for backup doesn't exist. |
---|---|
可能的原因 | 如果刪除已設定進行備份的資料庫,此資料庫上所有的排程和隨選備份都會失敗。 |
建議的動作 | 確認資料庫是否已刪除。 請重新建立資料庫或停止保護資料庫 (保留資料或不保留資料)。 |
UserErrorInsufficientPrivilegeOfDatabaseUser
錯誤訊息 | Azure Backup does not have enough privileges to carry out Backup and Restore operations. |
---|---|
可能的原因 | 預先註冊指令碼所建立的備份使用者 (AZUREWLBACKUPHANAUSER) 未獲派下列一或多個角色:
|
建議的動作 | 若要解決此問題,請手動將必要的角色和權限新增至備份使用者 (AZUREWLBACKUPHANAUSER)。 或者,您可以在 SAP HANA 執行個體上下載並執行預先註冊指令碼。 |
UserErrorDatabaseUserPasswordExpired
錯誤訊息 | Database/Backup user's password expired. |
---|---|
可能的原因 | 預先註冊指令碼所建立的資料庫/備份使用者不會設定密碼到期日。 但如有變更,您會看到此錯誤。 |
建議的動作 | 在 SAP HANA 執行個體上下載並執行預先註冊指令碼,以解決此問題。 |
UserErrorInconsistentSSFS
錯誤訊息 | SAP HANA error |
---|---|
可能的原因 | 從 SAP HANA 引擎收到不一致的安全儲存體檔案系統 (SSFS) 錯誤。 |
建議的動作 | 請與 SAP HANA 小組合作修正此問題。 若要深入了解,請參閱 SAP 附註 0002097613。 |
UserErrorCannotConnectToAzureActiveDirectoryService
錯誤訊息 | Unable to connect to the AAD service from the HANA system. |
---|---|
可能的原因 | 防火牆或 Proxy 設定為備份延伸模組的外掛程式服務帳戶,目前不允許輸出連線至 Microsoft Entra ID。 |
建議的動作 | 請修正防火牆或 Proxy 設定,使 Microsoft Entra ID 輸出連線得以成功。 |
UserErrorMisConfiguredSslCaStore
錯誤訊息 | Misconfigured CA store |
---|---|
可能的原因 | 備份延伸模組的外掛程式主機程序無法存取根 CA 存放區 (若為 SLES,即位在 /var/lib/ca-certificates/ca-bundle.pem)。 |
建議的動作 | 使用 chmod o+r 還原原始權限以修正 CA 存放區問題。 然後重新啟動外掛程式主機服務,使備份和還原得以成功。 |
UserErrorBackupFailedAsRemedialBackupInProgress
錯誤訊息 | Remedial Backup in progress. |
---|---|
可能的原因 | Azure 備份會觸發用於補救的完整備份,以處理 LSN 記錄鏈結中斷。 雖然正在執行補救完整備份,但透過入口網站/CLI 觸發的備份 (完整/差異/增量) 會失敗,並顯示此錯誤。 |
建議的動作 | 等候補救完整備份順利完成,再觸發另一個備份。 |
OperationCancelledBecauseConflictingOperationRunningUserError
錯誤訊息 | Conflicting operation in progress. |
---|---|
可能的原因 | 透過入口網站/CLI/原生 HANA 用戶端觸發了完整/差異/增量備份,而同時有另一個完整/差異/增量備份已在進行。 |
建議的動作 | 等候作用中的備份工作完成,再觸發新的完整或差異備份。 |
OperationCancelledBecauseConflictingAutohealOperationRunning UserError
錯誤訊息 | Auto-heal Full backup in progress. |
---|---|
可能的原因 | Azure 備份會觸發自動修復完整備份來解決 UserErrorHANALSNValidationFailure 錯誤。 當此自動修復備份正在進行時,HANA 觸發的所有記錄備份都會失敗,並顯示 OperationCancelledBecauseConflictingAutohealOperationRunningUserError 錯誤。 自動修復完整備份完成之後,記錄和所有其他備份都會如預期開始運作。 |
建議的動作 | 等候自動修復完整備份完成之後,再觸發新的完整/差異備份。 |
環境預先註冊指令碼執行錯誤
UserErrorHanaPreScriptNotRun
UserErrorPreregistrationScriptNotRun
錯誤訊息 | Pre-registration script not run. |
---|---|
可能的原因 | 設定環境的 SAP HANA 預先註冊指令碼尚未執行。 |
建議的動作 | 在 SAP HANA 執行個體上下載並執行預先註冊指令碼。 |
UserErrorTargetPOExistsOverwriteNotSpecified
錯誤訊息 | Target database cannot be overwritten for Restore. |
---|---|
可能的原因 | 目標資料庫已存在,但無法覆寫。 入口網站/CLI 的還原流程中未設定強制覆寫。 |
建議的動作 | 選取 [強制覆寫] 選項還原資料庫,或還原至不同的目標資料庫。 |
UserErrorRecoverySysScriptFailedToTriggerRestore
錯誤訊息 | RecoverySys.py could not be run successfully to restore System DB. |
---|---|
可能的原因 | 系統資料庫還原失敗的可能原因包括:
|
建議的動作 |
|
UserErrorDBNameNotInCorrectFormat
錯誤訊息 | Restored database name not in correct format. |
---|---|
可能的原因 | 您提供的還已還原的資料庫名稱不是可接受/預期的格式。 |
建議的動作 | 請確認還原的資料庫名稱以字母開頭,且不應包含數字或底線以外的任何符號。 長度不得超過 127 個字元,且開頭不得為 "_SYS_"。 |
UserErrorDefaultSidAdmDirectoryChanged
錯誤訊息 | Default sid-adm directory changed. |
---|---|
可能的原因 | 預設的 sid-adm 目錄已變更,且這個預設目錄中 HDBSetting.sh 不可用。 |
建議的動作 | 如果 HXE 是 SID,請以 sid-adm 使用者身分,確定環境變數 HOME 設定為 /usr/sap/HXE/home。 |
UserErrorHDBsettingsScriptNotFound
錯誤訊息 | HDBSetting.sh file cannot be found. |
---|---|
可能的原因 | 因為 <sid>adm 使用者環境找不到 HDBsettings.sh 檔案來觸發還原,所以系統資料庫還原失敗。 |
建議的動作 | 請與 SAP HANA 小組合作修正此問題。 如果 HXE 是 SID,請以 sid-adm 使用者身分,確定環境變數 HOME 設定為 /usr/sap/HXE/home。 |
UserErrorInsufficientSpaceOnSystemDriveForExtensionMetadata
錯誤訊息 | Insufficient space on HANA machine to perform Configure Backup, Backup or Restore activities. |
---|---|
可能的原因 | HANA 電腦上的磁碟空間幾乎已滿或已滿,導致設定備份、備份或還原活動失敗。 |
建議的動作 | 請檢查您的 HANA 電腦上的磁碟空間,以確保有足夠的空間可以順利完成設定 Azure 備份、備份或還原活動。 |
CloudDosAbsoluteLimitReached
錯誤訊息 | Operation is blocked as you have reached the limit on number of operations permitted in 24 hours. |
---|---|
可能的原因 | 當您已達 24 小時範圍內的最大允許作業數上限時,會出現此錯誤。 例如:如果您已達到每日可觸發的設定備份作業數目限制,而您嘗試在新的項目上設定備份,就會看到此錯誤。 |
建議的動作 | 一般來說,在 24 小時後重試作業會解決此問題。 但是,如果問題持續發生,您可以連絡 Microsoft 支援服務以尋求協助。 |
CloudDosAbsoluteLimitReachedWithRetry
錯誤訊息 | Operation is blocked as the vault has reached its maximum limit for such operations permitted in a span of 24 hours. |
---|---|
可能的原因 | 當您已達 24 小時範圍內的最大允許作業數上限時,會出現此錯誤。 當有大規模作業 (例如修改原則或自動保護) 時,通常會出現此錯誤。 與 CloudDosAbsoluteLimitReached 的案例不同,您沒有什麼辦法可解決此狀態。 事實上,Azure 備份服務會在內部針對有問題的所有項目重試作業。 例如:如果您有大量受到原則保護的資料來源,而且您嘗試修改該原則,則會針對每個受保護項目觸發設定保護作業,有時可能會達到每日此類作業允許的上限。 |
建議的動作 | Azure 備份服務會在 24 小時後自動重試此作業。 |
UserErrorInvalidBackint
錯誤訊息 | 找到無效的 hdbbackint 可執行檔。 |
---|---|
可能的原因 | 1.將 Backint 路徑從 /opt/msawb/bin 變更為 /usr/sap/<sid>/SYS/global/hdb/opt/hdbbackint 的作業失敗,因為新位置的儲存空間不足。 2.位於 /usr/sap/<sid>/SYS/global/hdb/opt/hdbbackint 的 hdbbackint 公用程式沒有可執行檔的權限或正確的擁有權。 |
建議的動作 | 1.請確定 /usr/sap/<sid>/SYS/global/hdb/opt/hdbbackint 上或您想要儲存備份的路徑有可用空間。 2.透過執行命令 chmod 755 ,確定 sapsys 群組具有 /usr/sap/<sid>/SYS/global/hdb/opt/hdbbackint 檔案的適當權限。 |
UserErrorHanaSQLQueryFailed
錯誤訊息 | 在 HANA 伺服器上執行查詢時作業失敗。 因此使用者錯誤而失敗的所有作業都是因為執行查詢時在 Hana 端造成的問題。 其他詳細資料有清楚的錯誤訊息。 |
---|---|
可能的原因 | - 磁碟損毀問題。 - 記憶體配置問題。 - 使用中的資料庫太多。 - 拓撲更新問題。 |
建議的動作 | 請與 SAP HANA 小組合作修正此問題。 不過,如果問題持續發生,您可以連絡 Microsoft 支援以取得進一步的協助。 |
UserErrorRestoreTargetDirectoriesAbsent
錯誤訊息 | PreRestoreDataParamsPrep: Target directory 不存在。 |
---|---|
可能原因 | 還原為檔案失敗,因為 選取進行還原的目錄 不存在於目標伺服器上,或無法存取。 |
建議的動作 | 確認您選取的目錄可在目標伺服器上使用,並確定您已在還原時選取正確的目標伺服器。 |
JobCancelledOnExtensionUpgrade
錯誤訊息 | 備份作業已取消,因為工作負載備份擴充功能服務已重新啟動以進行升級。 |
---|---|
可能的原因 | 當備份/還原作業正在進行時,備份和還原作業因為自動擴充功能升級而失敗。 |
建議的動作 | 等候延伸模組升級完成。 HANA 接著會重新觸發失敗的記錄備份,如果有的話。 不過,失敗的完整/差異/增量備份不會由 Azure 備份 重新觸發,您必須手動重試這項作業。 |
還原檢查
單一容器資料庫 (SDC) 還原
將 Hana 的單一容器資料庫 (SDC) 還原至另一部 SDC 機器時,請留意輸入內容。 資料庫名稱應該以小寫形式提供,並在括弧中附加 sdc
。 Hana 執行個體會以大寫顯示。
假設已備份 SDC Hana 執行個體 "H21"。 備份項目頁面會將備份項目名稱顯示為 h21(sdc)
。 如果您嘗試將此資料庫還原到另一個目標 SDC (例如 H11),則必須提供下列輸入。
請注意下列幾點:
- 根據預設,還原的資料庫名稱會填入備份項目名稱。 在此情況下,
h21(sdc)
。 - 選取目標,因為 H11 不會自動變更還原的資料庫名稱。 其應該會編輯為
h11(sdc)
。 關於 SDC,還原的資料庫名稱將會是小寫字母的目標執行個體識別碼加上以括弧括住的sdc
。 - 由於 SDC 只能有單一資料庫,因此您也需要選取核取方塊,才能允許以復原點資料覆寫現有的資料庫資料。
- Linux 會區分大小寫。 因此請小心保留大小寫。
多個容器資料庫 (MDC) 還原
在 Hana 的多個容器資料庫中,標準設定為 SYSTEMDB + 1 或更多租用戶 DB。 還原整個 SAP HANA 執行個體會同時還原 SYSTEMDB 和租用戶 DB。 資料庫會先還原 SYSTEMDB,然後再繼續處理租用戶 DB。 系統資料庫基本上是指覆寫所選目標上的系統資訊。 此還原也會覆寫目標執行個體中的 BackInt 相關資訊。 因此,在系統資料庫還原到目標執行個體之後,應再次執行預先註冊指令碼。 只有這麼做之後,後續的租用戶 DB 才能還原成功。
備份已複寫的 VM
實例 1
已使用 Azure Site Recovery 或 Azure VM 備份來複寫原始 VM。 已建立新的 VM 來模擬舊的 VM。 也就是說,設定會完全相同。 (這是因為原始 VM 已刪除,而還原是從 VM 備份或 Azure Site Recovery 進行)。
此案例可能包含兩種可能情況。 了解如何在這兩種情況下備份已複寫的 VM:
建立的新 VM 具有相同名稱,且與已刪除的 VM 位於相同資源群組和訂用帳戶中。
- 此擴充已存在於 VM 上,但未讓任何服務看到
- 執行預先註冊指令碼
- 在 Azure 入口網站中,為相同機器重新註冊延伸模組 ([備份] -> [檢視詳細資料] -> 選取相關的 Azure VM -> [重新註冊])
- 已存在的已備份資料庫 (源自已刪除的 VM) 應可順利地開始備份
建立的新 VM 具有下列其中一項:
- 名稱與已刪除的 VM 不同
- 名稱與已刪除的 VM 相同,但位於不同的資源群組或訂用帳戶中 (相較於已刪除的 VM)
如果是這樣,請遵循下列步驟:
- 此擴充已存在於 VM 上,但未讓任何服務看到
- 執行預先註冊指令碼
- 如果您探索並保護新的資料庫,就會開始在入口網站中看到重複的作用中資料庫。 若要避免這種情況,請停止使用保留資料來保護舊資料庫。 然後繼續進行其餘步驟。
- 探索資料庫
- 在這些資料庫上啟用備份
- (已刪除 VM 中) 原已存在的備份資料庫仍繼續儲存在保存庫中。 這些資料庫會儲存根據原則保留的備份。
案例 2
已使用 Azure Site Recovery 或 Azure VM 備份來複寫原始 VM。 新 VM 是根據內容而建立的,用來作為範本。 新的 VM 會有新的 SID。
請遵循下列步驟,在新的 VM 上啟用備份:
- 擴充已存在於 VM 上,但未讓任何服務看到
- 執行預先註冊指令碼。 視新 VM 的 SID 而定,可能會有兩種情況:
- 原始 VM 和新 VM 的 SID 相同。 預先註冊指令碼將會順利執行。
- 原始 VM 和新 VM 的 SID 不同。 預先註冊指令碼失敗。 請 Microsoft 連絡支援人員以取得此案例的協助。
- 探索您想要備份的資料庫
- 在這些資料庫上啟用備份
相同 VM 上的 SDC 版本升級或 MDC 版本升級
若要在升級至 OS、SDC 版本變更或 MDC 版本變更時不會造成 SID 變更,可以依照下列方式處理:
- 請確認目前 Azure 備份支援新的 OS 版本、SDC 或 MDC 版本
- 停止使用保留資料來保護資料庫
- 執行升級或更新
- 重新執行預先註冊指令碼。 通常,升級程序可能會移除必要的角色。 請執行預先註冊指令碼以驗證所有必要的角色。
- 恢復資料庫的保護功能
在不變更 SID 的情況下進行 SDC 至 MDC 的升級
若要在從 SDC 升級至 MDC 時,不造成 SID 變更,可以依照下列方式處理:
- 確定目前 Azure 備份支援新的 MDC 版本
- 停止使用保留資料來保護舊 SDC 資料庫
- 執行升級。 完成之後,Hana 系統現在就是具有系統 DB 和租用戶 DB 的 MDC
- 重新執行預先註冊指令碼
- 在 Azure 入口網站中,為相同機器重新註冊延伸模組 ([備份] -> [檢視詳細資料] -> 選取相關的 Azure VM -> [重新註冊])
- 為相同的 VM 選取 [重新探索 DB]。 此動作應會將步驟 3 中的新 DB 顯示為 SYSTEMDB 和租用戶 DB,而不是 SDC
- 較舊的 SDC 資料庫會繼續存在於保存庫中,並根據原則保留舊的備份資料。
- 設定這些資料庫的備份
在變更 SID 的情況下進行 SDC 至 MDC 的升級
若要在從 SDC 升級至 MDC 時,造成 SID 變更,可以依照下列方式處理:
- 確定目前 Azure 備份支援新的 MDC 版本
- 停止使用保留資料來保護舊 SDC 資料庫
- 移動位於
/opt/msawb/etc/config/SAPHana/
的 config.json 檔案。 - 執行升級。 完成之後,Hana 系統現在就是具有系統 DB 和租用戶 DB 的 MDC。
- 重新執行預先註冊指令碼,並提供正確的詳細資料 (新的 SID 和 MDC)。 因為 SID 變更,您可能會遇到指令碼執行成功的問題。 如果您遇到問題,請連絡 Azure 備份支援。
- 在 Azure 入口網站中,為相同機器重新註冊延伸模組 ([備份] - >[檢視詳細資料] - >選取相關的 Azure VM - >[重新註冊])。
- 為相同的 VM 選取 [重新探索 DB]。 此動作應會將步驟 3 中的新 DB 顯示為 SYSTEMDB 和租用戶 DB,而不是 SDC。
- 較舊的 SDC 資料庫會繼續存在於保存庫中,並根據原則保留舊的備份資料。
- 設定這些資料庫的備份。
重新註冊失敗
在觸發重新註冊作業之前,請先檢查下列一個或多個徵兆:
所有作業 (例如備份、還原和設定備份) 都在 VM 上失敗,並出現下列其中一個錯誤代碼:WorkloadExtensionNotReachable、UserErrorWorkloadExtensionNotInstalled、WorkloadExtensionNotPresent、WorkloadExtensionDidntDequeueMsg。
如果備份項目的 [備份狀態] 區域顯示 [無法連線],請排除可能會導致相同狀態的所有其他原因:
- 缺少在 VM 上執行備份相關作業的權限
- VM 已關閉,因此無法進行備份
- 網路問題
這些徵兆可能是因下列一或多個原因而發生:
- 已從入口網站刪除或卸載擴充。
- VM 已透過就地磁碟還原來還原到原本狀態。
- VM 已關閉一段較長的時間,因此其中的擴充設定已過期。
- VM 已刪除。 此外,已在和刪除的 VM 同一個資源群組中,使用相同的名稱建立另一個 VM。
針對上述情況,我們建議您在 VM 上觸發重新註冊作業。
備份 SAP HANA 資料庫記錄
儘管完整備份成功,但不會觸發記錄備份。
可能的原因e:SAP HANA 資料庫的值不正確,無法觸發記錄備份。
建議動作:確保 SAP HANA 配置的以下值設定正確:
enable_auto_log_backup
:是log_backup_using_backint
:Truecatalog_backup_using_backint
:Truelog_mode
:標準log_backup_timeout_s
:與 Azure 入口網站的記錄備份原則相同 (頻率為秒)。
後續步驟
- 如想要了解在 Azure VM 上備份 SAP HANA 資料庫的相關資訊,請參閱常見問題集。