Para realizar un respaldo a nuestra base de datos postgres y utilizando el control de versiones debemos crear un repositorio y usuario único de svn quien representara al servidor al momento de realizar cambios en los archivos.
Ya teniendo el repositorio creado para el respaldo de base de datos (llamado svnprueba), el usuario principal SVN para el servidor (llamado serveruser), debemos primero seguir estos pasos:
Ir a la siguiente dirección: dando a entender que en esta dirección tendremos la carpeta de respaldo de la base de datos
Ahora realizaremos un checkoutcon el repositorio creado anteriormente y creando la carpeta backup
Ahora vamos a darle permisos a la carpeta backup y consultamos los archivos para verificar que tenemos una versión de svn
Debemos crear el archivo sh donde están los script para generar el respaldo de la base de datos dentro de la carpeta backup.
vacuumdb -U db_user -h localhost -d database_name -f -z -v
pg_dump -U db_user -h localhost -F c -b -v -f ${NAME} database_name
return_code=$?
if [ $return_code -ne 0 ]
then
echo ‘Error en el backup. Compruebe: usuario y permisos’
else
gzip -f *.dmp
echo ‘Backup realizado correctamente. Archivo’ ${DIR}/${NAME}.gz
fi
echo ${FECHA} ‘ Reiniciando la base de datos’
/etc/init.d/postgresql-8.3 stop
/etc/init.d/postgresql-8.3 start
nano /var/lib/psql/backup/prueba.log
chown postgres /var/lib/psql/backup/prueba.sh
chmod +x /var/lib/psql/backup/prueba.sh
Debemos colocar la clave root, después usuario y contraseña del usuario del servidor, que el cual configuramos al principio del manual llamado serveruser
Despues de crear nuestro script, debemos configurar el crom del sistema operativo, escribimos en consola la siguiente dirección:
Ahora colocaremos las condiciones del crom cuyas descripciones son las siguientes:
m
|
Minuto. Determina en qué minuto de la hora será ejecutado el comando. Este valor estará entre 0 y 59.
|
h
|
Hora. Controla la hora del día en que se ejecutará el comando. Este valor estará entre 0 y 23, siendo 0 medianoche.
|
dom
|
Día del mes a ejecutar el comando. Si ponemos aquí un 10, el comando se ejecutará solamente los días 10 de cada mes establecido, a la hora y minuto establecidos.
|
mon
|
Mes. Especificaremos qué mes queremos que se ejecute el comando.
|
dow
|
Día de la semana. De 0 a 7, donde 0 es domingo, 1 es lunes… 6 es sábado y 7 otra vez domingo. Semana anglosajona: de 0 a 6. Nuestra semana: 1 a 7.
|
command
|
El comando a ejecutar. Como comando se entiende cualquier comando, programa o script que podamos escribir en la línea de comandos.
|
A continuación podemos ofrecer los siguientes ejemplos:
30 12 * * *
|
Cada día del año a las 12:30
|
0 22 * * 6
|
Todos los domingos del año a las 22:00
|
0 */8 * * 1-5
|
Cada 8 horas (en punto), de lunes a viernes.
|
0 */8 * * 1-5
|
Cada 8 horas (en punto), de lunes a viernes.
|
0 0 * 1-3 1,5,6
|
Todos los lunes, viernes y sábados a medianoche desde enero hasta marzo.
|
Usamos * si deseamos dejar los calores en nulo.
La sintaxis por consola es la siguiente:
0 3 * * * /var/lib/psql/backup/prueba.sh >> /var/lib/psql/backup/prueba.log 2>&1
Esta sintaxis describe que el cron se ejecutara todos los días a las 3:00 am donde se leera el scrip ubicado en /var/lib/psql/backup/prueba.sh y se sobreescribe el log ubicado en /var/lib/psql/backup/prueba.log donde el log requiere de la ejecución del archivo .sh (2>&1)
Para verificar que nuestro respaldo esta correcto podemos verificar por el siguiente comando:
Si vemos que no se realize el respaldo, ó sencillamente no corre el crom podemos consultar el log