逻辑备份PostgreSQL数据
您可以使用PostgreSQL自带的工具pg_dump将实例的数据进行逻辑备份,并导出到本地保存。
背景信息
pg_dump是备份PostgreSQL数据库的工具,可用于备份单个数据库。更多详情请参见pg_dump。
本文使用Linux7操作系统和PostgreSQL 10版本为例进行演示。
前提条件
- RDS PostgreSQL实例已设置白名单放通ECS实例或本地主机的IP。
- ECS实例或本地主机已安装和RDS PostgreSQL实例相同版本的PostgreSQL。
注意事项
建议使用高权限账号进行备份,避免出现权限不足的问题。
备份单个数据库
- 登录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 test123 -p 3433 -Fc testdb > /tmp/testdb.dump
- 命令行提示
Password:
时,输入PostgreSQL实例高权限账号对应的密码,然后按回车键确认。
备份指定表
- 登录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 test123 -p 3433 -t products1 -Fc testdb2 > /tmp/testdb2.dump
- 命令行提示
Password:
时,输入PostgreSQL实例高权限账号对应的密码,然后按回车键确认。
备份数据库时排除指定表
- 登录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-bpxxxxx.pg.rds.aliyuncs.com' -U test123 -p 3433 -T products1 -Fc testdb2 > /tmp/testdb2.dump
- 命令行提示
Password:
时,输入PostgreSQL实例高权限账号对应的密码,然后按回车键确认。
备份数据库模式(不备份数据)
- 登录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-bpxxxxx.pg.rds.aliyuncs.com' -U test123 -p 3433 -s -Fc testdb2 > /tmp/testdb2.dump
- 命令行提示
Password:
时,输入PostgreSQL实例高权限账号对应的密码,然后按回车键确认。
后续步骤
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论