2012-08-13 22 views
5

मैं OpenERP v6.1 उपयोग कर रहा हूँ और मुझे पता है कि जो डीबी के स्वचालित बैकअप बनाने के लिएस्वचालित बैकअप बनाने का सबसे अच्छा तरीका कौन सा है?

वेब UI में बैकअप विकल्प में इसे करने के लिए बहुत अच्छा है डेटाबेस का प्रबंधन करें (के दैनिक बैकअप मान लीजिए) सबसे अच्छा विकल्प है चाहता था एक कदम में डीबी बहाल और बनाएँ। बेशक इसे मैन्युअल रूप से किया जाना है। क्या इस प्रक्रिया को स्वचालित करने और समान प्रकार के बैकअप के परिणाम प्राप्त करने का कोई तरीका है? (मुझे यकीन नहीं है कि यह किस प्रकार की फ़ाइल * .dump के रूप में निर्यात करता है)

मैंने pg_dump करने का प्रयास किया लेकिन मैं उस फ़ाइल को आयात नहीं कर सकता (मैंने कच्चे एसक्यूएल टेक्स्ट और gziped की कोशिश की) वेब यूआई से निश्चित रूप से होना चाहिए विभिन्न प्रारूप और मेरे पास psql के साथ पोस्टग्रेस पर pg_dump बैकअप आयात करने का प्रयास करने में कुछ समस्याएं हैं। मैं बैकअप को पुनर्स्थापित कर सकता हूं लेकिन फिर वेब पर साइट तक पहुंचने पर, मैंने एक ओपनईआरपी खाली

ऐसा करने के लिए सर्वोत्तम प्रथाओं के बारे में कोई विचार?

+0

मैं एक ही समस्या देखी। जब मैं 9.2 करने के लिए PostgreSQL 9.1 से अपग्रेड, मैं 9.1 से डेटाबेस फेंक दिया और उन्हें 9.2 के लिए बहाल। 9.2 के लिए, ओपनईआरपी ने उन डेटाबेस को पहचाना नहीं था। – Martin

उत्तर

1

आप एक पायथन स्क्रिप्ट बना सकते हैं जो आपके डीबी को विशेष निर्देशिका में बैक अप लेगा। और उसके बाद एक क्रॉन नौकरी करें जो आपकी पाइथन स्क्रिप्ट को निष्पादित करने का कारण बनती है।

तुम भी apps.openerp.com से मॉड्यूल डाउनलोड कर सकते हैं: http://apps.openerp.com/addon/1759

2

जाना चाहिए तुम्हें OpenERP चल रहा है, मैं pg_dump का उपयोग करना चाहिये ("कस्टम" प्रारूप के साथ) एक प्रणाली के स्तर क्रॉन कार्य के माध्यम से सर्वर के लिए उपयोग कर सकते है ।

दलील:

  • आप अपने बैकअप पर बेहतर नियंत्रण मिल जाएगा, सहित यदि आवश्यक हो तो निरंतर संग्रह और समय वसूली में बिंदु (http://www.postgresql.org/docs/9.1/static/backup.html देखें)

  • आप OpenERP किया जा रहा है पर निर्भर नहीं होगा बैकअप के लिए होने और चलने के लिए चल रहा है। विशेष रूप से, ओपनईआरपी के लिए ज्ञात नहीं है जब तक कि सर्वर पर पहला कनेक्शन नहीं बनाया जाता है, जो कुछ मामलों में वास्तविक दर्द हो सकता है।

अपने बारे में

"एक pg_dump बैकअप psql साथ postgres को आयात करने की कोशिश मुद्दों। मैं बैकअप बहाल कर सकते हैं, लेकिन फिर जब पहुँच वेब साइट पर, और मैं एक OpenERP खाली देखा", आपको बताने के लिए होगा आपके द्वारा उपयोग किए गए आदेशों के बारे में हमें थोड़ा और। मुझे अपने OpenERP डेटाबेस के साथ pg_dump/pg_restore का उपयोग करके कभी भी कोई समस्या नहीं आई है।

0
अपने बारे में

आप डीबी बनाने के लिए "एक pg_dump बैकअप psql साथ postgres को आयात करने की कोशिश मुद्दों। मैं बैकअप बहाल कर सकते हैं, लेकिन फिर जब पहुँच वेब साइट पर, और मैं एक OpenERP खाली देखा" और openerp postgres उपयोगकर्ता की तरफ से psql चलाएं।

0

PostgreSQL डेटाबेस के स्वचालित बैकअप बनाना लिए

  1. घर के नीचे एक फ़ोल्डर बनाएँ Directry

    mkdir database_backup 
    

2।नई फ़ाइल बनाएं

nano pg-backup.sh 

लिखने कि फाइल के अंदर इस कोड

#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. अब इस आदेश

    chmod 755 pg_backup.sh 
    
    चलाने

अब इस चलाने hourlly बैकअप के लिए आदेश

sudo crontab -e 

ऐड इस लाइन

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

दैनिक बैकअप

बनाने आप नीचे दिए गए का उपयोग कर एक दैनिक बैकअप बना सकते हैं के लिए आदेश

sudo crontab -e 

कि संपादित फाइल करने के लिए लाइनों के नीचे जोड़ें और उसे सहेजें।

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

यह क्रिया करने के लिए आप PostgreSQL डेटाबेस तहत जड़ उपयोगकर्ता अब बनाने के लिए नेड चाहिए अगर तुम तो इस आदेश चला postgres उपयोगकर्ता के साथ OpenERP

लॉगिन अपने डेटाबेस intoo पुनर्स्थापित करना चाहते हैं

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

बहुत अच्छा समाधान –

1

यह एक समाधान ब्याज में से एक OpenERP7 डेटाबेस एक Synology बॉक्स चल DSM5.2 पर तैनात की स्वचालित बैकअप बनाने के लिए विकसित किया है। यह समाधान OpenERP उपयोगकर्ता इंटरफ़ेस का उपयोग कर मैन्युअल रूप से बैक अप लेने वाले तरीके को प्रतिलिपि बनाता है। समाधान को लागू करने के लिए सिनोलॉजी NAS फ़ाइल सिस्टम तक पहुंच प्राप्त करने के लिए एसएसएच का उपयोग करना आवश्यक है। अंतिम उपयोगकर्ता की आवश्यकताओं के अनुरूप पैरामीटर्स को समायोजित किया जा सकता है।

#!/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 
संबंधित मुद्दे