Database Replayを使用した実環境でのテスト

このチュートリアルでは、Database Replay機能を使用して本番環境のワークロードを取得し、テスト・システムで再生する実環境テストの実施方法について紹介します。

約1時間

トピック

このチュートリアルでは、以下のトピックについて説明します。

このアイコンの上にカーソルを置くと、すべてのスクリーンショットがロードし、表示されます。 (警告:すべてのスクリーンショットが同時にロードされるため、ご使用のインターネット接続によってはレスポンス・タイムが遅くなる場合があります。)

注:各手順に関連したスクリーンショットのみを表示する場合は、それぞれの手順にあるアイコンの上にカーソルを置いてください。 スクリーンショットをクリックすると、非表示になります。

概要

Database Replayについて

Database Replay機能を使用すると、実際のデータベースのワークロードを取得してテスト・システムで再生する実環境テストを実施できます。 テスト・システムでの再生は、時間や同時実行性など製品の特性を使用して実施できます。また、潜在的な問題(発生するエラーやパフォーマンスの相違など)を特定するための分析やレポートを提供し、問題の解決方法を提案します。

トピック・リストに戻る

このチュートリアルを始める前に、以下を確認してください。

1.

Oracle Database 11gがインストールされていること

2.

作業ディレクトリへdbreplay.zipファイルをダウンロードして解凍していること。また、作業ディレクトリへ移動していること。

トピック・リストに戻る

Database Replayを使用する前に、次の手順を実行して環境を設定してください。

1.

ターミナル・ウィンドウを開きます。 dbreplayディレクトリに移動して、first_time.cshスクリプトを実行し、ファイルを設定します。

./first_time.csh

first_time.cshをもう一度実行すると、エラーは表示されません。

 

2.

wcr_demo_init.cshスクリプトを実行して、環境を設定します。

./wcr_demo_init.csh

 

3.

PATH変数にdbreplayディレクトリを追加し、LD_LIBRARY_PATH変数に$ORACLE_HOME/libディレクトリを追加します。 ターミナル・ウィンドウから、次のコマンドを実行します。

export PATH=.:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

 

トピック・リストに戻る

このセクションでは、本番環境のワークロードを取得し、Database Replayを使用してワークロードの再生を実施します。 Oracle Enterprise Managerは、Database Replayプロセスの各ステップを管理するインタフェースを提供します。

A. 取得で使用するディレクトリの作成
B. 本番環境のワークロードの取得
C. 取得したワークロードの処理
D. ワークロードの再生

トピック・リストに戻る

 

取得で使用するディレクトリの作成

次のサブトピックでは、取得を実行します。 Oracle Enterprise Manager Database Controlを使用して取得を実行する前に、オペレーティング・システムにディレクトリを作成する必要があります。 次の手順を実行し、取得で使用するディレクトリを作成します。

1.

作業ディレクトリ内に、capture_dirという名前のディレクトリを作成します。 後でこの値を指定する必要があるため、ディレクトリのフルパスを書き留めておきます。

 

 

本番環境のワークロードの取得

Database Replayを使用するには、まず再生中に使用する本番環境のワークロードを取得する必要があります。 次の手順を実行して、本番環境のワークロードを取得します。

1.

ブラウザに次のURLを入力し、Oracle Enterprise Manager Database Consoleを起動します。 https://<hostname>:1158/em(注: <hostname>には、ローカルホストまたはホスト名を指定します)。

SYSユーザーとして、データベースのパスワードであるSYSDBAを使用してログインします。

 

2.

Software and Support」タブを選択します。

 

3.

Real Application Testingセクションから「Database Replay」を選択します。

 

4.

Capture Workloadタスクへ進むには、「Go to Task」アイコンをクリックします。

 

5.

各前提条件に対して「Acknowledge」チェック・ボックスをクリックし、「Next」をクリックします。

 

6.

Capture Workload: Optionsページで「Do not restart the database prior to capture」を選択し、「Next」をクリックします。

 

7.

Capture Workload: Parametersページでデフォルト名を受け入れて、「Create Directory Object」をクリックします。

 

8.

