работает процесс импорта дампов)
на сервере (Debian 11) в crontab настроен ежедневный бэкап бд, выгружает в архиве в формате database.sql.gz (6 ГБ)
делаю импорт, заливаю в новую созданную бд через терминал таким образом
gunzip < database.sql.gz | psql new_database
но почему импортируется не полностью. к примеру, БД уже в кластере должна занимать 11 гб, а по после этого импорта выдает всего 8 МБ непонятные. Захожу смотреть, там как будто выгрузились только схема и таблицы, но не хватает большого количества данных остальных внутри этих (я подозреваю, это не точно)
потом разархивировал дамп в формат database.sql ради интереса, запустил импорт аналогичным вышеуказанным способом по сути, но уже без gunzip
psql new_database | database.sql
загрузилось на этот раз всё корректно, все 11 гб данных в кластере бд.
пробовал проверять на локальной бд, спецом поднял на виртуалке, там так же работает.
есть определенные нюансы, которых я еще видимо не знаю, кто то может подсказать?
прошу прощения за много слов, пытался максимально точно описать детали проблемы
>gunzip < database.sql.gz | psql new_database Здесь должно быть получение журнала ошыбок и кода возврата.
имеете ввиду что то вроде gunzip < database.sql.gz | psql new_database>> dump.log 2>&1 ???
И да, для заливки дампов отдельной базы -- цэлевая база должна быть только что созданной, с правильной локалью, но в кластере (глобально) должны быть ужэ созданы пользователи. Дажэ при этом что-то можэт пойти не так. Что у вас там пошло не так в первый раз, и почему исправилось во второй -- можно только гадать. Да, ситуацыи, когда что-то идёт не так, а потом исправляется от того, что в базе что-то ужэ записано -- бывают. Но лучшэ рассчитывать, что у вас в базе сейчас мусор, её надо удалить полностью и создать ужэ имея полные логи.
И потом echo $? Хотя бы так, да.
база была только созданная с нуля, кластер поднял на виртуалке аналогичный проду. единственное, юзеров не было соответствующих, error вышли на эту тему, но я подумал это ведь не критично как бы для данных и дампа. по крайней мере раньше я так загружал и никогда не было таких проблем) благодарю за детальное разъяснение)
да, я только в терминале в основном работаю и юзаю баш, мне так комфортней обычно и быстрее
> но я подумал это ведь не критично как бы для данных и дампа. Это от версии дампа по-моему зависит. Одно время было критично, потом переделали. Но тожэ, то такоэ всё... Дамп надо вгружать без ошыбок. Если проблемы с какими-то строками -- то надо их исправить в дампе, потом загружать.
Самая такая, вероятная причина того, что вы видели -- вы создали базу, запустили первый раз, в середине увидели что-то не то, нажали ^C на одной большой таблицэ. Оно досоздало все ограничения и внешние ключи. Потом запустили второй раз, самые большые таблицы не загрузились, поскольку были неудовлетворённые ограничения. Но загрузились все справочники и всё, что эти ограничения требовали. Запустили третий раз -- загрузились большые таблицы. Это так, абстрактные предположэния всё. Но в цэлом -- дампы надо накатывать внимательно и без ошыбок при выполнении. А то такй суп можэт получиться в процэссе...
Обсуждают сегодня