2018年3月2日金曜日

データベース破損の問題


Q: なぜ PaperCut のデータベースが壊れてしまうのですか?
ディスクの空き容量不足、または停電や予期しないシステムのシャットダウン/障害によるディスク破損などが発生すると、
PaperCut データベースが破損する可能性があります。


Q: PaperCut データベースの破損の兆候は何ですか?
データベースの破損には数多くの異なる兆候があります。
特定のサイトで示される兆候は、発生した破損の種類により異なります。
下記が兆候の例です。

 ・PaperCut Application Server が起動できなくなります。サーバ・ログ(server.log) を確認してください。
 ・PaperCut はブラウザの画面上もしくはログに下記のエラーのいずれかを表示します。
  ----------------------------------------------------
  Failed to start database ‘derby’, see the next exception for details.
  -----------
  The conglomerate (X, Y) requested does not exist.
  -----------
  Recovery failed unexpected problem log record is Not first but transaction is not in transaction table : X
  -----------
  Container Container(X, Y) cannot be opened; it either has been dropped or does not exist.
  -----------
  Page Page(X,Container(0, Y)) is at version V, the log file contains change version W,
  either there are log records of this page missing, or this page did not get written out to disk properly.
  -----------
  Invalid checksum on Page Page(X,Container(0, Y))
  Container X not found.
  ----------------------------------------------------
  上記いずれかのエラーが発生した場合、内部データベースが破損していることを示します。


Q: データベースが破損した場合、どのようにPaperCutデータベースをリストアすればよいですか?
次のディレクトリ内にある最新のバックアップ・データがリストアのために必要となります:
  [app-path]\server\data\backups\

Option 1 -  独自のバックアップ・ソフトウェアを使用して復元する方法
オフディスク・バックアップがある場合、下記のように実行してください。

1. Windowsサーバの場合、サービス「PaperCut Application Server」を停止してください。
   Mac/Linuxサーバの場合、次のディレクトリ内にあるスクリプト「stop-server」を実行してください:
    [app-path]\server\bin\[platform]

2. 次のディレクトリ内にあるすべてのファイルをリストアしてください:
    [app-path]\server\data\internal


Option 2 - PaperCut のバックアップ・データをリストアする方法

1. PaperCut サーバへログオン

2. Windowsサーバの場合、サービス「PaperCut Application Server」を停止してください。
        Mac/Linuxサーバの場合、次のディレクトリ内にあるスクリプト「stop-server」を実行してください:
    [app-path]\server\bin\[platform]

3. バックアップとして次のディレクトリをコピーしてください。

4. コマンドプロンプトを管理者権限で開いてください。

5. 次のディレクトリへ移動してください:
    [app-path]\server\bin\[platform]\
   例) cd “C:\Program Files\PaperCut MF\server\bin\win\”

6. 次のコマンドを実行し、データベースを再初期化してください:
    db-tools.exe init-db -f

7. 次のコマンドを使用してバックアップ・データをデータベースへインポートしリストアします。
   (エクスポートファイル名は必要に応じて変更してください)
    db-tools.exe import-db “C:\Program Files\PaperCut MF
    \server\data\backups\export-2009–05–10T00–20–03.zip”

8. リストアが完了したら、サービス「PaperCut Application Server」を再起動してください。

注記: リストア中にデータベースが存在することを示すエラーが表示された場合、 -f オプションを指定して import-db コマンドを実行してください。
db-tools.exe import-db -f “C:\Program Files\PaperCut MF\server\data\backups\export-2009–05–10T00–20–03.zip”


Q: データベースが壊れたのでバックアップからリストアしました。再発防止のためにどうすればよいですか?
データベースの破損はコンピュータの世界ではよくあることです。例えば、ランダムなディスクやメモリの問題で発生する場合があります。
しかしながら、ある種のファイル破損はシステム管理作業が発生します。
問題はシステムの劣化を示している可能性があるため、早期にキャッチするのが好ましいです。
ファイルシステムやメモリ・チェックなどのシステムチェックを行うようにしてください。


Q: PaperCutは破損を検出するためのどのようなシステムがありますか?
PaperCutに蓄積される重要なデータ(設定, プリント・ログ, ユーザ・データ など) は、リレーショナル・データベース(RDMS) に保存されます。
デフォルトの内部データベース(Apache Derby) を含むPaperCutでサポートしているデータベースはACIDに準拠しています。
データベースの問題の1つとして、通常データの破損は、影響を受けるデータが実際にフェッチ/読み込まれる時のみに検出されることです。

データの整合性の問題を早期に発見するため、PaperCutは積極的なデータ監視方法を使用しています。
主な仕組みは、スケジューリングされている週時「データウォーク」です。
PaperCut の週時自動バックアップ・プロセスは、RDMS内のすべてのデータを読み取り、プロセス中に参照整合性を検証します。
問題があればすぐにフラグが付けられ、システム通知が設定されている場合、管理者へメール通知されます。
またPaperCut はオペレーティング・システムのハードディスク容量など、他のシステム状態を積極的に監視しています。
ディスク容量不足を検知すると、再度管理者へメール通知されます。


0 件のコメント :

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。