我想要了解如何在 Amazon RDS 上執行 SQL Server 資料庫的原生備份,並在 Amazon S3 中還原備份檔案。我想要探索如何將這些備份還原成執行 SQL Server 的相同或不同 RDS 資料庫執行個體。
簡短說明
您可以使用 Amazon RDS 備份,將備份檔案儲存於 Amazon Simple Storage Service (Amazon S3)。您也可以使用資料庫備份檔案還原至相同或不同的 Amazon RDS backups 資料庫執行個體。
Amazon RDS 支援 Microsoft SQL Server 資料庫的原生備份和還原。您可以建立內部部署資料庫的完整備份,並將檔案儲存在 Amazon S3 中。然後,您可以將備份檔案還原至執行 SQL Server 的現有 Amazon RDS 資料庫執行個體。也可以將此備份檔案還原至內部部署伺服器或執行 SQL Server 的其他 Amazon RDS 資料庫執行個體。如需詳細資訊,請參閱 Microsoft 網站上的還原備份。
解決方法
開始原生備份前,請確定您擁有以下元件:
若要設定 SQL Server 資料庫的原生備份,請執行下列步驟:
- 開啟 Amazon RDS 主控台,然後在導覽窗格中選擇選項群組。
- 選擇建立群組,然後輸入伺服器的名稱、描述、引擎和引擎版本。
- 選擇建立。
- 選取您建立的選項群組,然後選擇新增選項。
- 選擇 SQLSERVER_BACKUP_RESTORE。最佳實務是建立新的 IAM 角色,然後選擇新增選項,以便您的 IAM 角色具有所需的權限。
- 選擇您的 S3 儲存貯體,或建立新的 S3 儲存貯體。
- 選擇立即套用和新增選項。
- 若要將選項群組與資料庫執行個體關聯,請在導覽窗格中選擇資料庫,然後選擇要備份的執行個體。
- 選擇動作,然後選擇修改。
- 在資料庫選項下,選擇您建立的選項群組,然後選擇立即套用和繼續。
- 檢閱資訊,然後選擇修改資料庫執行個體。此選項群組修改沒有停機時間,因為不需要重新啟動執行個體。
- 等待狀態從修改中變為可用。然後,若要透過 SQL Server Management Studio 連接至 DB 執行個體,請使用 RDS 執行個體的主要使用者。
- 選擇新查詢,然後若要啟動所需資料庫的備份,請輸入下列其中一個 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-id 和 key-id,以符合您的案例。若要將使用者資料庫還原至新的 RDS 資料庫執行個體,請使用在 S3 儲存貯體中產生的備份檔案。呼叫 rds_backup_database 或 rds_restore_database 預存程序時,任務會啟動並輸出有關任務的資訊。
在任務的生命週期狀態為 SUCCESS 時,表示任務完成。然後,您可以開啟 Amazon S3 主控台,選擇在其中建立使用者資料庫備份的儲存貯體,然後檢視備份檔案。若要還原資料庫執行個體,請下載此檔案或使用使用者資料庫備份檔案。您可以在新的 RDS 資料庫執行個體中還原相同的 Amazon RDS for SQL Server 資料庫執行個體。
使用下列其中一個 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。
相關資訊
備份簡介
備份、還原和匯出資料
使用原生備份和還原匯入和匯出 SQL Server 資料庫