Una de las necesidades al trabajar con una base de datos postgres, es como ejecutar de forma automática las copias de seguridad de la base de datos. a Continuación indico unos pasos que pueden seguir para lograr este objetivo.
1. Crear un archivo .Bat en el cual se escribirán las sentencias que nos ayudarán a generar nuestra copia automatica. Las sentencias para esto a continuación las describo.
@echo off
color 30
rem
rem Ejemplo de manejo de la fecha y hora actual - v2008-03-15
rem
rem Juego de caracteres ISO-8859-1 (Latin 1)
chcp 28591 > NUL
setlocal
set FECHA_ACTUAL=%DATE%
set HORA_ACTUAL=%TIME%
set ANO=%FECHA_ACTUAL:~6,4%
set MES=%FECHA_ACTUAL:~3,2%
set DIA=%FECHA_ACTUAL:~0,2%
set HORA=%HORA_ACTUAL:~0,2%
set MINUTOS=%HORA_ACTUAL:~3,2%
set SEGUNDOS=%HORA_ACTUAL:~6,2%
set CENTESIMAS=%HORA_ACTUAL:~9,2%
rem Si la hora tiene un sólo dígito, reemplazamos el espacio inicial por cero
set HORA=%HORA: =%
if %HORA% LSS 10 set HORA=0%HORA%
rem echo Fecha: %FECHA_ACTUAL%
rem echo Hora: %HORA_ACTUAL%
echo.
rem echo Día: %DIA%
rem echo Mes: %MES%
rem echo Año: %ANO%
echo.
rem echo Hora: %HORA%
rem echo Minutos: %MINUTOS%
rem echo Segundos: %SEGUNDOS%
rem echo Centésimas: %CENTESIMAS%
echo.
set ARCHIVO=C:\CarpetaCopias\NOMBRE_BD%ANO%%MES%%DIA%%HORA%%MINUTOS%%SEGUNDOS%.backup
pg_dump.exe --host 127.0.0.1 --port 5432 --username postgres --format custom --blobs --verbose --file "%ARCHIVO%" "NOMBRE_BD"
endlocal
echo.
-------------------------
DONDE
NOMBRE_BD: Es el nombre de la base de datos a la cual se le esta haciendo la copia de seguridad. y en este caso lo estamos utilizando para nombrar el archivo de la copia.
C:\CarpetaCopias: Esta corresponde a la ruta donde guardaremos nuestra copia de seguridad.
host 127.0.0.1: Corresponde a la dirección IP donde esta nuestra base de datos, se debe modificar esta información y a su ves, usuario y contraseña según sea el caso.
2. Este archivo .Bat debe ser guardado en la ruta:
C:\Archivos de programa\PostgreSQL\8.4\bin
Esta ruta contiene los programas que se ejecutan para efectuar tareas automaticas en la base de datos, ejemplo pg_dump.exe es una de ellas.
3. Crear una tarea Programada en windows, que ejecute este archivo .bat y definir en este el tiempo de ejecución, la frecuencia, etc.
Listo, Espero les sirva.
1. Crear un archivo .Bat en el cual se escribirán las sentencias que nos ayudarán a generar nuestra copia automatica. Las sentencias para esto a continuación las describo.
@echo off
color 30
rem
rem Ejemplo de manejo de la fecha y hora actual - v2008-03-15
rem
rem Juego de caracteres ISO-8859-1 (Latin 1)
chcp 28591 > NUL
setlocal
set FECHA_ACTUAL=%DATE%
set HORA_ACTUAL=%TIME%
set ANO=%FECHA_ACTUAL:~6,4%
set MES=%FECHA_ACTUAL:~3,2%
set DIA=%FECHA_ACTUAL:~0,2%
set HORA=%HORA_ACTUAL:~0,2%
set MINUTOS=%HORA_ACTUAL:~3,2%
set SEGUNDOS=%HORA_ACTUAL:~6,2%
set CENTESIMAS=%HORA_ACTUAL:~9,2%
rem Si la hora tiene un sólo dígito, reemplazamos el espacio inicial por cero
set HORA=%HORA: =%
if %HORA% LSS 10 set HORA=0%HORA%
rem echo Fecha: %FECHA_ACTUAL%
rem echo Hora: %HORA_ACTUAL%
echo.
rem echo Día: %DIA%
rem echo Mes: %MES%
rem echo Año: %ANO%
echo.
rem echo Hora: %HORA%
rem echo Minutos: %MINUTOS%
rem echo Segundos: %SEGUNDOS%
rem echo Centésimas: %CENTESIMAS%
echo.
set ARCHIVO=C:\CarpetaCopias\NOMBRE_BD%ANO%%MES%%DIA%%HORA%%MINUTOS%%SEGUNDOS%.backup
pg_dump.exe --host 127.0.0.1 --port 5432 --username postgres --format custom --blobs --verbose --file "%ARCHIVO%" "NOMBRE_BD"
endlocal
echo.
-------------------------
DONDE
NOMBRE_BD: Es el nombre de la base de datos a la cual se le esta haciendo la copia de seguridad. y en este caso lo estamos utilizando para nombrar el archivo de la copia.
C:\CarpetaCopias: Esta corresponde a la ruta donde guardaremos nuestra copia de seguridad.
host 127.0.0.1: Corresponde a la dirección IP donde esta nuestra base de datos, se debe modificar esta información y a su ves, usuario y contraseña según sea el caso.
2. Este archivo .Bat debe ser guardado en la ruta:
C:\Archivos de programa\PostgreSQL\8.4\bin
Esta ruta contiene los programas que se ejecutan para efectuar tareas automaticas en la base de datos, ejemplo pg_dump.exe es una de ellas.
3. Crear una tarea Programada en windows, que ejecute este archivo .bat y definir en este el tiempo de ejecución, la frecuencia, etc.
Listo, Espero les sirva.