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 to do what we can 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 of PANIC
. PostgreSQL will immediately restart and attempt to recover using the transaction log or
Write-Ahead Log (WAL).
The WAL consists of a series of files written to the pg_xlog
subdirectory of the PostgreSQL data
directory. Each change made to the database is recorded first in WAL, hence the name "write-ahead" log, as a synonym of "transaction log". When a transaction commits, the default—and safe—behavior is to force the WAL records to disk. Should PostgreSQL crash, the WAL will be replayed, which returns the database to the point of the last committed transaction, and thus ensures the durability of any database changes.
Note
Database changes...