使用資料庫遷移服務快速開始遷移

如要簡化同質 PostgreSQL 遷移至 AlloyDB for PostgreSQL 的作業,您可以使用資料庫遷移服務中的快速啟動遷移功能,自動佈建網路連線、連線設定檔和連續複製工作。

總覽

快速啟動遷移是輕量級的連續遷移流程,適用於同質 PostgreSQL 情境。使用快速啟動遷移功能,資料庫遷移服務會自動設定遷移資料庫所需的一切:網路元件 (網路連結、子網路、私人連線設定)、連線設定檔和遷移工作。

透過快速啟動遷移功能,您可以將資料移至現有的 AlloyDB for PostgreSQL 叢集,或在設定遷移作業時建立新叢集。快速遷移功能最適合用於:

  • 基本遷移:不需要精確控管資料轉儲平行處理設定。
  • 將資料庫從一個 Google Cloud 專案遷移至另一個專案。設定快速啟動遷移作業時,您可以在與來源不同的專案中建立目的地叢集,並設定資料庫遷移服務,在另一個專案的虛擬私有雲 (VPC) 網路中建立網路連結和子網路。
  • 從 Google Cloud虛擬私有雲 (VPC) 網路中具有私人 IP 位址的來源遷移,例如 Compute Engine 上的自行管理資料庫,或已啟用私人網路的 PostgreSQL 適用的 Cloud SQL 執行個體。

    託管於 Google Cloud 外部的來源可能需要額外的網路元件 (例如 Cloud VPN 連線),才能透過虛擬私有雲網路中的私人 IP 位址存取。

  • 來源資料庫必須在虛擬私有雲網路中指派私人 IP 位址。資料庫遷移服務會使用 Private Service Connect 介面 (網路連結) 連線至來源資料庫。快速啟動遷移作業不支援公開 IP 連線。

如要進一步瞭解快速遷移,請參閱資料庫遷移服務說明文件中的「快速遷移」。

事前準備

  1. 確認快速遷移作業是否能完全支援您的情境。請參閱資料庫遷移服務說明文件中的「快速啟動遷移作業限制」一節。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 啟用資料庫遷移服務、Compute Engine、Network Connectivity Center 和 AlloyDB for PostgreSQL Admin API。

    啟用 API

必要的角色

如要取得所需權限,透過資料庫遷移服務快速啟動遷移作業,將資料庫遷移至 AlloyDB for PostgreSQL,請要求管理員在相關專案中,為參與遷移作業的帳戶授予必要的 Identity and Access Management (IAM) 角色。如要進一步瞭解如何授予角色,請參閱 IAM 說明文件中的「管理存取權」。

來源專案中的角色和權限

在 Google Cloud 專案中,將下列角色授予「來源」資料庫所在的特定帳戶:

  • 執行遷移作業的使用者帳戶:Compute 網路管理員 (roles/compute.networkAdmin)
  • 目的地專案的資料庫遷移服務帳戶: Compute 網路檢視者 (roles/compute.networkViewer)

    啟用 Database Migration Service API 時,系統會為您建立資料庫遷移服務帳戶。並自動產生相關聯的電子郵件地址。該電子郵件地址無法變更,這個電子郵件地址的格式如下:

    service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.

這些預先定義的角色具備必要權限,可讓您在來源資料庫專案上設定連線,以便透過資料庫遷移服務快速啟動遷移作業。如要查看確切的必要權限,請展開「Required permissions (source)」(必要權限 (來源)) 部分:

必要權限 (來源)

如要使用資料庫遷移服務執行同質快速啟動遷移作業,必須具備下列權限:

執行遷移作業的使用者帳戶:

  • compute.networks.*
  • compute.subnetworks.*
  • compute.networkAttachments.*

目的地專案的資料庫遷移服務服務帳戶:compute.networkAttachments.get。

目的地專案中的角色和權限

在 Google Cloud 專案中,將下列角色授予執行遷移作業的使用者帳戶,也就是目的地資料庫所在的專案:

這些預先定義的角色具備必要權限,可讓您在目的地資料庫專案中設定必要的遷移元件,以便使用資料庫遷移服務快速啟動遷移作業。如要查看確切的必要權限,請展開「Required permissions (destination)」(必要權限 (目的地)) 部分:

