powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Отрицательный age(relfrozenxid)
5 сообщений из 5, страница 1 из 1
Отрицательный age(relfrozenxid)
    #39677343
Vadim Valenzik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня.

Столкнулся с непонятной для меня проблемой, к сожалению я только поддерживаю проект поэтому в БД разбираюсь слабо. После восстановления из дампа БД в логах получил такие записи.

WARNING: some databases have not been vacuumed in over 2 billion transactions
DETAIL: You might have already suffered transaction-wraparound data loss.

Суть проблемы как бы понимаю, каким то чудом "залез в будущее", но вот как решить проблему?

Делал вручную VACUUM; увидел такое же предупреждение.

SELECT datname, age(datfrozenxid) FROM pg_database;

datname | age
-----------+------------
postgres | -640205966
my_db | -640206005
template1 | -638438414
template0 | -638438414

SELECT relname, age(relfrozenxid) as xid_age FROM pg_class WHERE relkind = 'r';

показал, что все мои таблицы имеют нормальное значение, все сервисные тоже имеют отрицательное число.

Перед тем как возвращать из дампа делал только pg_resetxlog (вероятно им как то и задел указав может ошибочные значения)

Подскажите хотя бы куда копать?
...
Рейтинг: 0 / 0
Отрицательный age(relfrozenxid)
    #39677360
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim ValenzikПеред тем как возвращать из дампа делал только pg_resetxlog (вероятно им как то и задел указав может ошибочные значения)
Зачем?
Ну разумеется pg_resetxlog не имеет никакого отношения к сохранности данных. Наоборот он и нужен чтобы данные гарантированно ломать. Если не согласны - вы не понимаете, что такое WAL и теорию транзакционных СУБД.

Копать в pg_dump и pg_restore в свежий, исправный кластер. И не делать больше странные вещи.
...
Рейтинг: 0 / 0
Отрицательный age(relfrozenxid)
    #39677362
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://www.postgresql.org/docs/current/static/app-pgresetwal.html
manualAfter running this command, it should be possible to start the server, but bear in mind that the database might contain inconsistent data due to partially-committed transactions. You should immediately dump your data, run initdb, and reload. After reload, check for inconsistencies and repair as needed.
...
Рейтинг: 0 / 0
Отрицательный age(relfrozenxid)
    #39677365
Vadim Valenzik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ.

pg_resetxlog я конечно не от хорошей жизни запустил. Сервис не поднимался, в логах было сказано, что виноват xlog. Решил долго не думая сделать ресет. Дело было слишком рано утром после субботы :).

pg_resetwal появился намного позже этого сервера.

В любом случае просмотрев логи сервера пришел к выводу, что проблема возникла из-за того, я не заметил, что время на сервере когда я восстанавливал из дампа базу было сильно левым в сторону прошлого (долгая и глупая история). Если опять задампить и восстановить базу - все проходит успешно.

Еще раз спасибо, что отликнулись.
...
Рейтинг: 0 / 0
Отрицательный age(relfrozenxid)
    #39677366
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Valenzikpg_resetwal появился намного позже этого сервера.
pg_resetxlog и pg_resetwal - это одно и то же. Переименовали для релиза pg10, и я по привычке дал ссылку на current версию мануала.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Отрицательный age(relfrozenxid)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]