检查点
Prepare the source database for migration.
/ 20
Create a Database Migration Service connection profile.
/ 20
Create and start a continuous migration job.
/ 20
Confirm the data in Cloud SQL for PostgreSQL.
/ 20
Promote Cloud SQL to be a stand-alone instance for reading and writing data.
/ 20
使用資料庫移轉服務,遷移至 PostgreSQL 適用的 Cloud SQL
GSP918
總覽
資料庫移轉服務可讓您建立連線來執行遷移工作,將資料移至 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 控制台
-
按一下「Start Lab」(開始研究室) 按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:
- 「Open Google Cloud console」按鈕
- 剩餘時間
- 必須在這個研究室中使用的暫時憑證
- 完成這個實驗室所需的其他資訊 (如有)
-
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,然後選取「在無痕式視窗中開啟連結」。
接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」。 -
如有必要,請將下方的 Username 貼到「登入」對話方塊。
{{{user_0.username | "Username"}}} 您也可以在「Lab Details」窗格找到 Username。
-
點選「下一步」。
-
複製下方的 Password,並貼到「歡迎使用」對話方塊。
{{{user_0.password | "Password"}}} 您也可以在「Lab Details」窗格找到 Password。
-
點選「下一步」。
重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。 -
按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Google Cloud 控制台稍後會在這個分頁開啟。
啟動 Cloud Shell
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
- 點按 Google Cloud 控制台上方的「啟用 Cloud Shell」圖示 。
連線完成即代表已通過驗證,且專案已設為您的 PROJECT_ID。輸出內容中有一行宣告本工作階段 PROJECT_ID 的文字:
gcloud
是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
- (選用) 您可以執行下列指令來列出使用中的帳戶:
-
點按「授權」。
-
輸出畫面應如下所示:
輸出內容:
- (選用) 您可以使用下列指令來列出專案 ID:
輸出內容:
輸出內容範例:
gcloud
的完整說明,請前往 Google Cloud 並參閱「gcloud CLI overview guide」(gcloud CLI 總覽指南)。
確認已啟用 Database Migration API
- 在 Google Cloud 控制台頂端的搜尋列中,輸入 Database Migration API,點選搜尋結果「Database Migration API」。
這個頁面會顯示狀態資訊或該 API 的啟用選項。
- 如有需要,請啟用 API。
確認已啟用 Service Networking API
必須啟用 Service Networking API,才能設定 Cloud SQL 來支援虛擬私有雲對等互連,並透過私人 IP 位址連線。
- 在 Cloud 控制台頂端的搜尋列中,輸入 Service Networking API,點選搜尋結果「Service Networking API」。
這個頁面會顯示狀態資訊或該 API 的啟用選項。
- 如有需要,請啟用 API。
工作 1:為來源資料庫做好遷移準備
在這個工作中,您需要在來源資料庫中新增支援功能,才能透過資料庫移轉服務執行遷移作業。包括:
- 安裝並設定 pglogical 資料庫擴充功能。
- 設定獨立 PostgreSQL 資料庫,允許從 Cloud Shell 和 Cloud SQL 存取。
- 將
pglogical
資料庫擴充功能新增至獨立伺服器上的postgres
、orders
和gmemegen_db
資料庫。 - 建立用於遷移資料庫的
migration_admin
使用者,並授予複製權限、必要的結構定義權限和關聯。
使用 pglogical 擴充功能升級資料庫
在這個步驟中,您將下載 pglogical
資料庫擴充功能,並新增至 postgresql-vm
VM 執行個體上的 orders 和 postgres 資料庫。
-
在 Google Cloud 控制台的「導覽選單」() 中,依序點選「Compute Engine」>「VM 執行個體」。
-
在
Connect
下的postgresql-vm
項目中,點選「SSH」。 -
如果出現提示訊息,請點選「授權」。
-
瀏覽器會以新視窗開啟終端機,請輸入下列指令安裝
pglogical
資料庫擴充功能:
pglogical
邏輯複製系統完全是以 PostgreSQL 擴充功能執行,充分整合後即不需要觸發條件或外部程式。這會使用發布/訂閱模型來選擇性複製資料,而非複製實體,是非常有效率的複製方法。詳情請參閱下列網址:https://github.com/2ndQuadrant/pglogical
- 下載附加功能並套用至 PostgreSQL 設定檔來啟用 pglogical 擴充功能,然後重新啟動 postgresql 服務:
在 pg_hba.conf
中,下列指令會新增規則允許存取所有主機:
在 postgresql.conf
中,下列指令會建立基本設定,讓 pglogical 監聽所有位址:
以上程式碼片段會附加在相關檔案,以及重新啟動後的 PostgreSQL 服務。
- 啟動 psql 工具:
- 將
pglogical
資料庫擴充功能新增至postgres
、orders
和gmemegen_db
資料庫:
- 列出伺服器上的 PostgreSQL 資料庫:
如畫面所示,除了預設的 postgresql 資料庫之外,本研究室還提供 orders
和 gmemegen_db
資料庫。本研究室中不會用到 gmemegen_db
資料庫,但需一併遷移該資料庫,以在後續研究室中使用。
建立資料庫遷移使用者
在這個步驟中,您將建立使用者來專門管理資料庫遷移作業。
- 在 psql 中輸入下列指令,建立具複製角色的新使用者:
將權限指派給遷移使用者
在這個步驟中,您將指派必要權限給 migration_admin
使用者,以啟用資料庫移轉服務遷移資料庫。
- 在 psql 中,授予
postgres
資料庫的pglogical
結構定義和資料表權限:
- 在 psql 中,授予
orders
資料庫的pglogical
結構定義和資料表權限:
- 在 psql 中,授予
orders
資料庫的public
結構定義和資料表權限:
- 在 psql 中,授予
gmemegen_db
資料庫的pglogical
結構定義和資料表權限:
- 在 psql 中,授予
gmemegen_db
資料庫的public
結構定義和資料表權限:
做好以上準備後,即可開始遷移來源資料庫。您授予 migration_admin
使用者的權限,都是資料庫移轉服務遷移 postgres
、orders
和 gmemegen_db
資料庫的必要權限。
測試遷移作業時,請將 migration_admin
使用者設為 orders
資料庫的資料表擁有者,供稍後編輯來源資料。
- 在 psql 中執行下列指令:
- 結束 psql 和 postgres 使用者工作階段:
點選「Check my progress」,確認目標已達成。
工作 2:為獨立 PostgreSQL 資料庫,建立資料庫移轉服務連線設定檔
在這個工作中,您將建立 PostgreSQL 來源執行個體的連線設定檔。
取得 PostgreSQL 來源執行個體的連線資訊
在這個步驟中,您將找出要遷移至 Cloud SQL 的來源資料庫執行個體內部 IP 位址。
-
在 Google Cloud 控制台的「導覽選單」() 中,依序點選「Compute Engine」>「VM 執行個體」。
-
找出 postgresql-vm 這行執行個體程式碼。
-
複製 內部 IP 的值 (例如 10.128.0.2)。
為 PostgreSQL 來源執行個體建立新的連線設定檔
連線設定檔會儲存來源資料庫執行個體 (例如獨立 PostgreSQL) 的資訊,供資料庫移轉服務使用,將來源資料遷移至目的地 Cloud SQL 資料庫執行個體。連線設定檔建立後,可重複用於各項遷移工作。
在這個步驟中,您將建立 PostgreSQL 來源執行個體的新連線設定檔。
-
在 Google Cloud 控制台的「導覽選單」() 中,依序點選「資料庫遷移」>「連線設定檔」。
-
點選「+ 建立設定檔」。
-
在「資料庫引擎」部分,選取「PostgreSQL」。
-
在「連線設定檔名稱」部分,輸入 postgres-vm。
-
在「主機名稱或 IP 位址」部分,輸入前一個工作中複製的 PostgreSQL 來源執行個體內部 IP (例如 10.128.0.2)。
-
在「通訊埠」部分,輸入 5432。
-
在「使用者名稱」部分,輸入 migration_admin。
-
在「密碼」部分,輸入 DMS_1s_cool!。
-
在「區域」部分,選取「
」。 -
保留其他預設值。
-
點選「建立」。
連線設定檔清單會顯示新的連線設定檔 postgres-vm。
點選「Check my progress」,確認目標已達成。
工作 3:建立並啟動連續遷移工作
建立新的遷移工作時,第一步是使用先前建立的連線設定檔,定義來源資料庫執行個體。完成後,您需要建立新的目的地資料庫執行個體,並設定來源與目的地執行個體之間的連線。
在這個工作中,您將透過遷移工作介面,建立新的 PostgreSQL 適用的 Cloud SQL 資料庫執行個體,並設為 PostgreSQL 來源執行個體連續遷移工作的目的地。
建立新的連續遷移工作
在這個步驟中,您將建立新的連續遷移工作。
-
在 Google Cloud 控制台的「導覽選單」() 中,依序點選「資料庫遷移」>「遷移工作」。
-
點選「+ 建立遷移工作」。
-
在「遷移工作名稱」部分,輸入 vm-to-cloudsql。
-
在「來源資料庫引擎」部分,選取「PostgreSQL」。
-
在「目的地區域」部分,選取「
」。 -
在「目的地資料庫引擎」部分,選取「PostgreSQL 適用的 Cloud SQL」。
-
在「遷移工作類型」部分,選取「連續」。
保留其他預設值。
- 點選「儲存並繼續」。
定義來源執行個體
在這個步驟中,您將定義遷移工作的來源執行個體。
- 在「來源連線設定檔」部分,選取「postgres-vm」。
保留其他預設值。
- 點選「儲存並繼續」。
建立目的地執行個體
在這個步驟中,您將建立遷移工作的目的地執行個體。
-
在「目的地執行個體 ID」部分,輸入 postgresql-cloudsql。
-
在「密碼」部分,輸入 supersecret!。
-
在「選擇 Cloud SQL 版本」部分,選取「Enterprise」。
-
在「資料庫版本」部分,選取「PostgreSQL 適用的 Cloud SQL 13」。
-
在「選擇區域和可用區」部分,選取「單一可用區」;在「主要可用區」部分,選取「
」。 -
在「執行個體連線能力」部分,選取「私人 IP」和「公開 IP」。
-
選取「使用系統自動分配的 IP 範圍」。
保留其他預設值。
- 點選「分配並連線」。
注意:這個步驟會在幾分鐘內完成。如果系統請您重試要求,請點選「重試」按鈕重新整理 Service Networking API。
完成這個步驟後,畫面會顯示更新訊息,告知執行個體將使用現有代管服務連線。
在後續步驟中,您將需要編輯 VM 執行個體上的 pg_hba.conf 檔案,允許存取先前步驟第 5 點中自動產生的 IP 範圍。編輯完成後,請測試遷移設定,即可結束這個工作。
輸入必要額外資訊,在 Cloud SQL 上建立目的地執行個體。
-
在「機器類型」部分,勾選「1 個 vCPU,3.75 GB」。
-
在「儲存空間類型」部分,選取「SSD」。
-
在「儲存空間容量」部分,選取「10 GB」。
-
點選「建立並繼續」。
如果系統提示您確認操作,請點選「建立目的地並繼續」。畫面會顯示訊息,告知系統正在建立目的地資料庫執行個體。請在等候期間繼續下一個步驟。
定義連線方式
在這個步驟中,您將定義遷移工作的連線方式。
-
在「連線方式」部分,選取「虛擬私有雲對等互連」。
-
在「虛擬私有雲」部分,選取「預設」。
資料庫移轉服務會根據虛擬私有雲網路 (這個範例中的預設網路) 相關資訊,設定虛擬私有雲對等互連。
看到更新訊息,顯示已建立目的地執行個體後,請前往下一個步驟。
- 點選「設定並繼續」。
允許從系統自動分配的 IP 範圍,存取 postgresql-vm 執行個體
在這個步驟中,您將編輯 PostgreSQL 設定檔 pg_hba.conf
,允許資料庫移轉服務存取獨立 PostgreSQL 資料庫。
-
取得系統分配的 IP 位址範圍。在 Google Cloud 控制台的「導覽選單」() 中,用滑鼠右鍵按一下「虛擬私有雲網路」,在新分頁中開啟「虛擬私有雲網路對等互連」。
-
點選「
servicenetworking-googleapis-com
」項目。 -
在「匯入的路徑」分頁中,選取並複製
Destination IP range
(例如 10.107.176.0/24)。 -
在 VM 執行個體的終端機工作階段中編輯
pg_hba.conf
檔案,如下所示:
- 在檔案最後一行:
將「所有 IP 位址」範圍 (0.0.0.0/0),換成上方第 3 點中複製的範圍。
-
依序按下 Ctrl-O 鍵和 Enter 鍵儲存檔案,然後按下 Ctrl-X 鍵退出 nano 編輯器。
-
重新啟動 PostgreSQL 服務,變更即可生效。在 VM 執行個體終端機工作階段中,輸入下列程式碼:
測試並開始執行連續遷移工作
在這個步驟中,您將測試並開始執行遷移工作。
-
前往稍早開啟的「資料庫移轉服務」分頁,查看遷移工作詳細資料。
-
點選「測試工作」。
-
測試成功後,點選「建立及啟動工作」。
如果系統提示您確認操作,請點選「建立並啟動」。
查看連續遷移工作狀態
在這個步驟中,您將確認遷移工作正在執行。
-
在 Google Cloud 控制台的「導覽選單」() 中,依序點選「資料庫遷移」>「遷移工作」。
-
點選遷移工作「vm-to-cloudsql」,查看詳細資料頁面。
-
查看遷移工作狀態。
- 如果尚未啟動工作,狀態會顯示為「尚未啟動」,您可以選擇啟動或刪除工作。
- 啟動工作後,狀態會顯示為「啟動中」,然後轉為「執行中」/「正在執行完整傾印作業」,表示正在執行初始資料庫轉儲作業。
- 初始資料庫轉儲作業完成後,狀態會轉為「正在執行 CDC 作業」,表示正在執行連續遷移作業。
工作狀態變成「正在執行 CDC 作業」時,請繼續下一個工作。
點選「Check my progress」,確認目標已達成。
工作 4:確認 PostgreSQL 適用的 Cloud SQL 資料
檢查 Cloud SQL 中的 PostgreSQL 資料庫
-
在 Google Cloud 控制台的「導覽選單」() 中,依序前往「資料庫」>「SQL」。
-
展開的執行個體 ID postgresql-cloudsql-master。
-
點選執行個體「postgresql-cloudsql」(PostgreSQL 唯讀備用資源)。
-
點選「備用資源執行個體」選單中的「資料庫」。
您會發現 postgres、orders 和 gmemegen_db 資料庫都已遷移至 Cloud SQL。
連至 PostgreSQL 執行個體
-
點選「備用資源執行個體」選單中的「總覽」。
-
向下捲動到「連線至這個執行個體」部分,點選「開啟 Cloud Shell」。
Cloud Shell 會預先填入連至 PostgreSQL 的指令:
- 執行預先填入的指令。
如果系統提示您為 API 授權,請點選「授權」。
- 系統提示輸入密碼時,請輸入先前設定的密碼:
您成功啟用了目的地執行個體的 PostgreSQL 互動式控制台。
查看 PostgreSQL 適用的 Cloud SQL 執行個體資料
- 執行下列指令,在 PostgreSQL 互動式控制台中選取資料庫:
- 系統提示輸入密碼時,請輸入:
- 查詢
distribution_centers
資料表:
(輸出內容)
- 輸入下列指令,結束 PostgreSQL 互動式控制台:
更新獨立來源資料,測試連續遷移工作
- 在 Cloud Shell 中輸入下列指令,連至來源 PostgreSQL 執行個體:
- 系統提示輸入密碼時,請輸入:
- 在 psql 中輸入下列指令:
- 關閉互動式 psql 工作階段:
連至 Cloud SQL PostgreSQL 資料庫,檢查更新後的資料是否已遷移
- 在 Cloud Shell 中輸入下列指令,連至目的地 Cloud SQL PostgreSQL 執行個體:
- 系統提示輸入 Cloud SQL 執行個體密碼時,請輸入先前設定的密碼:
您成功啟用了目的地執行個體的 PostgreSQL 互動式控制台。
查看 PostgreSQL 適用的 Cloud SQL 資料庫資料
- 在 Cloud Shell 中輸入下列指令,從 PostgreSQL 互動式控制台選取使用中的資料庫:
- 系統提示輸入密碼時,請輸入先前設定的密碼:
- 查詢
distribution_centers
資料表:
(輸出內容)
請注意,附加至獨立 orders
資料庫的新資料列,現在顯示在遷移後的資料庫中。
- 結束 PostgreSQL 互動式控制台:
點選「Check my progress」,確認目標已達成。
工作 5:將 Cloud SQL 升級為獨立執行個體,供讀取及寫入資料
-
在 Google Cloud 控制台的「導覽選單」() 中,依序點選「資料庫遷移」>「遷移工作」。
-
點選遷移工作「vm-to-cloudsql」,查看詳細資料頁面。
-
點選「升級」。
如果系統提示您確認操作,請點選「升級」。
畫面顯示升級完成時,工作狀態會更新為「已完成」。
- 在 Google Cloud 控制台的「導覽選單」() 中,依序前往「資料庫」>「SQL」。
請注意,postgresql-cloudsql 現在是獨立執行個體,可供讀取及寫入資料。
點選「Check my progress」,確認目標已達成。
恭喜!
您已瞭解如何使用資料庫移轉服務設定連續工作,將資料庫從 PostgreSQL 執行個體遷移至 PostgreSQL 適用的 Cloud SQL。
Google Cloud 教育訓練與認證
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2024 年 5 月 14 日
研究室上次測試日期:2024 年 5 月 14 日
Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。