如何将本地PostgreSQL数据库备份恢复至Azure PostgreSQL服务器?
将本地PostgreSQL备份恢复到Azure PostgreSQL服务器的实操步骤
一、先导出本地PostgreSQL备份
直接用pg_dump工具生成备份文件,根据需求选格式:
- 自定义压缩格式(推荐,体积小、恢复快):
pg_dump -U 本地数据库用户名 -d 要备份的数据库名 -F c -b -v -f /本地路径/backup.dump
参数说明:-F c指定自定义格式,-b包含大对象,-v显示备份进度 - 纯SQL文本格式:
pg_dump -U 本地数据库用户名 -d 要备份的数据库名 -f /本地路径/backup.sql
二、准备Azure PostgreSQL环境
- 先在Azure门户调整防火墙规则,把本地机器的公网IP加入允许列表,不然连不上Azure服务器
- 确认Azure PostgreSQL的主版本和本地一致(比如都是14.x),跨大版本恢复容易出问题
- 提前在Azure上创建目标数据库(如果要恢复到新库),用psql命令或者Azure门户操作都可以:
psql -h your-azure-server.postgres.database.azure.com -U admin-user@your-azure-server -c "CREATE DATABASE target_db;"
三、把备份恢复到Azure PostgreSQL
方式1:恢复自定义格式备份(用pg_restore)
执行以下命令,替换成你的Azure服务器信息:pg_restore -h your-azure-server.postgres.database.azure.com -U admin-user@your-azure-server -d target_db -v /本地路径/backup.dump
如果要覆盖已有数据库,加--clean参数(会先删除现有对象再恢复)
方式2:恢复SQL文本备份(用psql)
直接执行导入命令:psql -h your-azure-server.postgres.database.azure.com -U admin-user@your-azure-server -d target_db -f /本地路径/backup.sql
四、关键注意点
- 备份和恢复尽量避开业务高峰,减少对系统的影响
- 大备份文件先压缩,比如
gzip /本地路径/backup.dump,恢复时用gunzip -c /本地路径/backup.dump.gz | pg_restore ...节省传输时间 - 恢复完成后一定要检查数据完整性,比如查几个核心表的行数、验证函数/索引是否正常
- 确保Azure的管理员账号有足够权限(比如CREATEDB、数据库OWNER权限),不然会报错
内容的提问来源于stack exchange,提问作者Gudwlk
相关产品推荐
相关产品推荐

