|
восстановление из логов
|
|||
---|---|---|---|
#18+
привет postgresql11 подскажите, как правильно делать восстановление на момент времени? делаю архив логов вот настройки postgres.conf =========================== Код: css 1. 2. 3. 4.
в тестовой бд - удаляю запись /bkp/logs/ ========== Код: css 1. 2.
в recovery.conf хочу вернуться на 12 21:52, когда запись ещё была Код: css 1. 2.
в итоге recovery.conf переименовался recovery.done, но восстановление на то время не случилось, т.е. удалённая запись не восстановилась ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 09:15 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
parallax113, какой basebackup использовали для восстановления? Ну и смотрите в лог. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 10:28 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
Melkij parallax113, какой basebackup использовали для восстановления? Ну и смотрите в лог. pg_basebackup не делаю, просто редактирую recovery.conf чтобы вернуться на состояние вчера Код: css 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
вот содержимое /bkp/logs: Код: css 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
зачем идёт обращение к 0000000E0000000000000032, если лог который указывает на время это 0000000D000000000000002D ? или что-то не работает или я чего-то не понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 11:12 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
parallax113 Melkij parallax113, какой basebackup использовали для восстановления? Ну и смотрите в лог. pg_basebackup не делаю, просто редактирую recovery.conf чтобы вернуться на состояние вчера или что-то не работает или я чего-то не понимаю Это так не работает. Восстановиться "взад" без бекапа невозможно. Вчерашний бекап + все архивлоги до текущего момента = возможность восстановиться с точки бекапа на любой точку до текущего момента. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 11:28 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
подсовываю во такой backup_label : Код: css 1. 2. 3. 4. 5. 6. 7.
Код: css 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61.
вот полный /bkp/logs Код: css 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 11:28 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
mefman parallax113 пропущено... pg_basebackup не делаю, просто редактирую recovery.conf чтобы вернуться на состояние вчера или что-то не работает или я чего-то не понимаю Это так не работает. Восстановиться "взад" без бекапа невозможно. Вчерашний бекап + все архивлоги до текущего момента = возможность восстановиться с точки бекапа на любой точку до текущего момента. т.е. разворачиваю базовую копию и выставляю нужное время в recovery.conf? спасибо, я понял ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 11:34 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
parallax113 mefman пропущено... Это так не работает. Восстановиться "взад" без бекапа невозможно. Вчерашний бекап + все архивлоги до текущего момента = возможность восстановиться с точки бекапа на любой точку до текущего момента. т.е. разворачиваю базовую копию и выставляю нужное время в recovery.conf? да. так. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:05 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
такой ещё вопрос: есть такие архивные копии логов Код: css 1. 2. 3. 4. 5. 6. 7.
здесь я могу восстановиться только с позиции не позднее 130000000000000029.00000028.backup, т.е. в recovery нужно указывать 13000000000000002A, 13000000000000002B или 13000000000000002С ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 12:57 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
parallax113 т.е. в recovery нужно указывать 13000000000000002A, 13000000000000002B или 13000000000000002С ? не понял. что значит указывать? recovery_target_time - время выставите. Выставлять время - рекомендованный вариант в ПЖ. В отличии от оракла, где рекомендуется целью восстановления ставить scn ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 14:15 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
mefman parallax113 т.е. в recovery нужно указывать 13000000000000002A, 13000000000000002B или 13000000000000002С ? не понял. что значит указывать? recovery_target_time - время выставите. Выставлять время - рекомендованный вариант в ПЖ. В отличии от оракла, где рекомендуется целью восстановления ставить scn имею ввиду, что например не получиться сделать восстановление позже START TIME: 2020-07-13 13:46:23 +04, которое указано в backup_label базового архива, даже если после этого времени был сброс логов в архив(archive_command) получается нужно опять делать базовый архив(pg_basebackup) и восстанавливаться уже от него? правильно понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 17:03 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
parallax113 mefman пропущено... не понял. что значит указывать? recovery_target_time - время выставите. Выставлять время - рекомендованный вариант в ПЖ. В отличии от оракла, где рекомендуется целью восстановления ставить scn имею ввиду, что например не получиться сделать восстановление позже START TIME: 2020-07-13 13:46:23 +04, которое указано в backup_label базового архива, даже если после этого времени был сброс логов в архив(archive_command) получается нужно опять делать базовый архив(pg_basebackup) и восстанавливаться уже от него? правильно понимаю? Не получится сделать восстановления на РАНЬШЕ ЧЕМ 'START TIME: 2020-07-13 13:46:23 +04, которое указано в backup_label'; ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 17:10 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
parallax113, Кажется есть проблема в понимании происходящего при восстановлении по WAL - это не undo, где мы берём базу и отменяет изменения. Это наоборот redo, где мы берём достаточно старый basebackup и к нему применяем все wal до интересующей точки восстановления. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2020, 17:24 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
Melkij parallax113, Кажется есть проблема в понимании происходящего при восстановлении по WAL это точно правильно понимаю, что когда я сделал базовый архив, восстановиться я смогу только на него, т.е. на последнюю запечатлённую им транзакцию, но не раньше, плюс на все последующие логи которые будут копиться в течении дня? Maxim Boguk Не получится сделать восстановления на РАНЬШЕ ЧЕМ 'START TIME: 2020-07-13 13:46:23 +04, которое указано в backup_label'; смотрите: 1. в 09:07 внёс запись№1 в бд 2. сделал pg_switch_log() 3. сделал pg_basebackup -D /backup/file_backup --wal-method=none -F t -z -U postgres -w -c fast -l "test backup" 4. в 10:20 внёс запись№2 5. сделал pg_switch_log() пробую восстановиться с базового бекапа. 1. в recovery.conf казываю время 9:30 и восстанвливается только запись№1, но мне предложили ещё сделать pg_wal_replay_resume() (тут как я понял не важно какое время указываю, данные восстановятся последние на момент бекапа) 2. второй раз восстанавливаюсь и в recovery.conf пишу время 10:30, восстанавливаются записи№1 и №2 в 11:05 в базу вношу ещё запись№3, делаю pg_switch_log() опять восстанавливаюсь с базового архива на время 11:20, но запись№3 не восстанавливается что я делаю не так? по идее то она должна была восстановиться ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 10:41 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
parallax113 что я делаю не так? Таки что-то делаешь не так. Поскольку вероятность нарушения принципа долговечности единожды зафиксированной транзакции в СУБД стремится к 0. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 11:28 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
mefman parallax113 что я делаю не так? Таки что-то делаешь не так. Поскольку вероятность нарушения принципа долговечности единожды зафиксированной транзакции в СУБД стремится к 0. мне не понятно как это работает: сегодня утром добавил запись, переключил сегмент(switch_wal) вoсстановился с timeline = "latest" - всё хорошо далее создал индекс внёс ещё данные и повторно восстановился на latest, но восстановились данные за вчера в логе пишет что последняя транзакция была вчера это или я чего-то не понимаю или что-то не правильно работает может ли 1С-совский 11-ый постгрес фокусы такие делать ? ещё при восстановлении в pg_log пишет, что не может найти какие-то файлы history и ещё какие-то, хотя они вроде есть ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 09:53 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
parallax113 mefman пропущено... Таки что-то делаешь не так. Поскольку вероятность нарушения принципа долговечности единожды зафиксированной транзакции в СУБД стремится к 0. мне не понятно как это работает: сегодня утром добавил запись, переключил сегмент(switch_wal) вoсстановился с timeline = "latest" - всё хорошо далее создал индекс внёс ещё данные и повторно восстановился на latest, но восстановились данные за вчера в логе пишет что последняя транзакция была вчера это или я чего-то не понимаю или что-то не правильно работает может ли 1С-совский 11-ый постгрес фокусы такие делать ? ещё при восстановлении в pg_log пишет, что не может найти какие-то файлы history и ещё какие-то, хотя они вроде есть Поскольку вы ни команды которыми все делали ни recovery.conf не показали в полной последовательности - вам помочь не реально. Основной вопрос а что значит 'и повторно восстановился на latest' - какая именно была процедура? скорее всего именно там у вас косяк какой то ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 10:06 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
Maxim Boguk Поскольку вы ни команды которыми все делали ни recovery.conf не показали в полной последовательности - вам помочь не реально. Основной вопрос а что значит 'и повторно восстановился на latest' - какая именно была процедура? скорее всего именно там у вас косяк какой то postgresql.conf Код: css 1. 2. 3.
предварительно бекап сделал такой коммандой: pg_basebackup -D /backup/file_backup --port=5432 --wal-method=none -F t -z -U postgres -w -c fast -l "test backup" backup.lable START WAL LOCATION: 0/5000028 (file 000000010000000000000005) CHECKPOINT LOCATION: 0/5000060 BACKUP METHOD: streamed BACKUP FROM: master START TIME: 2020-07-15 11:22:12 +04 LABEL: test backup START TIMELINE: 1 $ ll /backup/logs/ total 262184 Jul 15 11:19 000000010000000000000003 Jul 15 11:22 000000010000000000000004 Jul 15 11:22 000000010000000000000005 Jul 15 11:22 000000010000000000000005.00000028.backup Jul 15 11:28 000000010000000000000006 Jul 15 11:49 000000010000000000000007 Jul 15 12:01 000000020000000000000008 Jul 15 11:50 00000002.history Jul 15 12:08 000000030000000000000009 Jul 15 12:07 00000003.history Jul 15 12:14 000000040000000000000006 Jul 15 12:13 00000004.history Jul 15 12:16 000000050000000000000007 Jul 15 12:15 00000005.history Jul 15 12:32 000000060000000000000008 Jul 15 12:34 000000060000000000000009 Jul 15 12:18 00000006.history Jul 15 12:38 000000070000000000000008 Jul 15 12:38 00000007.history Jul 15 12:40 000000080000000000000008 Jul 15 12:40 000000080000000000000009 Jul 15 12:39 00000008.history Jul 15 12:43 000000090000000000000008 Jul 15 12:43 000000090000000000000009 Jul 15 12:41 00000009.history Jul 15 12:44 0000000A.history добавляю запись в таблицу Код: css 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
смотрю текущий лог: Код: css 1. 2. 3. 4. 5.
сбрасываю его в архив: Код: css 1. 2. 3. 4. 5.
текущий сменился Код: css 1. 2. 3. 4. 5.
восстанавливаю на последнюю запись останавливаю постгрес Код: css 1.
удаляю всё из каталога с бд Код: css 1.
разворачиваю базовый архив Код: css 1.
Код: css 1. 2.
создаю recovery Код: css 1. 2.
стартую постгрес Код: css 1.
записи №4 в бд нет Код: css 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
pg_log/postgresql-Wed.log < 2020-07-15 12:54:50.515 +04 >СООБЩЕНИЕ: работа системы БД была прервана; последний момент работы: 2020-07-15 11:22:12 +04 < 2020-07-15 12:54:50.584 +04 >СООБЩЕНИЕ: начинается восстановление точки во времени до 2020-07-15 12:50:00+04 < 2020-07-15 12:54:50.608 +04 >СООБЩЕНИЕ: файл журнала "000000010000000000000005" восстановлен из архива < 2020-07-15 12:54:50.638 +04 >СООБЩЕНИЕ: запись REDO начинается со смещения 0/5000028 < 2020-07-15 12:54:50.640 +04 >СООБЩЕНИЕ: согласованное состояние восстановления достигнуто по смещению 0/5000130 < 2020-07-15 12:54:50.640 +04 >СООБЩЕНИЕ: система БД готова к подключениям в режиме "только чтение" < 2020-07-15 12:54:50.663 +04 >СООБЩЕНИЕ: файл журнала "000000010000000000000006" восстановлен из архива < 2020-07-15 12:54:50.711 +04 >СООБЩЕНИЕ: файл журнала "000000010000000000000007" восстановлен из архива cp: не удалось выполнить stat для «/backup/logs/000000010000000000000008»: Нет такого файла или каталога < 2020-07-15 12:54:50.740 +04 >СООБЩЕНИЕ: записи REDO обработаны до смещения 0/7000140 < 2020-07-15 12:54:50.741 +04 >СООБЩЕНИЕ: последняя завершённая транзакция была выполнена в 2020-07-15 11:28:22.52175+04 < 2020-07-15 12:54:50.767 +04 >СООБЩЕНИЕ: файл журнала "000000010000000000000007" восстановлен из архива < 2020-07-15 12:54:50.802 +04 >СООБЩЕНИЕ: файл журнала "00000002.history" восстановлен из архива < 2020-07-15 12:54:50.812 +04 >СООБЩЕНИЕ: файл журнала "00000003.history" восстановлен из архива < 2020-07-15 12:54:50.817 +04 >СООБЩЕНИЕ: файл журнала "00000004.history" восстановлен из архива < 2020-07-15 12:54:50.821 +04 >СООБЩЕНИЕ: файл журнала "00000005.history" восстановлен из архива < 2020-07-15 12:54:50.825 +04 >СООБЩЕНИЕ: файл журнала "00000006.history" восстановлен из архива < 2020-07-15 12:54:50.830 +04 >СООБЩЕНИЕ: файл журнала "00000007.history" восстановлен из архива < 2020-07-15 12:54:50.835 +04 >СООБЩЕНИЕ: файл журнала "00000008.history" восстановлен из архива < 2020-07-15 12:54:50.839 +04 >СООБЩЕНИЕ: файл журнала "00000009.history" восстановлен из архива < 2020-07-15 12:54:50.852 +04 >СООБЩЕНИЕ: файл журнала "0000000A.history" восстановлен из архива cp: не удалось выполнить stat для «/backup/logs/0000000B.history»: Нет такого файла или каталога < 2020-07-15 12:54:50.857 +04 >СООБЩЕНИЕ: выбранный ID новой линии времени: 11 < 2020-07-15 12:54:50.913 +04 >СООБЩЕНИЕ: восстановление архива завершено cp: не удалось выполнить stat для «/backup/logs/00000001.history»: Нет такого файла или каталога < 2020-07-15 12:54:51.027 +04 >СООБЩЕНИЕ: система БД готова принимать подключения $ ll /backup/logs/ total 294956 Jul 15 11:19 000000010000000000000003 Jul 15 11:22 000000010000000000000004 Jul 15 11:22 000000010000000000000005 Jul 15 11:22 000000010000000000000005.00000028.backup Jul 15 11:28 000000010000000000000006 Jul 15 11:49 000000010000000000000007 Jul 15 12:01 000000020000000000000008 Jul 15 11:50 00000002.history Jul 15 12:08 000000030000000000000009 Jul 15 12:07 00000003.history Jul 15 12:14 000000040000000000000006 Jul 15 12:13 00000004.history Jul 15 12:16 000000050000000000000007 Jul 15 12:15 00000005.history Jul 15 12:32 000000060000000000000008 Jul 15 12:34 000000060000000000000009 Jul 15 12:18 00000006.history Jul 15 12:38 000000070000000000000008 Jul 15 12:38 00000007.history Jul 15 12:40 000000080000000000000008 Jul 15 12:40 000000080000000000000009 Jul 15 12:39 00000008.history Jul 15 12:43 000000090000000000000008 Jul 15 12:43 000000090000000000000009 Jul 15 12:41 00000009.history Jul 15 12:49 0000000A0000000000000008 Jul 15 12:50 0000000A0000000000000009 Jul 15 12:44 0000000A.history Jul 15 12:54 0000000B.history ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 12:12 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
parallax113 < 2020-07-15 12:54:50.663 +04 >СООБЩЕНИЕ: файл журнала "000000010000000000000006" восстановлен из архива < 2020-07-15 12:54:50.711 +04 >СООБЩЕНИЕ: файл журнала "000000010000000000000007" восстановлен из архива cp: не удалось выполнить stat для «/backup/logs/000000010000000000000008»: Нет такого файла или каталога Внимание на запрошенный timeline. И как по листингу /backup/logs/ видно - всё верно, в этом тайлайне нет такого сегмента. См. recovery_target_timeline ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 12:29 |
|
восстановление из логов
|
|||
---|---|---|---|
#18+
Melkij Внимание на запрошенный timeline. И как по листингу /backup/logs/ видно - всё верно, в этом тайлайне нет такого сегмента. См. recovery_target_timeline а как тогда его восстановить? если на момент записи был сегмент 0000000A0000000000000008, который попал в архив после смены pg_switch_wal() почему идёт обращение к 000000010000000000000008 которого нет ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 13:32 |
|
|
start [/forum/topic.php?fid=53&msg=39979907&tid=1994590]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 128ms |
0 / 0 |