您可以使用PostgreSQL內建的工具pg_dump將執行個體的資料進行邏輯備份,後續匯出到本地儲存。
背景資訊
pg_dump是備份PostgreSQL資料庫的工具,可用於備份單個資料庫。更多詳情,請參見pg_dump。
前提條件
RDS PostgreSQL執行個體已設定白名單,允許ECS執行個體或本地主機的IP訪問。
ECS執行個體或本地主機已安裝和RDS PostgreSQL執行個體相同版本的PostgreSQL資料庫。
說明本文使用CentOS 7作業系統和PostgreSQL 15版本為例進行示範。
注意事項
建議使用高許可權帳號進行備份,避免出現許可權不足的問題。
備份單個資料庫
登入ECS執行個體或本地主機,使用如下命令備份目標資料庫。
pg_dump -h '<hostname>' -U <username> -p <port> -Fc <dbname> > <dumpdir>
參數
說明
hostname
RDS PostgreSQL執行個體串連地址。
username
RDS PostgreSQL執行個體高許可權帳號名稱。
port
RDS PostgreSQL執行個體連接埠。
-Fc
輸出格式。
-Fc
表示輸出自訂格式的存檔,這個格式適合通過pg_restore進行匯入還原。更多選項的詳細說明請參見pg_dump。dbname
目標資料庫名稱。
dumpdir
匯出的備份檔案路徑及名稱。
樣本
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -Fc zht01 > /tmp/testdb.dump
命令列提示
Password:
時,輸入PostgreSQL執行個體高許可權帳號對應的密碼,然後按斷行符號鍵確認。您可執行
ll /tmp/testdb.dump
命令確認備份檔案是否已成功產生。
備份指定表
登入ECS執行個體或本地主機,使用如下命令備份目標資料庫的指定表。
pg_dump -h '<hostname>' -U <username> -p <port> -t <Schema>.<table> -Fc <dbname> > <dumpdir>
參數
說明
hostname
RDS PostgreSQL執行個體串連地址。
username
RDS PostgreSQL執行個體高許可權帳號名稱。
port
RDS PostgreSQL執行個體連接埠。
Schema
備份表所在的Schema,預設為Public,如果表所在的Schema為Public,可省略。
table
需要備份的表。可以用多個
-t <Schema>.<table>
選擇多個表。-Fc
輸出格式。
-Fc
表示輸出自訂格式的存檔,這個格式適合通過pg_restore進行匯入還原。更多選項的詳細說明請參見pg_dump。dbname
目標資料庫名稱。
dumpdir
匯出的備份檔案路徑及名稱。
樣本如下:
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -t zhttest0808 -Fc zht01 > /tmp/testdb2.dump
命令列提示
Password:
時,輸入PostgreSQL執行個體高許可權帳號對應的密碼,然後按斷行符號鍵確認。您可執行
ll /tmp/testdb2.dump
命令確認備份檔案是否已成功產生。
備份資料庫時排除指定表
登入ECS執行個體或本地主機,使用如下命令備份目標資料庫並排除指定表。
pg_dump -h '<hostname>' -U <username> -p <port> -T <table> -Fc <dbname> > <dumpdir>
參數
說明
hostname
RDS PostgreSQL執行個體串連地址。
username
RDS PostgreSQL執行個體高許可權帳號名稱。
port
RDS PostgreSQL執行個體連接埠。
table
需要排除的表。可以用多個
-T <table>
排除多個表。-Fc
輸出格式。
-Fc
表示輸出自訂格式的存檔,這個格式適合通過pg_restore進行匯入還原。更多選項的詳細說明請參見pg_dump。dbname
目標資料庫名稱。
dumpdir
匯出的備份檔案路徑及名稱。
樣本如下:
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -T zhttest0808 -Fc zht01 > /tmp/testdb3.dump
命令列提示
Password:
時,輸入PostgreSQL執行個體高許可權帳號對應的密碼,然後按斷行符號鍵確認。您可執行
ll /tmp/testdb3.dump
命令確認備份檔案是否已成功產生。
備份資料庫模式(不備份資料)
登入ECS執行個體或本地主機,使用如下命令備份目標資料庫模式。
pg_dump -h '<hostname>' -U <username> -p <port> -s -Fc <dbname> > <dumpdir>
參數
說明
hostname
RDS PostgreSQL執行個體串連地址。
username
RDS PostgreSQL執行個體高許可權帳號名稱。
port
RDS PostgreSQL執行個體連接埠。
-s
僅備份資料庫模式,不備份資料。更多選項的詳細說明請參見pg_dump。
-Fc
輸出格式。
-Fc
表示輸出自訂格式的存檔,這個格式適合通過pg_restore進行匯入還原。更多選項的詳細說明請參見pg_dump。dbname
目標資料庫名稱。
dumpdir
匯出的備份檔案路徑及名稱。
樣本如下:
pg_dump -h 'pgm-bpxxxxxx.pg.rds.aliyuncs.com' -U zht -p 5432 -s -Fc zht01 > /tmp/testdb4.dump
命令列提示
Password:
時,輸入PostgreSQL執行個體高許可權帳號對應的密碼,然後按斷行符號鍵確認。您可執行
ll /tmp/testdb4.dump
命令確認備份檔案是否已成功產生。
相關文檔
如果資料庫出現異常需要恢複資料,請參見使用pg_restore恢複邏輯備份檔案資料。