Buenos días/tardes: > Recién he instalado un servidor de PostgreSQL donde hosteó todas las BD que >> ya contienen gran cantidad de datos. Como ya me pasó una vez que perdí todos >> los datos y no quiero que me vuelva a suceder por inocente o por no >> investigar necesito saber las posibles formas o SW para poder realizar un >> respaldo de mis BD con todos sus datos. >> A la espera de sus comentarios >> Un saludo >> Ing. Reynier Pérez Mira >> Dirección Técnica IP >> -- >> TIP 8: explain analyze es tu amigo >> >> > Hola. > Personalmente en linux tengo un archivo que se llama: /root/ > respaldarbase.sh, que contiene: > > #!/bin/bash > pg_dump -Ft -UDBA |gzip -9 -> /respaldos/RespañdoDB"`date +%Y%m%d_%H%M`".gz > at -f/root/respaldarbase.sh 21:00 > vacuumdb -afz -UDBA > reindexdb -a -UDBA > > > parq lanzarlo por primera vez use: at -f/root/respaldarbase.sh 21:00 > > luego se solo se pone en cola para ejecutarse al dia siguiente a las 21:00. > > Yo tengo configurado PGDATABASE, para no incluirla en script, tambien podes > definir PGUSER > > Espero te sirva. > > Saludos Fernando. > > > -- > TIP 5: ¿Has leído nuestro extenso FAQ? > http://www.postgresql.org/docs/faqs.FAQ.html >
Además hace tiempo miguel angel envio lo siguiente ----------------------------------- ----------------------------------- #!/bin/sh # ******************************************** # # ******** Variables para PostgreSQL ********* # # ******************************************** # export POSTGRESQL_MKDIR=`date +[%d_%m_%y]` export POSTGRESQL_LOG=`date +[%d_%m_%y]%Hhrs_%Mmin` export POSTGRESQL_HOME='/usr/local/pgsql' export POSTGRESQL_RESP='/home/RespaldosBD' # ******************************************** # # ******* Variables para Multiprocesos ******* # # ******************************************** # export HOME_DATE=`date +[%d_%m_%y]%Hhrs_%Mmin` export HOME_LOGS="/usr/local/procesos/Logs" # ******************************************** # # ****************** Run ********************* # # ******************************************** # echo "-- Checando Carpetas [ `date` ] --" > "$HOME_LOGS/Log$HOME_DATE" # -- PostgreSQL -- # if [ -e $POSTGRESQL_RESP ] then # -- Respaldo historico -- if [ ! -e $POSTGRESQL_RESP/$POSTGRESQL_MKDIR ] then mkdir $POSTGRESQL_RESP/$POSTGRESQL_MKDIR fi else mkdir $POSTGRESQL_RESP fi echo "-- Respaldando Bases [ `date` ] --" >> "$HOME_LOGS/Log$HOME_DATE" cd $POSTGRESQL_HOME/bin for BASE in `./psql -c "SELECT datname FROM pg_database WHERE datname NOT IN ('postgres', 'template0', 'template1') ORDER BY datname" -d postgres -h localhost -U postgres | head -n -2 | tail -n +3 | cut -d ' ' -f 2` do echo "Respaldando $BASE" >> "$HOME_LOGS/Log$HOME_DATE" ./pg_dump -h localhost -U postgres $BASE > $POSTGRESQL_RESP/$POSTGRESQL_MKDIR/$BASE-$POSTGRESQL_LOG.out gzip $POSTGRESQL_RESP/$POSTGRESQL_MKDIR/$BASE-$POSTGRESQL_LOG.out done echo "-- Respaldos de Bases de Datos Finalizado --" >> "$HOME_LOGS/Log $HOME_DATE" # -- PostgreSQL -- # echo " " >> "$HOME_LOGS/Log$HOME_DATE" echo "Listo." >> "$HOME_LOGS/Log$HOME_DATE" exit 0 ----------------------------------- ----------------------------------- Esto es para linux claro esta. Para manejar el cron basta con poner el simple comando: crontab -u #usuario" -e Con esto modificaras el archivo para indicarle cuando respaldar y dentro del mismo podrás poner la configuración de cuando disparar el script, un ejemplo de ello sería: # m h dom mon dow command 0 3 * * * /usr/local/procesos/Multiprocesos.sh es para linux parece una buena opcion, en lo personal no lo he probado, espero que te sirva -- Cesar Erices Vergara Ingeniero en Gestión Informática Analista de Sistema Santiago - Chile