SPA実行準備編──本番環境で流れるSQLを丸ごと取り出して「STS」を作成する:【12c対応】とにかく苦労しない「RAT」簡単攻略テクニック(3)(1/3 ページ)
とにかく大変なデータベースバージョンアップ時の「SQLテスト」。本連載では、この課題を解決するOracle Databaseのオプション機能である「Oracle Real Application Testing(RAT)」と、その一機能である「SQL Performance Analyzer(SPA)」の攻略方法を紹介していきます。今回はSPAの準備段階で重要なステップとなる「SQLチューニング・セットを作成してテスト環境へ持っていく」までの手順を解説します。
前回は、「SQL Performance Analyzer(以下、SPA)」利用時の全体像を紹介しました。今回は、具体例である「ハードウェアリプレースとOracle Databaseのバージョンアップ時に必要となる、本番環境で流れているSQLを丸ごと取り出す」という工程を想定し、SPAの実行ステップと準備方法を順に解説していきます(図1)。
- STEP 1:「SQLチューニング・セット」の作成
- STEP 2:データセットの準備
- STEP 3:STSのエクスポートとインポート
STEP 1:「SQLチューニング・セット」の作成
STEP 1では、本番環境に流れるSQLと関連情報をひとまとめにした「SQLチューニング・セット(以下、STS)」を作成します。
まずは、Enterprise ManagerからSTSを作成するまでの解説動画をご覧ください(動画1)。
動画1のシステム構成図は以下の通りです(図2)。
ここでは、模擬ベンチマークアプリケーション「Swingbench」のSOEスキーマを使用して一定期間、SQLを自動発行しつつ、APPSスキーマを使って一時的にSQLを発行するシェルスクリプトを実行するようにしています。
STSの作成前にこれらのアプリケーションの稼働状況を確認したら、Enterprise ManagerからSTSを作成します。参考までに、今回の動画1では3分間、30秒間隔でカーソルキャッシュからSQLをロードしています。この期間のアプリケーションの稼働状況は、STS作成前の状況と比べてどうでしたか。「STSの作成は本番環境で実行するが、その負荷は大丈夫か」といった問い合わせはよくありますが、その負荷は少ないことがお分かりいただけたと思います。
STSの作成
では、実際にSTSを作成していきましょう。Enterprise Managerの「SQLチューニング・セット」メニューから、5ステップで作成できます。
まずSTSの名称を決めます(図3の画面1)。続いて、SQLのロード元を選択します(図3の画面2)。この画面で「24時間/10分間隔」といったようにカーソルキャッシュをスキャンする期間と頻度を指定します。「24時間/10分間隔」とは、10分間隔でスキャンを行い、スキャン時点でカーソルキャッシュにあるSQL情報をロードする工程を24時間繰り返すという設定を意味します。
その後、STSへ格納するSQLの条件設定を行います(図3の画面3)。ここに何も設定しなければ、SYSやSYSTEMが実行する再帰SQLを含めた全てのSQLがSTSに格納されます。
1つ大事なポイントがあります。STSはSYSAUX表領域に格納されるということです。格納先の表領域変更はできません。そのため、STSによってストレージ領域の圧迫が懸念される場合には、STSの取得対象からSYSやSYSTEMスキーマを除いたり、特定のスキーマで絞り込むなどの設定をしておくと良いでしょう。なお、1度取得したSTSにフィルターをかけて、新しいSTSを作成することも可能です。
次はスケジュールの設定を行います(図4の画面4)。即座にSQLのロードを開始するのか、設定した日時に開始するのかを設定できます。例えば、夜間帯のみ、月末月初のみなどを対象にしたい場合に使います。
最後に作成設定の内容を確認して「発行」ボタンを押せば、STSの作成が開始されます(図4の画面5)。
本番環境への負荷を確認
Swingbenchの実行画面から、データベースサーバのCPU使用率やTPS(Transactions Per Second:トランザクション毎秒)の状況を確認すると、STS作成中の負荷状況を確認できます(図5)。
STSの作成中も、CPU使用率、TPSともに大きな変化がないことが図5で分かります。STSの作成による負荷は小さく、本番環境への影響も少ないと考えてよいでしょう。負荷の影響がどうしても不安な場合には、「カーソルキャッシュから1度だけロード」の設定にして試してみてください。もう1つ、安全性を特に重視するのであれば、STSが格納されるSYSAUX表領域の使用率の監視も行っておくと良いでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- オラクルが考えるDBインフラのクラウド化「DBaaS」とは? 実現方法と支援環境を聞く
「DBaaS(ディービーアース、Database as a Service)」実現に向けて、オラクルはどのような移行プロセスを考えているのだろうか。段階的移行の三つのステップとそれを支援する環境をどこまで用意しているのかを、米オラクルの担当者に取材した。 - アシスト、Oracle Database 12cとクラウドへの早期移行を支援する「12c R2×Oracle Cloudスタートアップキャンペーン」を実施
アシストがOracle Database 12cとOracle Cloudへの移行促進キャンペーンを実施。期間限定で環境構築や基礎機能のレクチャーなどをセットにした移行支援ソリューションを特価で提供する。実施は2017年4月30日まで。 - オラクル、「Oracle Database 12c R2」のOracle Cloud at Customer/オンプレミス向け提供を開始
データベース管理システムの最新版「Oracle Database 12c Release 2」で全ての提供形態が整った。先行提供していたパブリッククラウド向けに続き、新たにOracle Cloud at Customer向けとオンプレミス向け提供を開始した。 - オラクルが確約した「クラウド6箇条」と「Database 12c R2」の気になるトコロ
米オラクルのラリー・エリソンCTOが、同社の年次イベントで今後のクラウド事業の行方を確約する「Oracle Cloud、6つの設計目標」を掲げました。同時に発表された基幹製品「Oracle Database 12c」の次期バージョンのポイントと共に、そこにどんな狙いがあるかを振り返ります。