Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / невосстановимый backup / 18 сообщений из 18, страница 1 из 1
21.12.2015, 14:37
    #39133159
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
Дано:
PG 9.4
2 сервера на win64, тестовый и боевой
база ~ 20 гб (мелкая, т.к. пока на начальном этапе)
время от времени база на тестовом сервере синхронизируется через backup/resture.
pg_dump -a -w -b -Ft -f db.bk db

dropdb --if-exists db
pg_restore.exe -C -d postgres -e db.bk

Проблема.
C одного момента рестор обламывается.
pg_restore: [архиватор (БД)] сбой команды COPY для таблицы ... : ОШИБКА: не
т данных для колонки "..."
КОНТЕКСТ: COPY таблица, строка 711728: "1336641 2 22 \N \N
\N 1 2 16777215 \N \N \N \N \N
\N \N \N \N \N"
смотрел это место в файле глазами, принципиальных отличий от предыдущих строк не заметил.
?
...
Рейтинг: 0 / 0
21.12.2015, 16:40
    #39133442
ОКТОГЕН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
_avz,

http://www.postgresql.org/docs/devel/static/app-pgdump.html
Ключик -Fc спасает, рекомендую.
Восстановление в несколько потоков - существенно быстрее
...
Рейтинг: 0 / 0
22.12.2015, 07:32
    #39134059
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
ОКТОГЕН, с ключом -Fc размер бэкап получился в 10 раз меньше, что подозрительно :)

А пока - начал извращения с частичными бэкапами (где проблемные таблицы исключены ключом -T )
Проблемные таблицы бэкапил отдельно в текстовый формат и ресторил psql-ем.

И вот прикол.
psql успешно залила в одну из этих таблиц ровно столько же, сколько в боевой базе, и выдала сообщение о дублирующемся pk и конкретное значение ключа. Прошёлся поиском по файлу бэкапа, дубля там нет :)
...
Рейтинг: 0 / 0
22.12.2015, 08:30
    #39134092
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
В целом удалось восстановить базу вышеуказанным образом.
Причём это работает только с текстовым форматом, с бинарным вылетает на трёх таблицах.
Ладно, пусть теперь работает так, но "что это было?" (c)
...
Рейтинг: 0 / 0
22.12.2015, 10:14
    #39134174
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
_avz,

Проверьте уникальность ключа в боевой базе:
Код: sql
1.
SELECT key1,key2,count(*) FROM tab GROUP BY key1,key2 HAVING count(*) > 1;


Были баги приводящие к поврежденным индексам.
...
Рейтинг: 0 / 0
22.12.2015, 11:26
    #39134249
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
vyegorov,

эт проверил сразу же.
даже в файле бэкапа дублей не было.
...
Рейтинг: 0 / 0
22.12.2015, 12:30
    #39134364
Lonepsycho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
_avz,

когда вы накатывали бэкап, таблицу очищяли? а то могли накатывать бэкап на существующие данные, в итоге дубли...
...
Рейтинг: 0 / 0
22.12.2015, 13:35
    #39134483
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
Lonepsycho, по моей схеме восстановление шло так:
0. dropdb
1. restore -C -s (только метаданные)
2. restore непроблемных таблиц, двоичный формат
3. psql проблемных таблиц, текстовый формат

на 3 шаге на одной из этих пробл.табл. psql и выдала сей мессидж, причём только для одной записи.
выходит, я что-то напутал и запустил один из скриптов 3 шага второй раз.

сейчас соберу всё в один батник и проверю.
...
Рейтинг: 0 / 0
22.12.2015, 13:38
    #39134493
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
...товарищи, есть объяснение, почему с двоичным форматом не прокатывает, а с текстовым - да ...?
...
Рейтинг: 0 / 0
22.12.2015, 14:25
    #39134600
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
_avzLonepsycho, по моей схеме восстановление шло так:
0. dropdb
1. restore -C -s (только метаданные)
2. restore непроблемных таблиц, двоичный формат
3. psql проблемных таблиц, текстовый формат

на 3 шаге на одной из этих пробл.табл. psql и выдала сей мессидж, причём только для одной записи.
выходит, я что-то напутал и запустил один из скриптов 3 шага второй раз.

сейчас соберу всё в один батник и проверю.

Код: sql
1.
SELECT * FROM pg_trigger WHERE tgenabled IN ('A','O') AND tgconstraint=0







так в текстовом надо лог ошибок писать. или -1 ставить. одно дело оно на копи опнулось. другое -- один инсерт не прошёл.
...
Рейтинг: 0 / 0
22.12.2015, 14:31
    #39134614
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
qwwq,

да, забыл. Ключик --disable-triggers - используется.
перед проблемными таблицами в psql alter table disable triggers all
...
Рейтинг: 0 / 0
22.12.2015, 14:38
    #39134635
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
выходит, я что-то напутал и запустил один из скриптов 3 шага второй раз.
сейчас соберу всё в один батник и проверю.
...проверил, отработало без ошибок. Значит тогда таки напутал
...
Рейтинг: 0 / 0
24.12.2015, 08:20
    #39136703
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
ОКТОГЕН_avz,
Ключик -Fc спасает, рекомендую.
Восстановление в несколько потоков - существенно быстрее
Позавчера, получив с ключом -Fc размер бэкапа в несколько раз меньше, я усомнился в его валидности и не стал проверять восстановление, а зря.

Сегодня руки дошли, проверил - restore отработало без ошибок.
Так что спасибо, буду использовать -Fc.

PS почему размер меньше выходит - я так понял, потому, что запись идёт в реально бинарном формате, в то время как при -Ft по факту текстом.
...
Рейтинг: 0 / 0
24.12.2015, 15:47
    #39137274
ОКТОГЕН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
_avz
Позавчера, получив с ключом -Fc размер бэкапа в несколько раз меньше, я усомнился в его валидности и не стал проверять восстановление, а зря.

Сегодня руки дошли, проверил - restore отработало без ошибок.
Так что спасибо, буду использовать -Fc.

PS почему размер меньше выходит - я так понял, потому, что запись идёт в реально бинарном формате, в то время как при -Ft по факту текстом.
Ещё попробуйте вместе с восстановлением из сделанного бэкапа указать ключик -j <N>
Где <N> - число потоков. Будет побыстрее.
...
Рейтинг: 0 / 0
25.12.2015, 06:46
    #39137759
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
ОКТОГЕН, спасибо, так и сделал.
...
Рейтинг: 0 / 0
28.12.2015, 17:22
    #39139539
Павел Лузанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
_avzПозавчера, получив с ключом -Fc размер бэкапа в несколько раз меньше, я усомнился в его валидности и не стал проверять восстановление, а зря.

Сегодня руки дошли, проверил - restore отработало без ошибок.
Так что спасибо, буду использовать -Fc.

PS почему размер меньше выходит - я так понял, потому, что запись идёт в реально бинарном формате, в то время как при -Ft по факту текстом.

Для формата custom (-Fc) по умолчанию включено сжатие.
Потому и меньше размер выходного файла.
Есть мнение , что встроенное сжатие работает очень медленно.
Возможно есть смысл его отключить (--compress=0), а вывод pg_dump отправлять на внешний, более быстрый архиватор.
...
Рейтинг: 0 / 0
30.12.2015, 12:50
    #39140586
_avz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
Павел Лузанов,

в час укладывается - пока ладно :)
...
Рейтинг: 0 / 0
30.12.2015, 16:50
    #39140742
Павел Лузанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
невосстановимый backup
_avz,

Кстати, если использовать формат directory (-Fd), то и выгрузку можно делать в несколько потоков.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / невосстановимый backup / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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