在 Amazon EC2執行個體上還原SAPHANA資料庫 - AWS Backup

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon EC2執行個體上還原SAPHANA資料庫

SAP HANA EC2執行個體上的資料庫可以使用 AWS Backup 主控台、 API或 還原 AWS CLI。

使用 AWS Backup 主控台還原SAPHANA資料庫

請注意,您無法對相同的資料庫同時進行備份任務和還原任務。發生SAPHANA資料庫還原任務時,嘗試備份相同的資料庫可能會導致錯誤:「資料庫在停止時無法備份」。

  1. 使用先決條件中的憑證存取 AWS Backup 主控台。

  2. 目標還原位置 下拉式選單下,選擇一個資料庫,以使用您要用於還原的復原點覆寫 (請注意,託管還原目標資料庫的執行個體也必須具有先決條件中的許可)。

    重要

    SAP HANA 資料庫還原具有破壞性。還原資料庫會覆寫位於指定目標還原位置的資料庫。

  3. 只有在執行系統複製還原時才完成此步驟;否則,請跳至步驟 4。

    系統複製還原是一種還原任務,其中還原目標資料庫與產生復原點的來源資料庫不同。若要進行系統複製還原,請注意控制台上提供給您的 aws ssm-sap put-resource-permission 命令。必須複製此命令,並貼到已完成先決條件的機器上加以執行。執行命令時,請使用您設定註冊應用程式所需的許可先決條件中的角色憑證。

    // Example command aws ssm-sap put-resource-permission \ --region us-east-1 \ --action-type RESTORE \ --source-resource-arn arn:aws:ssm-sap-east-1:112233445566:HANA/Foo/DB/HDB \ --resource-arn arn:aws:ssm-sap:us-east-1:112233445566:HANA/Bar/DB/HDB
  4. 選擇還原位置後,您可以看到目標資料庫的資源 ID、應用程式名稱 資料庫類型 EC2執行個體

  5. 或者,您可以展開進階還原設定,以變更目錄還原選項。可用的選項會根據選取的還原設定而有所不同。

  6. 按一下 還原備份

  7. 目標位置將在還原期間遭到覆寫 (「破壞性還原」),因此您必須在下一個快顯對話方塊中提供允許這項操作的確認。

    1. 若要繼續,您必須了解現有資料庫將遭到所要還原的資料庫覆寫。

    2. 了解這點之後,您必須確認現有資料將遭到覆寫。若要確認這點並繼續進行,請在文字輸入欄位中輸入 overwrite

  8. 按一下 還原備份

如果程序成功,主控台頂端會出現藍色橫幅。這表示還原任務正在進行中。系統會自動將您重新導向至「任務」頁面,其中您的還原任務會顯示在還原任務清單中。這個最近任務的狀態為 Pending。您也可以搜尋,然後按一下還原任務 ID,來查看每個還原任務的詳細資訊。您可以按一下「重新整理」按鈕來重新整理還原任務清單,以檢視還原任務狀態的變更。

StartRestoreJob API SAPHANA上的 EC2

此動作會復原由 Amazon Resource Name () 識別的已儲存資源ARN。

請求語法

PUT /restore-jobs HTTP/1.1 Content-type: application/json { "IdempotencyToken": "string", "Metadata": { "string" : "string" }, "RecoveryPointArn": "string", "ResourceType": "string" }

URI 請求參數 :請求不會使用任何URI參數。

請求內文 :請求接受下列JSON格式的資料:

IdempotencyToken客戶選擇的字串,可用來區分與 的相同呼叫StartRestoreJob。重試具有相同等冪性字符的成功請求會導致出現成功消息,但未執行任何動作。

類型:字串

必要:否

中繼資料

一組中繼資料鍵值對。包含還原復原點所需的資訊,例如資源名稱。您可以在備份資源時,透過呼叫 GetRecoveryPointRestoreMetadata 取得有關資源的組態中繼資料。但是,除了 GetRecoveryPointRestoreMetadata 提供的值之外,還可能需要還原資源。例如,如果原始資源已存在,您可能需要提供新資源名稱。

