您可以使用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。