An important aspect of setting up a highly available database server is starting with a stable configuration that will not require a lot of future modifications. Even parameters that can be changed during the database operations can drastically alter its performance profile and behavior. Other settings may require a full database restart, which can lead to a short outage depending on the resiliency of the frontend application.
We want to avoid introducing instability into our PostgreSQL database from the very beginning. To that end, this recipe will explore common (and, perhaps, uncommon) configuration options to use in a highly available installation.