Revisar el modo archive en postgres

Categorías:

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.