教學課程:使用移轉服務從 Amazon Aurora PostgreSQL 離線移轉至適用於 PostgreSQL 的 Azure 資料庫
本文說明如何將 PostgreSQL 資料庫從 Amazon Aurora 遷移至離線 適用於 PostgreSQL 的 Azure 資料庫。
適用於 PostgreSQL 的 Azure 資料庫 中的移轉服務是完全受控的服務,已整合到 Azure 入口網站 和 Azure CLI 中。 其設計目的是簡化移轉 適用於 PostgreSQL 的 Azure 資料庫 旅程。
在本教學課程中,您已:
- 完成必要條件
- 起始移轉
- 監視移轉
- 確認移轉
必要條件
在 適用於 PostgreSQL 的 Azure 資料庫 中使用移轉服務開始移轉之前,請務必完成下列必要條件。 這些必要條件專為離線移轉案例所設計。
驗證來源版本
來源 PostgreSQL 伺服器版本必須是 9.5 或更新版本。 如果來源 PostgreSQL 版本早於 9.5,請在開始移轉之前,將版本升級至 9.5 或更新版本。
設定目標設定
開始移轉之前,您必須在 Azure 中建立 適用於 PostgreSQL 的 Azure 資料庫 實例。 針對 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器布建的 SKU 應該符合來源。
如需詳細資訊,請參閱建立 適用於 PostgreSQL 的 Azure 資料庫 的實例。
設定網路設定
網路設定對於讓移轉服務能夠正常運作至關重要。 請確定來源 PostgreSQL 伺服器可以在 適用於 PostgreSQL 的 Azure 資料庫 中與目標伺服器通訊。
如需網路設定的相關信息,請參閱 移轉服務的網路案例。
啟用延伸模組
若要確保使用 適用於 PostgreSQL 的 Azure 資料庫 中的移轉服務成功移轉,您可能需要驗證來源 PostgreSQL 實例的延伸模組。 延伸模組提供應用程式可能需要的功能和功能。 在起始移轉程式之前,請務必確認來源 PostgreSQL 實例上的延伸模組。
在 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的目標實例中,啟用來源 PostgreSQL 實例中所識別的支持擴充功能。
如需詳細資訊,請參閱 適用於 PostgreSQL 的 Azure 資料庫 中的延伸模組。
注意
當您對 參數進行任何變更 shared_preload_libraries
時,需要重新啟動。
檢查伺服器參數
伺服器參數不會自動移轉至目標環境,而且必須手動設定。
比對來源 PostgreSQL 資料庫中的伺服器參數值與 適用於 PostgreSQL 的 Azure 資料庫 的實例。 在 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 CLI 來進行移轉。
Azure 入口網站 提供簡單且直覺式的精靈式體驗,以引導您完成移轉。 完成本教學課程中所述的步驟,您可以順暢地將資料庫傳輸到 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器,並利用其強大的功能和延展性。
若要使用 Azure 入口網站 進行移轉,請先設定移轉工作。 然後,連線到來源和目標,然後起始移轉。
設定移轉工作
若要在 Azure 入口網站 中設定移轉工作:
開啟網頁瀏覽器,然後前往 Azure 入口網站。 輸入您的認證來登入。
移至您的 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器實例。
在服務功能表上,選取 [ 移轉]。
選取 [建立 ] 以從 Amazon Aurora 遷移至彈性伺服器。
第一次使用移轉服務時會出現空白方格,並提示您開始進行第一次移轉。 如果已建立移轉至彈性伺服器目標,方格會包含嘗試移轉的相關信息。
選取 [建立 ] 以逐步執行一系列索引標籤來設定移轉。
設定
輸入或選取下列資訊:
移轉名稱:輸入每個移轉至此彈性伺服器目標的唯一標識符。 您只能在移轉名稱中使用英數位元和連字元 (
-
)。 名稱不能以連字元開頭,而且目標伺服器必須是唯一的。 沒有兩個移轉至相同彈性伺服器目標的相同名稱。來源伺服器類型:選取對應至 PostgreSQL 來源的來源類型,例如雲端式 PostgreSQL 服務、內部部署設定或虛擬機。
移轉選項:針對移轉前驗證選擇下列其中一個選項:
- 驗證。 檢查您的伺服器和資料庫整備程度,以移轉至目標來源。
- 移轉。 略過驗證並開始移轉。
- 驗證和移轉。 在觸發移轉之前執行驗證。 如果沒有驗證失敗,便會觸發移轉。
最佳做法是選取 [驗證] 或 [驗證] 和 [移轉] 選項,以進行移轉前驗證。
如需詳細資訊,請參閱 預先移轉驗證。
移轉模式:選取移轉的模式。 默認選項為 離線。
選取 [ 下一步:連線到來源]。
選取運行時間伺服器
移轉運行時間伺服器是移轉服務的特製化功能。 運行時間伺服器會在移轉期間做為中繼伺服器。 這是個別的 適用於 PostgreSQL 的 Azure 資料庫 實例 - 彈性伺服器,不是目標伺服器。 運行時間伺服器有助於從只能透過專用網存取的來源環境移轉資料庫。
如需詳細資訊,請參閱 移轉運行時間伺服器。
連線至來源
在 [ 連接到來源] 索引標籤上,輸入或選取資料庫來源的下列資訊:
- 伺服器名稱:輸入來源 PostgreSQL 實例的主機名或 IP 位址。
- 埠:輸入來源伺服器的埠號碼。
- 伺服器管理員登入名稱:輸入來源 PostgreSQL 伺服器的用戶名稱。
- 密碼:輸入來源 PostgreSQL 伺服器的密碼。
- SSL 模式:支援的值為 Prefer 和 Require。 當來源 PostgreSQL 伺服器的安全套接字層 (SSL) 關閉時,請選取 [ 偏好]。 如果來源伺服器上的 SSL 開啟,請選取 [ 需要]。 SSL 值是在 postgresql.conf 檔案中設定。
- 測試連線:起始目標與來源之間的連線測試。 線上成功時,請移至下一個步驟,以識別目標與來源之間的網路問題,並確認來源的使用者名稱和密碼。 建立測試連線需要幾分鐘的時間。
成功測試連線之後,選取 [ 下一步:選取移轉目標]。
選取移轉目標
在 [ 選取移轉目標] 索引標籤上,輸入或選取彈性伺服器目標的下列資訊,以及訂用帳戶、資源群組和伺服器名稱:
- 管理員用戶名稱:目標 PostgreSQL 伺服器的管理員用戶名稱。
- 密碼:目標 PostgreSQL 伺服器的密碼。
- 自定義 FQDN/IP (選擇性):自定義 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 區域中解析。 - 測試連線:起始目標與來源之間的連線測試。 線上成功時,請移至下一個步驟,以識別目標與來源之間的網路問題,並確認目標伺服器的使用者名稱和密碼。 建立測試連線需要幾分鐘的時間。
成功測試連線之後,選取 [下一步:選取要移轉的資料庫]。
選取要移轉的資料庫
在 [ 選取要移 轉的資料庫] 索引標籤上,從要從來源 PostgreSQL 伺服器移轉的使用者資料庫清單中選取。
選取資料庫之後,請選取 [下一步:摘要]。
摘要
[摘要] 索引標籤會摘要說明用於建立驗證或移轉的所有來源和目標詳細資料。 檢閱詳細數據,然後選取 [ 開始驗證和移轉]。
監視移轉
在您選取 [ 開始驗證和移轉] 之後的幾秒鐘內,會顯示一則通知,指出驗證或移轉建立成功。 系統會將您重新導向至 [彈性伺服器實例 移 轉] 窗格。 狀態專案為 InProgress ,而子狀態為 PerformingPreRequisiteSteps。 工作流程需要 2 到 3 分鐘的時間才能設定移轉基礎結構,並檢查網路連線。
顯示移轉的方格具有下列資料列:
- 名稱
- 狀態
- 移轉模式
- 移轉類型
- 來源伺服器
- 來源伺服器類型
- 資料庫
- 期間
- 開始時間
專案會以開始時間的遞減順序顯示,最上層的最近專案。 您可以在功能表列中選取 [重新 整理],以重新整理驗證或移轉執行的狀態。
移轉詳細資料
在移轉清單中,選取移轉的名稱以查看相關聯的詳細數據。
在 [安裝] 索引標籤上,選取 [驗證和移轉] 選項。 在此案例中,移轉開始之前已完成驗證。 完成 PerformingPreRequisiteSteps 子ate 之後,工作流程會移至 [進行中的驗證] 子州。
如果驗證發生錯誤,移轉會進入 Failed 狀態。
如果驗證完成且沒有任何錯誤,則移轉會啟動,工作流程會移至移轉數據子集。
您可以在實體層級和資料庫層級檢查驗證詳細資料:
實體層級的驗證:
- 檢查與來源版本連線檢查相關的驗證(
PostgreSQL version >= 9.5
伺服器參數檢查),是否在 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器實例的伺服器參數中啟用擴充功能。
- 檢查與來源版本連線檢查相關的驗證(
資料庫層級的驗證:
- 檢查 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器中擴充功能和定序支援的個別資料庫驗證。
您可以在 [移轉詳細資料] 窗格上查看移轉和驗證的目前狀態。
下表描述一些可能的移轉狀態和子狀態。
移轉狀態
State | 描述 |
---|---|
InProgress | 正在設定移轉基礎結構,或正在移轉實際的資料。 |
已取消 | 已取消或已刪除移轉。 |
失敗 | 移轉失敗。 |
驗證失敗 | 驗證失敗。 |
已成功 | 移轉成功且已完成。 |
WaitingForUserAction | 僅適用於在線移轉。 等候使用者執行完全移轉。 |
移轉子狀態
子狀態 | 描述 |
---|---|
PerformingPreRequisiteSteps | 正在設定用於資料移轉的基礎結構。 |
驗證進行中 | 驗證正在進行中。 |
MigratingData | 資料移轉正在進行中。 |
CompletingMigration | 移轉處於完成的最終階段。 |
已完成 | 移轉已完成。 |
失敗 | 移轉失敗。 |
驗證子狀態
子狀態 | 描述 |
---|---|
失敗 | 驗證失敗。 |
已成功 | 驗證成功。 |
警告 | 驗證會顯示警告。 |
取消移轉
您可以取消任何進行中的驗證或移轉。 工作流程必須處於 要取消的進行 中狀態。 您無法取消處於 Succeeded 或 Failed 狀態的移轉。
取消移轉會停止目標伺服器上的進一步移轉活動,並將移轉嘗試移至 [已 取消] 狀態。 取消動作會復原移轉服務在您的目標伺服器上所做的所有變更。
確認移轉
當資料庫移轉完成時,請手動驗證來源與目標之間的數據。 確認已成功建立目標資料庫中的所有物件。
移轉之後,您可以完成下列工作:
- 確認彈性伺服器上的數據,並確定它是來源實例的確切複本。
- 驗證之後,請視需要在彈性伺服器上啟用高可用性選項。
- 變更彈性伺服器的 SKU(版本),以符合應用程式的需求。 這項變更需要重新啟動資料庫伺服器。
- 如果您從來源實例中的預設值變更任何伺服器參數,請將這些伺服器參數值複製到彈性伺服器。
- 將其他伺服器設定 (例如標籤、警示和防火牆規則 (如果適用的話)) 從來源執行個體複製到彈性伺服器。
- 對應用程式進行變更,以將連接字串指向彈性伺服器。
- 密切監視資料庫效能,確認資料庫是否需要微調效能。