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

本頁說明如何對 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 位址存取來源。

  • 目前僅支援使用 Private Service Connect 介面,搭配資料庫遷移服務私人連線設定,連線至資料庫。來源資料庫必須在虛擬私有雲網路中指派私人 IP。快速入門移轉不支援其他同質來源連線方法 (例如公開 IP 許可清單、反向 SSH 通道或虛擬私有雲對等互連)。

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

事前準備

  1. 確認快速入門遷移作業是否完全支援您的情境。請參閱資料庫遷移服務文件中的「快速啟動遷移限制」。
  2. 登入 Google 帳戶。

    如果沒有帳戶,請 註冊新帳戶

  3. 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

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

  5. 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

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

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

    啟用 API

必要的角色

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

來源專案中的角色和權限

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

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

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

    service-DESTINATION_PROJECT_NUMBERservice-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com

這些預先定義的角色具備必要權限,可讓您在來源資料庫專案中設定連線,以便透過資料庫遷移服務進行快速入門遷移作業。如要查看確切的必要權限,請展開「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) 階段,資料庫遷移服務不會複製沒有主鍵的資料表 UPDATEDELETE 作業。如要在複寫作業中納入這類作業,請使用 REPLICA IDENTITY 修改沒有主鍵的資料表:
    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. 依序點選「建立叢集」>「從現有資料庫」

    系統會開啟資料庫移轉服務的快速入門遷移表單。

  3. 在「設定遷移作業」部分,執行下列操作:
    1. 從「目的地區域」選單中,選取目的地 AlloyDB for PostgreSQL 叢集的區域。
    2. 在「遷移作業前置字串」方塊中,輸入要加到所有為快速啟動遷移作業建立的遷移實體名稱的字串,包括連線設定檔、私人連線設定、網路連結及其子網路,以及遷移作業。
    3. 從「設定類型」選單中,選取下列其中一個選項:
      1. 現有連線設定:如果您已有網路連結和私人連線設定,且使用 Private Service Connect 介面方法,請選取這個選項。如果您先前使用快速入門遷移作業,且想重複使用相同的網路資源,建議採用這個選項。
      2. 新的連線設定:選取這個選項,在來源資料庫虛擬私有雲網路中建立新的網路連結和網路連結子網路。私人連線設定會建立在與目的地叢集相同的專案中。
    4. 按一下 [繼續]
  4. 在「連結來源」部分,執行下列操作:
    1. 輸入來源資料庫的「主機名稱」或私有「IP 位址」。來源資料庫位址必須可從來源虛擬私有雲網路連線。
    2. 輸入用來存取主機的通訊埠。預設的 PostgreSQL 通訊埠號碼為 5432
    3. 在來源資料庫中,輸入專用遷移帳戶的使用者名稱和密碼。
    4. 在「加密類型」選單中,選取下列其中一個選項:
      • :如果來源資料庫不需要 SSL/TLS 加密連線。
      • 必要:如果來源資料庫需要 SSL/TLS 加密連線,這個選項不需要驗證任何憑證。
    5. 在「要遷移的資料庫」選單中,按一下「自訂」。 使用側邊面板,只選取要遷移至 AlloyDB for PostgreSQL 的資料庫。
    6. 按一下 [繼續]
  5. 在「設定目的地」部分,執行下列操作:
    1. 從「目的地執行個體類型」選單中,選取「新叢集」

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

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

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

gcloud

如要使用 gcloud CLI 遷移至新的 AlloyDB 叢集,請執行下列步驟:

  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 叢集。
    建立目的地叢集及其主要執行個體。如需詳細操作說明,請參閱「 建立叢集及其主要執行個體」頁面。

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

    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. 在叢集詳細資料頁面中,按一下「遷移資料」
  4. 在「遷移資料」面板中,按一下「遷移資料庫」

    系統會開啟資料庫移轉服務的快速入門遷移表單。

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

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

gcloud

如要使用 gcloud CLI 遷移至現有的 AlloyDB 叢集,請執行下列步驟:

  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 叢集:

    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. 選用步驟: 確認遷移資料是否完整。

後續步驟