Одним из способов является использование pg_dump
для генерации плоского дампа sql, который вы можете распаковать или как угодно. Это, безусловно, самый простой вариант, поскольку результаты могут быть переданы обратно в psql
для повторной загрузки базы данных, и, поскольку она также может экспортироваться в виде простого текста, вы можете просматривать или редактировать данные перед восстановлением, если это необходимо.
Следующий метод - временно закрыть вашу базу данных (или, если ваша файловая система поддерживает атомарные снимки, теоретически это может работать) и сделать резервную копию вашего каталога PostgreSQL data
.
На этой странице с сайта PostgreSQL также объясняется, как выполнять резервное копирование в онлайн-хранилище и восстановление на определенный момент времени, что, безусловно, является наиболее сложным в настройке, но также и оптимальным методом. Идея состоит в том, что вы выполняете базовое резервное копирование (которое вы можете делать каждый день, пару дней или неделю), запустив какой-то специальный SQL (pg_start_backup
и pg_stop_backup
) и сделаете (на уровне файловой системы) копию каталога базы данных. , База данных не отключается в течение этого времени, и все по-прежнему работает как обычно. С этого момента база данных генерирует журнал записи вперед (WAL) любых изменений, которые затем могут быть перенесены (автоматически базой данных) в любое место. Для восстановления вы берете базовую резервную копию, загружаете ее в другой экземпляр базы данных, а затем просто воспроизводите все файлы WAL. Таким образом, вы также можете выполнить восстановление на определенный момент времени, не воспроизводя все журналы.