Create Directory Objectページで、名前にCAPDIRと入力します(必ず大文字を使用してください)。 前のサブステップで、Pathフィールド内に作成したディレクトリのディレクトリ名を指定します。 「Test File System」をクリックします。

 

9.

Host Loginページで、オペレーティング・システムのユーザー名とパスワードを入力します。 「Login」をクリックします。

 

10.

Confirmationページが表示されます。 「Return」をクリックします。

 

11.

Create Directory Objectページへ戻ります。 「OK」をクリックします。

 

12.

Capture Workload: Parametersページへ戻ると、更新メッセージが表示されます。 「Next」をクリックして、取得の設定を続行します。

 

13.

Capture Workload: Scheduleページが表示されます。 デフォルトのJob Nameを受け入れます。 Job Scheduleセクションで、StartサブセクションにあるImmediatelyのデフォルトと、Capture DurationサブセクションのNot Specifiedのデフォルトを受け入れます (実際に使用する環境では、アプリケーションの特性およびピーク期間に基づいて取得期間を選択してください)。 ページ最下部で、ホストの資格証明を入力して「Next」をクリックします。

 

14.

注: 次のステップでは、この取得タスク向けにワークロードを開始します。 Enterprise Managerによって取得開始が確認されたら、速やかにワークロードを実行してください。 同様に、ワークロードが完了次第、ワークロード取得を停止してください。 この推奨事項は、アイドル時間が多く取得されることを回避するためのものです。 すべてのイベントにおいて、データベース再生の評価には(経過時間ではなく)データベース時間を使用してください。

取得情報を確認します。 「Submit」をクリックして、取得を開始します。

View Workload Captureページが表示され、取得が開始されたことが確認されます。

 

15.

すぐにターミナル・ウィンドウに戻り、dbreplayディレクトリへ移動します。

wcr_demo_workload.cshスクリプトを実行します。

スクリプトを監視します。 取得が完了したら、Oracle Enterprise Manager Database Controlに戻ります。

 

16.

Oracle Enterprise Manager Database Controlにおいて、「Stop Capture」をクリックします。

 

17.

Yes」をクリックして、取得の終了を確認します。

 

18.

Yes」をクリックし、Automatic Workload Repositoryデータをエクスポートします。

 

19.

ワークロードのSummaryページが表示されます。 統計情報を確認します。 「OK」をクリックして、Workload Capture and Replayページに戻ります。 エクスポートの完了には1~2分かかる場合があります。

 

20.

ターミナル・ウィンドウに戻ります。 次のコマンドを実行すると、既存の取得ディレクトリ内に作成されたディレクトリ構造に含まれる取得ファイルのリストが表示されます。

find capture_dir -type f -print

 

トピックに戻る

取得したワークロードの処理

この前のサブトピックでは、ワークロードを取得しました。 取得したワークロードは、再生で使用する前に、処理する必要があります。 処理中に、取得されたデータは再生ファイルに変換され、必要なメタデータが作成されます。 次の手順を実行して、取得したワークロードを処理します。

1.

Oracle Enterprise Manager Database ControlのDatabase Replayページに戻ります。 Preprocess Captured Workloadタスクへ進むためには、「Go to Task」アイコンをクリックします。 注: 取得したワークロードの事前処理は、ワークロードが再生されたバージョンで一度だけ実行してください。

 

2.

Capture Directoryドロップダウン・メニューから、前のサブトピックで指定した取得のためのディレクトリ・オブジェクトを選択します。

 

3.

サマリー情報が表示されます。 「Preprocess Workload」をクリックします。

 

4.

Preprocess Captured Workload: Database Versionページが表示されます。 情報の内容を確認します。 「Next」をクリックします。

 

5.

Preprocess Captured Workload: Scheduleページが表示されます。 デフォルトのJob NameおよびStart時間のImmediatelyを受け入れます。 ホスト・ユーザー名およびパスワードを入力します。 「Next」をクリックします。

 

6.

Preprocess Captured Workload: Reviewページが表示されます。 情報の内容を確認します。 「Submit」をクリックします。

 

7.

確認メッセージが表示されます。 「View Job」をクリックします。

 

8.

Job Runページが表示されます。 ブラウザの再ロード・ボタンを使用して、ジョブ・ステータスが"Succeeded"になるまでページを更新し続けます。 「Database」タブをクリックします。

 

