Windows Server 2016上Odoo15数据库备份失败求助
Odoo15(Windows Server 2016)数据库备份失败问题排查与解决
问题现象
- Odoo15执行数据库备份时触发错误:
Database backup error: Postgres subprocess ('C:\Odoo15\PostgreSQL\bin\pg_dump.exe', '--no-owner', '--file=C:\windows\TEMP\tmpf9zumbp9\dump.sql', 'CP3') error 1
- 手动执行
pg_dump命令:
C:\Odoo15\PostgreSQL\bin>pg_dump -U postgres -W -Fc -d "test" >C:\Odoo15\PostgreSQL\cp3.dump
返回报错:
pg_dump: erreur : connection to database 'test' failed: connection to server was terminated unexpectedly The server may have terminated abnormally before or during the request processing.
已尝试操作:
- 为pgadmin赋予数据库全部权限并设置为所有者
- 参考相关教程未解决
排查与解决步骤
1. 检查PostgreSQL服务状态
- 打开
services.msc,找到对应版本的PostgreSQL服务(如postgresql-x64-14) - 确认服务处于运行状态:若未运行则启动;若启动后自动停止,前往「事件查看器->Windows日志->应用程序」查看PostgreSQL相关错误日志,定位服务启动失败原因。
2. 验证PostgreSQL本地连接有效性
- 打开PostgreSQL命令行工具
psql,执行连接测试:
若连接失败,检查postgres用户密码是否正确,同时修改psql -U postgres -d testC:\Odoo15\PostgreSQL\data\pg_hba.conf配置,确保本地连接规则允许postgres登录:
修改后重启PostgreSQL服务生效。host all postgres 127.0.0.1/32 scram-sha-256 host all postgres ::1/128 scram-sha-256 local all postgres scram-sha-256
3. 检查磁盘空间与目录权限
- 确认
C:\windows\TEMP和备份目标目录(C:\Odoo15\PostgreSQL)有足够磁盘空间 - 检查PostgreSQL服务运行用户(默认是
NT SERVICE\PostgreSQL...)对上述目录具备读写权限 - 手动执行
pg_dump时,以管理员身份启动命令提示符,避免权限不足问题
4. 分析PostgreSQL日志定位根因
- 查看
C:\Odoo15\PostgreSQL\data\pg_log下的日志文件,找到连接终止时刻的具体错误信息,排查是否存在内存不足、数据库损坏等问题
5. 数据库损坏修复(仅当日志提示损坏时操作)
- 停止PostgreSQL服务
- 执行日志重置命令(谨慎操作,无备份时慎用):
pg_resetwal -f C:\Odoo15\PostgreSQL\data - 启动服务后,执行数据库清理修复:
vacuumdb -U postgres -d test
6. 确认pg_dump与服务版本匹配
- 分别执行以下命令,确保版本一致:
pg_dump --version postgres --version
内容的提问来源于stack exchange,提问作者BOGNI-DANCHI
相关产品推荐
相关产品推荐

