PostgreSQLのジョブの実行タイミング(pgAgent)

ジョブの実行タイミングのPostgreSQL

ビジネス分析

最近のプロジェクトでは、指定したテーブルデータの1年目に月額一つ以上を削除することを、定期的に冗長なデータのデータベースをクリーンアップする必要があります。 
約2技術が達成するために使用することができ、この定期的なジョブの予備的分析:

  • Linuxののcrontab機能
  • pgAgentのpgAdminで機能

バインディングデータベース・システムおよびオペレーティング・システムを避けるために、そして最終的にデータベースレベルで自動的にクリーンアップすることを決め、pgAgentを使用して、その機能

入門

pgAgent pgAdminでIIIプラグインツールであり、それのはpgAdmin IIIのV1.4の放出を指します。 
PostgreSQLは主に複雑なスケジュールに多段階のバッチシェルとSQLタスクを実行することができ、ジョブスケジューリングエージェントのために使用されています。 
あなたはpgAgentのデータベースをインストールする必要があるので、pgAgentは、いくつかのサポートデータベーステーブルやその他のオブジェクトを必要とすることに注意してください。

環境

  • PostgreSQLの:
操作系统:CentOS Linux release 7.3.1611 (Core)
数据库系统: 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

pgagent.sqlとpgagent_upgrade.sqlファイルパスを検索し、データベースに必要な職務上で実行 
するデータベースにpgagentモードを作成し、適切なメニューや機能を作成します。

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 

データベースは、以下の条件満たしている場合: 
* 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デーモンを起動します

構文:

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

作成するための計画の実施

ターゲット・データベースに接続するためにIIIツールpgAdminで使用してください(あなたが他のマシンにターゲット・データベースへのリモート接続を使用することができます)

以下のような構成は以下のとおりです。

pgAdminでジョブの状態を入力した後、以下のように、見ることができます。

ジョブを作成しますdate_delete_new

そして、date_delete_newジョブ内の計画と手順を実行して追加

計画を作成しますdelete_date_new

実際には、仕事の実装スケジュールを計画し、ジョブを実行する時間を設定することができ、最小単位は、Linuxのcronが同様の制御方法を設定し、分であります

ビジネス要件1月に削除操作で、区は単純に実行するために、月の日を設定します。

新計画:

各月の1日の日付を設定します。

集合時間は00.00分です

delete_date_newを作成するには

SQLスクリプトステップやシェルスクリプトは、トリガ条件が計画されている場合、ジョブの各ステップは順番にアルファベット順の名前で実行されます実行することができます

ビジネス要件は、一年前にテーブルのデータを削除するために、テーブルをテストするために、例えばあります

新たなステップ: 
データベース操作を指定します(Postgresの)

定義で実行されるスクリプトを書く、など:

DELETE FROM "test"."test" where time < CURRENT_DATE-('1 year')::INTERVAL;

この実施計画が作成されます

おすすめ

転載: www.cnblogs.com/telwanggs/p/11547419.html