powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Логика именах файлов в pg_xact и отсутствующий файл
5 сообщений из 5, страница 1 из 1
Логика именах файлов в pg_xact и отсутствующий файл
    #40016117
SOM777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По неизвестной причине (ни ребутов, ни блэкаутов не было) - возникла проблема с базой:
Could not open file "pg_xact/0955": No such file or directory.

Как я понимаю не может найти один из файлов журнала метаданных транзакций.

Но если смотреть содержимое этого каталога, то в нем файлы от 0000, 0001, 0002 ... до ... 0099, при этом по дате создания 0099 самый свежий, между файлами нумерация не прерывается, по датам создания файлов совпадение есть, т.е. не похоже, что где-то что-то отсутствует.

В чем может быть проблема? Откуда мог появиться 0955 если максимальный по номеру 0099? 0099 создан сегодня и видно, что система продолжает в него запись.

В режиме ignore_system_indexes удалось получить доступ к базе, на первый взгляд содержимое в полном порядке. Однако pg_dump все равно не дает сделать, ссылаясь на отсутствие этого файла и перед этим "pg_dump: WARNING: using index "pg_toast_2618_index" despite IgnoreSystemIndexes".

Куда копать (кроме старого бэкапа)?
...
Рейтинг: 0 / 0
Логика именах файлов в pg_xact и отсутствующий файл
    #40016126
SOM777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
If those clog numbers are not in your usual range, it usually means the
row is corrupt and is referring to an corrupt xid number, so the row is
bad, not the clog files are missing.

https://www.postgresql.org/message-id/alpine.GSO.2.01.0907231353180.6160@westnet.com]https://www.postgresql.org/message-id/alpine.GSO.2.01.0907231353180.6160@westnet.com

Есть какой-то способ восстановить корректное имя clog файла? Или единственный способ это "Generate a 256K file of all "55" characters, which indicates all transactions it might be looking for are treated as already commited"?
...
Рейтинг: 0 / 0
Логика именах файлов в pg_xact и отсутствующий файл
    #40016127
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOM777
If those clog numbers are not in your usual range, it usually means the
row is corrupt and is referring to an corrupt xid number, so the row is
bad, not the clog files are missing.

https://www.postgresql.org/message-id/alpine.GSO.2.01.0907231353180.6160@westnet.com]https://www.postgresql.org/message-id/alpine.GSO.2.01.0907231353180.6160@westnet.com

Есть какой-то способ восстановить корректное имя clog файла? Или единственный способ это "Generate a 256K file of all "55" characters, which indicates all transactions it might be looking for are treated as already commited"?


вам проще будет найти нужную поврежденную строку и удалить... так как если она битая то там не только xid битый а что угодно...
--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Логика именах файлов в pg_xact и отсутствующий файл
    #40017157
SOM777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С pg_xact удалось разобраться.
Вылезли "ERROR: missing chunk number 0 for toast value 129731 in pg_toast_736955"

поиском по базе нашли проблемную таблицу и побитые текстовые поля (их не много, всего 5 полей в 5 записях из 1.5 млн), чтобы не дропать записи целиком, просто обнуляем проблемные поля, а дальше вопрос - делать vacuum analyze для проблемной таблицы или по аналогии с рекомендуемым pg_repack ( http://www.databasesoup.com/2013/10/de-corrupting-toast-tables.html) сделать vacuum full в оффлайне?

Надо ли делать REINDEX для таблицы и для pg_toast, если да, то в какой последовательности?
...
Рейтинг: 0 / 0
Логика именах файлов в pg_xact и отсутствующий файл
    #40017325
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOM777
С pg_xact удалось разобраться.
Вылезли "ERROR: missing chunk number 0 for toast value 129731 in pg_toast_736955"

поиском по базе нашли проблемную таблицу и побитые текстовые поля (их не много, всего 5 полей в 5 записях из 1.5 млн), чтобы не дропать записи целиком, просто обнуляем проблемные поля, а дальше вопрос - делать vacuum analyze для проблемной таблицы или по аналогии с рекомендуемым pg_repack ( http://www.databasesoup.com/2013/10/de-corrupting-toast-tables.html) сделать vacuum full в оффлайне?

Надо ли делать REINDEX для таблицы и для pg_toast, если да, то в какой последовательности?


достаточно просто vacuum full по таблице если можете себе позволить.



--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Логика именах файлов в pg_xact и отсутствующий файл
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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