#61 サービス下でのバックアップについて

  使い方  [Public]
icon written by syamco at Feb 8, 2018 10:49 AM
  Edit(Sign in)
  Stock
  Answer survey   Answer survey

  TOC

syamcoと申します。社内のナレッジ蓄積、共有のために使わせていただき始めたところです。

docker-composeを利用して、postgresqlと連携した状態で使用していますが、
この状態で.knowledgeと.postgresに相当するものが入っているvolumesディレクトリを
cpなどでバックアップした場合、同時に記事投稿などDBへの変更が走ると
整合性が取れなくなる危険性があるように思えます。

推奨されるバックアップの方法として.knowledgeを保存する方法が挙げられていましたが、
SQLのダンプなど別系統のバックアップ方法はございますか?

なさそうでしたら、一時サービスを停止してバックアップを行うようにしようかと考えています。
突然の質問で失礼いたしました。

 Attach Files     - [0]


 Comment
[Registration] Feb 10, 2018 9:34 PM [Koda]
icon

ご利用ありがとうございます。

バックアップですが、データの主体はDatabase側になります。
このため、PostgresSQLをご利用中であれば、バックアップはPostgresSQLの機能でご利用いただけます。

マニュアルでは「.knowledge」のディレクトリもバックアップすると書いていますが、 必須でバックアップして欲しいのは「key.txt」のみ です。
他のファイルはデータベースのデータさえあれば、復元できるものですので整合性が取れていない場合、Databaseの情報から復旧できます。

以下「.knowledge」のディレクトリに格納しているデータの説明を書きます。

  • db ディレクトリ
    • 組み込み用のデータベースを利用している場合に、データを格納しているディレクトリ
    • PostgresSQLを利用している場合、必要無し(消してしまってOK)
  • index ディレクトリ
    • 全文検索エンジンのインデックス情報を格納するディレクトリ
    • 検索を「早く」かつ「柔軟に」行うために、Database以外の仕組みでインデックスを使っています(Apache Luceneを利用)
    • システム管理者メニューの「 検索用のインデックス再構築」にて、Databaseの情報から再構築できます
      • このため、迅速に復旧する必要が無い場合、バックアップ対象から除外しても構いません
  • logs ディレクトリ
    • アプリケーションが出力するログを格納しているディレクトリ
    • ログなので、不整合などを考慮しなくて良いと思っていますし、バックアップも必要無いと考えています
      • データ分析などで必要な場合は、この限りではありませんが
  • slide ディレクトリ
    • スライドショー作成機能で、PDFなどから抽出したスライド表示用の画像ファイルを格納しています
    • これも、システム管理者メニューの「 検索用のインデックス再構築」にて、Databaseの情報から再構築できます
  • tmp ディレクトリ
    • 文字通り、テンポラリのディレクトリです
    • バックアップする必要はありません
  • custom_connection.xml ファイル
    • PostgresSQLに切り替えた場合のデータベース接続情報が書かれているファイルです
    • このファイルがあると、組み込みDBを起動せず、PostgresSQLに接続します
  • key.txt ファイル
    • Knowledgeでは重要な情報はデータベースのデータを暗号化しています
      • データベースの情報が漏れたとしても、アプリケーション・サーバーのこのファイルも同時に漏れなければ、重要な情報を守ることができるため
      • ユーザのパスワードなどは、不可逆なハッシュ値なので、key.txtのキーでも復元はできません(復元する必要が無い)
      • メール送信機能を使っている場合の、メールサーバーへの接続パスワードなどが、暗号化→復号化の対象です
    • このファイルは、アプリが自動で生成するため、後で復元する手段が無いので必ずバックアップしてください

以上です。


 Like! × 3  
Collapsed
[Registration] Feb 10, 2018 9:57 PM [Koda]
icon

なお、postgresqlのバックアップについては、公式サイトを参照願います。

https://www.postgresql.jp/document/9.6/html/backup.html


 Like! × 1  
Collapsed
[Registration] Feb 13, 2018 9:26 AM [syamco]
icon

詳しい解説をありがとうございます。DBと、key.txtをバックアップできればよさそうと理解しました。さっそく試してみようと思います。
進展がありましたらご報告させていただきます。


 Like! × 0  
Collapsed
[Registration] Feb 23, 2018 2:28 PM [syamco]
icon

無事にバックアップから復元させることができました。ありがとうございます。

復元時に一覧には表示されず慌てましたが、検索インデックスを再構築したら表示されたので大丈夫だとおもいます。


 Like! × 0  
Collapsed



 Add Comment