2012-08-13 14 views
5

Sto usando OpenERP v6.1 e volevo sapere quale è la migliore alternativa per fare backup automatici del DB (diciamo backup giornalieri)Qual è il modo migliore per effettuare backup automatici?

l'opzione di backup nell'interfaccia utente web Gestisci database è bello ripristinare e creare il DB in un unico passaggio. Ovviamente deve essere fatto manualmente. C'è un modo per automatizzare questo processo e ottenere come risultati lo stesso tipo di backup? (Non sono sicuro del tipo di file che esporta come * .dump)

Ho provato a fare pg_dump ma non riesco a importare quel file (ho provato il testo raw sql e gziped) dall'interfaccia utente web, ovviamente deve essere diversi formati. E ho alcuni problemi nel tentativo di importare un backup pg_dump su postgres con psql. Posso ripristinare il backup, ma quando accedo al sito nel web, ho visto un openERP vuoto

Qualche idea sulle migliori pratiche per farlo?

+0

Ho osservato lo stesso problema. Quando ho aggiornato da PostgreSQL 9.1 a 9.2, ho scaricato i database da 9.1 e li ho ripristinati in 9.2. Per 9.2, OpenERP non ha riconosciuto quei database. – Martin

risposta

1

È possibile creare uno script python che eseguirà il backup del database in una directory specifica. e poi fai un lavoro cron che causa l'esecuzione quotidiana dello script python.

È possibile anche scaricare il modulo da apps.openerp.com: http://apps.openerp.com/addon/1759

2

Supponendo si ha accesso al server che esegue OpenERP, mi consiglia di utilizzare pg_dump (con il formato "custom") attraverso un compito cron livello di sistema .

Motivazione:

  • si otterrà un controllo più preciso sopra il vostro backup, tra cui, se necessario, l'archiviazione continua e punto nel tempo di recupero (vedi http://www.postgresql.org/docs/9.1/static/backup.html)

  • non dipenderà da OpenERP essere installato e in esecuzione per i backup che si verificano. Soprattutto, OpenERP è noto per non eseguendo le attività pianificate dopo il riavvio fino a quando non viene stabilita una prima connessione al server, che in alcuni casi può essere un vero problema.

quanto riguarda le vostre "problemi cercando di importare un backup pg_dump a Postgres con psql. Posso ripristinare il backup, ma poi, quando l'accesso al sito nel web, ho visto un OpenERP vuota", si dovrà dire noi un po 'di più sui comandi che hai usato. Non ho mai avuto problemi con pg_dump/pg_restore con i miei database OpenERP.

0

quanto riguarda le vostre "problemi cercando di importare un backup pg_dump a Postgres con psql. Posso ripristinare il backup, ma poi, quando l'accesso al sito nel web, ho visto un OpenERP vuoto"

È necessario creare DB e eseguire psql per conto dell'utente openerp postgres.

0

per la creazione automatica del backup dei database PostgreSQL

  1. Creare una cartella sotto casa DIRECTORY

    mkdir database_backup 
    

2.Creare un nuovo file di

nano pg-backup.sh 

scrivere questo codice all'interno del file

#enable this option, if you are creating hourly backup 
if [ ! -d "$2/`date +%F-%H`" ]; then 
mkdir $2/`date +%F-%H` 
pg_dump $1 > $2/`date +%F-%H`/$1.sql 
else 
echo "Do not run this script manually !" 
fi 

#enable this option, if you are creating daily backup 
if [ ! -d "$2/`date +%F`" ]; then 
mkdir $2/`date +%F` 
pg_dump $1 > $2/`date +%F`/$1.sql 
else 
echo "Do not run this script manually !" 
fi  
  1. Ora eseguire questo comando

    chmod 755 pg_backup.sh 
    

Ora eseguire questo comando per backup hl.

sudo crontab -e 

aggiungere questa riga

@hourly /home/openerp/database_backup/pg_backup.sh database_name /home/openerp/database_backup/ 

Per la creazione di backup giornaliero

è possibile creare un backup giornalieri usando sotto i comandi

sudo crontab -e 

Aggiungi qui sotto le linee di quel file modificato e salvarlo.

 @daily /home/openerp/database_backup/pg_backup.sh database_name /home/openerp/database_backup/ 

per l'esecuzione di questa azione si dovrebbe ned per creare utente root in database PostgreSQL Ora, se si desidera ripristinare l'intoo database di OpenERP

login con utente postgres quindi eseguire il comando

psql -username <openerp_database_user> -dbname <New_database_name> -f <path_of_backuped_.sql_file> 
+0

Soluzione molto bella –

1

Questa è una soluzione sviluppata per realizzare backup automatici di un database di interesse OpenERP7 implementato su una casella Synology che esegue DSM5.2. Questa soluzione replica il modo in cui un database viene eseguito manualmente utilizzando l'interfaccia utente OpenERP. Per implementare la soluzione è necessario utilizzare SSH per accedere al file system NAS di Synology. I parametri possono essere regolati in base alle esigenze dell'utente finale.

#!/bin/sh 
# Synology OpenERP database backup utiliy. Specify variable information below. 
# Run at /etc/crontab at the desired interval. 
DIR=/volume1/OpenERP_Backup/ 
DATESTAMP=$(date +"%Y-%m-%d")           
DB_USER=OPENERP7               
DATABASE=Demo 

# create backup dir if it does not exist       
mkdir -p ${DIR} 

# remove all backups except the $KEEP latest      
KEEP=7               
BACKUPS=`find ${DIR} -name "${DATABASE}_*.dump" | wc -l | sed 's/\ //g'` 
while [ $BACKUPS -ge $KEEP ]            
do                  
    ls -tr1 ${DIR}${DATABASE}_*.dump | head -n 1 | xargs rm -f    
    BACKUPS=`expr $BACKUPS - 1`           
done 

# dump the database in a file          
FILENAME=${DIR}${DATABASE}_${DATESTAMP}.dump       
/usr/syno/pgsql/bin/pg_dump --format=c --no-owner --username=${DB_USER} 
--file=${FILENAME} ${DATABASE} 

#Development Notes 
#Notes on how OpenERP handles backup & restore: 
#For backup 
#pg_dump --format=c --no-owner --username=<> --host=<> --port=<> <dbname> 
#For restore: 
#pg_restore --no-owner --dbname=<> 

#Notes on how Synology DSM handles crontab jobs: 
#Run script by assigning job to the crontab. Crontab on Synology NAS can 
be found at: 
#/etc/crontab 
#crontab entry would look something like the following: 
#10 1 * * * root sh /volume1/OpenERP_Backup/backup.sh 
Problemi correlati