前面介绍了 PostgreSQL 高可用方案、基于 Patroni 高可用架构部署及故障切换、 基于 repmgr 高可用架构实践、基于 pgpool 实现读写分离实践、数据库备份与恢复、主从数据目录同步工具 pg_rewind等相关的知识点,今天我将详细的为大家介绍 PostgreSQL 数据库作业调度工具 pgAgent相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!!
pgAgent 概述
pgAgent 是 Postgres 数据库的作业调度代理,能够运行多步批处理或 shell 脚本以及复杂调度的 SQL 任务。在 pgAdmin v1.9 之前,pgAgent作为 pgAdmin 的一部分提供,从 pgAdmin v1.9 开始,pgAgent作为单独的应用程序提供。
pgAgent 在 Unix 系统上作为守护进程运行,在 Windows 系统上作为服务运行。在大多数情况下,它将在数据库服务器上运行。
需要注意的是,pgAgent需要一些数据库表和其他对象的支持,因此需要先安装pgAgent数据库。
详细介绍可参考官网:https://www.pgadmin.org/docs/pgadmin4/6.12/pgagent.html。更多关于 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。
pgAgent 安装
环境
数据库服务器:Cenos7+PG13+pgAgent 客户端服务器:Win10+pgAdmin4
pgAdmin 客户端安装
pgAdmin 安装包下载:https://www.pgadmin.org/download/pgadmin-4-windows/
Windows 图形化界面安装(前面章节介绍过),在此不再赘述。
pgAdmin 详情介绍可参考官网:https://www.pgadmin.org/docs/pgadmin4/development/index.html
服务器端安装
数据库安装可参考:在 Linux 上使用 yum 安装 PostgreSQL,在此不再赘述。
源码安装时,当 PostgreSQL 版本高于9.1, pgAgent 版本高于v 3.4.0,即可以扩展形式进行安装,即源码编译安装完成后,使用下列语句创建扩展即可:
create extension pgagent;
rpm 安装及yum 安装均需要使用sql脚本初始化字典数据,生成名为 pgagent 的模式,源码创建完扩展后会自动生成该 schema。源码安装对系统环境要求较高,可能需要更新 cmake、wxGTK、boost 等系统组件版本,耗时较长,建议优先选择 yum 或 rpm 安装。
pgAgent 采用 yum 安装方式,外网不通可选择 rpm 包下载:https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-7.8-x86_64/)安装,安装完成后配置同下。
配置 yum 源
yum 源 rpm 包下载:https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/
rpm -ivh pgdg-redhat-repo-latest.noarch.rpm
搜索可用安装包
yum search pgagent -y
安装与数据库版本一致的安装包
yum install pgagent_13.x86_64 -y
创建扩展语言
create language plpgsql;
初始化数据库字典
su - postgres
psql
\i /usr/local/share/pgagent.sql
\dn
出现 pgagent 模式说明字典初始化完成。更多关于 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。
pgAgent 配置
服务器端启动 pgAgent 守护进程
因守护进程通过 ps 命令可查询到相关命令,显示的数据库密码存在安全隐患,建议将密码写入密码文件中调用。
--创建密码文件
vi ~/.pgpass
localhost:5432:postgres:postgres:postgres
chmod 600 ~/.pgpass
--启动守护进程
pgagent_13 port=5432 dbname=postgres user=postgres
数据库中创建测试表
create table t1(id int,name varchar);
select * from t1;