您需要包含特定中繼資料,才能在 Amazon EC2執行個體SAPHANA上還原 。如需 SAP HANA特定項目,請參閱 StartRestoreJob 中繼資料

若要擷取相關的中繼資料,您可以使用呼叫 GetRecoveryPointRestoreMetadata

標準SAPHANA資料庫復原點的範例:

"RestoreMetadata": { "BackupSize": "1660948480", "DatabaseName": "DATABASENAME", "DatabaseType": "SYSTEM", "HanaBackupEndTime": "1674838362", "HanaBackupId": "1234567890123", "HanaBackupPrefix": "1234567890123_SYSTEMDB_FULL", "HanaBackupStartTime": "1674838349", "HanaVersion": "2.00.040.00.1553674765", "IsCompressedBySap": "FALSE", "IsEncryptedBySap": "FALSE", "SourceDatabaseArn": "arn:aws:ssm-sap:region:accountID:HANA/applicationID/DB/DATABASENAME", "SystemDatabaseSid": "HDB", "aws:backup:request-id": "46bbtt4q-7unr-2897-m486-yn378k2mrw9c" }

連續SAPHANA資料庫復原點的範例:

"RestoreMetadata": { "AvailableRestoreBases": "[1234567890123,9876543210987,1472583691472,7418529637418,1678942598761]", "BackupSize": "1711284224", "DatabaseName": "DATABASENAME", "DatabaseType": "TENANT", "EarliestRestorablePitrTimestamp": "1674764799789", "HanaBackupEndTime": "1668032687", "HanaBackupId": "1234567890123", "HanaBackupPrefix": "1234567890123_HDB_FULL", "HanaBackupStartTime": "1668032667", "HanaVersion": "2.00.040.00.1553674765", "IsCompressedBySap": "FALSE", "IsEncryptedBySap": "FALSE", "LatestRestorablePitrTimestamp": "1674850299789", "SourceDatabaseArn": "arn:aws:ssm-sap:region:accountID:HANA/applicationID/DB/SystemDatabaseSid", "SystemDatabaseSid": "HDB", "aws:backup:request-id": "46bbtt4q-7unr-2897-m486-yn378k2mrw9d" }

CLI SAPHANA上的 EC2

此命令會start-restore-job復原由 Amazon Resource Name () 識別的已儲存資源ARN。CLI 將遵循上述API準則。

概要:

start-restore-job --recovery-point-arn value --metadata value --aws:backup:request-id value [--idempotency-token value] [--resource-type value] [--cli-input-json value] [--generate-cli-skeleton value] [--debug] [--endpoint-url value] [--no-verify-ssl] [--no-paginate] [--output value] [--query value] [--profile value] [--region value] [--version value] [--color value] [--no-sign-request] [--ca-bundle value] [--cli-read-timeout value] [--cli-connect-timeout value]

選項

--recovery-point-arn (字串) 是 Amazon Resource Number (ARN) 形式的字串,可唯一識別復原點;例如 arn:aws:backup:region:123456789012:recovery-point:46bbtt4q-7unr-2897-m486-yn378k2mrw9d

