針對 Azure 上的 SAP Hana 資料庫備份進行疑難排解

本文提供在 Azure 虛擬機器上備份 SAP HANA 資料庫的疑難排解資訊。 若要深入了解我們目前支援的 SAP Hana 備份案例,請參閱案例支援

必要條件和權限

設定備份之前,請先參閱必要條件預先註冊指令碼的功能區段。

一般使用者錯誤

UserErrorHANAInternalRoleNotPresent

錯誤訊息 Azure Backup does not 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
可能的原因
  • 連線至 HANA 執行個體失敗
  • 系統資料庫離線
  • 租用戶資料庫已離線
  • 備份使用者 (AZUREWLBACKUPHANAUSER) 的權限不足。
建議的動作 檢查系統是否正在執行。 如果有一或多個資料庫正在執行,請確定已設定必要的權限。 若要這麼做,請在 SAP HANA 執行個體上下載並執行預先註冊指令碼

UserErrorHanaInstanceNameInvalid

錯誤訊息 The specified SAP HANA instance is either invalid or can't be found
可能的原因
  • 指定的 SAP Hana 執行個體無效或找不到。
  • 單一 Azure VM 上的多個 SAP Hana 執行個體無法備份。
建議的動作
  • 確認 Azure VM 上只有一個 HANA 執行個體正在執行。
  • 若要解決此問題,請在 [探索資料庫] 窗格中對正確的 SAP HANA 執行個體執行指令碼 (您也可以在這裡找到指令碼)。

UserErrorHANALSNValidationFailure

錯誤訊息 Backup log chain is broken
可能的原因 有很多原因會觸發 HANA LSN 記錄鏈結中斷,包括:
  • Azure 儲存體呼叫失敗,無法認可備份。
  • 租用戶資料庫已離線。
  • 延伸模組升級終止了進行中的備份工作。
  • 無法在備份期間連線到 Azure 儲存體。
  • SAP HANA 在備份過程中回復了交易。
  • 備份已完成,但尚未成功更新 HANA 系統的目錄。
  • 就 Azure 備份而言,備份失敗,但就 HANA 而言,備份成功:Backint 到檔案系統的記錄備份/目錄目的地可能已更新,或者 Backint 可執行檔可能已變更。
建議的動作 為解決此問題,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) 參數:
  • [catalog_backup_using_backint:true]
  • [enable_accumulated_catalog_backup:false]
  • [parallel_data_backup_backint_channels:1]
  • [log_backup_timeout_s:900)]
  • [backint_response_timeout:7200]
如果主機層級出現以 backint 為基礎的參數,請移除這些參數。 但是,參數如果未出現在主機層級,而是在資料庫層級手動修改,請務必設定資料庫層級值。 或者,從 Azure 入口網站執行停止保護但保留備份資料,然後選取 [繼續備份]。

UserErrorIncompatibleSrcTargetSystemsForRestore

錯誤訊息 The source and target systems for restore are incompatible.
可能的原因 當來源和目標 HANA 資料庫和系統不相容時,還原流程會失敗並顯示此錯誤。
建議的動作 請確定您的還原案例不在下列可能不相容的還原清單中:
案例 1:還原期間無法重新命名 SYSTEMDB。
案例 2:來源 — SDC 和目標 — MDC:來源資料庫無法還原為目標上的 SYSTEMDB 或租用戶 DB。
案例 3:來源 — SDC 和目標 — SDC:來源資料庫 (SYSTEMDB 或租用戶 DB) 無法還原至目標。
若要深入了解,請參閱 SAP 支援啟動控制板中的附註 1642148

UserErrorHANAPODoesNotExist

錯誤訊息 Database configured for backup does not exist.
可能的原因 如果刪除已設定進行備份的資料庫,此資料庫上所有的排程和隨選備份都會失敗。
建議的動作 確認資料庫是否已刪除。 請重新建立資料庫或停止保護資料庫 (保留資料或不保留資料)。

UserErrorInsufficientPrivilegeOfDatabaseUser

錯誤訊息 Azure Backup does not have enough privileges to carry out Backup and Restore operations.
可能的原因 預先註冊指令碼所建立的備份使用者 (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)。 或者,您可在 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.
可能的原因 系統資料庫還原失敗的可能原因包括:
  • Azure 備份在 HANA 機器上找不到 Recoverysys.py。 當 HANA 環境未正確設定時,就會發生這種狀況。
  • Recoverysys.py,但當觸發此指令碼時,它卻無法叫用 HANA 執行還原。
  • Recoverysys.py 成功叫用 HANA 執行還原,但 HANA 卻無法還原。
建議的動作
  • 若為問題 1,請與 SAP HANA 小組合作修正此問題。
  • 針對 2 和 3,請在 sid-adm 提示中執行 HDSetting.sh 命令,並查看記錄追蹤。 例如 /usr/sap/SID/HDB00/HDBSetting.sh
與 SAP HANA 小組一起討論調查結果,以解決問題。

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 電腦上的磁碟空間,以確保設定備份、備份或還原活動有足夠的空間可順利完成。

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/hdbbackinthdbbackint 公用程式沒有可執行檔的權限或正確的擁有權。
建議的動作 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 支援以取得進一步的協助。

還原檢查

單一容器資料庫 (SDC) 還原

將 Hana 的單一容器資料庫 (SDC) 還原至另一部 SDC 機器時,請留意輸入內容。 資料庫名稱應該以小寫形式提供,並在括弧中附加 sdc。 Hana 執行個體會以大寫顯示。

假設已備份 SDC Hana 執行個體 "H21"。 備份項目頁面會將備份項目名稱顯示為 h21(sdc)。 如果您嘗試將此資料庫還原到另一個目標 SDC (例如 H11),則必須提供下列輸入。

Restored SDC database name

請注意下列幾點:

  • 根據預設,還原的資料庫名稱會填入備份項目名稱。 在此情況下,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:

  1. 建立的新 VM 具有相同名稱,且與已刪除的 VM 位於相同資源群組和訂用帳戶中。

    • 此擴充已存在於 VM 上,但未讓任何服務看到
    • 執行預先註冊指令碼
    • 在 Azure 入口網站中,為相同機器重新註冊延伸模組 ([備份] -> [檢視詳細資料] -> 選取相關的 Azure VM -> [重新註冊])
    • 已存在的已備份資料庫 (源自已刪除的 VM) 應可順利地開始備份
  2. 建立的新 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 不同。 預先註冊指令碼失敗。 請連絡支援人員以取得此案例的協助。
  • 探索您想要備份的資料庫
  • 在這些資料庫上啟用備份

相同 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 上觸發重新註冊作業。

下一步

  • 如想要了解在 Azure VM 上備份 SAP HANA 資料庫的相關資訊,請參閱常見問題集