Zabbixで各サービスのログ監視を始めたところ、PostgreSQLのログにERRORがいつからか記録されていたことがわかった。
2024-11-01 02:04:44.497 JST [20101] LOG: logical replication table synchronization worker for subscription "zabbix_sub", table "dbversion" has started
2024-11-01 02:04:44.519 JST [20101] ERROR: duplicate key value violates unique constraint "dbversion_pkey"
2024-11-01 02:04:44.519 JST [20101] DETAIL: Key (dbversionid)=(1) already exists.
2024-11-01 02:04:44.519 JST [20101] CONTEXT: COPY dbversion, line 1
2024-11-01 02:04:44.520 JST [2534] LOG: background worker "logical replication worker" (PID 20101) exited with exit code 1
PostgreSQLは論理レプリケーション構成で運用しているが、PublisherからSubscriberへデータをコピーしようとした際に既にデータが存在してしまったためコピーできないでいるらしい。 どのタイミングでこうなったか調べるのは眠いので諦めるとして、とりあえず直す。 検索すると、Subscriberで該当データを削除してあげればよいという情報が見つかった。 試してみると失敗していたデータのコピーが無事に完了し、ログにERRORも記録されなくなった。 ログ、見ような。