на реплике командой:
                  
                  
                  /usr/pgsql-13/bin/pg_ctl -w -D /var/lib/pgsql/13/data promote
                  
                  
                  появилась ошибка в логах:
                  
                  
                  2023-10-02 13:26:25.880 MSK [21523] LOG:  background worker "Error Log Retention Policy [2]" (PID 30355) exited with exit code 1
                  
                  
                  2023-10-02 16:09:33.394 MSK [50062] LOG:  job 2 threw an error
                  
                  
                  2023-10-02 16:09:33.395 MSK [50062] ERROR:  cannot delete from table "job_errors" because it does not have a replica identity and publishes deletes
                  
                  
                  2023-10-02 16:09:33.395 MSK [50062] HINT:  To enable deleting from the table, set REPLICA IDENTITY using ALTER TABLE.
                  
                  
                  2023-10-02 16:09:33.395 MSK [50062] CONTEXT:  SQL statement "WITH deleted AS
                  
                  
                            (DELETE
                  
                  
                            FROM _timescaledb_internal.job_errors
                  
                  
                            WHERE finish_time < (now() - drop_after) RETURNING *)
                  
                  
                            SELECT count(*)
                  
                  
                            FROM deleted"
                  
                  
                    PL/pgSQL function _timescaledb_internal.policy_job_error_retention(integer,jsonb) line 7 at SQL statement
                  
                  
                  
                  
                  
                  
                  
                  
                  это БД Zabbix. вроде бы и все работает в забиксе, но ошибка постоянно появляется.
                  
                  
                  недоконца отключилась физ репликация?
                  
                  
                
Ошибка от логической репликации
а я физическую делал
У Вас явно есть логическая репликация, и именно для этой таблицы (_timescaledb_internal.job_errors) — в какой БД, другой вопрос. Нужно найти её (и, скорее всего, удалить — тут Вам виднее).
А pg_publication_tables действует только в пределах базы? Не через весь кластер?
Да, только в пределах базы. И вообще, есть же: \dRp[+] [PATTERN] list replication publications
Обсуждают сегодня