精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PostgreSQL實現定時任務的四種方法

數據庫 PostgreSQL
數據庫定時任務可以用于實現定期的備份、統計信息采集、數據匯總、數據清理與優化等。

數據庫定時任務可以用于實現定期的備份、統計信息采集、數據匯總、數據清理與優化等。

PostgreSQL 沒有提供類似 Oracle、MySQL 以及 Microsoft SQL Sever 的內置任務調度功能,因此本文給大家介紹一下 PostgreSQL 數據庫中實現定時任務的 4 種方法。

方法一:操作系統定時任務

Linux 定時任務(crontab)或者 Windows 任務計劃程序(Task Scheduler)為我們提供了一個實現定時任務傳統的方法。以 crontab 為例,我們可以使用以下命令編輯任務列表:

crontab -e

然后在打開的文件中使用以下格式增加一行數據:

#分鐘     小時   月份中的某一天  月份     星期          命令
#(0-59)  (0-23) (1-31)         (1-12)  (0-7 [7 or 0 == Sunday])
<minute><hour><day of month><month><day of week><command>

其中的前五個字段表示執行命令的時間,可以使用星號(*)匹配所有的時間。例如,將 <month> 設置為星號表示每個月都執行命令。

舉例來說,輸入以下內容表示每天零點執行數據庫邏輯備份操作。

00 * * * pg_dump --no-password -U user db_name > backup.sql

為了安全起見不要直接輸入密碼,而是應該將密碼加入 .pgpass 文件,并且將該文件的權限設置為僅當前用戶可見:

chmod600 .pgpass

方法二:pgAgent

pgAgent 是一個用于 PostgreSQL 數據庫的任務調度代理,能夠基于復雜的調度計劃運行多步驟的批處理、shell 腳本以及 SQL 命令。對于 Unix/Linux 系統,pgAgent 以后臺進程的方式運行;對于 Windows 系統,pgAgent 以服務的形式運行。

安裝 pgAgent

PgAdmin 4 管理工具集成了 pgAgent 的功能,但是這兩者需要單獨安裝。我們可以通過官方網站下載 PgAdmin 4 以及 pgAgent。具體的安裝步驟和注意事項可以參考官網文檔。安裝完成之后,我們可以在 PgAdmin 4 左側導航樹中看到“pgAgent Jobs”節點。

創建定時任務

右鍵點擊“pgAgent Jobs”節點,選擇“Create” > “pgAgent Job”創建一個新的定時任務。

其中,“General”頁面可以輸入一些基本信息,包括任務的名稱。“Steps”頁面可以設置多個操作步驟,包括執行的腳本或者 SQL 語句等。“Schedules”頁面用于定義任務執行的時間計劃。“SQL”頁面可以顯示創建或者修改任務的語句。

點擊“Save”按鈕保存設置并創建任務,然后我們就可以在“pgAgent Job”節點下看到創建的任務。

方法三:pg_cron

pg_cron 是由 citusdata 公司開發的一個 PostgreSQL 定時任務插件(類似于 Oracle 中的 DBMS_SCHEDULER)。pg_cron 作為一個后臺工作進程運行,使用類似 cron 的編輯語法,允許直接在數據庫中執行定時任務。例如:

-- 每周六 3:30am (GMT) 刪除歷史記錄
SELECT cron.schedule('30 3 * * 6', $$DELETEFROM events WHERE event_time <now()-interval'1 week'$$);
 schedule
----------
42

-- 每天 10:00am (GMT) 執行清理作業
SELECT cron.schedule('nightly-vacuum','0 10 * * *','VACUUM');
 schedule
----------
43

-- 將清理作業修改為 3:00am (GMT)
SELECT cron.schedule('nightly-vacuum','0 3 * * *','VACUUM');
 schedule
----------
43

-- 停止計劃中的任務
SELECT cron.unschedule('nightly-vacuum');
 unschedule 
------------
 t
(1row)

SELECT cron.unschedule(42);
 unschedule
------------
          t

安裝 pg_cron