--metadata (映射):一組中繼資料鍵值對。包含還原復原點所需的資訊,例如資源名稱。您可以在備份資源時,透過呼叫 GetRecoveryPointRestoreMetadata 取得有關資源的組態中繼資料。但是,除了 GetRecoveryPointRestoreMetadata 提供的值之外,還可能需要還原資源。您需要指定特定的中繼資料,才能在 Amazon EC2執行個體SAPHANA上還原 :

  • aws:backup:request-id:這是用於意識模糊的任何UUID字串。不會以任何方式改變您的還原體驗。

  • aws:backup:TargetDatabaseArn:指定您要還原的目標資料庫。這是 Amazon EC2 資料庫 SAPHANA上的 ARN。

  • CatalogRestoreOption:指定您要還原目錄的來源位置。可以是 NO_CATALOGLATEST_CATALOG_FROM_AWS_BACKUPCATALOG_FROM_LOCAL_PATH 的其中之一

  • LocalCatalogPath:如果 CatalogRestoreOption 中繼資料值為 CATALOG_FROM_LOCAL_PATH,請在EC2執行個體上指定本機目錄的路徑。這應該是EC2執行個體中的有效檔案路徑。

  • RecoveryType:目前支援 FULL_DATA_BACKUP_RECOVERYPOINT_IN_TIME_RECOVERYMOST_RECENT_TIME_RECOVERY 復原類型。

鍵 = (字串);值 = (字串)。速記語法:

KeyName1=string,KeyName2=string

JSON 語法:

{"string": "string" ...}

--idempotency-token 是使用者所選擇的字串,可用來區分在其他方面相同的 StartRestoreJob 呼叫。重試具有相同等冪性字符的成功請求會導致出現成功消息,但未執行任何動作。

--resource-type 是開始任務以還原下列其中一個資源的復原點的字串:SAP HANA on Amazon EC2適用於 Amazon SAPHANA上的 EC2。或者,可以使用 命令標記SAPHANA資源 aws ssm-sap tag-resource

輸出RestoreJobId 是一個字串,可唯一識別還原復原點的任務。

SAP HANA 高可用性 (HA) 還原

當您還原 的高可用性 (HA) SAP 系統時,需要包含一些重要的考量事項和其他步驟HANA。展開下方最符合您使用案例的區段。

還原案例:

還原至目標 (目的地) SAP HANA HA 系統之前,

  1. 如果已安裝叢集,請將所有叢集備註置於維護模式。

  2. 停止所有節點上的SAPHANA資料庫,包括主要和次要節點。

  3. (建議) 停用任何備份計劃,以確保它們不會干擾還原操作。

還原任務完成後,前往還原的 SAP HANA HA 系統,然後:

  1. 在主要模式下啟動SAPHANA資料庫。

  2. 手動啟動任何還原系統資料庫但其租用戶未還原的租用戶資料庫。

  3. 在主要節點和次要節點之間重新建立SAPHANA系統複寫 (HSR)。

  4. 在次要節點上啟動SAPHANA資料庫。

  5. 如果已安裝叢集,請確保所有叢集節點都在線上。

  6. 啟用您在還原操作之前停用的任何備份計畫。

(選用) 您可以透過呼叫 ,在 AWS Systems Manager SAP 上保持應用程式同步StartApplicationRefresh,或者您可以等待排程的應用程式重新整理,以帶來最新的SAP中繼資料。

在開始還原任務之前,請前往目標單節點SAPHANA系統,然後:

  1. 停止目標SAPHANA系統上的SAPHANA資料庫。

  2. (建議) 停用任何備份計劃,以確保它們不會干擾還原操作。

還原任務完成後,前往目標單節點SAPHANA系統,然後:

  1. 在目標SAPHANA系統上SAPHANA啟動 。

  2. 手動啟動目標節點上的每個租戶資料庫。

  3. 啟用您在還原操作之前停用的任何備份計畫。

(選用) 您可以透過呼叫 ,在 AWS Systems Manager SAP 上保持應用程式同步StartApplicationRefresh,或者您可以等待排程的應用程式重新整理,以帶來最新的SAP中繼資料。

開始還原任務之前,請先前往目標SAPHANA系統,然後:

  1. (選用,但建議) 將任何已安裝的叢集置於維護模式,以避免在還原操作期間意外接管。

  2. 確保系統資料庫在目標系統上執行SAPHANA。

  3. (建議) 停用任何備份計劃,以確保它們不會干擾還原操作。

還原任務完成後:

  • 啟用您在還原操作之前停用的任何備份計畫。

