データのバックアップおよびリストアの方法【Linuxサーバー - PostgreSQL対応版】

データのバックアップおよびリストアの方法【Linuxサーバー - PostgreSQL対応版】

該当製品:パッケージ版
質問ID:NEO-T0065
対象:全バージョン

desknet’s NEOのデータは、大きく分けて4つに分類されます。

① desknet’s NEO利用時に作成される一時ファイル(インストール先の「data」ディレクトリ)
② 各機能にて添付するファイルデータ(インストール先の「file」ディレクトリ)
③ 「ウェブメール」機能で保存されるメールデータ(インストール先の「wmldata」ディレクトリ)
④ 各機能で登録する添付ファイル(②)およびメールデータ(③)以外のデータ(PostgreSQLのデータベース内に保存)

※このうち、バックアップする必要があるデータは②③④です。①のバックアップは不要です。


注意1

これらのデータはそれぞれ密接に関連付けられています。
完全性を保った形でバックアップするためには、一時的にdesknet’s NEOのサービスを停止し、データの更新が行われない状態でバックアップを行う必要があります。(オフラインバックアップ)

1. 常駐しているスケジューラーを停止
2. Webサーバーを停止(ユーザーからのアクセスをすべて遮断)
3. バックアップを取得
4. Webサーバーおよびスケジューラーを再開

なお、Webサービスを停止せずにバックアップを取得(オンラインバックアップ)することも可能ですが、推奨しておりません。ファイルの更新処理中にバックアップが行われ一部ファイルのバックアップに失敗した場合に、そのバックアップデータからリストアを行うと、以下のような問題が発生する可能性があります。
添付ファイルを開けなくなる、または0バイトになる
メールを開けなくなる 等
上記のリスクを理解のうえ、オンラインバックアップを検討する場合は、以下もご参考ください。
バックアップ失敗のリスクを減らすため、可能な限りアクセスのない時間帯に計画します。
安全のため、直近数回分のバックアップデータを保全するようにします。
サーバーメンテナンス時等、定期的なオフラインバックアップの取得も運用計画に組み込みます。

注意2

恐れ入りますが、部分的なユーザーや機能単位のバックアップ・リストアは行えません。

注意3

desknet’s NEO V2.0より、データベースのバックアップ/リストア対象に「dneoftsdb」が追加されました。
desknet’s NEO V4.0より、データベースのバックアップ/リストア対象に「dneologdb」が追加されました。


データのバックアップ

以下のデータをバックアップします。
② 各機能にて添付するファイルデータ(インストール先の「file」ディレクトリ)
③ 「ウェブメール」機能で保存されるメールデータ(インストール先の「wmldata」ディレクトリ)
④ 各機能で登録する添付ファイル(②)およびメールデータ(③)以外のデータ(PostgreSQLのデータベース内に保存)

本手順は以下を前提に説明します。
desknet’s NEOのインストール先 : /var/www/cgi-bin/dneo
PostgreSQLのインストール先 : /usr/local/pgsql
バックアップ先 : /home/neo/backup
Apacheの起動ユーザー : apache
Apacheの起動グループ : apache

1. 常駐しているスケジューラーを停止

スケジューラーを起動している場合、スケジューラーを停止します。
rootユーザーにスイッチしたうえで、zbatschedulerプロセスをkillします。
停止コマンド例
Copied!
# pkill -9 zbatscheduler
※スケジューラーを停止せずにバックアップを取得(オンラインバックアップ) することも可能です。ただし、バックアップのタイミングによっては、失敗したり、データ不整合が生じたりする可能性があります。そのため推奨しておりません。

2. Webサーバーを停止

Webサーバーを停止します。
Webサーバー(Apache)停止コマンド例
Copied!
# /etc/rc.d/init.d/httpd stop
または、
# service httpd stop
※Webサーバーを停止せずにバックアップを取得(オンラインバックアップ)することも可能です。ただし、バックアップのタイミングによっては、失敗したり、データ不整合が生じたるする可能性があります。そのため推奨しておりません。

3. バックアップを取得

3-1. PostgreSQLデータベースのバックアップ

④各機能で登録する添付ファイルおよびメールデータ以外のデータ(PostgreSQLのデータベース内に保存)を、PostgreSQLの「pg_dump」コマンドでバックアップします。
次に、以下のコマンドにて、データベースファイルをダンプします。

データベースバックアップコマンド例
Copied!
# su – postgres
$ /usr/local/pgsql/bin/pg_dump -b -Fc -p 5432 -U postgres dneodb > /home/neo/backup/dneodb.pgdmp
$ /usr/local/pgsql/bin/pg_dump -b -Fc -p 5432 -U postgres dneoftsdb > /home/neo/backup/dneoftsdb.pgdmp
$ /usr/local/pgsql/bin/pg_dump -b -Fc -p 5432 -U postgres dneologdb > /home/neo/backup/dneologdb.pgdmp
※-pは稼働しているPostgreSQLのポート番号を指定してください。(PostgreSQLの初期使用ポートは5432)
V6.0以前のバージョンからアップデートしている場合や、別のバージョンのPostgreSQLをインストールしている場合は「-p 5433」「-p 5434」等とポート番号が変わっている場合があります。
現在利用中のdesknet's NEOで利用しているPostgreSQLのポート確認は「./dneo/data/app」ファイルをテキストエディタで開き「dbport=」の値をご確認ください。詳細はdesknet's NEOおよびPostgreSQLを構築したシステム担当者または業者様にご確認ください。
※本コマンドの実施後は、「exit」コマンドでpostgresユーザーから抜けてください。
※desknet’s NEO V2.0より、データベースのバックアップの対象に「dneoftsdb」が追加されました。
※desknet’s NEO V4.0より、データベースのバックアップの対象に「dneologdb」が追加されました。