pg_cron 目前只支持 Linux 操作系統。對于 Red Hat、CentOS 以及 Fedora 等操作系統可以使用以下命令進行安裝(PostgreSQL 12):

sudo yum install -y pg_cron_12

對于 Debian 以及 Ubuntu 可以使用以下命令進行安裝(PostgreSQL 12):

sudoapt-get -y install postgresql-12-cron

另外,我們也可以使用源碼進行編譯安裝:

git clone https://github.com/citusdata/pg_cron.git
cd pg_cron
# Ensure pg_config is in your path, e.g.
exportPATH=/usr/pgsql-12/bin:$PATH
make&&sudoPATH=$PATHmakeinstall

配置 pg_cron

為了在啟動 PostgreSQL 時運行 pg_cron 后臺工作進程,我們需要將 pg_cron 添加到 postgresql.conf 文件中的 shared_preload_libraries配置項。默認情況下,pg_cron 后臺進程使用 postgres 數據庫獲取所需的元數據。但是我們也可以使用 cron.database_name 配置參數進行設置。

shared_preload_libraries ='pg_cron'
cron.database_name ='postgres'

重啟 PostgreSQL:

sudo service postgresql-12 restart

然后我們可以使用以下命令創建 pg_cron 函數以及元數據相關的表:

-- 使用 superuser 運行以下命令
CREATE EXTENSION pg_cron;

-- 可選操作,為其他用戶授予訪問權限
GRANTUSAGEONSCHEMA cron TO username;

方法四:pg_timetable

pg_timetable 是由 CYBERTEC 公司開發的 PostgreSQL 作業調度程序,提供了靈活的配置方式和許多高級功能。包括由多個任務組成的任務鏈、支持 SQL 命令和可執行程序、內置任務(例如發送郵件)、完全基于數據庫的配置和日志功能、cron 風格的計劃調度、并發執行的保護等。

安裝 pg_timetable

首先,我們可以使用官方發布的二進制安裝程序安裝 pg_timetable,目前支持 Windows、Linux 以及 macOS 操作系統。

另外,官方的 docker 鏡像可以點此下載。

master 分支的 latest 標簽是最新版本,使用命令行的運行方式如下:

docker run --rm \
  cybertecpostgresql/pg_timetable:latest \
  -h 10.0.0.3 -p 54321 -c worker001

指定環境變量的方式如下:

docker run --rm \
  -e PGTT_PGHOST=10.0.0.3 \
  -e PGTT_PGPORT=54321\
  cybertecpostgresql/pg_timetable:latest \
  -c worker001

除此之外,我們也可以使用源碼進行編譯安裝。首先下載并安裝 Go 語言環境,然后使用 go get 命令拷貝 pg_timetable 源碼:

$ env GIT_TERMINAL_PROMPT=1go get github.com/cybertec-postgresql/pg_timetable/
Username for'https://github.com':<Github Username>
Password for'https://cyberboy@github.com':<Github Password>

運行 pg_timetable:

$ cd ~/go/src/github.com/cybertec-postgresql/pg_timetable/
$ go run main.go --dbname=dbname --clientname=worker001 --user=scheduler --password=strongpwd

或者,也可以編譯成二進制程序并運行:

$ go build
$ ./pg_timetable --dbname=dbname --clientname=worker001 --user=scheduler --password=strongpwd

如果想要運行項目中的所有測試,可以執行以下命令:

$ cd ~/go/src/github.com/cybertec-postgresql/pg_timetable/
$ go get github.com/stretchr/testify/
$ go test ./...

也可以使用 postgres docker 鏡像運行測試:

$ RUN_DOCKER=true go test ./...

使用 pg_timetable

pg_timetable 獨立于 PostgreSQL 服務器運行,相當于一個客戶端進程。安裝完成之后,執行以下命令運行 pg_timetable 程序:

# ./pg_timetable

