postgresql使用pgagent來實現job功能
postgresql本身沒有job的功能,可以使用第三方pgagent來實現,postgresql本身的官方文件中找不到pgagent的相關資訊,安裝配置好pgagent後,使用pgAdmin圖形介面工具來操作job比較方便
pgagent的原始碼
pgagent的文件
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的排程pgAgentSQL
- PostgreSQL類似OracleMERGE功能的實現SQLOracle
- job的實現
- 一起來實現單使用者登入 —— 功能實現
- 用DBMS_JOB來實現高階計劃任務
- oracle job使用方法--實現定時任務Oracle
- 使用Webcam實現拍照功能Web
- 使用 jQuery 實現分頁功能jQuery
- 使用redis實現互粉功能Redis
- 使用VB實現OLE拖放功能
- PostgreSQL使用表繼承實現分割槽表SQL繼承
- Poatgres配置安裝pgagent
- .NET使用P/Invoke來實現登錄檔的增、刪、改、查功能
- Go使用websocket實現彈幕功能GoWeb
- Yii使用DbTarget實現日誌功能
- 【小程式】使用UDP實現群聊功能UDP
- iOS中使用OpenGL 實現增高功能iOS
- PostgreSQL DBA(68) - 使用DBLink實現自治事務SQL
- 使用PostgreSQL邏輯訂閱實現multi-masterSQLAST
- 使用PostgreSQL_Notify實現多例項快取同步SQL快取
- 使用Java預處理實現JSON插入PostgreSQLJavaJSONSQL
- 如何利用~ & ^ | + 及移位運算子來實現 ! 的功能
- C#使用雙連結串列來實現模擬IE前進後退功能C#
- PostgreSQL MVCC 原始碼實現SQLMVC原始碼
- 使用 iOS OpenGL ES 實現長腿功能iOS
- 如何使用Python 實現秒錶功能?Python
- 使用Go語言實現爬蟲功能Go爬蟲
- 使用vue實現grid-layout功能Vue
- 【OpenCV】使用floodfill()實現PhotoShop魔棒功能OpenCV
- PostgreSQL 15 stats collector 在取消後是如何實現的原有功能的SQL
- 用 .SqlSugar ORM 來實現報表功能 .NET CORE /.NETSqlSugarORM
- 使用java實現希表的基礎功能Java
- Java Web實現使用者登入功能JavaWeb
- SQL Azure使用Excel實現BI功能:PowerPivotTWSQLExcel
- 在 CSS 中使用 LESS 實現更多功能CSS
- 使用FGA實現SELECT觸發器功能觸發器
- 使用sql profile實現outline的功能SQL
- 使用 HTML5 Canvas 實現簽名功能HTMLCanvas