使用 pg_sport 在兩個 Amazon RDS 資料庫執行個體之間傳輸 PostgreSQL 資料庫 - AWS Prescriptive Guidance

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

使用 pg_sport 在兩個 Amazon RDS 資料庫執行個體之間傳輸 PostgreSQL 資料庫

由勞納克·里沙巴 (AWS) 創建

:Convironment PoC 或試驗

來源:資料庫:關聯

目標:Amazon RDS for PostgreSQL

R 類型 重新定位

工作負載:開放原始碼

技能:移轉; 資料庫

AWS 服務:Amazon RDS

Summary

此模式說明使用 PostgreSQL 資料庫執行個體的兩個 Amazon Relational Database Service (Amazon RDS) 之間移轉極大型資料庫的步驟pg_transport副檔名。此副檔名提供實體的傳輸機制來移動每個資料庫。透過以最少的處理程序串流資料庫檔案,它可提供極快速的方法,以最少的停機時間在資料庫執行個體之間移轉大型資料庫。此延伸使用提取模型,目標資料庫執行個體從來源資料庫執行個體匯入資料庫。

先決條件和限制

先決條件

  • 兩個資料庫執行個體都必須執行相同的 PostgreSQL 主要版本。

  • 資料庫不能存在於目標上。否則,傳輸失敗。

  • 沒有以外的副檔名pg_transport必須在來源資料庫中啟用。

  • 所有來源資料庫物件必須在預設pg_預設表空間。

  • 來源資料庫執行個體的安全群組應允許來自目標資料庫執行個體的流量。

  • 安裝 PostgreSQL 像psqlpgAdmin以使用 Amazon RDS PostgreSQL 資料庫執行個體。您可以在本機系統中安裝用戶端,也可以使用 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。在這種模式中,我們在 EC2 實例上使用 psql。

限制

  • 您無法在不同主要版本的 RDS PostgreSQL 之間傳輸資料庫。

  • 來源資料庫中的存取權限和擁有權不會傳輸至目標資料庫。

  • 您無法在僅供讀取複本或僅供讀取複本的上層執行個體資料庫傳輸。

  • 您無法使用REG資料類型在任何計畫使用此方法傳輸的資料庫表格中。

  • 資料庫執行個體上最多可同時執行 32 個傳輸作業 (包含輸入和輸出傳輸)。

  • 您沒有選項可以隨時隨地重新命名、包含/排除表格。一切都會按原樣遷移。

注意

  • 在移除擴充功能之前先進行備份,因為移除擴充功能也會移除相依物件和一些對資料庫作業至關重要的資料。

  • 考慮執行個體類別和在來源執行個體上其他資料庫上執行的處理程序,同時決定 pg_transport 的 Worker 數目和 work_mem 值。

請注意:當傳輸在一個資料庫上執行時,在其他資料庫上沒有相同的影響。

產品版本

Tools

  • pg_transport擴充套件-此擴充套件提供實體的傳輸機制來移動每個資料庫。透過最少的步驟串流資料庫檔案,實體的傳輸比起傳統的拖曳移動程序更快,將停機時間縮到最短。PostgreSQL 可傳輸的資料庫使用提取模式,也就是目的地的資料庫執行個體從來源資料庫執行個體輸入資料庫。準備來源和目標環境時,您可以在資料庫執行個體上安裝此延伸模組,如此模式所述。

  • psqlpgAdmin-這些公用程式可讓您連線至 PostgreSQL 資料庫執行個體,並使用這些執行個體。

Epics

任務描述所需技能
建立目標系統的參數群組。

指定將其識別為目標參數群組的群組名稱;例如,pgtarget 參數群組。如需說明,請參閱參考資料區段中提供的連結。

DBA
修改下列步驟中列示的參數。

如需修改參數的詳細資訊,請參閱「參考」一節中提供的連結。

DBA
將「運輸」添加到「文件庫」參數。

共用預先載入程式庫 = pg_stat__ 陳述式,傳輸

DBA
設定「工作人員」參數。

選擇要執行傳輸的 Worker 數目。此處設定的值將決定要在來源中建立的「傳輸 .send_file」工作者數目。

DBA
增加「最大工作流程」值。

增加「處理程序」的值超過三倍以上的值。如果失敗,則 pg_transport 建議您使用最小值。

DBA
將「運輸時間」設置為 1。

此設定會在傳輸期間啟用時間資訊的報告。

