本文介紹如何使用RDS PostgreSQL一鍵上雲功能,將公網PostgreSQL資料庫或其他雲廠商的PostgreSQL執行個體遷移至RDS。
背景
RDS PostgreSQL基於使用者VPC的網路構建,一鍵上雲功能預設支援通過內網將其他資料庫遷移到RDS PostgreSQL,如需將公網上的PostgreSQL資料庫遷移上雲,還需配置公網NAT Gateway並綁定Elastic IP Address(EIP)。
本文介紹為RDS PostgreSQL執行個體配置公網NAT Gateway並綁定Elastic IP Address(EIP),使一鍵上雲功能具備公網上雲的能力。
該方法在實現公網一鍵上雲的同時,能夠確保RDS PostgreSQL執行個體的網路安全。
公網NAT Gateway中配置SNAT條目,使RDS PostgreSQL執行個體可以訪問互連網,但不通過NAT Gateway對互連網提供服務。NAT Gateway、SNAT相關資訊,請參見使用公網NAT GatewaySNAT功能訪問互連網。
應用情境
-
公網自建PostgreSQL資料庫上雲。
-
其他雲廠商PostgreSQL執行個體(例如:Google Cloud SQL、Amazon RDS for PostgreSQL等)遷移至RDS PostgreSQL。
說明其他雲廠商可能存在自研定製的PostgreSQL外掛程式,如在遷移過程中出現外掛程式不相容報錯,請提交工單處理。
前提條件
RDS PostgreSQL執行個體需要滿足以下條件:
-
源執行個體與目標執行個體大版本相同,當前支援PostgreSQL 10或以上版本。
說明-
如果源執行個體版本低於PostgreSQL10,請先自行升級大版本後,再進行一鍵上雲操作。
-
如果源執行個體與目標執行個體大版本不同,則無法通過上雲評估檢查,不能進行遷移上雲。
-
-
目標執行個體為主執行個體,唯讀執行個體不支援一鍵上雲。
-
目標執行個體的儲存類型為雲端硬碟。
-
目標執行個體為空白,無資料,可用儲存空間大於等於源執行個體中資料大小的總和。
說明如果目標執行個體中存在資料,則無法通過上雲評估檢查,不能進行遷移上雲,請備份資料後清空執行個體或購買新執行個體。
使用限制
無。
影響
無影響。
注意事項
遷移上雲任務期間,請確保源執行個體可以被正常訪問,請勿執行重啟等操作,如果源執行個體閃斷或HA切換,將導致上雲任務失敗。
費用
RDS PostrgreSQL需要配置公網NAT Gateway並綁定Elastic IP Address(EIP),該操作涉及相關費用,詳情請參見NAT Gateway計費。
操作步驟
步驟一:配置NAT Gateway並綁定Elastic IP Address
本步驟為RDS PostgreSQL執行個體的VPC網路綁定公網IP,使RDS PostgreSQL可以訪問具備公網地址的自建資料庫或其他雲廠商資料庫。
配置前請確保RDS執行個體所在的VPC網路未配置NAT Gateway,未綁定其他公網IP,否則可能出現連通性問題。
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
-
在左側導覽列單擊資料庫連接,然後在網路類型後單擊VPC網路的連結。
-
在專用網路管理主控台中,選擇資源管理頁簽,在公網訪問服務地區,單擊立即建立。
-
在公網NAT Gateway建立頁,配置如下關鍵參數,其他參數保持預設。
參數
說明
取值樣本
Elastic IP Address
如果您已有Elastic IP Address,則選擇已有即可。本文選擇新購Elastic IP Address。
新購Elastic IP Address
頻寬峰值
按需選擇頻寬峰值,本文介紹一鍵上雲,可調整頻寬峰值為最大,避免頻寬節流設定造成的遷移緩慢。
200Mbps
-
單擊立即購買。
-
確認參數配置無誤後,勾選服務合約,單擊確認訂單。
操作完成後,即表示建立公網NAT Gateway成功,同時已綁定Elastic IP Address,配置了SNAT條目。
-
單擊Elastic IP Address的資源ID,即可在Elastic IP Address執行個體資訊頁,查看公網IP地址。
步驟二:自建資料庫或其他雲廠商執行個體配置
自建PostgreSQL資料庫配置
-
重要
pg_hba.conf檔案中配置的IP地址為步驟一中
RDS PostgreSQL執行個體綁定的Elastic IP Address/32。
其他雲廠商PostgreSQl執行個體配置
-
修改wal_keep_segments或wal_keep_size參數取值,具體操作請參見各雲廠商官方文檔。
查看pg_wal目錄下所能保留的過去記錄檔段的最小大小,防止全量備份完成之後由於源執行個體wal日誌被移除導致需要重新備份。
-
wal_keep_segments:適用於PostgreSQL 10、11、12,建議設定大於等於4096。
-
wal_keep_size:適用於PostgreSQL 13、14和15,建議設定大於等於65536。
-
-
建立遷移帳號。
CREATE USER migratetest CREATEROLE REPLICATION LOGIN PASSWORD '123456'; GRANT pg_monitor TO migratetest;說明上述命令中的帳號(
migratetest)和密碼(123456)僅為樣本,請根據實際需要修改。 -
開啟公網串連並配置安全性群組或白名單,允許步驟一中RDS PostgreSQL執行個體綁定的Elastic IP Address訪問資料庫,具體操作請參見各雲廠商官方文檔。
重要請確保其他雲廠商的PostgreSQL執行個體已開放了ICMP協議,您可以使用
ping <其他雲廠商的PostgreSQL執行個體公網串連地址>命令查看。
步驟三:上雲評估
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
-
在左側導覽列單擊一鍵上雲/容災搭建,單擊可行性評估頁簽。
-
在設定精靈的選擇場景與源端類型步驟中,選擇情境為遷移上雲,並選擇源端為自建實例或者其他實例,單擊下一步。
-
在目標實例配置步驟中,單擊下一步。
-
在源實例配置步驟中,勾選所有選項後,單擊下一步。
-
在發起可行性評估步驟中,設定如下參數。
參數
取值說明
遷移任務名
系統自動產生,無需修改。
源端 VPC IP/DNS
-
公網自建PostgreSQL資料庫:配置為部署資料庫的伺服器公網IP。
-
其他雲廠商的PostgreSQL執行個體:配置為其他雲廠商PostgreSQL執行個體的公網串連地址。
源實例Port
-
公網自建PostgreSQL資料庫:資料庫連接埠,可通過
netstat -a | grep PGSQL命令查看。 -
其他雲廠商的PostgreSQL執行個體:前往各雲廠商管理主控台查看。
用戶名
步驟二中建立的遷移帳號和密碼。
密碼
-
-
單擊創建可行性評估任務。
遷移評估完成後,您可以在可行性評估頁面的遷移上雲列表查看遷移評估任務的狀態。
-
只有狀態為成功,您才能進行遷移上雲。
-
如果狀態為失敗,請單擊操作列的查看報告,根據報錯進行處理,常見報錯請參見解讀上雲評估報告。
說明其他雲廠商可能存在自研定製的PostgreSQL外掛程式,如在遷移過程中出現外掛程式不相容報錯,請提交工單處理。
處理報錯後,您可以單擊操作列的重新評估,重新開始評估任務。
-
步驟四:遷移上雲
只有上雲評估狀態為成功時,才能執行本步驟。
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
-
在左側導覽列單擊一鍵上雲/容災搭建,切換至遷移上雲頁簽,單擊建立遷移上雲任務。
-
在創建遷移上雲任務視窗中,從關聯評估任務列表中選擇步驟三中已成功的上雲評估任務。
選擇關聯評估任務後,其他參數將會自動擷取,無需配置。
-
單擊發起遷移上雲,系統將自動啟動上雲任務。
警告遷移上雲任務期間,請確保源執行個體可以被正常訪問,請勿執行重啟等操作,如果源執行個體閃斷或HA切換,將導致上雲任務失敗。
-
上雲切換。
-
在遷移上雲任務中,您可以單擊上雲階段列的連結,查看當前上雲任務進度。
-
當上雲階段為增量同步時,可單擊操作列的上雲切換,將RDS PostgreSQL提升為主庫,正式提供服務。
-
在切換上雲視窗,根據上雲鬚知提示,設定源執行個體唯讀或應用停止寫入。
設定源執行個體唯讀:
-- 設定資料庫唯讀 ALTER SYSTEM SET default_transaction_read_only=on; -- 重新載入參數配置使修改生效 SELECT pg_reload_conf(); -- 中斷所有現有會話 SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid(); -
選中所有複選框,單擊立即切換,等待遷移完成。
-