Application Options:
  -c, --clientname=               Unique name for application instance
  -v, --verbose                   Show verbose debug information [$PGTT_VERBOSE]
  -h, --host=                     PG config DB host(default: localhost)[$PGTT_PGHOST]
  -p, --port=                     PG config DB port (default: 5432)[$PGTT_PGPORT]
  -d, --dbname=                   PG config DB dbname (default: timetable)[$PGTT_PGDATABASE]
  -u, --user=                     PG config DB user (default: scheduler)[$PGTT_PGUSER]
  -f, --file=                     SQL script file to execute during startup
      --password=                 PG config DB password (default: somestrong)[$PGTT_PGPASSWORD]
      --sslmode=[disable|require] What SSL priority use for connection (default: disable)
      --pgurl=                    PG config DB url [$PGTT_URL]
      --init                      Initialize database schema and exit. Can be used with --upgrade
      --upgrade                   Upgrade database to the latest version
      --no-program-tasks          Disable executing of PROGRAM tasks [$PGTT_NOPROGRAMTASKS]

源代碼的 sample 目錄中提供了大量的示例可以參考。以下命令可以創建一個 8 月份 00:05 運行“MyJob”的定時任務:

SELECT timetable.job_add('MyJob','SELECT public.my_func()',NULL,'SQL','5 0 * 8 *', live :=TRUE);

以下命令表示從 0 點到 20 點,每兩個小時的 23 分時運行“MyJob”任務:

SELECT timetable.job_add('MyJob','SELECT public.my_func()',NULL,'SQL','23 0-20/2 * * *', live :=TRUE);

pg_timetable 計劃任務的完整配置由 3 個階段組成:

  • 第一個階段用于配置 base_task,定義需要執行的操作。包括 SQL 語句、外部程序以及內置的操作。
  • 第二個階段用于配置 task_chain,定義一組順序執行的基本任務。
  • 第三階段用于配置 chain_execution_config,定義任務鏈的執行計劃。

此外,為了給基本任務傳遞控制參數,任務鏈中的任務都可以附帶一個執行參數。詳細的配置方法和案例可以參考官方網站。

總結

本文介紹了在 PostgreSQL 數據庫中實現定時任務的 4 種方法,包括操作系統定時任務、pgAgent 代理、pg_cron 插件以及 pg_timetable 工具。

責任編輯:華軒 來源: SQL編程思想
相關推薦

2021-03-09 14:12:07

Java 框架定時

2020-01-21 19:15:23

漏洞安全IT

2010-07-16 13:50:53

Perl哈希表

2022-09-02 14:29:01

JavaScrip數組屬性

2014-03-17 09:22:43

Linux命令

2010-09-02 10:55:57

CSS

2024-01-22 08:53:00

策略任務RocketMQ

2021-11-22 12:35:40

Python命令定時任務

2024-02-26 11:12:33

定時任務線程

2024-01-31 08:38:57

Python定時任務函數

2009-02-25 09:52:14

類型轉換.NET 強制轉型

2011-06-22 15:21:08

XML

2009-03-31 13:12:30

解析XMLJava

2020-08-10 00:30:55

備份密碼iPhone移動安全

2021-03-10 10:13:39

爬蟲Python代碼

2009-11-23 15:57:51

PHP偽靜態

2021-06-09 10:10:43

數字化轉型IT領導者

2021-11-03 23:12:24

Windows 11Windows微軟

2009-09-17 16:55:58

C#組件設計

2020-07-24 09:56:12

React開發數據
點贊
收藏

51CTO技術棧公眾號

日韩国产精品一区| 午夜精品aaa| 3d动漫啪啪精品一区二区免费 | 深夜福利一区| 午夜一区二区三区在线观看| 日本一区二区三不卡| 国产尤物视频在线观看| 亚洲韩日在线| 中文字幕日韩视频| 国产高潮失禁喷水爽到抽搐| www.com.cn成人| 一区二区三区蜜桃| 日韩av一级大片| 黄色一级大片在线免费看国产| 日韩精品一二三四| 久久这里有精品视频| 四虎永久免费影院| 亚洲一区二区三区中文字幕在线观看 | 精品欧美一区二区久久| 色七七在线观看| 成人影音在线| 亚洲欧美日韩国产一区二区三区| 蜜桃av久久久亚洲精品| www.中文字幕| 久草在线在线精品观看| 日本成人免费在线| 日韩av一二三区| 日韩一区三区| 亚洲区一区二区| 精品熟女一区二区三区| 国产精品高清一区二区| 欧美性视频一区二区三区| 国产69精品久久久久久久| 成人短视频在线| 中文无字幕一区二区三区| 免费国产在线精品一区二区三区| 亚洲产国偷v产偷v自拍涩爱| 国产一区欧美二区| 国产精品影片在线观看| 丁香社区五月天| 国产精品普通话对白| 欧美激情久久久久| 免费人成在线观看| 欧美女人交a| 日韩在线免费视频观看| 337人体粉嫩噜噜噜| 美女毛片一区二区三区四区| 日韩av在线免费观看一区| 中国黄色片一级| 日韩亚洲国产免费| 欧美日韩成人综合天天影院| av网站在线不卡| 成人1区2区| 欧美精品第1页| 色一情一区二区| vam成人资源在线观看| 欧美久久久久久久久| 毛片一区二区三区四区| 高清电影一区| 欧美日韩欧美一区二区| 蜜桃福利午夜精品一区| 亚洲精品v亚洲精品v日韩精品| 日韩视频123| 国产av一区二区三区传媒| 荡女精品导航| 亚洲欧洲在线看| 麻豆久久久av免费| 日韩免费视频一区| 成人网在线视频| 一级黄色小视频| 精东粉嫩av免费一区二区三区| 欧美中文在线观看| 国语对白永久免费| 91动漫免费网站| 女人丝袜激情亚洲| 日韩中文字幕第一页| 国产精品高清无码在线观看| 九一精品国产| 色婷婷av一区二区三区久久| 538精品在线观看| 亚洲精选成人| 国产精品高清免费在线观看| 在线观看不卡的av| 国产大陆精品国产| 久久综合九色综合网站| 国产露出视频在线观看| 国产精品麻豆视频| 成人午夜免费在线视频| 日韩精品av| 欧美日韩亚洲综合在线| wwwxxxx在线观看| 亚洲香蕉视频| 另类美女黄大片| 51国产偷自视频区视频| 人禽交欧美网站| 999国产在线| 久久精品国产亚洲a∨麻豆| 国产精品久久久久影视| 91九色丨porny丨国产jk| 欧美一区 二区 三区| 91精品国产一区二区三区| 日韩www视频| 欧美aaaaaaaaaaaa| 26uuu亚洲国产精品| 成人免费一区二区三区| 懂色av一区二区夜夜嗨| 日本一区二区精品视频| 色噜噜狠狠狠综合欧洲色8| 日韩欧美在线免费| 男生和女生一起差差差视频| 少妇精品久久久一区二区三区| 欧美剧在线观看| 中文字幕手机在线视频| 国产寡妇亲子伦一区二区| 欧美日韩在线一区二区三区| 特级毛片在线| 欧美精品久久一区| 摸摸摸bbb毛毛毛片| 欧美天堂亚洲电影院在线观看| 国产www精品| 十八禁一区二区三区| 国产精品国产三级国产aⅴ中文| 国产av天堂无码一区二区三区| 国产aⅴ精品一区二区四区| 国产一区二区三区18| 国产精品19乱码一区二区三区| 美女www一区二区| 欧美一区激情视频在线观看| 黄页在线观看免费| 8x8x8国产精品| 欧美黄色高清视频| 首页亚洲欧美制服丝腿| 精品国产乱码一区二区三区四区| 91三级在线| 91精品国产综合久久精品性色| 国产sm调教视频| 国产女优一区| 国内精品二区| 国产美女情趣调教h一区二区| 在线播放一区二区三区| 日本视频在线免费| 青青草国产精品亚洲专区无| 美女被啪啪一区二区| 天堂中文av在线资源库| 日韩av在线免费观看| 日韩欧美激情视频| 丁香激情综合国产| 久久亚洲精品无码va白人极品| 高清精品久久| 欧美国产日韩一区二区三区| 国产激情久久久久久熟女老人av| 亚洲视频中文字幕| 手机版av在线| 国产精品99在线观看| 国产精品自产拍在线观| 瑟瑟视频在线| 宅男在线国产精品| 欧美人禽zoz0强交| 国产99精品国产| 国产精品专区在线| 日韩av中文字幕一区| 7m精品福利视频导航| 偷拍25位美女撒尿视频在线观看| 狠狠综合久久av一区二区小说| 97人妻天天摸天天爽天天| 亚洲永久免费精品| 亚洲电影一二三区| 999精品嫩草久久久久久99| www.亚洲成人| 国模无码一区二区三区| 精品成人av一区| 国产av自拍一区| 日本91福利区| 在线免费观看成人网| 91精品一久久香蕉国产线看观看| 美日韩精品免费观看视频| 亚洲av综合色区无码一二三区| 亚洲国产aⅴ天堂久久| 成年人网站免费看| 美日韩一区二区| 91传媒免费视频| 麻豆精品av| 国产精品三级网站| 黄网av在线| 一本色道久久综合狠狠躁篇怎么玩| 亚洲一级视频在线观看| 亚洲午夜在线视频| 毛片aaaaaa| 成人在线视频一区二区| 成年人小视频网站| 欧美性久久久| 亚洲一区二区高清视频| 2023国产精华国产精品| 国产精品久久久久国产a级| 天天色天天射天天综合网| 亚洲欧美中文在线视频| 99久久精品日本一区二区免费| 亚洲不卡一区二区三区| 成年人网站在线观看视频| 国产福利视频一区二区三区| 99免费视频观看| 亚洲一级二级| 男女啪啪的视频| 欧美绝顶高潮抽搐喷水合集| 国产日产久久高清欧美一区| 麻豆理论在线观看| 毛片精品免费在线观看| 免费在线视频一级不卡| 日韩欧美的一区| 国产九色91回来了| 午夜视频一区在线观看| av成人免费网站| 久久久精品欧美丰满| 国产精品无码自拍| 久久99久久久久久久久久久| 日韩欧美国产免费| 国产精品mv在线观看| 亚洲精品一区二区三区四区五区| 久久男人av| 91|九色|视频| 亚洲18在线| 国产精品久久久久久久天堂 | 国产日韩欧美a| 亚洲一区二区在线免费| 国产一区二区导航在线播放| 亚洲乱码国产一区三区| 国产一区二区三区的电影 | 99久久亚洲国产日韩美女| 性色av一区二区三区| a级毛片免费观看在线| 中文在线资源观看视频网站免费不卡 | 中文字幕无码日韩专区免费| 国产午夜精品一区二区| 国产精品无码在线| 国产大陆精品国产| 麻豆传媒在线看| 久久99国产精品久久99 | 国产91高潮流白浆在线麻豆| 精品亚洲视频在线| 黄色日韩网站视频| 天堂在线中文在线| 精品一区二区日韩| 亚洲综合av在线播放| 美女国产一区二区三区| 亚洲综合日韩欧美| 久久成人免费电影| 在线观看国产福利| 精品一区二区三区久久| 天堂网成人在线| 国产成人精品影视| 久久久久久婷婷| 不卡一二三区首页| 变态另类丨国产精品| 91麻豆国产香蕉久久精品| 国产人妻人伦精品1国产丝袜| 成人av动漫在线| 日本丰满少妇裸体自慰| 国产午夜亚洲精品午夜鲁丝片| 精品人妻无码一区二区三区| 国产亚洲欧美色| 人妻无码一区二区三区免费| 中文字幕一区免费在线观看 | jizzjizz在线观看| 中文字幕日韩av电影| 欧美成人hd| 欧美成人精品不卡视频在线观看| 国产激情小视频在线| 欧美大片免费看| av日韩中文| 国产精品久久久久高潮| 精品国模一区二区三区欧美| 福利视频一区二区三区| 亚洲影院天堂中文av色| 亚洲一区二区三区免费观看| 一区二区三区国产精华| 久久这里只有精品18| 久久国产日本精品| 亚洲小视频网站| 成人永久aaa| 人妻视频一区二区| 有码一区二区三区| 午夜精品久久久久久久久久久久久蜜桃 | 懂色av噜噜一区二区三区av| 在线免费观看成年人视频| 中文在线一区二区 | 在线成人www免费观看视频| 免费成人在线视频网站| 蜜臀av国产精品久久久久| 韩国一区二区三区四区| 国产欧美精品一区二区色综合 | 亚洲精品精选| 丝袜制服一区二区三区| 精品一区二区综合| 黄色正能量网站| 亚洲天堂网中文字| 亚洲 欧美 成人| 日韩欧美一区二区三区在线| 人成在线免费视频| 欧美成人午夜剧场免费观看| 黑人巨大精品| 高清国产在线一区| 色天天综合网| 日韩久久一级片| 国产成人精品免费网站| 青青草视频成人| 一区二区成人在线| 中文字幕乱码在线观看| 亚洲福利视频在线| 成人在线直播| 日韩美女福利视频| 99re91这里只有精品| 一区二区三区四区欧美| 久久精品电影| 91丨porny丨对白| 亚洲欧美日韩电影| 中文字幕网址在线| 亚洲欧美福利视频| 俺来俺也去www色在线观看| 国产精品久久久久久久久久久久 | 波波电影院一区二区三区| 成人信息集中地| 91激情在线视频| 亚洲av片在线观看| 欧美国产日韩精品| 麻豆国产一区| 国产大尺度在线观看| 美女视频免费一区| 欧美激情视频二区| 在线观看网站黄不卡| 男女污污视频在线观看| 91av在线免费观看视频| 懂色av一区二区| 欧美国产视频一区| 国产精品18久久久久久久久久久久| 色撸撸在线视频| 欧美视频一区在线| 成年人在线观看| 国产精品久久久久久久久久久久久| 高潮按摩久久久久久av免费| av动漫在线免费观看| 国产寡妇亲子伦一区二区| 99精品久久久久| 欧美一区二区三区爱爱| 黄色网在线播放| 91夜夜未满十八勿入爽爽影院| 国产韩国精品一区二区三区| 天天干天天色天天干| 亚洲欧美综合色| 一炮成瘾1v1高h| 神马国产精品影院av| 不卡亚洲精品| 警花观音坐莲激情销魂小说| 国产又黄又大久久| 麻豆91精品91久久久| 欧美成人vps| 草草视频在线| 精品国产日本| 天堂蜜桃一区二区三区| 伊人影院综合网| 制服丝袜一区二区三区| 大地资源网3页在线观看| 国产传媒一区二区| 在线免费高清一区二区三区| 中文字幕日韩三级片| 欧美主播一区二区三区| 老司机午夜在线视频| 18成人免费观看网站下载| 亚洲啪啪91| 极品人妻videosss人妻| 欧美日韩在线直播| av网站免费在线观看| 久久亚洲国产精品日日av夜夜| 日韩av午夜在线观看| 黄色香蕉视频在线观看| 精品成a人在线观看| 欧美电影免费看| 欧美 另类 交| 99久久免费视频.com| 中文av免费观看| 欧美国产日韩中文字幕在线| 久久亚洲道色| 亚洲 激情 在线| 亚洲一卡二卡三卡四卡五卡| 天堂а√在线8种子蜜桃视频 | 向日葵污视频在线观看| 亚洲在线观看免费视频| 免费资源在线观看| 亚洲精品日韩av| 久久久久看片| 欧美日韩黄色网| 日韩精品视频中文在线观看| 激情亚洲小说| av在线播放亚洲| 国产精品久久久久久久久图文区| 高清乱码毛片入口| 国产精品尤物福利片在线观看| 一区在线视频观看| 992在线观看| 日韩精品免费在线视频观看| 99久久久国产|