Обичайният процес е:
pg_dumpall --globals-only
за получаване на потребители/роли/и т.н.pg_dump -Fc
за всяка база данни, за да получите хубав компресиран дъмп, подходящ за използване сpg_restore
.
Да, този вид е гадно. Наистина бих искал да преподавам pg_dump
за вграждане на pg_dumpall
изход в -Fc
изхвърля, но в момента, за съжаление, не знае как, така че трябва да го направите сами.
До PostgreSQL 11 имаше и неприятно предупреждение с този подход:Нито pg_dump
, нито pg_dumpall
в --globals-only
режимът би изхвърлил потребителския достъп GRANT
s в DATABASE
с. Така че почти трябваше да ги извлечете от каталозите или да филтрирате pg_dumpall
. Това е коригирано в PostgreSQL 11; вижте бележките по изданието
.
Трябва да знаете и за физическите резервни копия - pg_basebackup
, PgBarman и WAL архивиране, PITR и т.н. Те предлагат много „по-подробно“ възстановяване до минута или до отделна транзакция. Недостатъкът е, че те заемат повече място, могат да се възстановят само до същата версия на PostgreSQL на същата платформа и архивират всички таблици във всички бази данни без възможност за изключване на каквото и да било.