これはPGroonga 2.X and 3.X用のドキュメントです。古いPGroongaを使っているならPGroonga 1.xのドキュメントを見てください。
pgroonga-generate-primary-maintainer-service.sh
コマンド3.2.1で追加
このコマンドはpgroonga-primary-maintainer.sh
コマンド を実行するためのサービスファイルの内容を出力します。
このサービスファイルと pgroonga-generate-primary-maintainer-timer.sh
コマンド で作成できる .timer
ファイルを使うことで定期実行の設定ができます。
(定期実行には systemd/タイマー を利用します。)
Options:
--pgroonga-primary-maintainer-command:
Specify the path to `pgroonga-primary-maintainer.sh`
(default: )
--threshold:
If the specified value is exceeded, `REINDEX INDEX CONCURRENTLY` is run.
(default: 1G)
--environment
Connection information such as `dbname` should be set in environment variables.
See also: https://www.postgresql.org/docs/current/libpq-envars.html"
Example: --environment KEY1=VALUE1 --environment KEY2=VALUE2 ...
--psql:
Specify the path to `psql` command.
--on-failure-service:
Run SERVICE on failure
--help:
Display help text and exit.
--pgroonga-primary-maintainer-command
pgroonga-primary-maintainer.sh
コマンド のパスを指定します--threshold
しきい値を指定します
詳細は pgroonga-primary-maintainer.sh
コマンド をご確認ください
--environment
DBの接続情報を環境変数で指定します
詳細は pgroonga-primary-maintainer.sh
コマンド をご確認ください
--psql
psql
コマンドのパスを指定します
詳細は pgroonga-primary-maintainer.sh
コマンド をご確認ください
--on-failure-service
実行に失敗したときの通知先を指定します
詳細は サービスの失敗を通知する をご確認ください
出力をリダイレクトして設定ファイルを生成します。
環境によってコマンドのパスは変わります。
pgroonga-primary-maintainer.sh
コマンド のパスを/usr/pgsql-12/bin/pgroonga-primary-maintainer.sh
で指定
--pgroonga-primary-maintainer-command /usr/pgsql-12/bin/pgroonga-primary-maintainer.sh
DBの接続情報を環境変数で指定
--environment PGHOST=example.com
--environment PGDATABASE=test_database
しきい値を10GBで指定
--threshold 10G
$ sudo -u postgres -H /usr/pgsql-12/bin/pgroonga-generate-primary-maintainer-service.sh \
--pgroonga-primary-maintainer-command /usr/pgsql-12/bin/pgroonga-primary-maintainer.sh \
--environment PGHOST=example.com \
--environment PGDATABASE=test_database \
--threshold 10G | \
sudo -H tee /lib/systemd/system/pgroonga-primary-maintainer.service
# How to install:
# /usr/pgsql-12/bin/pgroonga-generate-primary-maintainer-service.sh | sudo -H tee /lib/systemd/system/pgroonga-primary-maintainer.service
[Unit]
Description=PGroonga primary maintainer
[Service]
Type=oneshot
User=postgres
Group=postgres
Environment=PGHOST=example.com PGDATABASE=test_database
ExecStart=/usr/pgsql-12/bin/pgroonga-primary-maintainer.sh --threshold 10G
[Install]
WantedBy=multi-user.target
注意! しきい値を超えたWALがあると REINDEX
が実際に動きます。
$ sudo -H systemctl start pgroonga-primary-maintainer.service
$ sudo -H systemctl status pgroonga-primary-maintainer.service
● pgroonga-primary-maintainer.service - PGroonga primary maintainer
Loaded: loaded (/usr/lib/systemd/system/pgroonga-primary-maintainer.service; disabled; vendor preset: disabled)
Drop-In: /run/systemd/system/pgroonga-primary-maintainer.service.d
└─zzz-lxc-service.conf
Active: inactive (dead) since Fri 2024-06-28 08:36:27 UTC; 4min 50s ago
Process: 21035 ExecStart=/usr/pgsql-12/bin/pgroonga-primary-maintainer.sh --threshold 10G (code=exited, status=0/SUCCESS)
Main PID: 21035 (code=exited, status=0/SUCCESS)
Jun 28 08:36:26 temp systemd[1]: Starting PGroonga primary maintainer...
Jun 28 08:36:26 temp pgroonga-primary-maintainer.sh[21035]: Run 'REINDEX INDEX CONCURRENTLY memos_content'
Jun 28 08:36:26 temp pgroonga-primary-maintainer.sh[21047]: Fri Jun 28 08:36:26 UTC 2024
Jun 28 08:36:27 temp pgroonga-primary-maintainer.sh[21048]: REINDEX
Jun 28 08:36:27 temp pgroonga-primary-maintainer.sh[21051]: Fri Jun 28 08:36:27 UTC 2024
Jun 28 08:36:27 temp systemd[1]: pgroonga-primary-maintainer.service: Succeeded.
Jun 28 08:36:27 temp systemd[1]: Started PGroonga primary maintainer.