グループウェアを本格的に活用するとなるとバックアップやリストア作業など保守管理も重要になります。現在の所 phpGroupWare にはブラウザ経由でデータベースをバックアップするインターフェイスは提供されていませんので、ここで紹介した運用目的では MySQL、PostgreSQL サーバ管理者が定期的にバックアップを行う必要があります。
LAN内で利用するために設けたグループウェア専用のサーバであれば、SQL サーバーを丸ごとバックアップする方が簡単です。
CentOS-4.5 (RHEL系) | |
---|---|
PostgreSQL | /var/lib/pgsql/data |
MySQL | /var/lib/mysql |
ディレクトリ毎バックアップする場合、MySQL、PostgreSQL サーバーを停止させておく必要があります。復元を行う場合もサービスを停止し書き戻すだけです。サービスを停止させる必要がある上、扱う情報量が増えてくるとバックアップに時間を要します。
具体的な方法は下記コンテンツで紹介しています。MySQL の場合も同様です。
参照 => 万が一の時の保険 ~ PostgreSQL Server データベースの復元
PostgreSQL サーバーを停止させないで全ての情報をバックアップするには pg_dumpall を使用します。定期的に実行、リストア方法については PostgreSQL サーバー導入の章で紹介しています。
参照 => PostgreSQL Server で定期定期にバックアップを行う
既存の PostgreSQL、MySQL サーバに phpGroupWare 用のデータベースを作成したのであれば、データベース単位でバックアップをとる事になります。
ここでは、phpGroupWare のためにPostgreSQLユーザー phpgw と データベース phpGroupWare を作成しています。以下の例は PostgreSQL サーバが同一ホストである場合です。
pg_dump-phpGroupWare.dump という一つのファイルで出力します。
-c で復元の際にデータベースを削除するコマンドを付加しています。
上記 pg_dump-phpGroupWare.dump を復元する場合は以下のようにします。
テスト用のデータベースを作成して確認される事をお勧めします。
crond で定期的に実行する場合、PostgreSQL サーバーへの認証を自動的に行う必要があります。(PostgreSQL側で認証なしに設定するのはお勧めできない) 認証の自動化の具体的な設定に関しては以下のページで説明しています。
参照 => PostgreSQL Server で定期定期にバックアップを行う
ここで紹介した CentOS-4.5 の環境では MySQL では不具合が発生したため、PostgreSQL を使用しましたが、MySQL でデータベースのバックアップは以下のように行います。
MySQLユーザー phpgw が データベース phpGroupWare を認証自動でバックアップする例です。
MySQLユーザー phpgw が データベース phpGroupWare をリストアする例
異なるホストへリストアする例
phpGroupWare のデフォルトでは画像などのファイル情報はディレクトリで管理しています。データベースのバックアップと同時にこれらのディレクトリに格納されている情報もバックアップする必要があります。
ここでセットアップした内容 | |
---|---|
環境パス | /usr/local/phpgw |
インストール直後はバックアップ、リストアも含めて検証するようにして下さい。本格運用を始める前にバックアップ手順と復元手順は抑えておいて下さい。
一般的に PostgreSQL や MySQL データベースサーバは専用のホストを立てて Firewall や SELinux などで要塞化します。オンラインバックアップ、メンテナンス用の予備のデータベースサーバがあると保守管理もやり易くなります。
環境や目的に適した保守管理体制を考える必要があります。
CUI 操作によるバックアップやリストア作業は、行うべき事が決まっているので sh スクリプトに必要な作業をまとめておくと便利です。特にコマンド操作に不慣れな方はちょっとしたミスが取り返しのつかない自体に成りかねません。(バックアップファイルの上書きとか)
例えば、データベースのバックアップ、圧縮、関連ディレクトリのバックアップなど シェルスクリプトにまとめておけばその都度コマンドを入力する必要がなく、うっかりミスもなくなります。