postgresql - 如何解决通过cron作业使用pg_dump进行定期备份时生成零字节文件的问题?
问题描述
在 shell 脚本中使用 pg_dump 工具备份 Postgres 数据库时,如果我在 cron 中安排脚本,则会生成一个 0 字节的备份文件。
在 cron 作业中使用 2>&1 生成错误日志时,会生成以下错误文件:
/home/sample_bkp.sh:10:/home/sample_bkp.sh:-d:未找到备份目录:/home/bkp/2019_06_24_17_15 创建phhc数据库的备份pg_dump:服务器版本:9.2.4;pg_dump 版本:9.1.24 pg_dump:由于服务器版本不匹配而中止 pg_dump:*** 由于错误而中止
解决方案
关键信息似乎是:
pg_dump: aborting because of server version mismatch
这意味着 的版本pg_dump
比您尝试备份的数据库的版本旧。
既然你说它只发生cron
在 ,环境中的某些东西一定会导致pg_dump
选择错误。
由于 Ubuntu 发行版的包装脚本会调用实际的可执行文件,因此问题变得更加困难。
一种简单的尝试是卸载不再使用的旧 PostgreSQL 版本。
另一个想法是pg_dump
使用正确可执行文件的绝对路径进行调用。
推荐阅读
- android - RCS/“高级消息”类型消息的内容观察器
- python - 如何在不均匀的多类数据集上使用数据增强?
- google-chrome - 将扩展程序上传到商店时 ID 不匹配
- iphone - Urban Airship 收到BackgroundNotification 从未调用
- sql - 页面项和变量
- r - R Shiny:在单击操作按钮之前阻止显示 cssloader
- python - 表格样式 KeyError: u"没有名为 'Table Grid' 的样式"
- java - (Java / 处理)如何在屏幕上的不同位置创建对象的多个实例?
- css - 动画提交按钮
- java - Java 的原生字符串字符集