pgAdmin:作业选项不可见
pgAdmin: Jobs option is invisible
我正在使用操作系统 window 7.
的 PostgreSQL 版本 9.3
我在 postgresql PgAdmin III 中显示选项作业时遇到问题。
以下是我试过的图片:
设置 pgAgent 作业后,我重新启动服务器和服务,然后:
有什么问题?
找到适用于 pgAdmin 1.20.0~beta2-1 (Debian Jessie 8.1) 的解决方案。
要显示作业节点,您需要使用 2 个强制参数值创建新的服务器连接:
- 用户名:postgres
- 维护数据库:postgres
我从一个论坛找到了答案,下面是应该做什么:
According to the code, the "pgAgent Jobs" node is displayed if the
option is checked in the options dialog and if there is a table pga_job
in the schema pgagent of the maintenance database. Moreover, the user
used for the connection must have the USAGE privilege on the pgagent
schema.
我已将新模式添加到维护数据库并在该模式中添加了 pga_job table,但没有任何列,作业节点变得可见,但现在出现错误:
ERROR: relation "pgagent.pga_jobclass" does not exist
LINE 1: ...s AS joblastresult FROM pgagent.pga_job j JOIN pgagent.pg...
出现此错误是因为创建架构并不能完全解决问题。之后,我在 pgagent
模式中创建了 4 个 table:
1.
CREATE TABLE pgagent.pga_job
(
jclid integer NOT NULL,
jobjclid integer NOT NULL,
jobagentid integer NOT NULL,
jlgstatus integer NOT NULL,
jobid integer NOT NULL,
jobname character varying(255) NOT NULL
)
WITH (
OIDS=FALSE
);
ALTER TABLE pgagent.pga_job
OWNER TO postgres;
2.
CREATE TABLE pgagent.pga_jobagent
(
jagpid integer NOT NULL,
jlgstatus integer NOT NULL
)
WITH (
OIDS=FALSE
);
ALTER TABLE pgagent.pga_jobagent
OWNER TO postgres;
3.
CREATE TABLE pgagent.pga_jobclass
(
jclid integer NOT NULL,
jlgstatus integer NOT NULL
)
WITH (
OIDS=FALSE
);
ALTER TABLE pgagent.pga_jobclass
OWNER TO postgres;
4.
CREATE TABLE pgagent.pga_joblog
(
joblogid integer NOT NULL,
jlgstatus integer NOT NULL,
jlgjobid integer NOT NULL,
jlgid integer NOT NULL
)
WITH (
OIDS=FALSE
);
ALTER TABLE pgagent.pga_joblog
OWNER TO postgres;
问题解决了。
看来您在 PostgreSQL 9.3 中总共有 9 个数据库。从 9 开始,只有一个是 Maintenance DB。所以你必须通过右键单击服务器来创建新服务器,并且你必须将维护数据库作为你在其中执行 pgAgent.sql 文件的数据库。
之后只需启动该服务器,您就会获得作业节点。
希望这会有所帮助:)
我正在使用操作系统 window 7.
的 PostgreSQL 版本 9.3我在 postgresql PgAdmin III 中显示选项作业时遇到问题。
以下是我试过的图片:
设置 pgAgent 作业后,我重新启动服务器和服务,然后:
有什么问题?
找到适用于 pgAdmin 1.20.0~beta2-1 (Debian Jessie 8.1) 的解决方案。
要显示作业节点,您需要使用 2 个强制参数值创建新的服务器连接:
- 用户名:postgres
- 维护数据库:postgres
我从一个论坛找到了答案,下面是应该做什么:
According to the code, the "pgAgent Jobs" node is displayed if the option is checked in the options dialog and if there is a table pga_job in the schema pgagent of the maintenance database. Moreover, the user used for the connection must have the USAGE privilege on the pgagent schema.
我已将新模式添加到维护数据库并在该模式中添加了 pga_job table,但没有任何列,作业节点变得可见,但现在出现错误:
ERROR: relation "pgagent.pga_jobclass" does not exist
LINE 1: ...s AS joblastresult FROM pgagent.pga_job j JOIN pgagent.pg...
出现此错误是因为创建架构并不能完全解决问题。之后,我在 pgagent
模式中创建了 4 个 table:
1.
CREATE TABLE pgagent.pga_job
(
jclid integer NOT NULL,
jobjclid integer NOT NULL,
jobagentid integer NOT NULL,
jlgstatus integer NOT NULL,
jobid integer NOT NULL,
jobname character varying(255) NOT NULL
)
WITH (
OIDS=FALSE
);
ALTER TABLE pgagent.pga_job
OWNER TO postgres;
2.
CREATE TABLE pgagent.pga_jobagent
(
jagpid integer NOT NULL,
jlgstatus integer NOT NULL
)
WITH (
OIDS=FALSE
);
ALTER TABLE pgagent.pga_jobagent
OWNER TO postgres;
3.
CREATE TABLE pgagent.pga_jobclass
(
jclid integer NOT NULL,
jlgstatus integer NOT NULL
)
WITH (
OIDS=FALSE
);
ALTER TABLE pgagent.pga_jobclass
OWNER TO postgres;
4.
CREATE TABLE pgagent.pga_joblog
(
joblogid integer NOT NULL,
jlgstatus integer NOT NULL,
jlgjobid integer NOT NULL,
jlgid integer NOT NULL
)
WITH (
OIDS=FALSE
);
ALTER TABLE pgagent.pga_joblog
OWNER TO postgres;
问题解决了。
看来您在 PostgreSQL 9.3 中总共有 9 个数据库。从 9 开始,只有一个是 Maintenance DB。所以你必须通过右键单击服务器来创建新服务器,并且你必须将维护数据库作为你在其中执行 pgAgent.sql 文件的数据库。
之后只需启动该服务器,您就会获得作业节点。
希望这会有所帮助:)