• 検索結果がありません。

Oracle Database 11g Oracle Real Application Testing

N/A
N/A
Protected

Academic year: 2021

シェア "Oracle Database 11g Oracle Real Application Testing"

Copied!
36
0
0

読み込み中.... (全文を見る)

全文

(1)

Oracle Database 11g

(2)

Oracle Real Application Testing

価値

テクノロジの迅速な導入

テスト品質の向上

ビジネス上の利点

低コスト

低リスク

機動的なビジネスのためのソリューション

テスト テスト 配置 配置 修正 修正

変更

(3)
(4)

Database Replayの必要性

ビジネスに相応しい価値を付加する新しいテクノロジの導入

時間がかかり高コストの、広範囲にわたるテストおよび評価

高コストにもかかわらず低い成功率のテスト

• 多数の問題が検知されない • システム可用性およびパフォーマンスにマイナスの影響を及ぼす

成功率の低さの原因

• 現行のツールは不適切なテストを提供する • 実際の本番ワークロードを再生するかわりに、合成ワークロードを シミュレート • ワークフローの一部分が対象

Database Replayにより実際のテストが可能に

(5)

Database Replay

テスト環境で本番データベースのワークロードを

再生

本番環境へ変更を適用する前に、潜在的な不安定性を

特定、分析、修正

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

• 実際の負荷、タイミング、同時実行性の特性を用いて、 完全な本番ワークロードを取得 • 取得したワークロードをテスト・システムに移動

• テストでのワークロードの再生

• テスト・システムでの必要な変更の実施 • 完全な本番環境特性を用いてワークロードを再生 • コミット順序の順守

• 分析とレポート

• エラー

(6)

外部クライアント・ リクエストの 記録 クライ アント クライ アント クライ アント 中間層 ストレージ サポートされない 変更 サポートされる変更 •データベースのアップグレード、パッチ •スキーマ、パラメータ •RACノード、インターコネクトOSプラットフォーム、OSアップグレードCPU、メモリー •ストレージ •その他

Database Replay:サポートされる変更

(7)

LoadRunnerとDB Replayの比較

Oracle E-Business Suiteのテスト

時間(日数) インストール および セットアップ アプリケー ション使用法 の把握 主要なトランザクション の識別 ワークロードの 生成 テスト実行 DB Replay LoadRunner

テスト総時間

DB Replay:2週間

(8)

150

10

なぜDatabase Replayなのか

導入前:

導入後:

人為的ワークロード

本番ワークロード

部分的なワークフロー

完全なワークフロー

月単位の開発

日単位の開発

手動中心

自動化

高リスク

低リスク

(9)

Database Replayのワークフロー

テスト(11.1)

本番(10.2.0.4)

中間層 クライ アント Replay Driver 取得 処理 再生 レポート分析と

ストレージ

ストレージ

(10)

Step 1:ワークロードの取得

• すべての外部クライアントの要求を バイナリ・ファイルに取得 • システム・バックグラウンドでは、 内部アクティビティは除外 • 最小のパフォーマンス・オーバーヘッド で取得

• Oracle Real Application Clusters 向けの、共有およびローカル・ファイル・ システムのサポート

• ピーク・ワークロード、月末処理など、

取得のための期間を指定

• Oracle Database Release 10.2.0.4上 での取得およびOracle Database 11g 上での再生が可能 本番システム ファイル・システム クライ アント 中間層 ストレージ クライ アント クライ アント ファイル1 ファイル2 ファイルn

(11)

取得オプション

ワークロードのフィルタリングにより、取得した内容のカスタマイズが可能

• フィルタの種類 • 包含フィルタ:取得すべきセッションを指定 • 除外フィルタ:取得すべきでないセッションを指定 • フィルタの属性:次のいずれかのセッション属性を使用して、ワークロードの取得の フィルタリングが可能 • ユーザー • プログラム • モジュール • アクション • サービス • セッションID

ワークロードの取得は、オンデマンドでの実行、または後で実行するための

