這篇文章給大家介紹怎么在PostgreSQL中定時執(zhí)行job,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站設計、成都做網(wǎng)站、尉氏網(wǎng)絡推廣、微信小程序開發(fā)、尉氏網(wǎng)絡營銷、尉氏企業(yè)策劃、尉氏品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供尉氏建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:muchs.cn定時job可以使用一下兩種技術實現(xiàn):
Linux的crontab功能
pgadmin的pgAgent功能
為了避免數(shù)據(jù)庫系統(tǒng)和操作系統(tǒng)的綁定,最后決定在數(shù)據(jù)庫層面實現(xiàn)自動清理功能,即使用pgAgent功能
pgAgent是pgAdmin III工具中的一個插件,它在pgAdmin III v1.4版本中引用。
主要用于PostgreSQL的作業(yè)調度代理,能夠在復雜的時間表上運行多步批處理shell和SQL任務。
需要注意的是,pgAgent需要一些數(shù)據(jù)庫表和其他對象的支持,因此需要先安裝pgAgent數(shù)據(jù)庫。
PostgreSQL:
操作系統(tǒng):CentOS Linux release 7.3.1611 (Core) 數(shù)據(jù)庫系統(tǒng): PostgreSQL 9.5.8 IP: 192.168.230.134 port: 5432
安裝pgAdmin III
yum install pgadmin3_95.x86_64
輸入:
[root@localhost ~]# yum install pgadmin3_95.x86_64 Loaded plugins: fastestmirror, langpacks base | 3.6 kB 00:00:00 epel/x86_64/metalink | 6.4 kB 00:00:00 extras | 3.4 kB 00:00:00 pgdg95 | 4.1 kB 00:00:00 updates | 3.4 kB 00:00:00 Loading mirror speeds from cached hostfile * base: mirrors.163.com * epel: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.163.com * updates: mirrors.163.com Resolving Dependencies --> Running transaction check ---> Package pgadmin3_95.x86_64 0:1.22.1-1.rhel7 will be installed --> Processing Dependency: wxGTK for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_xrc-2.8.so.0(WXU_2.8)(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_stc-2.8.so.0(WXU_2.8)(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_html-2.8.so.0(WXU_2.8)(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_core-2.8.so.0(WXU_2.8)(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_aui-2.8.so.0(WXU_2.8.5)(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_aui-2.8.so.0(WXU_2.8)(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_adv-2.8.so.0(WXU_2.8)(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_baseu_xml-2.8.so.0(WXU_2.8)(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_baseu_net-2.8.so.0(WXU_2.8)(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_baseu-2.8.so.0(WXU_2.8.5)(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_baseu-2.8.so.0(WXU_2.8)(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_xrc-2.8.so.0()(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_stc-2.8.so.0()(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_html-2.8.so.0()(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_core-2.8.so.0()(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_aui-2.8.so.0()(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_gtk2u_adv-2.8.so.0()(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_baseu_xml-2.8.so.0()(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_baseu_net-2.8.so.0()(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Processing Dependency: libwx_baseu-2.8.so.0()(64bit) for package: pgadmin3_95-1.22.1-1.rhel7.x86_64 --> Running transaction check ---> Package wxBase.x86_64 0:2.8.12-20.el7 will be installed ---> Package wxGTK.x86_64 0:2.8.12-20.el7 will be installed --> Processing Dependency: libSDL-1.2.so.0()(64bit) for package: wxGTK-2.8.12-20.el7.x86_64 --> Running transaction check ---> Package SDL.x86_64 0:1.2.15-14.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================== Package Arch Version Repository Size ======================================================================================== Installing: pgadmin3_95 x86_64 1.22.1-1.rhel7 pgdg95 3.2 M Installing for dependencies: SDL x86_64 1.2.15-14.el7 base 204 k wxBase x86_64 2.8.12-20.el7 epel 588 k wxGTK x86_64 2.8.12-20.el7 epel 2.9 M Transaction Summary ======================================================================================== Install 1 Package (+3 Dependent packages) Total download size: 6.9 M Installed size: 27 M Is this ok [y/d/N]: y Downloading packages: (1/4): SDL-1.2.15-14.el7.x86_64.rpm | 204 kB 00:00:00 (2/4): wxBase-2.8.12-20.el7.x86_64.rpm | 588 kB 00:00:00 (3/4): wxGTK-2.8.12-20.el7.x86_64.rpm | 2.9 MB 00:00:01 (4/4): pgadmin3_95-1.22.1-1.rhel7.x86_64.rpm | 3.2 MB 00:00:48 ---------------------------------------------------------------------------------------- Total 147 kB/s | 6.9 MB 00:48 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : wxBase-2.8.12-20.el7.x86_64 1/4 Installing : SDL-1.2.15-14.el7.x86_64 2/4 Installing : wxGTK-2.8.12-20.el7.x86_64 3/4 Installing : pgadmin3_95-1.22.1-1.rhel7.x86_64 4/4 Verifying : SDL-1.2.15-14.el7.x86_64 1/4 Verifying : wxGTK-2.8.12-20.el7.x86_64 2/4 Verifying : wxBase-2.8.12-20.el7.x86_64 3/4 Verifying : pgadmin3_95-1.22.1-1.rhel7.x86_64 4/4 Installed: pgadmin3_95.x86_64 0:1.22.1-1.rhel7 Dependency Installed: SDL.x86_64 0:1.2.15-14.el7 wxBase.x86_64 0:2.8.12-20.el7 wxGTK.x86_64 0:2.8.12-20.el7 Complete!
安裝pgAgent
yum install pgagent_95
輸入:
[root@localhost ~]# yum install pgagent_95 Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.163.com * epel: mirrors.ustc.edu.cn * extras: mirrors.163.com * updates: mirrors.163.com Resolving Dependencies --> Running transaction check ---> Package pgagent_95.x86_64 0:3.4.0-9.rhel7 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================== Package Arch Version Repository Size ======================================================================================== Installing: pgagent_95 x86_64 3.4.0-9.rhel7 pgdg95 42 k Transaction Summary ======================================================================================== Install 1 Package Total download size: 42 k Installed size: 151 k Is this ok [y/d/N]: y Downloading packages: pgagent_95-3.4.0-9.rhel7.x86_64.rpm | 42 kB 00:00:02 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : pgagent_95-3.4.0-9.rhel7.x86_64 1/1 Verifying : pgagent_95-3.4.0-9.rhel7.x86_64 1/1 Installed: pgagent_95.x86_64 0:3.4.0-9.rhel7 Complete!
找到pgagent.sql和pgagent_upgrade.sql文件路徑,并在需要job功能的數(shù)據(jù)庫上執(zhí)行
將會在數(shù)據(jù)庫中創(chuàng)建一個pgagent模式,并創(chuàng)建相應的功能表和函數(shù)
psql -U postgres postgres=# \i /usr/share/pgagent_95-3.4.0/pgagent.sql postgres=# \i /usr/share/pgagent_95-3.4.0/pgagent_upgrade.sql postgres=# \q
輸入:
[root@localhost pgagent_95-3.4.0]# psql -U postgres psql (9.5.9) Type "help" for help. postgres=# \i /usr/share/pgagent_95-3.4.0/pgagent.sql BEGIN CREATE SCHEMA COMMENT CREATE TABLE COMMENT CREATE TABLE CREATE INDEX COMMENT INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 CREATE TABLE COMMENT COMMENT CREATE TABLE CREATE INDEX COMMENT COMMENT COMMENT CREATE TABLE CREATE INDEX COMMENT CREATE TABLE CREATE INDEX CREATE INDEX COMMENT CREATE TABLE CREATE INDEX COMMENT COMMENT CREATE TABLE CREATE INDEX COMMENT COMMENT COMMENT CREATE FUNCTION CREATE FUNCTION COMMENT CREATE FUNCTION COMMENT CREATE FUNCTION COMMENT CREATE TRIGGER COMMENT CREATE FUNCTION COMMENT CREATE TRIGGER COMMENT CREATE FUNCTION COMMENT CREATE TRIGGER COMMENT COMMIT postgres=# \i /usr/share/pgagent_95-3.4.0/pgagent_upgrade.sql CREATE FUNCTION CREATE FUNCTION COMMENT psql:/usr/share/pgagent_95-3.4.0/pgagent_upgrade.sql:49: ERROR: column "jstconnstr" of relation "pga_jobstep" already exists ALTER TABLE ALTER TABLE postgres=# \q
如果數(shù)據(jù)庫滿足以下條件:
* PostgreSQL 版本高于9.1
* pgAgent 版本高于3.4.0
可使用簡易安裝模式:
[root@localhost pgagent_95-3.4.0]# psql -U postgres psql (9.5.9) Type "help" for help. postgres=# CREATE EXTENSION pgagent;
效果相同
語法:
pgagent_95 [options] <connect-string> options: -f run in the foreground (do not detach from the terminal) -t <poll time interval in seconds (default 10)> -r <retry period after connection abort in seconds (>=10, default 30)> -s <log file (messages are logged to STDOUT if not specified> -l <logging verbosity (ERROR=0, WARNING=1, DEBUG=2, default 0)>
實例:
[root@localhost pgagent_95-3.4.0]# pgagent_95 hostaddr=192.168.230.134 dbname=postgres user=postgres password=oracle
使用pgadmin III工具連接目標庫(可以使用其他機器遠程連接目標庫)
配置如下:
進入pgadmin后可看到作業(yè)狀態(tài),如下圖所示:
然后在date_delete_new作業(yè)中添加執(zhí)行計劃和步驟
計劃其實就是作業(yè)的執(zhí)行時間表,可以在其中設置作業(yè)的運行時間,最小單位為min,設置方式與linux的cron控件類似
本次的業(yè)務要求是每月1號執(zhí)行刪除操作,顧只需設置每月一日執(zhí)行即可:
新建計劃:
設置日期為每月的1號
設置時間為00點00分
步驟是可以執(zhí)行的SQL腳本或shell腳本,當計劃條件觸發(fā)時,作業(yè)的每個步驟將依次以字母數(shù)字名稱順序運行
本次的業(yè)務要求是刪除表中一年以前的數(shù)據(jù),以test表為例
新建步驟:
需要指定操作的數(shù)據(jù)庫(postgres)
步驟1
在定義中寫入所要執(zhí)行的腳本,如:
DELETE FROM "test"."test" where time < CURRENT_DATE-('1 year')::INTERVAL;
步驟2
到此執(zhí)行計劃創(chuàng)建完成
關于怎么在PostgreSQL中定時執(zhí)行job就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
本文題目:怎么在PostgreSQL中定時執(zhí)行job-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://muchs.cn/article42/degsec.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、電子商務、做網(wǎng)站、定制開發(fā)、標簽優(yōu)化、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容