全部產品
Search
文件中心

PolarDB:從RDS PostgreSQL遷移至PolarDB PostgreSQL版

更新時間:Oct 17, 2025

本文介紹通過pg_dumppg_restore命令將RDS PostgreSQL資料庫遷移至PolarDB PostgreSQL版中。

遷移的源庫為自建PostgreSQL資料庫時,請參考從自建PostgreSQL遷移至PolarDB PostgreSQL版

適用範圍

  • RDS PostgreSQL執行個體:不支援Serverless執行個體進行遷移。

  • 儲存空間大小PolarDB PostgreSQL版叢集的儲存空間應大於RDS PostgreSQL資料庫的儲存空間。

注意事項

該操作為全量資料移轉。為避免遷移前後資料不一致,遷移操作開始前請停止RDS PostgreSQL資料庫的相關業務,並停止資料寫入。

準備工作

  1. 建立一個Linux作業系統的ECS執行個體,本案例使用的ECS為Ubuntu 16.04 64位作業系統。詳情請參考建立ECS執行個體

    說明
    • 要求ECS執行個體和源RDS PostgreSQL資料庫、目標PolarDB PostgreSQL版叢集網路互連。

    • 可建立一個隨用隨付的ECS執行個體,遷移完成後釋放執行個體。

  2. 在ECS執行個體中安裝PostgreSQL用戶端,以便執行資料恢複的命令。詳情請參考PostgreSQL官方文檔

    說明

    請確保安裝的PostgreSQL用戶端版本與串連的RDS PostgreSQL資料庫和PolarDB PostgreSQL版叢集版本相容。

操作步驟一:備份RDS PostgreSQL資料庫

該操作為全量資料移轉。為避免遷移前後資料不一致,遷移操作開始前請停止RDS PostgreSQL資料庫的相關業務,並停止資料寫入。

  1. 在ECS上執行以下命令,備份資料庫中的資料。

    pg_dump -U <username> -h <hostname> -p <port> <dbname> -Fd -j <njobs> -f <dumpdir>

    參數說明:

    • <username>:登入RDS PostgreSQL資料庫的帳號。

    • <hostname>:RDS PostgreSQL資料庫的串連地址,查看資料庫連接地址請參考查看或修改串連地址和連接埠

    • <port>:資料庫服務的連接埠號碼。

    • <dbname>:指定要串連的資料庫的名稱,預設為postgres

    • <njobs>:同時執行備份作業的並發數。

      說明
      • 參數<njobs>可減少轉儲的時間,但也會增加資料庫伺服器的負載。

      • 如果您的RDS PostgreSQL資料庫是9.2以前的版本,您還需要指定--no-synchronized-snapshots參數。

    • <dumpdir>:產生的備份檔案所屬目錄。

    樣本:

    pg_dump -U postgres -h pgm-xxxxxxxxx.pg.rds.aliyuncs.com -p 5432 postgres -Fd -j 5 -f postgresdump
  2. 命令列提示Password:時,輸入資料庫帳號對應的密碼,資料庫開始備份。

  3. 等待備份完成,RDS PostgreSQL資料庫資料將備份至指定的目錄中,本案例為postgresdump

操作步驟二:資料移轉至PolarDB PostgreSQL版

  1. 在目標PolarDB PostgreSQL版叢集中建立帳號,詳情請參考建立資料庫帳號帳號許可權

  2. 在目標PolarDB PostgreSQL版叢集中建立用於資料恢複的資料庫,指定資料庫Owner為上一步建立的帳號。詳情請參考建立資料庫

  3. 在ECS上執行以下命令,將RDS PostgreSQL資料庫資料移轉至PolarDB PostgreSQL版叢集中。

    pg_restore -U <username> -h <hostname> -p <port> -d <dbname> -j <njobs> <dumpdir>

    參數說明:

    • <username>:登入PolarDB PostgreSQL版資料庫的帳號。

    • <hostname>:PolarDB PostgreSQL版叢集的串連地址。

    • <port>:資料庫服務的連接埠號碼,請參考查看串連地址和連接埠

    • <dbname>:串連並直接恢複到的目標資料庫名。

    • <njobs>:同時執行資料恢複作業的並發數。

      說明

      此選項可減少資料恢複的時間,但也會增加資料庫伺服器的負載。

    • <dumpdir>:備份檔案所在目錄。

    樣本:

    pg_restore -U gctest -h pc-mxxxxxxxx.pg.polardb.cn-qd-pldb1.rds.aliyuncs.com -p 1921 -d postgres -j 6 postgresdump
  4. 命令列提示Password:時,輸入資料庫帳號對應的密碼,資料開始遷移。

    說明

    如果忘記密碼,請參考管理資料庫帳號

等待資料移轉完成即可。