Можно ли восстановить только новые изменения из последнего дампа PostgreSQL? - PullRequest
0 голосов
/ 11 декабря 2019

Теперь восстановление из резервной копии / дампа занимает около 20 минут,

pg_restore  --create --exit-on-error --verbose  -U postgres --dbname=postgres  --verbose --clean -F directory mydb.dump

Q: Возможно ли восстановить только новые изменения (чтобы сэкономить время) из последнего дампа PostgreSQL, когда кто-то изменил базу данных или добавил новые данные?

-

Я знаю, что обычно ppl использует сценарии sql и применяет их к своимдб. Но если нет сценариев. Потому что БД изменен снаружи.

Ответы [ 2 ]

1 голос
/ 11 декабря 2019

Нет, pg_restore не может узнать, что это за новые изменения. Возможно, он может полагаться на временные метки, которые вы храните в своих таблицах, но он не знает, как это сделать, вам придется написать код, чтобы научить этому.

Звучит так, как будто вы действительно ищетеиспользуйте физическое резервное копирование, а затем воспроизведение WAL.

0 голосов
/ 11 декабря 2019

В pg_restore эта поддержка не поддерживается, но из PostgreSQL v12 вы можете использовать pg_dump с параметрами --inserts --on-conflict-do-nothing. Такой дамп восстановит только те строки, которые не нарушают первичный ключ или ограничение уникальности таблицы, к которой вы восстанавливаете.

...