Type: enum
Défaut: replica
Contexte: postmaster
Redémarrer: true
Valeurs: [minimal, replica, logical]

wal_level détermine la quantité d'informations écrite dans les journaux de transactions. wal_level détermine la quantité d'informations qui sera écrite dans les WAL. La valeur par défaut est replica, qui écrit suffisamment de données pour pouvoir utiliser l'archivage des WAL ainsi que la réplication, y compris exécuter des requêtes en lecture seule sur un serveur secondaire. minimal supprime toute la journalisation à l'exception des informations nécessaire pour pouvoir effectuer une récupération suite à un arrêt brutal ou un arrêt immédiat. Enfin, logical ajoute les informations nécessaires au support du décodage logique. Chaque niveau inclut les informations tracées dans les niveaux inférieurs. Ce paramètre peut seulement être configuré au lancement du serveur.

Au niveau minimal, no information is logged for permanent relations for the remainder of a transaction that creates or rewrites them. This can make operations much faster (see populate-pitr). Operations that initiate this optimization include:

  • CREATE TABLE AS
  • CREATE INDEX
  • ALTER ... SET TABLESPACE
  • CLUSTER
  • COPY dans des tables qui ont été créées ou tronquées dans la même transaction
  • CREATE TABLE
  • REFRESH MATERIALIZED VIEW (without CONCURRENTLY)
  • REINDEX
  • TRUNCATE
Mais, du coup, les journaux au niveau minimal ne contiennent pas suffisamment d'informations pour reconstruire les données à partir d'une sauvegarde de base et des journaux de transactions. Donc, les niveaux replica ou supérieurs doivent être utilisés pour activer l'archivage des journaux de transactions (archive_mode) et la réplication en flux.

Dans le niveau logical, les mêmes informations sont enregistrées que pour le mode replica. Des informations supplémentaires sont ajoutées pour permettre d'extraire les modifications logiques depuis les journaux de transactions. En utilisant le niveau logical, le volume des journaux de transactions va augmenter, tout particulièrement si plusieurs tables sont configurées pour REPLICA IDENTITY FULL et que de nombreux UPDATE et DELETE sont exécutés.

Dans les versions antérieures à la 9.6, ce paramètre autorise aussi les valeurs archive et hot_standby. Elles sont toujours acceptées mais sont converties silencieusement en replica.

Recommandations [EN]

Level replica is required for binary replication, and level logical is required for logical replication. This is a setting because raising the level adds more writes to the WAL, so if you’re not doing replication or archiving at all, set it to minimal.

Commentaires