PostgreSQL ERROR: invalid memory alloc request size 18446744073709551613 SQL-состояние: XX000

1. sybastik 01.09.22 15:39 Сейчас в теме
Есть типовая база под замком, развернутая на потгресе под виндой.
Бэкап очень старый, но той же версии конфы, что сейчас на проде.

С недавних пор при обращении к одному из справочников вылетает ошибка ERROR: invalid memory alloc request size 18446744073709551613 SQL-состояние: XX000

Базу так же не выгрузить в дт средствами платформы и не бэкапнуть средствами pg.
Проблемная таблица в самом pg найдена (справочник Документы физ.лиц), но не поддается никаким действия с ней с той же ошибкой.

Подскажите, что можно сделать?
Очистка проблемного справочника и последующая очистка битых ссылок на него подойдет, т.к. справочник не критичен в данной конфе.
Но как к нему подступиться?
Найденные решения
26. sybastik 02.09.22 03:50 Сейчас в теме
В общем, данная ситуация была решена следующим образом:

1. Была сделана резервная копия папки data
2. Проблемная таблица была удалена полностью дропом.
3. Проблемная таблица восстановлена чистая скриптом.
4. Из старого бэкапа универсальной выгрузки данные с ключами перекачены.

Пока полет нормальный.
Такой способ использовал, т.к. таблица критичных данных не содержала.
Т.е. не рекомендуется, естественно, к использованию в подобных случаях.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 01.09.22 15:46 Сейчас в теме
(1)даже переименовать таблицу не дает?
5. sybastik 01.09.22 16:01 Сейчас в теме
(2) Переименовать не даёт, да.
7. nomad_irk 76 01.09.22 16:11 Сейчас в теме
(5)и выполнение проверки БД средствами PG тоже вываливается в ошибку?
11. sybastik 01.09.22 16:14 Сейчас в теме
(7) да. стандартные регламенты постгреса тоже валятся в ошибку.
13. nomad_irk 76 01.09.22 16:25 Сейчас в теме
(11)пробовали подменить файлы хранения таблицы на диске?
14. sybastik 01.09.22 16:40 Сейчас в теме
(13)
(13)Нет, это не пробовал.
Не подскажете, как найти нужный файл?
В свойство таблицы через пгадмин не зайти, если что.
18. nomad_irk 76 01.09.22 16:56 Сейчас в теме
(14)может кто более знающий PG подскажет, я просто не знаю каким запросом можно вывести имена файлов хранения таблиц.
3. aka Любитель XML 01.09.22 15:49 Сейчас в теме
(1)
Очистка проблемного справочника и последующая очистка битых ссылок на него подойдет


Тестирование и исправление пробовал сделать, изначально очистив справочник?
6. sybastik 01.09.22 16:02 Сейчас в теме
(3) В справочник не зайти. Сразу ошибку эту выдает. И никаких действий из 1С с ним не сделать. Равно как и из ПГ.
тис с такой же ошибкой завершается.
4. пользователь 01.09.22 15:59
Сообщение было скрыто модератором.
...
8. aka Любитель XML 01.09.22 16:12 Сейчас в теме
(4) обработкой пробовал удалить все элементы, чтобы в справочник не заходить?
12. sybastik 01.09.22 16:15 Сейчас в теме
(8) да, тоже не помогает.
9. aka Любитель XML 01.09.22 16:12 Сейчас в теме
+(7) а просто ТиИ пробовал делать?
10. sybastik 01.09.22 16:13 Сейчас в теме
(9) да. просто тии валится тоже.
15. wladimirpav 2 01.09.22 16:44 Сейчас в теме
(14) Каскадное удаление пробовали в постгрес?
16. sybastik 01.09.22 16:47 Сейчас в теме
(15) А каскадное удаление не удалит ли лишние данные?
Просто удаление не срабатывает.
17. XAKEP 01.09.22 16:48 Сейчас в теме
invalid memory

причем тут справочник ?
21. sybastik 01.09.22 17:33 Сейчас в теме
(17) притом, что ошибка фиксируется только при работе с одним справочником и его таблицей.
в справочнике не больше 10 записей и 5 столбцов в sql таблице
20. XAKEP 01.09.22 17:01 Сейчас в теме
и заодно укажите версию слона, виндовс и конфигурацию 1с

желательно и битность на все

и включите много нужных опций в конфиге для логов слона, чтобы увидеть возможную причину
22. sybastik 01.09.22 17:34 Сейчас в теме
(20)12.4-1.1C, 2012r2, 8.3.18.1280, бгу2

все x64
23. XAKEP 01.09.22 17:44 Сейчас в теме
(22)
бгу2 2.0.85.21 (?)

тогда
# - What to Log -
выбирайте опции
postgresql.conf

и смотрите зацепку
+
также по этому времени и в журнале виндовс смотрите
24. XAKEP 01.09.22 17:58 Сейчас в теме
(23)
и также журнал 1с включите на регистрацию всех действий
( на время поиска ошибок )
25. ansh15 02.09.22 00:23 Сейчас в теме
Пишут, что можно удалить.
Там смысл в том, что ищется значение системного столбца ctid последней записи перед битой записью и по его значению+1 удаляется битая запись.
По крайней мере, попробовать можно.
Желательно сделать копию кластера. Остановить СУБД, скопировать всю папку data куда-нибудь и потом уже экспериментировать.
26. sybastik 02.09.22 03:50 Сейчас в теме
В общем, данная ситуация была решена следующим образом:

1. Была сделана резервная копия папки data
2. Проблемная таблица была удалена полностью дропом.
3. Проблемная таблица восстановлена чистая скриптом.
4. Из старого бэкапа универсальной выгрузки данные с ключами перекачены.

Пока полет нормальный.
Такой способ использовал, т.к. таблица критичных данных не содержала.
Т.е. не рекомендуется, естественно, к использованию в подобных случаях.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот