11 データベース・ワークロードの事前処理
取得したワークロードを事前処理するには、まず、取得したすべてのデータ・ファイルを取得システムの格納先のディレクトリから、事前処理を実行するインスタンスのディレクトリに移動する必要があります。事前処理は、リソースを大量に必要とするため、次の条件を満たすシステムで実行する必要があります。
-
本番システムから切り離されている
-
リプレイ・システムと同じバージョンのOracle Databaseが実行されている
Oracle Real Application Clusters(Oracle RAC)では、事前処理用にリプレイ・システムのデータベース・インスタンスを1つ選択します。このインスタンスは、ローカル・ファイル・システムまたは共有ファイル・システムに格納可能な、事前処理を必要とする取得済データ・ファイルにアクセスできる必要があります。取得システムの取得ディレクトリのパスが各インスタンスで別の物理ディレクトリに解決される場合、それらを前処理が実行される1つの取得ディレクトリにマージする必要があります。すべてのディレクトリには、同じディレクトリ・ツリーが必要であり、これらのディレクトリに含まれるすべてのファイルは、取得ディレクトリと同じ相対パスを持つディレクトリに移動される必要があります。
通常、取得したワークロードはリプレイ・システムで事前処理します。取得したワークロードをリプレイ・システムから切り離されたシステムで事前処理する場合は、事前処理完了後に、すべての事前処理済データ・ファイルを、事前処理を行ったシステムの格納先ディレクトリからリプレイ・システムのディレクトリに移動する必要があります。
この章の構成は、次のとおりです。
Enterprise Managerを使用した単一のデータベース・ワークロードの準備
-
データベース・リプレイ・タスクの作成
-
リプレイ・タスクからのリプレイの作成
-
テスト・データベースの準備
-
ワークロードの前処理とリプレイ・クライアントのデプロイ
取得したワークロードを事前処理する前に、本番システムでワークロードを取得する必要があります。詳細は、「データベース・ワークロードの取得」を参照してください。
ノート:
テスト・データベースの準備が必要なのは、まだ準備を行っていない場合のみです。
この後の各項では、これらのタスクの実行方法について説明します。
データベース・リプレイ・タスクの作成
データベース・リプレイ・タスクを作成する前に、リプレイする取得に取得済ユーザー・コールがあることを確認します。
データベース・リプレイ・タスクを作成するには:
-
データベース・リプレイ・ページで「リプレイ・タスク」タブをクリックし、ツールバーの「作成」をクリックします。
タスクの作成ページが表示されます。
-
タスクの名前を指定し、リプレイする取得を選択して、「発行」をクリックします。統合されたリプレイで、2つ以上の取得を選択します。
データベース・リプレイ・ページが再度表示され、「リプレイ・タスク」タブの表に新しく作成されたリプレイ・タスクが表示されます。
リプレイ・タスクからのリプレイの作成
ここでは、リプレイ・タスクからリプレイを作成する方法について説明します。
リプレイを作成するには:
-
データベース・リプレイ・ページで「リプレイ・タスク」タブをクリックします。
-
表の必要なリプレイ・タスクのリンクをクリックします。
取得のリプレイ・タスク・ページが表示されます。
-
「リプレイ」セクションの「作成」をクリックします。
「リプレイの作成」ポップアップが表示されます。
-
必要な名前と説明(オプション)を入力し、「ターゲット・データベース」アイコンをクリックします。
「検索と選択: ターゲット」ポップアップが表示されます。
-
必要なデータベースを選択して、「選択」をクリックします。
-
「リプレイの作成」ポップアップの「OK」をクリックします。
必要なタスクを実行するリンク付きの「タスク・リスト」が含まれるリプレイのデータベース・リプレイ・ページが表示されます。
次の項で説明されている、「タスク・リスト」の最初のタスクに進みます。
テスト・データベースの準備
-
テスト・データベースの設定
-
テスト・データベースの分離
ノート:
このタスクは任意で実行します。テスト・データベースをすでに設定している場合、「ワークロードの前処理とリプレイ・クライアントのデプロイ」に進みます。
次の手順は、各タスクの実行方法を説明しており、どのような順番で実行してもかまいません。
テスト・データベースを設定するには:
-
特定のリプレイのリプレイ・ページで、「テスト・データベースの設定」タスクのリンクをクリックします。
テスト・データベースの設定ページが表示されます。
-
データベースをアップグレードするかどうかを選択し、クラスタ・データベースであるかどうかを示します。
-
「既存データベース・ソフトウェアのクローニング」サブタスクの「タスクに移動」アイコンをクリックするか、先にテスト・データベースを作成する場合は「全タスクの有効化」をクリックします。
-
ウィザードのオンライン・ヘルプに記載されている指示に従います。
タスクが完了すると、各タスクの「ステータス」列にチェックマークが表示されます。
-
データベース・リプレイ・ページに戻るには、「OK」をクリックします。
テスト・データベースを分離するには:
-
特定のリプレイのリプレイ・ページで、「テスト・データベースの分離」タスクのリンクをクリックします。
外部システムへの参照はリプレイ中に問題の原因になる可能性があることを説明するページが表示されます。
-
表示されるリンクを使用して、可能性のある外部システムへの参照を検証し、無効な参照を変更して「OK」をクリックします。
リプレイ・サマリー・ページが再度表示されます。
ワークロードの前処理とリプレイ・クライアントのデプロイ
-
ワークロードの事前処理
取得済の各ワークロードに対し、ワークロードをリプレイするデータベースのバージョンごとに1回前処理を実行します。ワークロードを前処理したら、テスト・データベースのバージョンがワークロードを前処理したバージョンと同じであるかぎり、それ以降のリプレイ・タスクでは、再度前処理をする必要なくそれをリプレイできます。たとえば、MyReplay1およびMyReplay2という2つのリプレイ名を持つリプレイ・タスクがある場合、MyReplay1を前処理した後は、ディレクトリ・オブジェクトを直接再使用するだけでMyReplay2をリプレイできます。
前処理には、ワークロード・アナライザ・レポートを使用できます。
-
リプレイ・クライアントのデプロイ
リプレイ・クライアント・ホストが、「データベース・ターゲット名」フィールドに指定したテスト・データベースのOracleホームにアクセスできる場合は、リプレイ・クライアントを別のリプレイ・クライアント・ホストにデプロイする必要はありません。
次の手順は、各タスクを完了する方法を説明しています。
ワークロードを事前処理するには:
-
特定のリプレイのリプレイ・ページで、「ワークロードの事前処理」タスクのリンクをクリックします。
「取得されたワークロードの前処理: ワークロードの検索」ページが表示されます。
-
必要なワークロードの場所オプションを選択して、「次」をクリックします。
ノート:
最初はコピー・オプションを選択する必要があります。
「取得されたワークロードの前処理: ワークロードのコピー」ページが表示されます。
-
必要な資格証明およびワークロードのコピーおよび前処理先の新しい場所を指定し、「次」をクリックします。
-
統合されたリプレイには複数のソース・ワークロードがあるため、複数のソース資格証明をワークロード・ディレクトリの現在の場所に入力しなければならないことがあります。統合リプレイの詳細は、「Enterprise Managerを使用したデータベース統合リプレイの使用」を参照してください。
システムは処理中に進捗状況の棒グラフを表示して応答し、コピー操作が終了した後に取得されたワークロードの前処理: ディレクトリを選択ページが表示されます。
-
-
ディレクトリ・オブジェクトを指定するかワークロードが含まれる場所をポイントする新しいディレクトリ・オブジェクトを作成します。前のステップでワークロードを新しい場所にコピーするよう選択をした場合、ディレクトリ・オブジェクトが「ワークロード・ディレクトリの新しい場所」で指定した正しい場所を確実にポイントするようにします。
システムは取得サマリーを表示して応答します。「詳細の取得」セクションを展開して、ワークロード・プロファイルとワークロード・フィルタを表示できます。統合されたリプレイに取得サマリーは表示されません。
「次へ」をクリックして、「取得されたワークロードの前処理: スケジュール」ページを表示します。
-
前処理ジョブのスケジュールを入力します。
-
必要な独自のジョブ名を指定するか、システム提供の名前をそのまま使用します。ジョブ・システムは、自動的に大文字でジョブに名前を付けます。
-
ジョブを発行後すぐに実行するか、または後で実行するかを示します。
-
ホスト資格証明を指定します。これは、オペレーティング・システムでの前処理ジョブの実行に使用されます。
「次へ」をクリックし、「取得されたワークロードの前処理: 確認」ページを表示します。
-
-
意図したとおりに設定されていることを確認して、「発行」をクリックします。
データベース・リプレイ・ページが表示され、入力にエラーがないものと見なされ、ページ上部の確認メッセージに「ワークロードの準備ジョブJOBNAMEは正常に作成されました。」と表示されます。
-
「JOBNAME」リンクをクリックして、ジョブのステータスを確認します。「ワークロード・リプレイ」タスクに進む前に、ジョブが完了している必要があります。
ノート:
試行後に期間比較レポートを生成するには、テスト・データベースに追加のPL/SQLパッケージをインストールする必要があるという内容のメッセージが、「タスク・リスト」に表示される場合があります。「ワークロード・リプレイ」タスクに進む前に、この問題を解決するには、「PL/SQLパッケージのインストール」をクリックします。
ヒント:
取得したワークロードを事前処理したら、テスト・システムでリプレイできます。詳細は、「データベース・ワークロードのリプレイ」を参照してください。
リプレイ・クライアントをデプロイするには:
-
特定のリプレイのリプレイ・ページで、「リプレイ・クライアントのデプロイ」タスクのリンクをクリックします。
リプレイ・クライアントのデプロイ・ページが表示されます。
-
関連するワークロード取得に定義されているデフォルト値をそのまま使用するか、それらの値をオーバーライドして「続行」をクリックします。
Oracleデータベース・クライアントのプロビジョニング・ウィザードが表示されます。
-
ウィザードの各ステップのオンライン・ヘルプに記載されている指示に従います。
「確認」ステップで「発行」をクリックすると、設定したスケジュールに従ってデプロイメント・プロシージャが実行され、リプレイ・サマリー・ページが再度表示されます。
APIを使用したデータベース・ワークロードの事前処理
DBMS_WORKLOAD_REPLAY
パッケージを使用して取得したワークロードを事前処理する方法について説明します。また、「Enterprise Managerを使用した単一のデータベース・ワークロードの準備」で説明されているように、Oracle Enterprise Managerを使用して取得済ワークロードを前処理することも可能です。
取得済のワークロードを処理するには:
-
BEGIN DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE (capture_dir => 'dec06', plsql_mode => 'extended'); END; /
この例では、
dec06
ディレクトリに格納されている取得済ワークロードが事前処理されます。この例の
PROCESS_CAPTURE
プロシージャでは、必須パラメータcapture_dir
を使用します。このパラメータは、事前処理する取得済ワークロードが含まれているディレクトリを指定します。オプションの
plsql_mode
パラメータで、PL/SQLの処理モードを指定します。plsql_mode
パラメータには次の2つの値を設定できます。-
top_level
: メタデータは最上位レベルのPL/SQLコールに対してのみ生成されます。これはリプレイの唯一のオプションになります。これがデフォルト値です。 -
extended
: メタデータは最上位レベルのPL/SQLコールとPL/SQLからコールされたSQLの両方に対して生成されます。新しいディレクトリppe_X.X.X.X
(Xは現在のOracleバージョンを表す)は、取得ルートディレクトリの下に作成されます。取得は、plsql_mode
パラメータのこの同じ値で実行されている必要があります。リプレイでは'TOP_LEVEL'
または'EXTENDED'
のいずれかを使用できます。extended
値は、plsql_mode
パラメータをextended
に設定して取得されたワークロードにのみ設定できます。extended
を指定しても、取得がextended
モードで実行されなかった場合は、エラー・メッセージが表示されます。
-
ノート:
暗号化されたワークロード取得でPROCESS_CAPTURE
を実行するには、識別子oracle.rat.database_replay.encryption
(大/小文字を区別)を使用してパスワードを設定する必要があります。パスワードはソフトウェア・キーストアに格納されます。ワークロード取得が暗号化されているかどうかは、DBA_WORKLOAD_CAPTURES
ビューから確認できます。
ヒント:
取得したワークロードを事前処理したら、テスト・システムでリプレイできます。詳細は、「データベース・ワークロードのリプレイ」を参照してください。
関連項目:
-
DBMS_WORKLOAD_CAPTURE
パッケージに対するSTART_CAPTURE
プロシージャのplsql_mode
パラメータの詳細は、「ワークロードの取得の開始」を参照してください。 -
DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE
プロシージャの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
ワークロード・アナライザのコマンドライン・インタフェースの実行
wcr_cap_analysis.html
という名前のHTMLレポートに保存されます。エラーを防ぐことができる場合、ワークロード分析レポートにはリプレイ前に実行できる予防措置が示されます。エラーを修正できない場合はワークロード分析レポートにそのエラーに関する記述が加えられるので、リプレイ時にそのエラーを考慮しておくことができます。ワークロード・アナライザの実行はデフォルトのオプションであり、実行することを強く推奨します。
ノート:
Oracle Enterprise Managerを使用してワークロードの取得を事前処理する場合は、コマンドライン・インタフェースでワークロード・アナライザを実行する必要はありません。Oracle Enterprise Managerでは、ワークロードの事前処理の一環としてワークロード・アナライザを実行できます。
ワークロード・アナライザは、Oracle Database Enterprise Editionリリース11.2.0.2以上が実行されているシステムの$ORACLE_HOME/rdbms/jlib/
ディレクトリにある2つのJARファイル(dbranalyzer.jar
およびdbrparser.jar
)で構成されます。ワークロード・アナライザには、Java 1.5以上および$ORACLE_HOME/jdbc/lib/
ディレクトリにojdbc6.jar
ファイルが必要です。
ワークロード・アナライザを実行するには:
-
コマンドライン・インタフェースで、1行で次の
java
コマンドを実行します。java -classpath $ORACLE_HOME/jdbc/lib/ojdbc6.jar:$ORACLE_HOME/rdbms/jlib/dbrparser.jar: $ORACLE_HOME/rdbms/jlib/dbranalyzer.jar: oracle.dbreplay.workload.checker.CaptureChecker <capture_directory> <connection_string>
capture_directory
パラメータには、取得ディレクトリのオペレーティング・システム・パスを入力します。このディレクトリには、ワークロード取得のAWRデータもエクスポートされている必要があります。connection_string
パラメータには、リリース11.1以上のOracle Databaseの接続文字列を入力します。このコマンドの例は次のとおりです。
java -classpath $ORACLE_HOME/jdbc/lib/ojdbc6.jar:$ORACLE_HOME/rdbms/jlib/dbrparser.jar: $ORACLE_HOME/rdbms/jlib/dbranalyzer.jar: oracle.dbreplay.workload.checker.CaptureChecker /scratch/capture jdbc:oracle:thin:@myhost.mycompany.com:1521:orcl
-
求めらたら、ターゲット・データベースの
DBMS_WORKLOAD_CAPTURE
パッケージのEXECUTE
権限およびターゲット・データベースのSELECT_CATALOG
ロールを持つデータベース・ユーザーのユーザー名とパスワードを入力します。