トピックに戻る

ワークロードの再生

Enterprise Managerを使用して、ワークロードを再生します。 また、ワークロードの再生は、再生データベースに接続された再生クライアントを使用して実行します。 次の手順を実行して、ワークロードを再生します。

1.

ターミナル・ウィンドウに戻ります。 dbreplayディレクトリに移動します。 wcr_demo_init.cshスクリプトを実行して、データベースを元の状態に復旧します。

 

2.

Oracle Enterprise Manager Database Controlに戻ります。 「Software and Support」タブを選択します。

 

3.

Real Application Testingの下にある「Database Replay」を選択します。

 

4.

Replay Workloadタスクに進むには、「Go to Task」アイコンをクリックします。

 

5.

Replay Directoryドロップダウン・メニューで、取得が含まれるディレクトリ・オブジェクト(CAPDIR)を選択します。

 

6.

ページが更新され、取得に関する情報が表示されます。 「Set Up Replay」をクリックします。

 

7.

Replay Workload: Prerequisitesページが表示されます。 このチュートリアルでは、変更する必要はありません。 「Continue」をクリックします。

 

8.

Replay Workload: References to External Systemsページが表示されます。 再度、「Continue」をクリックします。

 

9.

Replay Workload: Choose Initial Optionsページが表示されます。 Replay Nameフィールドに名前を入力するか、デフォルトを受け入れます。 「Next」をクリックします。

 

10.

Replay Workload: Customize Optionsページが表示されます。 このチュートリアルでは同じデータベース・インスタンス上で再生を実行するため、変更の必要はありません。 「Next」をクリックします。

 

11.

Replay Workload: Prepare Replay Clientsページが表示されます。 再生クライアントに接続する必要があるというアラートが表示されます。 いくつかの手順を経て、クライアントに接続します。 「Next」をクリックします。

 

12.

Replay Workload: Wait for Client Connectionsページが表示されます。

 

11.

ターミナル・ウィンドウに戻り、次のコマンドを実行して再生クライアント(wrc)を開始します。 指定されたユーザーは、BECOME USER権限を持っている必要があります。

wrc REPLAYDIR=<capture directory path> USERID=system PASSWORD=<system password>

注:通常、再生クライアント(wrc)は、データベース・サーバー以外のシステム上で実行することを推奨します。 この場合、Oracle Network Servicesを使用してデータベース・サーバーに接続します。 これは、再生クライアントがデータベース・サーバーに負荷をかけることで、パフォーマンスに何らかの相違が生じる可能性があるためです。

 

12.

Oracle Enterprise Manager Database Controlに戻ります。 接続が検知されます。 Replay Workload: Wait for Client Connectionsページで「Next」をクリックします。

 

13.

Reviewページが表示されます。 「Submit」をクリックします。

 

14.

View Workload Replayページが表示されます。 再生の進捗が表示されます。

 

15.

ワークロードの再生が終了したら、Statusが"Completed"に変わります。

データベース時間、上位の待機イベント、エラー、データ相違を確認して、データベース再生を評価します。

画面下部にスクロールして相違について調べ、より詳細な比較メトリックを表示します。

予想どおり、データとエラーの相違は発生していません。

Detailed Comparisonセクションを見ると、取得時間よりも再生時間が短いことが分かります。 これは、取得時間には取得開始から取得終了までの時間がすべて含まれている一方で、再生時間にはワークロードの長さのみが含まれる(ワークロード開始前とワークロード終了後のアイドル時間は含まれない)ためです。

予想どおり、残りの統計情報に相違はほとんどありません。

 

16.

ターミナル・ウィンドウに戻り、"Replay finished"メッセージが表示されており、オペレーティング・システムにコントロールが戻ったことを確認します。

 

トピックに戻る

Database Replayレポートの表示

次の手順を実行して、いくつかのDatabase Replayレポートを表示します。

1.

Oracle Enterprise Managerに切り替え、View Workload Replayウィンドウで「Report」タブをクリックします。