必要權限 (目的地)

如要使用資料庫遷移服務執行同質快速啟動遷移作業,必須具備下列權限:

  • datamigration.*
  • alloydb.clusters.create
  • alloydb.clusters.get
  • alloydb.clusters.list
  • alloydb.clusters.update
  • alloydb.clusters.delete
  • alloydb.instances.create
  • alloydb.instances.get
  • alloydb.instances.list
  • alloydb.instances.update
  • alloydb.instances.delete
  • alloydb.instances.executeSql
  • alloydb.operations.get
  • alloydb.users.list
  • alloydb.users.get
  • alloydb.users.create
  • alloydb.users.update
  • alloydb.users.delete

設定來源資料庫

如要設定來源 PostgreSQL 資料庫,請按照下列步驟操作:

  1. 在執行個體建立專用的遷移使用者帳戶。
    • 如要瞭解 PostgreSQL 適用的 Cloud SQL 來源,請參閱 Cloud SQL 說明文件中的「建立使用者」。
    • 如為其他來源,請參閱資料庫供應商說明文件,或 PostgreSQL 說明文件中的 建立及管理使用者。
  2. 將必要權限指派給專用的遷移使用者帳戶。 請為要遷移的每個資料庫執行下列指令:
    -- Grant the REPLICATION attribute
    ALTER ROLE MIGRATION_USER REPLICATION;
    
    -- Grant database-level permissions.
    -- Repeat for each database you want to migrate.
    GRANT CONNECT, CREATE ON DATABASE DATABASE_NAME TO MIGRATION_USER;
    
    -- Grant schema-level usage.
    -- Repeat for each schema in each database you want to migrate.
    GRANT USAGE ON SCHEMA SCHEMA_NAME TO MIGRATION_USER;

    更改下列內容:

    • 將 MIGRATION_USER 替換為遷移使用者帳戶的名稱。
    • 將 DATABASE_NAME 替換為要遷移的資料庫名稱。
    • SCHEMA_NAME:要遷移的資料庫結構定義名稱。
  3. 遷移使用者帳戶必須具備遷移資料表的擁有權存取權。如要授予這個層級的存取權,請採取下列其中一種做法:
    • 僅適用於 PostgreSQL 適用的 Cloud SQL 以外的來源:將 SUPERUSER PostgreSQL 角色指派給遷移帳戶。
    • 所有來源:將遷移使用者帳戶新增至擁有資料表的群組。 執行下列指令:
      -- Grant table ownership.
      GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;

      更改下列內容:

      • TABLE_OWNER_GROUP_NAME:要遷移的各個資料表所屬的使用者群組名稱。
      • 將 MIGRATION_USER 替換為遷移使用者帳戶的名稱。
  4. 如果資料表沒有主鍵:根據預設,在變更資料擷取 (CDC) 階段,系統只會為沒有主鍵的資料表複製 INSERT 作業。如要複製 UPDATE 和 DELETE 作業,您必須將資料表的 REPLICA IDENTITY 設為 FULL 或 USING INDEX:
    ALTER TABLE TABLE_NAME REPLICA IDENTITY FULL;
    ALTER TABLE TABLE_NAME REPLICA IDENTITY USING INDEX INDEX_NAME;

    更改下列內容:

    • TABLE_NAME 是沒有主鍵的資料表名稱。
    • INDEX_NAME 是不重複索引,可追蹤沒有主鍵的資料表中的資料列。
  5. 使用資料庫旗標設定複製作業。

    自行管理的來源

    如要儲存資料庫旗標的變更,必須完整重新啟動資料庫。下列範例使用 SQL 查詢來變更旗標值。如果無法直接執行 SQL 查詢,請參閱供應商說明文件,瞭解如何變更這些旗標。

    1. 將 wal_level 參數設為 logical。執行下列指令:
      ALTER SYSTEM SET wal_level = 'logical';
    2. 將 wal_sender_timeout 參數設為 0。這個值會停用用來終止閒置複製連線的逾時機制。執行下列指令:
      ALTER SYSTEM SET wal_sender_timeout = 0;
          
    3. 使用 max_replication_slots 參數設定複製槽數量上限。這個參數至少須設為每項遷移工作要遷移的資料庫數量,再加上一些資料表同步處理的預留空間。

      舉例來說,假設您要遷移 5 個資料庫,且已為來源執行個體建立 2 項遷移工作,則複製運算單元數量至少須為 5 * 2 = 10,再加上您已使用的複製運算單元數量。

      如要設定這項參數,請執行下列指令:

      ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
          
      其中 NUMBER_OF_SLOTS 代表複製運算單元數量上限。
    4. 將 max_wal_senders 參數設為至少與 max_replication_slots 相同的值,再加上執行個體已使用的傳送者數量。

      舉例來說,如果 max_replication_slots 參數設為 10,而您已使用 2 個傳送器,則同時執行的 WAL 傳送器程序數量會是 10 + 2 = 12。

      如要設定這項參數,請執行下列指令:

      ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
          
      其中 NUMBER_OF_SENDERS 代表同時執行的 WAL 傳送器程序數量。
    5. 將 max_worker_processes 設為至少要遷移的資料庫數量,加上執行個體已使用的 max_worker_processes 數量。如要設定這項參數,請執行下列指令:
      ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
          
      其中 NUMBER_OF_PROCESSES 代表要遷移的資料庫數量。

    PostgreSQL 適用的 Cloud SQL 來源

    如果是 Cloud SQL 來源,請在 Google Cloud 控制台設定資料庫旗標。修改資料庫旗標後,必須重新啟動執行個體,設定才會生效。如要進一步瞭解如何在 Cloud SQL 中設定資料庫旗標,請參閱 Cloud SQL 說明文件中的「設定資料庫旗標」一節。

    1. 將 cloudsql.logical_decoding 旗標設為 on。
    2. 將 wal_sender_timeout 參數設為 0。 這個值會停用用來終止閒置複製連線的逾時機制。
    3. 使用 max_replication_slots 參數設定複製運算單元數量上限。這項參數至少須設為每項遷移工作要遷移的資料庫數量,再加上一些資料表同步處理預留空間。

      舉例來說,如果您要遷移 5 個資料庫,且已為來源執行個體建立 2 項遷移工作,則複製運算單元數量至少須為 5 * 2 = 10,再加上您已使用的複製運算單元數量。

    4. 將 max_wal_senders 參數設為至少與 max_replication_slots 相同的值,再加上執行個體上已使用的傳送者數量。

      舉例來說,如果 max_replication_slots 參數設為 10,而您已使用 2 個傳送者,則同時執行的 WAL 傳送者程序數量會是 10 + 2 = 12。

    5. 將 max_worker_processes 參數設為至少要遷移的資料庫數量,加上執行個體已使用的 max_worker_processes 數量。

