En una forma rápida, podemos lanzar este proceso:
pg_dump -h $MAQUINA -U $USER -d $DATABASE -Fd -j `nproc` -f $DESTINO
Las variables son autorreferentes, con lo que la gracia de este comando se encuentra en la opción -Fd (obligatoria para que use diferentes cores), que realiza el dump en un directorio en lugar de un archivo; y la opción -j, que refiere al número de procesos que se lanzan simultáneamente. En este caso, hacemos uso de lo que devuelve
nproc
para levantar tantos procesos como núcleos.Un pequeño script de backup de base de datos local (perfecto para meter en un cronjob del usuario postgres) sería:
#!/bin/bash ## This script will create a backup for each database listed in the DATABASES variable ## Use as postgres user or add the -U [username] to the pg_dump line DATABASES="template1 db other_db" CORES=`nproc` TARGET_FOLDER=/var/backups for DATABASE in $DATABASES; do mkdir -p $TARGET_FOLDER/$DATABASE pg_dump -d $DATABASE -Fd -j $CORES -f $TARGET_FOLDER/$DATABASE done
No hay comentarios:
Publicar un comentario