arrow_back

使用資料庫移轉服務,遷移至 PostgreSQL 適用的 Cloud SQL

登录 加入
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

使用資料庫移轉服務,遷移至 PostgreSQL 適用的 Cloud SQL

实验 1 小时 30 分钟 universal_currency_alt 1 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

GSP918

Google Cloud 自修研究室標誌

總覽

資料庫移轉服務可讓您建立連線來執行遷移工作,將資料移至 Cloud SQL。這項服務提供一次性和連續工作選項,以及 IP 許可清單、虛擬私有雲對等互連、反向 SSH 通道等不同連線選項。如要參閱連線選項說明文件,請前往 https://cloud.google.com/database-migration/docs/postgresql/configure-connectivity

在本研究室中,您會透過資料庫移轉服務,使用虛擬私有雲對等互連建立連線並執行連續工作,將虛擬機器中執行的獨立 PostgreSQL 資料庫,遷移至 PostgreSQL 適用的 Cloud SQL。

透過資料庫移轉服務遷移資料庫時,您需要為來源資料庫做好準備,包括在來源資料庫中新增 pglogical 資料庫擴充功能、建立專用於遷移作業的使用者,並授予複製權限,以及來源資料庫和 postgres 資料庫結構定義和資料表的權限。

建立並執行遷移工作後,您將確認資料庫的初始副本,已成功遷移至 PostgreSQL 適用的 Cloud SQL 執行個體。您也將瞭解連續遷移工作如何將來源資料庫的資料更新內容,套用至 Cloud SQL 執行個體。最後,只要將 Cloud SQL 執行個體升級為獨立資料庫,供讀取及寫入資料,即可結束遷移工作。

學習內容

  • 為來源資料庫做好遷移準備。
  • 為 PostgreSQL 執行個體 (例如獨立 PostgreSQL) 的來源連線建立設定檔。
  • 使用虛擬私有雲對等互連,設定來源與目的地資料庫執行個體之間的連線。
  • 設定防火牆和資料庫存取規則來允許存取來源資料庫,以進行遷移。
  • 使用資料庫移轉服務建立、執行並驗證連續遷移工作。
  • 將目的地執行個體 (PostgreSQL 適用的 Cloud SQL) 升級為獨立資料庫,供讀取及寫入資料。

設定和需求

點選「Start Lab」按鈕前的須知事項

請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。

您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。

如要完成這個研究室活動,請先確認:

  • 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意:請使用無痕模式或私密瀏覽視窗執行此研究室。這可以防止個人帳戶和學生帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
注意:如果您擁有個人 Google Cloud 帳戶或專案,請勿用於本研究室,以免產生額外費用。

如何開始研究室及登入 Google Cloud 控制台

  1. 按一下「Start Lab」(開始研究室) 按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的暫時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,然後選取「在無痕式視窗中開啟連結」

    接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要查看列出 Google Cloud 產品和服務的選單,請點選左上角的「導覽選單」「導覽選單」圖示

啟動 Cloud Shell

Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。

  1. 點按 Google Cloud 控制台上方的「啟用 Cloud Shell」圖示 「啟動 Cloud Shell」圖示

連線完成即代表已通過驗證,且專案已設為您的 PROJECT_ID。輸出內容中有一行宣告本工作階段 PROJECT_ID 的文字:

