我想將資料庫從 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體或內部部署 Microsoft SQL Server 執行個體移轉到的 Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server 執行個體。
解決方法
移轉資料的方法
原生 SQL Server 備份與還原
您可以使用原生備份和還原來將 SQL Server 資料庫從內部部署或 Amazon EC2 執行個體移轉到 Amazon RDS for SQL Server 執行個體。為此,請完成下列步驟:
-
建立 Amazon Simple Storage Service (Amazon S3) 儲存貯體來儲存來自來源執行個體的備份。Amazon S3 儲存貯體必須與 Amazon RDS 執行個體位於相同的 AWS 區域。
-
建立 AWS Identity and Access Management (IAM) 角色來存取儲存貯體。
-
將 SQL SERVER\BACKUP\RESTORE 選項新增至與 Amazon RDS for SQL Server 執行個體關聯的選項群組。
-
從來源執行個體 (內部部署或 Amazon EC2) 建立備份,然後將其複製到您在步驟 1 中建立的 Amazon S3 儲存貯體。
-
執行下列指令碼,將備份還原至 Amazon RDS for SQL Server 執行個體:
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';
-
執行下列指令碼,將 Amazon RDS 執行個體資料庫備份至 S3:
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;
**注意:**您也可以備份和還原差異備份。
AWS Database Migration Service (AWS DMS)
請完成下列步驟:
- 驗證使用 SQL Server 作為 AWS DMS 來源或目標的先決條件和限制。
- 建立 AWS DMS 複寫執行個體。
- 使用 AWS DMS 建立來源和目標端點。
- 建立移轉任務。
交易式複寫
您可以設定從內部部署或 EC2 SQL Server 執行個體到 Amazon RDS for SQL Server 執行個體的交易式複寫。但是,您只能將 Amazon RDS for SQL Server 執行個體設為訂閱用戶。此外,您只能將內部部署或 EC2 SQL Server 執行個體設為具有推送訂閱的發布者或分發者。
若要從內部部署或 Amazon EC2 SQL Server 執行個體設定交易式複寫,請參閱下列指示:
備份套件 (.bacpac) 檔案
**.bacpac ** 檔案由複製的中繼資料以及壓縮成檔案的資料組成。對於大約 200 GB 的資料庫,最佳做法是使用 .bacpack 檔案。您可以使用匯出/匯入或 SQLPackage.exe (命令列) 公用程式來建立 .bacpac 檔案。如需 .bacpac 檔案的詳細資訊,請參閱使用 bacpac 方法將 SQL Server 資料庫從 Azure SQL 資料庫移轉到 Amazon RDS for SQL Server。
匯入資料的方法
產生和發佈指令碼精靈
如果您的資料庫小於 1 GB,那麼您可以使用「產生和發佈指令碼精靈」。對於較大的資料庫,您可以使用「匯入與匯出精靈」或「大量複製」方法來編寫資料庫的結構描述。如需「產生和發佈指令碼精靈」的詳細資訊,請參閱 Microsoft SQL Server 文件中的方法: 產生指令碼 (SQL Server Management Studio)。
注意:請確定在設定指令碼選項頁面上,選取將指令碼儲存到特定位置、進階。進階設定提供更多選項,可在匯入或匯出時包含或排除資料表中的物件。
匯入與匯出精靈
「匯入與匯出精靈」會建立整合套件。整合套件可用來將資料從內部部署或 Amazon EC2 SQL Server 資料庫複製到Amazon RDS for SQL Server 執行個體。您可以篩選要複製到 Amazon RDS 執行個體的特定資料表。
如需「匯入與匯出精靈」的詳細資訊,請參閱 Microsoft SQL Server 文件中的方法: 執行 SQL Server 匯入與匯出精靈。
注意:執行「匯入與匯出精靈」時,請確定為目的地 Amazon RDS for SQL Server 執行個體選擇下列選項:
- 在 Server Name (伺服器名稱) 中,輸入 Amazon RDS 資料庫執行個體的端點名稱。
- 在 Authentication mode (驗證模式) 中,選擇 SQL Server Authentication (SQL Server 驗證)。
- 在 Username (使用者名稱) 和 Password (密碼) 中,輸入您在 Amazon RDS 執行個體中建立的主要使用者。
大量複製程式公用程式
大量複製程式 (bcp) 是一個命令列公用程式,用於在 SQL Server 執行個體之間大量複製資料。您可以使用 bcp 公用程式將大型資料集匯入至 SQL Server 執行個體,或匯出至檔案。
以下是 IN 和 OUT 命令的範例:
**OUT:**使用此命令可從資料表將記錄匯出或傾印到檔案中:
bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P password -b 10000
上述程式碼包含以下選項:
- **-n:**指定大量複本使用要複製資料的原生資料類型。
- **-S:**指定 bcp 公用程式連線到的 SQL Server 執行個體。
- **-U:**指定用於登入 SQL Server 執行個體之 AWS 帳戶的使用者名稱。
- **-P:**指定由 -U 指定之使用者的密碼。
- **-b:**指定每批匯入資料的資料列數。
**IN:**使用此命令可將傾印檔案中的所有記錄匯入現有資料表。您必須先建立資料表,然後再執行 bcp 命令。
bcp dbname.schema_name.table_name in C:\table_name.txt -n -S endpoint,port -U master_user_name -P master_user_password -b 10000
如需詳細資訊,請參閱 Microsoft SQL Server 文件中的 bcp 公用程式。