postgresql使用pgagent來實現job功能
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL類似OracleMERGE功能的實現SQLOracle
- 一起來實現單使用者登入 —— 功能實現
- 使用redis實現互粉功能Redis
- 使用 jQuery 實現分頁功能jQuery
- PostgreSQL使用表繼承實現分割槽表SQL繼承
- PostgreSQL DBA(68) - 使用DBLink實現自治事務SQL
- 使用Java預處理實現JSON插入PostgreSQLJavaJSONSQL
- Go使用websocket實現彈幕功能GoWeb
- Yii使用DbTarget實現日誌功能
- 如何使用Python 實現秒錶功能?Python
- .NET使用P/Invoke來實現登錄檔的增、刪、改、查功能
- Poatgres配置安裝pgagent
- 使用 iOS OpenGL ES 實現長腿功能iOS
- SQL Azure使用Excel實現BI功能:PowerPivotTWSQLExcel
- 如何利用~ & ^ | + 及移位運算子來實現 ! 的功能
- PostgreSQL 15 stats collector 在取消後是如何實現的原有功能的SQL
- Spring Boot 2.x基礎教程:使用Elastic Job實現定時任務Spring BootAST
- PowerShell 實現刪除指定路徑X天前檔案功能並新增定時JOB例項
- 簡單延時訊息替代改造JOB實現
- 使用YARP來實現負載均衡負載
- 使用Runtime來實現自己的KVO
- 使用java實現希表的基礎功能Java
- 使用IDEA+Maven實現MapReduce的WordCount功能IdeaMaven
- springboot整合FastDFS使用實現防盜鏈功能Spring BootAST
- 使用Spring Boot實現檔案上傳功能Spring Boot
- 使用 HTML5 Canvas 實現簽名功能HTMLCanvas
- springboot整合ElasticSearch使用completion實現補全功能Spring BootElasticsearch
- Java Web實現使用者登入功能JavaWeb
- 用 .SqlSugar ORM 來實現報表功能 .NET CORE /.NETSqlSugarORM
- PostgreSQL改元資訊實現invalidindexSQLIndex
- PG資料庫定時任務:PgAgent編譯安裝使用資料庫編譯
- Grails整合Quartz外掛實現定時任務(Job)AIquartz
- jenkins 構建 job 並獲取其狀態的實現Jenkins
- xxl-job之實現流程任務編排思路
- Python程式碼解析: job = next(job for job in jobs if job.job_id == job_id)Python
- 使用DOM解析來實現PHP模版引擎PHP
- https如何使用python+flask來實現HTTPPythonFlask
- 使用Redis的有序集合實現排行榜功能Redis