#postgresql
#postgresql
Вопрос:
У меня возникла проблема с восстановлением дампа, взятого из базы данных Postgres. Команда, которую я использую, это:
psql -d importantdb -U postgres -f importantdb.dmp -h localhost -p 6432
И ошибка, которую я получаю,:
psql:importantdb.dmp:316814878: ERROR: invalid input syntax for type json
DETAIL: Token ""ocr_result" is invalid.
CONTEXT: JSON data, line 1: ...0, "distance": 0.0, "timecode": 0.44, "ocr_result
COPY search_frames, line 289143606, column phash_matches: "[{"score": 1500.0, "distance": 0.0, "timecode": 0.04, "ocr_result": {}, "material_id": 1604, "index_..."
Размер дампа составляет около 5 ТБ. Я проверил версии, и как база данных, из которой был взят дамп, так и новая, имеют одну и ту же версию. Исходная база данных теперь исчезла, поэтому мне нужно иметь возможность восстановить этот файл, если это возможно. Поскольку это была база данных разработчика, в ней не было ничего, кроме одноразового дампа, который был взят в конце проекта.
Любой совет с благодарностью получен.
Комментарии:
1. Это одноразовая проблема, т. Е. Работает ли она, если вы удалите строку 289143606 или она жалуется в другом месте?
2. Что такое версия Postgres? Какой тип данных для столбца
phash_matches
JSON или JSONB? Этот фрагмент JSON вставляется здесь (Postgres 12) в обоихjson
иjsonb
. У вас есть только дамп обычного текста?3. @Bergi — хорошее предложение, попробовал и получил ту же ошибку в строке 289143605, так что, похоже, это постоянная проблема.
4. В тестовой настройке можете ли вы
CREATE
таблицу, а затемCOPY
, скажем, первые десять строк или около того данных из файла дампа? Есть ли разница в кодировке от исходной настройки?5. Приносим извинения за поздний ответ, ребята, и, возможно, спасибо за помощь. Углубляясь в файл, это пример строк, с которыми он борется:
257148165 2020-08-28 08:42:59.448275 /apps/tmp/storage/57/file-1598604179448275673-3713101889932116939-864523902.jpg N 2020-08-28 08:42:59.548637 2020-08-28 08:42:59.548637 N t N 57 N N f 3713101889932116939 864523902 [] N N N N /apps/tmp/storage/57/file-1598604179448275673-3713101889932116939-864523902.jpg N N
я предполагаю, что этоN
управляющие символы, которые его нарушают.