スケジュールが可能

(12)

ステップ2:ワークロード・ファイルの処理

• テスト・システムのセットアップ

• テスト・データベースは、本番環境の

取得前と同じ時点のもの

• Oracle Recovery Managerを使用し、バッ クアップから本番データベースを 物理的にリストア • スナップショット・スタンバイの使用 • imp/exp、Data Pumpなどの使用 • 取得データを再生可能フォーマットに 変換処理 • 処理後は、ワークロードの再生が何度 でも可能

• Oracle Real Application Clusters向け に、すべての取得ファイルを処理用の 単一ロケーションにコピー

テスト・システム

取得ファイル 再生ファイル ファイル1 ファイル2 ファイルn ファイル1 ファイル2 ファイルn メタデータ

(13)

ステップ3:ワークロードの再生

取得システムのタイミング、同時実行性、

依存性を維持しながら、ワークロードを

再生

特別なクライアント・プログラムである

Replay Driverにより、処理済みワー

クロードを取り込み、再生システムに

リクエストを送信

Replay Driverは、1つまたは複数

のクライアントから構成される。

同時実行性の高いワークロードの

ためには、複数のクライアントに

ワークロードの実行を開始させる

ことが必要

再生ファイル

テスト・システム

Replay Driver ファイル1 ファイル2 ファイルn メタデータ

(14)

再生オプション

同期再生(デフォルト)

• ワークロードを完全な同期モードで再生 • 本番環境のワークロードとまったく同じ同時実行性およびタイミング • トランザクションのコミット順序の順守 • データの最小の相違を保証

非同期再生

• ワークロードを非同期モードで再生 • 負荷/ストレス・テストに有益 • データの大きな相違 • 3つのパラメータにより、同期の程度を制御 • 思考時間の同期 • 接続(ログオン)時間の同期 • コミット順序の同期

(15)

再生オプション

非同期再生パラメータ

• 思考時間の同期 • データベース・コール間の思考時間を制御 • 自動(デフォルト):取得されたリクエスト率を維持するように思考時間を調整 • パーセンテージ • 0%思考時間ゼロ、最大限のリクエスト率 • 100%未満 高リクエスト率 • 100% 厳密な思考時間 • 100%超 低リクエスト率 • 接続(ログオン)時間の同期 • セッションが作成される時期を制御 • 0%: すべてのセッションが即時に接続 • 100%(デフォルト):取得システムと同じ時間でセッションが接続 • コミット順序の同期 • トランザクション間のコミット順序を制御

(16)

再生オプション

再生クライアントの数

ユーザーによる設定が可能

Client Calibration Advisorは、特定のワークロードに必要とされる

再生クライアントの数を推奨

再生クライアントは、複数のワークロード・セッションをそれぞれ実行

(17)

分析とレポート

分析目的の包括的なレポート

3種類の相違をレポート

• データの相違:各コールによって返される行数を比較し、 相違をレポート • エラーの相違:各コールに対するエラーの相違をレポート • New:取得中には見られなかったが、再生中に発見 されたエラー • Not Found:再生中には見られなかったが、取得中に 発見されたエラー • Mutated:再生中に生成された、取得中とは異なるエラー • パフォーマンスの相違 • 取得および再生レポート:高水準のパフォーマンス情報 を提供 • ADDMレポート:詳細なパフォーマンス分析を提供

(18)
(19)

現在の制限

Database Replayが現行のリリースでサポートしていない機能

ダイレクト・パス・ロード、インポート/エクスポート

OCIベースのオブジェクト・ナビゲーション(ADT)およびREFバインド

ストリーム、非PL/SQLベースAQ

分散トランザクション、リモート・ディスクライブ/コミット・オペレーション

フラッシュバック

共有サーバー

(20)

ベスト・プラクティス

• 取得

• 取得ワークロード(バイナリ・ファイル)用に適切なディスク領域を提供する • データベースの再開(オプション):相違の最小化が推奨される

• Oracle Real Application Clustersのために共有ファイル・システムを使用する

