我已经在我们的pgAgent
数据库中安装了PostgreSQL
来安排我们的工作,这真的很吸引人!
但是,当我从测试服务器中的数据库中恢复备份后,pgAgent根本无法启动。有趣的是,似乎pgAgent忽略了此日志表中数据的当前状态,并尝试将其填充为零。
查看日志文件中的错误消息:
postgres@postgres ERROR: duplicate key value violates unique constraint "pga_jobsteplog_pkey"
postgres@postgres DETAIL: Key (jslid)=(1) already exists.
postgres@postgres STATEMENT: INSERT INTO pgagent.pga_jobsteplog(jslid, jsljlgid, jsljstid, jslstatus) SELECT 1, 25, 3, 'r' FROM pgagent.pga_jobstep WHERE jstid=3
如果您想知道如何执行备份:
pg_dumpall --file "/media/jones/Daten/fulldump.sql" --host "address-to-my-server.de" --port "5432" --username "myuser" --no-password --database "mydb" --clean --if-exists --verbose
环境:
Ubuntu 16.04
PostgreSQL 9.5
pgAgent 3.4.1-2
关于如何使pgAgent复活的任何想法?
我对解决方案绝对不满意,但这是迄今为止我唯一可以解决的方案。截断日志表可以解决问题,但是会删除您拥有的所有作业历史记录(对于大多数用例而言,这没什么大不了的):
TRUNCATE TABLE pgagent.pga_jobsteplog;
如果有人有更好的解决方案,请在评论中让我知道。