Linuxサーバー用 データのバックアップ・リストア

ChatLuck PostgreSQL版のLinuxサーバー用のバックアップとリストアについて説明します。

ChatLuckのデータは、大きく分けて3つに分類されます。

①ChatLuck利用時に作成される一時ファイル
(インストール先の「data」ディレクトリ)
②各機能にて添付するファイルデータ
(インストール先の「file」ディレクトリ)
③各機能で登録する添付ファイル(②)以外のデータ
(PostgreSQLのデータベース内に保存)




このうち、バックアップしていただく必要があるデータは、②~③となります。
※①のバックアップは不要です。

【注意1】

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

  • 常駐しているスケジューラーを停止
  • Webサーバーを停止 (ユーザーからのアクセスをすべて遮断)
  • リアルタイムサーバーを停止
  • バックアップを取得
  • リアルタイムサーバー再開
  • Webサーバー再開

なお、上記のようにWebサービスを停止せずにバックアップを取得(オンラインバックアップ)することも可能ですが、推奨はしておりません。
ファイルの更新処理中にバックアップが行われた場合など、一部ファイルのバックアップに失敗した場合に、そのバックアップデータからリストアを行うと、以下のような問題が発生する可能性があります。
  • 添付ファイルを開けなくなる
  • 添付ファイルが0バイトになる 等

上記リスクを理解の上、オンラインバックアップを検討される場合は、以下も参考にしてください。
  • バックアップ失敗のリスクを減らすため、可能な限りアクセスのない時間帯に計画します。
  • 安全の為、直近数回分のバックアップデータを保全するようにします。
  • サーバーメンテナンス時等、定期的なオフラインバックアップの取得も運用計画に組み込みます。

【注意2】

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

【注意3】

CentOS6で運用中のお客様はサービスの起動・停止コマンドを「service {サービス名} {コマンド}」に置き換えてお読みください。


1.データのバックアップ



①各機能にて添付するファイルデータ
(インストール先の「file」ディレクトリ)
②各機能で登録する添付ファイル(①)以外のデータ
(PostgreSQLのデータベース内に保存)

のデータをバックアップします。

本手順は以下を前提に説明いたします。
  • ChatLuckのインストール先:「/var/www/cgi-bin/chatlk」
  • バックアップ先:「/home/neo/backup」
  • Apacheの起動ユーザー:「apache」
  • Apacheの起動グループ:「apache」
  • ユーザー「postgres」にて稼働中のPostgreSQLインストール先のパスが通っている

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

スケジューラーを起動されている場合、スケジューラーを停止してください。
rootユーザーにスイッチした上で、chatBatSchedulerプロセスをkillします。

[停止コマンド例]
 # pkill -9 -f chatBatScheduler

※スケジューラーを停止せずにバックアップを取得(オンラインバックアップ)することも可能ですが、バックアップのタイミングによっては失敗したり、データ不整合が生じたりする可能性がある為推奨はしておりません。

【2】Webサーバーを停止

Webサーバーを停止してください。

[Webサーバー(Apache)停止コマンド例]
 # /etc/rc.d/init.d/httpd stop
 または、
 # systemctl stop httpd

※Webサーバーを停止せずにバックアップを取得(オンラインバックアップ)することも可能ですが、バックアップのタイミングによっては失敗したり、データ不整合が生じたりする可能性がある為推奨はしておりません。

【3】リアルタイムサーバーを停止

ChatLuck V4.5 R1.0 以降の場合
リアルタイムサーバーを停止してください。

[リアルタイムサーバーの停止コマンド例]
 # /var/www/cgi-bin/chatlk/rserver/wsserver stop
 または、
 # systemctl stop chatluckws


ChatLuck V4.0 R2.0 以前の場合
リアルタイムサーバーとRedisを停止してください。

[リアルタイムサーバーとRedis停止コマンド例]
 # /etc/rc.d/init.d/chatluck stop  ←リアルタイムサーバーの停止
 # /etc/rc.d/init.d/redis stop    ←Redisサーバーの停止
 または、
 # systemctl stop chatluck  ←リアルタイムサーバーの停止
 # systemctl stop redis    ←Redisサーバーの停止

※リアルタイムサーバーを停止せずにバックアップを取得(オンラインバックアップ)することも可能ですが、バックアップのタイミングによっては失敗したり、データ不整合が生じたりする可能性がある為推奨はしておりません。

【4】バックアップを取得

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

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

次に、以下のコマンドにてデータベースファイルをダンプします。

[データベースバックアップコマンド例]
# su - postgres
$ pg_dump -b -Fc -p 5432 -U postgres chatlkdb > /home/neo/backup/chatlkdb.pgdmp
$ pg_dump -b -Fc -p 5432 -U postgres chatladdb > /home/neo/backup/chatladdb.pgdmp
$ exit
※「-p 5432」は、稼働しているPostgreSQLサーバーのポート番号を指定してください。
 不明な場合は、「/var/www/cgi-bin/chatlk/rserver/config/default.json」の内容を確認してください。

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

①各機能にて添付するファイルデータ
(インストール先の「file」ディレクトリ)

「file」ディレクトリをコピーコマンド等でバックアップしてください。

※サーバーにバックアップソフトやファイル圧縮・解凍ツール等をインストールしお使いの場合、そちらをお使いいただいても問題ありません。