建立及執行快速遷移作業

使用快速啟動遷移功能時,您可以建立新的 AlloyDB for PostgreSQL 叢集,並將資料庫遷移至該叢集,或將資料庫遷移至現有叢集。

快速遷移新叢集

如要建立新的 AlloyDB for PostgreSQL 叢集,並立即將資料庫遷移至該叢集,請按照下列步驟操作:

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 依序點選「Create cluster」(建立叢集) >「From an existing database」(從現有資料庫)

    資料庫遷移服務的快速啟動遷移表單隨即開啟。

  3. 在「Configure migration」(設定遷移作業) 部分,執行下列操作:
    1. 從「Destination region」(目的地區域) 選單中,選取目的地 AlloyDB for PostgreSQL 叢集的區域。
    2. 在「Migration prefix」(遷移作業前置字串) 方塊中,輸入要新增至所有快速啟動遷移作業實體名稱的字串,包括連線設定檔、私人連線設定、網路連結及其子網路,以及遷移工作。
    3. 在「Configuration type」(設定類型) 選單中,選取下列其中一個選項:
      1. 現有連線設定:如果您已有網路連結,以及使用 Private Service Connect 介面方法的私人連線設定,請選取這個選項。如果您先前曾使用快速啟動遷移功能,且想重複使用相同的網路資源,則最適合使用這個選項。
      2. 「New connectivity configuration」(新增連線設定):選取這個選項,即可在來源資料庫虛擬私有雲網路中,建立新的網路連結和網路連結子網路。私人連線設定會建立在目的地叢集所在的專案中。
    4. 按一下「繼續」。
  4. 在「Connect source」(連結來源) 部分,執行下列操作:
    1. 輸入來源資料庫的主機名稱或私人 IP 位址。來源資料庫位址必須可從來源虛擬私有雲網路連線。
    2. 輸入用於存取主機的通訊埠。預設 PostgreSQL 通訊埠編號為 5432。
    3. 輸入來源資料庫中專用遷移帳戶的使用者名稱和密碼。
    4. 在「Encryption type」(加密類型) 選單中,選取下列其中一個選項:
      • 無:如果來源資料庫不需要 SSL/TLS 加密連線。
      • 必要:如果來源資料庫需要 SSL/TLS 加密連線。這個方法不需要驗證憑證。
    5. 在「Databases to migrate」(要遷移的資料庫) 選單中,按一下「Customize」(自訂)。 使用側邊面板,只選取要遷移至 AlloyDB for PostgreSQL 的資料庫。
    6. 按一下「繼續」。
  5. 在「Configure destination」(設定目的地) 部分,執行下列操作:
    1. 從「Destination instance type」(目的地執行個體類型) 選單中,選取「New cluster」(新叢集)。

      資料庫遷移服務會使用預設的 AlloyDB for PostgreSQL 設定建立新叢集。按一下「自訂」,即可調整叢集功能,例如機器類型、可用區可用性或資料保護設定。如要進一步瞭解叢集設定,請參閱「 建立叢集及其主要執行個體」。

    2. 在「Password」(密碼) 欄位中,輸入預設 postgresql 管理員使用者的密碼。資料庫遷移服務會以這個使用者的身分連線,遷移您的資料。
  6. 按一下「開始遷移」。

    資料庫遷移服務會建立遷移工作,並開始遷移程序。您可以在 AlloyDB for PostgreSQL 監控遷移進度和目的地叢集健康狀態。詳情請參閱「查看叢集資訊」。

gcloud

如要使用 gcloud CLI 遷移至新的 AlloyDB for PostgreSQL 叢集,請按照下列步驟操作:

  1. 建立網路連結資源。
    在來源資料庫所在的專案和虛擬私有雲網路中,建立網路連結:

    gcloud compute network-attachments create NETWORK_ATTACHMENT \
      --region=REGION \
      --connection-preference=ACCEPT_MANUAL \
      --producer-accept-list=DEST_PROJECT_ID \
      --subnets=default \
      --project=SOURCE_PROJECT_ID

    更改下列內容:

    • NETWORK_ATTACHMENT:要建立的網路連結名稱。
    • REGION:網路連結的區域。
    • DEST_PROJECT_ID:目的地專案的專案 ID。
    • SOURCE_PROJECT_ID:來源網路所在的專案 ID。
  2. 允許資料庫遷移服務租戶專案存取網路連結。
    執行驗證檢查來擷取租戶專案 ID,然後更新網路連結接受清單,將該 ID 納入其中:

    1. 執行驗證檢查,擷取租戶專案 ID:

      gcloud database-migration private-connections create PRIVATE_CONN \
        --region=REGION \
        --network-attachment=NETWORK_ATTACHMENT_URI \
        --display-name=PRIVATE_CONN \
        --format="value(metadata.metadata.tenant_project_id)" \
        --validate-only

      更改下列內容:

      • PRIVATE_CONN:私密連線資源的名稱。
      • REGION:私人連線的區域。
      • NETWORK_ATTACHMENT_URI:上一步建立的網路連結 URI。例如:projects/SOURCE_PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT。
    2. 使用擷取的 DMS_TENANT_ID 更新網路連結:

      gcloud compute network-attachments update NETWORK_ATTACHMENT \
        --region=REGION \
        --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \
        --project=SOURCE_PROJECT_ID

      更改下列內容:

      • NETWORK_ATTACHMENT:網路連結的名稱。
      • REGION:區域。
      • DEST_PROJECT_ID:目的地專案的專案 ID。
      • DMS_TENANT_ID:擷取的資料庫遷移服務租戶專案 ID。
      • SOURCE_PROJECT_ID:來源網路所在的專案 ID。
  3. 建立私人連線設定。
    在目的地專案中建立私人連線:

    gcloud database-migration private-connections create PRIVATE_CONN \
      --region=REGION \
      --network-attachment=NETWORK_ATTACHMENT_URI \
      --display-name=PRIVATE_CONN

    更改下列內容:

    • PRIVATE_CONN:私密連線資源的名稱。
    • REGION:私人連線的區域。
    • NETWORK_ATTACHMENT_URI:網路連結的 URI。
  4. 建立來源連線設定檔。
    為來源 PostgreSQL 資料庫建立連線設定檔:

    gcloud database-migration connection-profiles create postgresql SOURCE_CONN_ID \
      --region=REGION \
      --role=SOURCE \
      --host=SOURCE_PRIVATE_IP \
      --port=SOURCE_PORT \
      --username=SOURCE_USER \
      --password=SOURCE_PASSWORD \
      --private-connection=PRIVATE_CONN \
      --no-async

    更改下列內容:

    • SOURCE_CONN_ID:來源連線設定檔的 ID。
    • REGION:要儲存連線設定檔的區域。
    • SOURCE_PRIVATE_IP:來源資料庫的私人 IP 位址。
    • SOURCE_PORT:來源資料庫的通訊埠 (預設為 5432)。
    • SOURCE_USER:來源資料庫遷移使用者的使用者名稱。
    • SOURCE_PASSWORD:來源資料庫遷移使用者的密碼。
    • PRIVATE_CONN:私密連線資源的名稱。
  5. 建立目的地 AlloyDB for PostgreSQL 叢集。
    建立目的地叢集及其主要執行個體。如需詳細操作說明,請參閱「建立叢集及其主要執行個體」頁面。

  6. 建立目的地連線設定檔。
    建立目的地連線設定檔,指向新建立的 AlloyDB for PostgreSQL 叢集:

    gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \
      --region=REGION \
      --alloydb-cluster=DEST_CLUSTER \
      --username=DEST_USER \
      --password=DEST_PASSWORD \
      --role=DESTINATION \
      --no-async

    更改下列內容:

    • DEST_CONN_ID:目的地連線設定檔的 ID。
    • REGION:要儲存連線設定檔的區域。這個區域必須與目的地叢集區域相同。
    • DEST_CLUSTER:目的地 AlloyDB for PostgreSQL 叢集的 ID 或完整資源路徑。
    • DEST_USER:目的地資料庫中遷移使用者的使用者名稱。
    • DEST_PASSWORD:目的地資料庫中遷移使用者的密碼。
  7. 建立遷移工作。
    建立已啟用原生複製功能的連續遷移工作:

    gcloud database-migration migration-jobs create MIGRATION_JOB_ID \
      --region=REGION \
      --type=CONTINUOUS \
      --source=SOURCE_CONN_ID \
      --destination=DEST_CONN_ID \
      --use-postgres-native \
      --postgres-max-additional-subscriptions=10 \
      --databases-filter=DATABASES_LIST \
      --no-async

    更改下列內容:

    • MIGRATION_JOB_ID:遷移工作 ID。
    • REGION:要儲存遷移工作的區域。
    • SOURCE_CONN_ID:來源連線設定檔 ID。
    • DEST_CONN_ID:目的地連線設定檔 ID。
    • DATABASES_LIST:以半形逗號分隔的清單,列出要遷移的資料庫。
  8. 啟動遷移工作。
    啟動遷移工作,開始複製流程:

    gcloud database-migration migration-jobs start MIGRATION_JOB_ID \
      --region=REGION

    更改下列內容:

    • MIGRATION_JOB_ID:遷移工作的 ID。
    • REGION:遷移工作所在的區域。

