Every committed transaction is WAL logged to ensure durability. This ensures that your PostgreSQL instance can perform crash recovery and avoid losing any of its committed transactions. PostgreSQL writes the entire content of each disk page to WAL. along with row-level changes. when full_page_writes is set to ON. This is important for safe crash recovery. However, this could write more data into WALs.
Writing WALs to the same disk as the data directory that contains tables/indexes may add I/O bottlenecks to a busy transactional database. Thus, it is always recommended to move the WAL's directory to a new disk, if you have observed I/O waits in your server due to huge WAL generation (due to a lot of DMLs).
In this recipe, we will learn how to move the pg_wal directory that stores WAL segments to a different disk or a faster disk.
Getting ready
To move the WALs to a different directory, we must restart our PostgreSQL server. This may cause downtime...