您可以使用PostgreSQL自带的工具pg_basebackup将整个实例的数据进行备份,并导出到本地保存。

前提条件

  • RDS PostgreSQL实例已放通ECS实例或本地主机的IP。详情请参见设置白名单
  • ECS实例或本地主机已安装和RDS PostgreSQL实例相同版本的PostgreSQL。

背景信息

pg_basebackup可以将整个PostgreSQL实例的数据进行备份,在后续业务中可用于时间点恢复。更多详情请参见pg_basebackup

本文以CentOS 7操作系统和PostgreSQL 12版本为例,为您演示如何备份。

注意事项

建议使用高权限账号或具有REPLICATION权限的账号进行备份,避免出现权限不足的问题。

操作步骤

说明 pg_basebackup无法备份单个数据库或数据库对象。备份单个数据库或数据库对象请参见逻辑备份PostgreSQL数据
  1. 登录ECS实例或本地主机,使用如下命令备份目标数据库。
    pg_basebackup -Ft -Pv -Xf -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 -Xf -z -D /pg12/backup1/ -Z5 -h pgm-bpxxxxx.pg.rds.aliyuncs.com -p 1433 -U test1 -W
  2. 命令行提示Password:时,输入PostgreSQL实例账号对应的密码,然后按回车键确认。
    pg_basebackup

相关文档

如果需要使用备份文件恢复数据,请参见Recovering Using a Continuous Archive Backup