現有叢集的快速遷移作業

如要將資料庫遷移至現有的 AlloyDB for PostgreSQL 叢集,請按照下列步驟操作:

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 選取要遷移資料庫的 AlloyDB for PostgreSQL 叢集。
  3. 在叢集詳細資料頁面,按一下「Migrate data」(遷移資料)。
  4. 在「Migrate data」(遷移資料) 面板中,按一下「Migrate database」(遷移資料庫)。

    資料庫遷移服務的快速啟動遷移表單隨即開啟。

  5. 在「Configure migration」(設定遷移作業) 部分,執行下列操作:
    1. 從「Destination region」(目的地區域) 選單中,選取目的地 AlloyDB for PostgreSQL 叢集的區域。
    2. 在「Migration prefix」(遷移作業前置字串) 方塊中,輸入要新增至所有快速啟動遷移作業實體名稱的字串,包括連線設定檔、私人連線設定、網路連結及其子網路,以及遷移工作。
    3. 在「Configuration type」(設定類型) 選單中,選取下列其中一個選項:
      1. 現有連線設定:如果您已有網路連結,以及在來源資料庫虛擬私有雲網路中使用 Private Service Connect 介面的私人連線設定,請選取這個選項。如果您先前曾使用快速啟動遷移功能,且想重複使用相同的網路資源,則最適合使用這個選項。
      2. 新增連線設定:選取這個選項,即可在來源資料庫虛擬私有雲網路中,建立新的網路連結、網路連結子網路和私人連線設定。
  6. 在「Connect source」(連結來源) 部分,執行下列操作:
    1. 輸入來源資料庫的主機名稱或私人 IP 位址。來源資料庫位址必須可從來源虛擬私有雲網路連線。
    2. 輸入用於存取主機的通訊埠。預設的 PostgreSQL 通訊埠為 5432。
    3. 輸入來源資料庫中專用遷移帳戶的使用者名稱和密碼。
    4. 在「Encryption type」(加密類型) 選單中,選取下列其中一個選項:
      • 無:如果來源資料庫不需要 SSL/TLS 加密連線。
      • 必要:如果來源資料庫需要 SSL/TLS 加密連線。這個方法不需要驗證憑證。
    5. 在「Databases to migrate」(要遷移的資料庫) 選單中,按一下「Customize」(自訂)。 使用側邊面板,只選取要遷移至 AlloyDB for PostgreSQL 的資料庫。
  7. 按一下「開始遷移」。

    資料庫遷移服務會建立遷移工作,並開始遷移程序。您可以在 AlloyDB for PostgreSQL 監控遷移進度和目的地叢集健康狀態。詳情請參閱「查看叢集資訊」。