• テスト・システムのセットアップ

• 再生中のデータの相違を最小限に抑えるため、テスト・データは、取得の開始時点の本番 データと同一のものにする

• Oracle Recovery Managerバックアップ/リストアまたはスナップショット・スタンバイを使用 して、テスト・システムをセットアップする • パフォーマンス分析のために、テスト・システムの能力は本番システムの能力と同様にする • アプリケーション・ロジックにSYSDATE使用が含まれている場合は、システム・クロックを 本番システムと同じ時間にリセットする • ワークロードの処理 • ワークロードの処理にはパフォーマンス・オーバーヘッドがかかるため、長時間を要する 可能性がある • ワークロードの処理は、本番システムではなくテスト・システムで実施 • 再生

• Client Calibration Advisorを使用し、ワークロードの正確な再生に必要な再生クライアント の数を特定

(21)

SQL Performance

Analyzer(SPA)

(22)

SQL Performance Analyzer(SPA)の必要性

ビジネス現場では、高パフォーマンスかつSLAに対応できるシステム

が求められている

SQLのパフォーマンス・リグレッションが、低システム・パフォーマンス

の最大の原因

変更に起因する

すべての

SQLリグレッションを積極的に検出する

ソリューションが存在しない

DBAは、非効率的で時間のかかるマニュアル・スクリプトを用いて

問題を特定している

SPAにより、ユーザーに影響が及ぶ前に、SQLパフォーマンスの

すべての変更を識別

(23)

なぜSQL Performance Analyzerなのか

導入前:

導入後:

手動でのワークロード作成

ワークロード取得の自動化

合成ワークロード

本番ワークロード

数か月を要する手動での分析

数分の自動分析

部分的なワークロード

完全なワークロード

高リスク

低リスク

(24)

SQL Performance Analyzer

SQL問合せパフォーマンスに対する変更の影響をテスト

統計情報やバインド変数を含むSQLワークロードを

本番環境で取得

テスト環境でSQL問合せを再実行

パフォーマンスの変化(改善とリグレッション)の分析

クライ アント クライアント クライアント 中間層 ストレージ Oracle DB SQLの取得 SQL問合せの再実行 SQL Tuning Advisorを使用して リグレッションを修正    本番     テスト

(25)

SPAの利点

エンドユーザーが影響を受ける

前に

、SQLのパフォーマンス・

リグレッションの識別が可能

SPAは、SQL実行プランに影響を与えるあらゆる変更に有益

• データベースのアップグレード • オプティマイザ統計情報のリフレッシュ • 新規索引、マテリアライズド・ビュー、パーティションなど

手動では不可能な、何十万ものSQL文のSQLパフォーマンス

の追跡を自動化

少ないオーバーヘッドでSQLワークロードを取得

(26)

SQL Performance Analyzerのワークフロー

テスト(11.1)

クライ アント

ストレージ

中間層

本番(10.2)

ストレージ

SQLの 取得 SQLの 転送 SQLの実行 変更前 SQLの実行 変更後 パフォーマンス の比較

(27)

ステップ1:SQLワークロードの取得

SQL Tuning Set(STS)を使用してSQLワーク ロードを保存 • STSの内容:SQLテキスト • バインド変数 • 実行計画 • 実行統計情報 • 増分取得を使用して、長期にわたるカーソル・ キャッシュからSTSを移入SQL Tuning Setのフィルタリングおよび ランキング機能により、望まないSQLを 除外

Oracle Database Release 10.2.0.1以降で

取得されたSQLワークロードは、Oracle Database 11gのSPAタスクで使用可能 増分取得 本番データベース カーソル・キャッシュ SQL Tuning Set

(28)

ステップ2:SQLワークロードのテスト・システムへ

の移動

SQL Tuning Setをステージング表にコピー("パック")

ステージング表をテスト・システムに転送(Data Pump、DB LINKなど)

ステージング表からSQL Tuning Setをコピー("アンパック")

本番データベース テスト・データベース

