本文介紹如何通過一鍵上云將MyBase PostgreSQL遷移至RDS PostgreSQL。
準備工作
創建RDS PostgreSQL實例并滿足以下條件:
版本、系列與MyBase PostgreSQL實例保持一致。
磁盤空間大于MyBase PostgreSQL實例數據庫的占用空間。
規格族為獨享型。
如何創建,請參見快速創建RDS PostgreSQL實例。
說明通過內網遷移,確保RDS PostgreSQL實例的地域、VPC與MyBase PostgreSQL實例保持一致。
通過外網遷移,確保已申請RDS PostgreSQL、MyBase PostgreSQL實例的外網地址。如何申請,請參見申請RDS PostgreSQL實例外網地址和申請MyBase PostgreSQL實例外網地址。
設置白名單,確保RDS PostgreSQL和MyBase PostgreSQL實例可以互相訪問。如何設置,請參見設置RDS PostgreSQL實例白名單和設置MyBase PostgreSQL實例白名單。
您可以登錄RDS或MyBase控制臺,在數據庫連接頁面,查看RDS PostgreSQL或MyBase PostgreSQL實例的網段。
創建MyBase PostgreSQL實例高權限賬號。如何創建,請參見創建數據庫賬號。
注意事項
遷移上云任務期間可以對MyBase PostgreSQL數據庫進行讀寫,但請勿執行遷移、重啟、變配等操作。
設置MyBase PostgreSQL實例只讀,業務僅能讀取,不能寫入。
新通用型規格實例暫不支持外網遷移。
步驟一:上云評估
訪問RDS實例列表,在上方選擇地域,然后單擊目標實例ID。
在左側導航欄單擊一鍵上云/容災搭建,單擊可行性評估頁簽。
在配置向導的選擇場景與源端類型步驟,選擇場景為遷移上云,并選擇源端為阿里云RDS實例,然后單擊下一步。
在目標實例配置步驟,單擊下一步。
在源實例配置步驟,選中所有已完成的配置準備項,單擊下一步。
在發起可行性評估步驟,配置源庫信息。
參數
取值說明
遷移任務名
系統自動生成,無需修改。
源端 VPC IP/DNS
MyBase PostgreSQL實例的鏈接地址。查看實例的內外網地址,請參見查看或修改內外網地址和端口。
源端Port
MyBase PostgreSQL實例的端口號,查看實例的端口號,請參見查看或修改內外網地址和端口。
用戶名
MyBase PostgreSQL實例高權限賬號。查看實例賬號,請參見查看數據庫賬號。
密碼
MyBase PostgreSQL實例高權限賬號的密碼。
單擊創建可行性評估任務。
說明遷移評估任務期間,實例狀態將變更為維護實例中。
步驟二:遷移上云
只有上云評估狀態為成功時,才能執行本步驟。
在遷移上云頁簽,單擊創建遷移上云任務。
在彈出的對話框,從關聯評估任務列表中選擇步驟一:上云評估中已成功的上云評估任務。
說明選擇關聯評估任務后,源庫類型、源端 IP/DNS、源端Port和用戶名參數將會自動獲取,無需配置。
單擊發起遷移上云,系統將自動啟動上云任務。
重要上云任務期間,實例狀態將變更為遷入數據中。您可以對MyBase PostgreSQL數據庫進行讀寫,但請勿執行遷移、重啟、變配等操作。
上云切換。
在遷移上云任務中,單擊上云階段列的鏈接,查看當前上云任務進度。
當上云階段為增量同步時,可單擊操作列的上云切換,將RDS PostgreSQL提升為主庫,正式提供服務。
在切換上云對話框,根據上云須知提示,設置MyBase PostgreSQL實例只讀或應用停止寫入。
說明設置MyBase PostgreSQL實例只讀:
登錄MyBase PostgreSQL數據庫,執行以下命令,確認是否存在超級用戶。
SELECT CASE WHEN(count(rolname)<= 3) THEN 'superuser check ok' ELSE 'exists superuser created by user' END AS result FROM pg_roles where rolsuper= 't' and rolname in ('aurora', 'replicator') or rolname like 'pg%' GROUP BY rolname limit 1;
若存在超級用戶,您需要聯系阿里云工程師修改。
若不存在超級用戶時,請參見如下步驟修改:
登錄云數據庫專屬集群控制臺。
通過參數設置功能,修改參數rds_force_trans_ro_non_sup取值為on。
修改完成后,登錄MyBase PostgreSQL數據庫,執行以下命令,中斷所有現有會話。
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid();
選中所有復選框,單擊立即切換,等待遷移完成。
步驟四:連接應用
方案一:交換連接地址(推薦)
查看并修改MyBase PostgreSQL實例的連接地址,然后將RDS PostgreSQL實例的連接地址修改為MyBase PostgreSQL實例的原地址。
假如您的MyBase PostgreSQL實例的連接地址為pgm-aaa.pg.rds.aliyuncs.com
,RDS PostgreSQL實例的連接地址為pgm-bbb.pg.rds.aliyuncs.com
。您可以將MyBase PostgreSQL實例的連接地址修改為pgm-ccc.pg.rds.aliyuncs.com
,再將RDS PostgreSQL實例的連接地址修改為pgm-aaa.pg.rds.aliyuncs.com
即可。
方案二:切換應用連接地址
查看并獲取RDS PostgreSQL實例的連接地址,修改您應用服務中的數據庫連接地址。