pg_jobmon 插件为 PostgreSQL 提供了非事务性的事务和函数日志记录机制,用于在事务或函数失败时保留日志信息。即使你的函数或事务因任何原因失败,已记录的日志信息也不会被回滚,从而确保关键日志数据的安全。
pg_jobmon 插件仅支持在 PostgreSQL 14 及以上版本的实例中使用。如需使用该插件,请注意在创建实例时选择合适的实例版本。
pg_partman 插件依赖 dblink 插件。可通过以下语句创建 dblink 插件。
CREATE EXTENSION dblink; -- 配置 dblink 相关参数 INSERT INTO test_schema.dblink_mapping_jobmon (host, username, pwd) VALUES ('127.***.***.1', 'test_user', 'test@123');
CREATE EXTENSION pg_jobmon;
DROP EXTENSION pg_jobmon;
可以通过以下函数创建作业,为作业创建若干步骤以及更新步骤状态。
-- 创建job以及若干step select test_schema.add_job('job1'); select test_schema.add_step(1, 'job1_step1'); select test_schema.sql_step(1, 'job1_step2', 'select pg_sleep(3)');
可以通过以下函数查看作业详情:
show_job
show_job_like
show_job_status
show_detail
test_db=> -- 查看job test_db=> select test_schema.show_job('job1'); show_job ---------------------------------------------------------------------------------------------- (1,test_user,JOB1,"2025-04-17 21:25:09.684233+08","2025-04-17 21:25:13.427808+08",OK,579004) (1 row) test_db=> select test_schema.show_job_like('job'); show_job_like ---------------------------------------------------------------------------------------------- (1,test_user,JOB1,"2025-04-17 21:25:09.684233+08","2025-04-17 21:25:13.427808+08",OK,579004) (1 row) test_db=> select test_schema.show_job_status('job1', 'OK'); show_job_status ---------------------------------------------------------------------------------------------- (1,test_user,JOB1,"2025-04-17 21:25:09.684233+08","2025-04-17 21:25:13.427808+08",OK,579004) (1 row) test_db=> select test_schema.show_detail(1); show_detail ---------------------------------------------------------------------------------------------------------------- (1,1,job1_step1,"2025-04-17 21:25:09.696224+08",,,,) (1,2,job1_step2,"2025-04-17 21:25:10.38315+08","2025-04-17 21:25:13.416171+08",3.033021,OK,"Rows affected: 1") (2 rows)
-- 结束job select test_schema.close_job(1); select test_schema.check_job_status();