El archive wal en postgres nos permite disponer de una base de datos íntegra y tolerante a fallos en cualquier momento, además también nos permite implementar réplicas en otros servidores postgres.
Para verificar el estado del archive wal podemos ejecutar la siguiente sentencia.
postgres=# show archive_mode; archive_mode -------------- off (1 row) postgres=#
En este caso tenemos que el modo se encuentra desactivado.
En el caso que queramos activarlo, es prudente o recomendable crear un directorio que almacene los archivos wal.
-bash-4.2$ mkdir /var/lib/pgsql/12/backups/wals -bash-4.2$ cd /var/lib/pgsql/12/backups/wals/ -bash-4.2$ pwd /var/lib/pgsql/12/backups/wals -bash-4.2$
Luego de crear el directorio que almacenará los archivos wal, volvemos al prompt de postgres para habilitar la generación de wals.
postgres=# ALTER SYSTEM SET archive_mode to 'ON'; ALTER SYSTEM postgres=#
Luego instruimos a postgres para que escriba los archivos en el directorio que hemos creado previamente.
postgres=# ALTER SYSTEM SET archive_command TO 'cp %p /var/lib/pgsql/12/backups/wals/archive%f'; ALTER SYSTEM postgres=#
Como usuario root o adminsitrador, reiniciamos el servicio de postgres para que se tomen los cambios.
root@pmx1 # systemctl restart postgresql-12.service root@pmx1 #
Para verificar que todo funcione correctamente, forzamos la generación de un wal con el siguiente comando sql
postgres=# select pg_switch_wal(); pg_switch_wal --------------- 0/43C34658 (1 row) postgres=#
Verificamos a nivel de sistema de archivos
-bash-4.2$ ls -ltr total 16384 -rw------- 1 postgres postgres 16777216 Aug 2 10:24 archive000000010000000000000043 -bash-4.2$
Con esto hemos validado la generación de los wals como respuesta a la activación del archive mode. Verificamos nuevamente que el modo se encuentre activo.
postgres=# show archive_mode; archive_mode -------------- on (1 row) postgres=#
La anterior sentencia no es necesaria pero si útil cuando queremos saber si el modo se encuentra activo o no. Sin embargo con la generación de los archivos wal, estamos seguros que el sistema ha activado el modo.