5

私は openERP v6.1 を使用していますが、DB の自動バックアップ (毎日のバックアップとしましょう) を作成するための最良の代替手段を知りたいと思っていました。

[データベースの管理] の Web UI の [バックアップ] オプションを使用すると、DB の復元と作成を 1 ステップで行うことができます。もちろん手動で行う必要があります。このプロセスを自動化し、結果として同じ種類のバックアップを取得する方法はありますか? (*.dump としてエクスポートされるファイルの種類はわかりません)

pg_dump を実行しようとしましたが、Web UI からそのファイルをインポートできません (生の SQL テキストと gzip を試しました)。もちろん、異なる形式である必要があります。また、psql を使用して pg_dump バックアップを postgres にインポートしようとすると、いくつか問題が発生します。バックアップを復元できますが、Web でサイトにアクセスすると、openERP が空でした。

これを行うためのベストプラクティスについて何か考えはありますか?

4

5 に答える 5

2

OpenERP を実行しているサーバーにアクセスできると仮定すると、システム レベルの cron タスクを介して pg_dump (「カスタム」形式) を使用することをお勧めします。

根拠:

  • 必要に応じて継続的なアーカイブやポイント イン タイム リカバリなど、バックアップをより細かく制御できます ( http://www.postgresql.org/docs/9.1/static/backup.htmlを参照) 。

  • バックアップを実行するために、OpenERP が稼働中であることに依存する必要はありません。特に、OpenERP は、再起動後、サーバーへの最初の接続が確立されるまで、スケジュールされたタスクを実行しないことで知られています。

「psql を使用して pg_dump バックアップを postgres にインポートしようとすると問題が発生します。バックアップは復元できますが、Web のサイトにアクセスすると、openERP が空であることがわかりました」については、コマンドについてもう少し詳しく教えてください。使いました。OpenERP データベースで pg_dump / pg_restore を使用して問題が発生したことはありません。

于 2012-08-13T14:12:02.583 に答える
1

DB を特定のディレクトリにバックアップする Python スクリプトを作成できます。次に、Python スクリプトを毎日実行する cron ジョブを作成します。

また、apps.openerp.com からモジュールをダウンロードすることもできます: http://apps.openerp.com/addon/1759

于 2012-08-13T12:33:58.137 に答える
1

これは、DSM5.2 を実行している Synology ボックスに展開された対象の 1 つの 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
于 2016-03-21T01:54:08.730 に答える
0

「psql を使用して pg_dump バックアップを postgres にインポートしようとしている問題について。バックアップを復元できますが、Web のサイトにアクセスすると、openERP が空であることがわかりました」

DB を作成し、openerp postgres ユーザーに代わって psql を実行する必要があります。

于 2014-04-18T09:01:06.677 に答える
0

postgresqlデータベースの自動バックアップ作成用

  1. ホーム ディレクトリの下に 1 つのフォルダを作成します。

    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
    

毎時バックアップのためにこのコマンドを実行します

    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 ユーザーを作成する必要があります。データベースを openerp に復元する場合は、

postgre ユーザーでログインしてから、このコマンドを実行します

psql -username <openerp_database_user> -dbname <New_database_name> -f <path_of_backuped_.sql_file>
于 2014-09-30T09:20:42.417 に答える