您可以使用PostgreSQL自带的工具pg_dump将实例的数据进行逻辑备份,后续导出到本地保存。
背景信息
pg_dump是备份PostgreSQL数据库的工具,可用于备份单个数据库。更多详情,请参见pg_dump。
前提条件
-
RDS PostgreSQL实例已设置白名单,允许ECS实例或本地主机的IP访问。
-
ECS实例或本地主机已安装和RDS PostgreSQL实例相同版本的PostgreSQL数据库。
说明
本文使用CentOS 7操作系统和PostgreSQL 15版本为例进行演示。
注意事项
建议使用高权限账号进行备份,避免出现权限不足的问题。
备份单个数据库
-
登录ECS实例或本地主机,使用如下命令备份目标数据库。
pg_dump -h '' -U -p -Fc >
参数
说明
hostname
RDS PostgreSQL实例连接地址。
说明
-
ECS实例通过内网连接地址访问RDS实例,需要两者网络类型相同(如果是专有网络,VPC也要相同)。
-
本地主机或ECS实例通过外网连接地址访问RDS实例,需要实例已申请或释放外网地址。
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 '' -U -p -t .
-Fc >
参数
说明
hostname
RDS PostgreSQL实例连接地址。
说明
-
ECS实例通过内网连接地址访问RDS实例,需要两者网络类型相同(如果是专有网络,VPC也要相同)。
-
本地主机或ECS实例通过外网连接地址访问RDS实例,需要实例已申请或释放外网地址。
username
RDS PostgreSQL实例高权限账号名称。
port
RDS PostgreSQL实例端口。
Schema
备份表所在的Schema,默认为Public,如果表所在的Schema为Public,可省略。
table
需要备份的表。可以用多个
-t .
选择多个表。
-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 '' -U -p -T
-Fc >
参数
说明
hostname
RDS PostgreSQL实例连接地址。
说明
-
ECS实例通过内网连接地址访问RDS实例,需要两者网络类型相同(如果是专有网络,VPC也要相同)。
-
本地主机或ECS实例通过外网连接地址访问RDS实例,需要实例已申请或释放外网地址。
username
RDS PostgreSQL实例高权限账号名称。
port
RDS PostgreSQL实例端口。
table
需要排除的表。可以用多个
-T
排除多个表。
-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 '' -U -p -s -Fc >
参数
说明
hostname
RDS PostgreSQL实例连接地址。
说明
-
ECS实例通过内网连接地址访问RDS实例,需要两者网络类型相同(如果是专有网络,VPC也要相同)。
-
本地主机或ECS实例通过外网连接地址访问RDS实例,需要实例已申请或释放外网地址。
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恢复逻辑备份文件数据。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠转转请注明出处:https://www.yunxiaoer.com/155542.html
赞 (0)阿里云RDS数据库使用pg_restore恢复逻辑备份文件数据-云淘科技上一篇 2023年12月9日 下午7:39阿里云RDS数据库使用DMS数据追踪进行恢复-云淘科技下一篇 2023年12月9日 下午7:39详情页2本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。-
-