將內部部署 PostgreSQL 資料庫遷移至 Aurora PostgreSQL - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將內部部署 PostgreSQL 資料庫遷移至 Aurora PostgreSQL

由 Baji Shaik (AWS) 和 Jitender Kumar (AWS) 建立

Summary

Amazon Aurora PostgreSQL 相容版本結合了高階商業資料庫的效能和可用性,以及開放原始碼資料庫的簡單性和成本效益。Aurora 透過將儲存體擴展到相同 AWS 區域中的三個可用區域來提供這些優勢,並支援最多 15 個僅供讀取複本執行個體,以擴展讀取工作負載,並在單一區域中提供高可用性。透過使用 Aurora 全域資料庫,您可以在最多五個區域中複寫 PostgreSQL 資料庫,以便在發生區域故障時進行遠端讀取存取和災難復原。此模式說明將內部部署 PostgreSQL 來源資料庫遷移至 Aurora PostgreSQL 相容資料庫的步驟。模式包含兩個遷移選項:使用 AWS Data Migration Service (AWS DMS) 或使用原生 PostgreSQL 工具 (例如,pg_dumppg_restorepsql) 或第三方工具。 

此模式所述的步驟也適用於 Amazon Relational Database Service (Amazon RDS) 和 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的目標 PostgreSQL 資料庫。 Amazon Relational Database Service

先決條件和限制

先決條件

限制

產品版本

架構

來源技術堆疊

  • 內部部署PostgreSQL 資料庫

目標技術堆疊

  • Aurora PostgreSQL 相容資料庫執行個體

來源架構

內部部署 PostgreSQL 資料庫的來源架構

目標架構

Amazon Aurora 上 PostgreSQL 資料庫的目標架構

資料遷移架構

使用 AWS DMS

使用 AWS DMS 將內部部署 PostgreSQL 資料庫遷移至 Aurora

使用原生 PostgreSQL 工具

使用 pg_dump 和 pg_restore 將內部部署 PostgreSQL 資料庫遷移至 Aurora

工具

史詩

任務描述所需技能

驗證來源和目標資料庫版本。

如果您使用的是 AWS DMS,請確定您使用的是支援的 PostgreSQL 版本

DBA

識別儲存類型和容量需求。

  1. 計算為來源資料庫執行個體配置的儲存體。

  2. 收集來源資料庫執行個體的歷史成長指標。

  3. 預期目標資料庫執行個體的未來成長預測。

  4. 透過計算來源資料庫上的讀取和寫入 IOPS 總數來配置儲存體。一般用途 SSD (gp2) 磁碟區為每 1 GB 的儲存提供 3 IOPS。

DBA,系統管理員

選擇適當的執行個體類型、容量、儲存功能和網路功能。

判斷目標資料庫執行個體的運算需求。檢閱可能需要額外注意的已知效能問題。請考慮下列因素,以判斷適當的執行個體類型:

  • 來源資料庫執行個體的 CPU 使用率

  • 來源資料庫執行個體的 IOPS (讀取和寫入操作)

  • 來源資料庫執行個體上的記憶體使用量

如需詳細資訊,請參閱 Aurora 文件中的 Aurora 資料庫執行個體類別

DBA,系統管理員

識別來源和目標資料庫的網路存取安全需求。

決定適當的安全群組,讓應用程式能夠與資料庫交談。

DBA,系統管理員

識別應用程式遷移策略。

  • 根據應用程式的複雜性決定遷移切換策略。 

  • 確定應用程式的復原時間目標 (RTO) 和復原點目標 (RPO),並相應地規劃切換。

DBA、應用程式擁有者、系統管理員
任務描述所需技能

建立 VPC。

為目標資料庫執行個體建立新的虛擬私有雲端 (VPC)。

系統管理員

建立安全群組。

在 VPC 中建立安全群組 (如上一個 epic 中所決定),以允許對資料庫執行個體的傳入連線。

系統管理員

設定和啟動 Aurora 資料庫叢集。

使用新的 VPC 和安全群組建立目標資料庫執行個體,並啟動執行個體。

系統管理員
任務描述所需技能

完成預先遷移步驟。

  1. 清除來源資料庫中的資料。

  2. 建立複寫執行個體

  3. 建立來源和目標端點

  4. 識別要遷移的可用資料表和物件數目。

DBA

完成遷移步驟。

  1. 刪除目標資料庫的外部索引鍵限制和觸發。

  2. 在目標資料庫上捨棄次要索引。

  3. 使用完全載入任務,將資料從來源遷移至目標資料庫。

  4. 啟用外部金鑰。

  5. 如果您使用的是快閃記憶體切割遷移,且應用程式需要最短的停機時間,請啟用變更資料擷取 (CDC) 以複寫持續變更

  6. 啟用觸發。

  7. 更新序列。

  8. 驗證來源和目標資料。

DBA

驗證資料。

為了確保您的資料從來源準確遷移到目標,請遵循 AWS DMS 文件中的資料驗證步驟

DBA
任務描述所需技能

準備來源資料庫。

  1. 如果 pg_dump 備份尚未存在,請建立目錄來存放。

  2. 建立具有在資料庫物件上執行 pg_dump 許可的遷移使用者。

  3. 連線至 EC2 執行個體並執行 pg_dump 備份。

如需詳細資訊,請參閱 AWS DMS 文件中的 pg_dump 文件和演練

DBA

準備目標資料庫。

  1. 建立具有在資料庫物件上使用 pg_restore 許可的遷移使用者。

  2. 使用 pg_restore 匯入資料庫傾印。

如需詳細資訊,請參閱 AWS DMS 文件中的 pg_restore 文件和演練

DBA

驗證資料。

  1. 比較來源和目標資料庫之間的資料庫物件計數。

  2. 解決物件計數之間發現的任何差異。

DBA
任務描述所需技能

遵循應用程式遷移策略。

實作您在第一個史詩中建立的應用程式遷移策略。

DBA、應用程式擁有者、系統管理員
任務描述所需技能

將應用程式用戶端切換到新的基礎設施。

  1. 停止指向內部部署 PostgreSQL 資料庫的所有應用程式服務和用戶端連線。

  2. 執行 AWS DMS 任務

  3. 視需要設定復原任務 (從 Aurora PostgreSQL 相容至內部部署 PostgreSQL 資料庫的反向 CDC)。

  4. 驗證資料

  5. 透過將 Amazon Route 53 設定為新的 Aurora PostgreSQL 相容資料庫執行個體,在新目標上啟動應用程式服務。

  6. 在新的 Aurora PostgreSQL 相容資料庫執行個體上新增 Amazon CloudWatch績效詳情監控。

DBA、應用程式擁有者、系統管理員

如果您需要復原遷移。

  1. 停止指向 Aurora PostgreSQL 相容資料庫的所有應用程式服務。

  2. 使用您在上一個案例中建立的 AWS DMS 任務,將變更轉返至來源現場部署 PostgreSQL 資料庫。

  3. 停止從內部部署 PostgreSQL 資料庫執行至 Aurora PostgreSQL 相容資料庫的 AWS DMS 任務。

  4. 設定應用程式,使其指向來源內部部署 PostgreSQL 資料庫。

  5. 確認所有轉返部署已完成。

DBA、應用程式擁有者
任務描述所需技能

關閉資源。

關閉臨時 AWS 資源。

DBA,系統管理員

驗證文件。

檢閱並驗證專案文件。

DBA、應用程式擁有者、系統管理員

收集指標。

收集遷移時間的指標、手動與工具成本節省的百分比等。

DBA、應用程式擁有者、系統管理員

關閉專案。

關閉專案並提供任何意見回饋。

DBA、應用程式擁有者、系統管理員

相關資源

參考

其他資源