gcloud

如要使用 gcloud CLI 遷移至現有的 AlloyDB for PostgreSQL 叢集,請按照下列步驟操作:

  1. 建立網路連結資源。
    在來源資料庫所在的專案和虛擬私有雲網路中,建立網路連結:

    gcloud compute network-attachments create NETWORK_ATTACHMENT \
      --region=REGION \
      --connection-preference=ACCEPT_MANUAL \
      --producer-accept-list=DEST_PROJECT_ID \
      --subnets=default \
      --project=SOURCE_PROJECT_ID

    更改下列內容:

    • NETWORK_ATTACHMENT:要建立的網路連結名稱。
    • REGION:網路連結的區域。
    • DEST_PROJECT_ID:目的地專案的專案 ID。
    • SOURCE_PROJECT_ID:來源網路所在的專案 ID。
  2. 允許資料庫遷移服務租戶專案存取網路連結。
    執行驗證檢查來擷取租戶專案 ID,然後更新網路連結接受清單,將該 ID 納入其中:

    1. 執行驗證檢查,擷取租戶專案 ID:

      gcloud database-migration private-connections create PRIVATE_CONN \
        --region=REGION \
        --network-attachment=NETWORK_ATTACHMENT_URI \
        --display-name=PRIVATE_CONN \
        --format="value(metadata.metadata.tenant_project_id)" \
        --validate-only

      更改下列內容:

      • PRIVATE_CONN:私密連線資源的名稱。
      • REGION:私人連線的區域。
      • NETWORK_ATTACHMENT_URI:上一步建立的網路連結 URI。例如:projects/SOURCE_PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT。
    2. 使用擷取的 DMS_TENANT_ID 更新網路連結:

      gcloud compute network-attachments update NETWORK_ATTACHMENT \
        --region=REGION \
        --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \
        --project=SOURCE_PROJECT_ID

      更改下列內容:

      • NETWORK_ATTACHMENT:網路連結的名稱。
      • REGION:區域。
      • DEST_PROJECT_ID:目的地專案的專案 ID。
      • DMS_TENANT_ID:擷取的資料庫遷移服務租戶專案 ID。
      • SOURCE_PROJECT_ID:來源網路所在的專案 ID。
  3. 建立私人連線設定。
    在目的地專案中建立私人連線:

    gcloud database-migration private-connections create PRIVATE_CONN \
      --region=REGION \
      --network-attachment=NETWORK_ATTACHMENT_URI \
      --display-name=PRIVATE_CONN

    更改下列內容:

    • PRIVATE_CONN:私密連線資源的名稱。
    • REGION:私人連線的區域。
    • NETWORK_ATTACHMENT_URI:網路連結的 URI。
  4. 建立來源連線設定檔。
    為來源 PostgreSQL 資料庫建立連線設定檔:

    gcloud database-migration connection-profiles create postgresql SOURCE_CONN_ID \
      --region=REGION \
      --role=SOURCE \
      --host=SOURCE_PRIVATE_IP \
      --port=SOURCE_PORT \
      --username=SOURCE_USER \
      --password=SOURCE_PASSWORD \
      --private-connection=PRIVATE_CONN \
      --no-async

    更改下列內容:

    • SOURCE_CONN_ID:來源連線設定檔的 ID。
    • REGION:要儲存連線設定檔的區域。
    • SOURCE_PRIVATE_IP:來源資料庫的私人 IP 位址。
    • SOURCE_PORT:來源資料庫的通訊埠 (預設為 5432)。
    • SOURCE_USER:來源資料庫遷移使用者的使用者名稱。
    • SOURCE_PASSWORD:來源資料庫遷移使用者的密碼。
    • PRIVATE_CONN:私密連線資源的名稱。
  5. 建立目的地連線設定檔。
    建立目的地連線設定檔,指向預先建立的目的地 AlloyDB for PostgreSQL 叢集:

    gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \
      --region=REGION \
      --alloydb-cluster=DEST_CLUSTER \
      --username=DEST_USER \
      --password=DEST_PASSWORD \
      --role=DESTINATION \
      --no-async

    更改下列內容:

    • DEST_CONN_ID:目的地連線設定檔的 ID。
    • REGION:要儲存連線設定檔的區域。這個區域必須與目的地叢集區域相同。
    • DEST_CLUSTER:目的地 AlloyDB for PostgreSQL 叢集的 ID 或完整資源路徑。
    • DEST_USER:目的地資料庫中遷移使用者的使用者名稱。
    • DEST_PASSWORD:目的地資料庫中遷移使用者的密碼。
  6. 建立遷移工作。
    建立已啟用原生複製功能的連續遷移工作:

    gcloud database-migration migration-jobs create MIGRATION_JOB_ID \
      --region=REGION \
      --type=CONTINUOUS \
      --source=SOURCE_CONN_ID \
      --destination=DEST_CONN_ID \
      --use-postgres-native \
      --postgres-max-additional-subscriptions=10 \
      --databases-filter=DATABASES_LIST \
      --no-async

    更改下列內容:

    • MIGRATION_JOB_ID:遷移工作 ID。
    • REGION:要儲存遷移工作的區域。
    • SOURCE_CONN_ID:來源連線設定檔 ID。
    • DEST_CONN_ID:目的地連線設定檔 ID。
    • DATABASES_LIST:以半形逗號分隔的清單,列出要遷移的資料庫。
  7. 啟動遷移工作。
    啟動遷移工作,開始複製流程:

    gcloud database-migration migration-jobs start MIGRATION_JOB_ID \
      --region=REGION

    更改下列內容:

    • MIGRATION_JOB_ID:遷移工作的 ID。
    • REGION:遷移工作所在的區域。

完成遷移作業

決定將應用程式切換至新的 AlloyDB for PostgreSQL 執行個體後,請按照下列步驟完成遷移:

  1. 停止來源資料庫的所有寫入作業。您可以將其切換為唯讀模式,以保留作業功能。
  2. 升級遷移工作。
  3. 選用步驟:驗證遷移資料的完整性。

後續步驟