|
восстановиться из сохраненых wal после pg_resetwal
|
|||
---|---|---|---|
#18+
Здраствуйте Подскажите пожалуйста как восстановить БД на определенное время после того как: 1) были проблемы с wal-файлами 2) запуск pg_resetwal на контрольную точку на сутки назад из-за 1) 3) запуск БД 4) данные остались суточной давности 5) удалось получить копии wal-файлов Как не потерять сутки работ пользователей? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2019, 23:57 |
|
восстановиться из сохраненых wal после pg_resetwal
|
|||
---|---|---|---|
#18+
Дополнение: 1) бэкап есть 4-х суточной давности 2) БД не стартовала и требовалось Найти и сбросить поврежденный xlog-файл 3) Провела операции: pg_controldata $PGDATA | grep -i NextOID pg_controldata $PGDATA | grep -i NextXID pg_resetwal -o 11111111 -x 22222222 -f $PGDATA Журнал предзаписи сброшен на более чем 2 суток назад :-( 4) на сервере нашла копии файлов из pg_wal более свежие, полусуточной давности Можно ли из них восстановить данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 00:09 |
|
восстановиться из сохраненых wal после pg_resetwal
|
|||
---|---|---|---|
#18+
Postgres Pro Standard 10 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 00:14 |
|
восстановиться из сохраненых wal после pg_resetwal
|
|||
---|---|---|---|
#18+
nins3) запуск БД Никак. Более того учтите, что у вас и сейчас данные непонятно какие, а не суточной давности. Потому что именно это resetwal и предназначен делать. Тем более в -f режиме. Цитируя core разработчика postgresql: Michael PaquierIt is so easy to screw things up with pg_resetwal that we ought to rename it pg_please_corrupt_my_data. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 00:26 |
|
восстановиться из сохраненых wal после pg_resetwal
|
|||
---|---|---|---|
#18+
Стало быть я могу только восстановиться из бэкапа и потерять 3 суток работы? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 00:39 |
|
восстановиться из сохраненых wal после pg_resetwal
|
|||
---|---|---|---|
#18+
И не поможет recovery.conf ? https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=395957&msg=6153719 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 00:41 |
|
восстановиться из сохраненых wal после pg_resetwal
|
|||
---|---|---|---|
#18+
БД остановлена была сразу после старта и проверки, что данные за сутки пропали. Может скопировать все файлы куда-нибудь, а wal-файлы подложить, создать $PGDATA/recovery.conf с содержанием: авторcp путь_до_директории_где_лежат_найденные_wal_файлы/%f %p' и стартовать БД? ОС Linux ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 01:03 |
|
восстановиться из сохраненых wal после pg_resetwal
|
|||
---|---|---|---|
#18+
Возможно возникло недопонимание. pg_resetwal сбросил журнал предзаписи на более древний, зафиксированный и существовавший момент времени. БД стартанула. Данные читались. И тут же БД была остановлена. Ситуация, когда сбрасывался журнал на нечто не существующее - ее просто нет. Так все-таки, можно ли в этом случае подложив найденные забэкапленные wal файлы и, создав $PGDATA/recovery.conf с нужным содержанием, восстановить данные? В директории pg_exact лежат файлы на ту же дату, что и найденные, забэкапленные wal-файлы. И еще вопрос, если файлы из директории $PGDATA были просто скопированы в другое место на всякий случай, и если не получится ничего, то я просто верну их на место и будет ли БД в состоянии как сейчас? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 02:20 |
|
восстановиться из сохраненых wal после pg_resetwal
|
|||
---|---|---|---|
#18+
вот это поможет? 24.3. Непрерывное архивирование и восстановление на момент времени (Point-in-Time Recovery, PITR) https://postgrespro.ru/docs/postgrespro/10/continuous-archiving ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 03:50 |
|
восстановиться из сохраненых wal после pg_resetwal
|
|||
---|---|---|---|
#18+
Восстанавливаю из бэкапа. Вывод: следите за дисками, коллеги. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 07:01 |
|
восстановиться из сохраненых wal после pg_resetwal
|
|||
---|---|---|---|
#18+
ninsвот это поможет? 24.3. Непрерывное архивирование и восстановление на момент времени (Point-in-Time Recovery, PITR) Поможет. Если у вас есть basebackup от некоторого момента в прошлом + все WAL от начала снятия basebackup до необходимого места восстановления. Повреждённый datadir после аварии для этого не годится. Бекапы вещь такая, о которой надо заботиться заранее. ninsСитуация, когда сбрасывался журнал на нечто не существующее - ее просто нет. Есть. После pg_resetwal в datadir неконсистентная каша гарантирована. Именно это и предназначен делать pg_resetwal. Непойми что в данных, но как-то запустить и попытаться вытащить хоть что-нибудь и руками потом разбираться, что из этого имеет смысл. Неудачное название утилиты получилось. Надо было называть pg_please_corrupt_my_data. Уж сколько всего люди сломали отчего полагая, что это какая-то магия, а не прямая инструкция сломать весь кластер. ninspg_resetwal сбросил журнал предзаписи на более древний, зафиксированный и существовавший момент времени И сломали транзакционную видимость до невосстановимого состояния. Это by design. resetwal прямым текстом обещает в мануале, что после его выполнения вы не получите консистентного состояния. Эту утилиту можно выполнять только и исключительно имея копию datadir. И, конечно, с полным пониманием что это такое, что произойдёт и как это отразится на механике работы СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 09:12 |
|
|
start [/forum/search_topic.php?author=kokowaah&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 864ms |
total: | 1057ms |
0 / 0 |