本文为编译安装,可参考https://github.com/citusdata/pg_cron/是可以使用yum源安裝
Installing pg_cron
Install on Red Hat, CentOS, Fedora, Amazon Linux with PostgreSQL 16 using PGDG:
# Install the pg_cron extension
sudo yum install -y pg_cron_16
下载源码包从https://github.com/citusdata/pg_cron/releases/
1.编译过程
# tar -zxvf pg_cron-1.6.2.tar.gz
pg_cron-1.6.2/
pg_cron-1.6.2/.gitignore
pg_cron-1.6.2/CHANGELOG.md
pg_cron-1.6.2/LICENSE
pg_cron-1.6.2/META.json
pg_cron-1.6.2/Makefile
pg_cron-1.6.2/README.md
pg_cron-1.6.2/expected/
pg_cron-1.6.2/expected/pg_cron-test.out
pg_cron-1.6.2/github-banner.png
pg_cron-1.6.2/include/
pg_cron-1.6.2/include/bitstring.h
pg_cron-1.6.2/include/cron.h
pg_cron-1.6.2/include/cron_job.h
pg_cron-1.6.2/include/job_metadata.h
pg_cron-1.6.2/include/pathnames.h
pg_cron-1.6.2/include/pg_cron.h
pg_cron-1.6.2/include/task_states.h
pg_cron-1.6.2/pg_cron--1.0--1.1.sql
pg_cron-1.6.2/pg_cron--1.1--1.2.sql
pg_cron-1.6.2/pg_cron--1.2--1.3.sql
pg_cron-1.6.2/pg_cron--1.3--1.4.sql
pg_cron-1.6.2/pg_cron--1.4--1.4-1.sql
pg_cron-1.6.2/pg_cron--1.4-1--1.5.sql
pg_cron-1.6.2/pg_cron--1.5--1.6.sql
pg_cron-1.6.2/pg_cron.conf
pg_cron-1.6.2/pg_cron.control
pg_cron-1.6.2/pg_cron.sql
pg_cron-1.6.2/sql/
pg_cron-1.6.2/sql/pg_cron-test.sql
pg_cron-1.6.2/src/
pg_cron-1.6.2/src/entry.c
pg_cron-1.6.2/src/job_metadata.c
pg_cron-1.6.2/src/misc.c
pg_cron-1.6.2/src/pg_cron.c
pg_cron-1.6.2/src/task_states.c
[root@XTJCloudMES-IOT01 ~]# cd pg_cron-1.6.2/
[root@XTJCloudMES-IOT01 pg_cron-1.6.2]# make
make: pg_config: Command not found
cat pg_cron.sql > pg_cron--1.0.sql
[root@XTJCloudMES-IOT01 pg_cron-1.6.2]# export PATH=/usr/pgsql-14/bin:$PATH
[root@XTJCloudMES-IOT01 pg_cron-1.6.2]# make
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o src/pg_cron.o src/pg_cron.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o src/job_metadata.o src/job_metadata.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o src/misc.o src/misc.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o src/task_states.o src/task_states.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o src/entry.o src/entry.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC -shared -o pg_cron.so src/pg_cron.o src/job_metadata.o src/misc.o src/task_states.o src/entry.o -L/usr/pgsql-14/lib -L/usr/lib64/llvm5.0/lib -L/usr/lib64 -Wl,--as-needed -Wl,-rpath,'/usr/pgsql-14/lib',--enable-new-dtags -L/usr/pgsql-14/lib -lpq
/opt/rh/llvm-toolset-7/root/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/pg_cron.bc src/pg_cron.c
/opt/rh/llvm-toolset-7/root/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/job_metadata.bc src/job_metadata.c
/opt/rh/llvm-toolset-7/root/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/misc.bc src/misc.c
/opt/rh/llvm-toolset-7/root/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/task_states.bc src/task_states.c
/opt/rh/llvm-toolset-7/root/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/entry.bc src/entry.c
[root@XTJCloudMES-IOT01 pg_cron-1.6.2]# make install
/bin/mkdir -p '/usr/pgsql-14/lib'
/bin/mkdir -p '/usr/pgsql-14/share/extension'
/bin/mkdir -p '/usr/pgsql-14/share/extension'
/bin/install -c -m 755 pg_cron.so '/usr/pgsql-14/lib/pg_cron.so'
/bin/install -c -m 644 .//pg_cron.control '/usr/pgsql-14/share/extension/'
/bin/install -c -m 644 .//pg_cron--1.4-1--1.5.sql .//pg_cron--1.3--1.4.sql .//pg_cron--1.5--1.6.sql .//pg_cron--1.2--1.3.sql .//pg_cron--1.0--1.1.sql .//pg_cron--1.4--1.4-1.sql .//pg_cron--1.1--1.2.sql pg_cron--1.0.sql '/usr/pgsql-14/share/extension/'
/bin/mkdir -p '/usr/pgsql-14/lib/bitcode/pg_cron'
/bin/mkdir -p '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
/bin/install -c -m 644 src/pg_cron.bc '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
/bin/install -c -m 644 src/job_metadata.bc '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
/bin/install -c -m 644 src/misc.bc '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
/bin/install -c -m 644 src/task_states.bc '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
/bin/install -c -m 644 src/entry.bc '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
cd '/usr/pgsql-14/lib/bitcode' && /usr/lib64/llvm5.0/bin/llvm-lto -thinlto -thinlto-action=thinlink -o pg_cron.index.bc pg_cron/src/pg_cron.bc pg_cron/src/job_metadata.bc pg_cron/src/misc.bc pg_cron/src/task_states.bc pg_cron/src/entry.bc
# vi /data_vdb/data/pgsql/postgresql.conf
shared_preload_libraries = 'pg_cron' # (change requires restart)
cron.database_name = 'postgres'
cron.use_background_works=on
max_worker_processes=8
max_connections=1000
# optionally, specify the timezone in which the pg_cron background worker should run (defaults to GMT). E.g:
cron.timezone = 'PRC'
或者:
postgres=# show shared_preload_libraries ;
shared_preload_libraries
--------------------------------
pg_stat_statements, pg_prewarm
(1 row)
postgres=# alter system set shared_preload_libraries='pg_stat_statements','pg_prewarm','pg_cron';
ALTER SYSTEM
pg_ctl stop
pg_ctl start
postgres=# show shared_preload_libraries;
shared_preload_libraries
-----------------------------------------
pg_stat_statements, pg_prewarm, pg_cron
postgres=# create extension pg_cron;
CREATE EXTENSION
postgres=# \dx
List of installed extensions
Name | Version | Schema | Description
--------------------+---------+------------+-----------------------------------------------------------------------
pg_cron | 1.3 | public | Job scheduler for PostgreSQL
pg_stat_statements | 1.8 | public | track planning and execution statistics of all SQL statements executed
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
postgres=# \dn
List of schemas
Name | Owner
--------+----------
cron | postgres
public | postgres
After restarting PostgreSQL, you can create the pg_cron functions and metadata tables using CREATE EXTENSION pg_cron.
-- run as superuser:
CREATE EXTENSION pg_cron;
postgres=#GRANT USAGE, CREATE ON SCHEMA cron TO user;
postgres=#GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cron TO user;
2.测试
postgres=# \df cron.schedule;
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+----------+------------------+--------------------------------------------+------
cron | schedule | bigint | job_name text, schedule text, command text | func
cron | schedule | bigint | schedule text, command text | func
(2 rows)
postgres=# \c repmgr
You are now connected to database "repmgr" as user "postgres".
repmgr=# \df cron.schedule;
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+------+------------------+---------------------+------
(0 rows)
postgres=# \c repmgr
You are now connected to database "repmgr" as user "postgres".
repmgr=# \df cron.schedule;
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+------+------------------+---------------------+------
(0 rows)
repmgr=# \dx
List of installed extensions
Name | Version | Schema | Description
---------+---------+------------+------------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
repmgr | 5.4 | repmgr | Replication manager for PostgreSQL
(2 rows)
repmgr=# \c postgres
You are now connected to database "postgres" as user "postgres".
postgres=# \dx
List of installed extensions
Name | Version | Schema | Description
--------------------+---------+------------+----------------------------------------------------------------------
--
amcheck | 1.3 | public | functions for verifying relation integrity
pg_cron | 1.6 | pg_catalog | Job scheduler for PostgreSQL
pg_stat_statements | 1.10 | public | track planning and execution statistics of all SQL statements execute
d
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(4 rows)
postgres=# \c regmgr
connection to server on socket "/run/postgresql/.s.PGSQL.5432" failed: FATAL: database "regmgr" does not exist
Previous connection kept
postgres=# CREATE EXTENSION pg_cron;
ERROR: extension "pg_cron" already exists
postgres=# \c repmgr
You are now connected to database "repmgr" as user "postgres".
repmgr=# CREATE EXTENSION pg_cron;
ERROR: can only create extension in database postgres
DETAIL: Jobs must be scheduled from the database configured in cron.database_name, since the pg_cron background worker reads job descriptions from this database.
HINT: Add cron.database_name = 'repmgr' in postgresql.conf to use the current database.
CONTEXT: PL/pgSQL function inline_code_block line 4 at RAISE
修改参数:
cron.database=repmgr
重启:
postgres=# \c repmgr
You are now connected to database "repmgr" as user "postgres".
repmgr=# CREATE EXTENSION pg_cron;
CREATE EXTENSION
repmgr=# \dx
List of installed extensions
Name | Version | Schema | Description
---------+---------+------------+------------------------------------
pg_cron | 1.6 | pg_catalog | Job scheduler for PostgreSQL
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
repmgr | 5.4 | repmgr | Replication manager for PostgreSQL
pg_cron may only be installed to one database in a cluster.
If you need to run jobs in multiple databases, use cron.schedule_in_database().
默認在參數指定時,只能指定一個database.可以在創建job時,調用其他database。
--查看job列表
maxiot=# select jobid,schedule,command,database,username,active,jobname from cron.job;
jobid | schedule | command | database | username | active | jobname
-------+-------------+----------------------------------------------------------------------+----------+----------+--------+-------------------------------------------------
1 | 56 23 * * * | SELECT iot_data.create_iot_data_attach_partition_by_config_month(); | xxx | xxx| t | job_create_iot_attach_partition_by_config_month
2 | 46 23 * * * | SELECT iot_data.create_iot_data_attach_partition_by_config_day(); | xxx | xxx | t | job_create_iot_attach_partition_by_config_day
(2 rows)
3.查看job運行狀態
- centos stream 9上,make時,出现报错:
# make
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -fvisibility=hidden -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-16/include -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o src/entry.o src/entry.c
gcc: fatal error: cannot read spec file ‘/usr/lib/rpm/redhat/redhat-hardened-cc1’: No such file or directory
compilation terminated.
make: *** [<builtin>: src/entry.o] Error 1
[root@localhost pg_cron-1.6.2]# cat /etc/redhat-release
CentOS Stream release 9
--安裝這個包
# dnf install redhat-rpm-config
# make
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -fvisibility=hidden -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-16/include -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o src/entry.o src/entry.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -fvisibility=hidden -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-16/include -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o src/job_metadata.o src/job_metadata.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -fvisibility=hidden -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-16/include -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o src/misc.o src/misc.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -fvisibility=hidden -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-16/include -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o src/pg_cron.o src/pg_cron.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -fvisibility=hidden -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-16/include -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -c -o src/task_states.o src/task_states.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -fvisibility=hidden -shared -o pg_cron.so src/entry.o src/job_metadata.o src/misc.o src/pg_cron.o src/task_states.o -L/usr/pgsql-16/lib -Wl,--as-needed -L/usr/lib64 -L/usr/lib64 -Wl,--as-needed -Wl,-rpath,'/usr/pgsql-16/lib',--enable-new-dtags -fvisibility=hidden -L/usr/pgsql-16/lib -lpq
cat pg_cron.sql > pg_cron--1.0.sql
/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Xclang -no-opaque-pointers -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-16/include -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/entry.bc src/entry.c
/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Xclang -no-opaque-pointers -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-16/include -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/job_metadata.bc src/job_metadata.c
/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Xclang -no-opaque-pointers -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-16/include -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/misc.bc src/misc.c
/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Xclang -no-opaque-pointers -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-16/include -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/pg_cron.bc src/pg_cron.c
/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Xclang -no-opaque-pointers -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-16/include -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/task_states.bc src/task_states.c
Rocky9上碰到的错误,这个还没能解决:
lude -flto=thin -emit-llvm -c -o src/entry.bc src/entry.c
make: /usr/lib64/ccache/clang: No such file or directory
make: *** [/usr/pgsql-14/lib/pgxs/src/makefiles/../../src/Makefile.global:1070: src/entry.bc] Error 127
[root@XVNCloudMES-DBCN01 pg_cron-1.6.2]# cat /etc/redhat-release
[root@XVNCloudMES-DBCN01 pg_cron-1.6.2]# which clang
/usr/bin/clang
[root@XVNCloudMES-DBCN01 pg_cron-1.6.2]# mkdir -p /usr/lib64/ccache/
[root@XVNCloudMES-DBCN01 pg_cron-1.6.2]# ln -s /usr/bin/clang /usr/lib64/ccache/clang
[root@XVNCloudMES-DBCN01 pg_cron-1.6.2]# make
/usr/lib64/ccache/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/entry.bc src/entry.c
/usr/lib64/ccache/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/job_metadata.bc src/job_metadata.c
/usr/lib64/ccache/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/misc.bc src/misc.c
/usr/lib64/ccache/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/pg_cron.bc src/pg_cron.c
/usr/lib64/ccache/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-implicit-fallthrough -Iinclude -I/usr/pgsql-14/include -I. -I./ -I/usr/pgsql-14/include/server -I/usr/pgsql-14/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o src/task_states.bc src/task_states.c
# make install
/usr/bin/mkdir -p '/usr/pgsql-14/lib'
/usr/bin/mkdir -p '/usr/pgsql-14/share/extension'
/usr/bin/mkdir -p '/usr/pgsql-14/share/extension'
/usr/bin/install -c -m 755 pg_cron.so '/usr/pgsql-14/lib/pg_cron.so'
/usr/bin/install -c -m 644 .//pg_cron.control '/usr/pgsql-14/share/extension/'
/usr/bin/install -c -m 644 .//pg_cron--1.0--1.1.sql .//pg_cron--1.1--1.2.sql .//pg_cron--1.2--1.3.sql .//pg_cron--1.3--1.4.sql .//pg_cron--1.4-1--1.5.sql .//pg_cron--1.4--1.4-1.sql .//pg_cron--1.5--1.6.sql pg_cron--1.0.sql '/usr/pgsql-14/share/extension/'
/usr/bin/mkdir -p '/usr/pgsql-14/lib/bitcode/pg_cron'
/usr/bin/mkdir -p '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
/usr/bin/install -c -m 644 src/entry.bc '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
/usr/bin/install -c -m 644 src/job_metadata.bc '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
/usr/bin/install -c -m 644 src/misc.bc '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
/usr/bin/install -c -m 644 src/pg_cron.bc '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
/usr/bin/install -c -m 644 src/task_states.bc '/usr/pgsql-14/lib/bitcode'/pg_cron/src/
cd '/usr/pgsql-14/lib/bitcode' && /usr/bin/llvm-lto -thinlto -thinlto-action=thinlink -o pg_cron.index.bc pg_cron/src/entry.bc pg_cron/src/job_metadata.bc pg_cron/src/misc.bc pg_cron/src/pg_cron.bc pg_cron/src/task_states.bc
- 用dnf安裝
# dnf install pg_cron_14
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




