您可以使用PostgreSQL自帶的工具pg_basebackup將整個實例的數據進行備份,并導出到本地保存。
前提條件
RDS PostgreSQL實例已放通ECS實例或本地主機的IP。詳情請參見設置白名單。
ECS實例或本地主機已安裝和RDS PostgreSQL實例相同版本的PostgreSQL。
背景信息
pg_basebackup可以將整個PostgreSQL實例的數據進行備份,在后續業務中可用于時間點恢復。更多詳情請參見pg_basebackup。
本文以CentOS 7操作系統和PostgreSQL 12版本為例,為您演示如何備份。
注意事項
建議使用高權限賬號或具有REPLICATION權限的賬號進行備份,避免出現權限不足的問題。
操作步驟
pg_basebackup無法備份單個數據庫或數據庫對象。備份單個數據庫或數據庫對象請參見邏輯備份PostgreSQL數據。
登錄ECS實例或本地主機,使用如下命令備份目標數據庫。
pg_basebackup -Ft -Pv -Xs -z -D <backupdir> -Z5 -h '<hostname>' -p <port> -U <username> -W
參數說明如下。命令說明請參見pg_basebackup。
參數
說明
backupdir
導出的備份文件路徑。系統會自動創建目錄,但是如果該目錄已經存在且不為空,則會報錯。
hostname
RDS PostgreSQL實例連接地址。
如果相同賬號內的ECS實例和RDS實例處于相同地域,且網絡類型相同(都為VPC時則必須處于同一個VPC),建議使用內網連接地址。
其他情形建議使用外網連接地址。
說明通過外網連接地址訪問RDS實例,需要實例已申請外網連接地址。詳情請參見申請或釋放外網地址。
port
RDS PostgreSQL實例端口。
username
RDS PostgreSQL實例賬號名稱。
示例
pg_basebackup -Ft -Pv -Xs -z -D /pg12/backup1/ -Z5 -h pgm-bpxxxxx.pg.rds.aliyuncs.com -p 1433 -U test1 -W
命令行提示
Password:
時,輸入PostgreSQL實例賬號對應的密碼,然后按回車鍵確認。
相關文檔
如果需要使用備份文件恢復數據,請參見Recovering Using a Continuous Archive Backup。