教學課程:使用移轉服務從適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器移轉至彈性伺服器
適用於: 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器
使用 Azure 入口網站,您可以將 [適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器] 的執行個體移轉至 [適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器]。 在本教學課程中,我們會使用 Azure 入口網站,將範例資料庫從適用於 PostgreSQL 的 Azure 資料庫單一伺服器移轉至 PostgreSQL 彈性伺服器。
- 設定適用於 PostgreSQL 的 Azure 資料庫彈性伺服器
- 設定移轉工作
- 監視移轉
- 取消移轉
- 移轉後
您可以使用 Azure 入口網站進行移轉。
必要條件 (離線)
在適用於 PostgreSQL 的 Azure 資料庫中使用移轉服務開始進行移轉之前,您必須滿足下列適用於離線移轉案例的必要條件。
驗證來源版本
來源 PostgreSQL 版本應該是 >= 9.5
。 如果來源 PostgreSQL 版本小於 9.5
,請先將來源 PostgreSQL 版本升級至 9.5
或更新版本,再進行移轉。
目標設定
開始移轉流程之前,必須先在 Azure 中部署並正確設定適用於 PostgreSQL 的 Azure 資料庫彈性伺服器。
為適用於 PostgreSQL 的 Azure 資料庫選擇的 SKU 應與來源資料庫的規格對應,以確保相容性和適當的效能。
關於如何建立新的適用於 PostgreSQL 的 Azure 資料庫,如需詳細指示,請參閱下列連結:快速入門:建立伺服器。
跨 PostgreSQL 版本移轉時(主要或次要),請檢閱 版本資訊 ,以了解潛在的重大變更,以確保資料庫與應用程式之間的相容性。
網路設定
網路設定對於讓移轉服務能夠正常運作至關重要。 請確定來源 PostgreSQL 伺服器可以與目標適用於 PostgreSQL 的 Azure 資料庫伺服器通訊。 下列網路設定對於成功移轉而言非常重要。
如需網路設定的相關資訊,請參閱移轉服務的網路指南。
啟用延伸模組
若要確保使用 適用於 PostgreSQL 的 Azure 資料庫 中的移轉服務成功移轉,您可能需要驗證來源 PostgreSQL 實例的延伸模組。 延伸模組提供應用程式可能需要的功能和功能。 在起始移轉程式之前,請務必確認來源 PostgreSQL 實例上的延伸模組。
在 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的目標實例中,啟用來源 PostgreSQL 實例中所識別的支持擴充功能。
如需詳細資訊,請參閱 適用於 PostgreSQL 的 Azure 資料庫 中的延伸模組。
注意
當您對 參數進行任何變更 shared_preload_libraries
時,需要重新啟動。
檢查伺服器參數
這些參數不會自動移轉至目標環境,必須手動設定。
透過存取 Azure 入口網站中的 [伺服器參數] 區段,並據以手動更新參數值,讓來源 PostgreSQL 資料庫與適用於 PostgreSQL 的 Azure 資料庫有相符的伺服器參數值。
儲存參數變更,並視需要重新啟動適用於 PostgreSQL 的 Azure 資料庫彈性伺服器以套用新設定。
重要
在移轉之前,將彈性伺服器上的password_encryption伺服器參數從 SCRAM-SHA-256 變更為 MD5。 對於單一伺服器上的現有認證,在彈性伺服器上運作非常重要。
在目標中停用高可用性 (可靠性) 和讀取複本
請務必在目標環境中停用高可用性 (可靠性) 和讀取複本。 請在移轉完成後,才啟用這些功能。
透過遵循這些指導方針,您可以協助確保移轉流程順暢進行,而不會因為高可用性和讀取複本而增添變數。 移轉完成且資料庫穩定之後,便可以繼續啟用這些功能,以增強 Azure 中資料庫環境的可用性和可擴縮性。
設定適用於 PostgreSQL 的 Azure 資料庫彈性伺服器
建立目標彈性伺服器。 如需引導式步驟,請參閱使用入口網站建立適用於 PostgreSQL 的 Azure 資料庫彈性伺服器。
允許清單延伸模組,其程式庫必須在伺服器啟動時載入。 在起始移轉之前,延伸模組必須位於允許清單上。
檢查資料庫的資料表之間的資料分佈是否扭曲,其中大部分的資料都存在於單一 (或數個) 資料表中。 如果其扭曲,移轉速度可能會比預期慢。 在此案例中,可藉由平行移轉大型資料表來加快移轉速度。
設定移轉工作
移轉服務會在 Azure 入口網站上提供簡單的精靈型體驗。 以下說明如何開始:
開啟 Web 瀏覽器,然後移至入口網站。 若要登入,請輸入認證。 預設檢視是您的服務儀表板。
移至您的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器目標。
在彈性伺服器 [概觀] 索引標籤的左側功能表上,向下捲動至 [移轉] 並加以選取。
選取 [建立] 按鈕,開始從單一伺服器移轉至彈性伺服器。 如果這是您第一次使用移轉服務,會出現空白方格,並出現提示以開始您的第一次移轉。
如果您已建立對彈性伺服器目標的移轉,此方格會包含已嘗試從單一伺服器移轉至此目標的移轉相關資訊。
您會瀏覽一系列以精靈為基礎的索引標籤,以從不同的可能來源建立移轉至此彈性伺服器目標。 根據預設,來源伺服器類型會設定為 適用於 PostgreSQL 的 Azure 資料庫 單一伺服器,這是我們在此案例中感興趣的伺服器。
或者,您可以從適用於 PostgreSQL 的 Azure 資料庫單一伺服器起始移轉程序。
開啟 Web 瀏覽器,然後移至入口網站。 若要登入,則必須輸入認證。 預設檢視是您的服務儀表板。
選取 [單一伺服器] 時,您可以在 [概觀] 索引標籤中觀察與移轉相關的橫幅。選取 [立即移轉] 以開始使用。
系統會將您導向具有兩個選項的頁面。 如果您已經建立彈性伺服器,且想要使用該伺服器作為目標,請選擇 [選取現有項目],然後選取對應的訂用帳戶、資源群組和伺服器名稱詳細資料。 選取之後,選取 [前往移轉精靈],然後遵循 [設定] 區段底下的指示。
如果您選擇建立新的彈性伺服器,則選取 [建立新項目],然後選取 [前往建立精靈]。 此動作會將您導向彈性伺服器建立流程,並部署彈性伺服器。
部署彈性伺服器之後,請遵循設定移轉工作下的步驟 3 到 5。
設定
第一個索引標籤是 [設定]。 萬一錯過,請在起始移轉之前,將必要的延伸模組列入允許清單,如設定適用於 PostgreSQL 的 Azure 資料庫彈性伺服器中所述。
移轉名稱是至此彈性伺服器目標的每個移轉的唯一識別碼。 此欄位只接受英數字元,不接受任何特殊字元,但底線 (_) 和連字號 (-) 除外。 名稱必須以英數字元開頭。 目標伺服器的名稱也必須是唯一,因為不會有兩個至相同彈性伺服器目標的移轉可以具有相同名稱。
來源伺服器類型表示來源。 在此案例中,其為適用於 PostgreSQL 的 Azure 資料庫單一伺服器。
移轉選項可讓您在觸發移轉前執行驗證。 您可以挑選下列任何選項。
- 驗證:檢查您的伺服器和資料庫整備程度,以移轉至目標。
- 移轉:略過驗證並開始移轉。
- 驗證並移轉:在觸發移轉之前執行驗證。 僅在沒有驗證失敗時,才會觸發移轉。
在執行移轉之前選擇 [驗證] 或 [驗證並移轉] 選項,來執行移轉前驗證向來是很好的做法。
移轉模式可讓您在線上移轉與離線移轉之間進行選擇,在此案例中,必須將其設定為 [離線]。
選取 [下一步: 選取執行階段伺服器] 按鈕。
執行階段伺服器
移轉執行階段伺服器是適用於 PostgreSQL 的 Azure 資料庫中的移轉服務內的特殊功能,旨在移轉期間作為中繼伺服器使用。 其是單獨的適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器執行個體,不是目標伺服器,但可用來協助從只能透過私人網路存取的來源環境中移轉資料庫。
如需執行階段伺服器的詳細資訊,請參閱移轉執行階段伺服器。
選取 [下一步:連線至來源] 按鈕。
連線至來源
[來源] 區段會提示您提供與單一伺服器 (資料庫來源) 相關的詳細資料。
選取 [訂用帳戶] 和 [資源群組] 之後,伺服器名稱的下拉式清單會顯示該資源群組跨區域下的單一伺服器。 選取要從中移轉資料庫的來源。 您可以將資料庫從單一伺服器遷移至相同區域中的目標彈性伺服器。 僅印度、中國和阿拉伯聯合大公國的伺服器支援跨區域移轉。
選擇單一伺服器來源之後,即會自動填入 [位置] 和 [PostgreSQL 版本] 方塊。 請確定您提供系統管理員角色的認證,因為移轉服務必須具備該認證,才能成功移轉資料庫。
[ 自定義 FQDN/IP ] 欄位是 選擇性 的,而且可在來源位於自定義 DNS 伺服器後方或具有自定義 DNS 命名空間時使用,使其只能透過特定的 FQDN 或 IP 位址存取。 例如,如果自定義 DNS 伺服器包含 DNS 區域postgres.database.azure.com
或將此區域的查詢轉送至 168.63.129.16
,則這可能包含 、 198.1.0.2
或 PostgreSQL FQDN 之類的singleserver.postgres.database.azure.com
專案singleserver.example.com
,其中 FQDN 會在 Azure 公用或私人 DNS 區域中解析。
填妥所有欄位之後,請選取 [連線至來源] 連結。 這會驗證輸入的來源伺服器詳細資料是否正確,以及其是否可連線至來源伺服器。
選取 [下一步: 選取移轉目標] 按鈕以繼續。
選取移轉目標
[選取移轉目標] 區段會顯示彈性伺服器目標的中繼資料,例如訂用帳戶、資源群組、伺服器名稱、位置和 PostgreSQL 版本。
[ 自定義 FQDN/IP ] 欄位是 選擇性 的,當目標位於自定義 DNS 伺服器後方或具有自定義 DNS 命名空間時,可以使用,使其只能透過特定的 FQDN 或 IP 位址存取。 例如,如果自定義 DNS 伺服器包含 DNS 區域postgres.database.azure.com
或將此區域的查詢轉送至 168.63.129.16
,則這可能包含 、 198.1.0.2
或 PostgreSQL FQDN 之類的flexibleserver.postgres.database.azure.com
專案flexibleserver.example.com
,其中 FQDN 會在 Azure 公用或私人 DNS 區域中解析。
針對驗證方法和所有驗證相關欄位選擇適當值。 請確定提供的身分識別是目標伺服器中系統管理員使用者的身分識別。 填寫所有必要資訊之後,選取 [連線至目標] 連結。 這會驗證輸入的目標伺服器詳細資料是否正確,以及是否可連線至目標伺服器。
選取 [下一步: 選取要移轉的資料庫] 按鈕,以選取要移轉的資料庫。
選取要移轉的資料庫
在此索引標籤下,單一伺服器內有使用者資料庫的清單。 您可以在單一移轉嘗試中,選取並移轉最多八個資料庫。 如果有八個以上的使用者資料庫,則會對下一組資料庫重複來源和目標伺服器之間的移轉流程。 系統會覆寫目標伺服器上具有完全相同名稱的所選取資料庫。
選取 [下一步: 摘要] 按鈕以檢閱詳細資料。
摘要
[摘要] 索引標籤會摘要說明建立驗證或移轉的所有詳細資料。 檢閱詳細資料,然後選取 [開始驗證和移轉] 按鈕。
監視移轉入口網站
當您開始移轉之後,通知會在幾秒鐘內顯示,表示已成功驗證或建立移轉。 系統會自動將您重新導向至彈性伺服器的 [移轉] 頁面。 此處有最近所建立驗證或移轉的新項目。
顯示移轉的方格具有下列資料行:名稱、狀態、移轉模式、移轉類型、來源伺服器、來源伺服器類型、資料庫、開始時間和持續期間。 項目會以開始時間的遞減順序顯示,最上方為最近的項目。
您可以使用 [重新整理] 按鈕,重新整理驗證或移轉的狀態。
您也可以在方格中選取某個特定移轉的名稱,以查看相關聯的詳細資料。
當建立驗證或移轉時,其會移至 InProgress 狀態和 PerformingPreRequisiteSteps 子狀態。 此工作流程會花 2 到 3 分鐘的時間來設定移轉基礎結構和網路連線。
讓我們看看如何監視每個移轉選項的移轉。
Validate
PerformingPreRequisiteSteps 子狀態完成之後,驗證會移至 Validation in Progress 的子狀態,並將在來源和目標伺服器上完成檢查以評估移轉的整備程度。
如果所有驗證都處於 Succeeded 或 Warning 狀態,驗證就會移至 Succeeded 狀態。
驗證方格具有下列資訊:
- [執行個體的驗證詳細資料] 和 [資料庫的驗證詳細資料] 區段,表示用來檢查移轉整備程度的驗證規則。
- 驗證名稱:每個特定驗證規則的名稱。
- 驗證狀態:代表每個規則的結果,而且可以是這三個值中的任何一個:
- 成功:如果沒有找到錯誤。
- 失敗:如果有驗證錯誤。
- 警告:如果有驗證錯誤。
- 持續期間:驗證作業所花費的時間。
- 開始時間 (UTC) 和結束時間 (UTC):驗證作業的開始和結束時間,以 UTC 表示。
如果驗證發生任何錯誤,「驗證狀態」就會移至 Failed 狀態。 選取驗證失敗的 [驗證名稱] 或 [資料庫名稱],而展開窗格會提供詳細資料和矯正措施,以避免發生此錯誤。
移轉
PerformingPreRequisiteSteps 子狀態完成之後,移轉會在進行資料庫複製期間進入正在移轉資料子狀態。 移轉完成的時間取決於您要移轉的資料庫大小和形狀。 如果資料大多平均分散到所有資料表,則移轉會很快。 扭曲的資料表大小需要相對較長的時間。
當您在移轉中選取任何資料庫時,就會出現展開窗格。 其具備所有資料表計數 (已複製、已排入佇列、正在複製和錯誤),以及資料庫移轉狀態。
當 Migrating Data 狀態成功完成,移轉就會移至 Succeeded 狀態。 如果 [移轉資料] 狀態發生問題,則移轉會進入 [已失敗] 狀態。
移轉移至 Succeeded 狀態後,即表示結構描述和資料從單一伺服器移轉至彈性伺服器的目標已完成。 您可以重新整理頁面以檢查進度。
驗證和移轉
在此選項中,移轉開始之前會先執行驗證。 PerformingPreRequisiteSteps 子狀態完成之後,工作流程會移至 Validation in Progress 的子狀態。
- 如果驗證發生錯誤,移轉會進入 Failed 狀態。
- 如果驗證完成且沒有任何錯誤,則會開始移轉,且工作流程會移至 Migrating Data 的子狀態。
一旦作業完成,您就可以看到驗證和移轉的結果。
使用入口網站取消移轉
您可以取消任何進行中的驗證或移轉。 工作流程必須處於 InProgress 狀態,才能取消。 您無法取消處於 Succeeded 或 Failed 狀態的移轉。
取消驗證會停止任何進一步的驗證活動,而驗證會移至 Canceled 狀態。
取消移轉會停止目標伺服器上的進一步移轉活動,並移至 Canceled 狀態。 取消動作會回復移轉服務在目標伺服器上所做的所有變更。
完成之後檢查移轉
成功移轉之後,請確定您可以使用與單一伺服器上相同的認證登入彈性伺服器。 從單一伺服器移轉之後,如果您在彈性伺服器上遇到驗證錯誤,可能是因為彈性伺服器的 VM 符合 FIPS 規範 ,或使用不同於單一伺服器 MD5 加密的不同密碼加密演算法 (SCRAM-SHA-256)。 若要降低此問題的風險,請依照下列步驟執行:
- 將彈性伺服器上的password_encryption伺服器參數從 SCRAM-SHA-256 變更為 MD5。
- 從單一伺服器重新初始化移轉至彈性伺服器。
- 如果驗證問題持續發生,請刪除現有的彈性伺服器並 布建新的伺服器。 重複步驟 1 和 2 以解決問題。
這應該可解決驗證錯誤。
移轉之後,便可以執行下列工作:
確認彈性伺服器上的資料,並確定其是與來源執行個體完全相同的複本。
驗證後,視需要在彈性伺服器上啟用高可用性選項。
變更彈性伺服器的 SKU,以符合應用程式需求。 這項變更需要重新啟動資料庫伺服器。
如果您有在來源執行個體中變更任何伺服器參數的預設值,請在彈性伺服器中複製這些伺服器參數值。
將其他伺服器設定 (例如標籤、警示和防火牆規則 (如果適用的話)) 從來源執行個體複製到彈性伺服器。
對應用程式進行變更,以將連接字串指向彈性伺服器。
密切監視資料庫效能,確認資料庫是否需要微調效能。