注:このチュートリアルは、Database Replayのワークフローと機能を説明するためのものです。 合成ワークロードという特性と時間の短さによって、データベース再生にはいくらかのパフォーマンス相違が生じます。 より長時間のワークロードを取得して再生した場合、この相違は目立たなくなります。

 

2.

Workload Replay Reportで、「Run Report」をクリックします。

注: レポートが表示されない場合は、ブラウザでポップアップ・ウィンドウがブロックされていないことを確認してください。

 

3.

Workload Replay Reportは、再生の大まかなサマリーを提供します。 レポートの情報を確認 したら、「OK」をクリックしてレポートを閉じます。

 

4.

Compare Period Reportの下にある「Run Replay Compare Period Report」をクリックします。

.

 

5.

このレポートは、Oracle Database 11g Release 2で導入されたものであり、より詳細な再生のサマリー情報を提供するため、診断分析の出発点として使用できます。 レポートの情報を確認 したら、「OK」をクリックしてレポートを閉じます。

.

このケースでは、取得と再生の間に相違がほとんどなかったため、Top SQL by Change in DB Timeセクションが空になっています。

.

 

6.

この他に、AWR Compare Period Reportも表示できます。 「Run AWR Compare Period Report」をクリックします。

 

7.

このレポートには、低レベルの診断分析に役立つ詳細な統計情報が含まれています。 レポートを確認 したら、「OK」をクリックします。

 

8.

OK」をクリックします。

 

トピック・リストに戻る

ここでは、データベースに変更を加えて、もう一度再生を実行します。 今回は、ワークロードに含まれる更新に追加の索引管理処理が関連付けられているため、再生で消費されるデータベース時間が長くなるはずです。この違いは小さなものですが、注目に値します。 次の手順を実行します。

1.

ターミナル・ウィンドウに戻ります。 dbreplayディレクトリに移動します。 wcr_demo_init.cshスクリプトを実行して、データベースを元の状態に復旧します。

 

2.

wcr_demo_dbchange.cshスクリプトを実行し、既存の表にいくつかの索引を作成します。

 

3.

Replay Workloadタスクに進むには、「Go to Task」アイコンをクリックします。

 

4.

Replay Directoryドロップダウン・メニューで、取得が含まれるディレクトリ・オブジェクト(CAPDIR)を選択します。 取得に関する情報によって、ページがリフレッシュされます。 「Set Up Replay」をクリックします。

 

5.

Replay Workload: Prerequisitesページが表示されます。 このチュートリアルでは、変更する必要はありません。 「Continue」をクリックします。

 

6.

Replay Workload: References to External Systemsページが表示されます。 再度、「Continue」をクリックします。

 

7.

Replay Workload: Choose Initial Optionsページが表示されます。 Replay Nameフィールドに名前を入力するか、デフォルトを受け入れます。 「Next」をクリックします。

 

8.

Replay Workload: Customize Optionsページが表示されます。 このチュートリアルでは同じデータベース・インスタンス上で再生を実行するため、変更の必要はありません。 「Next」をクリックします。

 

9.

Replay Workload: Prepare Replay Clientsページが表示されます。 再生クライアントに接続する必要があるというアラートが表示されます。 いくつかの手順を経て、クライアントに接続します。 「Next」をクリックします。

 

10.

Replay Workload: Wait for Client Connectionsページが表示されます。

 

11.

ターミナル・ウィンドウに戻り、次のコマンドを実行して再生クライアントを開始します。 指定されたユーザーは、BECOME USER権限を持っている必要があります。

wrc REPLAYDIR=<capture directory path> USERID=system PASSWORD=<system password>

 

12.

Oracle Enterprise Manager Database Controlに戻ります。 接続が検知されます。 Replay Workload: Wait for Client Connectionsページで「Next」をクリックします。

 

13.

Reviewページが表示されます。 「Submit」をクリックします。

 

14.

ワークロードの再生が終了したら、Statusが"Completed"に変わります。 ページ下部のDetailed Comparisonセクションを確認します。

予想どおり、追加の索引保守処理によって、この再生に対するデータベース時間が適度に増加しています。

 

トピック・リストに戻る

このチュートリアルで学習した内容は、次のとおりです。

本番環境のワークロードの取得
取得したワークロードの処理
取得したワークロードの再生

トピック・リストに戻る

このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。