我想將 SQL Server 資料庫原生備份至 Amazon Relational Database Service (Amazon RDS),並將備份檔案儲存在 Amazon Simple Storage Service (Amazon S3) 中。我也想將備份還原至執行 SQL Server 的相同或不同 Amazon RDS 資料庫執行個體。
解決方法
開始原生備份之前,請確定您已設定原生備份與還原。
**注意:**Amazon S3 儲存貯體必須與 Amazon RDS 資料庫執行個體位於相同的 AWS 區域。
設定 SQL Server 資料庫的原生備份
完成以下步驟:
- 開啟 Amazon Aurora and RDS console (Amazon Aurora 和 RDS 主控台)。
- 在導覽窗格中,選擇 Option groups (選項群組)。
- 選擇 Create group (建立群組),然後輸入伺服器的名稱、描述、引擎和引擎版本。
- 選擇 Create (建立)。
- 選取選項群組,然後選擇 Add option (新增選項)。
- 在 Option name (選項名稱),選擇 SQLSERVER_BACKUP_RESTORE。
**注意:**最佳實務是建立新的 AWS Identity and Access Management (IAM) 角色,讓該角色具備必要權限。
- 在 S3 destination (S3 目的地),選取您的 S3 儲存貯體。
- 在 Scheduling (排程),選擇 Immediately (立即)。
- 選擇 Add option (新增選項)。
將選項群組與資料庫執行個體建立關聯
完成以下步驟:
- 在導覽窗格中,選擇 Databases (資料庫),然後選取要備份的執行個體。
- 選擇 Modify (修改),然後選擇 Additional configuration (其他組態)。
- 在 Database options (資料庫選項),選取您的選項群組,然後選擇 Continue (繼續)。
- 檢閱 Summary of modifications (修改摘要)。
- 在 Schedule modifications (排程修改),選擇 Apply immediately (立即套用),然後選擇 Modify DB Instance (修改資料庫執行個體)。
注意: 這項變更本身不會造成停機時間,但選取 Apply Immediately (立即套用) 選項時請謹慎。如果資料庫執行個體有需要停機的擱置中變更,則 Apply Immediately (立即套用) 選項可能會造成非預期停機。如需更多資訊,請參閱使用排程修改設定。
- 等待狀態從 Modifying (修改中) 變更為 Available (可用)。
透過 SSMS 連線至資料庫執行個體
完成以下步驟:
- 以 db_owner 或 db_backupoperator 身分登入 Microsoft SQL Server Management Studio (SSMS)。
- 選擇 New Query (新增查詢),然後啟動資料庫備份。
- 輸入以下其中一個 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
注意: 使用 @overwrite_s3_backup_file=1 覆寫已存在的備份檔案。預設值為 0。
**注意:**在上述陳述式中,請將 database_name, bucket_name, file_name_and_extension, region, account-id 和 key-id 替換為您的值。若要將使用者資料庫還原至新的 Amazon RDS 資料庫執行個體,請使用您在 S3 儲存貯體中產生的備份檔案。當您呼叫 rds_backup_database 或 rds_restore_database 程序時,任務會產生該任務的相關資訊。
當任務的生命週期狀態顯示成功時,表示任務已完成。使用 Amazon S3 console (Amazon S3 主控台),在建立使用者資料庫備份的儲存貯體中檢視備份檔案。若要還原資料庫執行個體,請下載 S3 儲存貯體中的備份檔案,或使用使用者資料庫備份檔案。您可以將其還原至相同的 Amazon RDS for SQL Server 資料庫執行個體,也可以還原至新的 Amazon RDS 資料庫執行個體。您也可以將此備份檔案還原至內部部署伺服器,或還原至執行 SQL Server 的其他 Amazon RDS 資料庫執行個體。如需更多資訊,請參閱 Microsoft 網站上的快速入門: 使用 SSMS 備份及還原 SQL Server 資料庫。
若要從 S3 儲存貯體中的備份檔案還原,請使用以下其中一個 SQL 陳述式。
若要還原未加密的備份,請執行以下陳述式:
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';
**注意:**在上述陳述式中,請將整個 Amazon Resource Name (ARN) 替換為您的值。
若要追蹤備份或還原陳述式的進度,請從輸出中找出任務 ID。或者,使用以下陳述式識別特定資料庫的所有已完成和擱置中任務:
exec msdb.dbo.rds_task_status @db_name='database_name';
**注意:**將 database_name 替換為您的資料庫名稱。
若要追蹤作業狀態,請執行以下 SQL 陳述式:
exec msdb.dbo.rds_task_status @task_id=Task_id;
**注意:**在上述陳述式中,請將 Task_id 替換為您的值。
如需有關您可能遇到的錯誤及其解決方法的資訊,請參閱將 Microsoft SQL Server 企業工作負載遷移至 Amazon RDS。
相關資訊
備份簡介
備份、還原和匯出資料
使用原生備份與還原匯入和匯出 SQL Server 資料庫