3-2. 添付ファイルデータ・メールデータのバックアップ

以下のデータをバックアップします。
② 各機能にて添付するファイルデータ(インストール先の「file」ディレクトリ)
③ 「ウェブメール」機能で保存されるメールデータ(インストール先の「wmldata」ディレクトリ)

「file」「wmldata」ディレクトリを、コピーコマンド等でバックアップします。
※サーバーにバックアップソフトやファイル圧縮・解凍ツール等をインストールしている場合、そちらを使っても問題ありません。
バックアップコマンド例(tar)
Copied!
# cd /var/www/cgi-bin/dneo
# tar zcvf /home/neo/backup/dneo_file.tar.gz file
# tar zcvf /home/neo/backup/dneo_wmldata.tar.gz wmldata
※オプション等の詳細は、OSに付属しているマニュアルをご参照ください。

4. Webサーバーおよびスケジューラーを再開

Webサーバーを開始します。
Webサーバー(Apache)開始コマンド例
Copied!
# /etc/rc.d/init.d/httpd start
または、
# service httpd start
※スケジューラーはcronで設定した時間に自動起動します。


データのリストア

データをリストアし、desknet’s NEOをバックアップした時点に戻す場合、元のデータを削除する必要があります。

注意1

本手順は、正常にバックアップが取得できていることが前提の手順です。バックアップデータが不完全な場合、正常にdesknet’s NEOがご利用いただけませんので、ご注意ください。

注意2

バックアップした時点と、現在お使いのdesknet’s NEOのバージョン(リビジョン)が異なる場合、一度、インストールしているdesknet’s NEOをアンインストールし、インストール先フォルダ(通常、「dneo」ディレクトリ)を削除してください。その後、再度、データのバックアップを取った時点のdesknet’s NEOと同じバージョンをインストールしてください。

注意3

データのリストアを行うサーバーが、バックアップを行ったサーバーと異なる場合、ライセンスキーの再申請が必要です。

1. PostgreSQLデータベースのリストア

以下のコマンドにてデータベースを削除し、データべースファイルをリストアします。

データベースリストアコマンド例
Copied!
# su – postgres
$ /usr/local/pgsql/bin/dropdb -p 5432 -U postgres dneodb
$ /usr/local/pgsql/bin/dropdb -p 5432 -U postgres dneoftsdb
$ /usr/local/pgsql/bin/dropdb -p 5432 -U postgres dneologdb
$ /usr/local/pgsql/bin/pg_restore -C -Fc -p 5432 -U postgres -d template1 /home/neo/backup/dneodb.pgdmp
$ /usr/local/pgsql/bin/pg_restore -C -Fc -p 5432 -U postgres -d template1 /home/neo/backup/dneoftsdb.pgdmp
$ /usr/local/pgsql/bin/pg_restore -C -Fc -p 5432 -U postgres -d template1 /home/neo/backup/dneologdb.pgdmp
※必ず「dropdb」コマンドでdneodbを削除してください。削除しないと不整合が発生し、予期しない動作をする場合があります。
※-pは稼働しているPostgreSQLのポート番号を指定してください。(PostgreSQLの初期使用ポートは5432)
V6.0以前のバージョンからアップデートしている場合や、別のバージョンのPostgreSQLをインストールしている場合は「-p 5433」「-p 5434」等とポート番号が変わっている場合があります。
現在利用中のdesknet's NEOで利用しているPostgreSQLのポート確認は「./dneo/data/app」ファイルをテキストエディタで開き「dbport=」の値をご確認ください。詳細はdesknet's NEOおよびPostgreSQLを構築したシステム担当者または業者様にご確認ください。
※本コマンドの実施後は「exit」コマンドでpostgresユーザーから抜けてください。
※desknet’s NEO V2.0より、データベースのリストアの対象に「dneoftsdb」が追加されました。
※desknet’s NEO V4.0より、データベースのリストアの対象に「dneologdb」が追加されました。

2. 添付ファイルデータ・メールデータのリストア

2-1. インストール先の「file」、「wmldata」ディレクトリを削除します。
データ削除コマンド例
Copied!
# cd /var/www/cgi-bin/dneo
# rm -rf file
# rm -rf wmldata
※必ず「file」と「wmldata」ディレクトリを削除してください。削除しないと不整合が発生し、予期しない動作をする場合があります。

2-1. バックアップしている「file」と「wmldata」ディレクトリを、インストール先に戻します。
データ復元コマンド例
Copied!
# cd /var/www/cgi-bin/dneo
# tar zxvf /home/neo/backup/dneo_file.tar.gz
# chown -R apache:apache file
# chmod -R 755 file
# tar zxvf /home/neo/backup/dneo_wmldata.tar.gz
# chown -R apache:apache wmldata
# chmod -R 755 wmldata

※リストア後にdesknet’s NEOのレスポンスが低下する場合は、データベース(PostgreSQL)の最適化を実施してください。
Powered by Helpfeel