エクスポート/インポート

カーソル・キャッシュ

(29)

ステップ3:変更実行前のSQLの実行

SQLワークロードのパフォーマンス・ ベースラインの確立 • SQL実行計画および統計情報の 取得 • SQLの連続的な実行(同時実行性なし)各SQLの実行は一度のみDDL/DMLのスキップ分析のみにEXPLAIN PLANを実行する オプション SQL Tuning Set 次のSQLをフェッチ テスト実行 実行計画および 統計情報 結果を保存 変更前

(30)

SQL Tuning Set 次のSQLをフェッチ テスト実行 実行計画および 統計情報 結果を保存 変更前 SQL Performance Analyzer 変更後 完了 • 計画した変更の手動による実装 • データベースのアップグレード、パッチ • オプティマイザ統計情報のリフレッシュ • スキーマ変更 • データベース・パラメータ変更 • チューニング・アクション(例:SQL Profileの作成) • 変更後にSQLを再実行 • 新規のSQL実行計画および統計情報の収集

ステップ4:変更実行後のSQLの実行

(31)

分析レポート 変更前 変更後 完了 完了 SQLパフォーマンス の比較 • さまざまな基準を使用してパフォーマンス を比較(以下、例) • 経過時間 • CPU時間 • オプティマイザ・コスト • バッファ取得 • SPAレポートが各SQLに対する変更の 影響を表示 • 改善したSQL • 回帰したSQL • 変更されていないSQL • SQL Tuning AdvisorまたはSQL

ステップ5:比較および分析パフォーマンス

(32)
(33)
(34)

ベスト・プラクティス

ワークロードの取得

増分STS取得を使用

このメカニズムにより、ピーク・ワークロードまたは典型的なワークロードの

より正確な取得が可能

テスト・システム

分析がリソース集中型になるため、SPAを本番システムではなくテスト・

システム上で実行

テスト・システムが本番システムと同様の構成および同程度のオプティマ

イザ統計情報を持つようにする

パフォーマンス比較

信頼性の高い結果を得るため、経過時間やCPU時間などのいくつかの

異なる基準を使用して、変更前と変更後のパフォーマンスを比較する

リグレッションの修正

SQL Tuning AdvisorおよびSQL Plan Baselinesを使用してリグレッション

を修正

(35)

Oracle Real Application Testingのまとめ

本番システムでの変更の影響を評価する、コスト効率が高く使いやすい

ソリューションを提供

• 低リスクで、実際の全体的なワークロード・テスト結果 • テスト・サイクルを月単位から日単位に削減 • テスト・システムの中間層およびアプリケーション・セットアップの必要性を 排除することによる、ハードウェア・コストの削減

• リグレッションの修正にOracle Diagnostics PackおよびOracle Tuning Pack

を利用することによる、ROIの最大化

Oracle Real Application Testingの使用によるビジネス上の利点

• 競争力の維持

• 収益性の向上

(36)

参照

関連したドキュメント

ハブ間の輸送費用:

このマニュアル全体を読んで、Oracle Diagnostics Pack に同梱の Oracle Performance Manager、Oracle Capacity Planner、Oracle TopSessions および Oracle Event

・Microsoft® SQL Server® 2019 Client Access License (10 User)ライセンス証書 オープン価格. オープン価格 Microsoft SQL

本時は、「どのクラスが一番、テスト前の学習を頑張ったか」という課題を解決する際、その判断の根

1.共同配送 5.館内配送の 一元化 11.その他.  20余の高層ビルへの貨物を当

Oracle の Sun Storage 16 Gb Fibre Channel PCIe Universal Host Bus Adapter (HBA) (パーツ番号 7101674) は、QLogic テクノロジを使用したスタンドアロンの PCIe ロー

最近一年間の幹の半径の生長ヰま、枝葉の生長量

更にSSD搭載のストレージは小型である半導体の特長が活かされ、省スペースと なり、コスト削減も可能です。.. ◆ 《自社・顧客》 サーバ.