故障診斷

如果在嘗試進行備份操作時發生下列任何錯誤,請參閱相關的解決方法。

  • 錯誤:連續備份日誌錯誤

    為了維護連續備份的復原點, 會SAPHANA針對所有變更建立日誌。當日誌無法使用時,每個連續復原點的狀態都會是 STOPPED。可用來還原的最後一個可行復原點具有 AVAILABLE 狀態。如果在狀態為 STOPPED 的復原點與狀態為 AVAILABLE 的復原點時間間隔內遺失日誌資料,則無法保證這些時間還原成功。如果您在此範圍內輸入日期和時間, AWS Backup 會嘗試備份,但會使用最接近的可用可還原時間。此錯誤會顯示訊息 “Encountered an issue with log backups. Please check SAP HANA for details."

    解決方法:在主控台中,會根據日誌顯示最近的可還原時間。您可以輸入比所顯示時間更近的時間。但是,如果日誌中沒有此時間的資料, AWS Backup 將使用最新的可還原時間。

  • 錯誤:Internal error

    解決方案:從您的主控台或聯絡人建立支援案例, AWS Support 其中包含還原的詳細資訊,例如還原任務 ID。

  • 錯誤:The provided role arn:aws:iam::ACCOUNT_ID:role/ServiceLinkedRole cannot be assumed by AWS Backup

    解決方法:確定呼叫還原時所扮演的角色具有建立服務連結角色的必要許可。

  • 錯誤:User: arn:aws:sts::ACCOUNT_ID:assumed-role/ServiceLinkedRole/AWSBackup-ServiceLinkedRole is not authorized to perform: ssm-sap:GetOperation on resource: arn:aws:ssm-sap:us-east-1:ACCOUNT_ID:...

    解決方法:確定已正確輸入呼叫必要條件中所述的還原許可時所扮演的角色。

  • 錯誤:b* 449: recovery strategy could not be determined: [111014] The backup with backup id '1660627536506' cannot be used for recovery SQLSTATE: HY000\n

    解決方法:確定已正確安裝 Backint Agent。檢查所有先決條件,特別是在SAP應用程式伺服器上安裝 AWS BackInt 代理程式和 AWS Systems Manager 的 SAP ,然後再次嘗試安裝 BackInt 代理程式。

  • 錯誤:IllegalArgumentException: Restore job provided is not ready to return chunks, current restore job status is: CANCELLED

    解決方法:還原任務已由服務任務流程取消。請重試還原任務。

  • 錯誤:在SAPHANA高可用性系統上遇到問題還原租用戶資料庫: b* -10709: Connection failed (RTE:[89006] System call 'connect' failed, rc=111:Connection refused ([::1]:40404 → localhost:30013))\n

    解決方案:檢查 SAPHANA以確保 SYSTEMDB 已啟動並執行。

  • 錯誤:b'* 448: recovery could not be completed: [301102] exception 301153: Sending root key to secondary failed: connection refused. This may be caused by a stopped system replication secondary. Please keep the secondary online to receive the restored root key. Alternatively you could unregister the secondary site in case of an urgent recovery.\n SQLSTATE: HY000\n'

    解決方案:在SAPHANA高可用性系統上,執行作用中還原操作時, SAP HANA 可能不會在次要節點上執行。從次要節點SAPHANA開始,然後再次重試還原任務。

  • 錯誤:RequestError: send request failed\ncaused by: read tcp 10.0.131.4:40482->35.84.99.47:443: read: connection timed out"

    解決方法:執行個體上發生暫時性網路不穩定。請重試還原。如果此問題持續發生,請嘗試將 ForceRetry: "true" 新增至位於 /hana/shared/aws-backint-agent/aws-backint-agent-config.yaml. 的代理程式組態檔案

如需任何其他 AWS Backint 代理程式相關問題,請參閱針對 Backint SAP 代理程式進行故障診斷 AWS HANA