本頁面說明如何使用資料庫遷移服務,將 SQL Server 適用的 Cloud SQL 資料庫遷移至 SQL Server 適用的 Cloud SQL 執行個體。透過這項移轉流程,您可以將資料庫移至相同或不同 Google Cloud 專案中的其他 SQL Server 適用的 Cloud SQL。如需從自行管理或 Amazon RDS 來源遷移的說明,請參閱「 自行代管和 Amazon RDS 來源的遷移指南」。
從 SQL Server 適用的 Cloud SQL 來源進行遷移時,需要執行下列工作:
設定來源 SQL Server 適用的 Cloud SQL 執行個體,讓資料庫遷移服務自動將備份檔案匯出至 Cloud Storage bucket。
使用 Google Cloud CLI 建立來源連線設定檔。
建立目的地 SQL Server 適用的 Cloud SQL 執行個體。
使用 Google Cloud CLI 在資料庫遷移服務中建立及執行遷移工作。
使用資料庫遷移服務的可觀測性功能,監控遷移工作進度。
在資料完整移轉後推送移轉工作。
費用
對於同質遷移作業至 Cloud SQL,不必支付額外費用即可使用資料庫遷移服務。不過,網路費用以及為遷移作業建立的 Cloud SQL 和 Cloud Storage 實體,都適用 Cloud SQL 和 Cloud Storage 定價。
在本文件中,您會使用下列Google Cloud的計費元件:
- Cloud Storage
- Cloud SQL
如要根據預測用量估算費用,請使用價格計算機。
事前準備
- 確認這個遷移路徑是否完全支援您的情境。 請參閱「SQL Server 已知限制」。
- 請考慮要在哪個區域建立目的地資料庫。 資料庫遷移服務是完全區域性的產品,也就是說,與遷移作業相關的所有實體 (來源和目的地連線設定檔、遷移工作、目的地資料庫、儲存空間值區) 都必須儲存在單一區域。
- 在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案。
- 啟用資料庫遷移服務、Compute Engine、Cloud Storage 和 Cloud SQL Admin API。
必要的角色
如要取得使用資料庫遷移服務在兩個 SQL Server 適用的 Cloud SQL 執行個體之間執行同質遷移作業所需的權限,請要求管理員在相關專案中,將必要的 IAM 角色授予 遷移程序中涉及的帳戶。
在此情境中,您可以遷移兩個位於不同專案的 SQL Server 適用的 Cloud SQL 執行個體。 Google Cloud 如要在同一個專案中的執行個體之間遷移,請在同一個專案中授予所有權限。如要進一步瞭解如何授予角色,請參閱「 管理存取權」。
來源專案中的角色和權限
在 Google Cloud 專案中,將下列角色授予特定帳戶,該專案是來源 SQL Server 適用的 Cloud SQL 執行個體所在位置:
- 執行遷移作業的使用者帳戶:
-
儲存空間管理員 (
roles/storage.admin) -
Cloud SQL 編輯者 (
roles/cloudsql.editor)
-
儲存空間管理員 (
- 目的地執行個體專案的資料庫遷移服務帳戶:
-
Cloud SQL 檢視者 (
roles/cloudsql.viewer) -
Cloud SQL Studio 使用者 (
roles/cloudsql.studioUser)
-
Cloud SQL 檢視者 (
這些預先定義的角色具備使用資料庫移轉服務,執行相同系統的 SQL Server 遷移作業所需的權限。如要查看確切的必要權限,請展開「Required permissions (source project)」(必要權限 (來源專案)) 部分:
必要權限 (來源專案)
如要使用資料庫遷移服務執行同質 SQL Server 遷移作業,您必須具備下列權限:
- 執行遷移作業的使用者帳戶:
resourcemanager.projects.getresourcemanager.projects.listcloudsql.operations.getcloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.importcloudsql.databases.getcloudsql.databases.listcloudsql.databases.deletecompute.machineTypes.listcompute.machineTypes.getcompute.projects.getstorage.buckets.createstorage.buckets.list
- 目的地專案 資料庫遷移服務服務帳戶:
cloudsql.instances.exportcloudsql.instances.getcloudsql.instances.listcloudsql.instances.executeSql
目的地專案中的角色和權限
在 Google Cloud 專案中,將下列角色授予特定帳戶,該專案是目的地 SQL Server 適用的 Cloud SQL 執行個體所在的專案:
- 執行遷移作業的使用者帳戶:
-
資料庫遷移管理員 (
roles/datamigration.admin) -
儲存空間管理員 (
roles/storage.admin) -
Cloud SQL 編輯者 (
roles/cloudsql.editor)
-
資料庫遷移管理員 (
- 目的地執行個體專案的資料庫遷移服務服務帳戶:
-
資料庫遷移管理員 (
roles/datamigration.admin) -
Cloud SQL 編輯者 (
roles/cloudsql.editor) -
Cloud SQL Studio 使用者 (
roles/cloudsql.studioUser)
-
資料庫遷移管理員 (
- 與來源執行個體相關聯的 Cloud SQL 服務帳戶:
儲存空間物件使用者 (
roles/storage.objectUser)這項權限是必要條件,來源 SQL Server 適用的 Cloud SQL 執行個體才能將匯出的備份檔案儲存至您在目標專案中建立的 Cloud Storage bucket。
這些預先定義的角色具備使用資料庫移轉服務,執行相同系統的 SQL Server 遷移作業所需的權限。如要查看確切的必要權限,請展開「Required permissions (destination project)」(必要權限 (目的地專案)) 部分:
必要權限 (目的地專案)
如要使用資料庫遷移服務執行同質 SQL Server 遷移作業,您必須具備下列權限:
- 執行遷移作業的使用者帳戶:
datamigration.*resourcemanager.projects.getresourcemanager.projects.listcloudsql.operations.getcloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.importcloudsql.databases.getcloudsql.databases.listcloudsql.databases.deletecompute.machineTypes.listcompute.machineTypes.getcompute.projects.getstorage.buckets.createstorage.buckets.list
- 資料庫遷移服務服務帳戶:
datamigration.*resourcemanager.projects.getresourcemanager.projects.listcloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.executeSqlstorage.objects.createstorage.objects.list
- 與來源執行個體相關聯的 Cloud SQL 服務帳戶:
storage.objects.createstorage.objects.liststorage.objects.get
準備來源 Cloud SQL 執行個體
在目的地專案中 建立 Cloud Storage bucket。Google Cloud 這個 bucket 用於儲存從來源 SQL Server 適用的 Cloud SQL 執行個體匯出的備份記錄檔。
- 建議您將這些備份檔案的資料保留期限設為
14到30天。 - 與來源執行個體相關聯的 Cloud SQL 服務帳戶,需要「Storage 物件使用者」 (
roles/storage.objectUser) IAM 角色,才能將備份檔案寫入這個 bucket。如要進一步瞭解這項遷移流程的權限,請參閱「 必要的角色」一節。
- 建議您將這些備份檔案的資料保留期限設為
為 SQL Server 適用的 Cloud SQL 來源執行個體 建立來源連線設定檔。
準備 SQL Server 適用的 Cloud SQL 目的地執行個體
如要設定目的地 Cloud SQL 執行個體,請按照下列步驟操作:
建立及設定 SQL Server 適用的 Cloud SQL 目的地執行個體。請確保您使用的運算和記憶體資源足以滿足遷移需求。
為 Cloud SQL 執行個體 建立目的地連線設定檔。
建立並執行遷移工作
啟動遷移工作後,目的地 SQL Server 適用的 Cloud SQL 資料庫會進入復原模式,由資料庫遷移服務全面管理。資料完整遷移後,即可升級目標執行個體。升級目的地執行個體後,該執行個體中的所有資料庫都會完全正常運作。您也會獲得這些資料庫的完整寫入權限。
完成遷移作業
決定將應用程式切換至新的 SQL Server 適用的 Cloud SQL 執行個體時,請按照下列步驟完成遷移作業: