The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

PostgreSQL: Automatización de Backups


Este es el Post #16 del Topic: Guía Práctica de PostgreSQL

SUGERENCIA:
Si has utilizado la base de datos dbadmision en ejercicios previos es mejor volver a crearla.
Descargar Script: DBAdmision.sql

El proceso de creación de backups en postgres se realiza por medio de pg_dump, y la automatización para su ejecución se puede lograr por medio de herramientas como las que se incluye en PGADMIN haciendo uso de los jobs, steps y schedules o mediante el sistema operativo, como veremos en este ejemplo.

1- CREACIÓN DE SCRIPT

Script para Linux: pg_backup.sh

#!/bin/bash
#————-Por: sAfOrAs—————-
PG_BIN=’/opt/PostgresPlus/8.4SS/bin/pg_dump’
PG_HOST=’localhost’
PG_PORT=’5432′
PG_DATABASE=’dbadmision’
PG_USER=’postgres’
export PGPASSWORD=’postgres’
PG_PATH=’/var/PGBACKUP’
FECHAYHORA=$(date +”%d-%m-%Y-%H-%M-%S”)
PG_FILENAME=”${PG_PATH}/${PG_DATABASE}-${FECHAYHORA}.backup”
${PG_BIN} -i -h ${PG_HOST} -p ${PG_PORT} -U ${PG_USER} -F c -b -v -f ${PG_FILENAME} ${PG_DATABASE}

Estableciendo Permisos para ejecutar el Script:

# chmod +x pg_backup.sh

Cambiando de propietario del script y directorios donde se guardarán los backups, el propietario debe ser el usuario postgres.

# chown postgres:postgres pg_backup.sh --Script
# chown -R postgres:postgres  /var/PGBACKUP' --Directorio de Backups

Script para Windows: pg_backup.bat

@echo off
::————-Por: sAfOrAs—————-
SET PG_BIN=C:\PostgresPlus\8.3R2AS\postgresstudio\pg_dump.exe
SET PG_HOST=localhost
SET PG_PORT=5432
SET PG_DATABASE=dbadmision
SET PG_USER=postgres
SET PGPASSWORD=postgres
SET PG_PATH=C:\PGBACKUP\
SET FECHAYHORA=%date:/=-%-%time:~0,8%
SET FECHAYHORA=%FECHAYHORA::=-%
SET FECHAYHORA=%FECHAYHORA: =0%
SET PG_FILENAME=%PG_PATH%\%PG_DATABASE%-%FECHAYHORA%.backup
%PG_BIN% -i -h %PG_HOST% -p %PG_PORT% -U %PG_USER% -F c -b -v -f %PG_FILENAME% %PG_DATABASE%

*Se debe establecer permisos de ejecución del script y derechos del usuario postgres sobre los directorios donde se almacenarán los backups y sobre el script.

2- AUTOMATIZACIÓN:

Automatización en linux: Por medio de crones.

# crontab -e
0 0 * 12 *  /home/usuario/pg_backup.sh

<<Guardar>> CTRL + O

<<Salir>> CRTL + X

Este script ejecuta pg_backup.sh del siguiente modo:

0: Minutos (00)

0: Horas (00)

*:Dias del mes (todos)

12 Mes (Diciembre)

* Dias de la semana (L,M,M,J,V,S,D)

Por lo tanto se ejecutará todos los dias de la semana durante el mes de Diciembre a las 00hh:00mm (Media Noche).

Automatización en Windows: Con taskschd – CONTROL SCHEDTASK o AT

SOBRE LAS VARIABLES DEL SCRIPT:

PG_BIN=Ubicacion de pg_dump, es el binario que realizará los backups

PG_HOST=dirección del host

PG_PORT=puerto del servidor

PG_DATABASE=nombre de la base de datos

PG_USER=nombre del usuario

PGPASSWORD=Contraseña del servidor: Es una variable especial registrado en el sistema , el nombre de esta variable debe permanecer inmutable en el sistema operativo.

About these ads

5 Respuestas a “PostgreSQL: Automatización de Backups

  1. Jhonny febrero 12, 2012 en 7:14 am

    Buenas, ¿Como puedo controlar el código de salida? ,.. para saber si es 0 o 1 y controlar si se ha hecho bien el backup.
    Saludos

  2. Anónimo febrero 8, 2012 en 9:04 am

    esto funciona para linux? porque me da este error

    /bin/bash^M: bad interpreter: No such file or directory

    • BeAsTiEuX febrero 8, 2012 en 11:07 am

      Si, debería funcionar perfectamente en linux si has ingresado los datos correctos para tu servidor.
      revisa el script, he notado que al publicarlo en el blog se han desconfigurado las comillas
      intenta corrigiendo las comillas, reemplaza ’ por ‘, y ” por “.
      Saludos.

  3. Pingback:PostgreSQL: Base de Datos « The::Beastieux

  4. Pingback:PostgreSQL: Automatización de Backups | DbRunas

No te quedes callado. Pregunta, Comenta, Comparte, Sígueme, Suscríbete, Déjame tu opinión... Soy Beastieux Zeroo...

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 507 seguidores

%d personas les gusta esto: