將 SQL Server 資料庫遷移至 SQL Server 適用的 Cloud SQL

本文說明如何使用資料庫移轉服務,將 SQL Server 資料庫遷移至 SQL Server 適用的 Cloud SQL 執行個體。

遷移程序包含下列工作:

  1. 從來源 SQL Server 執行個體匯出完整資料庫備份和交易記錄檔。

    您也可以在遷移程序中使用選用的差異資料庫備份。

  2. 將備份檔案上傳至 Cloud Storage bucket。

  3. 建立目的地 SQL Server 適用的 Cloud SQL 執行個體。

  4. 在資料庫移轉服務建立及執行移轉工作。

  5. 使用資料庫遷移服務的可觀測性功能,監控遷移工作進度。

  6. 在資料完整移轉後推送移轉工作。

費用

對於同質遷移作業至 Cloud SQL,不必支付額外費用即可使用資料庫遷移服務。不過,網路費用以及為遷移作業建立的 Cloud SQL 和 Cloud Storage 實體,都適用 Cloud SQL 和 Cloud Storage 定價。

在本文件中,您會使用下列Google Cloud的計費元件:

  • Cloud Storage
  • Cloud SQL

如要根據預測用量估算費用,請使用價格計算機

事前準備

  1. 確認這個遷移路徑是否完全支援您的情境。 請參閱「SQL Server 已知限制」。
  2. 請考慮要在哪個區域建立目的地資料庫。 資料庫遷移服務是完全區域性的產品,也就是說,與遷移作業相關的所有實體 (來源和目的地連線設定檔、遷移工作、目的地資料庫、儲存空間值區) 都必須儲存在單一區域。
  3. 在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案

    前往專案選取器

  4. 啟用資料庫遷移服務、Compute Engine、Cloud Storage 和 Cloud SQL Admin API。

    啟用 API

必要的角色

如要取得使用 資料庫遷移服務 執行同質 SQL Server 遷移作業所需的權限,請要求管理員在專案中,為 遷移程序涉及的帳戶授予必要的 IAM 角色

如要進一步瞭解如何授予角色,請參閱「 管理存取權」。

這些預先定義的角色具備使用資料庫移轉服務,執行相同系統的 SQL Server 遷移作業所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要使用資料庫遷移服務執行同質 SQL Server 遷移作業,您必須具備下列權限:

  • 執行遷移作業的使用者帳戶:
    • datamigration.*
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • cloudsql.operations.get
    • cloudsql.instances.create
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.import
    • cloudsql.databases.get
    • cloudsql.databases.list
    • cloudsql.databases.delete
    • compute.machineTypes.list
    • compute.machineTypes.get
    • compute.projects.get
    • storage.buckets.create
    • storage.buckets.list
  • 資料庫遷移服務服務帳戶:
    • datamigration.*
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • cloudsql.instances.create
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.executeSql
    • storage.objects.create
    • storage.objects.list

您或許還可透過 自訂角色或其他 預先定義的角色取得這些權限。

準備來源資料

如要準備要移轉的來源資料,請按照下列步驟操作:

  1. 考量遷移程序的備份策略。 資料庫遷移服務支援使用差異備份和交易記錄檔案,遷移完整備份後出現在資料庫中的資料。

  2. 對來源 SQL Server 資料庫執行完整備份。 請務必使用正確的命名模式。

  3. 準備 Cloud Storage bucket,並將備份檔案上傳至該 bucket。 請務必為要使用的每個備份檔案類型設定必要的目錄結構。

  4. 為 Cloud Storage bucket 建立來源連線設定檔

準備 SQL Server 適用的 Cloud SQL 目的地執行個體

如要設定目的地 Cloud SQL 執行個體,請完成下列步驟:

  1. 建立及設定 SQL Server 適用的 Cloud SQL 目的地執行個體。請務必使用足夠的運算和記憶體資源來滿足遷移需求,並將 Storage 管理員 (roles/storage.admin) 角色指派給執行個體的服務帳戶。

  2. 為 Cloud SQL 執行個體建立目的地連線設定檔

建立並執行遷移工作

如要設定及執行遷移作業,請按照下列步驟操作:

  1. 建立並執行遷移工作

    啟動遷移工作後,目的地 SQL Server 適用的 Cloud SQL 資料庫會進入復原模式,由資料庫遷移服務全面管理。資料完整遷移後,即可升級目標執行個體。升級目的地執行個體後,該執行個體中的所有資料庫都會完全正常運作。您也會獲得這些資料庫的完整寫入權限。

    您可以使用資料庫遷移服務的監控功能,監控遷移進度和目的地執行個體的健康狀態。請參閱 遷移工作指標

  2. 持續將新的交易記錄備份檔案上傳至 Cloud Storage bucket。

    如要涵蓋完整備份匯出作業後出現在來源資料庫中的資料,請 匯出交易記錄備份檔案,並上傳至儲存空間值區。資料庫遷移服務會自動偵測新檔案、讀取檔案內容,並將資料推送至目的地執行個體。請參閱「 自動匯出交易記錄」。

完成遷移作業

決定將應用程式切換至新的 SQL Server 適用的 Cloud SQL 執行個體時,請按照下列步驟完成遷移作業:

  1. 停止對來源資料庫的所有寫入作業。您可以將這些檔案切換為唯讀模式,保留運作功能。
  2. 進行最後一次交易記錄備份,將檔案上傳至儲存空間 bucket,然後在資料庫遷移服務中停止增量載入階段。如要達到這個目標,請執行下列其中一項動作:
    • 停止 自動上傳備份檔案,或上傳最後一個交易記錄檔。監控「未處理的交易記錄備份大小」,判斷資料庫遷移服務何時會處理完該檔案。
    • 你也可以視需要上傳名稱結尾為 .trn.final 後置字串的交易記錄檔。如果偵測到備份檔案名稱符合 .trn.final後置字串慣例,資料庫遷移服務就會停止持續載入。

      資料庫遷移服務處理完該檔案後,遷移作業狀態會變更為「Ready to promote」(準備升級)

  3. 升級遷移工作
  4. (選用) 確認遷移資料是否完整。