Understanding and controlling crash recovery
Crash recovery is the PostgreSQL subsystem that saves us should the server crash or fail as part of a system crash.
It's good to understand a little about it and what we can do to control it in our favor.
How to do it…
If PostgreSQL crashes, there will be a message in the server log with the severity level set to PANIC
. PostgreSQL will immediately restart and attempt to recover using the transaction log or the Write-Ahead Log (WAL).
The WAL consists of a series of files written to the pg_wal
subdirectory of the PostgreSQL data directory. Each change made to the database is recorded first in WAL, hence the name write-ahead
 log, which is a synonym for a transaction log. Note that the former is probably more accurate, since, in the WAL, there are also changes not related to transactions. When a transaction commits, the default (and safe) behavior is to force the...