[バックアップコマンド例(tar)]
# cd /var/www/cgi-bin/chatlk
# tar zcvf /home/neo/backup/chat_file.tar.gz file

※オプション等の詳細はOS付属のマニュアルをご参照ください。

【5】リアルタイムサーバーを再開

ChatLuck V4.5 R1.0 以降の場合
リアルタイムサーバーを開始してください。

[リアルタイムサーバーの開始コマンド例]
 # /var/www/cgi-bin/chatlk/rserver/wsserver start
 または、
 # systemctl start chatluckws


ChatLuck V4.0 R2.0 以前の場合
Redisとリアルタイムサーバーを開始してください。

[Redisとリアルタイムサーバー開始コマンド例]
# /etc/rc.d/init.d/redis start    ←Redisサーバーの起動
# /etc/rc.d/init.d/chatluck start  ←リアルタイムサーバーの起動
または、
# systemctl start redis    ←Redisサーバーの起動
# systemctl start chatluck  ←リアルタイムサーバーの起動

【6】Webサーバーを再開

Webサーバーを開始してください。

[Webサーバー(Apache)開始コマンド例]
# /etc/rc.d/init.d/httpd start
または、
# systemctl start httpd


以上でバックアップは終了です。



2.データのリストア



データをリストアし、ChatLuckをバックアップした時点に戻す場合、元のデータを削除いただく必要あります。

【注意1】
本手順は、正常にバックアップが取得できている事が前提の手順となります。
不完全なバックアップデータですと、正常にChatLuckがご利用いただけませんのでご注意ください。

【注意2】
バックアップ時点と、現在お使いのChatLuckのバージョン(リビジョン)が異なる場合、一度、インストールされているChatLuckをアンインストールし、インストール先ディレクトリ(通常、「chatlk」ディレクトリ)を削除してください。
その後、再度、データのバックアップを取った時点でのChatLuckと同じバージョンをインストールしてください。

【注意3】
データのリストアを行われるサーバが、バックアップを行ったサーバと異なる場合、ライセンスキーの再申請が必要となります。
ChatLuck製品サイトのサポート > ライセンスキー申請から申請ください。
ChatLuckサポート

【1】リアルタイムサーバーを停止

ChatLuck V4.5 R1.0 以降の場合
リアルタイムサーバーを停止してください。

[リアルタイムサーバーの停止コマンド例]
 # /var/www/cgi-bin/chatlk/rserver/wsserver stop
 または、
 # systemctl stop chatluckws


ChatLuck V4.0 R2.0 以前の場合
リアルタイムサーバーを停止してください。

[リアルタイムサーバー停止コマンド例]
 # /etc/rc.d/init.d/chatluck stop  ←リアルタイムサーバーの停止
 # /etc/rc.d/init.d/redis stop    ←Redisサーバーの停止
 または、
 # systemctl stop chatluck  ←リアルタイムサーバーの停止
 # systemctl stop redis    ←Redisサーバーの停止


【2】PostgreSQLデータベースのリストア

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

[データベースリストアコマンド例]
# su - postgres
$ dropdb -p 5432 -U postgres chatlkdb
$ pg_restore -C -Fc -p 5432 -U postgres -d template1 /home/neo/backup/chatlkdb.pgdmp
$ dropdb -p 5432 -U postgres chatladdb
$ pg_restore -C -Fc -p 5432 -U postgres -d template1 /home/neo/backup/chatladdb.pgdmp
$ exit

※必ず「dropdb」コマンドでchatlkdbとchatladdbの削除を行ってください。
 削除されないと不整合が発生し予期しない動作をする場合がありますのでご注意ください。
※「-p 5432」は、稼働しているPostgreSQLサーバーのポート番号を指定してください。
 不明な場合は、「/var/www/cgi-bin/chatlk/rserver/config/default.json」の内容を確認してください。


【3】添付ファイルデータのリストア

3-1.インストール先の「file」ディレクトリを削除します。

[データ削除コマンド例]
# cd /var/www/cgi-bin/chatlk
# rm -rf file

※必ず「file」ディレクトリの削除を行ってください。
 削除されないと不整合が発生し予期しない動作をする場合がありますのでご注意ください。

3-2.バックアップされている「file」ディレクトリをインストール先に戻します。

[データ復元コマンド例]
# cd /var/www/cgi-bin/chatlk
# tar zxvf /home/neo/backup/chat_file.tar.gz
# chown -R apache:apache file
# chmod -R 755 file


【4】リアルタイムサーバーを再開

ChatLuck V4.5 R1.0 以降の場合
リアルタイムサーバーを開始してください。

[リアルタイムサーバーの開始コマンド例]
 # /var/www/cgi-bin/chatlk/rserver/wsserver start
 または、
 # systemctl start chatluckws


ChatLuck V4.0 R2.0 以前の場合
リアルタイムサーバーを開始してください。

[リアルタイムサーバー開始コマンド例]
# /etc/rc.d/init.d/redis start    ←Redisサーバーの起動
# /etc/rc.d/init.d/chatluck start  ←リアルタイムサーバーの起動
または、
# systemctl start redis    ←Redisサーバーの起動
# systemctl start chatluck  ←リアルタイムサーバーの起動


以上でリストアは終了です。

 

システムの保守(データベースの最適化)と運用(データのバックアップとリストア)に戻る

 

記載の製品名および商品名は、各社の商標、または登録商標です。