DBA
設定「運輸」參數。

此參數指定要配置給每個 Worker 的記憶體上限。預設值為 128 MB。

DBA
任務描述所需技能
為來源系統建立參數群組。

如需說明,請參閱參考資料區段中提供的連結。

DBA
提供群組名稱描述。

指定將其識別為來源參數群組的群組名稱;例如,pgsource-參數群組。

DBA
修改下列步驟中列示的參數。

如需修改參數的詳細資訊,請參閱「參考」一節中提供的連結。

DBA
將「運輸」添加到「文件庫」參數。

共用預先載入程式庫 = pg_stat__ 陳述式,傳輸

DBA
設定「工作人員」參數。

在目標中定義的這個參數的值決定要在此處使用的 '傳輸 .send_file' 工作程式的數目。如果您在此執行個體上執行匯入,請記住已經執行的 Worker 數目,請增加此值。

DBA
增加「最大工作流程」值。

將「處理程序」的值增加到目標執行個體上的「處理程序」值的三倍以上。如果這個失敗,那麼 pg_transport 建議你一個最小值

DBA
設定「參數」參數。

此參數指定要配置給每個 Worker 的記憶體上限。預設值為 128 MB。

DBA
任務描述所需技能
建立新的 Amazon RDS for PostgreSQL 資料庫執行個體,以將來源資料庫傳輸到。

根據您的業務需求判斷執行個體類別和 PostgreSQL 版本。

DBA /斯明/巴奇
修改目標的安全群組,以允許來自 EC2 執行個體的資料庫執行個體連接埠上的連線。

依預設,PostgreSQL 執行個體的連接埠是 5432。如果您使用的是另一個端口,則 EC2 實例必須打開該端口的連接。

DBA /sysadmin
修改例證,並指定新的目標參數群組。

例如,目標-參數-群組。

DBA
重新啟動目標 RDS 資料庫執行個體。

「文件庫」和「文件庫」是靜態參數,需要重新啟動實例

DBA /sysadmin
使用 psql 從 EC2 執行個體 Connect 接到資料庫。

命令:psql-h-<rds_end_point> p 連接埠-U 使用者名稱-d 資料庫-W

DBA
建立 pg_transport 延伸。

以具有 rds_superuser 角色的使用者身分執行「建立擴充功能 pg_transport;」命令。

DBA
任務描述所需技能
修改來源的安全群組,以允許從 Amazon EC2 執行個體和目標資料庫執行個體在資料庫執行個體連接埠上進行連線

依預設,PostgreSQL 執行個體的連接埠是 5432。如果您使用的是另一個端口,則 EC2 實例必須打開該端口的連接。

DBA /sysadmin
修改例證並指定新的來源參數群組。

例如,網站原始碼-參數群組。

DBA
重新啟動來源 RDS 資料庫執行個體。

「文件庫」和「文件庫」是靜態參數,需要重新啟動實例

DBA
使用 psql 從 EC2 執行個體 Connect 接到資料庫。

命令:psql-h-<rds_end_point> p 連接埠-U 使用者名稱-d 資料庫-W

DBA
建立 pg_transport 擴充功能,並從要傳輸的資料庫移除所有其他擴充功能。

如果來源資料庫上安裝 pg_transport 以外的任何副檔名,傳輸將會失敗。此命令必須由具有 rds_superuser 角色的使用者執行。

DBA
任務描述所需技能
首先使用「伺服器」功能執行乾運行。

此功能用於執行乾運行。它會顯示運行主要傳輸時會看到的任何錯誤。解決錯誤並運行主要傳輸。命令:選擇傳輸 .import_from_server('源數據庫-端點',源數據庫-實例-端口,'源數據庫-實例-用戶','源-用戶密碼','源數據庫-名稱','目的地-用戶密碼','真');

DBA
如果乾運行成功,請設置「乾運行 = false」並啟動數據庫傳輸。

此函數用於執行傳輸。它連接到源並導入數據。選擇傳輸 .import_from_server('源數據庫-端點',源數據庫-實例-端口,'源數據庫-實例-用戶','源-用戶密碼','源數據庫-名稱','目的地-用戶密碼',假);

DBA
驗證目標環境中的資料。DBA
將所有角色和權限新增至目標。DBA
必要時,在目標和來源中啟用所有必要的延伸模組。DBA
還原「最大程序」參數的值。DBA

相關資源

參考資料: