本文將引導你如何在離線模式下,將 Google Cloud SQL for PostgreSQL 實例遷移到 Azure Database for PostgreSQL 彈性伺服器。
適用於 PostgreSQL 的 Azure 資料庫中的移轉服務是整合到 Azure 入口網站和 Azure CLI 中的完全受控服務。 其設計目的是要簡化您移轉至適用於 PostgreSQL 的 Azure 資料庫彈性伺服器。
- 先決條件
- 執行移轉
- 監視移轉
- 完成時檢查移轉
先決條件
若要完成移轉,您需要下列先決條件:
使用適用於 PostgreSQL 的 Azure 資料庫移轉服務開始移轉之前,請務必符合下列特別針對離線移轉情境設計的先決條件。
驗證來源版本
來源 PostgreSQL 伺服器版本必須是 9.5 或更新版本。
如果來源 PostgreSQL 版本早於 9.5 ,請在開始移轉之前將其升級至 9.5 或更新版本。
設定目標設定
開始移轉之前,您必須在 Azure 中設定適用於 PostgreSQL 的 Azure 資料庫。
為適用於 PostgreSQL 的 Azure 資料庫選擇的 SKU 應與來源資料庫的規格相符,以確保相容性和適當效能。
跨 PostgreSQL 版本 (主要或次要) 移轉時,請檢閱發行備註來了解潛在重大變更,以確保資料庫與應用程式之間的相容性。
設定網路設定
網路設定對於讓移轉服務能夠正常運作至關重要。 請確定來源 PostgreSQL 伺服器可以與目標適用於 PostgreSQL 的 Azure 資料庫伺服器通訊。 下列網路設定對於成功移轉而言非常重要。
如需網路設定的相關資訊,請參閱移轉服務的網路指南。
其他網路考量
為了促進來源和目標 PostgreSQL 實例之間的連接,必須驗證並可能修改來源伺服器的 pg_hba.conf 檔案。 此檔案包含用戶端驗證,且必須設定為允許目標 PostgreSQL 連線到來源。 對 pg_hba.conf 檔案的變更通常需要重新啟動來源 PostgreSQL 執行個體才能生效。
pg_hba.conf 檔案位於 PostgreSQL 安裝的資料目錄中。 如果來源資料庫是內部部署 PostgreSQL 伺服器或裝載在 Azure VM 上的 PostgreSQL 伺服器,則應該檢查並設定此檔案。
啟用延伸模組
若要確保使用適用於 PostgreSQL 的 Azure 資料庫中的移轉服務成功移轉,您可能需要驗證來源 PostgreSQL 執行個體的延伸模組。 延伸模組提供應用程式可能需要的功能和特色。 在您起始移轉程序之前,請確定驗證來源 PostgreSQL 執行個體上的延伸模組。
在適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的目標實例中,啟用來源 PostgreSQL 實例中所識別的支持擴充功能。
如需詳細資訊,請參閱 擴充功能和模組。
檢查伺服器參數
這些參數不會自動移轉至目標環境,而且必須手動設定。
存取 Azure 入口網站中的 [ 伺服器參數 ] 頁面,並據以手動更新值,將來源 PostgreSQL 資料庫的伺服器參數值比對至適用於 PostgreSQL 的 Azure 資料庫。
如有必要,請儲存參數變更,然後重新啟動適用於 PostgreSQL 的 Azure 資料庫以套用新的設定。
檢查使用者和角色
在移轉至適用於 PostgreSQL 的 Azure 資料庫時,分開解決使用者和角色的移轉很重要,因為這些項目的移轉需要手動介入:
手動移轉使用者和角色:使用者和角色必須手動移轉至適用於 PostgreSQL 的 Azure 資料庫。 為了便利此過程,您可以使用
pg_dumpall公用程式搭配--globals-only旗標來匯出全域物件,例如角色和使用者。 執行下列命令,取代<<username>>為實際使用者名稱,並<<filename>>取代為您想要的輸出檔案名稱:pg_dumpall --globals-only -U <<username>> -f <<filename>>.sql超級使用者角色的限制:適用於 PostgreSQL 的 Azure 資料庫不支援超級使用者角色。 因此,具有超級使用者權限的使用者必須先移除這些權限,才能進行移轉。 請務必據此調整權限和角色。
透過遵循這些步驟,您可以確保使用者帳戶和角色正確移轉至適用於 PostgreSQL 的 Azure 資料庫,而不會遇到與超級使用者限制相關的問題。
在目標中停用高可用性 (可靠性) 和讀取複本
請務必要在目標環境中停用高可用性 (可靠性)和讀取複本。 只有在移轉完成後,才應啟用這些功能。
透過遵循這些指導方針,您可以協助確保移轉流程順暢進行,而不會因為高可用性和讀取複本而增添變數。 移轉完成且資料庫穩定之後,您便可以繼續啟用這些功能,以增強 Azure 中資料庫環境的可用性和可縮放性。
執行移轉
您可以使用 Azure 入口網站 或 Azure CLI 進行移轉。
本文會引導您使用 Azure 入口網站,將 PostgreSQL 資料庫從適用於 PostgreSQL 的 Google Cloud SQL 伺服器移轉至適用於 PostgreSQL 的 Azure 資料庫。 Azure 入口網站可讓您執行各種工作,包括資料庫移轉。 按照本教學課程中概述的步驟,您可以將資料庫無縫傳輸到 Azure,並利用其強大的功能和可擴展性。
設定移轉工作
移轉服務會在 Azure 入口網站上隨附簡單的精靈型體驗。
使用 Azure 入口網站:
選取適用於 PostgreSQL 的 Azure 彈性伺服器資料庫。
在資源功能表中,選取 [移轉]。
選擇 「建立 」,透過一系列精靈分頁,從 Google Cloud SQL for PostgreSQL 遷移到彈性伺服器。
附註
第一次使用移轉服務時,會出現空白格線,並提示您開始進行第一次移轉。
如果已建立目標為彈性伺服器的移轉,方格中現在會包含所嘗試之移轉的相關資訊。
安裝程式
您必須提供與移轉相關的多個詳細資料,例如移轉名稱、來源伺服器類型、選項和模式。
移轉名稱 是唯一識別碼,用於辨識每個移轉到此彈性伺服器目標的操作。 此欄位只接受英數字元,不接受任何特殊字元,但連字號 (-) 除外。 名稱的開頭不能是連字號,且對於目標伺服器而言應該是唯一的。 至相同彈性伺服器目標的兩個移轉不能具有相同的名稱。
來源伺服器類型 - 根據你的 PostgreSQL 來源,你可以選擇 Google Cloud SQL 來支援 PostgreSQL。
移轉選項 - 可讓您在觸發移轉之前執行驗證。 您可以挑選下列任何選項:
- 確認 - 檢查您的伺服器和資料庫整備程度,以移轉至目標。
- 驗證和移轉 — 在觸發移轉之前執行驗證。 如果沒有驗證失敗,則會啟動移轉。
選擇 驗證 或 驗證並移轉 選項,始終是在執行移轉之前進行移轉前驗證的良好做法。
若要深入了解預先移轉確認,請瀏覽預先移轉。
- 移轉模式可讓您挑選移轉的模式。 預設選項為離線。 在此情況下,我們將使用預設值。
選取 [下一步:執行階段伺服器]。
執行階段伺服器
移轉執行階段伺服器是適用於 PostgreSQL 的 Azure 資料庫中移轉服務內的特殊功能,旨在在移轉期間充當中繼伺服器。 這是個別的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體,不是目標伺服器,但可用來協助從只能透過私人網路存取的來源環境移轉資料庫。
如需執行階段伺服器的詳細資訊,請造訪 移轉執行階段伺服器。
來源伺服器
「來源伺服器」標籤會提示您提供與「設定」標籤中選取的來源相關的詳細資料,該來源是資料庫的來源。
- 伺服器名稱 - 提供主機名稱或來源 PostgreSQL 伺服器的 IP 位址。
- Port - 來源伺服器的連接埠號碼。
- 管理員登入 - 來源 PostgreSQL 伺服器的管理員使用者名稱。
- 密碼 - 用於連線至來源 PostgreSQL 伺服器的管理員登入密碼。
-
SSL 模式 - 支援的值為
preferred和required。 當來源 PostgreSQL 伺服器的 SSL 為OFF時,請使用prefer。 如果來源伺服器的 SSL 是ON,請使用require。 SSL 值可以在來源伺服器的 postgresql.conf 檔案中確定。 - 測試連線 — 執行目標與來源之間的連線測試。 連線成功後,您可以繼續至下一個分頁。此測試旨在識別可能存在於來源伺服器和目標伺服器之間的任何連線問題,包括使用所提供的認證資訊進行驗證。 建立測試連線需要幾秒鐘的時間。
測試連線成功之後,請選取 [下一步:目標伺服器]。
目標伺服器
「目標伺服器」索引標籤會顯示彈性伺服器目標的中繼資料,例如訂閱名稱、資源群組、伺服器名稱、位置和 PostgreSQL 版本。
- 管理員登入 - 目標 PostgreSQL 伺服器的管理員使用者名稱。
- 密碼 - 用於連線至目標 PostgreSQL 伺服器的管理員登入密碼。
-
自訂 FQDN 或 IP 位址:自訂 FQDN 或 IP 位址欄位是選擇性的,當目標位於自訂 DNS 伺服器後方或具有自訂 DNS 命名空間時,可以使用,使其只能透過特定的 FQDN 或 IP 位址存取。 例如,這可能包括像
production-flexible-server.example.com、198.1.0.2或 PostgreSQL FQDN 之類的條目,例如production-flexible-server.postgres.database.azure.com,如果自定義 DNS 伺服器包含 DNS 區域postgres.database.azure.com,或者將此區域的查詢轉送至168.63.129.16,那麼 FQDN 將在 Azure 公用或私人 DNS 區域中解析。 - 測試連線 — 執行來源與目標之間的連線測試。 連線成功後,您可以繼續到下一個選項卡。這項測試旨在識別來源伺服器和目標伺服器之間可能存在的任何連接問題,包括使用提供的憑證進行身份驗證。 建立測試連線需要幾秒鐘的時間。
測試連線成功之後,請選取 [下一步:要驗證或移轉的資料庫]
要驗證或移轉的資料庫
在 要驗證或移轉的資料庫索引 標籤下,您可以選擇要從來源 PostgreSQL 伺服器移轉的使用者資料庫清單。
選取資料庫之後,選取 [ 下一步:摘要]。
總結
「 摘要」 索引標籤摘要說明建立驗證或移轉的所有來源和目標詳細資料。 檢閱詳細資料,然後選取 [開始驗證和移轉]。
取消驗證或移轉
您可以取消任何進行中的確認或移轉。 工作流程必須處於 進行 中 狀態,才能取消。 您無法取消處於 [成功 ] 或 [失敗 ] 狀態的驗證或移轉。
- 取消驗證會停止進一步的驗證活動,且驗證會移至 「已取消」 狀態。
- 取消移轉會停止目標伺服器上的進一步移轉活動,並移至已取消狀態。 取消動作會傳回移轉服務在目標伺服器上所做的所有變更。
監視移轉
選取 [ 開始驗證和移轉 ] 按鈕之後,幾秒鐘後會出現通知,指出驗證或移轉建立成功。 系統會自動將您重新導向至彈性伺服器的 [移轉 ] 頁面。 條目顯示的狀態為進行中。 工作流程需要 2 到 3 分鐘來設定移轉基礎結構並檢查網路連線。
顯示移轉的方格具有下列欄: 名稱、 狀態、 移轉模式、 移轉類型、 來源伺服器、 來源伺服器類型、 資料庫、 持續時間和 開始時間。 項目按 開始時間 降序排列,最新的項目位於頂部。 您可以使用工具列中的 [重新整理 ] 按鈕來重新整理驗證或移轉執行的狀態。
移轉詳細資料
請選取格線中的移轉名稱,以查看相關詳細資料。
請記住,在先前的步驟中,當您建立此移轉時,已將移轉選項設定為 驗證並移轉。 在此案例中,會先執行驗證,然後再開始移轉。 完成 執行必要條件步驟 子狀態後,工作流程會進入 驗證進行中 的子狀態。
如果驗證發生錯誤,移轉會進入 Failed 狀態。
如果驗證完成且沒有錯誤,則移轉會開始,且工作流程會移至 移轉資料的子狀態。
在執行個體和資料庫等級可取得確認詳細資料。
-
例如驗證詳細資料
- 包含與連線檢查、來源版本 (即 PostgreSQL 版本 >= 9.5) 和伺服器參數檢查相關的驗證,是否在適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的伺服器參數中啟用延伸模組。
-
資料庫的驗證和移轉詳細資料
- 其包含與適用於 PostgreSQL 的 Azure 資料庫彈性伺服器中延伸模組和定序支援相關的個別資料庫驗證。
您可以在移轉詳細資料頁面下看到驗證 狀態 和 移轉狀態 。
一些可能的遷移狀態:
移轉狀態
| 地位 | 描述 |
|---|---|
| 進行中 | 正在設定移轉基礎結構,或正在移轉實際的資料。 |
| 已取消 | 已取消或已刪除移轉。 |
| 失敗 | 移轉失敗。 |
| 驗證失敗 | 確認失敗。 |
| 成功 | 移轉成功且已完成。 |
遷移子狀態
| 子狀態 | 描述 |
|---|---|
| 執行必要步驟 | 正在設定用於資料移轉的基礎結構。 |
| 驗證進行中 | 驗證正在進行中。 |
| 移轉資料 | 正在移轉資料。 |
| 完成移轉 | 移轉處於完成的最終階段。 |
| 已完成 | 移轉已完成。 |
| 失敗 | 移轉失敗。 |
驗證子狀態
| 子狀態 | 描述 |
|---|---|
| 失敗 | 驗證失敗。 |
| 成功 | 確認成功。 |
| 警告 | 驗證處於警告狀態。 |
完成時檢查移轉
完成資料庫之後,您需要手動驗證來源與目標之間的資料,並驗證目標資料庫中的所有物件是否已成功建立。
移轉之後,您可以執行下列工作:
驗證彈性伺服器上的資料,並確定其是與來源執行個體完全相同的複本。
確認後,視需要在您的彈性伺服器上啟用高可用性選項。
變更彈性伺服器的 SKU,以符合應用程式需求。 這項變更需要重新啟動資料庫伺服器。
如果您在來源執行個體中變更任何伺服器參數的預設值,請在彈性伺服器中複製這些伺服器參數值。
將其他伺服器設定 (例如標籤、警示和防火牆規則 (如果適用的話)) 從來源執行個體複製到彈性伺服器。
變更您的應用程式,以將連接字串指向彈性伺服器。
密切監控資料庫效能,以確認資料庫是否需要微調效能。