You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为未开放公网访问的Amazon RDS PostgreSQL导出数据库dump

无公网访问权限下导出Amazon RDS PostgreSQL Dump备份的操作步骤

前置要求

  • 拥有一台和目标RDS PostgreSQL实例处于同一VPC的EC2实例(可以是临时创建的最小规格实例,用完即可释放),EC2的安全组需允许访问RDS实例的5432端口,且RDS实例的安全组入站规则开放EC2私有IP的5432端口访问权限。
  • EC2上已安装和RDS实例大版本一致的PostgreSQL客户端:
    • Amazon Linux 2下安装命令:sudo amazon-linux-extras install postgresql<对应版本号> ,例如RDS用的是PostgreSQL14就写postgresql14
    • Ubuntu下安装命令:sudo apt update && sudo apt install postgresql-client-<对应版本号>

正式操作步骤

  • 登录EC2实例,可通过SSH或者AWS Session Manager登录,无需EC2开通公网IP也可操作
  • 先验证网络连通性,执行命令:nc -zv <RDS实例私有端点地址> 5432,返回success字样即为连通正常
  • 执行pg_dump命令导出全库备份,命令模板如下:
pg_dump -h <RDS实例私有端点地址> -U <RDS数据库用户名> -d <需要导出的数据库名称> -F c -b -v -f <自定义备份文件名>.dump

各参数说明:

  • -F c:输出PostgreSQL自定义压缩格式备份,恢复时兼容性更好
  • -b:同步导出数据库大对象
  • -v:输出导出过程日志,方便排查异常
  • -f:指定备份文件的保存名称和路径
  • 执行命令后按照提示输入数据库密码,等待导出完成即可,导出时长由数据库大小决定
  • 导出完成后将备份文件从EC2传输到本地:
    • 若EC2有公网IP,本地执行scp命令拉取:scp <EC2登录用户名>@<EC2公网IP>:<备份文件全路径> <本地保存路径>
    • 若EC2无公网IP,可通过AWS Session Manager的文件传输功能将备份文件下载到本地

替代方案:直接导出备份到S3(无需EC2)

如果不想临时创建EC2实例,可以使用RDS原生的导出到S3功能:

  • 先创建一个IAM角色,信任实体设置为rds.amazonaws.com,给角色授予目标S3存储桶的写入权限
  • 配置目标S3桶的桶策略,允许上述IAM角色写入对象
  • 在AWS控制台RDS实例的操作菜单中选择导出到S3,按照页面提示选择要导出的库、目标S3桶、刚才创建的IAM角色,提交后等待导出完成即可,导出完成后直接从S3桶下载备份文件到本地

注意事项:导出操作建议在业务低峰期执行,避免占用过多IO资源影响正常业务;导出过程中不要重启RDS实例或修改实例网络配置,避免导出中断。


内容的提问来源于stack exchange,提问作者Jahanzaib Jb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:54:04