您在本工作階段中的 Cloud Platform 專案會設為「YOUR_PROJECT_ID」

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。

  1. (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
  1. 點按「授權」

  2. 輸出畫面應如下所示:

輸出內容:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project

輸出內容:

[core] project = <project_ID>

輸出內容範例:

[core] project = qwiklabs-gcp-44776a13dea667a6 附註:如需有關 gcloud 的完整說明,請前往 Google Cloud 並參閱「gcloud CLI overview guide」(gcloud CLI 總覽指南)。

確認已啟用 Database Migration API

  1. 在 Google Cloud 控制台頂端的搜尋列中,輸入 Database Migration API,點選搜尋結果「Database Migration API」。

這個頁面會顯示狀態資訊或該 API 的啟用選項。

  1. 如有需要,請啟用 API。

確認已啟用 Service Networking API

必須啟用 Service Networking API,才能設定 Cloud SQL 來支援虛擬私有雲對等互連,並透過私人 IP 位址連線。

  1. 在 Cloud 控制台頂端的搜尋列中,輸入 Service Networking API,點選搜尋結果「Service Networking API」。

這個頁面會顯示狀態資訊或該 API 的啟用選項。

  1. 如有需要,請啟用 API。

工作 1:為來源資料庫做好遷移準備

在這個工作中,您需要在來源資料庫中新增支援功能,才能透過資料庫移轉服務執行遷移作業。包括:

  • 安裝並設定 pglogical 資料庫擴充功能。
  • 設定獨立 PostgreSQL 資料庫,允許從 Cloud Shell 和 Cloud SQL 存取。
  • pglogical 資料庫擴充功能新增至獨立伺服器上的 postgresordersgmemegen_db 資料庫。
  • 建立用於遷移資料庫的 migration_admin 使用者,並授予複製權限、必要的結構定義權限和關聯。

使用 pglogical 擴充功能升級資料庫

在這個步驟中,您將下載 pglogical 資料庫擴充功能,並新增至 postgresql-vm VM 執行個體上的 orders 和 postgres 資料庫。

  1. 在 Google Cloud 控制台的「導覽選單」(「導覽選單」圖示) 中,依序點選「Compute Engine」>「VM 執行個體」

  2. Connect 下的 postgresql-vm 項目中,點選「SSH」

  3. 如果出現提示訊息,請點選「授權」

  4. 瀏覽器會以新視窗開啟終端機,請輸入下列指令安裝 pglogical 資料庫擴充功能:

sudo apt install postgresql-13-pglogical 注意pglogical 邏輯複製系統完全是以 PostgreSQL 擴充功能執行,充分整合後即不需要觸發條件或外部程式。這會使用發布/訂閱模型來選擇性複製資料,而非複製實體,是非常有效率的複製方法。詳情請參閱下列網址:https://github.com/2ndQuadrant/pglogical
  1. 下載附加功能並套用至 PostgreSQL 設定檔來啟用 pglogical 擴充功能,然後重新啟動 postgresql 服務:
sudo su - postgres -c "gsutil cp gs://cloud-training/gsp918/pg_hba_append.conf ." sudo su - postgres -c "gsutil cp gs://cloud-training/gsp918/postgresql_append.conf ." sudo su - postgres -c "cat pg_hba_append.conf >> /etc/postgresql/13/main/pg_hba.conf" sudo su - postgres -c "cat postgresql_append.conf >> /etc/postgresql/13/main/postgresql.conf" sudo systemctl restart postgresql@13-main

pg_hba.conf 中,下列指令會新增規則允許存取所有主機:

#GSP918 - allow access to all hosts host all all 0.0.0.0/0 md5

postgresql.conf 中,下列指令會建立基本設定,讓 pglogical 監聽所有位址:

#GSP918 - added configuration for pglogical database extension wal_level = logical # minimal, replica, or logical max_worker_processes = 10 # one per database needed on provider node # one per node needed on subscriber node max_replication_slots = 10 # one per node needed on provider node max_wal_senders = 10 # one per node needed on provider node shared_preload_libraries = 'pglogical' max_wal_size = 1GB min_wal_size = 80MB listen_addresses = '*' # what IP address(es) to listen on, '*' is all

以上程式碼片段會附加在相關檔案,以及重新啟動後的 PostgreSQL 服務。

  1. 啟動 psql 工具:
sudo su - postgres psql
  1. pglogical 資料庫擴充功能新增至 postgresordersgmemegen_db 資料庫:
\c postgres; CREATE EXTENSION pglogical; \c orders; CREATE EXTENSION pglogical; \c gmemegen_db; CREATE EXTENSION pglogical;
  1. 列出伺服器上的 PostgreSQL 資料庫:
\l

如畫面所示,除了預設的 postgresql 資料庫之外,本研究室還提供 ordersgmemegen_db 資料庫。本研究室中不會用到 gmemegen_db 資料庫,但需一併遷移該資料庫,以在後續研究室中使用。

List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- gmemegen_db | postgres | UTF8 | C.UTF-8 | C.UTF-8 | orders | postgres | UTF8 | C.UTF-8 | C.UTF-8 | postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (5 rows)

建立資料庫遷移使用者

在這個步驟中,您將建立使用者來專門管理資料庫遷移作業。

  1. psql 中輸入下列指令,建立具複製角色的新使用者:
CREATE USER migration_admin PASSWORD 'DMS_1s_cool!'; ALTER DATABASE orders OWNER TO migration_admin; ALTER ROLE migration_admin WITH REPLICATION;

將權限指派給遷移使用者

在這個步驟中,您將指派必要權限給 migration_admin 使用者,以啟用資料庫移轉服務遷移資料庫。

  1. psql 中,授予 postgres 資料庫的 pglogical 結構定義和資料表權限:
\c postgres; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. psql 中,授予 orders 資料庫的 pglogical 結構定義和資料表權限:
\c orders; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. psql 中,授予 orders 資料庫的 public 結構定義和資料表權限:
GRANT USAGE ON SCHEMA public TO migration_admin; GRANT ALL ON SCHEMA public TO migration_admin; GRANT SELECT ON public.distribution_centers TO migration_admin; GRANT SELECT ON public.inventory_items TO migration_admin; GRANT SELECT ON public.order_items TO migration_admin; GRANT SELECT ON public.products TO migration_admin; GRANT SELECT ON public.users TO migration_admin;
  1. psql 中,授予 gmemegen_db 資料庫的 pglogical 結構定義和資料表權限:
\c gmemegen_db; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. psql 中,授予 gmemegen_db 資料庫的 public 結構定義和資料表權限:
GRANT USAGE ON SCHEMA public TO migration_admin; GRANT ALL ON SCHEMA public TO migration_admin; GRANT SELECT ON public.meme TO migration_admin;

做好以上準備後,即可開始遷移來源資料庫。您授予 migration_admin 使用者的權限,都是資料庫移轉服務遷移 postgresordersgmemegen_db 資料庫的必要權限。

測試遷移作業時,請將 migration_admin 使用者設為 orders 資料庫的資料表擁有者,供稍後編輯來源資料。

  1. psql 中執行下列指令:
\c orders; \dt ALTER TABLE public.distribution_centers OWNER TO migration_admin; ALTER TABLE public.inventory_items OWNER TO migration_admin; ALTER TABLE public.order_items OWNER TO migration_admin; ALTER TABLE public.products OWNER TO migration_admin; ALTER TABLE public.users OWNER TO migration_admin; \dt List of relations Schema | Name | Type | Owner --------+----------------------+-------+------- public | distribution_centers | table | migration_admin public | inventory_items | table | migration_admin public | order_items | table | migration_admin public | products | table | migration_admin public | users | table | migration_admin (5 rows)
  1. 結束 psql 和 postgres 使用者工作階段:
\q exit

點選「Check my progress」,確認目標已達成。 為 PostgreSQL 來源執行個體做好遷移準備。

工作 2:為獨立 PostgreSQL 資料庫,建立資料庫移轉服務連線設定檔

在這個工作中,您將建立 PostgreSQL 來源執行個體的連線設定檔。

取得 PostgreSQL 來源執行個體的連線資訊

在這個步驟中,您將找出要遷移至 Cloud SQL 的來源資料庫執行個體內部 IP 位址。

  1. 在 Google Cloud 控制台的「導覽選單」(「導覽選單」圖示) 中,依序點選「Compute Engine」>「VM 執行個體」

  2. 找出 postgresql-vm 這行執行個體程式碼。

  3. 複製 內部 IP 的值 (例如 10.128.0.2)。

為 PostgreSQL 來源執行個體建立新的連線設定檔

連線設定檔會儲存來源資料庫執行個體 (例如獨立 PostgreSQL) 的資訊,供資料庫移轉服務使用,將來源資料遷移至目的地 Cloud SQL 資料庫執行個體。連線設定檔建立後,可重複用於各項遷移工作。

在這個步驟中,您將建立 PostgreSQL 來源執行個體的新連線設定檔。

  1. 在 Google Cloud 控制台的「導覽選單」(「導覽選單」圖示) 中,依序點選「資料庫遷移」>「連線設定檔」

  2. 點選「+ 建立設定檔」

  3. 在「資料庫引擎」部分,選取「PostgreSQL」。

  4. 在「連線設定檔名稱」部分,輸入 postgres-vm

  5. 在「主機名稱或 IP 位址」部分,輸入前一個工作中複製的 PostgreSQL 來源執行個體內部 IP (例如 10.128.0.2)。

  6. 在「通訊埠」部分,輸入 5432

  7. 在「使用者名稱」部分,輸入 migration_admin

  8. 在「密碼」部分,輸入 DMS_1s_cool!

  9. 在「區域」部分,選取」。

  10. 保留其他預設值。

  11. 點選「建立」

連線設定檔清單會顯示新的連線設定檔 postgres-vm

點選「Check my progress」,確認目標已達成。 建立 PostgreSQL 來源執行個體的連線設定檔。

工作 3:建立並啟動連續遷移工作

建立新的遷移工作時,第一步是使用先前建立的連線設定檔,定義來源資料庫執行個體。完成後,您需要建立新的目的地資料庫執行個體,並設定來源與目的地執行個體之間的連線。

在這個工作中,您將透過遷移工作介面,建立新的 PostgreSQL 適用的 Cloud SQL 資料庫執行個體,並設為 PostgreSQL 來源執行個體連續遷移工作的目的地。

建立新的連續遷移工作

在這個步驟中,您將建立新的連續遷移工作。

  1. 在 Google Cloud 控制台的「導覽選單」(「導覽選單」圖示) 中,依序點選「資料庫遷移」>「遷移工作」。

  2. 點選「+ 建立遷移工作」。

  3. 在「遷移工作名稱」部分,輸入 vm-to-cloudsql

  4. 在「來源資料庫引擎」部分,選取「PostgreSQL」。

  5. 在「目的地區域」部分,選取「」。

  6. 在「目的地資料庫引擎」部分,選取「PostgreSQL 適用的 Cloud SQL」。

  7. 在「遷移工作類型」部分,選取「連續」。

保留其他預設值。

  1. 點選「儲存並繼續」

定義來源執行個體

在這個步驟中,您將定義遷移工作的來源執行個體。

  1. 在「來源連線設定檔」部分,選取「postgres-vm」。

保留其他預設值。

  1. 點選「儲存並繼續」

選取來源連線設定檔後,畫面會顯示設定詳細資料,包括來源主機名稱或 IP 位址、通訊埠、使用者名稱,以及加密類型。

建立目的地執行個體

在這個步驟中,您將建立遷移工作的目的地執行個體。

  1. 在「目的地執行個體 ID」部分,輸入 postgresql-cloudsql

  2. 在「密碼」部分,輸入 supersecret!

  3. 在「選擇 Cloud SQL 版本」部分,選取「Enterprise」

  4. 在「資料庫版本」部分,選取「PostgreSQL 適用的 Cloud SQL 13」。

  5. 在「選擇區域和可用區」部分,選取「單一可用區」;在「主要可用區」部分,選取「」。

  6. 在「執行個體連線能力」部分,選取「私人 IP」和「公開 IP」。

  7. 選取「使用系統自動分配的 IP 範圍」。

保留其他預設值。

  1. 點選「分配並連線」。

保持選取「使用系統自動分配的 IP 範圍」預設選項。

注意:這個步驟會在幾分鐘內完成。如果系統請您重試要求,請點選「重試」按鈕重新整理 Service Networking API。

完成這個步驟後,畫面會顯示更新訊息,告知執行個體將使用現有代管服務連線。

在後續步驟中,您將需要編輯 VM 執行個體上的 pg_hba.conf 檔案,允許存取先前步驟第 5 點中自動產生的 IP 範圍。編輯完成後,請測試遷移設定,即可結束這個工作。

畫面會顯示更新訊息,告知執行個體將使用現有代管服務連線。

輸入必要額外資訊,在 Cloud SQL 上建立目的地執行個體。

  1. 在「機器類型」部分,勾選「1 個 vCPU,3.75 GB」。

  2. 在「儲存空間類型」部分,選取「SSD」。

  3. 在「儲存空間容量」部分,選取「10 GB」。

  4. 點選「建立並繼續」。

如果系統提示您確認操作,請點選「建立目的地並繼續」。畫面會顯示訊息,告知系統正在建立目的地資料庫執行個體。請在等候期間繼續下一個步驟。

定義連線方式

在這個步驟中,您將定義遷移工作的連線方式。

建立目的地 Cloud SQL 執行個體後,畫面會顯示訊息,告知已啟用「設定並繼續」按鈕。

  1. 在「連線方式」部分,選取「虛擬私有雲對等互連」。

  2. 在「虛擬私有雲」部分,選取「預設」。

資料庫移轉服務會根據虛擬私有雲網路 (這個範例中的預設網路) 相關資訊,設定虛擬私有雲對等互連。

看到更新訊息,顯示已建立目的地執行個體後,請前往下一個步驟。

畫面會顯示更新訊息,告知已建立目的地 Cloud SQL 執行個體。

  1. 點選「設定並繼續」

允許從系統自動分配的 IP 範圍,存取 postgresql-vm 執行個體

在這個步驟中,您將編輯 PostgreSQL 設定檔 pg_hba.conf,允許資料庫移轉服務存取獨立 PostgreSQL 資料庫。

  1. 取得系統分配的 IP 位址範圍。在 Google Cloud 控制台的「導覽選單」(「導覽選單」圖示) 中,用滑鼠右鍵按一下「虛擬私有雲網路」,在新分頁中開啟「虛擬私有雲網路對等互連」。

  2. 點選「servicenetworking-googleapis-com」項目。

  3. 在「匯入的路徑」分頁中,選取並複製 Destination IP range (例如 10.107.176.0/24)。

  4. 在 VM 執行個體的終端機工作階段中編輯 pg_hba.conf 檔案,如下所示:

sudo nano /etc/postgresql/13/main/pg_hba.conf
  1. 在檔案最後一行:
#GSP918 - allow access to all hosts host all all 0.0.0.0/0 md5

將「所有 IP 位址」範圍 (0.0.0.0/0),換成上方第 3 點中複製的範圍。

#GSP918 - allow access to all hosts host all all 10.107.176.0/24 md5 注意:以上步驟並非建立遷移工作的必要程序,但可在遷移期間進一步保護來源資料庫安全,也能在資料庫遷移後成為可靠來源時,限制存取權。
  1. 依序按下 Ctrl-O 鍵和 Enter 鍵儲存檔案,然後按下 Ctrl-X 鍵退出 nano 編輯器。

  2. 重新啟動 PostgreSQL 服務,變更即可生效。在 VM 執行個體終端機工作階段中,輸入下列程式碼:

sudo systemctl start postgresql@13-main

測試並開始執行連續遷移工作

在這個步驟中,您將測試並開始執行遷移工作。

  1. 前往稍早開啟的「資料庫移轉服務」分頁,查看遷移工作詳細資料。

  2. 點選「測試工作」。

  3. 測試成功後,點選「建立及啟動工作」。

務必點選「建立及啟動工作」按鈕,確保成功啟動工作。

如果系統提示您確認操作,請點選「建立並啟動」。

查看連續遷移工作狀態

在這個步驟中,您將確認遷移工作正在執行。

  1. 在 Google Cloud 控制台的「導覽選單」(「導覽選單」圖示) 中,依序點選「資料庫遷移」>「遷移工作」。

  2. 點選遷移工作「vm-to-cloudsql」,查看詳細資料頁面。

  3. 查看遷移工作狀態。

    • 如果尚未啟動工作,狀態會顯示為「尚未啟動」,您可以選擇啟動或刪除工作。
    • 啟動工作後,狀態會顯示為「啟動中」,然後轉為「執行中」/「正在執行完整傾印作業」,表示正在執行初始資料庫轉儲作業。
    • 初始資料庫轉儲作業完成後,狀態會轉為「正在執行 CDC 作業」,表示正在執行連續遷移作業。

工作狀態變成「正在執行 CDC 作業」時,請繼續下一個工作。

遷移工作 vm-to-cloudsql 現在的狀態是「正在執行 CDC 作業」。

點選「Check my progress」,確認目標已達成。 建立、啟動並查看連續遷移工作。

工作 4:確認 PostgreSQL 適用的 Cloud SQL 資料

檢查 Cloud SQL 中的 PostgreSQL 資料庫

  1. 在 Google Cloud 控制台的「導覽選單」(「導覽選單」圖示) 中,依序前往「資料庫」>「SQL」。

  2. 展開的執行個體 ID postgresql-cloudsql-master

  3. 點選執行個體「postgresql-cloudsql」(PostgreSQL 唯讀備用資源)。

  4. 點選「備用資源執行個體」選單中的「資料庫」。

您會發現 postgresordersgmemegen_db 資料庫都已遷移至 Cloud SQL。

已遷移至 Cloud SQL 的資料庫。

連至 PostgreSQL 執行個體

  1. 點選「備用資源執行個體」選單中的「總覽」。

  2. 向下捲動到「連線至這個執行個體」部分,點選「開啟 Cloud Shell」。

Cloud Shell 會預先填入連至 PostgreSQL 的指令:

gcloud sql connect postgresql-cloudsql --user=postgres --quiet
  1. 執行預先填入的指令。

如果系統提示您為 API 授權,請點選「授權」。

  1. 系統提示輸入密碼時,請輸入先前設定的密碼:
supersecret!

您成功啟用了目的地執行個體的 PostgreSQL 互動式控制台。

查看 PostgreSQL 適用的 Cloud SQL 執行個體資料

  1. 執行下列指令,在 PostgreSQL 互動式控制台中選取資料庫:
\c orders;
  1. 系統提示輸入密碼時,請輸入:
supersecret!
  1. 查詢 distribution_centers 資料表:
select * from distribution_centers;

(輸出內容)

longitude | latitude | name | id -----------+----------+---------------------------------------------+---- -89.9711 | 35.1174 | Memphis TN | 1 -87.6847 | 41.8369 | Chicago IL | 2 -95.3698 | 29.7604 | Houston TX | 3 -118.25 | 34.05 | Los Angeles CA | 4 -90.0667 | 29.95 | New Orleans LA | 5 -73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6 -75.1667 | 39.95 | Philadelphia PA | 7 -88.0431 | 30.6944 | Mobile AL | 8 -79.9333 | 32.7833 | Charleston SC | 9 -81.1167 | 32.0167 | Savannah GA | 10
  1. 輸入下列指令,結束 PostgreSQL 互動式控制台:
\q

更新獨立來源資料,測試連續遷移工作

  1. 在 Cloud Shell 中輸入下列指令,連至來源 PostgreSQL 執行個體:
export VM_NAME=postgresql-vm export PROJECT_ID=$(gcloud config list --format 'value(core.project)') export POSTGRESQL_IP=$(gcloud compute instances describe ${VM_NAME} \ --zone={{{ project_0.default_zone|(zone) }}} --format="value(networkInterfaces[0].accessConfigs[0].natIP)") echo $POSTGRESQL_IP psql -h $POSTGRESQL_IP -p 5432 -d orders -U migration_admin 注意:以上指令是替代做法,用於在 VM 執行個體上存取獨立資料庫。
  1. 系統提示輸入密碼時,請輸入:
DMS_1s_cool!
  1. psql 中輸入下列指令:
\c orders; insert into distribution_centers values(-80.1918,25.7617,'Miami FL',11);
  1. 關閉互動式 psql 工作階段:
\q

連至 Cloud SQL PostgreSQL 資料庫,檢查更新後的資料是否已遷移

  1. 在 Cloud Shell 中輸入下列指令,連至目的地 Cloud SQL PostgreSQL 執行個體:
gcloud sql connect postgresql-cloudsql --user=postgres --quiet
  1. 系統提示輸入 Cloud SQL 執行個體密碼時,請輸入先前設定的密碼:
supersecret!

您成功啟用了目的地執行個體的 PostgreSQL 互動式控制台。

查看 PostgreSQL 適用的 Cloud SQL 資料庫資料

  1. 在 Cloud Shell 中輸入下列指令,從 PostgreSQL 互動式控制台選取使用中的資料庫:
\c orders;
  1. 系統提示輸入密碼時,請輸入先前設定的密碼:
supersecret!
  1. 查詢 distribution_centers 資料表:
select * from distribution_centers;

(輸出內容)

longitude | latitude | name | id -----------+----------+---------------------------------------------+---- -89.9711 | 35.1174 | Memphis TN | 1 -87.6847 | 41.8369 | Chicago IL | 2 -95.3698 | 29.7604 | Houston TX | 3 -118.25 | 34.05 | Los Angeles CA | 4 -90.0667 | 29.95 | New Orleans LA | 5 -73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6 -75.1667 | 39.95 | Philadelphia PA | 7 -88.0431 | 30.6944 | Mobile AL | 8 -79.9333 | 32.7833 | Charleston SC | 9 -81.1167 | 32.0167 | Savannah GA | 10 -80.1918 | 25.7617 | Miami FL | 11

請注意,附加至獨立 orders 資料庫的新資料列,現在顯示在遷移後的資料庫中。

  1. 結束 PostgreSQL 互動式控制台:
\q

點選「Check my progress」,確認目標已達成。 測試將來源資料移至目的地的連續遷移工作。

工作 5:將 Cloud SQL 升級為獨立執行個體,供讀取及寫入資料

  1. 在 Google Cloud 控制台的「導覽選單」(「導覽選單」圖示) 中,依序點選「資料庫遷移」>「遷移工作」。

  2. 點選遷移工作「vm-to-cloudsql」,查看詳細資料頁面。

  3. 點選「升級」。

如果系統提示您確認操作,請點選「升級」。

畫面顯示升級完成時,工作狀態會更新為「已完成」。

遷移工作 vm-to-cloudsql 現在的狀態是「已完成」。

  1. 在 Google Cloud 控制台的「導覽選單」(「導覽選單」圖示) 中,依序前往「資料庫」>「SQL」。

請注意,postgresql-cloudsql 現在是獨立執行個體,可供讀取及寫入資料。

系統已將執行個體 postgresql-cloudsql 標為主要執行個體。

點選「Check my progress」,確認目標已達成。 將 PostgreSQL 適用的 Cloud SQL 執行個體,升級為獨立執行個體供讀取及寫入資料。

恭喜!

您已瞭解如何使用資料庫移轉服務設定連續工作,將資料庫從 PostgreSQL 執行個體遷移至 PostgreSQL 適用的 Cloud SQL。

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2024 年 5 月 14 日

研究室上次測試日期:2024 年 5 月 14 日

Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您