172 похожих чатов

Столкнулся с такой проблемой (или я не совсем понимаю как

работает процесс импорта дампов)
на сервере (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 гб данных в кластере бд.
пробовал проверять на локальной бд, спецом поднял на виртуалке, там так же работает.
есть определенные нюансы, которых я еще видимо не знаю, кто то может подсказать?
прошу прощения за много слов, пытался максимально точно описать детали проблемы

8 ответов

18 просмотров

>gunzip < database.sql.gz | psql new_database Здесь должно быть получение журнала ошыбок и кода возврата.

Jason-Kovac Автор вопроса
Ilya Anfimov
>gunzip < database.sql.gz | psql new_database Зде...

имеете ввиду что то вроде gunzip < database.sql.gz | psql new_database>> dump.log 2>&1 ???

И да, для заливки дампов отдельной базы -- цэлевая база должна быть только что созданной, с правильной локалью, но в кластере (глобально) должны быть ужэ созданы пользователи. Дажэ при этом что-то можэт пойти не так. Что у вас там пошло не так в первый раз, и почему исправилось во второй -- можно только гадать. Да, ситуацыи, когда что-то идёт не так, а потом исправляется от того, что в базе что-то ужэ записано -- бывают. Но лучшэ рассчитывать, что у вас в базе сейчас мусор, её надо удалить полностью и создать ужэ имея полные логи.

Jason-Kovac Автор вопроса
Ilya Anfimov
И да, для заливки дампов отдельной базы -- цэлевая...

база была только созданная с нуля, кластер поднял на виртуалке аналогичный проду. единственное, юзеров не было соответствующих, error вышли на эту тему, но я подумал это ведь не критично как бы для данных и дампа. по крайней мере раньше я так загружал и никогда не было таких проблем) благодарю за детальное разъяснение)

Jason-Kovac Автор вопроса
Ilya Anfimov
И потом echo $? Хотя бы так, да.

да, я только в терминале в основном работаю и юзаю баш, мне так комфортней обычно и быстрее

Jason Kovac
база была только созданная с нуля, кластер поднял ...

> но я подумал это ведь не критично как бы для данных и дампа. Это от версии дампа по-моему зависит. Одно время было критично, потом переделали. Но тожэ, то такоэ всё... Дамп надо вгружать без ошыбок. Если проблемы с какими-то строками -- то надо их исправить в дампе, потом загружать.

Jason Kovac
база была только созданная с нуля, кластер поднял ...

Самая такая, вероятная причина того, что вы видели -- вы создали базу, запустили первый раз, в середине увидели что-то не то, нажали ^C на одной большой таблицэ. Оно досоздало все ограничения и внешние ключи. Потом запустили второй раз, самые большые таблицы не загрузились, поскольку были неудовлетворённые ограничения. Но загрузились все справочники и всё, что эти ограничения требовали. Запустили третий раз -- загрузились большые таблицы. Это так, абстрактные предположэния всё. Но в цэлом -- дампы надо накатывать внимательно и без ошыбок при выполнении. А то такй суп можэт получиться в процэссе...

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта