Обсуждение: Backups with filesystem snapshots
If I take an instantaneous filesystem-level snapshot of the postgres data directory underneath a running postgres server, is that a safe backup without doing any pg_start_backup/pg_stop_backup ? It seems like it should be, so long as I get an atomic snapshot that includes both data and wal, because starting up from that snapshot should look the same as recovering from an unclean postgres shutdown due to a kernel panic.
On Mon, Aug 11, 2025 at 9:01 AM Nick Cleaton <nick@cleaton.net> wrote:
If I take an instantaneous filesystem-level snapshot of the postgres
data directory underneath a running postgres server, is that a safe
backup without doing any pg_start_backup/pg_stop_backup ?
It seems like it should be, so long as I get an atomic snapshot that
includes both data and wal, because starting up from that snapshot
should look the same as recovering from an unclean postgres shutdown
due to a kernel panic.
We once restored a whole-system VMware snapshot to a new VM (new IP address and everything). When I logged in, PG started up without a hiccup; it took a couple of minutes while WALs rolled forward, but that's to be expected.
Postgresql didn't (and doesn't) know anything about when snapshots are taken.
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!
On Mon, Aug 11, 2025 at 9:01 AM Nick Cleaton <nick@cleaton.net> wrote:
If I take an instantaneous filesystem-level snapshot of the postgres
data directory underneath a running postgres server, is that a safe
backup without doing any pg_start_backup/pg_stop_backup ?
Safe, yes[*], but not particularly recommended except for special cases, like spinning up a fast QA cluster. For backups, use a Postgres-aware battle tested system like pgBackRest that offers more flexibility and more safeguards.
* Assuming your hardware/OS drivers are being honest with you about fsync
starting up from that snapshot should look the same as recovering from an unclean postgres shutdown
due to a kernel panic.
Yes, for all practical purposes it would be identical. Technically more similar to pulling the plug on the server. :)
Cheers,
Greg
--
Crunchy Data - https://www.crunchydata.com
Enterprise Postgres Software Products & Tech Support
On Mon, Aug 11, 2025 at 12:41:12PM -0400, Greg Sabino Mullane wrote: > On Mon, Aug 11, 2025 at 9:01 AM Nick Cleaton <nick@cleaton.net> wrote: > > If I take an instantaneous filesystem-level snapshot of the postgres > data directory underneath a running postgres server, is that a safe > backup without doing any pg_start_backup/pg_stop_backup ? > > > Safe, yes[*], but not particularly recommended except for special cases, like > spinning up a fast QA cluster. For backups, use a Postgres-aware battle tested > system like pgBackRest that offers more flexibility and more safeguards. > > * Assuming your hardware/OS drivers are being honest with you about fsync > > > starting up from that snapshot should look the same as recovering from an > unclean postgres shutdown > due to a kernel panic. > > > Yes, for all practical purposes it would be identical. Technically more similar > to pulling the plug on the server. :) Also, be careful that any tablespaces are also in the same snapshot. -- Bruce Momjian <bruce@momjian.us> https://momjian.us EDB https://enterprisedb.com Do not let urgent matters crowd out time for investment in the future.