ディザスターリカバリー
概要
ハードウェア障害や、ソフトウェア破損が発生した場合、発生した障害の内容に応じて、様々な方法でYellowfinをリストアすることができます。すべての場合において、Yellowfinデータベースの最新のスナップショットを取得していることが重要になります。
Yellowfinのすべてのコンテンツは、Yellowfinデータベース内に存在します。アプリケーションサーバは基本的に、特定のデータベースを起動する、静的なファイルシステムです。Yellowfin/appserver/webapps/ROOT/WEB-INFには、tomcatが起動した際にアプリケーションが起動を試みるYellowfinデータベースへの参照が含まれています。
アプリケーションサーバーの障害
アプリケーションサーバ(tomcatとYellowfinウェブアプリケーション)に障害が発生した場合、Yellowfinインスタンスのビルドバージョンを把握していると、簡単にリストアすることができます。これにより、Yellowfinデータベースとのスキーマの互換性が確保されます。最後に適用したパッチが、2012年4月27日であれば、Yellowfinデータベースは、そのパッチと一致します。
アプリケーションサーバのバックアップ方法に応じて、アプリケーションサーバが正常に動作する状態にリストアする方法は異なります。
アプリケーションサーバーのバックアップが存在しない場合
アプリケーションサーバのバックアップが存在しない場合、Yellowfinの再インストールにより、リストアすることができます。インストールされているYellowfinのバージョンと、リストアするYellowfin データベースバックアップのバージョンは一致していなくてはいけません。
このプロセスは、新しいYellowfinデータベースを作成します。Yellowfinのインストールが完了したら、Yellowfinインスタンスを起動し、終了します。ROOTディレクトリは、この操作が完了するまで、展開されることはありません。この操作が完了したら、新しく作成されたYellowfinデータベースを削除することができます。
Yellowfinインスタンスは、Yellowfin/appserver/webapps/ROOT/WEB-INF/web.xmlファイルを編集することで、既存のYellowfinデータベースを接続先に設定することができます。web.xmlファイル内で定義される、「InitConnectionPool」というサーブレットがあり、Yellowfinアプリケーションの接続先となるYellowfinデータベースを定義します。このサーブレットを変更することで、障害が発生したYellowfinインスタンスを接続先に設定することができます。
ファイルの更新が完了すると、Yellowfinは既存のデータベースに接続するので、既存のコンテンツすべてにアクセスできるようになります。Yellowfinのデフォルト設定から、スタイルや関数のカスタマイズをしている場合は、再適用しなくてはいけません。
アプリケーションサーバーのディレクトリバックアップが存在する場合
定期的にアプリケーションサーバのディレクトリバックアップを取得している場合、障害発生にはこれを使用して、アプリケーションサーバをリストアすることができます。バックアップが同一のディレクトリにリストアされる場合、その他の変更は必要ありません。アプリケーションサーバのバックアップのバージョンと、リストアするYellowfinデータベースのバージョンは、一致していなくてはいけません。
仮想マシンのスナップショットが存在する場合
Yellowfinのアプリケーションサーバを仮想マシン上で実行しており、仮想マシンのスナップショットを定期的に取得している場合、これを使用して、Yellowfinインスタンスのリストアをすることができます。
Yellowfinインスタンスのリストア時に、スナップショットのリストア以外に必要な操作はありません。Yellowfinアプリケーションサーバのスナップショットのバージョンは、リストアするYellowfinデータベースのバージョンと一致していなくてはいけません。
データベースサーバーの障害
データベースサーバに障害が発生した場合、実装されているバックアッププロセスにより、リストア方法が異なります。
定期的にデータベースバックアップを取得している場合
定期的にデータベースバックアップを取得している場合、Yellowfinインスタンスを、バックアップが取得された時点の状態にリストアすることができます。データベースバックアップに適用されているパッチバージョンが、以前のアプリケーションのバージョンである場合、インスタンスをロールバックして、バージョンを一致させなくてはいけません。インスタンスを正常にリストアしたら、再度現在のバージョンのパッチを適用します。
トランザクションログが存在する場合
Yellowfinデータベースに、完全なトランザクションログが存在する場合、トランザクションを再生することで、データベース障害時の状態に再構築できる場合があります。これは、データベース管理者が実行する作業です。
リストアするYellowfinデータベースのバージョンは、アプリケーションサーバと一致しなくてはいけません。バージョンが一致しない場合は、正常にリストアするために、アプリケーションサーバをロールバックしなくてはいけません。