Postgresql PgAgent作业无法从批处理文件运行pgdump任务

Postgresql PgAgent作业无法从批处理文件运行pgdump任务,postgresql,pgadmin-4,pgagent,Postgresql,Pgadmin 4,Pgagent,我正在尝试安排一个批处理文件来备份postgres上的数据库。但是,作业被卡在状态“r”上,没有指示正在发生什么,但是创建了一个0kb的SQL文件。当我手动运行批处理文件时,它执行得非常好。正常的insert语句运行正常 操作系统:Windows 10 博士后v11.4 pg管理v4.9 我用超级用户postgres在主机上运行它 批处理文件的内容: @ECHO OFF @setlocal enableextensions @cd /d "%~dp0" SET PGPATH=C:\"Progr

我正在尝试安排一个批处理文件来备份postgres上的数据库。但是,作业被卡在状态“r”上,没有指示正在发生什么,但是创建了一个0kb的SQL文件。当我手动运行批处理文件时,它执行得非常好。正常的insert语句运行正常

操作系统:Windows 10 博士后v11.4 pg管理v4.9

我用超级用户postgres在主机上运行它

批处理文件的内容:

@ECHO OFF
@setlocal enableextensions
@cd /d "%~dp0"

SET PGPATH=C:\"Program Files"\PostgreSQL\11\bin\
SET SVPATH=D:\pgsqlbak\
SET PRJDB=xxx
SET DBUSR=postgres
SET HOUR=%time:~0,2%%time:~3,2%%time:~6,2%
SET dtStamp1=0%time:~1,1%%time:~3,2%%time:~6,2% 
SET dtStamp2=%time:~0,2%%time:~3,2%%time:~6,2%
FOR /F "TOKENS=2,3,4 DELIMS=/ " %%i IN ('DATE /T') DO SET d=%%k%%j%%i
if "%HOUR:~0,1%" == " " (SET dtStamp=%dtStamp1%) else (SET dtStamp=%dtStamp2%)

SET DBDUMP=%PRJDB%_%d%_%dtStamp%.sql
@ECHO OFF
%PGPATH%pg_dump -h 127.0.0.1 -p 5432 -U postgres %PRJDB% > %SVPATH%%DBDUMP%
pgpass:

127.0.0.1:5432:yyy:postgres:password
127.0.0.1:5432:xxx:postgres:password
127.0.0.1:5432:postgres:postgres:password
localhost:5432:yyy:postgres:password
localhost:5432:xxx:postgres:password
localhost:5432:postgres:postgres:password
还想知道如何在重启服务器的同时终止正在运行的作业


在此方面的任何帮助都将不胜感激

Hi Bankar。不久前我也遇到了同样的问题,结果是状态显示为
r
,但实际上pgAgent根本没有运行。pgAgent应用程序意外终止时会发生这种情况,这不会更改当前作业状态。检查内存故障,确保数据库没有重新启动。。它还会在没有警告的情况下终止pgAgent;)祝你好运谢谢Jim,但是对于这个案例,因为所有东西都在本地运行,所以不要认为会是这样。。。我试了几次,同样的问题,那只是一个1分钟的工作