本文為您介紹Cloud Backup使用中SAP HANA備份常見的問題以及對應的解決辦法。
SAP HANA備份是什麼
您可以使用Cloud Backup在阿里雲上管理您SAP系統的備份服務。
Cloud Backup通過了SAP HANA Backint整合認證,相容SAP HANA 1.0和2.0版本。您可以使用雲備份用戶端來備份ECS執行個體中部署的SAP HANA執行個體,並在需要時恢複資料庫。更多資訊請參見SAP HANA功能概覽。
此外,您還可以將資料中心的本地檔案、VMWare虛擬機器等備份到阿里雲上的備份庫中,針對阿里雲上各個類型的資料,包括ECS檔案、Oracle及MS SQL Server資料庫、NAS服務、以及OSS服務上的資料,Cloud Backup提供了簡單易用的原生資料保護功能。更多資訊請參見什麼是雲備份。
SAP HANA備份適用範圍
部署在阿里雲ECS上的SAP HANA執行個體
Backint支援SAP HANA 1.0 SPS 09(Revision 94)及更高版本和SAP HANA 2.0 SPS 01及更高版本的MDC(Multitenant Database Containers),不支援SAP HANA 1.0 Single-container(單租戶)的版本。
註冊SAP HANA執行個體後,如何查看雲備份用戶端的運行狀態和日誌?
在雲備份控制台註冊完成後,SAP HANA執行個體的狀態為已注册。
預設日誌路徑為:/opt/alibabacloud/hbrclient/logs
您可以執行ps axu|grep hybrid
,查看備份用戶端運行狀態。如果存在進程資訊,說明已經啟動,一切運行正常。
root 11472 0.0 0.0 9288 1552 pts/2 S+ 16:11 0:00 grep --color=auto hybrid
root 30480 0.0 0.2 56296 17028 ? Ssl 13:26 0:04 /opt/alibabacloud/hbr/client/hybridbackup -p 0
備份日誌路徑
HANADatabase Backup用戶端日誌:/opt/alibabacloud/hbr/logs
HANA資料庫backint日誌:/usr/sap/{SID}/SYS/global/hdb/logs/
HANA資料庫的備份日誌:/usr/sap/{SID}/HDB{InstanceNumber}/{hostname}/trace/DB_{DBNAME}/backup.log
HANA資料庫會自動管理和儲存日誌記錄。您可以使用HANA Studio或者其他相關的工具,執行以下 SQL來查詢和擷取這些記錄備份的內容。
select CAT.* from SYS_DATABASES.M_BACKUP_CATALOG CAT JOIN SYS_DATABASES.M_BACKUP_CATALOG_FILES FILS on CAT.BACKUP_ID = FILS.BACKUP_ID where CAT.entry_type_name = 'log backup' and CAT.state_name = 'successful' and FILS.DESTINATION_TYPE_NAME = 'backint' and CAT.database_name = 'SYSTEMDB' order by sys_end_time
安裝SAP HANA用戶端失敗,錯誤提示“有多個/usr/sap/<SID>/SYS/global/hdb/opt路徑”,如何解決?
遠程登入目標ECS執行個體。
將不需要做備份的SAP HANA執行個體對應的
/usr/sap/<SID>/SYS/global/hdb/opt
重新命名成/usr/sap/<SID>/SYS/global/hdb/opt_backup
。返回雲備份控制台,為該SAP HANA重新安裝用戶端。
同執行個體恢複時,資料庫無法串連,如何解決?
當您建立恢複任務並恢複到源執行個體時,選擇資料庫探索資料庫狀態為無法串連,請進行如下操作:
檢查HANA資料庫是否啟動。
檢查SSL認證是否到期,如果認證到期,可選擇:
更換認證。
在控制台配置不驗證SSL認證。
同執行個體恢複時,擷取不到資料,如何解決?
當您建立恢複任務並恢複到源執行個體時,選擇資料庫發現沒有資料,需要檢查用戶端狀態是否正常。
恢複時無法找到備份記錄如何解決
問題現象
當Elastic Compute Service重裝作業系統、快照復原,或者SAP HANA資料庫卸載重新安裝後,建立恢複任務時,可能會出現無法找到備份記錄的情況。
根因分析
在執行同執行個體恢複操作時,雲備份服務首先會在預配置的SAP HANA備份路徑中檢索備份記錄。需要注意的是,若ECS執行個體經歷了作業系統重裝、快照復原或SAP HANA資料庫被卸載及重新安裝等操作,這些情況均可能導致儲存在HANADatabase Backup記錄被清除。
解決方案
如果您在備份時已經開啟Catalog备份使用Backint,則可以恢複。恢複步驟如下:
進入SAP HANA源執行個體刪除ECS執行個體節點。
重新註冊新HANA執行個體,使用參數和之前保持一致。安裝備份用戶端,添加已刪除的ECS執行個體節點。
建立恢複任務,選擇新註冊的HANA執行個體進行恢複,即從源執行個體發起跨執行個體恢複任務。
待確認恢複完成後,且源執行個體備份資料不再使用,可以刪除源執行個體。如果您在備份時沒有開啟Catalog备份使用Backint,則無法找到備份記錄,但是備份資料還在。如果您需要恢複這些備份資料,具體操作,請參見使用Prefix方式恢複SAP HANA。
HANA中sql執行失敗,如何解決?
HANA 日誌空間已滿,可能導致 SQL 執行失敗。請先清理磁碟空間,再重新嘗試。
如何手動刪除備份記錄?
雲備份側無法手動刪除 SAP HANA 資料,只能等待資料自動到期。您可以選中下述選項通過 SAP Studio 來進行刪除操作。
執行個體已啟用,資料庫頁面提示內部錯誤
如果雲備份控制台的SAP HANA備份頁面出現了錯誤提示,需要檢查 HANA 許可證。您可以串連到 SYSTEMDB 並執行以下 SQL 查詢所有資料庫是否都包含了許可證。如果查詢結果為空白,則表示某個資料庫缺少許可證。
SELECT * FROM M_LICENSE
SAP HANA備份為何會失敗,如何解決?
在執行SAP HANA備份時,用戶端會串連到HANA執行個體並發送用於啟動備份任務的SQL語句。如果該SQL語句成功執行,用戶端將繼續向HANA發送查詢語句以擷取備份進度和最終狀態。當備份過程中遇到失敗情況時,相關的錯誤資訊會被記錄在用戶端的日誌中。通過結合具體的任務時間和日誌記錄,可以有效地追蹤並分析問題所在。以下是一些常見的錯誤問題:
如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出現如下錯誤資訊,表明本地時間與服務端存在顯著差異,建議首先調整本地時間,更佳的做法是啟用NTP自動同步以確保時間的一致性。
time="2021-11-04T16:24:17+08:00" level=info msg="InvalidTimeStamp.Expired retry, retryDelay: 5000 ms, retry times: 14" file=client.go line=377
當出現備份任務失敗,或備份任務全部顯示取消狀態(非人為手動取消),同時在backup.log日誌中有No space left on device的提示,說明本地磁碟空間已滿,需要清理之後再進行備份。
如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出現如下錯誤資訊,並且控制台上沒有顯示任何錯誤資訊,這可能是因為您配置了其他定時備份任務,與 SAP HANA 備份任務在執行時發生了衝突。
time="2021-08-29T01:10:00+08:00" level=error msg="Execute hana backup failed : hbr: client returned error: ErrorCode=HanaSqlError, ErrorMessage=SQL Error 447 - backup could not be completed: [110122] A data backup cannot be created because another data backup is running or a storage snapshot has been prepared., Data=, values=map[]" file=hanabackupjob.go line=98
如果出現了非預期的備份失敗或未執行警示,並且在備份歷史中沒有看到備份完成的記錄,那麼可能是MQTT請求逾時導致的,可以在/opt/alibabacloud/hbr/logs/hybridbackup.log中查看對應時刻的日誌。
如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出現如下錯誤資訊,密碼可能已經到期,需要及時更新。
time="2023-11-26T00:00:08+08:00" level=error msg="SAP Error: SQL Error 447 - backup could not be completed: [110203] Not all data could be written: Expected 4096 but transferred 0, [110507] Backint exited with exit code 1 instead of 0. console output: Internal Error: The user account is in unknown status. " file=errorwrapper.go line=28
如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出現如下錯誤資訊,可能是您的時間戳記不準確導致服務端拒絕了請求。
time="2024-06-23T01:36:46+08:00" level=error msg="HBR DescribeUserBusinessStatus returns hbr: service returned error: StatusCode=400, Code=InvalidSecurityToken.Expired, Message=Specified SecurityToken is expired., RequestId=A6CDF56F-CA56-53E8-9342-24E19F768D40" file=client.go line=428
您可選擇以下方式檢查時間戳記:
執行以下命令,觀察返回結果中的System Time,該參數反映了當前系統時間與NTP時間的差異。若此偏差在幾毫秒以內,即可判斷時間戳記處於正常狀態。
sudo chronyc tracking
執行以下命令,觀察返回結果中的offset,該參數反映了當前系統時間與NTP時間的差異。若此偏差在幾毫秒以內,即可判斷時間戳記處於正常狀態。
ntpd -q
如果控制台沒有失敗的記錄,同時在/opt/alibabacloud/hbr/logs/hybridbackup.log日誌中,看到如下錯誤資訊:
SQL Error 447 - backup could not be completed: [110122] A data backup cannot be created because another data backup is running or a storage snapshot has been prepared.
您可選擇以下方式檢查:
是否有其他備份軟體在相同時間做HANA備份。
確保有資料備份的情況下重啟HANA執行個體。更多資訊,請參考 SAP HANA官方知識庫。
如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出現如下錯誤資訊:
[447] backup could not be completed, [1000002] Allocation failed ; $size$=16777216; $name$=DataPage; $type$=pool; $inuse_count$=6; $allocated_size$=17104896; $failure_type$=GLOBAL_ALLOCATION_LIMIT; $failure_flag$= (early exit)
且控制台上有失敗記錄。
這個問題通常是由於SAP HANA無法分配更多記憶體(OOM)導致的。更多資訊,請參見SAP HANA由於記憶體不足導致備份失敗。
解決方案,請參見SAP HANA解決方案。
導致OOM的原因,請參見SAP HANA服務支援。
如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出現如下錯誤資訊:
"SQL Error 3584 - distributed SQL error: [2617] executor: plan operation execution failed with an exception.exception:exception 30160: Failed to read password from key store. $name=$M_BACKUP_CONFIGURATION. $col=$IS_ROOT_KEY_BACKUP_PASSWORD_SET. $ci=$23\n,Exception in executor plan00468@$spdr-db:31001 while executing pop 1, Data=[], values=[]map[]"
且控制台上備份任務狀態為“失敗”。
該錯誤資訊表明,在執行備份SQL語句時,SAP HANA系統返回了錯誤碼3584的SQL錯誤,具體是在從金鑰儲存區中讀取密碼時遇到了異常。這通常是SAP HANA相關組件的問題,建議您聯絡SAP HANA的營運人員或供應商以獲得進一步的協助和解決方案。
如果/opt/alibabacloud/hbr/logs/hybridbackup.log中,出現
InstanceRAMRoleNotFound
或如下錯誤資訊:Failed to get client credential from Instance RAM role. hbr: client returned error: ErrorCode=InstanceRAMRoleNotFound, ErrorMessage=InstanceRAMRoleNotFound
同時控制台上恢複任務狀態一直處於“執行中”且無法停止。
該錯誤資訊表明,ECS上的AliyunECSAccessingHBRRole角色被收回,請登入ECS控制台重新授予此角色後重啟備份用戶端。更多資訊,請參見ECS執行個體上為何會被授予AliyunECSAccessingHBRRole角色?是否可以收回不使用此角色?
ECS執行個體上為何會被授予AliyunECSAccessingHBRRole角色?是否可以收回不使用此角色?
為了確保SAP HANA備份的正常運行,必須在運行SAP HANA的ECS執行個體上安裝雲備份用戶端。該用戶端依賴於AliyunECSAccessingHBRRole角色來擷取安全性權杖並與服務端通訊。如果此角色被收回,備份和恢複功能將無法正常工作。因此,請通過以下步驟確保SAP HANA備份的正常運行:
請登入ECS控制台重新授予AliyunECSAccessingHBRRole角色。具體操作,請參見為ECS執行個體授予RAM角色。
使用命令
systemctl restart hybridbackup
重啟備份用戶端或卸載用戶端後重新安裝。
查看備份任務時出現報錯如何解決?
失敗現象
當查看備份任務時,出現如下報錯。
且/opt/alibabacloud/hbr/logs/hybridbackup.log中,出現如下錯誤資訊:
time="2023-12-01T14:38:23+08:00" level=error msg="prepare stmt SELECT count(*) FROM sys_databases.M_BACKUP_PROGRESS error : SQL Error 437 - only commands for license handling are allowed in current state" file=db.go line=220
解決方案
由於 HANA 2.0 需要註冊許可證,因此需要使用多使用者模式。
恢複任務失敗如何解決?
失敗現象:通過指定時間或指定備份使用較早時間點的備份點進行恢複,然後通過指定時間使用最新時間備份點再次進行恢複,恢複失敗。
解決方案:連續多次恢複時,建議通過指定備份方式,選擇備份點進行恢複。
雲備份可以備份線下資料中心IDC裡部署的SAP HANA嗎?
不支援。但您可以先把SAP HANA備份到本機儲存上,然後以檔案的方式再備份到雲備份。更多資訊,請參見備份本地檔案。
備份SAP HANA,還需要額外再購買其他的雲端儲存產品嗎?
不需要。雲備份是通過backint直接調用SAP HANA的備份介面,備份資料通過Pipe的方式備份到雲備份後端的雲端儲存上,不會佔用SAP HANA ECS執行個體的儲存空間,因此不需要再額外購買其他的雲端儲存產品。
Single-container(單租戶)的SAP HANA,可以用雲備份的"SAP HANA備份"嗎?
不可以,雲備份控制台的SAP HANA備份使用的是backint介面。有兩種解決方案:
方案一:將SAP HANA備份到ECS執行個體的雲端硬碟上,使用雲備份的本地檔案備份功能。更多資訊,請參見備份本地檔案。
方案二:將SAP HANA從Single-container轉換成multi-container,具體操作方法請參考SAP官方文檔或諮詢您的SAP夥伴。
SAP HANA的不同環境的備份可以放在不同備份倉庫嗎?
可以,在雲備份控制台註冊SAP HANA執行個體時,您可以建立或選擇已有的備份倉庫。當前支援的恢複方式包括如下:
SAP HANA備份支援跨地區(異地)備份功能嗎?
支援。具體請參見使用鏡像備份庫實現跨地區備份。
配置SAP HANA備份有哪些注意事項?
如果您的SAP HANA是高可用部署架構,註冊SAP HANA執行個體的主機地址請填寫 HAVIP(高可用虛擬IP地址),這樣可以保證叢集發生切換後,備份作業也可以正常執行。
備份參數預設不會開啟backint備份SAP HANA的日誌和catalog的功能,需要您手工為System DB和每個Tenant DB勾選上此配置,以確保在需要的時候可以正常完成資料庫恢複操作。
Tenant DB的參數配置會繼承System DB的參數配置,請您仔細檢查每個資料庫的參數配置符合您的預期。
如何設定SAP HANA的備份資料保留周期?
登入雲備份控制台,選擇對應的執行個體。
在資料庫頁簽,選擇System DB或Tenant DB,單擊更多>设置保留时间。
預設的備份保留時間是持續保留,您可以按需修改。
參數
說明
保留時間設定
自訂
選擇此項後,您可以自訂每天執行保留任務的時間,以及備份資料的保留時間。
持續保留
選擇此項後,Cloud Backup將為您持續保留備份資料。
保留任務執行時間
僅當保留時間設定配置為自訂時,需要配置該參數。選擇每天執行保留任務的時間。時間精確到秒。
說明建議避開備份任務繁忙或者其他業務繁忙的時間段。
備份保留時間
僅當保留時間設定配置為自訂時,需要配置該參數。選擇保留備份資料的時間。
單位:天、周、月、年。最短保留時間為1天,最長保留時間為10年。
說明SAP HANA備份保留時間到期後,備份服務會自動清理到期的BACKINT備份與檔案備份相關的catalog記錄以及資料,清理後不可恢複。請根據實際情況謹慎配置備份保留時間。
調整保留時間會對歷史備份生效。資料保留任務每天執行一次,但備份庫的統計資訊會有12到24小時的延遲。因此,在調整備份資料的保留周期後,預計需要3個自然日才能觀察到備份庫資料量的變化。如果調整幅度較大(例如從保留2年縮短至2個月),資料保留任務會控制執行速度,導致備份庫資料量的減少過程可能會持續一段時間。
收到簡訊或郵件警示提示備份失敗,但是登入雲備份控制台查看備份任務顯示成功,是為什嗎?
問題現象
收到簡訊或郵件警示:“您的SAP HANA執行個體XXX(執行個體ID:cl-xxxxxxxx)中的資料庫XXX備份失敗,備份ID為0。請及時登入控制台查看和修複。 ”但實際上,當您登入雲備份控制台時,該次備份記錄卻顯示已完成且無異常提示。
問題原因
這可能是由於在備份期間有其他備份軟體同時運行,或是SAP HANA自身存在問題所導致。您可以通過檢查位於
/opt/alibabacloud/hbrclient/logs/hybridbackup.log
的記錄檔,在警示的時間附近看到類似警示片段:time="2024-08-29T01:35:01+08:00" level=error msg="Execute sql `BACKUP DATA FOR PRD USING BACKINT ('/usr/sap/XXX/SYS/global/hdb/backint/DB_HHH/COMPLETE_DATA_BACKUP_2024_08_29_01_30') ASYNCHRONOUS` failed : SQL Error 447 - backup could not be completed: [110122] A data backup cannot be created because another data backup is running or a storage snapshot has been prepared." file=db.go line=163 time="2024-08-29T01:35:01+08:00" level=error msg="SAP Error: SQL Error 447 - backup could not be completed: [110122] A data backup cannot be created because another data backup is running or a storage snapshot has been prepared." file=errorwrapper.go line=28
該錯誤表明,雲備份用戶端通過串連SAP HANA執行了一條用於備份的SQL 陳述式,SAP HANA返回了447的錯誤碼,告知雲備份用戶端此命令執行失敗。實際上,此命令觸發的備份任務可能會在SAP HANA後台正常執行。更多資訊,請參見SAP HANA官方描述。
解決方案
如果僅是偶發情況,並且在備份任務頁面確認備份已成功執行,可以忽略此警示。但若此類問題頻繁出現,建議在確保業務不受影響的前提下,選擇業務低峰期重啟HANA執行個體以解決問題。
為什麼收到警示的時間和實際錯誤發生時間不一致?
簡訊警示設定了夜間抑制功能,將晚上8點至次日早上8點期間觸發的警示延遲至早上8點之後發送;而郵件警示則不受此限制,會即時發送。
為什麼在備份SAP HANA後,存放庫管理中顯示的源端資料量會異常增大?
問題原因
對於存放庫中備份的SAP HANA資料,我們將定期查詢HANA資料庫中所有通過backint進行的歷史備份記錄,這包括由其他備份軟體執行且未被刪除的HANA備份。需要注意的是,這些歷史備份資料量的統計不會影響費用計算,實際計費依據的是存放庫內實際佔用的資料總量。
解決方案
您可以在HANA資料庫中執行SQL語句來刪除所有由非雲備份方式建立且不再需要的備份記錄。請在執行刪除操作前,確保這些記錄已經無需保留。
在建立SAP HANA恢複任務時,如果在目標執行個體中選擇資料庫時發現有重複的資料庫名稱,這通常表示什嗎?
在建立SAP HANA恢複任務時,如果在選擇資料庫環節,遇到多個具有相同名稱不同服務的資料庫,可以任選其中一個進行恢複操作。
SAP HANA從舊備份庫遷移至新備份庫的步驟
有兩台HANA執行個體e1、e2,當前在同一備份庫v1進行備份。現在需要將e1、e2遷移至新的備份庫v2。以下步驟介紹如何完成上述備份庫的切換。
將HANA節點從舊備份庫移除。
重要請勿直接刪除執行個體,因為這將同時刪除已有的備份資料。請確保您已確認不再需要原執行個體的備份資料後,再進行執行個體刪除操作。
本步驟是將e1,e2從舊的備份庫節點列表中移除,為後續加入新的備份庫v2做準備。具體步驟如下:
單擊執行個體ID進入節點資訊。
在節點資訊頁,刪除對應的節點。
刪除之後,e1和e2的HANA執行個體狀態顯示為“初始化失敗”。
將HANA節點遷移到新的備份庫。
以HANA執行個體e1為例,e2的操作與此相同。(注意,e2的操作流程中,步驟b中的HANA執行個體e1的資訊需要替換為e2的資訊)
單擊註冊HANA執行個體。
在注册HANA实例面板,配置SAP HANA執行個體串連資訊和安裝用戶端。
在編輯串連資訊頁面,備份庫選擇新的備份庫v2,為新的HANA執行個體重新命名。Host地址、執行個體號、使用者名稱及密碼與HANA執行個體e1保持一致。完成其餘配置,然後單擊下一步。
在安裝備份用戶端頁面,在此處選擇HANA執行個體e1,然後單擊創建。
按照上述步驟完成HANA執行個體e1和e2的配置後,在新的備份庫v2中顯示如下資訊。請檢查兩個建立的HANA執行個體的資訊是否正確。單擊每個執行個體的ID,進入HANA執行個體詳情頁面,確認節點資訊無誤,並確保資料庫連接正常。
確認上述資訊無誤後,為確保資料安全,請立即手動執行一次全量備份,以保證至少保留一個完整的備份點。
說明HANA執行個體的備份資料不能在不同備份庫之間進行跨執行個體恢複。遷移至新備份庫後,原執行個體的備份資料將無法恢複到新HANA執行個體中。