我正在使用openERP v6.1,我想知道哪个是自动备份数据库的最佳选择(比方说每日备份)
“管理数据库”中的Web UI中的“备份”选项,可以一步恢复和创建数据库。当然,必须手动完成。有没有办法自动化这个过程并获得相同类型的备份? (我不确定它导出的文件类型为* .dump)
我尝试过做pg_dump但是我无法从Web UI导入该文件(我尝试了原始的sql文本和gziped),当然必须是不同的格式。我尝试使用psql将pg_dump备份导入postgres时遇到了一些问题。我可以恢复备份但是当访问网站中的网站时,我看到一个openERP为空
有关最佳做法的任何想法吗?
答案 0 :(得分:2)
假设您有权访问运行OpenERP的服务器,我建议您通过系统级cron任务使用pg_dump(使用“自定义”格式)。
理由:
您可以更好地控制备份,包括必要的连续归档和时间点恢复(请参阅http://www.postgresql.org/docs/9.1/static/backup.html)
您不会依赖OpenERP启动并运行备份。特别是,OpenERP以不在重新启动后运行其计划任务而闻名,直到第一次连接到服务器,这在某些情况下可能是一个真正的痛苦。
关于“尝试使用psql将pg_dump备份导入postgres的问题。我可以恢复备份,但是当访问网站中的网站时,我看到一个openERP空”,你必须告诉我们更多关于你使用的命令。我的OpenERP数据库使用pg_dump / pg_restore时从未遇到任何问题。
答案 1 :(得分:1)
您可以创建一个python脚本,将您的数据库备份到特定的目录中。 然后创建一个cron作业,使你的python脚本每天执行。
您也可以从apps.openerp.com下载模块: http://apps.openerp.com/addon/1759
答案 2 :(得分:1)
这是一个开发的解决方案,用于在运行DSM5.2的Synology盒上部署一个感兴趣的OpenERP7数据库的自动备份。此解决方案复制了使用OpenERP用户界面手动备份数据库的方式。为了实现该解决方案,必须使用SSH来访问Synology 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
答案 3 :(得分:0)
关于尝试使用psql将pg_dump备份导入postgres的问题。我可以恢复备份但是当访问网站中的网站时,我看到一个openERP为空&#34;
您必须代表openerp postgres用户创建数据库并运行psql。
答案 4 :(得分:0)
用于创建postgresql数据库的自动备份
在主目录下创建一个文件夹
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
现在运行此命令
chmod 755 pg_backup.sh
现在为hourlly backup运行此命令
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数据库下创建root用户 现在,如果你想恢复你的数据库ino openerp
使用postgres用户登录然后运行此命令
psql -username <openerp_database_user> -dbname <New_database_name> -f <path_of_backuped_.sql_file>