如要簡化同質 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 連線。
如要進一步瞭解快速遷移,請參閱資料庫遷移服務說明文件中的「快速遷移」。
事前準備
- 確認快速遷移作業是否能完全支援您的情境。請參閱資料庫遷移服務說明文件中的「快速啟動遷移作業限制」一節。
-
登入 Google 帳戶。
如果還沒有帳戶,請 申請新帳戶。
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- 啟用資料庫遷移服務、Compute Engine、Network Connectivity Center 和 AlloyDB for PostgreSQL Admin 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.iam.gserviceaccount.com
這些預先定義的角色具備必要權限,可讓您在來源資料庫專案上設定連線,以便透過資料庫遷移服務快速啟動遷移作業。如要查看確切的必要權限,請展開「Required permissions (source)」(必要權限 (來源)) 部分:
必要權限 (來源)
如要使用資料庫遷移服務執行同質快速啟動遷移作業,必須具備下列權限:
執行遷移作業的使用者帳戶:
compute.networks.*compute.subnetworks.*compute.networkAttachments.*
目的地專案的資料庫遷移服務服務帳戶:compute.networkAttachments.get。
目的地專案中的角色和權限
在 Google Cloud 專案中,將下列角色授予執行遷移作業的使用者帳戶,也就是目的地資料庫所在的專案:
-
資料庫遷移管理員 (
roles/datamigration.admin) -
AlloyDB 管理員 (
roles/alloydb.admin)
這些預先定義的角色具備必要權限,可讓您在目的地資料庫專案中設定必要的遷移元件,以便使用資料庫遷移服務快速啟動遷移作業。如要查看確切的必要權限,請展開「Required permissions (destination)」(必要權限 (目的地)) 部分:
必要權限 (目的地)
如要使用資料庫遷移服務執行同質快速啟動遷移作業,必須具備下列權限:
datamigration.*alloydb.clusters.createalloydb.clusters.getalloydb.clusters.listalloydb.clusters.updatealloydb.clusters.deletealloydb.instances.createalloydb.instances.getalloydb.instances.listalloydb.instances.updatealloydb.instances.deletealloydb.instances.executeSqlalloydb.operations.getalloydb.users.listalloydb.users.getalloydb.users.createalloydb.users.updatealloydb.users.delete
設定來源資料庫
如要設定來源 PostgreSQL 資料庫,請按照下列步驟操作:
- 在執行個體建立專用的遷移使用者帳戶。
- 將必要權限指派給專用的遷移使用者帳戶。
請為要遷移的每個資料庫執行下列指令:
-- 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:要遷移的資料庫結構定義名稱。
- 遷移使用者帳戶必須具備遷移資料表的擁有權存取權。如要授予這個層級的存取權,請採取下列其中一種做法:
- 僅適用於 PostgreSQL 適用的 Cloud SQL 以外的來源:將
SUPERUSERPostgreSQL 角色指派給遷移帳戶。 - 所有來源:將遷移使用者帳戶新增至擁有資料表的群組。
執行下列指令:
-- Grant table ownership. GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;
更改下列內容:
- TABLE_OWNER_GROUP_NAME:要遷移的各個資料表所屬的使用者群組名稱。
- 將 MIGRATION_USER 替換為遷移使用者帳戶的名稱。
- 僅適用於 PostgreSQL 適用的 Cloud SQL 以外的來源:將
- 如果資料表沒有主鍵:根據預設,在變更資料擷取 (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 是不重複索引,可追蹤沒有主鍵的資料表中的資料列。
- 使用資料庫旗標設定複製作業。
自行管理的來源
如要儲存資料庫旗標的變更,必須完整重新啟動資料庫。下列範例使用 SQL 查詢來變更旗標值。如果無法直接執行 SQL 查詢,請參閱供應商說明文件,瞭解如何變更這些旗標。
- 將
wal_level參數設為logical。執行下列指令:ALTER SYSTEM SET wal_level = 'logical';
- 將
wal_sender_timeout參數設為0。這個值會停用用來終止閒置複製連線的逾時機制。執行下列指令:ALTER SYSTEM SET wal_sender_timeout = 0;
- 使用
max_replication_slots參數設定複製槽數量上限。這個參數至少須設為每項遷移工作要遷移的資料庫數量,再加上一些資料表同步處理的預留空間。舉例來說,假設您要遷移 5 個資料庫,且已為來源執行個體建立 2 項遷移工作,則複製運算單元數量至少須為
5 * 2 = 10,再加上您已使用的複製運算單元數量。如要設定這項參數,請執行下列指令:
其中 NUMBER_OF_SLOTS 代表複製運算單元數量上限。ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
- 將
max_wal_senders參數設為至少與max_replication_slots相同的值,再加上執行個體已使用的傳送者數量。舉例來說,如果
max_replication_slots參數設為10,而您已使用 2 個傳送器,則同時執行的 WAL 傳送器程序數量會是10 + 2 = 12。如要設定這項參數,請執行下列指令:
其中 NUMBER_OF_SENDERS 代表同時執行的 WAL 傳送器程序數量。ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
- 將
max_worker_processes設為至少要遷移的資料庫數量,加上執行個體已使用的max_worker_processes數量。如要設定這項參數,請執行下列指令: 其中 NUMBER_OF_PROCESSES 代表要遷移的資料庫數量。ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
PostgreSQL 適用的 Cloud SQL 來源
如果是 Cloud SQL 來源,請在 Google Cloud 控制台設定資料庫旗標。修改資料庫旗標後,必須重新啟動執行個體,設定才會生效。如要進一步瞭解如何在 Cloud SQL 中設定資料庫旗標,請參閱 Cloud SQL 說明文件中的「設定資料庫旗標」一節。
- 將
cloudsql.logical_decoding旗標設為on。 - 將
wal_sender_timeout參數設為0。 這個值會停用用來終止閒置複製連線的逾時機制。 - 使用
max_replication_slots參數設定複製運算單元數量上限。這項參數至少須設為每項遷移工作要遷移的資料庫數量,再加上一些資料表同步處理預留空間。舉例來說,如果您要遷移 5 個資料庫,且已為來源執行個體建立 2 項遷移工作,則複製運算單元數量至少須為
5 * 2 = 10,再加上您已使用的複製運算單元數量。 - 將
max_wal_senders參數設為至少與max_replication_slots相同的值,再加上執行個體上已使用的傳送者數量。舉例來說,如果
max_replication_slots參數設為10,而您已使用 2 個傳送者,則同時執行的 WAL 傳送者程序數量會是10 + 2 = 12。 - 將
max_worker_processes參數設為至少要遷移的資料庫數量,加上執行個體已使用的max_worker_processes數量。
- 將
建立及執行快速遷移作業
使用快速啟動遷移功能時,您可以建立新的 AlloyDB for PostgreSQL 叢集,並將資料庫遷移至該叢集,或將資料庫遷移至現有叢集。
快速遷移新叢集
如要建立新的 AlloyDB for PostgreSQL 叢集,並立即將資料庫遷移至該叢集,請按照下列步驟操作:
控制台
- 前往「Clusters」(叢集) 頁面。
- 依序點選「Create cluster」(建立叢集) >「From an existing database」(從現有資料庫)
資料庫遷移服務的快速啟動遷移表單隨即開啟。
- 在「Configure migration」(設定遷移作業) 部分,執行下列操作:
- 從「Destination region」(目的地區域) 選單中,選取目的地 AlloyDB for PostgreSQL 叢集的區域。
- 在「Migration prefix」(遷移作業前置字串) 方塊中,輸入要新增至所有快速啟動遷移作業實體名稱的字串,包括連線設定檔、私人連線設定、網路連結及其子網路,以及遷移工作。
- 在「Configuration type」(設定類型) 選單中,選取下列其中一個選項:
- 現有連線設定:如果您已有網路連結,以及使用 Private Service Connect 介面方法的私人連線設定,請選取這個選項。如果您先前曾使用快速啟動遷移功能,且想重複使用相同的網路資源,則最適合使用這個選項。
- 「New connectivity configuration」(新增連線設定):選取這個選項,即可在來源資料庫虛擬私有雲網路中,建立新的網路連結和網路連結子網路。私人連線設定會建立在目的地叢集所在的專案中。
- 按一下「繼續」。
- 在「Connect source」(連結來源) 部分,執行下列操作:
- 輸入來源資料庫的主機名稱或私人 IP 位址。來源資料庫位址必須可從來源虛擬私有雲網路連線。
- 輸入用於存取主機的通訊埠。預設 PostgreSQL 通訊埠編號為
5432。 - 輸入來源資料庫中專用遷移帳戶的使用者名稱和密碼。
- 在「Encryption type」(加密類型) 選單中,選取下列其中一個選項:
- 無:如果來源資料庫不需要 SSL/TLS 加密連線。
- 必要:如果來源資料庫需要 SSL/TLS 加密連線。這個方法不需要驗證憑證。
- 在「Databases to migrate」(要遷移的資料庫) 選單中,按一下「Customize」(自訂)。 使用側邊面板,只選取要遷移至 AlloyDB for PostgreSQL 的資料庫。
- 按一下「繼續」。
- 在「Configure destination」(設定目的地) 部分,執行下列操作:
- 從「Destination instance type」(目的地執行個體類型) 選單中,選取「New cluster」(新叢集)。
資料庫遷移服務會使用預設的 AlloyDB for PostgreSQL 設定建立新叢集。按一下「自訂」,即可調整叢集功能,例如機器類型、可用區可用性或資料保護設定。如要進一步瞭解叢集設定,請參閱「 建立叢集及其主要執行個體」。
- 在「Password」(密碼) 欄位中,輸入預設
postgresql管理員使用者的密碼。資料庫遷移服務會以這個使用者的身分連線,遷移您的資料。
- 從「Destination instance type」(目的地執行個體類型) 選單中,選取「New cluster」(新叢集)。
- 按一下「開始遷移」。
資料庫遷移服務會建立遷移工作,並開始遷移程序。您可以在 AlloyDB for PostgreSQL 監控遷移進度和目的地叢集健康狀態。詳情請參閱「查看叢集資訊」。
gcloud
如要使用 gcloud CLI 遷移至新的 AlloyDB for PostgreSQL 叢集,請按照下列步驟操作:
-
建立網路連結資源。
在來源資料庫所在的專案和虛擬私有雲網路中,建立網路連結: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。
-
允許資料庫遷移服務租戶專案存取網路連結。
執行驗證檢查來擷取租戶專案 ID,然後更新網路連結接受清單,將該 ID 納入其中:-
執行驗證檢查,擷取租戶專案 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。
-
使用擷取的
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。
-
-
建立私人連線設定。
在目的地專案中建立私人連線: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。
-
建立來源連線設定檔。
為來源 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:私密連線資源的名稱。
-
建立目的地 AlloyDB for PostgreSQL 叢集。
建立目的地叢集及其主要執行個體。如需詳細操作說明,請參閱「建立叢集及其主要執行個體」頁面。 -
建立目的地連線設定檔。
建立目的地連線設定檔,指向新建立的 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:目的地資料庫中遷移使用者的密碼。
-
建立遷移工作。
建立已啟用原生複製功能的連續遷移工作: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:以半形逗號分隔的清單,列出要遷移的資料庫。
-
啟動遷移工作。
啟動遷移工作,開始複製流程:gcloud database-migration migration-jobs start MIGRATION_JOB_ID \ --region=REGION
更改下列內容:
MIGRATION_JOB_ID:遷移工作的 ID。REGION:遷移工作所在的區域。
現有叢集的快速遷移作業
如要將資料庫遷移至現有的 AlloyDB for PostgreSQL 叢集,請按照下列步驟操作:
控制台
- 前往「Clusters」(叢集) 頁面。
- 選取要遷移資料庫的 AlloyDB for PostgreSQL 叢集。
- 在叢集詳細資料頁面,按一下「Migrate data」(遷移資料)。
- 在「Migrate data」(遷移資料) 面板中,按一下「Migrate database」(遷移資料庫)。
資料庫遷移服務的快速啟動遷移表單隨即開啟。
- 在「Configure migration」(設定遷移作業) 部分,執行下列操作:
- 從「Destination region」(目的地區域) 選單中,選取目的地 AlloyDB for PostgreSQL 叢集的區域。
- 在「Migration prefix」(遷移作業前置字串) 方塊中,輸入要新增至所有快速啟動遷移作業實體名稱的字串,包括連線設定檔、私人連線設定、網路連結及其子網路,以及遷移工作。
- 在「Configuration type」(設定類型) 選單中,選取下列其中一個選項:
- 現有連線設定:如果您已有網路連結,以及在來源資料庫虛擬私有雲網路中使用 Private Service Connect 介面的私人連線設定,請選取這個選項。如果您先前曾使用快速啟動遷移功能,且想重複使用相同的網路資源,則最適合使用這個選項。
- 新增連線設定:選取這個選項,即可在來源資料庫虛擬私有雲網路中,建立新的網路連結、網路連結子網路和私人連線設定。
- 在「Connect source」(連結來源) 部分,執行下列操作:
- 輸入來源資料庫的主機名稱或私人 IP 位址。來源資料庫位址必須可從來源虛擬私有雲網路連線。
- 輸入用於存取主機的通訊埠。預設的 PostgreSQL 通訊埠為
5432。 - 輸入來源資料庫中專用遷移帳戶的使用者名稱和密碼。
- 在「Encryption type」(加密類型) 選單中,選取下列其中一個選項:
- 無:如果來源資料庫不需要 SSL/TLS 加密連線。
- 必要:如果來源資料庫需要 SSL/TLS 加密連線。這個方法不需要驗證憑證。
- 在「Databases to migrate」(要遷移的資料庫) 選單中,按一下「Customize」(自訂)。 使用側邊面板,只選取要遷移至 AlloyDB for PostgreSQL 的資料庫。
- 按一下「開始遷移」。
資料庫遷移服務會建立遷移工作,並開始遷移程序。您可以在 AlloyDB for PostgreSQL 監控遷移進度和目的地叢集健康狀態。詳情請參閱「查看叢集資訊」。
gcloud
如要使用 gcloud CLI 遷移至現有的 AlloyDB for PostgreSQL 叢集,請按照下列步驟操作:
-
建立網路連結資源。
在來源資料庫所在的專案和虛擬私有雲網路中,建立網路連結: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。
-
允許資料庫遷移服務租戶專案存取網路連結。
執行驗證檢查來擷取租戶專案 ID,然後更新網路連結接受清單,將該 ID 納入其中:-
執行驗證檢查,擷取租戶專案 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。
-
使用擷取的
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。
-
-
建立私人連線設定。
在目的地專案中建立私人連線: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。
-
建立來源連線設定檔。
為來源 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:私密連線資源的名稱。
-
建立目的地連線設定檔。
建立目的地連線設定檔,指向預先建立的目的地 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:目的地資料庫中遷移使用者的密碼。
-
建立遷移工作。
建立已啟用原生複製功能的連續遷移工作: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:以半形逗號分隔的清單,列出要遷移的資料庫。
-
啟動遷移工作。
啟動遷移工作,開始複製流程:gcloud database-migration migration-jobs start MIGRATION_JOB_ID \ --region=REGION
更改下列內容:
MIGRATION_JOB_ID:遷移工作的 ID。REGION:遷移工作所在的區域。
完成遷移作業
決定將應用程式切換至新的 AlloyDB for PostgreSQL 執行個體後,請按照下列步驟完成遷移: