9 データベース・リプレイの概要

データベース・リプレイを使用すると、本番システムのワークロードを取得して、それを元のワークロードとまったく同じタイミング、同時実行性およびトランザクション特性に従ってテスト・システムでリプレイできます。これによって、本番システムに影響を与えずに、システム変更の影響をテストできます。

データベース・リプレイでは、Oracle Database 10gリリース2以上のリリースが実行されているシステムでのワークロードの取得がサポートされています。Oracle Database 10g リリース2が実行されているシステムでワークロードを取得するには、データベースのバージョンは10.2.0.4以上である必要があります。ワークロードのリプレイは、Oracle Database 11g リリース1以上のリリースが実行されているシステムでのみサポートされています。

注意:

Oracle9i Database、または旧バージョンのOracle Database 10gを実行しているシステムでワークロード取得機能を使用する場合は、次のURLに記載されているMy Oracle SupportのNote ID 560977.1で必要なパッチを確認するか、Oracleサポート・サービスに詳細をお問い合せください。

https://support.oracle.com/rs?type=doc&id=560977.1

データベース・リプレイを使用してシステム変更の影響を分析する場合は、図9-1に示す手順を実行します。

図9-1 データベース・リプレイのワークフロー

図9-1の説明が続きます
「図9-1 データベース・リプレイのワークフロー」の説明
  1. 本番システムで、ワークロードを取得ファイルに取得します。詳細は、「ワークロードの取得」を参照してください。

  2. 取得ファイルをテスト・システムにコピーして事前処理します。詳細は、「ワークロードの事前処理」を参照してください。

  3. テスト・システムで、事前処理済のファイルをリプレイします。詳細は、「ワークロードのリプレイ」を参照してください。

  4. データベース・リプレイで生成されたレポートを使用して、ワークロードの取得およびワークロードのリプレイの両方を詳細に分析します。詳細は、「分析およびレポート」を参照してください。

9.1 ワークロードの取得

データベース・リプレイを使用するための最初の手順は、本番ワークロードの取得です。ワークロードの取得には、外部クライアントからOracle Databaseに対するすべてのリクエストの記録が含まれます。

ワークロードの取得を有効にすると、Oracle Databaseに対するすべての外部クライアントのリクエストが追跡され、ファイル・システム上のバイナリ・ファイル(取得ファイル)に格納されます。取得ファイルの格納場所は指定することができます。ワークロードの取得が開始されると、外部データベースのすべてのコールが取得ファイルに書き込まれます。取得ファイルには、クライアント・リクエストに関連するすべての情報(SQLテキスト、バインド値、トランザクション情報など)が含まれます。バックグラウンド・アクティビティおよびデータベース・スケジューラ・ジョブは取得されません。これらの取得ファイルは、プラットフォームに依存しないため、別のシステムに転送できます。

関連項目:

9.2 ワークロードの事前処理

ワークロードを取得したら、取得ファイルの情報を前処理する必要があります。事前処理により、ワークロードのリプレイに必要なすべてのメタデータが作成されます。事前処理は、取得したワークロードをリプレイする前に、ワークロードごとに1回行う必要があります。事前処理された取得済のワークロードは、同じバージョンのOracle Databaseが稼動するリプレイ・システムで繰り返しリプレイできます。通常、取得ファイルは、前処理のためにテスト・システムにコピーする必要があります。ワークロードの事前処理は、時間がかかり、リソースを大量に消費するため、この手順はワークロードをリプレイするテスト・システムで実行することをお薦めします。

関連項目:

9.3 ワークロードのリプレイ

事前処理された取得済ワークロードは、テスト・システムでリプレイできます。ワークロードのリプレイ・フェーズにおいて、Oracle Databaseは、取得したすべての外部クライアント・リクエストを本番システムと同じタイミング、同時実行性およびトランザクション依存性に従って再現し、ワークロードの取得フェーズ中に記録されたアクションをテスト・システム上で実行します。

データベース・リプレイでは、リプレイ・クライアントというクライアント・プログラムを使用して、ワークロードの取得時に記録されたすべての外部クライアント・リクエストを再現します。取得したワークロードによっては、そのワークロードを適切にリプレイするために1つ以上のリプレイ・クライアントが必要です。特定のワークロードに必要なリプレイ・クライアントの数を判定するための測定ツールが提供されています。DMLやSQL問合せを含め、ワークロード全体がリプレイされるため、リプレイ・システムのデータは取得システムのデータとできるかぎり論理的に同じである必要があります。これによって、リプレイの相違が最小限に抑えられ、リプレイの分析の信頼性が向上します。

関連項目:

9.4 分析およびレポート

ワークロードのリプレイ後、ワークロードの取得とリプレイを詳しく分析するために、詳細なレポートが提供されます。

ワークロードの取得レポートとワークロードのリプレイ・レポートには、リプレイ中に発生したエラーや、DMLまたはSQL問合せによって戻された行におけるデータの相違など、ワークロードの取得およびリプレイに関する基本情報が含まれます。ワークロードの取得とワークロードのリプレイを対象とする複数の統計(データベース時間、平均アクティブ・セッション、ユーザー・コールなど)の比較データも提供されます。

リプレイの期間比較レポートは、あるワークロード・リプレイと、その取得、または同じ取得の別のリプレイとの高度な比較を実行するために使用できます。相違の概要として、データの相違が発生しているか、および大幅なパフォーマンスの変化があったかに関する分析も示されます。さらに、これらのレポートには自動データベース診断モニター(ADDM)の結果も取り込まれています。

高度な分析には、自動ワークロード・リポジトリ(AWR)・レポートを利用して、ワークロードの取得とワークロードのリプレイを対象とするパフォーマンス統計を詳細に比較することができます。これらのレポートで参照可能な情報は非常に詳細であり、ワークロードの取得とリプレイにおける相違点を検出できます。ワークロード・インテリジェンスで、ワークロードの取得時に記録されたデータを操作してワークロードを示すモデルを作成することもできます。このモデルを使用すると、ワークロードの一部として実行されるテンプレートの有意なパターンを特定できます。特定のパターンの実行回数やそのパターンの実行に消費されたデータベース時間など重要な統計を、パターンごとに確認できます。

SQLパフォーマンス・アナライザ・レポートは、ワークロード取得のSQLチューニング・セットを、ワークロード・リプレイの別のSQLチューニング・セットと、または2つのワークロード・リプレイの2つのSQLチューニング・セットと比較する場合に使用できます。SQLパフォーマンス・アナライザのテスト実行では、各SQL試行のSQL文ごとに1つの実行計画のみを生成するのに対し、SQLチューニング・セットをデータベース・リプレイと比較すると、各SQL文のすべての実行計画が考慮されて示されるため、SQLパフォーマンス・アナライザのテスト実行よりも詳しい情報が得られます。また、データベース・リプレイではすべてのバインド値が取得され、PL/SQLパッケージの状態などの動的なセッション状態がより正確に再現されるため、SQL文がより信頼度の高い環境で実行されます。データベース・リプレイを使用してロード・テストおよび現行性テストを実行する前に、健全性テストとしてSQLパフォーマンス・アナライザのテスト実行を行い、SQL文が低下しておらず、テスト・システムが適切に設定されていることを確認しておくことをお薦めします。

リプレイの相違情報を使用して、与えられたシステム変更のリプレイ特性を分析することに加えて、アプリケーション・レベルの検証手順を使用して、システム変更を評価する必要もあります。リプレイの全体的な成功を評価するためのスクリプトの作成を検討してください。たとえば、ワークロードの取得時に10,000のオーダーが処理される場合、同じ数のオーダーがリプレイ時にも処理されることを検証する必要があります。

リプレイの分析が完了したら、データベースをワークロード取得時点の元の状態にリストアし、ワークロードのリプレイを繰り返して、システムに対する他の変更をテストすることができます。

関連項目: