Restore an SAP HANA database on an Amazon EC2 instance
SAP HANA databases on EC2 instances can be restored using the Amazon Backup console, using API, or using Amazon CLI.
Topics
Restore an SAP HANA on Amazon EC2 instance database using the Amazon Backup console
Note that backup jobs and restore jobs involving the same database cannot occur concurrently. When an SAP HANA database restore job is occurring, attempts to back up the same database will likely result in an error: "Database cannot be backed up while it is stopped."
Access the Amazon Backup console using the credentials from prerequisites.
Under the Target restore location dropdown menu, choose a database to overwrite with the recovery point you are using to restore (note that the instance hosting the restore target database must also have the permissions from the prerequisites).
Important
SAP HANA database restores are destructive. Restoring a database will overwrite the database at the specified target restore location.
Complete this step only if you are performing a system copy restore; otherwise, skip to step 4.
System copy restores are restore jobs which restore to a target database different from the source database which generated the recovery point. For system copy restores, notice the
aws ssm-sap put-resource-permission
command provided for you on the console. This command must be copied, pasted, and executed on the machine that completed the prerequisites. When running the command, use the credentials from the role in the prerequisite where you set up the required permissions for registering applications.// Example command aws ssm-sap put-resource-permission \ --region
us-east-1
\ --action-type RESTORE \ --source-resource-arnarn:aws:ssm-sap-east-1:112233445566:HANA/Foo/DB/HDB
\ --resource-arnarn:aws:ssm-sap:us-east-1:112233445566:HANA/Bar/DB/HDB
Once you choose the restore location, you can see the target database’s Resource ID, Application name, Database type, and the EC2 instance.
Optionally, you may open Advanced restore settings to change your catalog restore option. The default selection is to restore the latest catalog from Amazon Backup.
Click Restore backup.
The target location will be overwritten during restore ("destructive restore"), so you must provide confirmation that you permit this in the next pop-up dialog box.
To proceed, you must understand that the existing database will be overwritten by the one you are restoring.
Once this is understood, you must acknowledge the existing data will be overwritten. To acknowledge this and to proceed, type overwrite into the text input field.
Click Restore backup.
If the procedure was successful, a blue banner will appear at the top of the console. This signifies
that the restore job is in progress. You will be automatically redirected to the Jobs page where your
restore job will appear in the list of restore jobs. This most recent job will have a status of
Pending
. You can search for and then click on the restore job ID too see details of each
restore job. You can refresh the restore jobs list by clicking the refresh button to view changes to
the restore job status.
StartRestoreJob API for SAP HANA on EC2
This action recovers the saved resource identified by an Amazon Resource Name (ARN).
Request Syntax
PUT /restore-jobs HTTP/1.1 Content-type: application/json { "IdempotencyToken": "string", "Metadata": { "string" : "string" }, "RecoveryPointArn": "string", "ResourceType": "string" }
URI Request Parameters: The request does not use any URI parameters.
Request Body: The request accepts the following data in JSON format:
IdempotencyTokenA customer-chosen string that you can use to distinguish
between otherwise identical calls to StartRestoreJob
. Retrying a successful request
with the same idempotency token results in a success message with no action taken.
Type: String
Required: No
Metadata
A set of metadata key-value pairs. Contains information, such as a resource name, required to
restore a recovery point. You can get configuration metadata about a resource at the time it was
backed up by calling GetRecoveryPointRestoreMetadata
. However, values in addition to
those provided by GetRecoveryPointRestoreMetadata
might be required to restore a resource.
For example, you might need to provide a new resource name if the original already exists.
You need to include specific metadata to restore an SAP HANA on Amazon EC2 instance. See StartRestoreJob metadata for SAP HANA-specific items.
To retrieve the relevant metadata, you can use the call
GetRecoveryPointRestoreMetadata
.
Example of a standard SAP HANA database recovery point:
"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" }
Example of a continuous SAP HANA database recovery point:
"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 for SAP HANA on EC2
The command start-restore-job
recovers the saved resource identified by
an Amazon Resource Name (ARN). CLI will follow the API guideline above.
Synopsis:
start-restore-job --recovery-point-arn
value
--metadatavalue
--aws:backup:request-idvalue
[--idempotency-tokenvalue
] [--resource-typevalue
] [--cli-input-jsonvalue
] [--generate-cli-skeletonvalue
] [--debug] [--endpoint-urlvalue
] [--no-verify-ssl] [--no-paginate] [--outputvalue
] [--queryvalue
] [--profilevalue
] [--regionvalue
] [--versionvalue
] [--colorvalue
] [--no-sign-request] [--ca-bundlevalue
] [--cli-read-timeoutvalue
] [--cli-connect-timeoutvalue
]
Options
--recovery-point-arn
(string) is a string in the form of an Amazon
Resource Number (ARN) that uniquely identifies a recovery point; for example
arn:aws:backup:
region
:123456789012:recovery-point:46bbtt4q-7unr-2897-m486-yn378k2mrw9d
--metadata
(map): A set of metadata key-value pairs. Contains
information, such as a resource name, required to restore a recovery point. You can get
configuration metadata about a resource at the time it was backed up by calling
GetRecoveryPointRestoreMetadata
. However, values in addition to those
provided by GetRecoveryPointRestoreMetadata
might be required to restore a
resource. You need to specify specific metadata to restore an SAP HANA on Amazon EC2
instance:
-
aws:backup:request-id
: This is any UUID string used for idempotency. It does not alter your restore experience in any way. -
aws:backup:TargetDatabaseArn
: Specify the database to which you want to restore. This is the SAP HANA on Amazon EC2 database ARN. -
CatalogRestoreOption
: Specify where to restore your catalog from. One ofNO_CATALOG
,LATEST_CATALOG_FROM_AWS_BACKUP
,CATALOG_FROM_LOCAL_PATH
-
LocalCatalogPath
: If CatalogRestoreOption metadata value isCATALOG_FROM_LOCAL_PATH
, then specify the path to local catalog on your EC2 instance. This should be a valid file path in your EC2 instance. -
RecoveryType
: Currently,FULL_DATA_BACKUP_RECOVERY
,POINT_IN_TIME_RECOVERY
, andMOST_RECENT_TIME_RECOVERY
recovery types are supported.
key = (string); value = (string). Shorthand syntax:
KeyName1=string,KeyName2=string
JSON syntax:
{"string": "string" ...}
--idempotency-token
is a user-chosen string that you can use to
distinguish between otherwise identical calls to StartRestoreJob
. Retrying a
successful request with the same idempotency token results in a success message with no
action taken.
--resource-type
is a string that starts a job to restore a recovery point
for one of the following resources: SAP HANA on Amazon EC2
for SAP HANA on
Amazon EC2. Optionally, SAP HANA resources can be tagged using the
command aws ssm-sap tag-resource
Output: RestoreJobId
is a string that uniquely
identifies the job that restores a recovery point.
Troubleshooting
If any of the following errors occur while attempting a backup operation, see the associated resolution.
-
Error:Continuous backup log error
To maintain recovery points for continuous backups, logs are created by SAP HANA for all changes. When the logs are unavailable, the status of each of these continuous recovery points is
STOPPED
. The last certain viable recovery point that can be used to restore is one that has the status ofAVAILABLE
. If the log data is missing for the time between recovery points with aSTOPPED
status and points withAVAILABLE
, these times cannot be guaranteed to have a successful restore. If you input a date and time within this range, Amazon Backup will attempt the backup, but will use the closest available restorable time. This error will be shown by the message“Encountered an issue with log backups. Please check SAP HANA for details."
Resolution: In the console, the most recent restorable time, based on the logs, is displayed. You can input a time more recent than the time shown. However, if the data for this time is unavailable from the logs, Amazon Backup will use the most recent restorable time.
-
Error:
Internal error
Resolution: Create a support case from your console or contact Amazon Web Services Support with the details of your restore such as the restore job ID.
-
Error:
The provided role arn:aws:iam::
ACCOUNT_ID
:role/ServiceLinkedRole cannot be assumed by Amazon BackupResolution: Ensure that the role assumed when calling the restore has the required permissions to create service linked roles.
-
Error:
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
:...Resolution: Ensure that the role assumed when calling the restore permissions outlined in the prerequisites is entered correctly.
-
Error:
b* 449: recovery strategy could not be determined: [111014] The backup with backup id '1660627536506' cannot be used for recovery SQLSTATE: HY000\n
Resolution: Ensure that Backint agent was properly installed. Check all the prerequisites, particularly Install Amazon BackInt Agent and Amazon Systems Manager for SAP on your SAP application server and then retry installing the BackInt Agent again.
-
Error:
IllegalArgumentException: Restore job provided is not ready to return chunks, current restore job status is: CANCELLED
Resolution: Restore job was cancelled by the service workflow. Retry restore job.
-
Error:
RequestError: send request failed\ncaused by: read tcp 10.0.131.4:40482->35.84.99.47:443: read: connection timed out"
Resolution: Transient network instability is occurring on the instance. Retry the restore. If this issue happens consistently, try adding
ForceRetry: "true"
to agent config file at/hana/shared/aws-backint-agent/aws-backint-agent-config.yaml.
For any other Amazon Backint agent related issue, refer to Troubleshoot Amazon Backint Agent For SAP HANA.