Я был подвержен риску столкновения с идентификатором транзакции в большом кластере Postgres 10 из-за длительной транзакции, которая не простаивала (хотя на самом деле это было в некотором смысле, потому что она зависла в активном состоянии из-за проблемыс FDW Cassandra, который использовался в запросе).Я поймал это вовремя и с огромным использованием vacuum freeze
смог вернуть все под контроль ... возможно.
Все выглядит хорошо на уровне базы данных:
warehouse=# SELECT datname, age(datfrozenxid) FROM pg_database;
datname | age
-----------+----------
postgres | 85253797
template1 | 85253797
template0 | 85253797
warehouse | 89423564
repmgr | 85253797
(5 rows)
, ноЯ все еще вижу их в журналах и испытываю проблемы с репликацией (в настоящее время отключена, пока что-то не исправлено):
WARNING: oldest xmin is far in the past
HINT: Close open transactions soon to avoid wraparound problems.
Просматривая различные базы данных с помощью этого запроса, я вижу что-то относительно: xid
Право на возрастдо предела обтекания, но все для вещей, которые не могут быть vacuum freeze
', как индексы, последовательности и системные таблицы:
select relname, age from (select relname, age(relfrozenxid) age from pg_class) a order by age desc;
relname | age
-------------------------------------------+------------
user_mappings | 2147483647
pg_stat_sys_indexes | 2147483647
pg_stat_user_indexes | 2147483647
pg_statio_all_indexes | 2147483647
pg_statio_sys_indexes | 2147483647
...
Был перезапуск как часть восстановления после этого, потому что этоЭто был единственный способ очистить застрявший запрос, так что я не думаю, что у меня все еще есть что-то, что может вызывать высокие xids, такие как долгоживущие подготовленные операторы, временные таблицы и т. д., поэтому мне не ясно, что вызываетпроблема.
Итак, пара вопросов, связанных со всем этим:
- Это проблема (помимо генерации множества раздражающих сообщений об ошибках)?
- Могу ли я что-нибудь с этим сделать?
- Может ли это помешать репликации, когда я теперь не могу получить реплику, которая будет захвачена (всегда показывает постоянный поток сообщений об ошибках на первичной и реплике онедостающие WAL)?