如何對執行 SQL Server 的 Amazon RDS 資料庫執行個體執行原生備份?

2 分的閱讀內容
0

我想要對執行 SQL Server 的 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體中的使用者資料庫執行原生備份。我需要將備份檔案儲存在 Amazon Simple Storage Service (Amazon S3) 中,或使用資料庫備份檔案還原至相同或不同的 Amazon RDS for SQL Server 資料庫執行個體。

簡短描述

Amazon RDS 支援 Microsoft SQL Server 資料庫的原生備份和還原。您可以建立內部部署資料庫的完整備份,並將檔案儲存在 Amazon S3 中。然後,您可以將備份檔案還原至執行 SQL Server 的現有 Amazon RDS 資料庫執行個體。也可以將此備份檔案還原至內部部署伺服器或執行 SQL Server 的其他 Amazon RDS 資料庫執行個體。

解決方法

若要設定 SQL Server 資料庫的原生備份,您需要下列元件:

  1. 開啟 Amazon RDS 主控台,然後在導覽窗格中選擇選項群組。選擇建立群組,然後輸入伺服器的名稱、描述、引擎和引擎版本。然後,選擇建立
  2. 選取您建立的選項群組,然後選擇新增選項。選擇 SQLSERVER_BACKUP_RESTORE。最佳實務是建立新的 IAM 角色,然後選擇新增選項,以便您的 IAM 角色具有所需的權限。選擇您的 S3 儲存貯體,或建立新的 S3 儲存貯體。然後,選擇立即套用新增選項
  3. 透過在導覽窗格中選擇資料庫,將選項群組與資料庫執行個體關聯,然後選擇要備份的執行個體。選擇動作,然後選擇修改
  4. 資料庫選項下,選擇您建立的選項群組,然後選擇立即套用繼續。檢閱資訊,然後選擇修改資料庫執行個體。此選項群組修改沒有停機時間,因為不需要重新啟動執行個體。
  5. 在狀態從修改中變更為可用時,使用 RDS 執行個體的主要使用者透過 SQL Server Management Studio 連接至資料庫執行個體。然後,選擇新查詢,並輸入下列其中一個 SQL 陳述式,以啟動所需資料庫的備份:

啟動未加密資料庫的備份

exec msdb.dbo.rds_backup_database
@source_db_name='database_name', @s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension',
@overwrite_S3_backup_file=1;

啟用已加密資料庫的備份

exec msdb.dbo.rds_backup_database
@source_db_name='database_name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension',   
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id',
@overwrite_S3_backup_file=1;

**注意:**取代這些範例中列出的 database_name、bucket_name、file_name_and_extension、region、account-idkey-id,以符合您的案例。您可以使用 S3 儲存貯體中產生的備份檔案,來將使用者資料庫還原至新的 RDS 資料庫執行個體。呼叫 rds_backup_databaserds_restore_database 預存程序時,任務會啟動並輸出有關任務的資訊。

在任務的生命週期狀態為 SUCCESS 時,表示任務完成。然後,您可以開啟 Amazon S3 主控台,選擇在其中建立使用者資料庫備份的儲存貯體,並檢視備份檔案。您可以下載此文件,或使用使用者資料庫備份檔案還原至相同 Amazon RDS for SQL Server 資料庫執行個體或新的 RDS 資料庫執行個體。

使用下列其中一個 SQL 陳述式從 S3 儲存貯體中可用的備份檔案進行還原

還原未加密的資料庫

exec msdb.dbo.rds_restore_database
@restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name_and_extension';

還原加密的資料庫

exec msdb.dbo.rds_restore_database
@restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3::: bucket_name/file_name_and_extension',
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id';

在執行備份或還原陳述式後,您可以取得任務 ID。或者,您可以使用下列指令碼,來識別特定資料庫的所有已完成和待處理的任務:

exec msdb.dbo.rds_task_status @db_name='database_name'

若要追蹤任務的狀態,請使用以下 SQL 陳述式:

exec msdb..rds_task_status @task_id= 5

如需潛在錯誤和解決方案的清單,請參閱將 Microsoft SQL Server Enterprise 工作負載遷移至 Amazon RDS


相關資訊

使用備份

備份和還原 Amazon RDS 資料庫執行個體

使用原生備份和還原匯入和匯出 SQL Server 資料庫

AWS 官方
AWS 官方已更新 2 年前