跳至內容

如何將 SQL Server 資料庫原生備份至 Amazon RDS,並從 Amazon S3 還原?

2 分的閱讀內容
0

我想將 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 資料庫的原生備份

完成以下步驟:

  1. 開啟 Amazon Aurora and RDS console (Amazon Aurora 和 RDS 主控台)。
  2. 在導覽窗格中,選擇 Option groups (選項群組)。
  3. 選擇 Create group (建立群組),然後輸入伺服器的名稱、描述、引擎和引擎版本。
  4. 選擇 Create (建立)。
  5. 選取選項群組,然後選擇 Add option (新增選項)。
  6. 在 Option name (選項名稱),選擇 SQLSERVER_BACKUP_RESTORE。
    **注意:**最佳實務是建立新的 AWS Identity and Access Management (IAM) 角色,讓該角色具備必要權限。
  7. 在 S3 destination (S3 目的地),選取您的 S3 儲存貯體。
  8. 在 Scheduling (排程),選擇 Immediately (立即)。
  9. 選擇 Add option (新增選項)。

將選項群組與資料庫執行個體建立關聯

完成以下步驟:

  1. 在導覽窗格中,選擇 Databases (資料庫),然後選取要備份的執行個體。
  2. 選擇 Modify (修改),然後選擇 Additional configuration (其他組態)。
  3. 在 Database options (資料庫選項),選取您的選項群組,然後選擇 Continue (繼續)。
  4. 檢閱 Summary of modifications (修改摘要)。
  5. 在 Schedule modifications (排程修改),選擇 Apply immediately (立即套用),然後選擇 Modify DB Instance (修改資料庫執行個體)。
    注意: 這項變更本身不會造成停機時間,但選取 Apply Immediately (立即套用) 選項時請謹慎。如果資料庫執行個體有需要停機的擱置中變更,則 Apply Immediately (立即套用) 選項可能會造成非預期停機。如需更多資訊,請參閱使用排程修改設定。
  6. 等待狀態從 Modifying (修改中) 變更為 Available (可用)。

透過 SSMS 連線至資料庫執行個體

完成以下步驟:

  1. 以 db_owner 或 db_backupoperator 身分登入 Microsoft SQL Server Management Studio (SSMS)。
  2. 選擇 New Query (新增查詢),然後啟動資料庫備份。
  3. 輸入以下其中一個 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 資料庫