ITPub博客

首页 > 数据库 > PostgreSQL > postgresql使用pgagent来实现job功能

postgresql使用pgagent来实现job功能

原创 PostgreSQL 作者:lusklusklusk 时间:2020-11-13 17:45:12 0 删除 编辑

postgresql本身没有job的功能,可以使用第三方pgagent来实现,postgresql本身的官方文档中找不到pgagent的相关信息,安装配置好pgagent后,使用pgAdmin图形界面工具来操作job比较方便

pgagent的源码https://www.pgadmin.org/download/pgagent-source-code/
pgagent的文档https://www.pgadmin.org/docs/pgadmin4/latest/pgagent.html


pgagent安装方法
yum list |grep pgagent
yum -y install pgagent_11.x86_64
--如果postgresql数据库版本是11,则可以选择安装pgagent_11.x86_64版本
su - postgres
psql
postgres=# create extension pgagent ;
--此时在postgres数据库创建了pgagent的schema,在paadmin图形界面工具中就是postgres/Catalogs/pgAgent job scheduler
postgres=# \c DB1
DB1=# CREATE EXTENSION pgagent;
--此时在DB1数据库创建了pgagent的schema,在paadmin图形界面工具中就是DB1/Catalogs/pgAgent job scheduler


pgagent启动方法,如下的postgres用户是OS用户,在root用户下执行需要输入postgres的密码
[root@pgserver log]#/usr/bin/pgagent_11 host=localhost port=5432 dbname=postgres user=root password=123456

如果不想输入密码,修改pg_hba.conf文件增加,并使用postgres用户执行/usr/bin/pgagent_11
[root@pgserver log]# vi pg_hba.conf
host    all             all             127.0.0.1/32           trust
备注:因为/usr/bin/pgagent_11不是psql,所以不能使用pg_hba.conf中的"local" is for Unix domain socket connections only,只能使用IPv4 local connections
[root@pgserver log]# su - postgres
Last login: Tue Nov 10 00:01:01 PST 2020
-bash-4.2$ /usr/bin/pgagent_11 host=localhost port=5432 dbname=postgres user=postgres &


设置pgagent开机启动
[root@pgserver log]# chmod 777 /etc/rc.d/rc.local
[root@pgserver log]# cat /etc/rc.d/rc.local
su - postgres -c  "/usr/bin/pgagent_11 host=localhost port=5432 dbname=postgres user=postgres &"



pgagent只要安装成功后,不管pgagent有没有运行,pgagent的相关表和schema都存在,也可以创建job,但是创建的job无法运行,pgagent必须运行后job才可以正常运行

pgagent的相关表都位于DB/Catalogs/pgAgent job scheduler下
pgagent.pga_exception : 记录作业执行异常信息
pgagent.pga_job: 作业定义的基本信息,作业起止时间,最后运行时间等
pgagent.pga_jobagent:pgAgent的配置信息,服务器上pgAgent的地址和启动时间
pgagent.pga_jobclass: pgAgent的配置信息,定义作业类型
pgagent.pga_joblog:每个作业的运行日志,包含启动时间、执行时长。
pgagent.pga_jobstep:每个job步骤的定义在这个表里。
pgagent.pga_jobsteplog:每个job步骤的执行日志,包含步骤的开始时间,执行时长。
pgagent.pga_schedule:job调度的定义在这个表里。


备注:
创建job,使用pgAdmin图形界面工具一步步操作即可,如果需要每小时、每分钟都运行,则需要勾选每一个小时和每一分钟








来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126024/viewspace-2734107/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Welcome to Lukes DB HOME。 Oracle OCM、Mysql OCP, 8年以上DBA工作经验,博客仅记录自己的一个学习过程,不代表完全准确,如有需要,欢迎转载。

注册时间:2015-02-02

  • 博文量
    430
  • 访问量
    751379