oracle9i real application clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...oracle9i real application...

230
Oracle9i Real Application Clusters 配置およびパフォーマンス リリース 19.0.12001 10 部品番号 : J04149-01

Upload: others

Post on 17-Nov-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Oracle9i Real Application Clusters

配置およびパフォーマンス

リリース 1(9.0.1)

2001 年 10 月

部品番号 : J04149-01

Page 2: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Oracle9i Real Application Clusters 配置およびパフォーマンス , リリース 1(9.0.1)

部品番号 : J04149-01

原本名:Oracle9i Real Application Clusters Deployment and Performance, Release 1 (9.0.1)

原本部品番号:A89870-02

原本著者:Mark Bauer

グラフィック・デザイナ:Valarie Moore

原本協力者:David Austin、Mitch Flatland、Bill Kehoe、Kotaro Ono、Stefan Pommerenk、Jim Rawles、Joao Rimoli、Michael Zoll、Lance Ashdown、Cathy Baird、Bill Bridge、Wilson Chan、Gang Chen、Carol Colrain、Sohan DeMel、Merrill Holt、John Kennedy、Raj Kumar、Tirthankar Lahiri、Neil MacNaughton、Vinay Srihari、Bob Thome、Alex Tsukerman、Tak Wang

Copyright © 1996, 2001, Oracle Corporation. All rights reserved.

Printed in Japan.

制限付権利の説明

プログラム(ソフトウェアおよびドキュメントを含む)の使用、複製または開示は、オラクル社との契約に記された制約条件に従うものとします。著作権、特許権およびその他の知的財産権に関する法律により保護されています。

当プログラムのリバース・エンジニアリング等は禁止されております。

このドキュメントの情報は、予告なしに変更されることがあります。オラクル社は本ドキュメントの無謬性を保証しません。

* オラクル社とは、Oracle Corporation(米国オラクル)または日本オラクル株式会社(日本オラクル)を指します。

危険な用途への使用について

オラクル社製品は、原子力、航空産業、大量輸送、医療あるいはその他の危険が伴うアプリケーションを用途として開発されておりません。オラクル社製品を上述のようなアプリケーションに使用することについての安全確保は、顧客各位の責任と費用により行ってください。万一かかる用途での使用によりクレームや損害が発生いたしましても、日本オラクル株式会社と開発元である Oracle Corporation(米国オラクル)およびその関連会社は一切責任を負いかねます。 当プログラムを米国国防総省の米国政府機関に提供する際には、『Restricted Rights』と共に提供してください。この場合次の Notice が適用されます。

Restricted Rights Notice

Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication, and disclosure of the Programs, including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication, and disclosure of the Programs shall be subject to the restrictions in FAR 52.227-19, Commercial Computer Software - Restricted Rights (June, 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065.

このドキュメントに記載されているその他の会社名および製品名は、あくまでその製品および会社を識別する目的にのみ使用されており、それぞれの所有者の商標または登録商標です。

Page 3: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

目次目次目次目次

はじめにはじめにはじめにはじめに ........................................................................................................................................................................... ix

Real Application Clusters の配置およびパフォーマンスに関連する新機能の配置およびパフォーマンスに関連する新機能の配置およびパフォーマンスに関連する新機能の配置およびパフォーマンスに関連する新機能 ........... xvii

第第第第 I 部部部部 Real Application Clusters の配置の概要の配置の概要の配置の概要の配置の概要

1 Real Application Clusters アプリケーションの配置の概要アプリケーションの配置の概要アプリケーションの配置の概要アプリケーションの配置の概要

Oracle9i 機能の活用機能の活用機能の活用機能の活用 .............................................................................................................................................. 1-2

Real Application Clusters でのでのでのでの Oracle9i 機能の実装機能の実装機能の実装機能の実装 ..................................................................................... 1-2

Real Application Clusters での高可用性およびフェイルオーバー ........................................................ 1-2

Real Application Clusters での Oracle Net ................................................................................................ 1-3

Real Application Clusters での共有サーバー ............................................................................................ 1-4

接続時ロード・バランス ............................................................................................................................... 1-4

Real Application Clusters での透過的アプリケーション・フェイルオーバー .................................... 1-4

Real Application Clusters での PL/SQL .................................................................................................... 1-6

Real Application Clusters での Recovery Manager(RMAN) ............................................................... 1-6

Real Application Clusters でのクラスタ・ファイル・システム ............................................................ 1-6

Real Application Clusters の配置フェーズの配置フェーズの配置フェーズの配置フェーズ ....................................................................................................... 1-7

2 Real Application Clusters でのオンラインでのオンラインでのオンラインでのオンライン E-Commerce およびおよびおよびおよび データ・ウェアハウス・アプリケーションの配置データ・ウェアハウス・アプリケーションの配置データ・ウェアハウス・アプリケーションの配置データ・ウェアハウス・アプリケーションの配置

Real Application Clusters のキャッシュ・フュージョンおよびのキャッシュ・フュージョンおよびのキャッシュ・フュージョンおよびのキャッシュ・フュージョンおよび E-Commerce アプリケーションアプリケーションアプリケーションアプリケーション ......... 2-2キャッシュ・フュージョンによる柔軟な実装キャッシュ・フュージョンによる柔軟な実装キャッシュ・フュージョンによる柔軟な実装キャッシュ・フュージョンによる柔軟な実装 ................................................................................................... 2-2

Real Application Clusters ベースのアプリケーションの配置方法ベースのアプリケーションの配置方法ベースのアプリケーションの配置方法ベースのアプリケーションの配置方法 ............................................................... 2-3

i

Page 4: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

n 層アーキテクチャへの移行 ....................................................................................................................... 2-3

Real Application Clusters での n 層アーキテクチャのメリット ............................................................ 2-5

Real Application Clusters でのデータ・ウェアハウス・アプリケーションの配置でのデータ・ウェアハウス・アプリケーションの配置でのデータ・ウェアハウス・アプリケーションの配置でのデータ・ウェアハウス・アプリケーションの配置 ................................... 2-6

Real Application Clusters でのデータ・ウェアハウス・アプリケーションのスピードアップ ........ 2-6

パラレル問合せの動的な 適化 ................................................................................................................... 2-7Real Application Clusters アプリケーションの配置およびチューニングアプリケーションの配置およびチューニングアプリケーションの配置およびチューニングアプリケーションの配置およびチューニング ................................................. 2-11

Real Application Clusters でのアプリケーションの構成およびチューニング .................................. 2-11

Real Application Clusters に対するシステム拡張の管理 ...................................................................... 2-12

第第第第 II 部部部部 Real Application Clusters アプリケーションの拡張およびデータベースのアプリケーションの拡張およびデータベースのアプリケーションの拡張およびデータベースのアプリケーションの拡張およびデータベースの 設計設計設計設計

3 Real Application Clusters アプリケーションの拡張アプリケーションの拡張アプリケーションの拡張アプリケーションの拡張

Real Application Clusters での開発方法の概要での開発方法の概要での開発方法の概要での開発方法の概要 ............................................................................................... 3-2

分析の開始 ....................................................................................................................................................... 3-2Real Application Clusters でのでのでのでの SQL 文の実行文の実行文の実行文の実行 ................................................................................................ 3-3

INSERT 文実行中のブロック・アクセス ................................................................................................... 3-3

UPDATE 文実行中のブロック・アクセス ................................................................................................. 3-5

DELETE 文実行中のブロック・アクセス .................................................................................................. 3-6

SELECT 文実行中のブロック・アクセス ................................................................................................... 3-6

Real Application Clusters での作業負荷分散での作業負荷分散での作業負荷分散での作業負荷分散の概要の概要の概要の概要 ....................................................................................... 3-7

機能のパーティション化 ............................................................................................................................... 3-8

E-Commerce アプリケーションの処理およびデータ・ウェアハウス処理の分割 ............................... 3-8

部門パーティション化およびユーザー・パーティション化 ................................................................... 3-8

物理表のパーティション化 ........................................................................................................................... 3-9

トランザクションのパーティション化 ..................................................................................................... 3-10

Real Application Clusters での作業負荷の特徴付けでの作業負荷の特徴付けでの作業負荷の特徴付けでの作業負荷の特徴付け ..................................................................................... 3-10

手順 1: システムの主な機能領域を定義する ............................................................................................ 3-11

手順 2: 各機能領域のシステム・リソース使用を見積もる .................................................................... 3-11

手順 3: 各機能領域のデータ・アクセス・パターンを分析する ............................................................ 3-12

Real Application Clusters でのスケールアップおよびパーティション化でのスケールアップおよびパーティション化でのスケールアップおよびパーティション化でのスケールアップおよびパーティション化 ................................................. 3-15

4 Real Application Clusters データベースの設計データベースの設計データベースの設計データベースの設計

Real Application Clusters に対するデータベース設計の原理に対するデータベース設計の原理に対するデータベース設計の原理に対するデータベース設計の原理 ....................................................................... 4-2

空きリスト・グループを使用した複数ノードからの同時挿入空きリスト・グループを使用した複数ノードからの同時挿入空きリスト・グループを使用した複数ノードからの同時挿入空きリスト・グループを使用した複数ノードからの同時挿入 ....................................................................... 4-3

ii

Page 5: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

空きリスト・グループを使用したデータベース・オブジェクトの作成 ............................................... 4-3

FREELIST GROUPS の再編成の必要性 ...................................................................................................... 4-4

FREELISTS および FREELIST GROUPS を使用した表、クラスタおよび索引の作成 ........................ 4-5

インスタンスおよびユーザー・セッションと空きリスト・グループの対応付け ............................... 4-7

エクステントの事前割当て ........................................................................................................................... 4-9Real Application Clusters での順序番号の使用での順序番号の使用での順序番号の使用での順序番号の使用 ............................................................................................. 4-12

順序におけるグローバル競合の検出 ......................................................................................................... 4-13

データベース表を使用した順序番号の生成 ............................................................................................. 4-13Real Application Clusters での表領域の設計での表領域の設計での表領域の設計での表領域の設計 ................................................................................................. 4-14

エクステント管理およびローカル管理表領域 ......................................................................................... 4-15Real Application Clusters 設計での索引の問題設計での索引の問題設計での索引の問題設計での索引の問題 ............................................................................................. 4-16

索引ブロックへのインスタンス間の同時変更の削減 ............................................................................. 4-16

パフォーマンス 適化のための表ロックの 小化パフォーマンス 適化のための表ロックの 小化パフォーマンス 適化のための表ロックの 小化パフォーマンス 適化のための表ロックの 小化 ......................................................................................... 4-19

個々の表に対する表ロックの使用禁止 ..................................................................................................... 4-19

DML_LOCKS を 0(ゼロ)に設定 ............................................................................................................ 4-19

Real Application Clusters でのオブジェクトの作成およびパフォーマンスでのオブジェクトの作成およびパフォーマンスでのオブジェクトの作成およびパフォーマンスでのオブジェクトの作成およびパフォーマンス ............................................. 4-20結論およびガイドラインの概要結論およびガイドラインの概要結論およびガイドラインの概要結論およびガイドラインの概要 ......................................................................................................................... 4-20

第第第第 III 部部部部 Real Application Clusters のパフォーマンスの監視およびチューニングのパフォーマンスの監視およびチューニングのパフォーマンスの監視およびチューニングのパフォーマンスの監視およびチューニング

5 Real Application Clusters のチューニングの一般的な推奨事項のチューニングの一般的な推奨事項のチューニングの一般的な推奨事項のチューニングの一般的な推奨事項

Real Application Clusters のチューニングの概要のチューニングの概要のチューニングの概要のチューニングの概要 ........................................................................................... 5-2Real Application Clusters のパフォーマンスの監視に関する統計のパフォーマンスの監視に関する統計のパフォーマンスの監視に関する統計のパフォーマンスの監視に関する統計 ............................................................... 5-2

Real Application Clusters 統計の内容 ........................................................................................................ 5-2

チューニングのための統計の記録 ............................................................................................................... 5-3

Real Application Clusters の重要な統計 .................................................................................................... 5-4ビューを使用したビューを使用したビューを使用したビューを使用した Real Application Clusters のパフォーマンス評価のパフォーマンス評価のパフォーマンス評価のパフォーマンス評価 .......................................................... 5-5

V$SYSSTAT を使用した Real Application Clusters の統計 .................................................................... 5-5

V$SYSTEM_EVENT を使用した Real Application Clusters の統計 ..................................................... 5-7

その他のビューを使用した Real Application Clusters の統計の取得 ................................................... 5-8Real Application Clusters の作業負荷のパフォーマンスの測定の作業負荷のパフォーマンスの測定の作業負荷のパフォーマンスの測定の作業負荷のパフォーマンスの測定 ................................................................... 5-9

作業負荷のパフォーマンスのチューニングにおける一般的な推奨事項作業負荷のパフォーマンスのチューニングにおける一般的な推奨事項作業負荷のパフォーマンスのチューニングにおける一般的な推奨事項作業負荷のパフォーマンスのチューニングにおける一般的な推奨事項 ..................................................... 5-10

作業負荷のパフォーマンス測定 ................................................................................................................. 5-10

V$CLASS_CACHE_TRANSFER および V$FILE_CACHE_TRANSFER を

使用した Real Application Clusters の統計 ............................................................................. 5-10

iii

Page 6: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

V$CACHE、V$CACHE_TRANSFER、V$BH および V$FILE_CACHE_TRANSFER を

使用した競合オブジェクトの識別 ............................................................................................. 5-11

I/O の同期化コストの見積り ..................................................................................................................... 5-11Real Application Clusters の同期化コストの決定の同期化コストの決定の同期化コストの決定の同期化コストの決定 ......................................................................................... 5-12

必要な CPU サービス時間の計算 .............................................................................................................. 5-12

グローバル・キャッシュの一貫性および競合の測定 ............................................................................. 5-13Real Application Clusters のグローバルおよびローカルな作業の割合の測定のグローバルおよびローカルな作業の割合の測定のグローバルおよびローカルな作業の割合の測定のグローバルおよびローカルな作業の割合の測定 ......................................... 5-16Real Application Clusters でのロック競合によるグローバル・キャッシュの同期化コストの計算でのロック競合によるグローバル・キャッシュの同期化コストの計算でのロック競合によるグローバル・キャッシュの同期化コストの計算でのロック競合によるグローバル・キャッシュの同期化コストの計算 ..... 5-18

同じデータ・ブロックの競合 ..................................................................................................................... 5-18

セグメント・ヘッダーおよび空きリスト・ブロックの競合 ................................................................. 5-19

データベース・ブロック以外のリソースの競合 ..................................................................................... 5-20

Real Application Clusters 上で実行中のアプリケーション固有の競合問題 ...................................... 5-21Real Application Clusters ベースのアプリケーションにおけるパフォーマンス問題の解決ベースのアプリケーションにおけるパフォーマンス問題の解決ベースのアプリケーションにおけるパフォーマンス問題の解決ベースのアプリケーションにおけるパフォーマンス問題の解決 ................. 5-22

問合せのチューニングのヒント ................................................................................................................. 5-22

アプリケーションのチューニングのヒント ............................................................................................. 5-23

パフォーマンス問題の診断 ......................................................................................................................... 5-23アドバンスト・キューイングおよびアドバンスト・キューイングおよびアドバンスト・キューイングおよびアドバンスト・キューイングおよび Real Application Clusters ................................................................. 5-24

キュー・テーブルのインスタンス・アフィニティ ................................................................................. 5-24

グローバル・キャッシュ・サービス・リソースの取得 ......................................................................... 5-25

アドバンスト・キューイングおよびキュー・テーブルのキャッシュ転送 ......................................... 5-25

6 Real Application Clusters およびインスタンス間パフォーマンスのおよびインスタンス間パフォーマンスのおよびインスタンス間パフォーマンスのおよびインスタンス間パフォーマンスの チューニングチューニングチューニングチューニング

キャッシュ・フュージョンによる現行のブロックおよび一貫性読込みブロックの作成方法キャッシュ・フュージョンによる現行のブロックおよび一貫性読込みブロックの作成方法キャッシュ・フュージョンによる現行のブロックおよび一貫性読込みブロックの作成方法キャッシュ・フュージョンによる現行のブロックおよび一貫性読込みブロックの作成方法 ................... 6-2

キャッシュ・フュージョンによるスケーラビリティの改善 ................................................................... 6-4

高速インターコネクトを経由したブロックの転送 ................................................................................... 6-5

ブロックのディスク書込みの強制実行による I/O の排除 ...................................................................... 6-5

複数インスタンスによって変更されたブロックによるホット・スポットを さらに削減するためのデータのパーティション化 ................................................................... 6-6

Real Application Clusters 用のインターコネクトおよびインターコネクト・プロトコル用のインターコネクトおよびインターコネクト・プロトコル用のインターコネクトおよびインターコネクト・プロトコル用のインターコネクトおよびインターコネクト・プロトコル ....................... 6-6

インターコネクト処理への影響 ................................................................................................................... 6-6キャッシュ・フュージョンのパフォーマンス期待値キャッシュ・フュージョンのパフォーマンス期待値キャッシュ・フュージョンのパフォーマンス期待値キャッシュ・フュージョンのパフォーマンス期待値 ....................................................................................... 6-7

キャッシュ・フュージョンおよびインスタンス間パフォーマンスの監視キャッシュ・フュージョンおよびインスタンス間パフォーマンスの監視キャッシュ・フュージョンおよびインスタンス間パフォーマンスの監視キャッシュ・フュージョンおよびインスタンス間パフォーマンスの監視 ................................................... 6-7キャッシュ・フュージョンおよびパフォーマンス監視の目標キャッシュ・フュージョンおよびパフォーマンス監視の目標キャッシュ・フュージョンおよびパフォーマンス監視の目標キャッシュ・フュージョンおよびパフォーマンス監視の目標 ....................................................................... 6-7Real Application Clusters およびキャッシュ・フュージョンを監視するための統計およびキャッシュ・フュージョンを監視するための統計およびキャッシュ・フュージョンを監視するための統計およびキャッシュ・フュージョンを監視するための統計 ............................... 6-8

CATCLUST.SQL による Real Application Clusters のデータ・ディクショナリ・ビューの作成 .... 6-9

iv

Page 7: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

グローバル動的パフォーマンス・ビュー ................................................................................................. 6-10

グローバル・キャッシュおよびキャッシュ・フュージョンの統計の分析 ......................................... 6-11

グローバル・エンキュー統計の分析 ......................................................................................................... 6-16

GES リソース、メッセージおよびメモリー・リソース統計の分析 .................................................... 6-18

GES メッセージの統計処理 ........................................................................................................................ 6-21

ブロック・モード変換のタイプ別分析 ..................................................................................................... 6-23

Real Application Clusters のラッチ統計の分析 ...................................................................................... 6-25V$SYSTEM_EVENT ビューを使用したパフォーマンス問題の識別ビューを使用したパフォーマンス問題の識別ビューを使用したパフォーマンス問題の識別ビューを使用したパフォーマンス問題の識別 .......................................................... 6-27

V$SYSTEM_EVENT の Real Application Clusters イベント ................................................................ 6-28

インスタンス間のパフォーマンス・チューニングのまとめ ................................................................. 6-29

第第第第 IV 部部部部 Oracle Enterprise Manager を使用したを使用したを使用したを使用した Real Application Clusters データベースの監視およびチューニングデータベースの監視およびチューニングデータベースの監視およびチューニングデータベースの監視およびチューニング

7 Oracle Performance Manager を使用したパフォーマンスの監視を使用したパフォーマンスの監視を使用したパフォーマンスの監視を使用したパフォーマンスの監視

Oracle Performance Manager の概要の概要の概要の概要 ................................................................................................................ 7-2Oracle Performance Manager の起動の起動の起動の起動 ................................................................................................................ 7-5

チャートの表示チャートの表示チャートの表示チャートの表示 ....................................................................................................................................................... 7-5

統計チャートの使用 ....................................................................................................................................... 7-7

第第第第 V 部部部部 Real Application Clusters のリファレンス情報のリファレンス情報のリファレンス情報のリファレンス情報

A マルチブロック・ロック割当ての構成(オプション)マルチブロック・ロック割当ての構成(オプション)マルチブロック・ロック割当ての構成(オプション)マルチブロック・ロック割当ての構成(オプション)

GCS およびおよびおよびおよび GES のリソース制御メカニズムの上書き前の注意のリソース制御メカニズムの上書き前の注意のリソース制御メカニズムの上書き前の注意のリソース制御メカニズムの上書き前の注意 ................................................................... A-2GCS 処理および処理および処理および処理および GES 処理の上書きの判断処理の上書きの判断処理の上書きの判断処理の上書きの判断 ....................................................................................................... A-2

ロックを使用する場合 ................................................................................................................................... A-3

GC_FILES_TO_LOCKS の設定の設定の設定の設定 .......................................................................................................................... A-4

GC_FILES_TO_LOCKS 構文 ........................................................................................................................ A-4

ロックの割当て例 ........................................................................................................................................... A-5

ブロッキング要素、エクステント割当ておよび空きリスト・グループ ............................................ A-10GC_FILES_TO_LOCKS の設定に対する追加の考慮点の設定に対する追加の考慮点の設定に対する追加の考慮点の設定に対する追加の考慮点 ............................................................................... A-14

データ・ファイルの拡張または追加 ........................................................................................................ A-14

GC_FILES_TO_LOCKS 設定に含めないファイル ................................................................................. A-14データべース設計上の考慮点および空きリスト・グループデータべース設計上の考慮点および空きリスト・グループデータべース設計上の考慮点および空きリスト・グループデータべース設計上の考慮点および空きリスト・グループ ........................................................................ A-15

ロックと空きリストとの対応付け ............................................................................................................ A-15

v

Page 8: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのパラレル実行のチューニング ............................................................. A-16Real Application Clusters のののの I/O 統計の分析統計の分析統計の分析統計の分析 ................................................................................................ A-17

V$SYSSTAT を使用した Real Application Clusters の I/O 統計の分析 ............................................. A-17不適切な強制書込みの検出によるマルチブロック・ロック使用量の監視不適切な強制書込みの検出によるマルチブロック・ロック使用量の監視不適切な強制書込みの検出によるマルチブロック・ロック使用量の監視不適切な強制書込みの検出によるマルチブロック・ロック使用量の監視 ................................................ A-19ロックの名前および書式ロックの名前および書式ロックの名前および書式ロックの名前および書式 .................................................................................................................................... A-21

ロック名の書式 ............................................................................................................................................ A-21

ロックの名前 ................................................................................................................................................ A-22

ロックのタイプおよび名前 ........................................................................................................................ A-22

B Real Application Clusters データベースの設計の事例データベースの設計の事例データベースの設計の事例データベースの設計の事例

事例の概要事例の概要事例の概要事例の概要 ............................................................................................................................................................... B-2事例事例事例事例 : 初期データベース設計から初期データベース設計から初期データベース設計から初期データベース設計から Real Application Clusters へへへへ ................................................................... B-3

Eddie Bean カタログ販売 .............................................................................................................................. B-3

Eddie Bean データべース表 .......................................................................................................................... B-3

Eddie Bean のユーザー .................................................................................................................................. B-4

Eddie Bean のアプリケーション・プロファイル ...................................................................................... B-4

表へのアクセスの分析表へのアクセスの分析表へのアクセスの分析表へのアクセスの分析 ........................................................................................................................................... B-5

表アクセス分析ワークシート ....................................................................................................................... B-5

事例 : 表アクセス分析 .................................................................................................................................... B-9

ユーザーごとのトランザクション量の分析ユーザーごとのトランザクション量の分析ユーザーごとのトランザクション量の分析ユーザーごとのトランザクション量の分析 .................................................................................................... B-10

トランザクション量の分析ワークシート ................................................................................................ B-10

事例 : トランザクション量の分析 ............................................................................................................. B-11

事例事例事例事例 : 初期パーティション化計画初期パーティション化計画初期パーティション化計画初期パーティション化計画 ..................................................................................................................... B-14

事例 : さらなるパーティション化計画 ..................................................................................................... B-15索引のパーティション化索引のパーティション化索引のパーティション化索引のパーティション化 .................................................................................................................................... B-17

設計の実装およびチューニング設計の実装およびチューニング設計の実装およびチューニング設計の実装およびチューニング ........................................................................................................................ B-17

用語集用語集用語集用語集

索引索引索引索引

vi

Page 9: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

vii

図目次図目次図目次図目次

2-1 n 層アーキテクチャのミドルウェア・コンポーネントおよび Real Application Clusters ......... 2-42-2 ディスク・アフィニティの例 ............................................................................................................. 2-104-1 レンジ・パーティション化された表に対するトランザクションのノード・アフィニティ ..... 4-186-1 キャッシュ・フュージョンによるインターコネクト経由のキャッシュ間ブロック転送 ........... 6-37-1 チャートの展開 ....................................................................................................................................... 7-6A-1 データ・ブロックへのロックのマッピング ....................................................................................... A-6A-2 GC_FILES_TO_LOCKS の例 5 ............................................................................................................. A-8A-3 GC_FILES_TO_LOCKS の例 6 ............................................................................................................. A-8A-4 GC_FILES_TO_LOCKS の例 7 ............................................................................................................. A-9A-5 GC_FILES_TO_LOCKS の例 8 ............................................................................................................. A-9A-6 Oracle によるブロックの割当てに従って移動する 高水位標があるファイル ....................... A-11A-7 エクステント内でのブロックの割当て ............................................................................................ A-13A-8 エクステントおよび空きリスト・グループ .................................................................................... A-15B-1 SELECT 操作または INSERT 操作ごとの I/O の数 .......................................................................... B-6B-2 事例 : ユーザーおよびデータのパーティション化 ......................................................................... B-14B-3 事例 : ユーザーおよびデータのパーティション化 : 設計オプション 1 ....................................... B-15B-4 事例 : ユーザーおよびデータのパーティション化 : 設計オプション 2 ....................................... B-16

Page 10: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

viii

表目次表目次表目次表目次

3-2 表アクセス・タイプの例 ..................................................................................................................... 3-133-1 オーバーラップしている表の例 ......................................................................................................... 3-133-3 表トランザクション・ボリュームの例 ............................................................................................. 3-145-1 メモリー・トレース・ファイルおよびその格納先 ........................................................................... 5-45-2 V$SYSSTAT の統計およびクラス ...................................................................................................... 5-55-3 グローバル・キャッシュの一貫性と競合のビューおよび統計 ................................................... 5-137-1 パフォーマンス・チャート ................................................................................................................. 7-3A-1 ロックを使用する場合 ........................................................................................................................... A-3A-2 強制書込み率の解析 ............................................................................................................................ A-19A-3 ロックのタイプおよび名前 .............................................................................................................. A-22B-1 Eddie Bean サンプル表 .......................................................................................................................... B-3B-2 表アクセス分析ワークシート ............................................................................................................... B-5B-3 操作ごとの I/O 数 : サンプル order_header 表 ................................................................................. B-8B-4 操作ごとの I/O 数 : その他のサンプル表 ........................................................................................... B-8B-5 事例 : 表アクセス分析ワークシート .................................................................................................... B-9B-6 トランザクション量の分析ワークシート ........................................................................................ B-10B-7 事例 : トランザクション量分析 : order_header 表 ......................................................................... B-11B-8 事例 : トランザクション量分析 : order_item 表 ............................................................................. B-12B-9 事例 : トランザクション量分析 : accounts_payable 表 ................................................................. B-13

Page 11: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

はじめにはじめにはじめにはじめに

このマニュアルでは、Oracle9i Real Application Clusters データベースを使用するアプリケーションの配置について説明します。また、配置後に 適なパフォーマンスを得るために行う、Real Application Clusters 環境のチューニングについても説明します。

このマニュアルの情報は、すべてのオペレーティング・システム上で動作する Real Application Clusters に適用されます。必要に応じて、プラットフォーム固有のマニュアルも参照してください。

内容は次のとおりです。

� 対象読者

� このマニュアルの構成

� 関連ドキュメント

� 表記規則

参照参照参照参照 : オンラインの Oracle9i Real Application Clusters ドキュメント・セットの使用については、『Oracle9i Real Application Clusters ドキュメンテーションおよびロードマップ』を参照してください。

ix

Page 12: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

対象読者対象読者対象読者対象読者このマニュアルは、Real Application Clusters を操作するデータベース管理者およびアプリケーション開発者を対象としています。このマニュアルは、『Oracle9i Real Application Clusters 概要』に記載されている Real Application Clusters での処理の概念、ソフトウェアおよびハードウェア・コンポーネントの概念を理解していることを前提としています。また、『Oracle9i Real Application Clusters インストレーションおよび構成』およびプラットフォーム固有の関連ドキュメントを参照して、Real Application Clusters をインストールしておく必要があります。

このマニュアルの構成このマニュアルの構成このマニュアルの構成このマニュアルの構成このマニュアルの構成は、次のとおりです。

第第第第 I 部部部部 : Real Application Clusters の配置の概要の配置の概要の配置の概要の配置の概要

第 I 部では、Oracle9i の機能を活用する方法を説明し、Real Application Clusters におけるアプリケーションの配置の概要を説明します。E-Commerce およびデータ・ウェアハウス環境におけるインターネット・ベースのアプリケーションの配置についても説明します。

第第第第 1 章「章「章「章「Real Application Clusters アプリケーションの配置の概要」アプリケーションの配置の概要」アプリケーションの配置の概要」アプリケーションの配置の概要」

この章では、Real Application Clusters 環境における配置の問題について説明します。

第第第第 2 章「章「章「章「Real Application Clusters でのオンラインでのオンラインでのオンラインでのオンライン E-Commerce およびデータ・ウェアハおよびデータ・ウェアハおよびデータ・ウェアハおよびデータ・ウェアハウス・アプリケーションの配置」ウス・アプリケーションの配置」ウス・アプリケーションの配置」ウス・アプリケーションの配置」

この章では、E-Commerce ベースのオンライン・アプリケーションおよびオンライン・データ・ウェアハウス・アプリケーションの配置について説明します。

第第第第 II 部部部部 : Real Application Clusters アプリケーションの拡張およびデータアプリケーションの拡張およびデータアプリケーションの拡張およびデータアプリケーションの拡張およびデータベースの設計ベースの設計ベースの設計ベースの設計

第 II 部では、Real Application Clusters にスケーラブルなアプリケーションを配置するための技術的な問題およびデータベースの設計方法を説明します。

第第第第 3 章「章「章「章「Real Application Clusters アプリケーションの拡張」アプリケーションの拡張」アプリケーションの拡張」アプリケーションの拡張」

この章では、Real Application Clusters 環境に配置するために、アプリケーションのスケーラビリティを 適化する方法を説明します。

第第第第 4 章「章「章「章「Real Application Clusters データベースの設計」データベースの設計」データベースの設計」データベースの設計」

この章では、ブロックおよびエクステント操作、競合の削減、リソース制御方法などの、Real Application Clusters データベースの設計について説明します。

x

Page 13: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

第第第第 III 部部部部 : Real Application Clusters のパフォーマンスの監視およびチューのパフォーマンスの監視およびチューのパフォーマンスの監視およびチューのパフォーマンスの監視およびチューニングニングニングニング

第 III 部では、Real Application Clusters のパフォーマンスの監視およびチューニング手順について説明します。

第第第第 5 章「章「章「章「Real Application Clusters のチューニングの一般的な推奨事項」のチューニングの一般的な推奨事項」のチューニングの一般的な推奨事項」のチューニングの一般的な推奨事項」

この章では、Real Application Clusters のチューニングに関する一般的な推奨事項を示します。

第第第第 6 章「章「章「章「Real Application Clusters およびインスタンス間パフォーマンスのチューニング」およびインスタンス間パフォーマンスのチューニング」およびインスタンス間パフォーマンスのチューニング」およびインスタンス間パフォーマンスのチューニング」

この章では、Real Application Clusters におけるインスタンス間のパフォーマンスの監視およびチューニング方法を説明します。

第第第第 IV 部部部部 : Oracle Enterprise Manager を使用したを使用したを使用したを使用した Real Application Clusters データベースの監視およびチューニングデータベースの監視およびチューニングデータベースの監視およびチューニングデータベースの監視およびチューニング

第 IV 部では、Oracle Enterprise Manager を使用した Real Application Clusters データベースのパフォーマンスの監視について説明します。

第第第第 7 章「章「章「章「Oracle Performance Manager を使用したパフォーマンスの監視」を使用したパフォーマンスの監視」を使用したパフォーマンスの監視」を使用したパフォーマンスの監視」

この章では、Oracle Enterprise Manager を使用して Real Application Clusters データベースを監視およびチューニングする方法を説明します。

第第第第 V 部部部部 : Real Application Clusters のリファレンス情報のリファレンス情報のリファレンス情報のリファレンス情報

第 V 部では、Real Application Clusters の配置およびパフォーマンスのリファレンス情報を示します。

付録付録付録付録 A「マルチブロック・ロック割当ての構成(オプション)」「マルチブロック・ロック割当ての構成(オプション)」「マルチブロック・ロック割当ての構成(オプション)」「マルチブロック・ロック割当ての構成(オプション)」

この付録では、Real Application Clusters のデフォルトのリソース制御メカニズムをオーバーライドする方法を説明します。

付録付録付録付録 B「「「「Real Application Clusters データベースの設計の事例」データベースの設計の事例」データベースの設計の事例」データベースの設計の事例」

この付録では、Real Application Clusters の配置の例を示します。

用語集用語集用語集用語集

用語集では、このマニュアルで使用する用語およびこのマニュアルに関連する用語の定義を示します。

xi

Page 14: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

関連ドキュメント関連ドキュメント関連ドキュメント関連ドキュメント詳細は、次の Oracle マニュアルを参照してください。

� 『Oracle9i Real Application Clusters ドキュメンテーションおよびロードマップ』

� 『Oracle9i Real Application Clusters 概要』

� 『Oracle9i Real Application Clusters インストレーションおよび構成』

� 『Oracle9i Real Application Clusters 管理』

� 『Oracle Real Application Clusters Guard 管理およびリファレンス・ガイド』

� 『Oracle9i Real Application Clusters Guard for UNIX Systems 構成ガイド』

インストレーション・ガイドインストレーション・ガイドインストレーション・ガイドインストレーション・ガイド

� 『Oracle9i for UNIX Systems インストレーション・ガイド』

� 『Oracle9i Database for Windows インストレーション・ガイド』

オペレーティング・システム固有の管理ガイドオペレーティング・システム固有の管理ガイドオペレーティング・システム固有の管理ガイドオペレーティング・システム固有の管理ガイド

� 『Oracle9i for UNIX Systems 管理者リファレンス』

� 『Oracle9i Database for Windows 管理者ガイド』

Oracle9i Real Application Clusters の管理ガイドの管理ガイドの管理ガイドの管理ガイド

� 『Oracle9i Real Application Clusters 管理』

� 『Oracle Enterprise Manager 管理者ガイド』

� 『Oracle Enterprise Manager Oracle Diagnostics Pack スタート・ガイド』

xii

Page 15: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

共通のマニュアル共通のマニュアル共通のマニュアル共通のマニュアル

� 『Oracle9i データベース概要』

� 『Oracle9i Net Services 管理者ガイド』

� 『Oracle9i データベース・リファレンス』

� 『Oracle9i データベース新機能』

このマニュアルの多くの例で、Oracle のインストール時にデフォルトとしてインストールされるシード・データベースシード・データベースシード・データベースシード・データベースのサンプル・スキーマを使用しています。スキーマの作成方法および使用方法の詳細は、『Oracle9i サンプル・スキーマ』を参照してください。

リリース・ノート、インストール・マニュアル、ホワイト・ペーパーまたはその他の関連書籍は、Oracle Technology Network(OTN)に接続すれば、無償でダウンロードできます。OTN を利用するには、オンライン登録をする必要があります。次の URL で登録きます。

http://otn.oracle.co.jp/membership/

すでに OTN のユーザー名およびパスワードを所有している場合は、OTN の Web サイトからドキュメントを参照およびダウンロードすることが可能です。

http://otn.oracle.co.jp/document/

xiii

Page 16: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

表記規則表記規則表記規則表記規則この項では、このマニュアルの本文およびコード例で使用される表記規則について説明します。この項の内容は次のとおりです。

� 本文中の表記規則

� コード例中の表記規則

本文中の表記規則本文中の表記規則本文中の表記規則本文中の表記規則

本文では、特別な用語をより迅速に識別できるように、様々な表記規則を使用します。次の表に、それらの表記規則を説明し、その使用例を示します。

表記規則表記規則表記規則表記規則 意味意味意味意味 例例例例

太字太字太字太字 太字は、本文中で定義されている用語または用語集に記載されている用語(あるいはその両方)を示します。

この句を指定すると、索引構成表索引構成表索引構成表索引構成表が作成されます。

大文字の固定幅フォント

大文字の固定幅フォントは、システムが提供する要素を示します。このような要素には、パラメータ、権限、データ型、RMANキーワード、SQL*Plus またはユーティリ

ティ・コマンド、パッケージおよびメソッドが含まれます。また、システムが提供する列名、データベース・オブジェクト、データベース構造、ユーザー名およびロールも含まれます。

NUMBER列に対してのみ、この句を指定できます。

BACKUPコマンドを使用して、データベースの

バックアップを取ることができます。

USER_TABLESデータ・ディクショナリ・ビュー

内の TABLE_NAME列を問い合せます。

DBMS_STATS.GENERATE_STATSプロシージャを

使用します。

小文字の固定幅フォント

小文字の固定幅フォントは、実行可能ファイル、ディレクトリ名およびユーザーが提供する要素のサンプルを示します。このような要素には、コンピュータ名、データベース名、ネット・サービス名および接続識別子が含まれます。また、ユーザーが提供するデータベース・オブジェクトとデータベース構造、列名、パッケージとクラス、ユーザー名とロール、プログラム・ユニットおよびパラメータ値も含まれます。

注意注意注意注意 : 大文字と小文字を組み合わせて使用

するプログラム要素もあります。これらの要素は、記載されているとおりに入力してください。

sqlplusと入力し、SQL*Plus を起動します。

パスワードは、orapwdファイルで指定します。

/disk1/oracle/dbsディレクトリ内のデータ・

ファイルおよび制御ファイルのバックアップを取ります。

hr.departments表には、department_id、department_nameおよび location_id列があ

ります。

QUERY_REWRITE_ENABLED初期化パラメータを

trueに設定します。

oeユーザーとして接続します。

JRepUtilクラスが次のメソッドを実装します。

xiv

Page 17: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

コード例中の表記規則コード例中の表記規則コード例中の表記規則コード例中の表記規則

コード例は、SQL、PL/SQL、SQL*Plus またはその他のコマンドライン文を説明します。コード例は、固定幅フォントで表示され、次の例に示すとおり、通常のテキストと区別されます。

SELECT username FROM dba_users WHERE username = 'MIGRATE';

次の表に、コード例で使用される表記規則を説明し、その使用例を示します。

小文字の固定幅フォントのイタリック体

小文字の固定幅フォントのイタリック体は、プレースホルダまたは変数を示します。

parallel_clauseを指定できます。

Uold_release.SQLを実行します。ここで、

old_releaseとはアップグレード前にインス

トールしたリリースを示します。

表記規則表記規則表記規則表記規則 意味意味意味意味 例例例例

[ ] 大カッコは、任意に選択する 1 つ以上の項

目を囲みます。大カッコは、入力しないでください。

DECIMAL (digits [ , precision ])

{ } 中カッコは、2 つ以上の項目を囲み、そのう

ちの 1 つの項目は必須です。中カッコは、

入力しないでください。

{ENABLE | DISABLE}

| 縦線は、大カッコまたは中カッコ内の 2 つ

以上の選択項目を表します。オプションのうちの 1 つを入力します。縦線は、入力し

ないでください。

{ENABLE | DISABLE}

[COMPRESS | NOCOMPRESS]

... 水平の省略記号は、次のいずれかを示します。

� 例に直接関連しないコードの一部が省略されている。

� コードの一部を繰り返すことができる。

CREATE TABLE ... AS subquery;

SELECT col1, col2, ... , coln FROM employees;

...垂直の省略記号は、例に直接関連しない複数の行が省略されていることを示します。

その他の句読点 大カッコ、中カッコ、縦線および省略記号以外の句読点は、表示されているとおり入力する必要があります。

acctbal NUMBER(11,2);

acct CONSTANT NUMBER(4) := 3;

イタリック体 イタリック体は、特定の値を指定する必要があるプレースホルダまたは変数を示します。

CONNECT SYSTEM/system_password

DB_NAME = database_name

表記規則表記規則表記規則表記規則 意味意味意味意味 例例例例

xv

Page 18: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

大文字 大文字は、システムが提供する要素を示します。これらの用語は、ユーザー定義の用語と区別するために大文字で示されます。用語が大カッコ内にないかぎり、表示されているとおりの順序および綴りで入力します。ただし、これらの用語は大文字 / 小文

字が区別されないため、小文字でも入力できます。

SELECT last_name, employee_id FROM employees;

SELECT * FROM USER_TABLES;

DROP TABLE hr.employees;

小文字 小文字は、ユーザー定義のプログラム要素を示します。表名、列名、ファイル名などです。

注意注意注意注意 : 大文字と小文字を組み合わせて使用

するプログラム要素もあります。これらの要素は記載されているとおりに入力してください。

SELECT last_name, employee_id FROM employees;

sqlplus hr/hr

CREATE USER mjones IDENTIFIED BY ty3MU9;

表記規則表記規則表記規則表記規則 意味意味意味意味 例例例例

xvi

Page 19: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters の配置およびの配置およびの配置およびの配置およびパフォーマンスに関連する新機能パフォーマンスに関連する新機能パフォーマンスに関連する新機能パフォーマンスに関連する新機能

ここでは、Oracle9i Real Application Clusters リリース 1(9.0.1)の配置およびチューニングに関連する新機能について説明します。内容は次のとおりです。

� Oracle9i Real Application Clusters リリース 1(9.0.1)の配置およびチューニングのための新機能

参照参照参照参照 : Real Application Clusters の新機能の詳細は、『Oracle9i Real Application Clusters 概要』を参照してください。

xvii

Page 20: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Oracle9i Real Application Clusters リリースリリースリリースリリース 1((((9.0.1)の配置および)の配置および)の配置および)の配置およびチューニングのための新機能チューニングのための新機能チューニングのための新機能チューニングのための新機能

次に示す Oracle9i Real Application Clusters リリース 1(9.0.1)の機能および拡張によって、アプリケーションの配置が容易になります。

Real Application Clusters は、以前の Oracle クラスタ・ソフトウェアを超えるスケーラビリティおよび高可用性機能を提供する新しいアーキテクチャです。

� 画期的なキャッシュ・フュージョン・テクノロジによって、様々なタイプのオンライン画期的なキャッシュ・フュージョン・テクノロジによって、様々なタイプのオンライン画期的なキャッシュ・フュージョン・テクノロジによって、様々なタイプのオンライン画期的なキャッシュ・フュージョン・テクノロジによって、様々なタイプのオンラインE-Commerce アプリケーションおよび意思決定支援(アプリケーションおよび意思決定支援(アプリケーションおよび意思決定支援(アプリケーションおよび意思決定支援(DSS)アプリケーションを簡単に)アプリケーションを簡単に)アプリケーションを簡単に)アプリケーションを簡単に配置できます。配置できます。配置できます。配置できます。

コードをほとんど変更することなく、Real Application Clusters に様々なタイプのアプリケーションを配置できます。

� キャッシュ・フュージョンによって、キャッシュ・フュージョンによって、キャッシュ・フュージョンによって、キャッシュ・フュージョンによって、Real Application Clusters 環境でアプリケーショ環境でアプリケーショ環境でアプリケーショ環境でアプリケーションがアクセスするファイルのリソース割当てが自動的に制御されます。ンがアクセスするファイルのリソース割当てが自動的に制御されます。ンがアクセスするファイルのリソース割当てが自動的に制御されます。ンがアクセスするファイルのリソース割当てが自動的に制御されます。

Oracle クラスタ・ソフトウェアでアプリケーションを起動するときに、データ・ファイルにロックを割り当てたり、アプリケーションをパーティション化する必要はありません。また、Real Application Clusters は、キャッシュ間でブロックを直接転送するため、パフォーマンスが向上します。

� 次の次の次の次の 3 つの新規ビューを使用して、つの新規ビューを使用して、つの新規ビューを使用して、つの新規ビューを使用して、Oracle がリソースをマスター化する方法を調べるこがリソースをマスター化する方法を調べるこがリソースをマスター化する方法を調べるこがリソースをマスター化する方法を調べることができます。とができます。とができます。とができます。

– V$GCSHVMASTER_INFO特定のマスターにマッピングされているファイルに属するリソース以外のグローバル・キャッシュ・サービス(GCS)のリソース用

– V$GCSPFMASTER_INFOインスタンスにマッピングされているファイルに属する GCS のリソース用

– V$HVMASTER_INFOグローバル・エンキュー・サービス(GES)のリソース用

これらのビューは、現在および以前のマスター・インスタンスとグローバル・キャッシュ数(V$GCSHVMASTER_INFO)、およびシングル・インスタンスから頻繁にアクセスされるファイルに属するグローバル・キャッシュ・リソース(V$GCSPFMASTER_INFO)を追跡します。また、エンキュー・リソース(V$HVMASTER_INFO)の再マスター化数も追跡します。

参照参照参照参照 : 第 I 部「Real Application Clusters の配置の概要」を参照してください。

参照参照参照参照 : 第 II 部「Real Application Clusters アプリケーションの拡張およびデータベースの設計」を参照してください。

xviii

Page 21: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

� 自動 UNDO 管理

– Real Application Clusters アプリケーションは、自動 UNDO 管理を使用して配置することをお薦めします。自動 UNDO 管理を使用すると、UNDO 表領域の管理オーバーヘッドを 小限に抑えることができます。

参照参照参照参照 : 自動 UNDO 管理の詳細は、『Oracle9i Real Application Clusters 管理』を参照してください。

xix

Page 22: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

xx

Page 23: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

第第第第I部部部部

Real Application Clusters の配置の概要の配置の概要の配置の概要の配置の概要

第 I 部では、Real Application Clusters アプリケーションの開発について説明します。ここでは、Real Application Clusters 環境で、Oracle の高可用性およびスケーラビリティ機能を活用する方法を説明します。第 I 部に含まれる章は、次のとおりです。

� 第 1 章「Real Application Clusters アプリケーションの配置の概要」

� 第 2 章「Real Application Clusters でのオンライン E-Commerce およびデータ・ウェアハウス・アプリケーションの配置」

Page 24: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:
Page 25: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters アプリケーションの配置の

1

Real Application Clusters アプリケーションのアプリケーションのアプリケーションのアプリケーションの

配置の概要配置の概要配置の概要配置の概要

この章では、Oracle Real Application Clusters アプリケーションの配置の問題について説明します。まず、Real Application Clusters のスケーラビリティ機能を活用するための考慮点について説明します。次に、Real Application Clusters 環境でのアプリケーションの配置に関する一般的な問題について説明します。

内容は次のとおりです。

� Oracle9i 機能の活用

� Real Application Clusters での Oracle9i 機能の実装

� Real Application Clusters の配置フェーズ

概要 1-1

Page 26: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Oracle9i 機能の活用

Oracle9i 機能の活用機能の活用機能の活用機能の活用Oracle9i Real Application Clusters 環境でアプリケーションを 適に配置するには、この章で説明する Oracle 機能の問題を考慮する必要があります。これらの機能を正しく実装することによって、配置および統合の問題を 小限に抑えることができます。また、システムで、キャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョン・テクノロジおよび Real Application Clusters の高性能な機能を十分に活用できます。

この章では、Real Application Clusters アプリケーションの配置に関する機能の概要を説明します。これらの機能の詳細は、記載されている Oracle マニュアルを参照してください。

Real Application Clusters でのでのでのでの Oracle9i 機能の実装機能の実装機能の実装機能の実装Oracle9i Real Application Clusters のパフォーマンスを 適化するには、アプリケーションの配置に関するいくつかの問題を考慮する必要があります。これらの問題は、Oracle 固有の機能、および Real Application Clusters のパフォーマンスを向上させる機能に関連しています。この項で説明する機能は次のとおりです。

� Real Application Clusters での高可用性およびフェイルオーバー

� Real Application Clusters での Oracle Net

� Real Application Clusters での共有サーバー

� 接続時ロード・バランス

� Real Application Clusters での透過的アプリケーション・フェイルオーバー

� Real Application Clusters での PL/SQL

� Real Application Clusters での Recovery Manager(RMAN)

� Real Application Clusters でのクラスタ・ファイル・システム

Real Application Clusters での高可用性およびフェイルオーバーでの高可用性およびフェイルオーバーでの高可用性およびフェイルオーバーでの高可用性およびフェイルオーバー高可用性システムとは、障害が発生した場合でも操作を維持するために、冗長ハードウェアおよびソフトウェアを備えたシステムです。適切に設計された高可用性システムによって、単一の致命的な障害箇所を回避できます。障害が発生すると、フェイルオーバーによって、障害コンポーネントが実行していた処理がバックアップ・コンポーネントに移されます。Oracle のフェイルオーバー・プロセスによって、リソースが早急に再マスター化され、トランザクションの一部や障害トランザクションがリカバリされて、システムが迅速にリストアされます。

1-2 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 27: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での Oracle9i 機能の実装

多くの Oracle 製品と機能を組み合せることで、信頼性の高いコンピューティング環境を構築できます。そのためには、容量と冗長性を計画する必要があります。また、期待値を設定し、品質保証契約を調べる必要もあります。さらに、システム全体のコストおよび投資効率も考慮する必要があります。また、適切なハードウェアの選択や、高可用性構成の一部として同時に動作するアイドル状態のマシンを使用するかどうかの決定など、その他にも現実的な考慮点があります。

プライマリプライマリプライマリプライマリ / セカンダリ構成およびアクティブセカンダリ構成およびアクティブセカンダリ構成およびアクティブセカンダリ構成およびアクティブ / アクティブ・インスタアクティブ・インスタアクティブ・インスタアクティブ・インスタンス構成ンス構成ンス構成ンス構成プライマリ / セカンダリ構成は、設定が も簡単な高可用性構成です。また、管理が も簡単な構成でもあります。たとえば、この構成におけるプライマリ・データベースの管理オーバーヘッドは、シングル・インスタンスインスタンスインスタンスインスタンス構成のオーバーヘッドと同じです。

プライマリ / セカンダリ構成では、セカンダリ・インスタンスをアイドル状態にしておく必要はありません。たとえば、セカンダリ・インスタンスを読取り専用操作に使用することができます。

プライマリ / セカンダリ構成のスケーラビリティは特に優れていませんが、高可用性は備えています。一方、アクティブ / アクティブ・インスタンス構成はより複雑です。アクティブ/ アクティブ構成では、パフォーマンスが重要な要素です。

Real Application Clusters の拡張構成である Oracle Real Application Clusters Guard は、さらに別の高可用性のソリューションを提供します。Real Application Clusters Guard は、プラットフォームのクラスタクラスタクラスタクラスタ・フレームワーク内で、Oracle の高度なリカバリ機能を緊密に統合します。Real Application Clusters Guard は、特定の UNIX 構成でのみ使用可能です。

Real Application Clusters でのでのでのでの Oracle NetOracle Net によって、サービスやそのアプリケーションを別のコンピュータに置き、相互に通信させることができます。Oracle Net は、ネットワーク・セッションを確立し、クライアント / サーバー間または 2 つのサーバー間でデータを転送します。Real Application Clusters で接続を確立するには Oracle Net が必要です。ネットワーク内の各マシンに Oracle Net をインストールする必要があります。

参照参照参照参照 : Real Application Clusters と高可用性の詳細、および Real Application Clusters Guard の概要については、『Oracle9i Real Application Clusters 概要』を参照してください。

参照参照参照参照 : Oracle Net の詳細は、『Oracle9i Net Services 管理者ガイド』を参照してください。

Real Application Clusters アプリケーションの配置の概要 1-3

Page 28: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での Oracle9i 機能の実装

Real Application Clusters での共有サーバーでの共有サーバーでの共有サーバーでの共有サーバー共有サーバー共有サーバー共有サーバー共有サーバーの機能を持つ Real Application Clusters は、何千ものデータベース同時接続ユーザーを処理できます。共有サーバーは、多数のユーザーの接続ロードを管理する場合に非常に有効です。共有サーバーは、トランザクション・モニタートランザクション・モニタートランザクション・モニタートランザクション・モニターと同様に機能します。

共有サーバーを備えた Real Application Clusters によって、2 つ以上の小規模なコンピュータ上で実行するアプリケーションのパフォーマンスが大幅に向上します。共有サーバーは、アプリケーションを再作成しなくても使用できます。実際、アプリケーションによっては、共有サーバーを使用しない場合より使用した場合の方がパフォーマンスが向上する場合もあります。

共有サーバー構成では、ユーザー・プロセスはディスパッチャディスパッチャディスパッチャディスパッチャに接続します。接続されたディスパッチャは、複数のネットワーク・セッションの受信要求を共通キューに送ります。サーバー・プロセスが使用可能になると、ディスパッチャは、受信要求をアイドル状態のサーバー・プロセスに接続します。その接続が不要になると、サーバー・プロセスは他の要求で使用可能になります。そのため、少数のサーバー・プロセスで、多数のクライアントに対応できます。

接続時ロード・バランス接続時ロード・バランス接続時ロード・バランス接続時ロード・バランス接続時ロード・バランス接続時ロード・バランス接続時ロード・バランス接続時ロード・バランス機能は、アクティブ・インスタンス間で接続を自動的に分散させます。これは、クラスタ内の各ノードノードノードノードおよびインスタンスの負荷に基づいて行われます。接続接続接続接続時ロード・バランス時ロード・バランス時ロード・バランス時ロード・バランスは、共有サーバー環境と専用サーバー専用サーバー専用サーバー専用サーバー環境の両方で使用できます。Real Application Clusters とキャッシュ・フュージョンを接続時ロード・バランスと組み合せることで、アプリケーションまたはデータをパーティション化せずに、様々なアプリケーションを実行できます。

Real Application Clusters での透過的アプリケーション・フェイルオーバーでの透過的アプリケーション・フェイルオーバーでの透過的アプリケーション・フェイルオーバーでの透過的アプリケーション・フェイルオーバー透過的アプリケーション・フェイルオーバー透過的アプリケーション・フェイルオーバー透過的アプリケーション・フェイルオーバー透過的アプリケーション・フェイルオーバー((((TAF))))機能は、接続に失敗した場合に、自動的にアプリケーションをデータベースに再接続します。再接続は OCI ライブラリ内で自動的に行われるため、TAF を使用するようにクライアント・アプリケーションを変更する必要はありません。

ほとんどの TAF 機能はクライアント側のネットワーク・ライブラリ(OCI)に実装されるため、クライアントが TAF 機能を活用するには、Oracle Net の OCI ライブラリを使用する必要があります。そのため、Real Application Clusters で TAF を実装するには、PL/SQL パッケージではなく JDBC OCI を使用してください。

注意注意注意注意 : 共有サーバーとロード・バランスロード・バランスロード・バランスロード・バランス機能を使用するには、Oracle Net をインストールする必要があります。

1-4 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 29: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での Oracle9i 機能の実装

TAF は、プライマリ / セカンダリ・インスタンス構成でも使用できます。これを行うには、接続記述子の Connect Data 部分に INSTANCE_ROLEパラメータを使用して、明示的にセカンダリ・インスタンス接続を設定します。

TAF を使用するには、Oracle9i Enterprise Edition のライセンスが必要です。TAF は Real Application Clusters 用に設計されているため、Real Application Clusters 環境用には非常に簡単に構成できますが、Real Application Clusters 以外の環境でも使用できます。TAF は、シングル・インスタンスの Oracle でも使用できます。また、次のようなシステムでも使用できます。

� Oracle Real Application Clusters Guard

� レプリケーション

� Data Guard

注意注意注意注意 : Real Application Clusters は Thin JDBC および JDBC OCI の両方をサポートしますが、TAF は JDBC OCI でのみサポートされます。

参照参照参照参照 : Real Application Clusters での INSTANCE_ROLEパラメータの使用については、『Oracle9i Real Application Clusters 管理』を参照してください。また、このパラメータの詳細および例は、『Oracle9i Net Services 管理者ガイド』を参照してください。

参照参照参照参照 :

� Oracle Real Application Clusters Guard および Real Application Clusters における TAF の概要は、『Oracle9i Real Application Clusters概要』を参照してください。

� TAF の詳細は、『Oracle9i Net Services 管理者ガイド』および『Oracle Call Interface プログラマーズ・ガイド』を参照してください。

� Oracle Replication の詳細は、『Oracle9i レプリケーション』を参照してください。

Real Application Clusters アプリケーションの配置の概要 1-5

Page 30: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での Oracle9i 機能の実装

Real Application Clusters でのでのでのでの PL/SQLPL/SQL は、Oracle が提供する、SQL のプロシージャ拡張です。PL/SQL は、データのカプセル化、オーバーロード、コレクション型、例外処理、情報隠蔽などの機能を提供する高度な 4GL プログラミング言語です。また、PL/SQL は、透過的な SQL アクセス、Oracle サーバーおよびツール製品との緊密な統合、移植性およびセキュリティも提供します。

Real Application Clusters でのでのでのでの Recovery Manager((((RMAN))))Recovery Manager((((RMAN))))は Oracle のツール製品の 1 つです。RMAN を使用すると、データ・ファイルデータ・ファイルデータ・ファイルデータ・ファイル、制御ファイル制御ファイル制御ファイル制御ファイルおよびアーカイブ REDO ログをバックアップ、コピー、リストアおよびリカバリできます。RMAN は、コマンドライン・ユーティリティとして起動するか、Oracle Enterprise Manager を介して使用できます。

RMAN は、多くのバックアップおよびリカバリ・タスクを自動化します。たとえば、各データ・ファイルの適切なバックアップの場所を自動的に特定し、正しいコピー先にコピーします。これによって、同じタスクを実行するために、オペレーティング・システム・コマンドを使用して、エラーが発生しやすい操作を手動で行う必要がなくなります。

RMAN は、すべてのインスタンスがクラスタ内のすべてのアーカイブ・ログにアクセスできるように、正確に構成する必要があります。あるインスタンスに障害が発生すると、リカバリを実行する、障害が発生していないインスタンスは、障害が発生したインスタンスのアーカイブ・ログにアクセスする必要があります。

Real Application Clusters でのクラスタ・ファイル・システムでのクラスタ・ファイル・システムでのクラスタ・ファイル・システムでのクラスタ・ファイル・システムOracle9i は、特定のプラットフォームでクラスタ・ファイル・システムをサポートします。クラスタ・ファイル・システムを使用すると、Real Application Clusters のインストールおよび管理が容易になります。また、RAW デバイスデバイスデバイスデバイスを管理する必要がなくなります。さらに、スケーラブルで待機時間の短い、高リジリエンスのファイル・システムであるため、ストレージ・コストが大幅に削減されます。クラスタ・ファイル・システムの実装方法の詳細は、ベンダー固有のクラスタ・ファイル・システムのマニュアルを参照してください。

参照参照参照参照 : PL/SQL の詳細は、『PL/SQL ユーザーズ・ガイドおよびリファレンス』を参照してください。

参照参照参照参照 : Real Application Clusters で RMAN を使用するように構成する方法は、『Oracle9i Real Application Clusters 管理』を参照してください。また、RMAN の詳細は、『Oracle9i Recovery Manager ユーザーズ・ガイド』および『Oracle9i Recovery Manager リファレンス』を参照してください。

1-6 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 31: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters の配置フェーズ

Real Application Clusters の配置フェーズの配置フェーズの配置フェーズの配置フェーズ第 2 章では、オンライン E-Commerce および意思決定支援システム用のアプリケーション開発について説明します。このマニュアルの後半では、Real Application Clusters における配置の設計フェーズおよびパフォーマンス・フェーズについて説明します。

1. 第 3 章「Real Application Clusters アプリケーションの拡張」および第 4 章「Real Application Clusters データベースの設計」に記載されている問題を考慮して、アプリケーションを設計します。

2. アプリケーションをインストールし、データベースを移入して、アプリケーションを起動します。

3. 第 III 部および第 IV 部に記載されているとおり、Real Application Clusters 環境を監視し、パフォーマンスを調べ、Real Application Clusters データベースおよびアプリケーションをチューニングします。

Real Application Clusters アプリケーションの配置の概要 1-7

Page 32: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters の配置フェーズ

1-8 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 33: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのオンライン E-Commerce およびデータ・ウェアハウス・アプリケーションの

2

Real Application Clusters でのオンラインでのオンラインでのオンラインでのオンライン

E-Commerce およびデータ・ウェアハウス・およびデータ・ウェアハウス・およびデータ・ウェアハウス・およびデータ・ウェアハウス・アプリケーションの配置アプリケーションの配置アプリケーションの配置アプリケーションの配置

この章では、Oracle Real Application Clusters 環境でのオンライン E-Commerce(OLTP)アプリケーションおよびデータ・ウェアハウス・アプリケーションの配置について説明します。また、アプリケーションのパフォーマンス・チューニングについても説明します。

内容は次のとおりです。

� Real Application Clusters のキャッシュ・フュージョンおよび E-Commerce アプリケーション

� キャッシュ・フュージョンによる柔軟な実装

� Real Application Clusters ベースのアプリケーションの配置方法

� Real Application Clusters でのデータ・ウェアハウス・アプリケーションの配置

� Real Application Clusters アプリケーションの配置およびチューニング

配置 2-1

Page 34: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters のキャッシュ・フュージョンおよび E-Commerce アプリケーション

Real Application Clusters のキャッシュ・フュージョンおよびのキャッシュ・フュージョンおよびのキャッシュ・フュージョンおよびのキャッシュ・フュージョンおよびE-Commerce アプリケーションアプリケーションアプリケーションアプリケーション

キャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョン処理を行うと、Real Application Clusters データベースは、オンライン E-Commerce アプリケーションに 適な配置サーバーになります。これは、これらのアプリケーションには次の要件があるためです。

� 高可用性

� スケーラビリティ

� 需要変動に応じたロード・バランス

キャッシュ・フュージョンは、高可用性を保持するために、複数インスタンス処理機能を提供します。これによって、処理を中断することなく、障害が発生していないインスタンスに作業負荷を再分散します。また、Real Application Clusters は、リソースを自動的に再マスター化して、特定のデータ・ファイルに対するほとんどのアクティビティ(たとえば、デーデーデーデータ・ファイルタ・ファイルタ・ファイルタ・ファイルに対するリソースの幅広い制御)をインスタンスインスタンスインスタンスインスタンスに提供します。

キャッシュ・フュージョンは、優れたスケーラビリティも提供します。これによって、ノーノーノーノードドドドを追加または置き換えた場合に、Oracle はリソースを自動的に再マスター化して、再構成またはアプリケーションの再パーティション化を行うことなく、作業負荷を均等に分散します。また、Real Application Clusters は、Oracle のロード・バランスロード・バランスロード・バランスロード・バランス機能も活用します。

Real Application Clusters は、アプリケーションの作業負荷を動的に管理します。また、ビジネス要件の変化に基づいて、リアルタイムで作業負荷を変更できます。これは、管理オーバーヘッドが 小限に抑えられた管理環境で行われます。このキャッシュ・フュージョン・アーキテクチャの動的リソース割当て機能によって、オンライン・アプリケーションのパフォーマンスが 適化され、配置に高い柔軟性が得られます。

キャッシュ・フュージョンによる柔軟な実装キャッシュ・フュージョンによる柔軟な実装キャッシュ・フュージョンによる柔軟な実装キャッシュ・フュージョンによる柔軟な実装E-Commerce(特に、オンライン・トランザクション処理システム)の要件には、頻繁に変化する作業負荷があります。これに対応するために、Real Application Clusters の配置は柔軟かつ動的です。これによって、次のような原因で変動する幅広い品質保証が提供されます。

� ユーザーの需要の変化

� 取引の集中(大量取引の発生)など、ピーク時のスケーラビリティの問題

� システム・リソースの可用性の変化

2-2 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 35: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters ベースのアプリケーションの配置方法

これらの要件に対応するには、パッケージ E-Commerce アプリケーションをパーティション化することは、表パーティション化へのアクセスが制限されるため、実用的でなく、複雑すぎます。このようなアプリケーションは、一度配置されると、何百、何千もの表にアクセスできます。さらに、アプリケーションのパーティション化は、不可能ではないにしても、困難な作業です。一般に、より大規模なサーバーを使用するか、または個別のデータベース間でアプリケーションまたはアプリケーション・モジュールをセグメント化することをお薦めします。

ただし、アプリケーションをセグメント化すると、データが断片化され、グローバル企業全体での情報へのアクセスが制約される場合があります。キャッシュ・フュージョンによって、ビジネス要件および作業負荷の変化に対応するようにデータベース・リソースが動的移行されるため、このような要件がなくなります。

キャッシュ・フュージョンは、データ・アクセス・パターンに基づいて、データベース・リソースをノードに動的に割り当てます。これによって、データが必要に応じて使用できるようになります。インスタンスが 近アクセスしたデータは、常にローカル・キャッシュ内に置かれます。また、キャッシュ・フュージョン・アーキテクチャでは、データ・アクセスを高速化するためにリソースが移行されます。これによって、Real Application Clusters は、パフォーマンスが高い E-Commerce データベース・プラットフォームになります。

再パーティション化ではシステム需要の急激な変化に対応できないため、Real Application Clusters は、共有サーバー共有サーバー共有サーバー共有サーバーなどの他の機能も活用します。共有サーバーは、接続プーリングおよび接続時ロード・バランスを提供することによって、スケーラビリティを大幅に向上させます。

Real Application Clusters ベースのアプリケーションの配置方法ベースのアプリケーションの配置方法ベースのアプリケーションの配置方法ベースのアプリケーションの配置方法従来の分散設計は、緊密に統合された 2 層、3 層および n 層アーキテクチャに急速に置き換わっています。これらのアーキテクチャでは、コンポーネント・ベースでシステムが配置されます。これは、Real Application Clusters に実行可能な Web ベース・アプリケーションを起動するための設計およびフロントエンド開発タスクの他に、ミドルウェアのパフォーマンス要件を考慮する必要があるということです。

n 層アーキテクチャへの移行層アーキテクチャへの移行層アーキテクチャへの移行層アーキテクチャへの移行複数の場所に存在する高コストのサーバーは、ミドルウェア・コンポーネントに接続された個々のサーバーに置き換わってきています。新しい n 層アーキテクチャでは、冗長なサーバー・ハードウェアが必要ないため、より低コストです。また、n 層アーキテクチャでは、冗長なデータベース接続も必要ないため、ネットワーク内を移動するデータ量を削減します。

Real Application Clusters でのオンライン E-Commerce およびデータ・ウェアハウス・アプリケーションの配置 2-3

Page 36: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters ベースのアプリケーションの配置方法

さらに、従来のアーキテクチャは柔軟性がない静的接続を必要としていましたが、インターネット・ベースのフルタイム接続を使用するようになってきています。これは、特にBusiness-to-Business(B2B)モデルに対していえることです。Real Application Clusters を使用すると、図 2-1 に示すとおり、n 層モデルのコンポーネント・ベースのアーキテクチャへと透過的に統合できます。

図図図図 2-1 n 層アーキテクチャのミドルウェア・コンポーネントおよび層アーキテクチャのミドルウェア・コンポーネントおよび層アーキテクチャのミドルウェア・コンポーネントおよび層アーキテクチャのミドルウェア・コンポーネントおよび Real Application Clusters

ブラウザ・�クライアント�

ブラウザ�

データベース�

RealApplicationClusters

Webサーバー�

アプリケーション・�サーバー�

E-Commerceアプリケーション�

LDAPサーバー�

2-4 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 37: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters ベースのアプリケーションの配置方法

Real Application Clusters でのでのでのでの n 層アーキテクチャのメリット層アーキテクチャのメリット層アーキテクチャのメリット層アーキテクチャのメリットn 層アーキテクチャは、アプリケーション機能を小さいサブコンポーネントにカプセル化することによって、スケーラビリティを向上させます。これらのコンポーネントは、n 層フレームワーク内でリンクされます。このリンクには、次のメリットがあります。

� インフラのすべての部分に対するネットワーク負荷の削減

� 単一の致命的な障害箇所の 小化および排除

� ネットワーク通信量の大幅な削減

また、n 層アーキテクチャは、ハードウェアおよびソフトウェアのオーバーヘッドを削減することによって、管理性も向上させます。さらに、接続プーリングおよび拡張ロード・バランスによって、高可用性を提供し、信頼性を向上させます。

n 層環境でのパフォーマンスの監視およびチューニング層環境でのパフォーマンスの監視およびチューニング層環境でのパフォーマンスの監視およびチューニング層環境でのパフォーマンスの監視およびチューニングn 層環境は、従来のモデルに比べ、相互に依存関係が強いコンポーネントであるため、Real Application Clusters 環境のパフォーマンスを次のレベルで監視およびチューニングする必要があります。

� アプリケーション

� データベース

� オペレーティング・システム

参照参照参照参照 : Oracle データベースのチューニングの詳細は、『Oracle9i データベース・パフォーマンス・ガイドおよびリファレンス』および『Oracle9iデータ・ウェアハウス』を参照してください。また、オペレーティング・システムのチューニングの詳細は、ベンダーのマニュアルを参照してください。

Real Application Clusters でのオンライン E-Commerce およびデータ・ウェアハウス・アプリケーションの配置 2-5

Page 38: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのデータ・ウェアハウス・アプリケーションの配置

Real Application Clusters でのデータ・ウェアハウス・アプリでのデータ・ウェアハウス・アプリでのデータ・ウェアハウス・アプリでのデータ・ウェアハウス・アプリケーションの配置ケーションの配置ケーションの配置ケーションの配置

この項では、Real Application Clusters 環境でのデータ・ウェアハウス・システムの配置について説明します。また、共有ディスク・アーキテクチャで使用可能なデータ・ウェアハウス機能についても説明します。この項の内容は次のとおりです。

� Real Application Clusters でのデータ・ウェアハウス・アプリケーションのスピードアップ

� パラレル問合せの動的な 適化

Real Application Clusters でのデータ・ウェアハウス・アプリケーションのでのデータ・ウェアハウス・アプリケーションのでのデータ・ウェアハウス・アプリケーションのでのデータ・ウェアハウス・アプリケーションのスピードアップスピードアップスピードアップスピードアップ

E-Business では、顧客の獲得および市場の拡大のために、戦略的にデータ・ウェアハウス・システムを使用します。たとえば、企業の製品販売プロモーションでは、データ・ウェアハウス・システムを使用して情報を収集し、企業が対象とする顧客層の統計プロファイルにも適合する顧客リストをカスタマイズします。

Real Application Clusters は、Oracle のシングル・インスタンスのメリットを拡大するため、データ・ウェアハウス・アプリケーションには理想的です。Real Application Clusters は、クラスタクラスタクラスタクラスタのすべてのノード上で使用可能な処理能力を 大限に活用してデータ・ウェアハウス・システムをスピードアップおよびスケールアップすることによって、Oracle のシングル・インスタンスのメリットを拡大します。

Real Application Clusters 環境での柔軟なパラレル化環境での柔軟なパラレル化環境での柔軟なパラレル化環境での柔軟なパラレル化Oracle のパラレル実行パラレル実行パラレル実行パラレル実行機能では、マルチ・プロセスを使用して 1 つ以上の CPU で SQL 文を実行します。パラレル実行は、シングル・インスタンス・データベースおよび Real Application Clusters データベースの両方で使用可能です。

Real Application Clusters は、パラレル処理をクラスタ内のすべてのノードに分散させることによって、パラレル実行を十分に活用します。パラレル操作に使用できるプロセスの数は、各表または索引に割り当てられる並列度並列度並列度並列度によって異なります。

機能の移動機能の移動機能の移動機能の移動 疎結合システムでは、Oracle のパラレル実行テクノロジによって、機能の移動という方法を使用してリモート・ノード上で作業が行われます。Oracle のパラレル・アーキテクチャでは、ターゲット・データがリモート・ノード上にある場合、機能の移動が使用されます。これによって、パラレル実行が効率的に行われ、インターコネクトインターコネクトインターコネクトインターコネクト経由での不要なノード間データ転送が排除されます。

参照参照参照参照 : Real Application Clusters 環境におけるデータ・ウェアハウスの実装の詳細は、『Oracle9i データ・ウェアハウス・ガイド』を参照してください。

2-6 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 39: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのデータ・ウェアハウス・アプリケーションの配置

データ局所性の使用データ局所性の使用データ局所性の使用データ局所性の使用 シェアード・ナッシング・ハードウェア・システムが一般的だったころは、一部のハードウェア・システムには、強力なデータ局所性機能が適していました。ただし、現行のほぼすべてのクラスタ・システムでは、共有ディスク・アーキテクチャを使用しています。

シェアード・ナッシング・システムでは、各ノードはディスク・デバイスのサブセットに直接ハードウェア接続します。これらのシステムの場合、所有するノードからローカル・デバイスにアクセスする方が、より効率的です。Real Application Clusters は、ノードに対するこのデバイスのアフィニティを使用し、マルチコンピュータ構成および共有ディスク・アーキテクチャを使用して、シェアード・ナッシング・システムより高いパフォーマンスを提供します。

キャッシュ・フュージョンの他の要素と同様に、Oracle は、データをパーティション化することなく、透過的に機能します。Oracle は、ターゲット・データが存在するディスクを動的に検出し、次の 2 つの方法でデータの位置を効果的に使用します。

� 処理するデータが存在するノード上で、パラレル実行サーバー・プロセスを起動します。

� ローカル・データのパーティションを各サブプロセスに割り当てて、ノード間のデータ移動を排除または 小化します。

パラレル問合せの動的な最適化パラレル問合せの動的な最適化パラレル問合せの動的な最適化パラレル問合せの動的な最適化Oracle のコストベース・オプティマイザは、 適な実行計画を判断する場合に、パラレル実行を検討します。オプティマイザは、プロセッサ数に基づいて、パラレル化の適切なデフォルト値を動的に計算します。

代替アクセス・パスのコスト評価(表スキャンと索引アクセスなど)では、操作に使用できる並列度が考慮されます。これによって、Oracle は、パラレル実行用に 適化された実行計画を選択します。

また、Oracle は、Real Application Clusters 環境でノード内およびノード間でのパラレル化について適切な決定を行います。たとえば、ノード内でのパラレル化では、SQL 文に 6 つの問合せサブプロセスが必要で、6 つの CPU がローカル・ノード(ユーザーが接続しているノード)でアイドル状態である場合、その SQL 文はローカル・リソースを使用して処理されます。これによって、複数ノード間の問合せ調整のオーバーヘッドが排除されます。

前述の例で、ローカル・ノード上に 2 つの CPU しかない場合、これらの 2 つの CPU および別のノード上にある 4 つの CPU を使用して、SQL 文が処理されます。このように、Oracleでは、ノード内およびノード間の両方の並列性を使用して、問合せ操作がスピードアップします。

Real Application Clusters でのオンライン E-Commerce およびデータ・ウェアハウス・アプリケーションの配置 2-7

Page 40: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのデータ・ウェアハウス・アプリケーションの配置

実社会のすべてのデータ・ウェアハウス・アプリケーションでは、SQL 文は異なるパラレル実行サーバー間で SQL 文が完全にパーティション化されるわけではありません。そのため、システム内の一部の CPU が、割り当てられた作業を他の CPU よりも早く完了してアイドル状態になります。Oracle のパラレル実行テクノロジでは、アイドル状態の CPU を動的に検出し、より作業負荷が大きい CPU の実行キューから、これらのアイドル状態の CPU に作業を割り当てることができます。このように、Oracle では、システム内のすべての CPU 間で問合せの作業負荷が効率的に再分散されます。Real Application Clusters は、クラスタのすべてのノード間で作業を再分散させることによって、より効率的にクラスタを使用します。

複数の同時パラレル操作に対するロード・バランス複数の同時パラレル操作に対するロード・バランス複数の同時パラレル操作に対するロード・バランス複数の同時パラレル操作に対するロード・バランスロード・バランスでは、パラレル実行サーバー・プロセスが分散され、CPU およびメモリー使用がノード間で均等に分散されます。また、ロード・バランスによって、ノード間通信およびリモート I/O も 小化されます。Oracle は、実行中のプロセス数が も少ないノードにサーバーを割り当てることによって、これを行います。

ロード・バランス・アルゴリズムによって、すべてのノード間で作業負荷が均等に保たれます。たとえば、各ノードに CPU が 1 つずつある 8 ノード・システム上で並列度 8 が要求された場合、ロード・バランス・アルゴリズムによって、各ノード上に 2 つのサーバーが置かれます。パラレル実行サーバー・グループ全体が 1 つのノード上に収まる場合、ロード・バランス・アルゴリズムによって、すべてのプロセスが単一ノード上に置かれ、通信オーバーヘッドが回避されます。たとえば、各ノードに CPU が 16 ずつある 2 ノード・クラスタ上で並列度 8 を使用する場合、ロード・バランス・アルゴリズムによって、すべてのパラレル実行サーバー・プロセスが 1 つのノード上に置かれます。

パラレル・インスタンス・グループの使用パラレル・インスタンス・グループの使用パラレル・インスタンス・グループの使用パラレル・インスタンス・グループの使用インスタンス・グループインスタンス・グループインスタンス・グループインスタンス・グループを使用すると、どのインスタンスがパラレル実行サーバー・プロセスを割り当てるかを制御できます。これを行うには、各アクティブ・インスタンスを 1 つ以上のインスタンス・グループに割り当てます。次に、特定のインスタンス・グループをアクティブにして、どのインスタンスがパラレル処理を起動するかを動的に制御します。

INSTANCE_GROUPS初期化パラメータに 1 つ以上のインスタンス・グループを表す名前を設定することによって、インスタンスごとにインスタンス・グループ・メンバーシップを構築します。たとえば、マーケティング組織およびセールス組織の両方が所有する 32 ノード・システムでは、インスタンス・グループ名を使用して、各組織に 32 のノードを半分ずつ割り当てることができます。これを行うには、初期化パラメータ・ファイル初期化パラメータ・ファイル初期化パラメータ・ファイル初期化パラメータ・ファイルで次のパラメータ構文を使用して、ノード 1 ~ 16 をマーケティング組織に割り当てます。

sid|1-16|.INSTANCE_GROUPS=marketing

次に、パラメータ・ファイルで次の構文を使用して、ノード 17 ~ 32 をセールス組織に割り当てます。

sid|17-32|.INSTANCE_GROUPS=sales

2-8 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 41: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのデータ・ウェアハウス・アプリケーションの配置

次のコマンドを入力して、セールス組織が所有するノードをアクティブにし、パラレル実行サーバー・プロセスを起動します。

ALTER SESSION SET PARALLEL_INSTANCE_GROUP = 'sales';

これに対して、Oracle はパラレル実行サーバー・プロセスをノード 17 ~ 32 に割り当てます。PARALLEL_INSTANCE_GROUPのデフォルト値は、すべてのアクティブ・インスタンスです。

ディスク・アフィニティディスク・アフィニティディスク・アフィニティディスク・アフィニティディスク・アフィニティとは、インスタンスと、そのインスタンスがアクセスするデータの関係をいいます。インスタンスによる特定のデータ・セットへのアクセス頻度が高いほど、そのデータが存在するディスクに対するインスタンスのアフィニティは大きくなります。

ディスク・アフィニティによって、シェアード・ナッシング・アーキテクチャ上のデータの移動およびノード間通信が 小化されます。このため、パラレル操作のスループットが大幅に向上し、応答時間が削減されます。

ディスク・アフィニティは、パラレル・テーブル・スキャン、一時表領域表領域表領域表領域のパラレル割当て、パラレル DML およびパラレル索引スキャンに使用されます。ディスク・アフィニティは、パラレル表作成またはパラレル索引作成には使用されません。一時表領域へのアクセスでは、ローカル・データ・ファイルが優先的に使用されます。これによって、 適な領域管理エクステント割当てが保証されます。オペレーティング・システムによってストライプ化されたディスクは、ディスク・アフィニティディスク・アフィニティディスク・アフィニティディスク・アフィニティによって単一ユニットとして処理されます。

ディスク・アフィニティがない場合、Oracle は、インスタンス間で均等にパラレル実行サーバーを割り当てようと試みます。ディスク・アフィニティがある場合、Oracle は、要求されたデータに も近いインスタンス上で、パラレル・テーブル・スキャン用のパラレル実行サーバーを割り当てます。

注意注意注意注意 : 1 つのインスタンスは、1 つ以上のグループに属することができます。INSTANCE_GROUPSパラメータに、複数のインスタンス・グループ名をカンマで区切って入力してください。

Real Application Clusters でのオンライン E-Commerce およびデータ・ウェアハウス・アプリケーションの配置 2-9

Page 42: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのデータ・ウェアハウス・アプリケーションの配置

図 2-2 に示すディスク・アフィニティの例では、表 Tが 3 つのノード間で分散され、表 Tに対してフル・テーブル・スキャンが実行されています。

図図図図 2-2 ディスク・アフィニティの例ディスク・アフィニティの例ディスク・アフィニティの例ディスク・アフィニティの例

� 問合せに 2 つのインスタンスが必要な場合、1、2 および 3 のうちの 2 つのインスタンスが使用されます。

� 問合せに 3 つのインスタンスが必要な場合、インスタンス 1、2 および 3 が使用されます。

� 問合せに 4 つのインスタンスが必要な場合、すべてのインスタンスが使用されます。

� 表 Tに対して 2 つの同時操作が行われ、操作ごとに 3 つのインスタンスが必要な場合(およびそれらのインスタンス上で両方の操作に対して十分なプロセスを使用できる場合)は、両方の操作でインスタンス 1、2 および 3 が使用され、インスタンス 4 は使用されません。これに対し、ディスク・アフィニティがない場合は、インスタンス 4 が使用されます。

参照参照参照参照 : インスタンスのアフィニティの詳細は、『Oracle9i Real Application Clusters 概要』を参照してください。

インスタンス�1

表T

インスタンス�2

表T

インスタンス�3

表T

インスタンス�4

2-10 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 43: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters アプリケーションの配置およびチューニング

Real Application Clusters アプリケーションの配置およびアプリケーションの配置およびアプリケーションの配置およびアプリケーションの配置およびチューニングチューニングチューニングチューニング

アプリケーションのスケーラビリティ、可用性およびロード・バランスのテストは、インターネット・ベースの配置における も大きい課題の 1 つです。変化の激しいプロトタイプ環境では、テスト用のハードウェア・プラットフォーム上で、限られた数の Real Application Clusters インスタンスを使用してサイトを内部的にテストし、ベンチマークを取得することができます。

どのアプリケーションにも、固有のハードウェアおよびソフトウェア・アーキテクチャの制約によって、サポートするユーザー数に制限があります。予想される需要に対応するために、システム上の通信負荷を見積もり、必要なノード数を判断します。また、ピーク時の作業負荷も考慮する必要があります。

スケーラビリティのテストでは、Web サイトへのユーザー・アクセスをシミュレートする必要もあります。これを行うには、通信ジェネレータを、Hypertext Transfer Protocol

(HTTP)で使用された場合に擬似 getコマンドを発行するように構成します。これによって、非常に現実的な条件下でシステムのパフォーマンスおよび負荷処理能力がテストされます。

次に、通信ジェネレータを使用して、構造化された Web ベースのテストを行い、システムのストレステストを行います。 も重要なパフォーマンス目標に対してこのようなテストを行うことによって、設計および容量上の制限が明らかになります。

テスト結果に従ってさらなる拡張を行った後、サイトを初期採用者向けにプロトタイプ化します。これによって、システムのパフォーマンスをチューニングする場合の基準となる実社会のベンチマークを取得することができます。

Real Application Clusters でのアプリケーションの構成およびチューニングでのアプリケーションの構成およびチューニングでのアプリケーションの構成およびチューニングでのアプリケーションの構成およびチューニング第 1 章で説明したとおり、Real Application Clusters は、スケーラビリティを向上させるいくつかの機能を活用します。たとえば、共有サーバーによって、より多くのユーザーがシステムにアクセスでき、ユーザー間のデータベース接続が効率的に制御されます。

アプリケーションのパフォーマンスを 適化するには、各アプリケーション・モジュールのCPU 使用およびプログラム・グローバル領域(PGA)のメモリー使用を計算するツールを使用して、一般的な作業負荷プロファイルを開発する必要があります。Oracle は、プログラムに関する統計、およびプログラム・モジュールがデータベースに接続する方法に関する情報も記録します。作業負荷プロファイルを開発したり、Real Application Clusters 用にアプリケーションをチューニングするための推奨事項については、第 3 章「Real Application Clusters アプリケーションの拡張」を参照してください。

Real Application Clusters でのオンライン E-Commerce およびデータ・ウェアハウス・アプリケーションの配置 2-11

Page 44: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters アプリケーションの配置およびチューニング

Real Application Clusters に対するシステム拡張の管理に対するシステム拡張の管理に対するシステム拡張の管理に対するシステム拡張の管理要件の増加に対応したり、障害ハードウェアを交換するために、配置前または本番中にノードを追加する必要がある場合があります。Real Application Clusters 環境にノードを追加するには、主に次の 2 つの手順を実行する必要があります。

� クラスタウェア・レイヤーでのノードの追加

� Oracle レイヤーでのノードの追加

ノードを追加するには、ベンダーのインストール手順に従ってハードウェアを接続します。次に、クラスタウェアおよびオペレーティング・システム固有レイヤーをインストールします。Oracle Universal Installer(OUI)および Oracle Database Configuration Assistant

(DBCA)を使用して、新しいノードにインスタンスをインストールします。

第 II 部では、Real Application Clusters のアプリケーション拡張およびデータベース設計について説明します。

参照参照参照参照 : ノードおよびインスタンスの追加手順の詳細は、『Oracle9i Real Application Clusters 管理』を参照してください。

2-12 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 45: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

第第第第II部部部部

Real Application Clusters アプリケーションアプリケーションアプリケーションアプリケーション

の拡張およびデータベースの設計の拡張およびデータベースの設計の拡張およびデータベースの設計の拡張およびデータベースの設計

第 II 部では、Real Application Clusters のアプリケーション拡張およびデータベース設計について説明します。第 II 部に含まれる章は、次のとおりです。

� 第 3 章「Real Application Clusters アプリケーションの拡張」

� 第 4 章「Real Application Clusters データベースの設計」

Page 46: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:
Page 47: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters アプリケーションの

3

Real Application Clusters アプリケーションアプリケーションアプリケーションアプリケーション

の拡張の拡張の拡張の拡張

この章では、Oracle Real Application Clusters 環境に配置するアプリケーションの拡張方法について説明します。この章では、アプリケーションの設計方法およびアプリケーション・パフォーマンスの問題の解決方法を示します。内容は次のとおりです。

� Real Application Clusters での開発方法の概要

� Real Application Clusters での SQL 文の実行

� Real Application Clusters での作業負荷分散の概要

� Real Application Clusters での作業負荷の特徴付け

� Real Application Clusters でのスケールアップおよび パーティション化

拡張 3-1

Page 48: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での開発方法の概要

Real Application Clusters での開発方法の概要での開発方法の概要での開発方法の概要での開発方法の概要一般的に、Oracle Real Application Clusters でのアプリケーションの配置は、シングル・イイイインスタンスンスタンスンスタンスンスタンス環境でのアプリケーションの配置とほとんど同じです。ただし、注意すべき特別な項目および方法がいくつかあります。この章では、これらの問題について説明し、Oracle9i の機能を 適化するために Real Application Clusters ベースのアプリケーションを配置する高レベルな開発方法を示します。

分析の開始分析の開始分析の開始分析の開始Real Application Clusters を使用してデータベース全体のスループットを改善するには、データベースの設計およびアプリケーションの作業負荷に対する詳細な分析を行います。これにより、追加ノードノードノードノードによって提供される追加の処理能力を完全に利用できることが保証されます。高可用性を得るためのみに Real Application Clusters を使用する場合でも、詳細な分析によって、システム・リソース要件をより正確に予測できるようになります。

高パフォーマンスの Real Application Clusters システムの主な特長は、キャッシュ・フューキャッシュ・フューキャッシュ・フューキャッシュ・フュージョンジョンジョンジョン処理に使用される計算リソースを 小化することです。つまり、これらのシステムによって、インスタンス間のリソース操作数が 小化されます。ただし、分析を開始する前に、アプリケーションによって発行された SQL 文を処理するときに、Real Application Clusters がどのようにデータベース・ブロックにアクセスするかを理解する必要があります。SQL 文の処理については、次の項を参照してください。

3-2 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 49: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での SQL 文の実行

Real Application Clusters でのでのでのでの SQL 文の実行文の実行文の実行文の実行ほとんどのトランザクションでは、INSERT文、UPDATE文、DELETE文および SELECT文を組み合せて使用します。各トランザクションでこれらの文を使用する割合は、トランザクションの種類によって異なります。同様に、これらの各操作は、特定のデータベース・ブロックにアクセスします。これらのブロック・タイプは次のように分類できます。

� データ・ブロック

� 索引ブロック(ルート、ブランチ、リーフ)

� セグメント・ヘッダー・ブロック

� ロールバック・セグメント・ヘッダー・ブロック

� ロールバック・セグメント・ブロック

キャッシュ内のデータベース・ブロックへの並行アクセスは、ブロック・アクセス・モードによって制御されます。バッファ・キャッシュでは、次のいずれのモードでもブロックにアクセスできます。

� X: 排他現行読込み(XCUR)

� S: 共有現行読込み(SCUR)

� N:NULL または一貫性読込み(CR)

グローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービス((((GCS))))は、ブロック・アクセス・モードをメンテナンスします。バッファの状態および各バッファ・ヘッダー情報を確認するには、V$BH動的パフォーマンス・ビューの STATUS列を問い合せます。

INSERT 文実行中のブロック・アクセス文実行中のブロック・アクセス文実行中のブロック・アクセス文実行中のブロック・アクセスOracle は、INSERT文を実行するときに、データベース・オブジェクトのセグメント・ヘッダーを読み込みます。これは、INSERT文が新しい行を挿入するために十分な領域があるブロックを検索するときに、表または索引のセグメント・ヘッダーにあるセグメントの空リストを読み込む必要がある場合があるためです。

そのため、Oracle は INSERT文を処理するために、ヘッダー・ブロックの現行のバージョンまたは 新バージョンを読み込みます。INSERT文の完了後にブロックに十分な空き領域がある場合、ブロックは空きリスト内に残るため、トランザクションは対応するデータ・ブロックを読み込み、そのブロックに書き込みます。この一連のイベントでは、次のことが行われます。

参照参照参照参照 : GCS のデータ・アクセス処理方法の詳細は、『Oracle9i Real Application Clusters 概要』を参照してください。

Real Application Clusters アプリケーションの拡張 3-3

Page 50: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での SQL 文の実行

1. セグメント・ヘッダーは SCUR モードで取得されます。これは、インスタンスインスタンスインスタンスインスタンスはグローバル S モードを要求する必要があることを表します。

2. データ・ブロックは XCUR モード、またはグローバルに X モードで取得されます。

INSERT処理後のブロックの空き領域が不十分な場合、Oracle は空きリストからそのブロックを削除します。これは、Oracle が、空きリストを含むセグメント・ヘッダー・ブロックを更新することを表します。この一連のイベントでは、次のことが行われます。

1. セグメント・ヘッダー・ブロックが、まず SCUR(グローバル S)モードで取得されます。

2. ブロックのチェック後、バッファ・アクセス・モードは XCUR(グローバル X)に拡張されます。

3. ブロックが空きリストから削除されます。

4. 現在の 高水位標高水位標高水位標高水位標を超えて新しいブロックが使用される場合、 高水位標が呼び出されます。

5. データ・ブロックは、XCUR モードで読み込まれ、ディスクに書き込まれます。

この場合、空きリスト・グループはセグメントに対して定義されていないと想定しています。その場合、 高水位標および割り当られたエクステントのマップがセグメント・ヘッダーに格納されます。

Oracle は、オブジェクトに追加挿入するエクステントを割り当てる場合、 高水位標高水位標高水位標高水位標を呼び出し、エクステント・マップを更新します。つまり、Oracle は、セグメント・ヘッダー・ブロックを一貫して変更します。この場合、Oracle は、ヘッダー・ブロックを排他モードでロックする必要もあります。

索引がある表に挿入を行う場合、より多くのデータ・ブロック・アクセスが必要です。まず、Oracle は索引セグメントのヘッダー・ブロックを SCUR モードで読み込み、その後ルートおよびブランチ・ブロックを SCUR モードで読み込みます。 後に、リーフ・ブロックをXCUR モードで読み込みます。

注意注意注意注意 : ここでは、操作に必要なすべてのブロックがメモリー内にキャッシュされると想定しています。

3-4 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 51: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での SQL 文の実行

索引ツリーの高さによって、Oracle はより多くのブランチ・ブロックを読み込む必要があります。空きリストの変更が必要な場合、Oracle は、索引セグメント・ヘッダー・アクセス・モードを XCUR モードに拡張する必要があります。空きリストの変更によって、セグメント・ヘッダーを同時に実行する場合、Oracle は複数インスタンス間で何度もヘッダー・ブロックを送信することがあります。表作成時に空きリストを使用すると、空きリストを効率的にパーティション化できます。

UPDATE 文実行中のブロック・アクセス文実行中のブロック・アクセス文実行中のブロック・アクセス文実行中のブロック・アクセスUPDATE文を使用すると、常に現行のバージョンのデータベース・ブロックが取得され、バッファが XCUR モードに設定されます。これは、S モードのブロックに対する要求にグローバルにマップします。すべてのブロックがキャッシュされていると想定し、UPDATEトランザクションは次のことを行います。

1. バッファを XCUR モードで読み込み、ブロックを X モードで取得します。

2. バッファに書き込み、行を変更します。

3. 更新された行が同じブロックに入れられた場合、インスタンスは、空きリストから新しいブロックを取得する必要がなく、変更は完了します。セグメント・ヘッダー・アクセスは必要ありません。

4. インスタンスは排他的アクセスを保持し、GCS は要求側インスタンスにブロックを送信します。

5. ローカル・インスタンスはリソースを解放するか、NULL モードで保持します。また、ローカル・インスタンスは、後続の更新に対して排他モードでブロックを要求します。これには、他のキャッシュ・フュージョン・ブロックの転送が伴う可能性があります。

表に索引がある場合、UPDATE文では次のことが行われます。

1. SCUR モードで、索引のルート・ブロックが読み込まれます。

2. SCUR モードで、1 つ以上のブランチ・ブロックが読み込まれます。

3. SCUR モードで、リーフ・ブロックが読み込まれ、キャッシュに確保されます。

4. XCUR モードで、データ・ブロックが読み込まれます。

5. データ・ブロックが変更されます。

索引キー値が変更された場合、Oracle によって次のことが行われます。

1. SCUR モードで、ルートおよびブランチ・ブロックが再度読み込まれます。

2. XCUR モードで、リーフ・ブロックが読み込まれます。

参照参照参照参照 : 4-3 ページの「空きリスト・グループを使用した複数ノードからの同時挿入」を参照してください。

Real Application Clusters アプリケーションの拡張 3-5

Page 52: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での SQL 文の実行

3. 更新された行に対する索引キー値が変更されます。この変更によって、現行のブロックからキー値が削除され、XCUR モードで別のリーフ・ブロックが取得される場合があります。

索引を使用した更新操作中、ブロックは、更新中のインスタンスのキャッシュからいつでも転送できます。ブロックは、キャッシュから転送された場合は再取得される必要があります。ルート・ブロックおよびブランチ・ブロック上の共有グローバル・リソースは、別のインスタンスがこれらのブロックのみを読み込んでいる間は、パフォーマンスの問題にはなりません。リーフ・ブロックが分割されたためブランチ・ブロックを変更する必要がある場合、Oracle は S モードを X モードに拡張します。この場合、競合の可能性が高くなります。索引内にキー値を分散することが非常に重要になります。単調に増加する索引キーでは、索引キーの右端にホット・スポットが作成されます。

DELETE 文実行中のブロック・アクセス文実行中のブロック・アクセス文実行中のブロック・アクセス文実行中のブロック・アクセスOracle は、DELETE文を実行する場合も、UPDATE文と同様にキャッシュ内のブロックにアクセスします。Oracle は、削除する行を含むブロックに対して表をスキャンします。そのため、表に索引がない場合、トランザクションはセグメント・ヘッダーを読み込み、ブロックを読み込んだ後、そのブロックを変更します。トランザクションはブロック内に空き領域を作成し、ブロック内のデータが PCTUSED未満になったとき、ブロックが空きリストにリンクされるようにします。

そのため、トランザクションは、セグメント・ヘッダーまたは空きリスト・グループ・ブロックを排他モードで取得します。問題のあるブロックは、インスタンスの空きリスト・グループ(ある場合)に戻されます。ピーク時の過剰な処理オーバーヘッドを回避するには、大量の削除はオフピーク時に行うようにスケジューリングする必要があります。

SELECT 文実行中のブロック・アクセス文実行中のブロック・アクセス文実行中のブロック・アクセス文実行中のブロック・アクセスSELECT文では、バッファが SCUR モードまたは CR モードで読み込まれます。セグメント・ヘッダーに対する読み込みなどで、SCUR モードでバッファにアクセスするには、グローバル共用リソースを取得する必要があります。SELECT文によるバッファへのアクセスは、ほとんどの場合 CR モードで行われ、グローバル・リソース操作は必要ない場合があります。バッファを CR モードで取得する必要があるトランザクションとしては、次の 3 つが考えられます。

� 要求されたブロックが、あるインスタンスによって排他モードで保持されている場合、保持側インスタンスは一貫性読込みバージョンのブロックを作成して、そのブロックを要求側インスタンスに転送します。リソースの操作は伴いません。

� 要求されたブロックが、あるインスタンスによって共有モードで保持されている場合、保持側インスタンスはそのブロックのコピーを要求側インスタンスに転送します。要求側インスタンスは、ブロックに共有モードでアクセスできます。

参照参照参照参照 : 4-14 ページの「Real Application Clusters 設計での索引の問題」を参照してください。

3-6 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 53: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での作業負荷分散の概要

� ブロックをキャッシュに保持しているインスタンスが他にない場合、要求側インスタンスは、ブロックに共有モードでアクセスし、ディスクから読み込むことができます。

読取り専用データを持つ表に関しては、読取り専用表領域表領域表領域表領域に読取り専用表を入れることによって、SELECT文に対するオーバーヘッドを大幅に削減できます。これを行うには、ALTER TABLESPACE READ ONLY文を使用します。表領域を読取り専用にするメリットは、次のとおりです。

� リカバリがより迅速に行われる

� 必要な表領域のバックアップが 1 回のみ

Real Application Clusters での作業負荷分散での作業負荷分散での作業負荷分散での作業負荷分散の概要の概要の概要の概要パーティション化を行うと、既存の Real Application Clusters インスタンス間で作業負荷を分散させて、ハードウェア・リソースを効果的に使用できます。Real Application Clustersでキャッシュ・フュージョンを使用する場合、パーティション化はあまり重要ではありません。これは、デフォルト・キャッシュの一貫性メカニズムが消費するマシン・リソースが、前回のリリースの Oracle で使用されている I/O ベースのディスク書込みの強制実行アーキテクチャが消費するマシン・リソースより少ないためです。

Real Application Clusters のオーバーヘッドを削減するには、クラスタクラスタクラスタクラスタ内の各インスタンスが、他のインスタンスによってほとんど変更されることがない一連のデータベースに対して、ほとんどの DML 操作を行うことが理想的です。ただし、CPU やメモリーの使用などの変化する要素も重要です。多くの場合、負荷に基づいたデータ・アクセスの分散によるパフォーマンスおよびスケーラビリティの向上の方が、インスタンス間の過剰な通信によるパフォーマンスの低下より優先されます。

アプリケーションのパーティション化の実装について厳密な規則はありません。ただし、一般的に、アプリケーションの作業負荷を分散するには、いくつかの方法があります。これらの方法は、必ず相互に排他的である必要はありません。これらの方法については、次の項で説明します。

� 機能のパーティション化

� E-Commerce アプリケーションの処理およびデータ・ウェアハウス処理の分割

� 部門パーティション化およびユーザー・パーティション化

� 物理表のパーティション化

� トランザクションのパーティション化

参照参照参照参照 : 付録 A「マルチブロック・ロック割当ての構成(オプション)」を参照してください。

Real Application Clusters アプリケーションの拡張 3-7

Page 54: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での作業負荷分散の概要

機能のパーティション化機能のパーティション化機能のパーティション化機能のパーティション化機能のパーティション化は、多くの場合、Real Application Clusters のオーバーヘッドの観点からパフォーマンスが 適となる環境を実現するために 初に試みる論理的な方法です。通常、モジュールおよび機能領域は、Oracle オブジェクトの小規模なサブセットのみを共有するため、競合は制限されます。

一方、アプリケーションのすべてのモジュールを統合した場合、どの作業負荷に対しても任意のモジュール・セットには常に共通のオブジェクトが残ります。Real Application Clustersのオーバーヘッドを完全に排除することはできません。そのため、理想的なパーティション化方法は、モジュールの対話方法、および各モジュールでのシステム・リソースの使用方法によって異なります。

E-Commerce アプリケーションの処理およびデータ・ウェアハウス処理の分割アプリケーションの処理およびデータ・ウェアハウス処理の分割アプリケーションの処理およびデータ・ウェアハウス処理の分割アプリケーションの処理およびデータ・ウェアハウス処理の分割アプリケーションのパーティション化には、データ・ウェアハウスの作業負荷からオンライン E-Commerce 処理を分割する方法もあります。たとえば、あるノード上で長時間実行レポートを実行することによって、別の OLTP 専用ノード上での CPU の過剰な使用を削減できます。これによって、レポート機能により多くの CPU 能力を提供しながら、OLTP ユーザーに対する全体的な応答時間を改善できます。

OLTP トランザクションによって 近変更されたデータをレポートが読み込むとき、Real Application Clusters にある程度のオーバーヘッドが発生することは予想されますが、これによってパフォーマンスが重大な影響を受けることはほとんどありません。レポートには、OLTP インスタンスによって変更されたバッファの一貫性読込みバージョンが必要です。OLTP インスタンスは、データ・ウェアハウス・インスタンスの要求に対応するために、一貫性読込みバッファを作成して、このバッファをデータ・ウェアハウス・インスタンスに転送します。この場合、 小限のリソース操作が行われます。

部門パーティション化およびユーザー・パーティション化部門パーティション化およびユーザー・パーティション化部門パーティション化およびユーザー・パーティション化部門パーティション化およびユーザー・パーティション化スケーラビリティを向上する別のパーティション化方法は、部門パーティション化およびユーザー・パーティション化です。部門パーティション化およびユーザー・パーティション化の実装には、いくつかの方法があります。

部門パーティション化の 1 つに、地理的な場所に基づくアクセス・グループごとに表を分割する方法があります。たとえば、ホテルの予約システムで、世界中のホテルに対する客室予約を処理すると想定します。この場合、次のような地理的なマーケットごとにアプリケーションをパーティション化する場合があります。

� ヨーロッパ・マーケット

� 北米マーケット

� 中南米マーケット

� アジア太平洋マーケット

3-8 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 55: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での作業負荷分散の概要

物理表のパーティション化物理表のパーティション化物理表のパーティション化物理表のパーティション化表のパーティション化を範囲ごとに正確に実装することによって、複数のインスタンスによる特定の表の同じブロックへの並行アクセスを削減できます。オーバーヘッドを削減するために表のパーティション化を行う例として、Oracle Applications 11i でのバッチ・ジョブ処理の実装があります。

Oracle Applications でバッチ処理に使用する主な表の1つが、FND_CONCURRENT_REQUESTSです。この表はバッチ・キュー・テーブルです。ユーザーがバッチ・ジョブを要求すると、Oracle はキューに行を挿入します。Concurrent Manager は、定期的にキューを問い合せ、実行する要求を選択して要求のステータスを更新するプロセスです。

ある Real Application Clusters 構成で、Concurrent Manager が 2 つのインスタンスからのバッチ要求を処理する場合、FND_CONCURRENT_REQUESTSに大量の DML 文がある場合があります。DML 文は、要求側ユーザーからの INSERT文および Concurrent Manager からの UPDATE文で構成されている場合があります。これによって、FND_CONCURRENT_REQUESTS表およびその索引に属するブロックに対するキャッシュ転送の頻度が増加する可能性があります。

Real Application Clusters のオーバーヘッドを削減するには、INSTANCE_NUMBER列に基づいて FND_CONCURRENT_REQUESTSをパーティション化します。ユーザーが要求を送ると、Oracle は、V$INSTANCEから INSTANCE_NUMBERを読み込み、その値を他の要求情報とともに格納します。このようにして、Oracle は、異なるパーティションの異なるインスタンスに接続するユーザーから生成された要求を格納します。

デフォルトでは、接続しているインスタンスからの要求は、Concurrent Manager ごとに処理されます。これは、表パーティションが 1 つであることを意味します。これによって、FND_CONCURRENT_REQUESTSおよびその索引(ほとんどがローカル索引)上での競合をほぼ完全に回避できます。

類似表のパーティション化も、大量の DML アクティビティが発生する表に対する Real Application Clusters のオーバーヘッドを削減する場合に非常に有効です。ただし、そのようなソリューションを実装するためにアプリケーションを変更する場合の開発コストを十分に考慮する必要があります。キャッシュ・フュージョンを使用すると、ほとんどのアプリケーションで、コードを変更せずに適切なスケーラビリティを実現できます。

参照参照参照参照 : パーティション表の作成および管理の詳細は、『Oracle9i データベース管理者ガイド』を参照してください。

Real Application Clusters アプリケーションの拡張 3-9

Page 56: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での作業負荷の特徴付け

トランザクションのパーティション化トランザクションのパーティション化トランザクションのパーティション化トランザクションのパーティション化トランザクションのパーティション化は、 も低レベルのパーティション化方法です。この方法には、3 層アーキテクチャが必要です。ここでは、クライアントおよびサーバーが、トトトトランザクション・モニターランザクション・モニターランザクション・モニターランザクション・モニター処理レイヤーによって分割されます。トランザクションの内容に基づいて、トランザクション・モニターは、特定の表で動作するトランザクションを特定のノードに送ります。トランザクションを実行する正しいノードは、そのトランザクションで使用されている実際のデータ値によって決まります。このプロセスを、一般に、データ依存データ依存データ依存データ依存ルーティングルーティングルーティングルーティングといいます。

この方法では、トランザクション・モニターが、どのノードが特定のトランザクションを処理するかを決定するため、どの方法を使用しても表を作成およびロードできます。トランザクションのパーティション化によって、ファイングレイン・トランザクション・コントロールも実現できます。これによって、トランザクション処理モニターが非常にスケーラブルになります。ただし、この方法を配置するには、非常に多くの開発工数が必要です。

データ依存ルーティングは、次の 2 つのいずれかの方法で実現します。表のパーティション化が、実際のパーティション使用のパターンによく適している(表を場所ごとにパーティション化し、ユーザーを同じようにパーティション化できる)場合、関連するアプリケーションを実行しているインスタンスにユーザーを接続させることによって、手動ルーティングができます。そうでない場合、データ依存ルーティングの管理が複雑になり、追加のアプリケーション・コードが必要になります。

このプロセスを簡単にするには、アプリケーションでトランザクション・モニターまたはリモート・プロシージャ・コール(RPC)・メカニズムを使用します。データ依存ルーティング方法を定義するトランザクション・モニターの構成にコードを配置できます。このコードは入力 RPC 引数に基づく必要があります。同様に、どのインスタンスが特定のトランザクションを実行するかを決定する CASE 文を使用して、この方法をプロシージャ・コードにコード化できます。

Real Application Clusters での作業負荷の特徴付けでの作業負荷の特徴付けでの作業負荷の特徴付けでの作業負荷の特徴付けスケーラブルなシステムの開発に も重要な手順の 1 つは、作業負荷の特徴を調べることです。アプリケーション・ロードの特徴を理解することによって、適切な拡張計画を立て、適なパフォーマンスおよびスケーラビリティを提供するために使用可能なシステム・リソースを利用できます。

正確に作業負荷を特徴付けておくと、アプリケーションを Real Application Clusters 用にパーティション化する方法を判断する際に有効です。次に、機能のパーティション化を実装するために作業負荷を特徴付ける手順を示します。

� 手順 1: システムの主な機能領域を定義する

� 手順 2: 各機能領域のシステム・リソース使用を見積もる

� 手順 3: 各機能領域のデータ・アクセス・パターンを分析する

3-10 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 57: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での作業負荷の特徴付け

手順手順手順手順 1: システムの主な機能領域を定義するシステムの主な機能領域を定義するシステムの主な機能領域を定義するシステムの主な機能領域を定義するアプリケーションの主な機能を識別します。たとえば、ある大手のホテル・チェーンで、次の高レベルの機能を自動化するシステムを開発している場合があります。

� 予約

� プロパティの管理およびメンテナンス

� セールスおよびマーケティング

� フロント・デスク、コンセルジュおよびダイニング施設の管理

また、どのユーザーが各機能領域からデータにアクセスするかを判断します。

手順手順手順手順 2: 各機能領域のシステム・リソース使用を見積もる各機能領域のシステム・リソース使用を見積もる各機能領域のシステム・リソース使用を見積もる各機能領域のシステム・リソース使用を見積もる各モジュールまたは機能領域が、システムのピーク使用時に CPU、メモリーなどのシステム・リソースをどのくらい使用するかを見積もることは重要です。本番システムでない場合、仮定的な作業負荷の動作を予測します。通常、この見積りは、あまり正確ではありません。

本番システムの場合、または同様の特徴を持つテスト・システムがある場合、モジュールまたは機能領域ごとの主要パフォーマンス・インジケータをより簡単に計算できます。この計算には、任意のデータベース・セッションがどのアプリケーション・モジュールを実行しているかを判断する簡単な方法が必要です。V$SESSIONビューの PROGRAM列に、クライアント側で実行されている実行可能ファイル名が示されます。異なるモジュールが同じ実行可能ファイルを実行している場合、その情報だけでは識別は不可能です。この場合、Oracle のDBMS_APPLICATION_INFOパッケージを使用して追加情報を取得します。

たとえば、Oracle Applications 11i は DBMS_APPLICATION_INFO.SET_MODULEプロシージャをコールして、V$SESSIONの MODULE列に Oracle Forms の名前および Oracle Reportsの名前を登録します。これによって、V$SESSTATからすべての適切なセッション統計を収集して V$SESSIONに結合し、モジュールごとにグループ化できるため、非常に効率的です。このようにしてインスタンス統計をモジュールごとに分析し、作業負荷プロファイルを作成できます。この構文の例は次のとおりです。

SELECT s.module, SUM(st.value)FROM V$SESSION S, V$SESSTAT STWHERE s.sid=st.sidAND st.statistic#=12 /* CPU used by this session */GROUP BY s.module

Real Application Clusters アプリケーションの拡張 3-11

Page 58: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での作業負荷の特徴付け

作業負荷を特徴付けるための Oracle の機能には、BEFORE LOGOFF ON DATABASEイベント・トリガーもあります。このトリガーを V$SESSIONからの情報とともに使用すると、セッションが切断されてその統計が表に格納される直前に、セッションから関連する統計を収集できます。この操作で必要となる文は 1 つの INSERT … AS SELECT文のみであるため、関連するオーバーヘッドを 小にできます。ただし、不要な統計を収集しすぎてトリガーのオーバーヘッドを増加させないように注意する必要があります。このことに注意すれば、パフォーマンスへの影響を 小限に抑えながら、本番環境でこのトリガーを使用できます。この構文の例は次のとおりです。

CREATE OR REPLACE TRIGGER my_logoffBEFORE LOGOFF ON DATABASEBEGIN INSERT INTO w_session (instance_number, logoff_time, sid, audsid, module, program, cpu, pgamem) SELECT p.value, SYSDATE,s1.sid,s1.audsid,s1.module,s1.program,s2.value,s3.value FROM V$SESSION s1, V$MYSTAT s2, V$MYSTAT s3, V$PARAMETER p WHERE s2.statistic#=12 /* CPU used by this session */ and s3.statistic#=21 /* session pga memory max */ AND s1.sid=s2.sidAND s1.sid=s3.sidAND p.name='instance_number';END;/

システムのピーク使用時の各モジュールに対する CPU およびメモリーの使用を計算すると、アプリケーションをパーティション化する必要があるかどうか、およびそのソリューションがさらに明確になります。このような情報を使用して、各ノードの容量を十分に使用できるように既存のインスタンス間にアプリケーション・モジュールを分散できます。

ただし、パーティション化の方法は、システムのリソース使用以外の要因も考慮して判断する必要があります。異なるアプリケーション・モジュールが頻繁に同じ表を変更する大規模な OLTP システムでは、Real Application Clusters のオーバーヘッドが、理想的な拡張構成を判断する重要な要因になる場合があります。この場合は、各機能領域がデータにアクセスする方法も考慮する必要があります。

手順手順手順手順 3: 各機能領域のデータ・アクセス・パターンを分析する各機能領域のデータ・アクセス・パターンを分析する各機能領域のデータ・アクセス・パターンを分析する各機能領域のデータ・アクセス・パターンを分析する一連の分割表にアクセスする機能領域は、Real Application Clusters で 適化されます。そのため、データ・アクセスを分析する際に、2 つ以上の機能領域によってアクセスされる表

(機能領域間のオーバーラップ)の識別および調査に重点を置く必要があります。

参照参照参照参照 : Oracle パッケージの詳細は、『Oracle9i PL/SQ パッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

3-12 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 59: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での作業負荷の特徴付け

手順手順手順手順 3.1: 表アクセスの要件を識別し、オーバーラップを定義する表アクセスの要件を識別し、オーバーラップを定義する表アクセスの要件を識別し、オーバーラップを定義する表アクセスの要件を識別し、オーバーラップを定義する各機能領域がどの表にアクセスするかを判断し、オーバーラップを識別します。オーバーラップとは、1 つの表を 2 つ以上の機能領域からユーザーがアクセスすることです。表 3-1に、オーバーラップしている表を太字で示します。残りの表は、列ヘッダーに示されている機能によって、排他的にアクセスされています。

目標は、グローバル競合の原因になり、アプリケーションのパフォーマンスに悪影響を及ぼすオーバーラップを識別することです。この例では、両方の機能が同時に 3 つの表にアクセスします。残りの表は排他的にアクセスされているため、必要なリソースはさらに少なくなります。

手順手順手順手順 3.2: オーバーラップごとにアクセス・タイプを定義するオーバーラップごとにアクセス・タイプを定義するオーバーラップごとにアクセス・タイプを定義するオーバーラップごとにアクセス・タイプを定義する表 3-2 に示すとおり、各オーバーラップに対するアクセス・タイプを判断します。

表表表表 3-2 表アクセス・タイプの例表アクセス・タイプの例表アクセス・タイプの例表アクセス・タイプの例

表表表表 3-1 オーバーラップしている表の例オーバーラップしている表の例オーバーラップしている表の例オーバーラップしている表の例

ホテルの予約の操作ホテルの予約の操作ホテルの予約の操作ホテルの予約の操作 フロント・デスクの操作フロント・デスクの操作フロント・デスクの操作フロント・デスクの操作

表 1 表 12

表 7 表 14

表表表表 15 表表表表 15

表 11 表 16

表表表表 19 表表表表 19

表表表表 20 表表表表 20

予約による予約による予約による予約によるオーバーラップ・オーバーラップ・オーバーラップ・オーバーラップ・アクセス・タイプアクセス・タイプアクセス・タイプアクセス・タイプ

オーバーラップオーバーラップオーバーラップオーバーラップする表する表する表する表

フロント・デスクフロント・デスクフロント・デスクフロント・デスクによるによるによるによる

オーバーラップ・オーバーラップ・オーバーラップ・オーバーラップ・アクセス・タイプアクセス・タイプアクセス・タイプアクセス・タイプ

S(SELECT)

I(INSERT)

U(UPDATE)

表 15

表 19

表 20

S

I

U

Real Application Clusters アプリケーションの拡張 3-13

Page 60: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での作業負荷の特徴付け

この例では、両方の機能が表に対して次のようにアクセスします。

� SELECT 文によるアクセス : 表 15

� INSERT 文によるアクセス : 表 19

� UPDATE 文によるアクセス : 表 20

手順手順手順手順 3.3: トランザクション・ボリュームを識別するトランザクション・ボリュームを識別するトランザクション・ボリュームを識別するトランザクション・ボリュームを識別する表 3-3 に示すとおり、オーバーラップによって生成されると予測されるトランザクションの数を見積もります。

表表表表 3-3 表トランザクション・ボリュームの例表トランザクション・ボリュームの例表トランザクション・ボリュームの例表トランザクション・ボリュームの例

これらのトランザクション・ボリュームによって、オーバーラップされる表にパフォーマンスの問題が発生する場合があります。ただし、アプリケーションが表にほとんどアクセスしない場合、表 3-3 に示すボリュームは問題にはならない場合があります。

手順手順手順手順 3.4: オーバーラップを分類するオーバーラップを分類するオーバーラップを分類するオーバーラップを分類する次の基準を使用して、2 つ以上の機能領域からアクセスされる表のスケーラビリティを改善する方法を決定します。

� オーバーラップしていない表、検索専用のオーバーラップおよび低頻度のオーバーラップは無視します。前述の例の表 1、7、11、12、14、15 および 16 を無視します。

� アプリケーションをパーティション化して、異なるインスタンスからの高頻度のオーバーラップを 小限に抑えます。頻繁にオーバーラップされる機能領域を同じインスタンス内に設定するようにします。

� 残りのオーバーラップは、部門パーティション化や物理表のパーティション化などの他の方法を使用して解決できます。

� オーバーラップは、すべてのシステムである程度は発生することに注意してください。ほとんどの場合、キャッシュ・フュージョンによって、コードを変更しなくても適切なパフォーマンスが得られます。

� INSERT 文集中型の表で空きリスト・グループを使用して、高頻度の INSERTオーバーラップの影響を 小限に抑えることができます。

予約によるトランザクション・予約によるトランザクション・予約によるトランザクション・予約によるトランザクション・オーバーラップオーバーラップオーバーラップオーバーラップ

オーバーラップオーバーラップオーバーラップオーバーラップ フロント・デスクによるフロント・デスクによるフロント・デスクによるフロント・デスクによるトランザクション・オーバーラップトランザクション・オーバーラップトランザクション・オーバーラップトランザクション・オーバーラップ

S(毎秒(毎秒(毎秒(毎秒 10))))

I(毎秒(毎秒(毎秒(毎秒 100))))

U(毎秒(毎秒(毎秒(毎秒 50))))

表 15

表 19

表 20

S(毎秒(毎秒(毎秒(毎秒 50))))

I(毎秒(毎秒(毎秒(毎秒 10))))

U(毎秒(毎秒(毎秒(毎秒 90))))

3-14 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 61: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのスケールアップおよび パーティション化

Real Application Clusters でのスケールアップおよびでのスケールアップおよびでのスケールアップおよびでのスケールアップおよびパーティション化パーティション化パーティション化パーティション化

Real Application Clusters のアプリケーションを適切にパーティション化している場合、データベースのサイズが増加しても、同じパーティション化方法を維持しながら、 適なパフォーマンスを得ることができます。新しい機能を追加するときに使用するパーティション化方法は、新機能がアクセスするデータの型によって異なります。新機能が分割データにアクセスする場合、既存のパーティション化方法が適切です。新機能が既存の機能と同じデータにアクセスする場合、パーティション化方法の変更が必要な場合があります。

アプリケーションを予測以上のユーザーが使用する場合、インスタンスを追加する必要がある場合があります。新しいインスタンスを追加する場合も、アプリケーションの再パーティション化が必要な場合があります。

Real Application Clusters 環境にインスタンスを追加する前に、新しいインスタンスのデータ・アクセス要件を分析します。新しいインスタンスが、インスタンス独自のデータのサブセット、または既存のインスタンスにアクセスされていないデータにアクセスする場合、現行のパーティション化方法によって、データ競合を適切に回避する必要があります。ただし、新しいインスタンスが既存のデータにアクセスする場合、次の問題を考慮してください。

� 新しいインスタンスに新しい機能性を追加し、新しい機能性が既存の表にアクセスする必要がある場合、パーティション化方法の変更を検討してください。

� また、既存のアプリケーションのユーザーの一部を追加のインスタンスに再度割り当てる場合も、パーティション化方法の変更が必要な場合があります。

参照参照参照参照 : 4-2 ページの「空きリスト・グループを使用した複数ノードからの同時挿入」を参照してください。

参照参照参照参照 : インスタンスの追加の詳細は、『Oracle9i Real Application Clusters管理』を参照してください。

Real Application Clusters アプリケーションの拡張 3-15

Page 62: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのスケールアップおよび パーティション化

3-16 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 63: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters データベースの

4

Real Application Clusters データベースの設計データベースの設計データベースの設計データベースの設計

この章では、Oracle Real Application Clusters 環境用のデータベースの設計方法について説明します。内容は次のとおりです。

� Real Application Clusters に対するデータベース設計の原理

� 空きリスト・グループを使用した複数ノードからの同時挿入

� Real Application Clusters での順序番号の使用

� Real Application Clusters での表領域の設計

� Real Application Clusters 設計での索引の問題

� Real Application Clusters でのオブジェクトの作成および パフォーマンス

� 結論およびガイドラインの概要

設計 4-1

Page 64: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters に対するデータベース設計の原理

Real Application Clusters に対するデータベース設計の原理に対するデータベース設計の原理に対するデータベース設計の原理に対するデータベース設計の原理共有 Oracle Real Application Clusters データベースに対してデータベース・レイアウトを設計する場合、複数のノードノードノードノードからグローバルに共有されているデータにアクセスすると、トランザクション・プロセスのコストが増加することに注意してください。複数ノードのトランザクションでは、単一ノード・システムで処理されるトランザクションより、待機時間が長くなり、CPU 消費も多くなります。このため、スケーラビリティが向上するようにデータベースを設計するには、アプリケーションのデータベース・アクセス・パターンを十分に考慮する必要があります。

一般に、次の処理を行うことによってスケーラビリティが向上します。

� 類似したデータ・アクセス特性を持つトランザクションを、特定のノードに割り当てます。

� グローバルに共有された場合に、より効率的なアクセスを可能にするパラメータを使用して、データ・オブジェクトを作成します。

クラスタ化システムに対して、 もスケーラブルで効率的なアプリケーション設計を行うと、トランザクションがアクセスするデータへのトランザクション・アフィニティが高くなります。アプリケーションのデータ・アクセスがよりローカルであれば、アプリケーションがより効率的になります。この場合、インスタンス間の同期化コストが 小限に抑えられます。

複数ノード・システム上で実行されるすべてのアプリケーションには、ノードとのアフィニティが低いデータがあります。このデータはクラスタクラスタクラスタクラスタ間で共有されるため、同期化が必要です。ただし、キャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョンによって、複数ノード間でデータを効率的に同期化できるため、グローバル共有データベースのパーティションに関連するコストが削減されます。

あるトランザクションが Real Application Clusters 環境で実行する場合、いくつかのデータベース・リソースが重要になります。たとえば、同じ表内の少数のデータ・ブロックに対して、頻繁にインスタンス間の変更を行うと、インスタンス間のメッセージ交換、コンテキストのスイッチングおよび一般的な処理のオーバーヘッドが増加する原因になります。表に 1つ以上の索引がある場合、索引変更の相対的な複雑さによって、メンテナンス・コストがさらに増加する場合があります。

空き領域を検索し、新しいデータの挿入時にその領域を割り当てるには、セグメント空きリストなどの領域管理構造へのアクセスが必要です。また、クラスタ内のすべてのノードが順序番号を使用する場合、順序番号の生成は慎重に構成する必要があります。

4-2 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 65: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

空きリスト・グループを使用した複数ノードからの同時挿入

空きリスト・グループを使用した複数ノードからの同時挿入空きリスト・グループを使用した複数ノードからの同時挿入空きリスト・グループを使用した複数ノードからの同時挿入空きリスト・グループを使用した複数ノードからの同時挿入複数ノードからパーティション化されていない表に頻繁にデータを挿入する場合、空きリスト・グループを使用するとパフォーマンスの問題を回避できます。この場合、競合の原因は、データ・ブロック、表セグメント・ヘッダーおよびその他のグローバル・リソース要求への並行アクセスと考えられます。

空きリスト・グループは、表の空き領域管理に対応付けられたデータ構造を、個々のインスタンスが使用できる分割データの集合に分離します。空きリスト・グループを使用すると、異なるインスタンスで作業するプロセス間の競合を削減できます。これは、挿入を行うために十分な空き領域があるデータ・ブロックが、インスタンスごとに管理されるためです。

異なるノードからデータを挿入するときの並行性によるオーバーヘッドを回避するには、パーティション表を使用しても効果的です。ただし、パーティション表を使用する場合は、パーティション内のデータ間にアフィニティがあることを確認する必要があります。

キャッシュ・フュージョンは、キャッシュ間転送を行うことによってインスタンス間の共有データの並行性を解決します。これによって、キャッシュの一貫性を保つためのオーバーヘッドが削減されます。インスタンス間の並行性を完全に回避するには、空きリスト・グループを使用します。ただし、空きリスト・グループおよび空きリストを使用して表、索引またはクラスタを構築する前に、その機能がアプリケーションに有効であるかを判断する必要があります。

空きリスト・グループを使用したデータベース・オブジェクトの作成空きリスト・グループを使用したデータベース・オブジェクトの作成空きリスト・グループを使用したデータベース・オブジェクトの作成空きリスト・グループを使用したデータベース・オブジェクトの作成特定のアプリケーション用にデータベースを設計する前に、データベース表に対するデータの追加、変更または読込みの頻度を確認する必要があります。複数ノードを使用し、特定のノードにユーザーまたはアプリケーション・モジュールを転送する場合、インスタンス間の並行性を少なくすることができます。そのため、特定の設計方法を使用する必要はありません。

複数のインスタンスインスタンスインスタンスインスタンスが同じ表に頻繁にランダム挿入を行う場合は、通常、空きリストおよび空きリスト・グループが必要です。プロセスがデータ・ブロックの領域を検索するため、同じブロックおよび表ヘッダーに対して競合が発生する場合があります。また、並行度、およびあるインスタンスから別のインスタンスにデータとヘッダーを送信するオーバーヘッドによって、パフォーマンスが低下する可能性があります。このような場合、空きリスト・グループを使用することで、パフォーマンスを改善できます。

参照参照参照参照 : 空きリスト・グループの概要については、『Oracle9i Real Application Clusters 概要』を参照してください。

参照参照参照参照 : パーティション化の詳細は、3-7 ページの「Real Application Clusters での作業負荷分散の概要」を参照してください。

Real Application Clusters データベースの設計 4-3

Page 66: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

空きリスト・グループを使用した複数ノードからの同時挿入

Real Application Clusters への移行前の重要な表の識別への移行前の重要な表の識別への移行前の重要な表の識別への移行前の重要な表の識別シングル・インスタンス環境から Real Application Clusters にアプリケーションを移行するには、まず、頻繁に挿入が行われる表を識別します。これを行うには、次の例のとおりV$SQLを問い合せて INSERTコマンドを検索します。

SELECT SUBSTR(SQL_TEXT,80), DECODE(COMMAND_TYPE,2,'INSERT'),EXECUTIONSFROM V$SQLWHERE COMMAND_TYPE = 2 ORDER BY EXECUTIONS;

も実行頻度の高い文の文字列にある表の名前を検索します。実行頻度の高い文、および検索された表に対して作成されている索引が、空きリスト・グループの候補になります。アプリケーションのパーティション化方法も考慮してください。つまり、挿入が頻繁に行われる表でも、常に同じインスタンスから INSERT文が発行される場合、その表の FREELIST GROUPSパラメータの値を増やす必要はありません。このような場合、空きリストを変更する方がパフォーマンスには有効です。

FREELIST GROUPS の再編成の必要性の再編成の必要性の再編成の必要性の再編成の必要性空きリスト・グループを監視するには、V$CLASS_CACHE_TRANSFERビューを使用してキャッシュの転送およびディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行の割合を調査します。V$CLASS_CACHE_TRANSFERビューには、ブロックの各クラスに対してインスタンスが起動した後のキャッシュの転送回数が示されます。次の SELECT文で、セグメント・ヘッダーまたは空きリスト(あるいはその両方)のディスク書込みの強制実行に対して、比較的高い値(全体の5%を超える)が結果として出力される場合、パフォーマンスを改善するために、いくつかの表の FREELIST GROUPSパラメータを変更することを検討してください。

SELECT CLASS, (X_2_NULL_FORCED_STALE + X_2_S_FORCED_STALE) CACHE_TRANSFER FROM V$CLASS_CACHE_TRANSFER;

V$CLASS_CACHE_TRANSFERはキャッシュの転送をオブジェクト名ごとに識別しないため、キャッシュの転送数に大きく影響するオブジェクトを識別するには、他のビューを使用します。たとえば、V$CACHE_TRANSFERには、転送されたバッファ・キャッシュの各ブロックに関する情報が示されます。ブロック・クラス番号 4 はセグメント・ヘッダーを識別し、ブロック・クラス番号 6 は空きリスト・ブロックを識別します。次の SELECT文を実行すると、空きリスト・グループの値を増やすメリットがあるオブジェクトが示されます。

SELECT NAME, CLASS#, SUM(XNC) CACHE_TRANSFERFROM V$CACHE_TRANSFERWHERE CLASS# IN (4,6)GROUP BY NAME, CLASS#ORDER BY CACHE_TRANSFER DESC;

注意注意注意注意 : V$CLASS_CACHE_TRANSFERなどのビューを使用できるのは、CATCLUST.SQLスクリプトを実行した後のみです。

4-4 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 67: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

空きリスト・グループを使用した複数ノードからの同時挿入

FREELISTS およびおよびおよびおよび FREELIST GROUPS を使用した表、クラスタおよび索引のを使用した表、クラスタおよび索引のを使用した表、クラスタおよび索引のを使用した表、クラスタおよび索引の作成作成作成作成

空きリストおよび空きリスト・グループを作成するには、CREATE TABLE文、CREATE CLUSTER文または CREATE INDEX文に FREELISTS記憶域パラメータおよび FREELIST GROUPS記憶域パラメータを指定します。データベースは排他モードまたは共有モードのいずれでもオープンできます。空きリスト・グループを使用する必要がある場合、原則として、各 Real Application Clusters インスタンスに、空きリスト・グループを 1 つ以上作成します。

FREELISTS パラメータパラメータパラメータパラメータFREELISTSパラメータには、空きリスト・グループごとの空きリスト数を指定します。FREELISTSのデフォルトおよび 小値は 1です。 大値は、データ・ブロックのサイズによって異なります。指定した値が大きすぎると、エラー・メッセージが表示され、 大値が示されます。FREELISTSの 適値は、特定の表の空きリスト・グループ 1 つ当りに予想される同時挿入の数によって異なります。

FREELIST GROUPS パラメータパラメータパラメータパラメータ各空きリスト・グループは、起動時に 1 つ以上のインスタンスに対応付けられます。FREELIST GROUPSのデフォルト値は 1です。これは、セグメントの既存の空きリストすべてをすべてのインスタンスが使用できることを意味します。前述のとおり、通常、FREELIST GROUPSには、Real Application Clusters のインスタンスの数を設定します。

挿入および更新のために十分な空き領域がある空きリスト・グループ・ブロックは、一度特定の空きリスト・グループに割り当てられると効率的に分割されます。ただし、1 つのインスタンスに割り当てられたデータ・ブロックは、別のインスタンスによって割当てを解除されると、元のインスタンスでは使用できなくなります。これによって、領域の一部が使用不可能になり、偏りが発生する場合もあります。

注意注意注意注意 : ALTER TABLE文、ALTER CLUSTER文または ALTER INDEX文で FREELIST GROUPSの値を変更するには、表またはクラスタをエクスポート、削除、再構築および再ロードする必要があります。ただし、ALTER TABLE文、ALTER INDEX文または ALTER CLUSTER文でFREELISTSを動的に変更することはできます。

注意注意注意注意 : 複数の空きリスト・グループを使用すると、空きリスト構造はセグメント・ヘッダーから切り離され、空きリスト・ブロック(個別のブロック)に置かれます。これによってセグメント・ヘッダーに対する競合が減り、インスタンスに個別の空きブロック・リストが提供されます。

Real Application Clusters データベースの設計 4-5

Page 68: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

空きリスト・グループを使用した複数ノードからの同時挿入

例例例例 次の文では、それぞれ 4 つの空きリストを含む 7 つの空きリスト・グループを持つ、departmentという名前の表が作成されます。

CREATE TABLE department (deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13) ) STORAGE ( INITIAL 100K NEXT 50K MAXEXTENTS 10 PCTINCREASE 5 FREELIST GROUPS 7 FREELISTS 4 );

クラスタ化表のクラスタ化表のクラスタ化表のクラスタ化表の FREELISTS およびおよびおよびおよび FREELIST GROUPS の作成の作成の作成の作成レコードが、グループとして 1 つ以上の SELECT文によって頻繁にアクセスされる場合、クラスタ化表を使用して、別の表からレコードを格納します。クラスタ化表を使用すると、読込み処理のオーバーヘッドを減少させてパフォーマンスを改善できます。ただし、クラスタ化表は DML 文に対してあまり有効でない場合もあります。

クラスタ化表の場合は、CREATE TABLE文に FREELISTS記憶域パラメータおよびFREELIST GROUPS記憶域パラメータを指定できません。空きリスト・パラメータは、個々の表についてではなく、クラスタ全体について指定する必要があります。これは、クラスタ化表では、CREATE CLUSTER文の記憶域パラメータが使用されるためです。

Real Application Clusters では、ハッシュ・クラスタ以外のクラスタは、複数の空きリストおよび空きリスト・グループを使用できます。ハッシュ・クラスタの中には、ハッシュ関数についてユーザー定義のキーを使用して作成され、そのキーがインスタンス別にパーティション化されている場合に、複数の空きリストおよび空きリスト・グループを使用できるものもあります。

注意注意注意注意 : TRUNCATE TABLE table_name REUSE STORAGE構文を使用すると、空きリスト・グループに対するエクステントのマッピングが削除され、 高水位標高水位標高水位標高水位標が 初のエクステントの開始点にリセットされます。

4-6 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 69: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

空きリスト・グループを使用した複数ノードからの同時挿入

索引の索引の索引の索引の FREELISTS の作成の作成の作成の作成CREATE INDEX文に FREELISTSパラメータおよび FREELIST GROUPSパラメータを使用することもできます。ただし、索引への挿入と表への挿入は異なることに注意してください。これは、使用されるブロックが、索引キー値によって判断されるためです。

たとえば、複数の空きリスト・グループのある表があり、その索引にも複数の空きリスト・グループがあると想定します。2 つのセッションが異なるインスタンスに接続し、その表に行を挿入する場合、Oracle は異なるブロックを使用して表データを格納します。これによって、影響を受けるデータ・セグメントに対するキャッシュ・ブロック転送が 少になります。ただし、これらのセッションが同様の索引キー値を挿入する場合、索引セグメントのキャッシュ・ブロック転送が行われる可能性があります。この場合、Oracle は、索引の空きリストを格納するためにさらに多くのヘッダー・ブロックを使用する必要があるため、索引セグメント・ヘッダーのキャッシュ転送はほとんど削減されません。

インスタンスおよびユーザー・セッションと空きリスト・グループのインスタンスおよびユーザー・セッションと空きリスト・グループのインスタンスおよびユーザー・セッションと空きリスト・グループのインスタンスおよびユーザー・セッションと空きリスト・グループの対応付け対応付け対応付け対応付け

Oracle が複数の空きリスト・グループを使用してオブジェクトを作成する場合、空きリスト・グループ・ブロック数は、オブジェクトのデータ・ディクショナリの定義の一部になります。インスタンスおよびユーザーは、空きリスト・グループ・ブロックと対応付ける必要があります。初期化パラメータを使用して固定インスタンス番号インスタンス番号インスタンス番号インスタンス番号をインスタンスに割り当てるか、DDL 文にインスタンス番号を指定することによって、静的にこの対応付けを行うことができます。

この項の内容は次のとおりです。

� インスタンスと空きリスト・グループの対応付け

� ユーザー・プロセスと空きリスト・グループの対応付け

参照参照参照参照 : SQL の詳細は、『Oracle9i SQL リファレンス』を参照してください。

Real Application Clusters データベースの設計 4-7

Page 70: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

空きリスト・グループを使用した複数ノードからの同時挿入

インスタンスと空きリスト・グループの対応付けインスタンスと空きリスト・グループの対応付けインスタンスと空きリスト・グループの対応付けインスタンスと空きリスト・グループの対応付け次のようにして、インスタンスと空きリスト・グループを対応付けます。

SET INSTANCE句は、1 つのインスタンスに障害が発生し、他のインスタンスに接続する場合に有効です。たとえば、表の空きリスト・グループに領域が事前に割り当てられているデータベースを考えてみます。1 つのインスタンスに障害が発生し、すべてのユーザーが他のインスタンスにフェイルオーバーされた場合、それらのセッションが、障害が発生したインスタンスに対応付けられた空きリスト・グループを使用するように設定できます。

SET INSTANCE句を省略すると、フェイルオーバーされたセッションは、セッションのフェイルオーバー先であるインスタンスに割り当てられたブロックおよびエクステントへデータを挿入し始めます。その後、障害インスタンスがリストアされ、ユーザーがそのインスタンスに再接続すると、挿入されたデータが、他のインスタンスの空きリスト・グループと対応付けられた一連のブロックに組み込まれます。このため、インスタンス間の通信が増加する場合があります。

ユーザー・プロセスと空きリスト・グループの対応付けユーザー・プロセスと空きリスト・グループの対応付けユーザー・プロセスと空きリスト・グループの対応付けユーザー・プロセスと空きリスト・グループの対応付けユーザー・プロセスは、次の例に示すように、各ユーザーが実行中のプロセスの Oracle プロセス ID に基づいて、空きリストに自動的に対応付けられます。

ALTER SESSION SET INSTANCE文を使用することによって、特定のインスタンスに対応付けられた空きリスト・グループを使用することができます。

INSTANCE_NUMBERパラメータ

INSTANCE_NUMBER初期化パラメータと同時に様々な SQL 句を使用して、データ・ブロックのエクステントとインスタンスを対応付けることができます。

SET INSTANCE句 ALTER SESSION文の SET INSTANCE句を使用して、セッションが接続しているインスタンスに関係なく、そのセッションが特定のインスタンスに対応付けられている空きリスト・グループを使用できるようにできます。次に例を示します。

ALTER SESSION SET INSTANCE = inst_no

+(oracle_pid modulo #free_lists_for_object) 1

4-8 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 71: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

空きリスト・グループを使用した複数ノードからの同時挿入

エクステントの事前割当てエクステントの事前割当てエクステントの事前割当てエクステントの事前割当てOracle が表に行を挿入する前は、表には、その表に割り当てられた多数の空きブロックを持つ初期エクステントのみがあります。エクステントがない場合は、表は空です。したがって、空きリスト・グループに表用の領域を事前に割り当てる必要があります。これによって、空きブロックを持つエクステントを空きリスト・グループへ 適に割り当てることができます。この結果、インスタンスへの割当ても 適化されます。また、事前割当てによって、エクステント割当てのオーバーヘッドも回避できます。

事前割当てのメリットは、事前に物理記憶域のレイアウトを判断できることです。さらに、エクステント割当て方法によって、新規エクステントの割当て元の物理ファイルまたはボリュームを選択できます。ただし、次に示すように事前割当てを行う場合、ALLOCATE EXTENT句およびいくつかの Oracle 初期化パラメータを実装するかどうか、およびその方法について考慮する必要があります。

� ALLOCATE EXTENT句を使用したエクステントの事前割当て

� MAXEXTENTS、MINEXTENTSおよび INITIALパラメータを設定したエクステントの事前割当て

� INSTANCE_NUMBERパラメータの設定によるエクステントの事前割当て

� エクステント事前割当ての例

ALLOCATE EXTENT 句を使用したエクステントの事前割当て句を使用したエクステントの事前割当て句を使用したエクステントの事前割当て句を使用したエクステントの事前割当てALTER TABLE文または ALTER CLUSTER文の ALLOCATE EXTENT句を使用すると、エクステントのサイズ、データ・ファイルデータ・ファイルデータ・ファイルデータ・ファイルおよびオブジェクトと対応付けられる空きリスト・グループを指定するパラメータを使用して、表、索引またはクラスタにエクステントを事前に割り当てることができます。

排他モードと共有モードおよび排他モードと共有モードおよび排他モードと共有モードおよび排他モードと共有モードおよび ALLOCATE EXTENT 句句句句 データベースを排他モードで実行している間は、共有モードの場合と同様に、ALTER TABLE(または CLUSTER)ALLOCATE EXTENT文を使用できます。インスタンスは、排他モードで実行している間でも、領域の検索については同じ規則に従います。トランザクションは、このインスタンスに対して、マスター空きリストまたは特定の空きリスト・グループを使用できます。

SIZE パラメータおよびパラメータおよびパラメータおよびパラメータおよび ALLOCATE EXTENT 句句句句 ALLOCATE EXTENT句の SIZEパラメータには、エクステント・サイズをブロック・サイズの倍数に切り上げて、バイト単位で指定します。SIZEを指定しない場合、エクステント・サイズは、NEXT記憶域パラメータおよびPCTINCREASE記憶域パラメータの値に従って計算されます。

SIZE値は、後続のエクステント割当ての計算には使用されません。後続のエクステント割当ては、NEXTパラメータおよび PCTINCREASEパラメータに設定された値に従って計算されます。

Real Application Clusters データベースの設計 4-9

Page 72: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

空きリスト・グループを使用した複数ノードからの同時挿入

DATAFILE パラメータおよびパラメータおよびパラメータおよびパラメータおよび ALLOCATE EXTENT 句句句句 このパラメータは、エクステント用の領域を確保するためのデータ・ファイルを指定します。このパラメータを省略すると、該当する表を含む表領域表領域表領域表領域にあるすべてのアクセス可能なデータ・ファイルから、領域が割り当てられます。

ファイル名は、大文字 / 小文字の区別も含めて、制御ファイル制御ファイル制御ファイル制御ファイルに格納されている文字列と正確に一致している必要があります。この文字列は、DBA_DATA_FILESデータ・ディクショナリ・ビューの FILE_NAME列で確認できます。

INSTANCE パラメータおよびパラメータおよびパラメータおよびパラメータおよび ALLOCATE EXTENT 句句句句 このパラメータは、インスタンス番号インスタンス番号インスタンス番号インスタンス番号の整数に対応付けられた空きリスト・グループに新しい領域を割り当てます。各インスタンスは、起動時に、そのインスタンスを空きリスト・グループにマップする一意のインスタンス番号を取得します。 小インスタンス番号は、0(ゼロ)ではなく 1 です。 大値は、オペレーティング・システム固有です。構文は次のとおりです。

ALTER TABLE tablename ALLOCATE EXTENT (... INSTANCE n )

ここで、n は同じ番号の空きリスト・グループにマップされます。インスタンス番号が空きリスト・グループの数より大きい場合は、次のようにハッシュされ、割り当てられる空きリスト・グループが判断されます。

INSTANCEパラメータを指定しないと、新しい領域は表に割り当てられますが、空きリスト・グループには割り当てられません。このような領域は、他の領域が使用できない場合に、必要に応じて空きブロックのマスター空きリストに含められます。

MAXEXTENTS、、、、MINEXTENTS およびおよびおよびおよび INITIAL パラメータを設定したエクスパラメータを設定したエクスパラメータを設定したエクスパラメータを設定したエクステントの事前割当てテントの事前割当てテントの事前割当てテントの事前割当て特定のインスタンスに対応付けられている空きリスト・グループにエクステントを事前に割り当て、MAXEXTENTSをエクステントの現在の数(事前割当てされたエクステントにMINEXTENTSを加えた数)に設定することによって、自動割当てを防止できます。MINEXTENTSを 1(デフォルト)に設定し、INITIALをその 小値(2 つのデータ・ブロック、またはブロック・サイズが 2048 バイトの場合は 10KB)に設定して表またはクラスタを作成すると、初期割当てを 小化できます。

注意注意注意注意 : INSTANCEの値には、実際のインスタンス番号ではなく、使用する空きリスト・グループの番号に対応した値を使用してください。

参照参照参照参照 : INSTANCEパラメータの詳細は、『Oracle9i Real Application Clusters 管理』を参照してください。

+modulo(n,#_freelistgroups) 1

4-10 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 73: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

空きリスト・グループを使用した複数ノードからの同時挿入

データ・ブロックに対するインスタンス間の競合を 小化するには、各表に複数のデータ・ファイルを作成し、各インスタンスを異なるファイルに対応付けます。

システムのノード数を増やす場合は、追加インスタンスを考慮して、現行のインスタンス数より多くの空きリスト・グループを持つ表またはクラスタを作成します。これらの空きリスト・グループには、必要になるまで領域を割り当てる必要はありません。この場合、自動的に割り当てられる領域を持っているのは、空きブロックのマスター空きリストのみです。

データ・ブロックを空きリスト・グループに対応付けるには、その空きリスト・グループを使用するインスタンスで実行中のプロセスによって PCTUSED以下に入れるか、または特別にその空きリスト・グループに割り当てる必要があります。したがって、使用されていない空きリスト・グループは、未使用の空きデータ・ブロックから切り離されることはありません。

INSTANCE_NUMBER パラメータの設定によるエクステントの事前割当てパラメータの設定によるエクステントの事前割当てパラメータの設定によるエクステントの事前割当てパラメータの設定によるエクステントの事前割当てINSTANCE_NUMBER初期化パラメータを使用すると、インスタンスを起動でき、そのインスタンスに割り当てられているエクステントのみを挿入および更新に使用できます。これによって、インスタンスが他のインスタンスに割り当てられた領域を使用しないことを保証できます。インスタンスは、他のインスタンスの INSTANCE_NUMBERで再起動されないかぎり、他のインスタンスの空きリストにあるデータ・ブロックを使用できません。ただし、ALTER SESSION文を使用して、セッション中にインスタンス番号をオーバーライドできます。

エクステント事前割当ての例エクステント事前割当ての例エクステント事前割当ての例エクステント事前割当ての例この項では、エクステントの事前割当ての例を示します。

例例例例 1 次の文では、データ・ファイル DEPT_FILE7の表 DEPARTMENTに使用するエクステントが、インスタンス番号 7 に割り当てられます。

ALTER TABLE department ALLOCATE EXTENT ( SIZE 20K DATAFILE 'dept_file7' INSTANCE 7);

例例例例 2 次の SQL 文では、それぞれ 10 の空きリストを含む 3 つの空きリスト・グループを持つ表が作成されます。

CREATE TABLE table1 ... STORAGE (FREELIST GROUPS 3 FREELISTS 10);

次の SQL 文で新しい領域を割り当て、割り当てたブロックを 2 番目の空きリスト・グループ内の空きリスト間に分割します。

ALTER TABLE table1 ALLOCATE EXTENT (SIZE 50K INSTANCE 2);

Real Application Clusters データベースの設計 4-11

Page 74: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での順序番号の使用

FREELIST GROUPS記憶域パラメータに設定された値より多くのインスタンスを実行している Real Application Clusters 環境では、複数のインスタンスが新しい領域割当てを共有します。この例では、2 つおきに起動されるすべてのインスタンスは、同じ空きリスト・グループに対応付けられます。

例例例例 3 次の CREATE TABLE文では、1 つの初期エクステントと 3 つの空きリスト・グループを持つ EMPLOYEEという表が作成されます。3 つの ALTER TABLE文で、各空きリスト・グループに新しいエクステントが 1 つ割り当てられます。

CREATE TABLE employee ... STORAGE ( INITIAL 4096 MINEXTENTS 1 MAXEXTENTS 4 FREELIST GROUPS 3 ); ALTER TABLE employee ALLOCATE EXTENT ( SIZE 100K DATAFILE 'empfile1' INSTANCE 1 ) ALLOCATE EXTENT ( SIZE 100K DATAFILE 'empfile2' INSTANCE 2 ) ALLOCATE EXTENT ( SIZE 100K DATAFILE 'empfile3' INSTANCE 3 );

MAXEXTENTSは、自動割当を防止するために、4(MINEXTENTSと FREELIST GROUPSの値の合計)に設定されます。

この割当て以上の追加領域が必要な場合は、追加エクステントを割り当てる前に、ALTER TABLE文を使用して MAXEXTENTSを増加させます。たとえば、空きリストの 2 番目のグループに挿入および更新用の追加空き領域が必要な場合、MAXEXTENTSを 5に設定して、その空きリスト・グループ用に別のエクステントを割り当てることができます。

ALTER TABLE employee ... STORAGE ( MAXEXTENTS 5 ) ALLOCATE EXTENT ( SIZE 100K DATAFILE 'empfile2' INSTANCE 2 );

Real Application Clusters での順序番号の使用での順序番号の使用での順序番号の使用での順序番号の使用Real Application Clusters のアプリケーションを設計する場合は、できるだけ Oracle 順序番号を使用します。順序番号の使用を 適化するには、各インスタンスのキャッシュに、順序を保持するための十分なサイズが必要です。デフォルトのキャッシュ・サイズでは、20 個の順序番号が保持されます。これを、200 個の順序番号を保持できるようにするには、次の構文を使用します。

ALTER SEQUENCE sequence_name CACHE 200;

順序付け機能を使用すると、Real Application Clusters でのキャッシュが抑制されます。ただし、通常、SHUTDOWNコマンドの実行後またはインスタンス障害の後は、番号がいくつか失われます。この問題は、シングル・インスタンス構成においても発生します。

4-12 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 75: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での順序番号の使用

順序付けが必須の場合、順序キャッシュを使用禁止にする必要がある場合があります。この場合、ある程度のパフォーマンスのオーバーヘッドが予想されます。

順序におけるグローバル競合の検出順序におけるグローバル競合の検出順序におけるグローバル競合の検出順序におけるグローバル競合の検出順序のキャッシュが不十分な場合、またはキャッシュされない場合、サービス回数の増加によって重大なパフォーマンスの問題が発生する場合があります。パフォーマンスの問題が発生した場合、後述のように V$SYSTEM_EVENTビューの統計情報を調べて、問題が Oracle 順序の使用によるものかどうかを判断します。

� 順序による問題は、「row cache locks」に対する拡張平均待機時間として、数百 ms(ミリ秒)の範囲で、V$SYSTEM_EVENTに表示されます。非アイドル・イベントの合計待機時間に対する「row cache locks」の待機時間の割合が、比較的高くなります。

� DC_SEQUENCESパラメータの場合、DLM_REQUESTSに対する DLM_CONFLICTSの割合は、高くなります。この割合が 10 ~ 15% を超え、「row cache locks」待機時間が合計待機時間の割合の大部分を占める場合、順序のキャッシュが不十分なために、サービス時間が低下することがあります。

データベース表を使用した順序番号の生成データベース表を使用した順序番号の生成データベース表を使用した順序番号の生成データベース表を使用した順序番号の生成アプリケーションが順序番号の損失に対応できない場合、順序をデータベース表に格納して実装する必要がある場合があります。ただし、この方法を実装するために必要なメカニズムに対して、大きなパフォーマンス・オーバーヘッドが発生します。この問題は、シングル・インスタンス環境においても発生します。一般的には、順序番号を格納する行をごく短期間ロックすることをお薦めします。

Real Application Clusters では、順序番号を格納するバッファに必要なキャッシュの一貫性に対して、さらにオーバーヘッドが発生する場合があります。単一のデータ・ブロックに順序番号をいくつか格納しており、2 つ以上のインスタンスでそれらの順序番号を必要とする場合、データ・ブロックは、インスタンス間で頻繁に転送されます。

オーバーヘッドを 小化するには、PCTFREEの値を非常に高く設定して、各データ・ブロックに、順序番号を含む表の行が 1 つのみ格納されるようにします。この場合、キャッシュ転送は、インスタンスが同じ順序番号を同時に要求したときのみ行われます。

参照参照参照参照 : 順序の詳細は、『Oracle9i データベース概要』を参照してください。

Real Application Clusters データベースの設計 4-13

Page 76: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での表領域の設計

Real Application Clusters での表領域の設計での表領域の設計での表領域の設計での表領域の設計表領域の設定における目標は、そのデータ・アクセス分散によってデータベース・オブジェクトをグループ化することです。データベース・オブジェクトの依存性の分析およびトランザクション・プロファイルを考慮すると、表領域を次のオブジェクトに対するコンテナに分割できます。

� 特定の機能領域に属する、頻繁かつランダムに変更される表および索引

� すべての機能領域へのアフィニティを持つ可能性が低い、頻繁かつランダムに変更される表および索引

� 主に読取りまたは読取り専用で、ほとんど変更されない表および索引

データベース・オブジェクトを表領域に分割する場合、さらに次の基準を考慮します。

� 表は、索引から分離する

� 読取り専用の表は、読取り専用表領域に割り当てる

� 小さい参照表は、同じ表領域にグループ化する

この方法を使用して異なる機能領域のデータベース・オブジェクトを異なる表領域にグループ化することによって、動的なリソースのマスター化を改善できます。第 3 章で説明するとおりに機能のパーティション化を行うと、効果が 大になります。Oracle の、データ・ファイルのアルゴリズムに基づいた動的なリソースの再マスター化によって、GCS リソースがも必要とされる部分に再分散されます。この再マスター化方法によって、リソース操作の効率を改善できます。Oracle は、アクセス・パターンに基づいて、リソースと も緊密に対応付けられているインスタンスにリソースを再マスター化します。その結果、再マスター化後のリソース操作に必要な、グローバル・エンキュー・サービスグローバル・エンキュー・サービスグローバル・エンキュー・サービスグローバル・エンキュー・サービス((((GES))))およびグローバル・グローバル・グローバル・グローバル・キャッシュ・サービスキャッシュ・サービスキャッシュ・サービスキャッシュ・サービス((((GCS))))を介したリモート・インスタンスとの通信は、 小限に抑えられます。

まれな例として、付録 A「マルチブロック・ロック割当ての構成(オプション)」に示すとおり、いくつかの表領域に対するデフォルトのリソース制御ポリシーを変更して、GCS 通信量をさらに削減することができます。

参照参照参照参照 : 動的なリソースの再マスター化の詳細は、『Oracle9i Real Application Clusters 概要』を参照してください。

4-14 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 77: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters での表領域の設計

エクステント管理およびローカル管理表領域エクステント管理およびローカル管理表領域エクステント管理およびローカル管理表領域エクステント管理およびローカル管理表領域エクステントの割当ておよび割当て解除は、高コストの操作であるため 小化する必要があります。Real Application Clusters では、これらの操作のほとんどでインスタンス間の調整が必要です。さらに、頻繁にエクステント管理操作を行うと、シングル・インスタンス環境より Real Application Clusters 環境の方が、パフォーマンスが低下する場合があります。この問題は、特にディクショナリ管理の表領域に発生します。

エクステント管理問題の識別エクステント管理問題の識別エクステント管理問題の識別エクステント管理問題の識別「row cache lock」イベントが V$SYSTEM_EVENTの非アイドル待機時間の主な原因である場合、データ・ディクショナリ・キャッシュに競合が発生しています。エクステント割当て操作および割当て解除操作がこの原因である場合があります。

V$ROWCACHEは、DC_USED_EXTENTSおよび DC_FREE_EXTENTSのデータ・ディクショナリ・キャッシュ情報を提供します。この問題は、特に、これらのパラメータに対するDLM_CONFLICTSの値が時間とともに大幅に増加する場合に発生します。これは、エクステント管理アクティビティが過剰に発生していることを示します。

エクステント管理操作の最小化エクステント管理操作の最小化エクステント管理操作の最小化エクステント管理操作の最小化表、索引、一時セグメントおよびロールバック・セグメントロールバック・セグメントロールバック・セグメントロールバック・セグメントの記憶域パラメータを適切に構成することによって、エクステント割当ておよび割当て解除の頻度を減らすことができます。これを行うには、INITIALパラメータ、NEXTパラメータ、PCTINCREASEパラメータ、MINEXTENTSパラメータおよび OPTIMALパラメータを使用します。

ローカル管理表領域の使用ローカル管理表領域の使用ローカル管理表領域の使用ローカル管理表領域の使用ローカル管理表領域を使用すると、エクステントの割当ておよび割当て解除によるオーバーヘッドを大幅に減らすことができます。パフォーマンスを 適化し、領域を 適に使用するには、ローカル管理表領域にあるセグメントの領域割当て特性が、すべて同じであることが理想的です。この場合、セグメント用に計算された理想的なエクステント・サイズの増分に対応する適切な均一エクステント・サイズを使用して表領域を作成できます。

たとえば、均一エクステント・サイズが 10MB である表領域には、かなり頻繁に挿入が行われる表を格納できます。一方、均一エクステント・サイズが 100KB である表領域には、DML アクティビティが限られている小規模な表を置くことができます。既存のシステムの表領域がセグメント・サイズに基づいて構成されていない場合、このタイプの構成を行うにはかなりの再構成の工数が必要になり、効果も限られています。そのため、UNIFORMエクステント割当てのかわりに AUTOALLOCATEを使用して、大部分の表をローカル管理するように作成します。

参照参照参照参照 : CREATE TABLESPACE文の AUTOALLOCATE句および UNIFORM句の詳細は、『Oracle9i SQL リファレンス』を参照してください。

Real Application Clusters データベースの設計 4-15

Page 78: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters 設計での索引の問題

Real Application Clusters 設計での索引の問題設計での索引の問題設計での索引の問題設計での索引の問題高ボリュームの OLTP システムでは、インスタンス間で同時に索引ブロックにアクセスすると、Real Application Clusters 処理コストが増加する場合があります。これは、通常、一般的に使用される B+ ツリー索引構造では、より多くのキャッシュ・フュージョン・アクティビティが発生するためです。右上がりツリーでは、1 つの特定のリーフ・ブロックに頻繁なキャッシュ転送が発生します。

ツリー構造を横断中に、ブランチ・ブロックが、そのブランチ・ブロックを 後に修正した別のインスタンスから要求される場合あります。3 つのブロックを 1 つのトランザクションで変更する必要があるため、リーフ・ブロックの分割は影響を受けやすくなります。異なるインスタンスから大量のトランザクションが発生する場合、インスタンス間の同時変更を次の単位に変更する必要がある場合があります。

� リーフおよびブランチ・ブロック

� ルート・ブロック

� 索引セグメント・ヘッダー

次の項では、リーフおよびブランチ・ブロックの競合の削減方法を説明します。4-3 ページの「空きリスト・グループを使用した複数ノードからの同時挿入」に従って空きリスト・グループを使用して、索引セグメント・ヘッダーの同時変更を削減できます。

索引ブロックへのインスタンス間の同時変更の削減索引ブロックへのインスタンス間の同時変更の削減索引ブロックへのインスタンス間の同時変更の削減索引ブロックへのインスタンス間の同時変更の削減この項では、索引の異なる部分へのアクセスを隔離または分離させてパフォーマンスを改善する方法を説明します。

� 逆キー索引を使用した索引アクセスの分散

� 各インスタンスへのサブ順序の割当てによる索引競合の削減

� INSTANCE_NUMBER を使用した索引キーの生成

� 表のレンジ・パーティション化による索引競合の削減

逆キー索引を使用した索引アクセスの分散逆キー索引を使用した索引アクセスの分散逆キー索引を使用した索引アクセスの分散逆キー索引を使用した索引アクセスの分散右上がり索引ツリーを回避するには、逆キー索引逆キー索引逆キー索引逆キー索引を使用します。キーを逆にすることによって、索引のリーフ・ブロック上に索引キーをより広範囲に分散できます。そのため、複数インスタンスが同じリーフおよびブランチ・ブロックにアクセスする可能性が低下します。

注意注意注意注意 : 逆キー索引では索引のレンジ・スキャンができません。逆キー索引を使用する前に、このことを十分に考慮してください。

4-16 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 79: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters 設計での索引の問題

各インスタンスへのサブ順序の割当てによる索引競合の削減各インスタンスへのサブ順序の割当てによる索引競合の削減各インスタンスへのサブ順序の割当てによる索引競合の削減各インスタンスへのサブ順序の割当てによる索引競合の削減順序番号に基づく索引の場合は、各インスタンスに異なるサブ順序を割り当てます。これによって、ある特性に基づいてパーティション化できるデータベース・オブジェクトについて、アクセス・パターンが適切に分散される場合があります。

INSTANCE_NUMBER を使用した索引キーの生成を使用した索引キーの生成を使用した索引キーの生成を使用した索引キーの生成その他、ある順序で割り当てられる値については、索引値を調整し、次のようにINSTANCE_NUMBERを使用して、索引キーを生成します。

表のレンジ・パーティション化による索引競合の削減表のレンジ・パーティション化による索引競合の削減表のレンジ・パーティション化による索引競合の削減表のレンジ・パーティション化による索引競合の削減索引の競合を削減するには、表をレンジ・パーティション化し、各パーティションにローカル索引を作成することも効果的です。

参照参照参照参照 : 物理表のパーティション化の実装ガイドラインについては、3-1ページの「Real Application Clusters アプリケーションの拡張」を参照してください。

index key = (instance_number -1) × 100000 Sequence number+

Real Application Clusters データベースの設計 4-17

Page 80: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters 設計での索引の問題

図 4-1 に、レンジ・パーティション化された表に格納されたレコードに対するトランザクション操作によって、どのようにリーフおよびブランチ・ブロックの競合が 小化されるかを示します。

図図図図 4-1 レンジ・パーティション化された表に対するトランザクションのノード・アフィニティレンジ・パーティション化された表に対するトランザクションのノード・アフィニティレンジ・パーティション化された表に対するトランザクションのノード・アフィニティレンジ・パーティション化された表に対するトランザクションのノード・アフィニティ

ルート・�ノード�

リーフ・�ノード�

リーフ・�ノード�

リーフ・�ノード�

リーフ・�ノード�

ルート・�ノード�

A-H I-M N-S T-Z

索引�ヘッダー・�ブロック�

インスタンス1レコードA~M上の�トランザクション�

インスタンス2トランザクション�N~Z上の�トランザクション�

4-18 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 81: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

パフォーマンス最適化のための表ロックの最小化

パフォーマンス最適化のための表ロックの最小化パフォーマンス最適化のための表ロックの最小化パフォーマンス最適化のための表ロックの最小化パフォーマンス最適化のための表ロックの最小化Real Application Clusters では、表ロックは、インスタンス間通信によってグローバルに調整されます。ほとんどのアプリケーションは表全体をロックする必要がないため、表ロックを使用禁止にして、ロックの効果を改善し、悪影響を及ぼす副作用を 小限にできます。次の項で、表ロックを使用禁止にする方法を説明します。

� 個々の表に対する表ロックの使用禁止

� DML_LOCKS を 0(ゼロ)に設定

個々の表に対する表ロックの使用禁止個々の表に対する表ロックの使用禁止個々の表に対する表ロックの使用禁止個々の表に対する表ロックの使用禁止ユーザーが表ロックを取得しないようにするには、次の文を使用します。

ALTER TABLE table_name DISABLE TABLE LOCK

表ロックが使用禁止のときにユーザーが表をロックしようとすると、エラーになります。表ロックを再度使用可能にするには、次の文を使用します。

ALTER TABLE table_name ENABLE TABLE LOCK

この構文を使用すると、現在実行中のすべてのトランザクションがコミットした後で、表ロックが使用可能になります。この文は、ENABLE文の発行後、新しいトランザクションが開始するまで待つ必要はありません。

表の表ロックが使用可能か使用禁止かを判断するには、USER_TABLESデータ・ディクショナリ表の TABLE_LOCK列を問い合せます。DBA_TABLESまたは ALL_TABLESに選択権限がある場合、他のユーザーの表の表ロック状況を問い合せることができます。

DML_LOCKS をををを 0(ゼロ)に設定(ゼロ)に設定(ゼロ)に設定(ゼロ)に設定表ロックは、DML_LOCKS初期化パラメータを使用して、インスタンス全体に設定できます。DROP TABLE文、CREATE INDEX文および LOCK TABLE文を使用する必要がない場合、DML_LOCKSを 0(ゼロ)に設定してロック変換を 小限にし、パフォーマンスを 適化します。

注意注意注意注意 : Oracle は、ロックが使用禁止になっている表に対して DDL 文を実行できません。

注意注意注意注意 : 1 つのインスタンスで DML_LOCKSを 0(ゼロ)に設定した場合、すべてのインスタンスでこれを 0(ゼロ)に設定してください。その他の値を使用する場合は、すべてのインスタンスでこのパラメータを同じ値にする必要はありません。

Real Application Clusters データベースの設計 4-19

Page 82: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのオブジェクトの作成および パフォーマンス

SQL*Loader は、フラグをチェックし、同じ表に対して非パラレル・ダイレクト・ロードが実行されていないことを確認します。これによって、Oracle は、各セッションに新しいエクステントを作成します。

Real Application Clusters でのオブジェクトの作成およびでのオブジェクトの作成およびでのオブジェクトの作成およびでのオブジェクトの作成およびパフォーマンスパフォーマンスパフォーマンスパフォーマンス

データベース設計の原則として、DDL 文はメンテナンス・タスクのみに使用し、通常のシステム操作には使用しません。そのため、ほとんどのシステムでは、新しいオブジェクトの生成頻度およびその他の DDL 文の使用頻度が低くなります。

ただし、アプリケーションが頻繁にオブジェクトを生成すると、パフォーマンスが低下する場合があります。これは、オブジェクトを生成するためにインスタンス間の調整が必要になるためです。V$ROWCACHEの DC_OBJECT_IDS行キャッシュにある DLM_REQUESTSに対する DLM_CONFLICTSの割合が高く、V$SYSTEM_EVENTでの row cache lock イベントの待機時間が非常に長い場合は、クラスタ内の異なるインスタンスが DDL 文を大量に同時発行していることを示しています。

このような場合にオブジェクト作成のパフォーマンスを改善するには、イベント 10297 でOBJECT_ID値をキャッシュするように設定します。これによって、オブジェクトの同時作成のパフォーマンスが改善されます。イベント 10297 を設定するには、初期化パラメータ・初期化パラメータ・初期化パラメータ・初期化パラメータ・ファイルファイルファイルファイルに次の行を追加します。

event="10297 trace name context forever, level 1"

追加のレベル引数を 1 に設定すると、キャッシュ動作が自動調整されます。自動調整しない場合は、レベルを任意のキャッシュ・サイズに設定できます。

結論およびガイドラインの概要結論およびガイドラインの概要結論およびガイドラインの概要結論およびガイドラインの概要キャッシュ・フュージョンによって、改善されたディスクレス・アルゴリズムが導入され、Oracle の以前のアーキテクチャよりさらに効率的にキャッシュの一貫性を維持できるようになりました。これによって、より単純なデータベース設計を実装しながら、 適なパフォーマンスを実現できます。

終的には、応答時間要件およびスループット要件によって、パーティション化方法を実装する必要があるか、およびその方法をどれだけ強力で独立性があるものにする必要があるかが決まります。また、応答時間要件およびスループット要件は、 適なデータベース設計を実現するために必要な工数にも影響します。

システムの作業負荷を慎重に分析することは、特定のインスタンスに作業を割り当てる場合に重要です。この分析では次のことを考慮します。

参照参照参照参照 : SQL*Loader の詳細は、『Oracle9i データベース・ユーティリティ』を参照してください。

4-20 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 83: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

結論およびガイドラインの概要

� システム・リソース使用

� 機能領域ごとのデータ・アクセス分散

� 機能の依存関係

これらの点を考慮して方法を実装すると、システムはさらに強力かつスケーラブルになります。

一般に、80% 以上のオーバーヘッドが、20% 以下の特定の作業負荷によって発生します。いくつかの簡単なガイドラインに従ってこの 20% を処理すると、 小限の工数で効果を得ることができます。これらの作業負荷の問題は、次の方法で解決できます。

� 頻繁に変更されるパーティション化データおよび非パーティション化データに対して空きリスト・グループを定義します。

� データが固定の場合は、必ず、読取り専用表領域を使用します。

� ローカル管理表領域を使用して、エクステント管理コストを削減します。

� Oracle 順序を使用して一意の番号を生成し、必要に応じて CACHEパラメータを高い値に設定します。

� 索引ブロックへの同時変更を削減します(可能な場合)。ただし、索引キー値が複数インスタンスによって変更されない場合、または変更の割合が過剰でない場合、オーバーヘッドは許容範囲内にあります。極端なケースでは、物理表パーティション化などの方法を適用できます。

Real Application Clusters データベースの設計 4-21

Page 84: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

結論およびガイドラインの概要

4-22 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 85: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

第第第第III部部部部

Real Application Clusters のパフォーマンスののパフォーマンスののパフォーマンスののパフォーマンスの

監視およびチューニング監視およびチューニング監視およびチューニング監視およびチューニング

第 III 部では、パフォーマンス統計を監視する方法およびパラメータを調整して Real Application Clusters のパフォーマンスを向上させる方法を説明します。第 III 部に含まれる章は、次のとおりです。

� 第 5 章「Real Application Clusters のチューニングの一般的な推奨事項」

� 第 6 章「Real Application Clusters およびインスタンス間パフォーマンスのチューニング」

参照参照参照参照 : Oracle Enterprise Manager を使用した Real Application Clustersデータベースの監視およびチューニングの詳細は、第 7 章「Oracle Performance Manager を使用したパフォーマンスの監視」を参照してください。

Page 86: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:
Page 87: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters のチューニングの一般的な

5

Real Application Clusters のチューニングののチューニングののチューニングののチューニングの

一般的な推奨事項一般的な推奨事項一般的な推奨事項一般的な推奨事項

この章では、Oracle Real Application Clusters のチューニングについて説明します。また、Real Application Clusters 環境用にアプリケーションをチューニングする一般的な方法についても説明します。内容は次のとおりです。

� Real Application Clusters のチューニングの概要

� Real Application Clusters のパフォーマンスの監視に関する統計

� ビューを使用した Real Application Clusters のパフォーマンス評価

� Real Application Clusters の作業負荷のパフォーマンスの測定

� 作業負荷のパフォーマンスのチューニングにおける一般的な推奨事項

� Real Application Clusters の同期化コストの決定

� Real Application Clusters のグローバルおよびローカルな作業の割合の測定

� Real Application Clusters でのロック競合によるグローバル・キャッシュの同期化コストの計算

� Real Application Clusters ベースのアプリケーションにおける パフォーマンス問題の解決

� アドバンスト・キューイングおよび Real Application Clusters

参照参照参照参照 : Oracle Enterprise Manager を使用した Real Application Clustersデータベースの監視およびチューニングの詳細は、第 7 章「Oracle Performance Manager を使用したパフォーマンスの監視」を参照してください。

推奨事項 5-1

Page 88: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters のチューニングの概要

Real Application Clusters のチューニングの概要のチューニングの概要のチューニングの概要のチューニングの概要キャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョンによって、ほとんどの Real Application Clusters のオーバーヘッドの原因であったインスタンス間競合(読取り / 書込み競合および書込み / 書込み競合)が解消されます。キャッシュ・フュージョンによってディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行がなくなるため、Real Application Clusters リリース 1(9.0.1)では、前のリリースより少ないチューニングでスケーラビリティを得ることができます。

Real Application Clusters アプリケーションでは、シングル・インスタンスインスタンスインスタンスインスタンスのチューニングが有効な場合も多くあります。ただし、バッファ・キャッシュおよび共有プールのサイズを効果的に指定する必要もあります。また、Real Application Clusters 固有の目的を考慮して、共有ディスク・サブシステムをチューニングする必要もあります。さらに、Real Application Clusters 固有の統計を収集し、この章で説明する方法でビューを監視する必要もあります。

Real Application Clusters アプリケーションを配置する前に、多くのパフォーマンスの問題を予測できます。ただし、 も効果的なチューニングでも、不十分な分析またはデータベースとアプリケーション設計の不具合で発生する問題は解決できません。そのため、パフォーマンスの評価およびチューニングを行う前に、このマニュアルの第 II 部「Real Application Clusters アプリケーションの拡張およびデータベースの設計」で説明する問題を十分に考慮するようにしてください。

Real Application Clusters のパフォーマンスの監視に関する統計のパフォーマンスの監視に関する統計のパフォーマンスの監視に関する統計のパフォーマンスの監視に関する統計この項では、Real Application Clusters アプリケーションのパフォーマンス統計について説明します。この項の内容は次のとおりです。

� Real Application Clusters 統計の内容

� チューニングのための統計の記録

� Real Application Clusters の重要な統計

Oracle は、ローカルなシステム・グローバル領域システム・グローバル領域システム・グローバル領域システム・グローバル領域((((SGA))))にほとんどの統計を保持しています。この章で説明するとおり、V$ビューに対して SQL 文を使用して、これらの統計にアクセスします。

Real Application Clusters 統計の内容統計の内容統計の内容統計の内容Real Application Clusters 固有の統計は、メッセージ要求カウンタまたは定期的な統計として表示されます。メッセージ要求カウンタには、特定のタイプのブロック・モード変換の数を示す統計が含まれます。たとえば、定期的な統計は、特定の操作での読取りおよび書込みI/O に対する、合計または平均待機時間を示します。

5-2 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 89: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters のパフォーマンスの監視に関する統計

チューニングのための統計の記録チューニングのための統計の記録チューニングのための統計の記録チューニングのための統計の記録あるイベントが発生する割合についての統計を記録することをお薦めします。また、Real Application Clusters 環境の特定トランザクションに関する情報を記録する必要もあります。これを行うには、Oracle9i Statspack または UTLBSTATや UTLESTATなどのユーティリティを使用して、ある期間、統計を記録し、一定間隔で統計を収集します。また、Oracle9i Statspack には、Real Application Clusters のパフォーマンス情報を表示するための専用ページがあります。

これらのユーティリティは、1 秒ごとおよびトランザクションごとの統計件数を計算します。また、アプリケーションが送信する、文の実行数およびビジネス・トランザクションの数を測定することもできます。

たとえば、保険のアプリケーションでは、トランザクションが保険の見積りとして定義される場合があります。このトランザクションは、複数の DML 操作および問合せで構成される場合があります。一定の時間内にシステムが処理する見積りの数がわかっていれば、その値をその時間内に完了した見積りの数で割ります。これを一定時間行い、パフォーマンスを評価します。

トランザクションごとに使用されるリソースおよびアプリケーションの作業負荷の観点から、アプリケーション・プロファイルのパフォーマンス傾向が表示されます。トランザクションごとの件数は、作業負荷のパターンの変更を検出する場合に有効です。また、割合は作業負荷の程度を示します。

TRACE_ENABLED パラメータを使用した実行履歴のトレースパラメータを使用した実行履歴のトレースパラメータを使用した実行履歴のトレースパラメータを使用した実行履歴のトレースTRACE_ENABLEDパラメータを使用して、Oracle の実行履歴をトレースできます。TRACE_ENABLEDパラメータは、Oracle の実行履歴またはコード・パスのトレースを制御するため、デフォルトでは trueに設定されます。オラクル社カスタマ・サポート・センターでは、この情報を使用してデバッグを行います。

Real Application Clusters では、すべてのインスタンスでこのパラメータを同じ値に設定する必要があります。初期化パラメータ・ファイル初期化パラメータ・ファイル初期化パラメータ・ファイル初期化パラメータ・ファイルで、または ALTER SYSTEM SET文を使用して、TRACE_ENABLEDを設定できます。

TRACE_ENABLEDを trueに設定すると、Oracle はエラーが発生した場合に特定のファイルに情報を記録します。表 5-1 に、Oracle が実行履歴を記録するファイルの種類および UNIXでのデフォルトのディレクトリを示します。

Real Application Clusters のチューニングの一般的な推奨事項 5-3

Page 90: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters のパフォーマンスの監視に関する統計

終了するインスタンスが 1 つのみの場合でも、Oracle はすべてのインスタンスでこの情報を記録します。これによって、Oracle はクラスタクラスタクラスタクラスタ全体の診断情報を保持できます。

この処理によって発生するオーバーヘッドが過剰でない場合も、TRACE_ENABLEDを falseに設定すると、パフォーマンスを改善できます。たとえば、高いベンチマーク要件を満たすためにこれを行う場合があります。ただし、このパラメータを falseに設定したままにすると、重要な診断情報が失われることがあります。そのため、システムの問題をトレースし、予期しないインスタンス障害が発生した場合の診断負荷を削減するために、TRACE_ENABLEDを常に trueに設定してください。

Real Application Clusters の重要な統計の重要な統計の重要な統計の重要な統計Real Application Clusters の も重要な統計を次に示します。

� consistent gets、db block gets、db block changes などのキャッシュ関連統計

� global cache current block receive time や global cache current block send time などのキャッシュ・フュージョン関連統計

� global cache gets、global cache converts、Null-to-X 変換などのグローバル・キャッシュ・ロックのオープン要求と変換要求およびグローバル・キャッシュの待機時間

� physical reads、physical writes、DBWR cross-instance writes、読込みおよび書込みの待機時間などの I/O 統計

V$SYSSTATおよび V$SYSTEM_EVENTビューは、Real Application Clusters 固有の統計を表示する も重要なビューです。次の項では、Real Application Clusters をチューニングするためのこれらのビューおよびその他のビューの内容について説明します。

表表表表 5-1 メモリー・トレース・ファイルおよびその格納先メモリー・トレース・ファイルおよびその格納先メモリー・トレース・ファイルおよびその格納先メモリー・トレース・ファイルおよびその格納先

トレース・ファイルの種類トレース・ファイルの種類トレース・ファイルの種類トレース・ファイルの種類 デフォルト・ディレクトリデフォルト・ディレクトリデフォルト・ディレクトリデフォルト・ディレクトリ

ユーザー $ORACLE_HOME/rdbms/log/user_dump_dest

バックグラウンド $ORACLE_HOME/rdbms/log/background_dump_dest

コア $ORACLE_HOME/dbs/core_dump_dest

5-4 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 91: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ビューを使用した Real Application Clusters のパフォーマンス評価

ビューを使用したビューを使用したビューを使用したビューを使用した Real Application Clusters のパフォーマンス評価のパフォーマンス評価のパフォーマンス評価のパフォーマンス評価この項では、Real Application Clusters を監視するためのいくつかのビューの内容について説明します。この項の内容は次のとおりです。

� V$SYSSTAT を使用した Real Application Clusters の統計

� V$SYSTEM_EVENT を使用した Real Application Clusters の統計

� その他のビューを使用した Real Application Clusters の統計の取得

V$SYSSTAT を使用したを使用したを使用したを使用した Real Application Clusters の統計の統計の統計の統計V$SYSSTATビューには、Real Application Clusters 環境全体に関する統計(グローバル統計)が示されます。V$SYSSTATに表示される Real Application Clusters 固有の統計は、表5-2 に示すとおり、クラス 8、32 および 40 に属します。

表表表表 5-2 V$SYSSTAT の統計およびクラスの統計およびクラスの統計およびクラスの統計およびクラス

統計名統計名統計名統計名 クラスクラスクラスクラス

consistent gets 8

db block gets 8

db block changes 8

gcs messages sent 32

ges messages sent 32

physical reads 8

physical writes 8

DBWR cross-instance writes 40

global lock sync gets 32

global lock async gets 32

global lock get time 32

global lock sync converts 32

global lock async converts 32

global lock convert time 32

global lock releases 32

global cache gets 40

Real Application Clusters のチューニングの一般的な推奨事項 5-5

Page 92: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ビューを使用した Real Application Clusters のパフォーマンス評価

global cache get time 40

global cache converts 40

global cache convert time 40

global cache cr blocks received 40

global cache cr blocks receive time 40

global cache current blocks received 40

global cache current block receive time 40

global cache cr blocks served 40

global cache cr block build time 40

global cache cr block flush time 40

global cache cr block send time 40

global cache current blocks served 40

global cache current block pin time 40

global cache current block flush time 40

global cache current block send time 40

global cache freelist waits 40

global cache defers 40

global cache cr convert timeouts 40

global cache blocks lost 40

global cache blocks corrupt 40

global cache prepare failures 40

表表表表 5-2 V$SYSSTAT の統計およびクラス(続き)の統計およびクラス(続き)の統計およびクラス(続き)の統計およびクラス(続き)

統計名統計名統計名統計名 クラスクラスクラスクラス

5-6 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 93: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ビューを使用した Real Application Clusters のパフォーマンス評価

V$SYSTEM_EVENT を使用したを使用したを使用したを使用した Real Application Clusters の統計の統計の統計の統計V$SYSTEM_EVENTビューには、Oracle プロセスがイベントを待機する頻度に関する統計が示されます。また、これらのイベントのタイムアウト数、累積継続時間および平均継続時間も表示されます。これらのイベントは、waits ともいいます。Real Application Clusters に関連する V$SYSTEM_EVENT内の統計には、次のようなものがあります。

� buffer busy

� buffer busy due to global cache

� cr request retry

� db file parallel write

� db file scattered read

� db file sequential read

� enqueue

� global cache cr request

� global cache busy

� global cache null to s

� global cache null to x

� global cache open s

� global cache open x

� global cache s to x

� KJC: Wait for msg sends to complete

� library cache pin

� log file sync

� row cache lock

Real Application Clusters のチューニングの一般的な推奨事項 5-7

Page 94: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ビューを使用した Real Application Clusters のパフォーマンス評価

CPU 使用率およびディスク I/O を示すオペレーティング・システムの統計も分析できます。この章に示す手順によって、これらの統計を分析し、Oracle が次のようなバックグラウンド・プロセスに使用する CPU 使用率を判断できます。

� グローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセス((((LMSn))))

� データベース・ライターデータベース・ライターデータベース・ライターデータベース・ライター((((DBWn))))

� グローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモン((((LMD))))

その他のビューを使用したその他のビューを使用したその他のビューを使用したその他のビューを使用した Real Application Clusters の統計の取得の統計の取得の統計の取得の統計の取得その他の重要な統計は、次のビューで表示されます。

� V$CACHE

� V$LOCK_ACTIVITY

� V$GES_STATISTICS

Real Application Clusters に関連するこれらのビューの統計は、次のようなパフォーマンスの問題に関連します。

� バッファ・キャッシュの使用

� ブロック・モード変換のタイプ

� ブロック・クラスおよびファイルに関連するリソース制御アクティビティ

� ブロックされた変換要求の数

� グローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービス((((GCS))))が送受信するメッセージ

注意注意注意注意 : V$CACHEの FORCED WRITES列は、Oracle9i では常に 0(ゼロ)に設定してください。

5-8 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 95: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters の作業負荷のパフォーマンスの測定

Real Application Clusters の作業負荷のパフォーマンスの測定の作業負荷のパフォーマンスの測定の作業負荷のパフォーマンスの測定の作業負荷のパフォーマンスの測定Real Application Clusters では、アプリケーションのパフォーマンスおよびスケーラビリティは、インスタンスインスタンスインスタンスインスタンス間の同期化の割合およびコストによって決まります。トランザクションが CPU リソースをどれだけ効率的に使用しているかを識別することによって、コストを測定できます。トランザクションは、次の目的のために CPU を使用します。

� メッセージの送受信

� グローバル・キャッシュの一貫性を保証するために必要なブロック・モードおよびリソースの保持

次の値も計算できます。

� プロセス間通信プロセス間通信プロセス間通信プロセス間通信((((IPC))))レイヤーで使用された CPU 時間

� ブロック要求の処理に必要な CPU 時間

� ノードノードノードノード間の同期化によって発生する読込みおよび書込み I/O の処理に使用される CPU時間

� SQL 文の解析、行のフェッチ、ソートなど、アプリケーション処理に使用される CPU時間

これらのイベントに関する統計は、V$SYSTEM_EVENTなどの V$表に表示されます。各トランザクションの応答時間は、リソース操作の数によって異なります。また、この応答時間は、指示を処理するために必要な時間、および各要求の遅延または待機時間によっても異なります。デフォルト以外のリソース制御を使用した場合に発生するディスク I/O は、応答時間を増加させます。

あるリソースでの競合によって、測定可能な各コンポーネントのコストが増加します。たとえば、次のイベントはビジー・バッファの待機の原因となります。

� 特定のディスクに対する頻繁な I/O 要求

� ローカルおよびリモート・トランザクションによる同じデータまたは索引ブロックの競合

これによって、各トランザクションのコストが増加し、オペレーティング・システムのオーバーヘッドに追加されます。

第 3 章で説明するとおり、ノード間の同期化およびノード間の通信の要件を 小限に抑えるように設計することによって、よりスケーラブルで高パフォーマンスな Real Application Clusters アプリケーションを作成できます。スケーラブルなアプリケーションは、同期化の割合またはコストを 小限にすることによって、ユーザー・コミュニティのサービス・レベル要件を満たします。

Real Application Clusters のチューニングの一般的な推奨事項 5-9

Page 96: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

作業負荷のパフォーマンスのチューニングにおける一般的な推奨事項

作業負荷のパフォーマンスのチューニングにおける一般的な作業負荷のパフォーマンスのチューニングにおける一般的な作業負荷のパフォーマンスのチューニングにおける一般的な作業負荷のパフォーマンスのチューニングにおける一般的な推奨事項推奨事項推奨事項推奨事項

この項で説明するとおり、作業負荷のパフォーマンスを向上させるには、いくつかの推奨事項があります。この項の内容は次のとおりです。

� 作業負荷のパフォーマンス測定

� V$CLASS_CACHE_TRANSFER および V$FILE_CACHE_TRANSFER を使用した Real Application Clusters の統計

� V$CACHE、V$CACHE_TRANSFER および V$BH を使用した競合 オブジェクトの識別

� I/O の同期化コストの見積り

作業負荷のパフォーマンス測定作業負荷のパフォーマンス測定作業負荷のパフォーマンス測定作業負荷のパフォーマンス測定Real Application Clusters では、アプリケーションのパフォーマンスおよびスケーラビリティは、インスタンス間の同期化の割合およびコストによって決定します。トランザクションが I/O イベントおよびブロック・アクセス・モード変換要求を待機するときに、GCS および GES からのオーバーヘッドが発生する場合があります。ブロック・アクセス・モードのオープン中または変換中に発生する、ローカル・トランザクションとリモート・トランザクション間のブロック競合によって、同期化のコストが増加する場合があります。たとえば、次の計算式を使用して、トランザクションまたは要求のコストを見積もることができます。

V$CLASS_CACHE_TRANSFER およびおよびおよびおよび V$FILE_CACHE_TRANSFER を使用したを使用したを使用したを使用したReal Application Clusters の統計の統計の統計の統計

キャッシュ・ブロックの転送率およびブロック・アクセス・モードの変換率を判断するには、V$CLASS_CACHE_TRANSFER および V$FILE_CACHE_TRANSFERビューを使用します。V$CLASS_CACHE_TRANSFERでは、各ブロック・クラスのディスク書込みの強制実行アクティビティのサマリーが表示されます。V$FILE_CACHE_TRANSFERでは、ご使用の環境で発生するキャッシュ転送アクティビティの量がファイルごとに表示されます。

これらのビューの両方に、いくつかの異なるタイプの強制書込み列があります。変換の種類ごとに、1 つの強制書込み列があります。ただし、これらのビュー内の、強制書込みを参照する列は 0(ゼロ)のままです。0(ゼロ)以外の値は、キャッシュ転送が発生していることを示します。

+++ + + +++CPUapps CPUsyncio CPUipc CPUgcs CPUges WAITsyncio WAITipc WAITgcs WAITges

5-10 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 97: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

作業負荷のパフォーマンスのチューニングにおける一般的な推奨事項

V$CACHE、、、、V$CACHE_TRANSFER、、、、V$BH およびおよびおよびおよび V$FILE_CACHE_TRANSFER をををを使用した競合オブジェクトの識別使用した競合オブジェクトの識別使用した競合オブジェクトの識別使用した競合オブジェクトの識別

V$CACHE、V$CACHE_TRANSFERおよび V$BHビューには、Oracle がインターコネクトインターコネクトインターコネクトインターコネクト経由で転送するブロック・クラスおよびブロックがオブジェクトごとに示されます。これらのビュー内の FORCED_READS列および FORCED_WRITES列を使用して、Real Application Clusters のインスタンスが使用するオブジェクトおよびブロックを判断します。この情報は、システムの作業負荷の特性を定義する場合に有効です。FORCED_WRITES列には、別のインスタンスが現行のバージョンを要求したために、あるブロックにローカル・バッファ・キャッシュからのディスク書込みの強制実行が発生した頻度が表示されます。

また、キャッシュ転送が発生したファイルを識別するには、V$FILE_CACHE_TRANSFERを使用します。ファイルが非常に多くのキャッシュ転送アクティビティを示した場合、そのファイルには過剰なディスク書込みの強制実行アクティビティが発生しています。

I/O の同期化コストの見積りの同期化コストの見積りの同期化コストの見積りの同期化コストの見積りI/O の同期化コストによって、パフォーマンスが低下する場合があります。I/O の同期化による影響を評価するには、V$SYSSTATビューを参照して、次の要求統計の件数を確認します。

� DBWR cross-instance writes

� physical writes

� physical reads

次の統計の待機時間および平均待機時間は、V$SYSTEM_EVENTビューを参照してください。

� db file parallel write

� db file sequential read

� db file scattered read

別のインスタンスからの要求によって、ディスクに書き込まれるデータ・ブロックの再読込みで発生する読込みの待機時間を見積もるには、次の式で統計(たとえば、db file sequential reads の待機時間)を、前回のキャッシュのフラッシュによって発生した読込みI/O の割合で割ります。ここで、lock buffers for read は N から S へのブロック・アクセス・モード変換の値であり、V$LOCK_ACTIVITYビューから導出されます。また、physical reads は V$SYSSTAT ビューから導出されます。

lock buffers for read

physical reads

Real Application Clusters のチューニングの一般的な推奨事項 5-11

Page 98: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters の同期化コストの決定

同様に、キャッシュ転送によって発生したデータベース・ファイルのクロス・インスタンス書込みの待機時間の割合は、V$SYSTEM_EVENTSに表示される db file parallel write time を割って見積もります。ここで、DBWR cross-instance writes および physical writes の値はV$SYSSTATから導出されます。

Real Application Clusters の同期化コストの決定の同期化コストの決定の同期化コストの決定の同期化コストの決定この項では、追加の CPU 時間、I/O、グローバル・リソース処理および競合による、インスタンス間の同期化および一貫性処理によって発生するコストの決定方法について説明します。これを行うには、次の項で示すとおり、Oracle 統計を調べます。

� 必要な CPU サービス時間の計算

� グローバル・キャッシュの一貫性および競合の測定

� Real Application Clusters のグローバルおよびローカルな作業の割合の測定

� Real Application Clusters でのロック競合によるグローバル・キャッシュの同期化コストの計算

� グローバル・キャッシュの一貫性および競合の測定

必要な必要な必要な必要な CPU サービス時間の計算サービス時間の計算サービス時間の計算サービス時間の計算トランザクションごとに必要な CPU サービス時間を導出するには、V$SYSSTATに表示されているセッションが使用している CPU を、ユーザーのコミット数またはビジネス・トランザクションの数で割ります。これは、ユーザー・プロセスがユーザー・モードまたはカーネル・モードで実行するために必要な時間であることに注意してください。これには、トランザクションのかわりにオペレーティング・システムのカーネルが使用する時間は含まれていません。

DBWR cross-instance writes

physical writes

5-12 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 99: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters の同期化コストの決定

この測定は、排他モードで実行しているシングル・インスタンス環境でのアプリケーションの動作を、Real Application Clusters 環境で実行しているアプリケーションと比較する場合に有効です。また、異なる作業負荷およびアプリケーション設計変更の影響を比較する場合にも有効です。

グローバル・キャッシュの一貫性および競合の測定グローバル・キャッシュの一貫性および競合の測定グローバル・キャッシュの一貫性および競合の測定グローバル・キャッシュの一貫性および競合の測定表 5-3 に、グローバル・キャッシュの一貫性に関する V$SYSSTATビューおよびV$SYSTEM_EVENTビュー内の統計の一部を示します。

表表表表 5-3 グローバル・キャッシュの一貫性と競合のビューおよび統計グローバル・キャッシュの一貫性と競合のビューおよび統計グローバル・キャッシュの一貫性と競合のビューおよび統計グローバル・キャッシュの一貫性と競合のビューおよび統計

ビュービュービュービュー 統計統計統計統計

右に示すアクションの要求数をカウントするには、V$SYSSTATを参照

してください。

global cache gets(オープンされている新しいリソースの件数)

global cache converts(既存のブロックに対する変換の件数)

global cache cr blocks received(グローバル・キャッシュ・サービス・プロセス(LMS)か

ら受信された一貫性読込みバッファの件数)

global cache cr blocks served(LMS から送信された一貫性読込みバッファの件数)

global cache current blocks received(受信した現行のブロックの件数)

global cache current blocks served(リモート・インスタンスに送信された現行バッファの

件数)

注意注意注意注意 : V$LOCK_ACTIVITYの変換タイプ固有の行も参照してください。

右に示すアクションに必要な時間は、V$SYSSTATを参照

してください。

global cache get time

global cache convert time

global cache cr block receive time

global cache cr block build time

global cache cr block flush time

global cache cr block send time

global cache current block receive time

global cache current block pin time

global cache current block flush time

global cache current block send time

Real Application Clusters のチューニングの一般的な推奨事項 5-13

Page 100: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters の同期化コストの決定

高い競合または過剰な遅延のインジケータは、次の統計およびビューを参照してください。

� V$SYSSTATにある global cache cr timeouts および global cache convert timeouts

� V$SYSTEM_EVENTにある global cache busy および buffer busy due to global cache

右に示すイベントの待機時間は、V$SYSTEM_EVENTを参照してください。

cr request retry

global cache null to X

global cache null to S

global cache S to X

global cache open X

global cache open S

global cache cr request

global cache freelist wait

global cache bg acks

global cache pending ast

global cache retry prepare

global cache cr cancel wait

global cache pred cancel wait

表表表表 5-3 グローバル・キャッシュの一貫性と競合のビューおよび統計(続き)グローバル・キャッシュの一貫性と競合のビューおよび統計(続き)グローバル・キャッシュの一貫性と競合のビューおよび統計(続き)グローバル・キャッシュの一貫性と競合のビューおよび統計(続き)

ビュービュービュービュー 統計統計統計統計

5-14 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 101: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters の同期化コストの決定

トランザクションごとおよび時間単位ごとのアプリケーション・プロファイルトランザクションごとおよび時間単位ごとのアプリケーション・プロファイルトランザクションごとおよび時間単位ごとのアプリケーション・プロファイルトランザクションごとおよび時間単位ごとのアプリケーション・プロファイルのメンテナンスのメンテナンスのメンテナンスのメンテナンス前述のとおり、トランザクションごとおよび時間単位ごとのアプリケーション・プロファイルのメンテナンスは有効です。これによって、2 つの個別の作業負荷を比較したり、作業負荷の変更を検出できます。割合は、容量の決定およびスループット問題の識別にも有効です。パフォーマンス・モニター・スクリプトに、次の統計の割合を取り込むことをお薦めします。

GCS は、次の統計のトランザクションごとの割合でブロック・モード変換を行います。

� global cache gets

� global cache converts

ブロック転送のスループットは、次の統計のトランザクションごとの割合で構成されます。

� global cache cr blocks received

� global cache cr blocks served

� global cache current blocks received

� global cache current blocks served

または、次のようなブロック・モード変換の、トランザクションごとの cache convert waits割合で構成されます。

� global cache null to X

� global cache null to S

� global cache S to X

または、次のようなブロック・モード変換の、トランザクションごとの cache open waits の割合で構成されます。

� global cache open X

� global cache open S

合計件数または待機時間を適切な計測間隔で割って、1 秒ごとまたは 1 分ごとに同じ統計を計算します。

注意注意注意注意 : 定期的に統計を記録するには、TIMED_STATISTICSパラメータを trueに設定してください。Oracle は、これらの統計を数百分の 1 秒ごとに記録します。ただし、積極的に統計を収集していない場合は、TIMED_STATISTICSを falseに設定し、統計の収集に必要なパフォーマンスのオーバーヘッドを回避します。

Real Application Clusters のチューニングの一般的な推奨事項 5-15

Page 102: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters のグローバルおよびローカルな作業の割合の測定

Real Application Clusters のグローバルおよびローカルな作業ののグローバルおよびローカルな作業ののグローバルおよびローカルな作業ののグローバルおよびローカルな作業の割合の測定割合の測定割合の測定割合の測定

グローバル作業に対してアクセスされたバッファの割合、またはインスタンス間の同期化によって発生したキャッシュ間のブロック転送の割合は、アプリケーション・プロセスがどの程度データを効率的に共有しているかを測定する場合に重要です。また、データベースがスケーラビリティを 適化するように設計されているかどうかもわかります。

V$SYSSTATの統計に基づく次の式で、ローカルな操作に対するバッファ・アクセス(ブロック・モード変換の原因とならないデータベース・バッファの読込みおよび変更)の割合を計算します。

また、次の式も考慮します。ここで、lock buffers for read は V$LOCK_ACTIVITYから導出されます。

この計算は、ローカルな作業のみに対するユーザー・プロセスによる physical reads の割合を示します。強制読込みは含みません。

前述の式では、V$SYSSTATの physical read 統計から lock buffers for read を引きます。ローカルな書込みの割合は、V$SYSSTATの対応する値に基づいて計算できます。

ローカルおよびグローバルな作業の比率(パーティション化の程度)を決定する他に、これらの割合を使用して、作業負荷のパターンの変更を検出できます。また、これらの割合は、データ・ブロック・アクセスがグローバルまたはローカルである可能性も示します。そのため、この情報を、スケーラビリティを計算する場合の概算として使用できます。

((consistent gets db block gets) (global cache gets global cache converts) ×100)

(consistent gets db block gets)

+ +-

+

(physical reads - (lock buffers for read)) ×100

physical reads

5-16 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 103: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters のグローバルおよびローカルな作業の割合の測定

これらの割合の他に、使用不可のリソースによる遅延は、次の式で簡単に計算できます。

次の式でも計算できます。

GCS がリソースをオープンし、ブロック・モード変換を実行した場合、使用不可のリソース(取得中または解放されているリソース)によって発生した待機の割合は、競合があることを示す場合があります。この競合は、ブロック・モードのオープンまたは変換での遅延、またはバッファの小さい集合における非常に高い競合によって発生する場合があります。

問題の領域(高い割合の global busy waits、converts、gets など)がわかれば、次の 3 つのビューを参照することによって問題の詳細がわかります。

� V$FILE_CACHE_TRANSFER

� V$CACHE

� V$CLASS_CACHE_TRANSFER

これらのビューの統計は、すべてのインスタンスが共有しているファイルおよびブロックを識別します。これらの共有ファイルが、インスタンス間の同期化コストおよびグローバル・キャッシュの一貫性処理における多くの原因である場合があります。

これらのビューに問い合せて、各ファイルまたは各ブロック・クラスに対するブロック・モード変換について調べることもできます。これによって、共有キャッシュ・アーキテクチャによるキャッシュ転送の数も示します。

100× (buffer busy due to global cache)

buffer busy + buffer busy due to global cache

100× (buffer busy due to global cache)

consistent gets+db block gets

Real Application Clusters のチューニングの一般的な推奨事項 5-17

Page 104: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのロック競合によるグローバル・キャッシュの同期化コストの計算

Real Application Clusters でのロック競合によるグローバル・でのロック競合によるグローバル・でのロック競合によるグローバル・でのロック競合によるグローバル・キャッシュの同期化コストの計算キャッシュの同期化コストの計算キャッシュの同期化コストの計算キャッシュの同期化コストの計算

インスタンス間の同期化コストが増加することによって、スループットが低下し、トランザクションの応答時間が増大します。この項では、次に示すこれらの問題の原因について説明します。

� 同じデータ・ブロックの競合

� セグメント・ヘッダーおよび空きリスト・ブロックの競合

� データベース・ブロック以外のリソースの競合

� Real Application Clusters 上で実行中のアプリケーション固有の競合問題

同じデータ・ブロックの競合同じデータ・ブロックの競合同じデータ・ブロックの競合同じデータ・ブロックの競合同じデータ・ブロックの競合は、複数のインスタンスによって一般的にアクセスされる行が、ブロック内の限られた範囲に分散されている場合に発生します。これが発生する確率は、アプリケーションの動作による、表内でのデータのアクセス分散によって異なります。

競合の可能性は、ブロックのサイズにも依存します。たとえば、4KB のブロックより 8KBのブロックの方が、多くの行を持つことができます。表に対して定義された PCTFREEは、競合のレベルに影響します。実際、データベースのブロック・サイズおよび PCTFREEは、Real Application Clusters の設計方法の一部として使用することができます。目標は、ブロックごとの行数(アクセス競合の可能性)を削減することです。グローバルで頻繁にアクセスされるブロックのインジケータには、頻繁な convert timeouts または consistent read timeouts が含まれます。

トランザクションごとの global cache resource waits の割合が高い場合は、すべてのノードからどのファイルおよびブロックが頻繁にアクセスされているかを判断してください。次に、3 つのビューを使用して競合が発生しているファイルを識別する方法を示します。

5-18 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 105: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのロック競合によるグローバル・キャッシュの同期化コストの計算

V$CACHE、、、、V$CACHE_TRANSFER およびおよびおよびおよび V$BH を使用した競合を使用した競合を使用した競合を使用した競合オブジェクトの識別オブジェクトの識別オブジェクトの識別オブジェクトの識別V$CACHE、V$CACHE_TRANSFERおよび V$BHビューには、Oracle がインターコネクト経由で転送するブロック・クラスおよびブロックがオブジェクトごとに示されます。これらのビューの FORCED_WRITES列に対する値は、常に 0(ゼロ)に設定する必要があります。これは、LMS プロセスがブロックをリモート・インスタンスのキャッシュに直接転送するためです。LMS プロセスは、一貫性読込みブロックと現行のブロックの両方を転送します。この場合、LMS プロセスは起動しますが、そのロールは削減されます。

キャッシュ・フュージョンによって、FORCED_READS列の値は、Oracle が現行のバージョンの特定のブロックを他のキャッシュから転送した回数を示します。したがって、FORCED_READS列の値を評価することは、高いキャッシュ・フュージョン・アクティビティの原因となる表および索引の識別に有効です。

セグメント・ヘッダーおよび空きリスト・ブロックの競合セグメント・ヘッダーおよび空きリスト・ブロックの競合セグメント・ヘッダーおよび空きリスト・ブロックの競合セグメント・ヘッダーおよび空きリスト・ブロックの競合セグメント・ヘッダーの競合は、Oracle が多くのトランザクションによって同時に更新される表や索引のヘッダーを読み込む必要がある場合に発生します。通常、これは、挿入または更新するデータを保持するために、十分な空き領域を持つブロックをトランザクションが検索しているときに発生します。また、新しいエクステントまたは追加の空きブロックが表に追加された場合は、セグメント・ヘッダーが更新されます。

非常に大量のデータを複数のノードから挿入する新しいアプリケーションは、パフォーマンスの重大なボトルネックになる可能性があります。これは、Oracle が、空きリストを含むセグメント・ヘッダー・ブロックを別のインスタンス・キャッシュにコピーするためです。これは、競合の原因の 1 つになります。

問題の表および索引に対して空きリスト・グループを作成することによって、この状況を大幅に改善できます。空きリスト・グループを使用するメリットは、アクセスをインスタンスに基づいたセグメントの空きリストに分割できることです。これによって、INSERT文および DELETE文の割合が過剰な場合の競合が削減されます。

注意注意注意注意 : Oracle9i の自動セグメント領域管理機能によって、複数の空きリストおよび複数の空きリスト・グループを作成する必要がなくなります。

Real Application Clusters のチューニングの一般的な推奨事項 5-19

Page 106: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのロック競合によるグローバル・キャッシュの同期化コストの計算

データベース・ブロック以外のリソースの競合データベース・ブロック以外のリソースの競合データベース・ブロック以外のリソースの競合データベース・ブロック以外のリソースの競合データベース・ブロック以外のリソースの競合は、頻繁には発生しません。ただし、競合が発生した場合、パフォーマンスが低下します。通常、このような問題が発生する可能性がある競合は次の 2 つです。

� データ・ディクショナリ・キャッシュおよび行キャッシュの競合

� ライブラリ・キャッシュの競合

データ・ディクショナリ・キャッシュおよび行キャッシュの競合データ・ディクショナリ・キャッシュおよび行キャッシュの競合データ・ディクショナリ・キャッシュおよび行キャッシュの競合データ・ディクショナリ・キャッシュおよび行キャッシュの競合キャッシュされていない Oracle 順序を使用したり、表または表領域表領域表領域表領域に対して設定が不完全な領域パラメータを使用すると、データ・ディクショナリが頻繁に変更される場合があります。データ・ディクショナリ・オブジェクトが頻繁に読み込まれ、複数のインスタンスから更新される場合、Oracle は、その変更を REDO ログに反映し、ブロックを要求側インスタンスに送信します。これらのオブジェクトは、他のリソースが保持されている間は再帰的な内部トランザクションで使用されます。このような内部データ・ディクショナリ・トランザクションが複雑であることが原因で、この処理によって重大な遅延が発生する場合があります。

遅延が発生すると、V$SYSTEM_EVENTにある row cache lock 待機件数および time waited統計の値が増加します。これらは、 も長いイベント待機のうちの 2 つになります。time waited for row cache locks の割合は、合計待機時間の 5% を超えないようにしてください。

遅延の原因となる行キャッシュのオブジェクトを判断するには、V$ROWCACHEビューを問い合せます。この問合せに対する Oracle の応答は、行キャッシュのオブジェクト型名(DC_SEQUENCES、DC_USED EXTENTSなど)、およびこれらのオブジェクトに対する GCS 要求と GCS 競合です。競合が要求の 10 ~ 15% を超え、行キャッシュ・ロック待機時間が長すぎる場合は、順序番号のキャッシュ、表領域の非断片化または領域パラメータのチューニングを行って競合を解消します。

も頻繁に問題が発生するのは、Oracle が CACHEオプションなしで順序を作成した場合です。この場合、DC_SEQUENCESの値に高い割合の GCS 競合が示されます。断片化された表領域または不十分なエクステント・サイズによる頻繁な領域管理操作によって、データ・ディクショナリ・キャッシュの DC_USED_EXTENTSおよび DC_FREE_EXTENTSオブジェクトに対してキャッシュ転送が発生する可能性があります。

データ・ディクショナリが頻繁に変更されると、データ・ディクショナリ表のデータ・ブロックに影響します。通常、これらのブロックはファイル番号 1 に属します。この場合、V$CACHEまたは V$CACHE_TRANSFERを問い合せると、各インスタンスのバッファ・キャッシュ内でそのコピーが見つかります。

5-20 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 107: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters でのロック競合によるグローバル・キャッシュの同期化コストの計算

ライブラリ・キャッシュの競合ライブラリ・キャッシュの競合ライブラリ・キャッシュの競合ライブラリ・キャッシュの競合Real Application Clusters では、ライブラリ・キャッシュのパフォーマンスの問題はほとんどありません。通常、これらの問題は、library cache pin に対する過剰な待機時間から判断でき、頻繁なカーソルの再解析、またはプロシージャおよびパッケージのロードが原因で発生します。この問題の詳細は、V$LIBRARYCACHEビューの DLM 列を問い合せてください。

ライブラリ・キャッシュ・オブジェクトのインスタンス間の無効化は、ほとんど行われません。ただし、2 つのインスタンスで実行されているカーソルが参照しているオブジェクトを削除した場合、このような無効化が行われる場合があります。

Real Application Clusters 上で実行中のアプリケーション固有の競合問題上で実行中のアプリケーション固有の競合問題上で実行中のアプリケーション固有の競合問題上で実行中のアプリケーション固有の競合問題Real Application Clusters 環境で回避する必要がある重大な競合問題があります。これらの問題は、複数のインスタンスが主キー値に対してシーケンス・ジェネレータを共有する場合に、索引ブロックへの挿入によって発生します。これらの問題は、次の方法で 小化できます。

� 順序番号の乗数の使用

� CACHE 句を使用した Oracle 順序の作成

順序番号の乗数の使用順序番号の乗数の使用順序番号の乗数の使用順序番号の乗数の使用順序番号の乗数を使用すると、インスタンスが新しいエントリを同じ索引に挿入することを防止できます。たとえば、SEQUENCE_NUMBER× INSTANCE_NUMBER× 1,000,000,000 などの乗数を使用します。この乗数によって、インスタンスに対する順序番号が一意となる可能性が大幅に高くなります。

CACHE 句を使用した句を使用した句を使用した句を使用した Oracle 順序の作成順序の作成順序の作成順序の作成Oracle 順序を作成する場合は、常に CACHE句を使用します。CACHE句を使用しないで順序を作成すると、過剰なオーバーヘッドが発生する場合があります。両方のインスタンスが同じ順序を使用する場合は、同期化のオーバーヘッドの原因になる場合もあります。

注意注意注意注意 : Oracle は、データ・ディクショナリの行を別々のキャッシュに格納します。また、これらの行に対して、データ・バッファ・キャッシュ内で使用する形式とは異なるバッファ形式を使用します。

参照参照参照参照 : SEQUENCE_NUMBER、INSTANCE_NUMBERおよび CACHE句の詳細は、『Oracle9i SQL リファレンス』を参照してください。

Real Application Clusters のチューニングの一般的な推奨事項 5-21

Page 108: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters ベースのアプリケーションにおける パフォーマンス問題の解決

Real Application Clusters ベースのアプリケーションにおけるベースのアプリケーションにおけるベースのアプリケーションにおけるベースのアプリケーションにおけるパフォーマンス問題の解決パフォーマンス問題の解決パフォーマンス問題の解決パフォーマンス問題の解決

この項では、Real Application Clusters ベースのアプリケーションにおけるパフォーマンス問題の識別方法および解決方法について説明します。内容は次のとおりです。

� 問合せのチューニングのヒント

� アプリケーションのチューニングのヒント

� パフォーマンス問題の診断

問合せのチューニングのヒント問合せのチューニングのヒント問合せのチューニングのヒント問合せのチューニングのヒント問合せ集中型のアプリケーションでは、I/O 要求ごとのデータ量を 大にするチューニング方法によって効果が得られます。このチューニングを行う前に、このチューニング方法を実装する前後のパフォーマンスを監視し、このチューニングの効果を評価します。その方法は次のとおりです。

� 大きいブロック・サイズの使用

� DB_FILE_MULTIBLOCK_READ_COUNT の値の増加

大きいブロック・サイズの使用大きいブロック・サイズの使用大きいブロック・サイズの使用大きいブロック・サイズの使用ブロック・サイズを大きくして、各操作によって取り出される行数を増加させます。また、ブロック・サイズを大きくすると、アプリケーションの索引ツリーの階層が浅くなります。データベースが主に問合せ処理に使用されている場合は、ブロック・サイズを 8KB 以上にする必要があります。

DB_FILE_MULTIBLOCK_READ_COUNT の値の増加の値の増加の値の増加の値の増加DB_FILE_MULTIBLOCK_READ_COUNTの値を、できるだけ大きい値に設定する必要もあります。これによって、表をスキャンするために必要な読込み数が削減され、フル・テーブル・スキャンがより高速になります。システム I/O は、読み込まれたブロック数をブロック・サイズに掛けた値に制限されていることに注意してください。

オペレーティング・システムによるディスクのストライプ化ストライプ化ストライプ化ストライプ化を行っている場合、DB_FILE_MULTIBLOCK_READ_COUNTに DB_BLOCK_SIZEの 2 倍の値を掛けた値にストライプ・サイズを設定します。システムが索引ストライプと表データ・ストライプを区別する場合は、DB_BLOCK_SIZEに 2 を掛けたストライプ・サイズを索引に使用します。

5-22 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 109: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters ベースのアプリケーションにおける パフォーマンス問題の解決

また、次のことに注意してください。

� データおよび索引に対して、読込み専用表領域を使用します。

� 一時セグメントを保持している表領域を TEMPORARY型として定義します。

アプリケーションのチューニングのヒントアプリケーションのチューニングのヒントアプリケーションのチューニングのヒントアプリケーションのチューニングのヒント一般的に、トランザクション・ベースのアプリケーションは、その他のタイプのアプリケーションより多くのデータをディスクに書き込みます。トランザクション・ベースのアプリケーションを 適化するには、いくつかの方法がありますが、これらの方法を、すべてのタイプのシステムで使用できるわけではありません。これらの方法でチューニングを開始する前後に、アプリケーションのパフォーマンスを監視して、この方法が受け入れられることを確認してください。

データベース・ライター・プロセス(DBWn)の機能を改善して大量のデータをより高速に書き込ませるには、非同期化 I/O を使用します。Oracle9i は、複数の DBWn プロセスを使用して、パフォーマンスを向上させます。

インスタンスごとにパーティション化されたユーザーがあり、複数の空きリストを保持するために十分な領域がある場合は、空きリスト・グループを使用します。これによって、アプリケーションの動的なデータのパーティション化を回避できます。また、表を手動で値ごとにパーティション化することもできます。アクセスがランダムな場合は、より小さいブロック・サイズを使用することを考慮します。

次のことにも注意してください。

� 関連する索引およびシーケンス・ジェネレータでの競合に注意します。

� データのアフィニティおよびフェイルオーバーのために、複数層アーキテクチャを使用します。

パフォーマンス問題の診断パフォーマンス問題の診断パフォーマンス問題の診断パフォーマンス問題の診断アプリケーションが正常に実行しない場合は、そのアプリケーションの各コンポーネントを分析して、問題の原因となるコンポーネントを識別します。そのためには、次の項で説明するとおり、オペレーティング・システムおよび GCS 統計を確認して、競合または過剰なCPU 使用率を識別します。測定可能な過剰なブロック・モード変換によって、GCS コンポーネントによる高い読取り / 書込みアクティビティまたは高い CPU 要件を判断できます。

注意注意注意注意 : 非同期化 I/O をサポートしてないプラットフォームもあります。

Real Application Clusters のチューニングの一般的な推奨事項 5-23

Page 110: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

アドバンスト・キューイングおよび Real Application Clusters

競合および競合および競合および競合および CPU 使用率を監視するための使用率を監視するための使用率を監視するための使用率を監視するための GCS 統計統計統計統計アプリケーションのパフォーマンスが 適でない場合は、次に示すとおり、統計を調べることを検討します。

� Statspack または UTLBSTATおよび UTLESTATを実行し、標準のチューニング方法を使用します。その後、V$SQLビューを問い合せます。このビューから統計を調べて、共有プールおよびバッファ・キャッシュでのヒット率を分析します。

� CATCLUST.SQLを実行するときに作成された、動的パフォーマンス表の統計を調べます。

� V$LOCK_ACTIVITY表を使用して、ブロック・モード変換の割合を監視します。

� V$BH表を使用して、どのブロックがディスクに強制的に書き込まれているかを識別します。この V$BH表では、各ブロック・アクセス・モードが排他から NULL へダウングレードされた回数の合計が示されます。

� V$CACHE_TRANSFERビューには、排他から NULL への件数が 0(ゼロ)ではないV$CACHE表の行が示されます。

アドバンスト・キューイングおよびアドバンスト・キューイングおよびアドバンスト・キューイングおよびアドバンスト・キューイングおよび Real Application ClustersReal Application Clusters 環境でアドバンスト・キューイングを使用すると、次の項で示すとおり、機能性およびパフォーマンス関連の問題が発生します。

� キュー・テーブルのインスタンス・アフィニティ

� グローバル・キャッシュ・サービス・リソースの取得

� アドバンスト・キューイングおよびキュー・テーブルのキャッシュ転送

キュー・テーブルのインスタンス・アフィニティキュー・テーブルのインスタンス・アフィニティキュー・テーブルのインスタンス・アフィニティキュー・テーブルのインスタンス・アフィニティキュー・テーブルのインスタンス・アフィニティによって、プライマリおよびセカンダリ・インスタンスのプロパティをキュー・テーブルを割り当てることができます。これによって、インスタンスの停止時および再起動時にキュー・テーブルの所有権が自動的に割り当てられます。キュー・テーブルのインスタンス・アフィニティは、次のビューを問い合せることによって評価できます。

� DBA_QUEUE_TABLES

� USER_QUEUE_TABLES

5-24 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 111: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

アドバンスト・キューイングおよび Real Application Clusters

グローバル・キャッシュ・サービス・リソースの取得グローバル・キャッシュ・サービス・リソースの取得グローバル・キャッシュ・サービス・リソースの取得グローバル・キャッシュ・サービス・リソースの取得GCS リソースの取得は、ローカル・リソースまたはローカル・エンキューの取得より高コストです。アドバンスト・キューイングの配置が不適切な場合、リソース制御動作によって、Real Application Clusters 環境のパフォーマンスが低下する場合があります。この問題を回避するために、次のことを検討します。

� 高水位標高水位標高水位標高水位標を繰り上げる場合、空きリストに追加されるブロック数を増加させる。

� キュー・テーブルに対して表ロックを使用禁止にする。

� COMMIT の数を削減する。

アドバンスト・キューイングおよびキュー・テーブルのキャッシュ転送アドバンスト・キューイングおよびキュー・テーブルのキャッシュ転送アドバンスト・キューイングおよびキュー・テーブルのキャッシュ転送アドバンスト・キューイングおよびキュー・テーブルのキャッシュ転送一般的に、キュー・テーブルのデータ・ブロックおよびキュー・テーブルの索引ブロックのキャッシュ転送は、次の場合に発生します。

� 異なるインスタンスが同時にキューにアクセスした場合

� Oracle がキュー・テーブルの所有権を正しく割り当てなかったため、キュー・モニターが、エンキュー操作またはデキュー操作が実行されたインスタンスとは異なるインスタンスからのキューをスケジューリングした場合

� Oracle がキュー・テーブルに対する領域トランザクションを実行する場合

キャッシュ・ブロックの転送頻度は、次の方法によって削減できます。

� 高水位標を繰り上げる場合、Oracle が空きリストに追加するブロック数を増加させる。

� キュー・テーブルの索引に、空きリストおよび空きリスト・グループを使用する。

� アプリケーションをパーティション化し、1 つのインスタンスのみからキューにアクセスする。

� アプリケーションをパーティション化し、各インスタンス用のキュー・テーブルを作成する。

参照参照参照参照 : 表ロックの使用禁止の詳細は、4-19 ページの「個々の表に対する表ロックの使用禁止」を参照してください。

参照参照参照参照 : アドバンスト・キューイングの概要は、『Oracle9i アプリケーション開発者ガイド - アドバンスト・キューイング』を参照してください。

Real Application Clusters のチューニングの一般的な推奨事項 5-25

Page 112: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

アドバンスト・キューイングおよび Real Application Clusters

5-26 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 113: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびインスタンス間パフォーマンスのチュ

6

Real Application Clusters およびインスタンス間およびインスタンス間およびインスタンス間およびインスタンス間

パフォーマンスのチューニングパフォーマンスのチューニングパフォーマンスのチューニングパフォーマンスのチューニング

この章では、Oracle Real Application Clusters およびキャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョンに関連する統計について説明します。また、これらの統計を使用してパフォーマンスを監視およびチューニングする方法についても説明します。さらに、ほとんどのシステムおよびアプリケーションに適用される一般的な用語を使用してキャッシュ・フュージョンのメリットを説明し、キャッシュ・フュージョンによる Real Application Clusters の読込み / 書込み競合および書込み / 書込み競合の解消についても簡単に説明します。内容は次のとおりです。

� キャッシュ・フュージョンによる現行のブロックおよび一貫性読込みブロックの作成方法

� Real Application Clusters 用のインターコネクトおよびインターコネクト・プロトコル

� キャッシュ・フュージョンのパフォーマンス期待値

� キャッシュ・フュージョンおよびインスタンス間パフォーマンスの監視

� キャッシュ・フュージョンおよびパフォーマンス監視の目標

� Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

� V$SYSTEM_EVENT ビューを使用したパフォーマンス問題の識別

参照参照参照参照 : キャッシュ・フュージョン処理の概要は、『Oracle9i Real Application Clusters 概要』を参照してください。

ーニング 6-1

Page 114: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

キャッシュ・フュージョンによる現行のブロックおよび一貫性読込みブロックの作成方法

キャッシュ・フュージョンによる現行のブロックおよび一貫キャッシュ・フュージョンによる現行のブロックおよび一貫キャッシュ・フュージョンによる現行のブロックおよび一貫キャッシュ・フュージョンによる現行のブロックおよび一貫性読込みブロックの作成方法性読込みブロックの作成方法性読込みブロックの作成方法性読込みブロックの作成方法

1 つのインスタンスインスタンスインスタンスインスタンスがデータ・ブロックの 新コピーを要求し、そのコピーがリモート・イイイインスタンスンスタンスンスタンスンスタンスのメモリー・キャッシュ内にある場合、キャッシュ・フュージョンは、ディスク・アクセスではなくリモート・メモリー・アクセスを使用して、読込み / 書込み競合および書込み / 書込み競合を解消します。

インスタンスがブロックの一貫性読込みコピーまたはカレント・イメージに対する要求を保持側インスタンスに送信すると、保持側インスタンスはブロックに加えられた変更をログに記録し、ログ・フラッシュを強制実行します。保持側インスタンスのグローバル・キャッグローバル・キャッグローバル・キャッグローバル・キャッシュ・サービス・プロセスシュ・サービス・プロセスシュ・サービス・プロセスシュ・サービス・プロセス((((LMSn))))は、要求されたブロックのイメージを、一貫性読込みブロックまたは現行のブロックとして、高速インターコネクトインターコネクトインターコネクトインターコネクト経由で、保持側インスタンスのバッファ・キャッシュから要求側インスタンスのバッファ・キャッシュに直接送信します。

図 6-1 に示すとおり、キャッシュ・フュージョンでは、待機時間の短い高速インターコネクインターコネクインターコネクインターコネクトトトトによって、1 つのノードノードノードノードのバッファ・キャッシュから別のノードのバッファ・キャッシュにデータ・ブロックを直接送信できます。そのため、高コストのディスク I/O の必要性が削減されます。また、キャッシュ・フュージョンでは、新しいインターコネクト・テクノロジを活用して、待機時間の短いユーザー領域ベースのプロセッサ間通信を実現しています。これによって、ノード間メッセージに対するオペレーティング・システムのコンテキストのスイッチングが削減され、CPU 使用率が低下します。

6-2 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 115: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

キャッシュ・フュージョンによる現行のブロックおよび一貫性読込みブロックの作成方法

図図図図 6-1 キャッシュ・フュージョンによるインターコネクト経由のキャッシュ間ブロック転送キャッシュ・フュージョンによるインターコネクト経由のキャッシュ間ブロック転送キャッシュ・フュージョンによるインターコネクト経由のキャッシュ間ブロック転送キャッシュ・フュージョンによるインターコネクト経由のキャッシュ間ブロック転送

注意注意注意注意 : キャッシュ・フュージョンは常に使用可能です。

共有�サーバー�

GCS

LMS

ノード1

SGA キャッシュ・フュージョン�

共有�サーバー�

GCS

LMS

ノード2

SGA

データベース・�ファイル�

データベース・�ファイル�

データベース・�ファイル� REDO

ログ(2)�REDOログ(2)�

共有ディスク・サブシステム�

LGWR LGWRDBWR DBWR

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-3

Page 116: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

キャッシュ・フュージョンによる現行のブロックおよび一貫性読込みブロックの作成方法

キャッシュ・フュージョンによるスケーラビリティの改善キャッシュ・フュージョンによるスケーラビリティの改善キャッシュ・フュージョンによるスケーラビリティの改善キャッシュ・フュージョンによるスケーラビリティの改善キャッシュ・フュージョンは、次のことによって、アプリケーション・トランザクションのスループットおよびスケーラビリティを改善します。

� ディスク I/O を使用しなくても、書込み / 書込みおよび読込み / 書込みキャッシュ一貫性による競合が解消されます。

� コンテキストのスイッチングを削減します。これによって、ラウンドトリップ・メッセージの順序が短くなり、CPU 使用率が削減されます。

� ユーザー・モードのユーザー・モードのユーザー・モードのユーザー・モードの IPC プラットフォームでは、CPU 使用率が大幅に削減されます。

� 高速インターコネクト経由で、現行のブロックおよび一貫性読込みブロックが送信されます。

キャッシュ・フュージョンは、複数インスタンスによってが読込みまたは変更されたブロックによるホット・スポットがあるアプリケーションに も有効です。パッケージ・アプリケーションでも、キャッシュ・フュージョンの結果、より効果的に拡張できます。キャッシュ・フュージョンは、オンライン・トランザクション処理(OLTP)およびレポート作成機能が別々のノードで実行されるアプリケーションにも効果があります。さらに重要なOLTP の応答時間については、特に大きな効果があります。

OLTP 機能によって変更された表のデータにアクセスするレポート作成機能は、高速インターコネクトを経由して一貫性読込みバージョンのデータ・ブロックを受信します。Oracle9i リリース 1(9.0.1)は、データ・ブロックのディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行を削減します。パフォーマンスの向上は、主に、X-to-S ブロック・アクセス・モード変換の減少、およびそれに伴う X-to-S ブロック・アクセス・モード変換に対するディスク I/O の減少によるものです。

さらに、別のインスタンスからキャッシュ・データ・ブロックの読込み要求を受信する前に、そのブロックを変換していたインスタンスは、後続の変更に対して、ブロックへの排他的アクセスを再要求する必要はありません。これは、そのブロックが読込み側のインスタンスに送信された後も、そのブロックを変更していたインスタンスが排他ロックでブロックを保持しているためです。

Oracle9i リリース 1(9.0.1)のキャッシュ・フュージョンを使用すると、インスタンスが、現在は使用済で他のインスタンスのキャッシュ内にあるブロックを排他モードで要求した場合でも、Oracle は X-to-N ブロック・モード変換(ブロックがグローバルに正当である場合は、X-to-S ブロック・モード変換)を実行します。ただし、要求側インスタンスはインターコネクト経由でブロックを受信するため、リリース 1(9.0.1)では、この下位変換操作はオーバーヘッドの観点から、より低コストです。これは、以前の Oracle リリースの標準的なディスク書込みの強制実行処理より大幅に高速に処理されます。

注意注意注意注意 : キャッシュ・フュージョンによって、すべてのアプリケーションでパフォーマンスが向上します。どの程度向上するかは、オペレーティング・システム、アプリケーションの作業負荷および全体のシステム構成によって異なります。

6-4 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 117: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

キャッシュ・フュージョンによる現行のブロックおよび一貫性読込みブロックの作成方法

高速インターコネクトを経由したブロックの転送高速インターコネクトを経由したブロックの転送高速インターコネクトを経由したブロックの転送高速インターコネクトを経由したブロックの転送キャッシュ・フュージョンは高速 IPC を使用します。そのため、クラスタクラスタクラスタクラスタ・インターコネクトを経由した待機時間の短い通信を実現する 新テクノロジによって、Real Application Clusters のパフォーマンスが向上します。仮想インタフェース・アーキテクチャ仮想インタフェース・アーキテクチャ仮想インタフェース・アーキテクチャ仮想インタフェース・アーキテクチャ((((VIA))))やユーザー・モードの IPC などのより効率的なプロトコロルによって、さらにパフォーマンスの向上が期待できます。

キャッシュ・フュージョンは、ユーザー・モードの IPC(メモリマップ IPC ともいう)を活用して、UNIX、Windows NT および Windows 2000 ベースのプラットフォームでの CPU使用率を削減します。ハードウェアが適切にサポートされている場合は、オペレーティンオペレーティンオペレーティンオペレーティング・システムのコンテキストのスイッチンググ・システムのコンテキストのスイッチンググ・システムのコンテキストのスイッチンググ・システムのコンテキストのスイッチングによって、キャッシュ・フュージョンのみによる標準的な削減以上に 小化されます。また、高コストのデータ・コピーおよびシステム・コールも排除されます。

ユーザー・モードの IPC がハードウェアによって効率的に実装されている場合、ユーザー・モードの IPC アーキテクチャではユーザー・プロセスがオペレーティング・システムのカーネルを使用しないで通信できるため、CPU 使用率が削減されます。ユーザー実行モードからカーネル実行モードへ切り替える必要はありません。

ブロックのディスク書込みの強制実行によるブロックのディスク書込みの強制実行によるブロックのディスク書込みの強制実行によるブロックのディスク書込みの強制実行による I/O の排除の排除の排除の排除キャッシュ・フュージョンは、あるインスタンスのバッファ・キャッシュから別のインスタンスのバッファ・キャッシュに現行のブロック・モードのバージョンおよび一貫性読込みブロックを直接送信することによって、データ・ブロックおよびロールバック・セグメント・ブロックに対するディスク I/O を排除します。これによって、書込み / 書込み競合および読込み / 書込み競合を解消するために必要な待機時間を 大 90 パーセント短縮できます。

キャッシュ・フュージョンは、前述のとおり、ディスク I/O を使用しないで競合を解決します。キャッシュ・フュージョンにかかる処理量は、ディスク・ベースのパラレル・キャッシュ管理に必要な処理量の 10 分の 1 です。そのためにキャッシュ・フュージョンによって発生するオーバーヘッドは次のとおりです。

� 現行のブロックの確保、ブロックへの変更のロギング、ログ・フラッシュの強制実行、およびブロックの送信

または、一貫性読込みバージョンを要求する場合、キャッシュ・フュージョンによって発生するオーバーヘッドは次のとおりです。

� 要求の処理、メモリー内にある要求されたブロックの一貫性読込みコピーの作成、および要求側インスタンスへのコピーの転送

1000 分の 1 秒もかからないプラットフォームもあります。

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-5

Page 118: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters 用のインターコネクトおよびインターコネクト・プロトコル

複数インスタンスによって変更されたブロックによるホット・スポットを複数インスタンスによって変更されたブロックによるホット・スポットを複数インスタンスによって変更されたブロックによるホット・スポットを複数インスタンスによって変更されたブロックによるホット・スポットをさらに削減するためのデータのパーティション化さらに削減するためのデータのパーティション化さらに削減するためのデータのパーティション化さらに削減するためのデータのパーティション化

5-14 ページの表 5-3 に示すとおり、V$SYSTEM_EVENTを使用して global cache resource busy および buffer busy due to global cache の統計を評価することによって、複数インスタンスによって変更されたブロックによるホット・スポットを正確に評価できます。アプリケーションにホット・スポットがある場合、書込み / 書込み競合のコストをさらに削減するために、第 3 章に示すいずれかのパーテーション化方法を使用することを検討してください。

Real Application Clusters 用のインターコネクトおよびインター用のインターコネクトおよびインター用のインターコネクトおよびインター用のインターコネクトおよびインターコネクト・プロトコルコネクト・プロトコルコネクト・プロトコルコネクト・プロトコル

キャッシュ・フュージョンのパフォーマンスに影響する主な要素は、インターコネクトおよびノード間通信を処理するプロトコルです。インターコネクトの帯域幅、その待機時間および IPC プロトコルの効率によって、キャッシュ・フュージョンが一貫性読込みブロック要求を処理する速度が決まります。

インターコネクト処理への影響インターコネクト処理への影響インターコネクト処理への影響インターコネクト処理への影響一度インターコネクトが動作可能になると、インターコネクトのパフォーマンスを大きく変更することはできません。ただし、IPC のバッファ・サイズを調整することで、インターコネクト・プロトコルの効率を変更できます。

参照参照参照参照 : サポートされるインターコネクト・プロトコルについては、『Oracle9i Real Application Clusters インストレーションおよび構成』を参照してください。

参照参照参照参照 : 詳細は、ベンダー固有のインターコネクトのドキュメントを参照してください。

6-6 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 119: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

キャッシュ・フュージョンおよびパフォーマンス監視の目標

キャッシュ・フュージョンのパフォーマンス期待値キャッシュ・フュージョンのパフォーマンス期待値キャッシュ・フュージョンのパフォーマンス期待値キャッシュ・フュージョンのパフォーマンス期待値キャッシュ・フュージョンのパフォーマンス・レベルを示す待機時間およびスループットは、アプリケーションによって異なります。システムが処理するトランザクションの種類および組合せによっても、パフォーマンスがさらに影響を受けます。

キャッシュ・フュージョンによるパフォーマンスの向上の程度は、作業負荷によって異なります。また、ハードウェア、インターコネクト・プロトコルの仕様およびオペレーティング・システムのリソース使用率によっても、パフォーマンスが影響を受けます。

キャッシュ・フュージョン導入前のアプリケーションに、大規模な一貫性読込み競合または書込み / 書込み競合がなかった場合は、キャッシュ・フュージョンによるパフォーマンスの変化はない可能性があります。ただし、アプリケーションで、一貫性読込み競合または書込み / 書込み競合の結果として非常に多くのブロック・モード変換および大量のディスク I/Oが発生していた場合は、キャッシュ・フュージョンによってパフォーマンスが大幅に向上します。

次の項では、キャッシュ・フュージョンのパフォーマンスの評価方法をさらに詳しく説明します。

キャッシュ・フュージョンおよびインスタンス間パフォーキャッシュ・フュージョンおよびインスタンス間パフォーキャッシュ・フュージョンおよびインスタンス間パフォーキャッシュ・フュージョンおよびインスタンス間パフォーマンスの監視マンスの監視マンスの監視マンスの監視

この項では、Real Application Clusters およびキャッシュ・フュージョンの統計を取得および分析して、インスタンス間パフォーマンスを監視する方法について説明します。この項の内容は次のとおりです。

� キャッシュ・フュージョンおよびパフォーマンス監視の目標

� Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

� V$SYSTEM_EVENT ビューを使用したパフォーマンス問題の識別

キャッシュ・フュージョンおよびパフォーマンス監視の目標キャッシュ・フュージョンおよびパフォーマンス監視の目標キャッシュ・フュージョンおよびパフォーマンス監視の目標キャッシュ・フュージョンおよびパフォーマンス監視の目標キャッシュ・フュージョンおよび Real Application Clusters のパフォーマンスを監視する主な目的は、グローバル処理のコストを判断し、一貫性の保持およびインスタンスの同期化に必要なリソースを明確にすることです。これは、次の項で説明するとおり、複数のビューからパフォーマンスの統計を分析することによって行います。これらの監視を継続して行い、処理の傾向を観察して、処理を 適化します。

多くの統計は、キャッシュ・レイヤー、トランザクション・レイヤー、I/O レイヤーなど、データベース・カーネルの様々なコンポーネントが行う作業を計測します。さらに、定期的な統計によって、ある要求を処理する時間または特定のイベントを待機する時間を正確に判断できます。これらの統計から、作業割合、待機時間および効率を取り出すことができます。

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-7

Page 120: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

Real Application Clusters およびキャッシュ・フュージョンをおよびキャッシュ・フュージョンをおよびキャッシュ・フュージョンをおよびキャッシュ・フュージョンを監視するための統計監視するための統計監視するための統計監視するための統計

Oracle は、バッファ・キャッシュおよびグローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービス((((GCS))))・レイヤーから、キャッシュ・フュージョン関連のパフォーマンス統計を収集します。また、Oracle は、ブロック要求およびブロック・モード変換待機に対する一般的な Real Application Clusters 統計も収集します。いくつかのビューを使用して、これらの統計を調べることができます。

システム・パフォーマンスの履歴を十分に保持すると、統計の変更が表す傾向を簡単に識別できるようになります。これによって、応答時間の増大およびスループットの低下の原因となる問題を簡単に識別できるようになります。パフォーマンスの傾向の履歴も、作業負荷の変更およびピーク時の処理要件を識別する場合に有効です。

この項の手順では、次の項目に従ってグループ化した統計を使用しています。

� グローバル・キャッシュおよびキャッシュ・フュージョンの統計の分析

� グローバル・エンキュー統計の分析

� GES リソース、メッセージおよびメモリー・リソース統計の分析

� GES メッセージの統計処理

� Real Application Clusters のラッチ統計の分析

第 5 章で説明するとおり、1 秒ごとおよびトランザクションごとに、V$SYSSTATビューおよび V$SYSTEM_EVENTビューからの統計を保持することを検討してください。これによって、作業負荷の一般的なプロファイルがわかります。これらのビューから、次のものを観察します。

� トランザクションごとの要求または件数(たとえば、トランザクションごとに取得されたグローバル・キャッシュの現行のブロック)

� トランザクションごとの待機時間または経過時間(たとえば、トランザクションごとのビジー・バッファ待機時間、トランザクションごとのブロック・モード変換時間)

� 1 秒ごとの要求または件数

参照参照参照参照 :

� 収集する統計およびその統計を使用してパフォーマンス割合を計算する方法の詳細は、第 5 章「Real Application Clusters のチューニングの一般的な推奨事項」を参照してください。

� Oracle Enterprise Manager が収集する統計、および Oracle Enterprise Manager を使用した Real Application Clusters 環境の監視の詳細は、第 7 章「Oracle Performance Manager を使用したパフォーマンスの監視」を参照してください。

6-8 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 121: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

� 要求ごとの平均時間(たとえば、別インスタンスからの一貫性読込みバッファ受取り平均時間)

これらの統計をメンテナンスすることによって、ある種類の操作によって発生する、トランザクションの応答時間に対するコストの増加の影響を正確に見積もることができます。また、作業割合または平均遅延が大きく増加したことによっても、容量の問題を識別できます。

この項の手順で説明するほとんどのビューに対する統計を収集するには、TIMED_STATISTICSパラメータを trueに設定します。この章で説明するビューの定期的な統計は、100 分の 1 秒単位で表示されます。

CATCLUST.SQL によるによるによるによる Real Application Clusters のデータ・ディクショナリ・のデータ・ディクショナリ・のデータ・ディクショナリ・のデータ・ディクショナリ・ビューの作成ビューの作成ビューの作成ビューの作成

CATCLUST.SQLを実行して、統計を格納および参照するための Real Application Clusters 関連のビューおよび表を作成する必要があります。このスクリプトを実行するには、SYSDBA権限が必要です。

CATCLUST.SQLは、次のビューの他に、標準 V$動的ビューを作成します。

� GV$CACHE

� GV$CACHE_TRANSFER

� GV$CLASS_CACHE_TRANSFER

� GV$FILE_CACHE_TRANSFER

� GV$ROWCACHE

� GV$LIBRARYCACHE

共有ディスク・アーキテクチャによってディスク書込みの強制実行が排除される場合でも、V$FILE_CACHE_TRANSFER、V$CLASS_CACHE_TRANSFERおよび V$CACHE_TRANSFERには、ブロック・クラスまたはオブジェクトごとのブロック・モード変換数が示されます。ただし、前述のとおり、FORCED_WRITES列は 0(ゼロ)になります。これは、X-to-N 変換の結果、ディスク書込みの強制実行を発生させずにキャッシュ・ブロックが転送されたことなどを示しています。

参照参照参照参照 : 動的パフォーマンス・ビューの詳細は、『Oracle9i データベース・リファレンス』を参照してください。

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-9

Page 122: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

グローバル動的パフォーマンス・ビューグローバル動的パフォーマンス・ビューグローバル動的パフォーマンス・ビューグローバル動的パフォーマンス・ビュー各アクティブ・インスタンスには、それぞれ一連のインスタンス固有のビューがあります。グローバル動的パフォーマンス・ビューに問い合せて、すべてのインスタンスから V$ビュー情報を取り出すことができます。グローバル動的パフォーマンス・ビュー名には、GV$という接頭辞が付きます。グローバル固定ビューは、次のビュー以外のすべての動的パフォーマンス・ビューにあります。

� V$ROLLNAME

� V$CACHE_LOCK

� V$LOCK_ACTIVITY

� V$LOCKS_WITH_COLLISIONS

グローバル・ビューには、インスタンス固有のビューのすべての列の他に、INST_ID列(INTEGERデータ型)が含まれます。この列には、対応する V$情報が取得されたインスタインスタインスタインスタンス番号ンス番号ンス番号ンス番号が表示されます。INST_ID列をフィルタとして使用し、使用可能なインスタンスのサブセットから V$情報を取り出すことができます。たとえば、次の問合せでは、インスタンス 2 および 5 の V$ビューから情報が取り出されます。

SELECT * FROM GV$LOCK WHERE INST_ID = 2 or INST_ID = 5;

各グローバル・ビューには、GLOBALヒントが含まれています。GLOBALヒントは、各インスタンスのローカル・ビューの内容を取り出すパラレル問合せを作成します。

インスタンスがすでに PARALLEL_MAX_SERVERS制限に達している状態で、GV$ビューを問い合せると、この目的のために追加のパラレル実行パラレル実行パラレル実行パラレル実行サーバー・プロセスが起動されます。この追加プロセスは、GV$問合せ以外のパラレル操作には使用できません。

インスタンスがすでに PARALLEL_MAX_SERVERS制限に達している状態で、GV$ビューへの複数の問合せを発行すると、 初の問合せ以外は正常に実行されません。ほとんどのパラレル問合せでは、サーバー・プロセスを割り当てることができない場合、エラーになるか、または問合せコーディネータによって問合せが順次実行されます。

注意注意注意注意 : インスタンスの PARALLEL_MAX_SERVERSを 0(ゼロ)に設定した場合は、GV$問合せのための追加のパラレル実行サーバー・プロセスは起動しません。

参照参照参照参照 :

� 2-6 ページの「Real Application Clusters 環境での柔軟なパラレル化」を参照してください。

� GV$ビューの制限事項、および関連するすべてのパラメータと動的パフォーマンス・ビューの詳細は、『Oracle9i データベース・リファレンス』を参照してください。

6-10 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 123: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

グローバル・キャッシュおよびキャッシュ・フュージョンの統計の分析グローバル・キャッシュおよびキャッシュ・フュージョンの統計の分析グローバル・キャッシュおよびキャッシュ・フュージョンの統計の分析グローバル・キャッシュおよびキャッシュ・フュージョンの統計の分析Oracle は、1 つのインスタンス内のバッファ・キャッシュ・レイヤーでグローバル・キャッシュ統計を収集します。これらの統計には、グローバル・リソースに対する問合せの件数およびタイミングが含まれます。

データ・ブロックに対するグローバル・リソース要求は、要求側インスタンスのバッファ・キャッシュで発生します。要求が GCS 要求キューに入力される前に、要求の状態を追跡するためのデータ構造がシステム・グローバル領域システム・グローバル領域システム・グローバル領域システム・グローバル領域((((SGA))))に割り当てられます。これらの構造を、リソースといいます。

グローバル・キャッシュ統計を監視するには、次に示すとおり、V$SYSSTATビューを問い合せ、その出力を分析します。

グローバル・キャッシュ統計の監視手順グローバル・キャッシュ統計の監視手順グローバル・キャッシュ統計の監視手順グローバル・キャッシュ統計の監視手順グローバル・キャッシュ統計を分析するには、次の手順に従います。

1. 次の構文を使用して、V$SYSSTATを問い合せます。

SELECT NAME,VALUE FROM V$SYSSTAT WHERE NAME LIKE '%global cache%';

次のように出力されます。

NAME VALUE ------------------------------------------- ---------- global cache blocks corrupt 0 global cache blocks lost 0 global cache claim blocks lost 0 global cache convert time 287709 global cache convert timeouts 0 global cache converts 137879 global cache cr block build time 4328 global cache cr block flush time 9565 global cache cr block receive time 742421 global cache cr block send time 10119 global cache cr blocks received 448301 global cache cr blocks served 442322

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-11

Page 124: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

global cache current block flush time 10944 global cache current block pin time 27318 global cache current block receive time 254702 global cache current block send time 2819 global cache current blocks received 132248 global cache current blocks served 130538 global cache defers 4836 global cache freelist waits 0 global cache get time 15613 global cache gets 9178 global cache prepare failures 0 23 rows selected.

2. 次の式を使用して、一貫ブロック要求の平均待機時間(ラウンドトリップ時間)を計算します。

結果は、システム構成およびボリュームによって異なりますが、通常、約 15ms(ミリ秒)になり、一貫性読込み要求のラウンドトリップ(要求側インスタンスから保持側インスタンスに送られて、要求側インスタンスへ戻る)の平均待機時間になります。CPUのアイドル時間が制限されていて、システムが、通常、長時間実行の問合せを処理する場合は、待機時間が長くなる場合があります。ただし、ユーザー・モードのユーザー・モードのユーザー・モードのユーザー・モードの IPC を使用することによって、平均待機時間を 1ms 未満にできます。

DB_MULTI_BLOCK_READ_COUNTパラメータ値が大きい場合、要求待機時間にも影響します。これは、このパラメータの設定によって、要求側のプロセスがブロックに対して複数の要求を発行する場合があるためです。そのため、要求側のプロセスの待機時間が長くなる場合があります。

3. 特にレポート集中型のアプリケーションで受信要求の数が多い場合、または LMS プロセスへの要求の送信元であるノードが複数ある場合、LMS のサービス時間が増加するため、ラウンドトリップ時間は増加します。遅延の長さが LMS のオーバーヘッドによって発生したかどうかを判断するには、次の式を使用して要求ごとの平均サービス時間を計算します。

global cache cr block receive time

global cache cr blocks received

6-12 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 125: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

この手順に示すとおり、ピーク時の処理間隔中の一定時間、要求ごとの平均 LMS サービス時間、および要求ごとの合計ラウンドトリップ時間を追跡します。

サービス時間のどの部分が合計サービス時間と も関連があるかを調べるには、次の 3つの式を使用して、一貫性読込み要求をキューするための待機時間、一貫性読込みブロックの作成に必要な時間、ログ・フラッシュの待機時間および完了した要求の送信にかかった時間を計算します。

一貫性読込みブロックの作成に必要な時間は次のとおりです。

ログ・フラッシュの待機時間は次のとおりです。

完了した要求の送信にかかった時間は次のとおりです。

これらの平均を計算することによって、一貫性読込みブロック要求のほとんどすべての処理手順を評価できます。要求ごとの合計ラウンドトリップ時間と LMS サービス時間のその他の違いは、グローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモン((((LMD))))が要求をLMS プロセスに送信するためのキュー時間、LMS 処理時間およびネットワーク IPC 時間です。

global cache cr [queue + build + flush + send] time

global cache cr blocks served

global cache cr block build time

global cache cr blocks served

global cache cr block flush time

global cache cr blocks served

global cache cr block send time

global cache cr blocks served

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-13

Page 126: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

4. 次の式を使用して、現行のブロックに対する要求の平均待機時間を計算します。

現行のブロックの受信にかかった時間は次のとおりです。

5. 次の式を使用して、現行のブロックに対する要求を処理するためにかかった時間の内訳を計算します。

現行のブロック要求のサービス時間には、確保時間および送信時間が含まれます。次の2 つの式は、キャッシュ転送の様々な手順の処理時間を判断するために有効です。

確保時間は次のとおりです。

送信時間は次のとおりです。

global cache current block receive time

global cache current blocks received

global cache current block [pin + flush + send] time

global cache current blocks served

global cache current block pin time

global cache current blocks served

global cache current block send time

global cache current blocks served

6-14 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 127: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

6. 次のいずれかの式を使用して、平均変換時間および平均取得時間を計算します。

この手順による結果を分析する場合は、次の点を考慮してください。

� 変換時間が大きい場合は、過剰なグローバル競合が発生しています。

� global cache gets、global cache converts の数が大きく、平均変換時間および平均取得時間が急速に増加する場合、GCS 操作の過剰な競合が発生しています。

� GES 操作の詳細は、6-16 ページの「グローバル・エンキュー統計の分析」を参照してください。

� リソース操作の待機時間は、システム全体の作業負荷またはシステム問題によって長くなる場合があります。

Oracle では、新しいリソースがオープンされると、global cache gets が増加します。変換は、すでにオープンされているリソースがあり、Oracle がそのリソースを別のモードへ変換したときにカウントされます。

したがって、取得の経過時間には、新しいリソースの割当ておよび初期化が含まれます。キャッシュの平均取得時間または平均変換時間が長すぎる場合は、システムでタイムアウトが発生している場合があります。

global cache convert time または global cache get time の値が大きい場合は、V$SYSTEM_EVENTビューの統計を参照して、TIME_WAITED統計の値が大きいイベントを識別してください。

7. global cache convert timeouts の値を調べて、ブロック・モード変換のタイムアウトを分析します。V$SYSSTAT出力がこの統計で 0(ゼロ)以外の値を示している場合は、システムに負荷がかかっていないか、または過剰な競合がないかを確認してください。一般に、変換タイムアウトは発生しません。変換タイムアウトが発生するのは、重大なパフォーマンス問題がある場合です。

注意注意注意注意 : キャッシュ取得の妥当な値は 20 ~ 30ms で、変換の場合は平均 10~ 20ms です。

global cache convert time

global cache converts

global cache get time

global cache getsまたは�

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-15

Page 128: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

8. V$SYSSTAT出力で、global cache consistent-read timeouts の値を調べて分析します。一貫性読込み要求の完了をシステムが待機する時間が長すぎると、Oracle はこの統計を増やします。この統計情報が 0(ゼロ)以外の値を示している場合は、一貫性読込み要求の開始から長時間が経過しており、タイムアウトが発生しています。この場合、通常、一貫性読込み要求が完了するまでの平均時間も増加しています。タイムアウトが発生しており、待機時間が長い場合は、システムの作業負荷が大きすぎるか、またはデータ・ブロックに対する過剰な競合が発生している可能性があります。タイムアウトは、IPC またはネットワーク問題を示している場合もあります。

グローバル・エンキュー統計の分析グローバル・エンキュー統計の分析グローバル・エンキュー統計の分析グローバル・エンキュー統計の分析グローバル・エンキュー統計には、グローバル・エンキュー・サービスグローバル・エンキュー・サービスグローバル・エンキュー・サービスグローバル・エンキュー・サービス((((GES))))・アクティビティの待機時間および件数が含まれます。Oracle は、DLM API レイヤーからグローバル・エンキューの統計を収集します。GES のすべての Oracle クライアントは、このレイヤーを介して GES に要求を行います。したがって、グローバル・リソースの統計には、カーネルのすべてのレイヤーで発生したグローバル・エンキュー要求が含まれ、グローバル・キャッシュの統計は、バッファ・キャッシュのアクティビティに関連しています。

この項の手順に従って、V$SYSSTATビューのデータを監視し、GES の待機時間、件数および平均を導出します。これによって、インスタンスで生成される Real Application Clusters作業負荷を見積もることができます。

グローバル・エンキュー統計の分析手順グローバル・エンキュー統計の分析手順グローバル・エンキュー統計の分析手順グローバル・エンキュー統計の分析手順次の手順に従って、グローバル・エンキュー処理に対する V$SYSSTATビューの統計を参照および分析します。

1. 次の構文を使用して、V$SYSSTATを問い合せます。

SELECT NAME, VALUE FROM V$SYSSTAT WHERE NAME LIKE '%global lock%';

次のように出力されます。

NAME VALUE---------------------------------------------------------------- ----------global lock sync gets 703global lock async gets 12748global lock get time 1071global lock sync converts 303global lock async converts 41global lock convert time 93global lock releases 5737 rows selected.

V$SYSSTAT出力を基に、手順 2 ~ 5 で説明する計算および分析を行います。

6-16 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 129: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

2. 次の式で、平均グローバル・エンキュー取得時間を計算します。

結果が 20 ~ 30ms を超える場合は、DESCEND(DESC)キーワードを使用してV$SYSTEM_EVENTビューの TIME_WAITED列を問い合せ、次の問合せを使用して、も頻繁に待機状態になっているリソース・イベントを識別します。

SELECT TIME_WAITED, AVERAGE_WAIT FROM V$SYSTEM_EVENT ORDER BY TIME_WAITED DESC;

Oracle は、リソースに対して新しいグローバル・エンキューがオープンされた時点で、global lock gets 数を増加させます。変換は、すでにリソースに対してオープンされているグローバル・エンキューがあり、Oracle がそのグローバル・エンキューのアクセス・モードを別のモードへ変換したときにカウントされます。

そのため、取得の経過時間には、新しいグローバル・エンキューの割当ておよび初期化が含まれます。グローバル・エンキューの平均取得時間(global cache get time)またはグローバル・エンキューの平均変換時間(前述の式から導出)が長すぎる場合は、システムでタイムアウトが発生している場合があります。

global enqueue conversion times または global enqueue get times の値が大きい場合は、V$SYSTEM_EVENTビューの統計を参照して、TIME_WAITED統計の値が大きいイベントを識別してください。

3. 次の式を使用して、平均 global lock convert time を計算します。

結果が 20msを超える場合は、DESCEND(DESC)キーワードを使用してV$SYSTEM_EVENTビューの TIME_WAITED列を問い合せ、遅延の原因であるイベントを識別します。

global lock get time

(global lock sync gets + global lock async gets)

global lock convert time

(global lock sync converts + global lock async converts)

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-17

Page 130: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

4. 前述したとおり、グローバル・エンキューの統計は、データ・ブロックを必要としない操作にのみ適用されます。パフォーマンスの問題になっているリソース・タイプを判断するには、global enqueue get および global enqueue conversion を、次の 2 つのカテゴリに分割します。

� 同期操作

同期グローバル・エンキュー取得には、global lock sync gets などが含まれます。同期グローバル・エンキュー取得に必要な時間の割合を判断するには、global lock gets time または global lock convert time を、対応する同期操作の数で割ります。

� 非同期操作

非同期グローバル・エンキュー操作には、global lock async gets などが含まれます。これらは、通常、インスタンス間アクティビティを同期化するための、ブロックしていないプロセスからのグローバル・エンキュー操作です。同期操作と同じ計算を使用して、合計時間の割合を導出できます。この方法で、作業の割合およびグローバル・エンキュー要求のコストを判断できます。

通常、グローバル・キャッシュ要求以外のグローバル・エンキュー要求の割合が、すべてのグローバル・リソース操作のコストの大半を占める場合、V$SYSTEM_EVENTビューには、row cache locks、enqueue または library cache pinに対する長い待機時間が示されます。

5. V$LIBRARYCACHEビューおよび V$ROWCACHEビューを分析して、ローカル・リソースに対する GES アクティビティを観察します。これらのビューには、GES リソース使用率を識別する GES 固有の列があります。これらの GES アクティビティのビューの分析を行うのは、library cache pin、enqueue または DFS lock handle に対する長時間の待機が頻繁に発生する場合です。

GES リソース、メッセージおよびメモリー・リソース統計の分析リソース、メッセージおよびメモリー・リソース統計の分析リソース、メッセージおよびメモリー・リソース統計の分析リソース、メッセージおよびメモリー・リソース統計の分析GES リソースおよびメッセージの統計を使用して、GES 待機時間および作業負荷を監視します。これらの統計は、V$GES_CONVERT_LOCALビューおよび V$GES_CONVERT_REMOTEビューに表示されます。

これらのビューは、グローバル・エンキュー要求の平均変換時間、件数情報および定期的な統計を記録します。V$GES_CONVERT_LOCALビューは、ローカルな GES エンキュー操作の統計を表示します。V$GES_CONVERT_REMOTEビューは、リモートの GES エンキュー変換の値を表示します。これらのビューの平均変換時間は 100 分の 1 秒単位で表されます。

6-18 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 131: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

GES の作業負荷によるパフォーマンスへの影響の作業負荷によるパフォーマンスへの影響の作業負荷によるパフォーマンスへの影響の作業負荷によるパフォーマンスへの影響GES は、キャッシュ・フュージョン以外のインスタンス内およびインスタンス間のすべてのリソース操作を管理します。GES の作業負荷の要求の割合が大きくなると、パフォーマンスが低下する可能性があります。GES は、ローカル・エンキュー・リソース操作を完全にローカル・ノード内で実行します。つまり、メッセージを送信せずに実行します。リモート・エンキュー・リソース操作では、他のノードにメッセージを送信し、それらのノードからの応答を待機する必要があります。ただし、GES ではほとんどの下位変換がローカル操作です。

次に示す GES リソースおよびメッセージの統計の分析手順は、2 つのグループに分かれています。 初のグループの手順では、GES リソースの監視方法について説明します。2 番目のグループでは、メッセージ統計の監視方法について説明します。

GES リソースの統計の分析手順リソースの統計の分析手順リソースの統計の分析手順リソースの統計の分析手順次の手順に従って、GES リソース処理に必要な V$GES_CONVERT_LOCALビューおよびV$GES_CONVERT_REMOTEビューの統計を取得および分析します。

V$GES_CONVERT_LOCALビューおよび V$GES_CONVERT_REMOTEビューへ移入するために、イベント 29700 を使用可能にする必要があります。これを行うには、初期化パラメー初期化パラメー初期化パラメー初期化パラメータ・ファイルタ・ファイルタ・ファイルタ・ファイルに次の構文を入力します。

EVENT="29700 TRACE NAME CONTEXT FOREVER"

1. 次の構文を使用して、V$GES_CONVERT_LOCALビューを問い合せます。

SELECT CONVERT_TYPE, AVERAGE_CONVERT_TIME, CONVERT_COUNT FROM V$GES_CONVERT_LOCAL;

注意注意注意注意 : SSX が存在しない場合でも、$GES_CONVERT_LOCALビューおよび V$GES_CONVERT_REMOTEビューには、SSX からのブロック・モード変換および SSX へのブロック・モード変換用の行が含まれます。そのため、SSX 変換用の CONVERT_COUNT列および AVERAGE_CONVERT_TIME列の値は、常に 0(ゼロ)です。

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-19

Page 132: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

次のように出力されます。

CONVERT_TYPE AVERAGE_CONVERT_TIME CONVERT_COUNT-------------------------------------- -------------------- -------------NULL -> SS 0 0NULL -> SX 0 0NULL -> S 1 146NULL -> SSX 0 0NULL -> X 1 92SS -> SX 0 0SS -> S 0 0SS -> SSX 0 0SS -> X 0 0SX -> S 0 0SX -> SSX 0 0SX -> X 0 0S -> SX 0 0S -> SSX 0 0S -> X 3 46SSX -> X 0 016 rows selected.

2. 次の構文を使用して、V$GES_CONVERT_REMOTEビューを問い合せます。

SELECT * FROM V$GES_CONVERT_REMOTE;

V$GES_CONVERT_LOCALビューと同じ形式の出力が戻されます。

V$GES_CONVERT_LOCALビューおよび V$GES_CONVERT_REMOTEビューの出力を基に、次の計算を行います。この手順では、2 つのビューを結合します。

3. 次の問合せを使用して、ローカル・グローバル・エンキュー・リソース操作とリモート・グローバル・エンキュー・リソース操作の比率を計算します。

SELECT r.CONVERT_TYPE, r.AVERAGE_CONVERT_TIME, l.AVERAGE_CONVERT_TIME, r.CONVERT_COUNT, l.CONVERT_COUNT,FROM V$GES_CONVERT_LOCAL l, V$GES_CONVERT_REMOTE rWHERE r.convert_count <> 0 OR l.convert_count <> 0GROUP BY r.CONVERT_TYPE;

6-20 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 133: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

4. 作業負荷およびブロック・モード変換の待機時間の履歴をメンテナンスすると有効です。トランザクションごとのリソース要求が変化していても、平均待機時間が増加しない場合、アプリケーションの作業負荷のパターン変更が原因です。

要求の割合および待機時間が増加している場合、通常、メッセージの待機時間、システムの問題またはタイムアウトによってリソース競合の割合または作業負荷が増加していることがわかります。LMD プロセスの CPU 消費率が高い場合(CPU 消費率が 20% を超えていて、全体のシステム・リソースの消費率が通常どおりの場合)、複数の CPU を持つシステムでは、その LMD プロセスを特定のプロセッサにバインドすることを検討してください。インスタンスは 1 つ以上の LMS プロセスを起動します。システム・リソースの可用性によっては、インスタンスは複数の LMS プロセスを起動する場合もあります。

待機時間が増加した場合は、CPU データ、および UNIX の sar、vmstat、netstat など、または Windows NT および Windows 2000 の Perfmon などのユーティリティを使用して取得できる、他のオペレーティング・システムの統計も調べてください。

5. V$SYSTEM_EVENTビューから、LMD に対する CPU ビジー時間の推定値を導出します。

LMD が使用する CPU 時間を簡単に見積もるには、V$SYSTEM_EVENTビューに表示される LMD の待機時間イベントを変換できます。これを行うには、LMD プロセスがアイドル状態である時間を表す ges remote messages というイベントを調べます。TIME_WAITED列には、LMD のアイドル時間の累計が 100 分の 1 秒単位で表されます。

ビジー時間を導出するには、TIME_WAITEDの値を秒に換算します。17222 センチ秒は172.22 秒です。この時間が、LMD プロセスのアイドル時間(LMD プロセスのアイドル時間の割合)になります。この結果を 1 から引いた値が LMD プロセスのビジー時間の割合になります。これは、プロセスごとの CPU 使用率を指定するオペレーティング・システムのユーティリティと比較すると、非常に正確な推定値になります。

GES メッセージの統計処理メッセージの統計処理メッセージの統計処理メッセージの統計処理GES は、直接またはフロー制御を使用して、GCS および GES のメッセージを送信します。どちらの方法でも、GES は各メッセージにチケットというマーカーを付けます。各 GES のチケット割当てには制限があります。ただし、GES はチケットを無期限に再使用できます。

LMS プロセスは、LMD プロセスとともに、フロー制御メッセージ機能を管理します。LMSは、使用可能なチケットがなくなるまで、リモート・インスタンスにメッセージを送信します。チケットがなくなると、未処理メッセージの処理が終了して使用可能なチケットの数が増加するまで、フロー制御キューの中で待機する必要があります。

注意注意注意注意 : スナップショットを開始および終了させて、正確な計算を行ってください。

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-21

Page 134: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

チケットの数を制限することによって、負荷が大きいインスタンス間通信中に 1 つのノードから別のノードへ過剰なメッセージ送信が行われることを防止できます。また、負荷が小さい他のノードがあるにもかかわらず、リモート一貫性読込みブロック要求の負荷が大きいノードがクラスタ全体のメッセージ・リソースの制御権限を得ることも防止できます。

V$GES_STATISTICSビューには、メッセージ・アクティビティに関する次の統計情報が含まれます。

� messages sent directly

� messages flow controlled

� messages sent indirectly

� messages received

� flow control messages sent

� flow control messages received

GES メッセージの統計の分析手順メッセージの統計の分析手順メッセージの統計の分析手順メッセージの統計の分析手順次の手順に従って、V$GES_STATISTICSビューのメッセージの統計を取得および分析します。

1. 次の構文を使用して、V$GES_STATISTICSビューを問い合せます。

SELECT * FROM V$GES_STATISTICS;

次のように出力されます。

STATISTIC# NAME VALUE ---------- ---------------------------------------------- ---------- 0 messages sent directly 140019 1 messages flow controlled 1211 2 messages sent indirectly 9485 3 messages received 155287 4 flow control messages sent 0 5 flow control messages received 0 6 dynamically allocated enqueues 0 7 dynamically allocated resources 0 8 gcs msgs received 154079 9 gcs msgs process time(ms) 192866 10 ges msgs received 1198

6-22 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 135: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

11 ges msgs process time(ms) 355 12 msgs causing lmd to send msgs 256 13 lmd msg send time(ms) 0 14 gcs side channel msgs actual 1304 15 gcs side channel msgs logical 130400 16 gcs pings refused 68 17 gcs writes refused 3 18 gcs error msgs 0 19 gcs out-of-order msgs 30 20 gcs immediate (null) converts 1859 21 gcs immediate cr (null) converts 5 22 gcs immediate (compatible) converts 38 23 gcs immediate cr (compatible) converts 5 24 gcs blocked converts 49570 25 gcs queued converts 159 26 gcs blocked cr converts 124860 27 gcs compatible basts 0 28 gcs compatible cr basts 0 29 gcs cr basts to PIs 0 30 dynamically allocated gcs resources 0 31 dynamically allocated gcs shadows 0 32 gcs recovery claim msgs actual 0 33 gcs recovery claim msgs logical 0 34 gcs write request msgs 17 35 gcs flush pi msgs 7 36 gcs write notification msgs 0 37 rows selected.

ブロック・モード変換のタイプ別分析ブロック・モード変換のタイプ別分析ブロック・モード変換のタイプ別分析ブロック・モード変換のタイプ別分析この項では、3 つのビューの出力を分析し、ブロック・モード変換の量をタイプ別に明確にする方法を説明します。この項で説明する作業およびビューは次のとおりです。

� V$LOCK_ACTIVITY ビューを使用したブロック・モード変換の分析

� V$CLASS_CACHE_TRANSFER ビューを使用したブロック・クラス別ブロック・モード変換の識別

� V$CACHE_TRANSFER ビューを使用したホット・オブジェクトの識別

注意注意注意注意 : V$GES_STATISTICSの出力情報は、オラクル社カスタマ・サポート・センターでデバッグを行うために必要な場合があります。

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-23

Page 136: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

V$LOCK_ACTIVITY ビューを使用したブロック・モード変換の分析ビューを使用したブロック・モード変換の分析ビューを使用したブロック・モード変換の分析ビューを使用したブロック・モード変換の分析V$LOCK_ACTIVITYビューには、インスタンスの存続期間中に発生したブロック・モードの下位変換および上位変換の数が示されます。X-to-N または X-to-S の下位変換は、別のインスタンスが現在排他モードで保持しているブロックを変更しようとしたためにブロック・モードが下位変換された回数を示します。

V$CLASS_CACHE_TRANSFER ビューを使用したブロック・クラス別ビューを使用したブロック・クラス別ビューを使用したブロック・クラス別ビューを使用したブロック・クラス別ブロック・モード変換の識別ブロック・モード変換の識別ブロック・モード変換の識別ブロック・モード変換の識別V$CLASS_CACHE_TRANSFERビューには、ブロック・モード変換アクティビティが示されます。

� データ・ブロック

� セグメント・ヘッダー

� エクステント・ヘッダー

� UNDO ブロック

共有ディスク・アーキテクチャを使用すると、X-to-N または X-to-S の下位変換を行ってもディスク書込みの強制実行が発生しないため、FORCED_WRITES列は常に 0(ゼロ)です。

V$CACHE_TRANSFER ビューを使用したホット・オブジェクトの識別ビューを使用したホット・オブジェクトの識別ビューを使用したホット・オブジェクトの識別ビューを使用したホット・オブジェクトの識別V$CACHE_TRANSFERビューは、ホット・ブロックおよびホット・オブジェクトを識別する場合に有効です。

3 つのビューすべてが、異なるレベルの詳細を示します。V$LOCK_ACTIVITYビューを監視して、Real Application Clusters 全体の作業負荷プロファイルを生成します。V$LOCK_ACTIVITYビューの情報を使用して、ブロック・モード変換が発生する割合を記録します。

詳細を取得するには、V$CLASS_CACHE_TRANSFERビューを使用して、ブロック・モード変換が発生しているブロックのタイプを識別します。そのクラスを識別した後、V$CACHE_TRANSFERビューを使用して、特定の表または索引、および多くのブロック・モード変換アクティビティが発生しているファイル番号およびブロック番号の詳細を取得します。

応答時間またはスループット要件が満たされない場合は、通常、V$LOCK_ACTIVITYビュー、V$CLASS_CACHE_TRANSFERビュー、V$CACHEビュー、V$CACHE_TRANSFERビューまたは V$FILE_CACHE_TRANSFERビューを調べます。さらに、次のものも調べます。

� V$SYSSTAT。トランザクションごとのリソース要求の増加を識別します。

� V$SYSSTEM_EVENT。トランザクションごとのグローバル・キャッシュ・リソースまたは一貫性読込みサーバー要求の待機時間の増加を識別します。

6-24 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 137: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

� 第 5 章で説明した、完了したグローバル作業およびローカル作業。パフォーマンスの割合に大きい変更があるかどうかを確認します。

通常、アプリケーション・プロファイルおよび作業割合の変更によって、前述のビューを使用した分析の詳細が保証されます。既存のアプリケーションのパフォーマンス問題の診断とは別に、これらのビューは、アプリケーションの設計時、またはパーティション化方法の決定時に有効です。

Real Application Clusters のラッチ統計の分析のラッチ統計の分析のラッチ統計の分析のラッチ統計の分析ラッチは、SGA のデータ構造を保護する下位レベルのロック・メカニズムです。V$LATCHビューおよび V$LATCH_MISSESビューを使用して、GCS 内のラッチ競合を監視します。これらのビューは、特定のラッチ、そのラッチの統計、およびそのラッチが取得されたコード内の位置に関する情報を示します。

通常の操作では、ラッチの値の統計には制限があります。複数のラッチによって、あるレイヤーでのパフォーマンスがわずかに向上する場合があります。多くの場合、次のどちらかまたは両方が原因でラッチの競合が高くなり、パフォーマンスが低下します。

� さらに高レベルなパフォーマンスの問題または適切にチューニングされていないシステム

� Oracle 内部の非効率性またはパフォーマンス上のエラー

ラッチ競合を識別するには、次の手順に従います。ただし、これらの統計を定期的に監視し、ラッチ問題のみに基づく結果を導出することはお薦めしません。

ほとんどの場合、ラッチ競合が実際のパフォーマンス問題になることはありません。一方、latch free 待機イベントの TIME_WAITED値が非常に大きく、V$SYSTEM_EVENTビューの中で 長時間を示した場合は、これらの手順で得る情報を記録しておきます。さらに、この情報を収集しておくと、オラクル社カスタマ・サポート・センターまたはオラクル社の開発担当に問い合せるときに有効な場合があります。

ラッチ統計の分析手順ラッチ統計の分析手順ラッチ統計の分析手順ラッチ統計の分析手順次の手順に従って、ラッチ、Real Application Clusters、GCS 関連および GES 関連の統計を分析します。

1. 次の構文を使用して、V$LATCHビューを問い合せます。

SELECT NAME, GETS, MISSES, SLEEPS FROM V$LATCH;

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-25

Page 138: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters およびキャッシュ・フュージョンを監視するための統計

2. 出力で misses に対する sleeps の割合が高い場合(通常、割合が 2 以上の場合、パフォーマンスの問題を示します)、スリープが発生している場所を特定してください。そのためには、V$LATCH_MISSESビューに対して次の問合せを実行します。

SELECT PARENT_NAME, WHERE, SLEEP_COUNTFROM V$LATCH_MISSESORDER BY SLEEP_COUNT DESC;

次のように出力されます。

V$LATCHおよび V$LATCH_MISSESの出力を基に、次の手順に従います。

3. 次の式で、この項の手順 1 の V$LATCH出力を基に、misses に対する gets の割合を計算します。

misses の数値が大きい場合、通常は同じリソースの競合があることを表します。割合の許容範囲は、90 ~ 95% です。

PARENT_NAME WHERE SLEEP_COUNT

------------------- -------------------- ------------

ges resource hash list kjrrmas1: lookup master n 39392

cache buffers chains kcbgtcr: kslbegin 27738

library cache kglhdgn: child: 15408

shared pool kghfnd: min scan 6876

cache buffers chains kcbrls: kslbegin 2124

shared pool kghalo 1667

ges process parent kjucll: delete lock from 1464

7 rows selected.

gets

misses

6-26 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 139: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

V$SYSTEM_EVENT ビューを使用したパフォーマンス問題の識別

4. この項の手順 1 の V$LATCH_MISSES出力を基に、misses に対する sleeps の割合を分析します。この割合は、プロセスがラッチをすぐに取得できないときに、そのプロセスがスリープ状態になる頻度を示します。

割合が 2 であれば、misses のたびに、プロセスがラッチを実際に取得する前に、2 回取得しようとしたことを意味します。misses に対する sleeps の数が大きい場合は、通常、プロセス・スケジュールの遅延またはオペレーティング・システムの作業負荷が大きいことを表します。また、1 つのリソースに対する内部の非効率性または同時実行性が高いことも表します。たとえば、多くのリソースが同時にオープンされた場合、プロセスはリソース・ラッチを待機する必要があります。

V$LATCH_MISSESビューでは、ラッチを取得する関数が WHERE列に示されます。この情報は、内部パフォーマンス問題を判断する場合に有効です。通常、長期間スリープ状態であったラッチは、V$SESSION_WAITビューまたは V$SYSTEM_EVENTビューのlatch free 待機イベントのカテゴリに示されます。

次の項では、V$SYSTEM_EVENTビューの使用方法をさらに詳しく説明します。

V$SYSTEM_EVENT ビューを使用したパフォーマンス問題の識別ビューを使用したパフォーマンス問題の識別ビューを使用したパフォーマンス問題の識別ビューを使用したパフォーマンス問題の識別V$SYSTEM_EVENTビューには、キャッシュ・フュージョンおよび Real Application Clustersイベントに関するデータが表示されます。プロセスが も長時間待機したイベントを識別するには、DESCEND(DESC)キーワードを使用して、V$SYSTEM_EVENTビューのTIME_WAITED列を問い合せます。TIME_WAITED列には、各システム・イベントの待機時間の合計が示されます。

待機イベントの順序リストを作成すると、パフォーマンスのボトルネックを簡単に特定できます。各 COUNTは、コンテキストの非強制スイッチングを示します。TIME_WAIT値は、プロセスが特定のシステム・イベントを待機した時間の累計です。TOTAL_TIMEOUT列およびAVERAGE_WAIT列の値には、システム効率に関する追加情報が表示されます。

第 5 章で説明したとおり、TOTAL_WAITS列および TIME_WAITED列の値の合計を、トランザクション数で割ることをお薦めします。トランザクションは、保険の見積り、注文入力などのビジネス・トランザクションとして定義できます。または、予想に従って、ユーザー・コミットまたは実行に基づいて、これらのトランザクションを定義できます。

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-27

Page 140: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

V$SYSTEM_EVENT ビューを使用したパフォーマンス問題の識別

目標は、トランザクション応答時間に も影響するイベントの種類を判断することです。一般に、次の式で計算されます。

このため、合計待機時間は、次のような待機時間のサブコンポーネントに分割できます。ここで、tm は待機時間です。

個別のイベントを追加し、各イベントの待機時間の割合を観察することによって、合計待機時間を導出する場合にも有効です。これによって、トランザクション応答時間の主なコスト要因を導出できます。待機の割合が も大きい時間を削減することによって、応答時間にも大きい効果が得られます。

V$SYSTEM_EVENT のののの Real Application Clusters イベントイベントイベントイベントV$SYSTEM_EVENT出力に表示される次のイベントは、Real Application Clusters イベントの待機を表します。

� global cache cr request

� library cache pin

� buffer busy due to global cache

� global cache busy

� global cache open x

� global cache open s

� global cache null to x

� global cache s to x

� global cache null to s

response time

number of transactions=

CPU time

number of transactions+

wait time

number of transactions

total wait time

number of transactions=

(db file sequential read tm)

number of transactions+ + . . .

(global cache cr request tm)

number of transactions

6-28 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 141: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

V$SYSTEM_EVENT ビューを使用したパフォーマンス問題の識別

サーバー間の調整リソース関連のイベントサーバー間の調整リソース関連のイベントサーバー間の調整リソース関連のイベントサーバー間の調整リソース関連のイベントパフォーマンス問題は Real Application Clusters のサーバー間の調整処理に関連している場合があるため、前述のイベント以外のイベントも監視できます。たとえば、次のイベントです。

� Row cache locks

� Enqueues

� Library cache pins

� DFS lock handle

インスタンス間のパフォーマンス・チューニングのまとめインスタンス間のパフォーマンス・チューニングのまとめインスタンス間のパフォーマンス・チューニングのまとめインスタンス間のパフォーマンス・チューニングのまとめグローバル・キャッシュ・イベントの待機時間が他の種類の待機時間に比べて長い場合は、V$SYSSTATの統計およびオペレーティング・システムの Performance Monitor を使用して、待機時間の増加、競合、またはシステムに過剰な作業負荷がないかどうかを確認してください。global cache busy または buffer busy waits の値が大きい場合は、バッファ・キャッシュ内で競合が増加していることを表します。

row cache lock、enqueues および library cache pin の各行の統計に示されるとおり、非バッファ・キャッシュ・リソースの待機によって過剰な待機時間が発生している場合は、V$ROWCACHEビューおよび V$LIBRARYCACHEビューで Real Application Clusters 関連の問題を監視します。特に、これらのビューの DLM 列の値を調べます。

Real Application Clusters 問題は、通常、適切に管理されていない領域パラメータまたはキャッシュされていない順序番号によって発生します。そのような場合は、行キャッシュ・ロックおよびエンキューに対する待機がプロセスに発生し、V$ROWCACHEビューには、特定のディクショナリ・キャッシュに対する過剰な競合が示されます。

注意注意注意注意 : データ・ブロック・アドレスのロックが発生し、競合の程度が高い OLTP システムでは、global cache waits イベントが合計待機時間の合計に対して高い割合を示すことは普通です。

Real Application Clusters およびインスタンス間パフォーマンスのチューニング 6-29

Page 142: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

V$SYSTEM_EVENT ビューを使用したパフォーマンス問題の識別

6-30 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 143: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

第第第第 IV部部部部

Oracle Enterprise Managerを使用したを使用したを使用したを使用した

Real Application Clustersデータベースのデータベースのデータベースのデータベースの監視およびチューニング監視およびチューニング監視およびチューニング監視およびチューニング

第 IV部では、Oracle Enterprise Managerを使用して、Real Application Clustersデータベースのパフォーマンスを監視およびチューニングする方法について説明します。 第 IV部に含まれる章は、次のとおりです。

� 第 7章「Oracle Performance Managerを使用したパフォーマンスの監視」

Page 144: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:
Page 145: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Oracle Performance Manager を使用したパフォーマンスの

7

Oracle Performance Manager を使用したを使用したを使用したを使用した

パフォーマンスの監視パフォーマンスの監視パフォーマンスの監視パフォーマンスの監視

この章では、Oracle Real Application Clusters 用の Oracle Performance Manager のパフォーマンス・チャートおよびチューニング・チャートについて説明します。チャートを表示するには、Oracle Performance Manager をインストールおよび構成する必要があります。この章では、Real Application Clusters 固有の Oracle Performance Manager の機能についてのみ説明します。『Oracle Enterprise Manager Oracle Standard Management Pack スタート・ガイド』に記載されている一般的な情報の補足としてお読みください。

内容は次のとおりです。

� Oracle Performance Manager の概要

� Oracle Performance Manager の起動

� チャートの表示

参照参照参照参照 :

� Oracle Performance Manager のインストールの詳細は、『Oracle9i Real Application Clusters インストレーションおよび構成』を参照してください。

� これらのチャートに表示される統計およびその解釈方法の詳細は、『Oracle9i データベース・パフォーマンス・ガイドおよびリファレンス』を参照してください。

� これらのチャートのフィールドおよびそれが導出される V$ ビューの詳細は、『Oracle9i データベース・リファレンス』を参照してください。

� Oracle Enterprise Manager 固有のチャートおよび統計については、『Oracle Enterprise Manager 開発者ガイド』を参照してください。

監視 7-1

Page 146: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Oracle Performance Manager の概要

Oracle Performance Manager の概要の概要の概要の概要Real Application Clusters データベースのチューニング情報およびパフォーマンス情報は、V$固定ビューという一連の動的パフォーマンス表に格納されています。各アクティブ・イイイインスタンスンスタンスンスタンスンスタンスには、それぞれ一連の固定ビューがあります。Oracle Performance Manager を使用して、グローバル動的パフォーマンス(GV$)・ビューを問い合せて、すべてのインスタンスから関連の V$ビュー情報を取り出すことができます。

Oracle Performance Manager は、取り出した情報を Real Application Clusters の様々な表形式やグラフ形式のパフォーマンス・チャートで表示します。統計は、クラスタ上で実行されているクラスタクラスタクラスタクラスタ・データベースのすべてのインスタンスの集計パフォーマンスを表します。統計は、個別のチャートに表示され、データ・ブロック ping、ロック・アクティビティ、ファイル I/O、セッション情報およびユーザー情報を含みます。また、Performance Manager を使用して、1 つのチャートで複数の重要な統計の概要を表示することもできます。

パフォーマンスの監視は、システムの可能性を十分に認識するうえで重要です。Real Application Clusters をピーク操作状態に維持するために、常に監視する必要があるいくつかの重要なパフォーマンス基準があります。Diagnostics Pack の一部である Oracle Performance Manager は、Oracle Enterprise Manager に使用可能なオプションです。これは、データベース管理者が重要なパフォーマンス基準を解析する場合に有効なパフォーマンス・データを獲得、計算および提示するために設計されたアプリケーションです。

Oracle Performance Manager は、Oracle Enterprise Manager の有無にかかわらず実行できます。Oracle Performance Manager をスタンドアロン製品として実行する場合、Oracle Enterprise Manager を構成する必要はありません。

表 7-1 に示すとおり、Real Application Clusters のパフォーマンス基準は、Oracle Performance Manager を使用して参照できるチャートにコンパイルされます。

7-2 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 147: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Oracle Performance Manager の概要

表表表表 7-1 パフォーマンス・チャートパフォーマンス・チャートパフォーマンス・チャートパフォーマンス・チャート

チャートチャートチャートチャート 説明説明説明説明

Total Ping チャート クラスタ・データベースのすべてのインスタンスの ping 件数を

表示します。

Global Cache Timeoutsチャート

3 つのタイムアウト統計および待機統計を表示します。

Global Cache CR Requestチャート

平均 global cache consistent read(CR)request time、global cache cr timeouts、およびグローバル・キャッシュ・サービス・グローバル・キャッシュ・サービス・グローバル・キャッシュ・サービス・グローバル・キャッシュ・サービス・

プロセスプロセスプロセスプロセス((((LMSn))))の使用率を表示します。

Global Cache Lock Convertチャート

クラスタ・データベースに対する global cache lock converts を表示します。

Instance Ping チャート ping 件数に も影響しているインスタンスを識別します。

Global Cache CR Timeouts by Instance チャート

クラスタ・データベースのすべてのインスタンスに対する

global cache consistent read(CR)timeouts を表示します。

Global Cache Freelist Waits by Insetance チャート

クラスタ・データベースのすべてのインスタンスに対するglobal cache freelist waits を測定します。

Global Cache CR Request by Instance チャート

クラスタ・データベースのすべてのインスタンスに対する

global cache consistent read(CR)requests を表示します。

Global Cache Lock Convert by Incetance チャート

クラスタ・データベースのすべてのインスタンスに対する row cache lock converts を表示します。

Ping by File チャート クラスタ・データベースのすべてのデータベース・ファイルに対する ping 件数を識別します。

File Ping by Insetanceチャート

クラスタ・データベースの各インスタンスから、特定のファイ

ルに対する ping 件数の合計を表示します。

Ping by Block Class チャート クラスタ・データベースのすべてのブロック・クラスに対するping 件数を表示します。

Ping by Object チャート クラスタ・データベース内のすべてのデータベース・オブジェクトに対する ping 件数を表示します。

Oracle Performance Manager を使用したパフォーマンスの監視 7-3

Page 148: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Oracle Performance Manager の概要

Object Ping by Instanceチャート

クラスタ・データベースの各インスタンスによる、特定のデータベース・オブジェクトに対する ping 件数を表示します。

Maxmum Ping by Blockチャート

も頻繁に ping されるブロック番号を表示します。

Library Cache Lock チャート クラスタ・データベース全体に対するライブラリ・キャッシュ・ロックの待機時間を表示します。

Library Cache Lock by Instance チャート

クラスタ・データベースのすべてのインスタンスに対するlibrary cache locks を表示します。

Row Cache Lock チャート クラスタ・データベースに対する row cache locks(データ・

ディクショナリの競合)を表示します。

Row Cache Lock by Instanceチャート

クラスタ・データベースのすべてのインスタンスに対する row cache locks を表示します。

Global Cache Current Block Request チャート

平均 global cache current block request time および平均 global cache current block serve time を表示します。

Global Cache Current Block Request by Instance チャート

Global Cache Current Block Rrequest チャートと同じ情報をイン

スタンスごとに表示します。

Global Cache Current Block Instance Activity チャート

クラスタ・データベースのすべてのインスタンスに対するglobal cache current block requests を表示します(インターコネインターコネインターコネインターコネ

クトクトクトクト経由で ping アクティビティを 大にするインスタンスを識

別します)。

File I/O Rate Defaultチャート

クラスタ・データベース内のすべてのファイルに対するphysical reads および physical writes の割合を表示します。

File I/O Rate by Objest Default チャート

クラスタ・データベース内のデータ・ファイルごとの読込みおよび書込みの割合を表示します。

File I/O Rate by Instance Default チャート

クラスタ・データベース内のインスタンスごとの読込みおよび書込みの割合を表示します。

Lock Activity Defaultチャート

クラスタ・データベースのすべてのインスタンスにおける、様々なロック・タイプすべてのロック・アクティビティの割合に関する統計を表示します。

Sessions Default チャート クラスタ・データベースに連結されたセッションおよびその関連情報を表示します。

Users Default チャート クラスタ・データベースにログインしたユーザー・セッションの合計数を表示します。

Users Per Instance Defaultチャート

各インスタンスのクラスタにログインしたユーザー数を表示します。

表表表表 7-1 パフォーマンス・チャート(続き)パフォーマンス・チャート(続き)パフォーマンス・チャート(続き)パフォーマンス・チャート(続き)

チャートチャートチャートチャート 説明説明説明説明

7-4 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 149: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

チャートの表示

Oracle Performance Manager の起動の起動の起動の起動Oracle Enterprise Manager コンソールコンソールコンソールコンソールを使用するには、次のコンポーネントを起動します。

� Oracle Intelligent Agent

� Oracle Performance Manager

チャートの表示チャートの表示チャートの表示チャートの表示チャートを表示するには、次の手順に従います。

1. 『Oracle9i Real Application Clusters インストレーションおよび構成』に記載されている基本的なナビゲーション手順に従います。

2. ナビゲータで、「Databases or Clusters Instance」から「Cluster Database」を展開します。図 7-1 に示すとおり、使用可能なチャートのリストが表示されます。

参照参照参照参照 : 詳細は、『Oracle9i Real Application Clusters インストレーションおよび構成』を参照してください。

Oracle Performance Manager を使用したパフォーマンスの監視 7-5

Page 150: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

チャートの表示

図図図図 7-1 チャートの展開チャートの展開チャートの展開チャートの展開

3. 「Oracle Clusters」オブジェクト・フォルダで、チャートを選択し、「Show Chart」をクリックします。

チャートが別のウィンドウに表示されます。

7-6 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 151: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

チャートの表示

統計チャートの使用統計チャートの使用統計チャートの使用統計チャートの使用この項では、今回のリリースで使用可能なチャートの使用方法について説明します。リリース 8.1.7 以下のソフトウェアを実行する場合は、次のチャートの様々なサブセットにアクセスできます。

Total Ping チャートチャートチャートチャートこのチャートは、クラスタ・データベースに対するディスク書込みの強制実行または ping件数を取得するために使用します。ping 件数を ping 率に変換する場合、指定されたしきい値制限を使用して、イベントが ping 率に対して定義されます。ping 率がこの制限を超えると、システムで過剰なディスク書込みの強制実行が発生していることを通知するために、イベントがトリガーされます。

Global Cache Timeouts チャートチャートチャートチャートこのチャートは、次のイベントに関する 3 つのタイムアウト統計および待機統計を表示します。

� global cache CR timeouts

� global cache convert timeouts

� global cache freelist waits

これらの 3 つの統計は、インターコネクト・ネットワークの負荷を識別するために使用されます。これらの統計の詳細は、Global cache CR timeouts by Instance チャート、Global Cache Convert Timeouts by Instance チャートおよび Global Cache Freelist Waits by Instanceチャートの説明を参照してください。

Global Cache CR Request チャートチャートチャートチャートこのチャートは、クラスタ・データベース全体に関する次の統計を ms(ミリ秒)単位で表示します。

� 平均 global cache CR request time

� global cache CR timeouts

� グローバル・キャッシュ・サービス・プロセス(LMS)の使用率

平均 CR request time は、global cache CR block receive time の合計を 10 倍した数を、global cache cr blocks received の合計で割った比率として定義されます。global cache block receive time は、一貫性読込み一貫性読込み一貫性読込み一貫性読込み要求を完了するためにかかった合計時間として定義されます。global cache CR blocks received は、ローカル・キャッシュからの CR ブロック要求を満たすことができなかったときに、他のインスタンスから受信した CR ブロックの件数として定義されます。global cache CR timeouts は、遅延が長く、タイムアウトした CR 要求を示します。グローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービス((((GCS))))の使用率は、global cache CR serve time の global cache current blocks served に対する比率として定義されます。これらの統

Oracle Performance Manager を使用したパフォーマンスの監視 7-7

Page 152: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

チャートの表示

計は、次のように定義されます。global cache CR block serve time は、LMS が CR ブロック要求を処理するためにかかった時間の累計を示します。各要求に対して、LMS が要求キューから要求を取り出した後、すぐに開始時間が記録されます。この間隔は、ブロックが送信された後に計算されます。global cache cr blocks served は、LMS が処理した、一貫性読込みブロックに対する要求の数です。

Global Cache Lock Convert チャートチャートチャートチャートこのチャートは、クラスタ・データベース全体における平均 global cache convert time および平均 global cache get time を ms(ミリ秒)単位で表示します。global cache gets は、インスタンスによってオープンされた新しいロックの件数として定義されます。global cache get time は、global cache get request の処理にかかったすべての待機時間を含む合計時間として定義されます。global cache converts は、インスタンスに対する既存のロックのロック変換件数として定義されます。global cache convert time は、global cache convert request の処理にかかったすべての待機時間を含む合計時間として定義されます。平均 convert timeは、global cache convert time の合計を 10 倍した数を、クラスタ・データベースにあるすべてのインスタンスの global cache converts の合計で割った比率として定義されます。平均get time は、global cache get time の合計を 10 倍した数を、クラスタ・データベースにあるすべてのインスタンスに対する global cache gets の合計で割った比率として定義されます。

Instance Ping チャートチャートチャートチャートこのチャートは、Total Ping チャートからのドリルダウンです。 も ping 件数に影響しているインスタンスを識別するために使用されます。特定の複数インスタンスが他のインスタンスより多くの ping を生成した場合、それらのインスタンス間に作業負荷の競合がある可能性があります。

Global Cache CR Timeouts by Instance チャートチャートチャートチャートこのチャートは、遅延が長く、タイムアウトした、一貫性読込み(CR)ブロックに対する要求の数を測定します。global cache CR timeouts の変化率がいずれかのインスタンスで 0を超える場合、IPC が高いか、インターコネクト・ネットワークが低速であるか、またはネットワーク・パケットが削除されていることを示します。これが発生すると、IPC 問題に関連する EM イベントが生成されます。

Global Cache Convert Timeouts by Instance チャートチャートチャートチャートこのチャートは、GCS でのインスタンスによるロック変換要求がタイムアウトした回数を表示します。これは、ディスク上の過剰な競合や I/O 作業負荷を測定する場合に有効です。global cache convert timeouts の変化率がいずれかのインスタンスで 0 を超える場合、ディスク上で過剰な I/O 作業負荷アクティビティが発生していることを示します。これが発生すると、ディスク問題やデッドロックなどの調査を求める警告が通知されます。

7-8 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 153: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

チャートの表示

Global Cache Freelist Waits by Insetance チャートチャートチャートチャートこのチャートは、解放可能なロックの使用率を測定します。global cache freelist waits の変化率がいずれかのインスタンスで 0 を超える場合、消費されたロックが LMS プロセスによって解放されたロックより多いことを示します。

Global Cache CR Request by Instance チャートチャートチャートチャートこのチャートは、Global Cache CR Request チャート内にある情報と同じ情報をインスタンスごとに表示します。このチャートと Global Cache CR Request チャートとの唯一の違いは、統計をクラスタ・データベース全体ではなく、インスタンスごとに読み込むことです。

Global Cache Lock Convert by Incetance チャートチャートチャートチャートこのチャートは、Global Cache Lock Convert チャート内にある情報と同じ情報をインスタンスごとに表示します。ここで、平均 convert time は、global cache convert time の合計を10 倍した数を、クラスタ・データベースにあるそれぞれのインスタンスの global cache converts の合計で割った比率として定義されます。同様に、平均 get time は、global cache get time の合計を 10 倍した数を、クラスタ・データベースにあるすべてのインスタンスのglobal cache gets の合計で割った比率として定義されます。

Ping by File チャートチャートチャートチャートこのチャートは、クラスタ・データベースのすべてのデータ・ファイルデータ・ファイルデータ・ファイルデータ・ファイルに対する ping の合計数を表示します。このチャートを使用して、ping 件数が 大のデータベース・ファイルを識別できます。これらのファイルを物理的に分散して、I/O 遅延を削減することを検討する必要があります。もう 1 つの選択肢は、アプリケーションをパーティション化して、ファイルに含まれるオブジェクトに対するローカル作業の割合を増加させ、過剰な ping を削減することです。

File Ping by Insetance チャートチャートチャートチャートこのチャートは、Ping by File チャートからのドリルダウンです。ping 件数が 大のファイルを識別する場合、このチャートを使用して、そのファイルの ping 件数に各インスタンスがどの程度影響しているかを判断できます。インスタンスを識別した後、このインスタンスが実行するノードノードノードノードにこのファイルの内容をローカライズして、ping を削減することを検討する必要があります。

Oracle Performance Manager を使用したパフォーマンスの監視 7-9

Page 154: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

チャートの表示

Ping by Block Class チャートチャートチャートチャートこのチャートは、クラスタ・データベースのすべてのインスタンスに対する、各ブロック・クラスに発生した ping の合計数を表示します。 も ping されているブロック・クラスを識別した後、V$PINGビューを使用して、特定の表または索引の詳細情報、および大量のロック変換アクティビティが発生しているファイル番号およびブロック番号を取得します。追加のドリルダウン・チャート( 上位層では参照できません)も使用可能です。これは、クラスタ・データベースの特定のインスタンスに対する、各ブロック・クラスで発生した pingの合計数を表示します。

Ping by Object チャートチャートチャートチャートこのチャートは、Instance Ping チャートからのドリルダウンとして表示されます。このチャートは、特定のファイル内のすべてのデータベース・オブジェクトに対する ping 件数を、クラスタ・データベース内の各インスタンスごとに表示します。ping 件数が 大のデータベース・オブジェクトは、ホット・スポットであり、パフォーマンス問題の原因であると考えられます。V$SQLAREAビューを問い合せて sql_text を取得し、これらのホット・スポット・オブジェクトにアクセスしているトランザクションを識別することをを検討する必要があります。トランザクションを識別したら、それらのトランザクションをシングル・インスタンスにバインドし、他のインスタンスからのクロス ping を削減することを検討する必要があります。もう 1 つの選択肢は、各トランザクションがパーティション化されたデータ範囲からデータを取得できるように、ハッシングを使用してこのオブジェクト内のデータをパーティション化することです。

Object Ping by Instance チャートチャートチャートチャートこのチャートは、Ping by Object チャートからのドリルダウンです。このチャートは、特定のデータベース・オブジェクトに影響している ping の合計数を、クラスタ・データベースのインスタンスごとに表示します。これは、特定のデータベース・オブジェクトに対してping 件数を も増加させているインスタンスを識別する場合に有効です。インスタンスを識別したら、このオブジェクト・データをインスタンスに対してローカルに使用可能にすることを検討する必要があります。

Maxmum Ping by Block チャートチャートチャートチャートこのチャートは、データベース・ファイル内の特定のデータベース・オブジェクトに対するも頻繁に ping されるブロック番号を表示します。 も頻繁に ping されるブロック番号

は、ホット・スポットであり、インスタンス間の競合の原因であると考えられます。ブロック番号を識別したら、これらのブロックに含まれる行の数を削減し、データを再分散することを検討する必要があります。これを行う 1 つの方法として、データベース・ブロックのサイズを小さくする方法があります。

Library Cache Lock チャートチャートチャートチャートこのチャートは、ライブラリ・キャッシュ・オブジェクトに対する待機時間を表示します。この待機時間は、カーソルの解析または無効化によって長くなる場合があります。Library

7-10 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 155: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

チャートの表示

Cache Lock は、クラスタ・データベース全体の DLM_LOCK_REQUESTS、DLM_PIN_REQUESTSおよび DLM_INVALIDATIONS統計を表示します。これらの統計は、次のとおり定義されます。DLM_LOCK_REQUESTS統計は、データベース・オブジェクトに対してロックが要求された回数を表します。DLM_PIN_REQUESTS統計は、データベース・オブジェクトに対して確保が要求された回数を表します。DLM_INVALIDATIONS統計は、他のインスタンスから受信した無効な ping の数を表します。

Library Cache Lock by Instance チャートチャートチャートチャートこのチャートは、Library Cache Lock チャートと同じ情報をインスタンスごとに表示します。重要な定義上の違いは、このチャートでは統計をクラスタ・データベース全体ではなく、インスタンスごとに読み込むことです。

Row Cache Lock チャートチャートチャートチャートこのチャートは、クラスタ・データベース全体に対する DLM_REQUESTS、DLM_CONFLICTS、および結果として DLM_CONFLICTSになった DLM_REQUESTSの割合を示します。これらは、ディクショナリの競合を分析する場合に有効です。DLM_REQUESTSは、DML 要求数を表します。ロックに対する DLM 要求は、各一貫性読込みブロック要求に対して発行されます。DLM_CONFLICTSは、DML ロック要求の競合数を表します。DLM競合は、インスタンスが要求したモードと競合するモード内の CR ブロックに対するロックを、他のインスタンスがすでに所有している場合に発生します。その割合は、DLM_CONFLICTSの合計数を、クラスタ・データベースのすべてのインスタンスに対するDLM_REQUESTSの合計数で割った比率として計算されます。

Row Cache Lock by Instance チャートチャートチャートチャートこのチャートは、Row Cache Lock チャートと同じ情報をインスタンスごとに表示します。重要な定義上の違いは、このチャートでは統計をクラスタ・データベース全体ではなく、インスタンスごとに読み込むことです。

Global Cache Current Block Request チャートチャートチャートチャートこのチャートは、クラスタ・データベース全体に対する平均 global cache current block request time および平均 global cache current block serve time を、ms(ミリ秒)単位で表示します。平均 global cache current block request time は、global cache current block receive time を 10 倍した数を、global cache current blocks received の合計で割った比率として定義されます。平均 global cache current block serve time は、global cache current block serve time を 10 倍した数を、処理された global cache current blocks served で割った比率として定義されます。

Oracle Performance Manager を使用したパフォーマンスの監視 7-11

Page 156: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

チャートの表示

Global Cache Current Block Request by Instance チャートチャートチャートチャートこのチャートは、Global Cache Current Block Request チャートと同じ情報をインスタンスごとに表示します。重要な定義上の違いは、このチャートでは統計をクラスタ・データベース全体ではなく、インスタンスごとに読み込むことです。

Global Cache Current Block Instance Activity チャートチャートチャートチャートこのチャートを使用して、インスタンスの ping がどのようにインターコネクト全体に分散されているかを判断できます。このチャートは、特定のインスタンスに対する global cache current block pin time、global cache current block flush time および global cache current block send time を、ms(ミリ秒)単位で表示します。これは、特定のインスタンスがローカル・キャッシュへのブロックの確保、ディスクへのブロックのフラッシュ、インターコネクト経由のブロックの送信に時間をかけすぎていないかなど、特定のインスタンスの過剰なping アクティビティの原因を特定する場合に有効です。

File I/O Rate Default チャートチャートチャートチャートこのチャートは、データベース内のすべてのファイルに対する physical reads およびphysical writes の割合を表示します。ドリルダウンして、インスタンス・レベルまたはファイル・レベルで同じ情報を取得できます。

File I/O Rate by Objest Default チャートチャートチャートチャートこのチャートは、データベース内のデータ・ファイルごとの読込みおよび書込みの割合を表示します。

File I/O Rate by Instance Default チャートチャートチャートチャートこのチャートは、データベース内のインスタンスごとの読込みおよび書込みの割合を表示します。

Lock Activity Default チャートチャートチャートチャートこのチャートは、クラスタ全体におけるすべてのタイプのロック・アクティビティの割合に関する統計を表示します。ドリルダウンして、インスタンス・レベルで特定のロック・タイプのロック・アクティビティ情報を取得できます。Oracle9i リリース 1(9.0.1)では、グローバル・キャッシュ・ロックの使用が簡単になり、ロック・アクティビティ・ヒストグラムを簡単に使用できます。

Sessions Default チャートチャートチャートチャートこのチャートは、クラスタ・データベースと連結されたセッションおよびその関連情報(イイイインスタンス名ンスタンス名ンスタンス名ンスタンス名、セッション ID、セッション・シリアル番号、プロセス ID、状態、ユーザー名など)を表示します。

7-12 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 157: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

チャートの表示

Users Default チャートチャートチャートチャートこのチャートは、アクティビティが生成されたかどうかに関係なく、クラスタ・データベースにログインしたユーザー・セッションの合計数を表示します。また、この情報は、インスタンスごとにも使用可能です。

Users Per Instance Default チャートチャートチャートチャートこのチャートは、各インスタンスにログインしたユーザー数を表示します。

Active Users チャートチャートチャートチャートこのチャートは、クラスタ・データベース上のアクティブ・ユーザーの合計数を表示します。

Active Users by Instance チャートチャートチャートチャートこのチャートは、クラスタ・データベースの各インスタンス上のアクティブ・ユーザーの合計数を表示します。

Clusters Data Block Ping by Instance チャートチャートチャートチャートこのチャートは、クラスタ・データベース内のインスタンスごとのブロック ping 数を表示します。

Oracle Performance Manager を使用したパフォーマンスの監視 7-13

Page 158: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

チャートの表示

7-14 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 159: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

第第第第 V 部部部部

Real Application Clusters のリファレンス情報のリファレンス情報のリファレンス情報のリファレンス情報

第 V 部では、Oracle Real Application Clusters のリファレンス情報を示します。第 V 部に含まれる章は、次のとおりです。

� 付録 A「マルチブロック・ロック割当ての構成(オプション)」

� 付録 B「Real Application Clusters データベースの設計の事例」

� 用語集

Page 160: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:
Page 161: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

マルチブロック・ロック割当ての構

A

マルチブロック・ロック割当ての構成マルチブロック・ロック割当ての構成マルチブロック・ロック割当ての構成マルチブロック・ロック割当ての構成

(オプション)(オプション)(オプション)(オプション)

この付録では、複数ブロックを処理するためのロックの構成方法について説明します。この付録は、グローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービス((((GCS))))およびグローバル・エンキュー・サーグローバル・エンキュー・サーグローバル・エンキュー・サーグローバル・エンキュー・サービスビスビスビス((((GES))))で実行されるように、Oracle Real Application Clusters のデフォルト・リソース制御スキームを上書きするまれな状況でのみ参照してください。内容は次のとおりです。

� GCS および GES のリソース制御メカニズムの上書き前の注意

� GCS 処理および GES 処理の上書きの判断

� GC_FILES_TO_LOCKS の設定

� GC_FILES_TO_LOCKS の設定に対する追加の考慮点

� データべース設計上の考慮点および空きリスト・グループ

� Real Application Clusters でのパラレル実行のチューニング

� Real Application Clusters の I/O 統計の分析

� 不適切な強制書込みの検出によるマルチブロック・ロック使用量の監視

� ロックの名前および書式

成(オプション) A-1

Page 162: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GCS および GES のリソース制御メカニズムの上書き前の注意

GCS およびおよびおよびおよび GES のリソース制御メカニズムの上書き前の注意のリソース制御メカニズムの上書き前の注意のリソース制御メカニズムの上書き前の注意のリソース制御メカニズムの上書き前の注意GCS および GES で実行されるリソース制御は上書きしないことをお薦めします。デフォルト・スキームは、ほぼすべての Real Application Clusters 環境で、ほとんどの種類のシステムに非常に優れたパフォーマンスを提供します。さらに、リリース 1(9.0.1)より前のロックを割り当てるには、追加の管理工程およびチューニング工程が必要です。そのため、この付録で示すようにデフォルト・スキームを使用する方が、デフォルトの方法を上書きするために必要な複雑なタスクを実行するよりも有効です。

GCS 処理および処理および処理および処理および GES 処理の上書きの判断処理の上書きの判断処理の上書きの判断処理の上書きの判断キャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョンは、ローカルにキャッシュされないデータのキャッシュ間転送を使用して、非常に優れたスケーラビリティおよびパフォーマンスを提供します。キャッシュ・フュージョンでは、インスタンスインスタンスインスタンスインスタンスがディスクからデータ・ブロックを読み込む前に、Oracle は別のインスタンスのキャッシュから、要求されたデータの取得を試みます。要求されたブロックが別のキャッシュに存在する場合、そのデータ・ブロックは、インターコネクインターコネクインターコネクインターコネクトトトトを介して保持側インスタンスから要求側インスタンスに転送されます。

Real Application Clusters のリソース制御スキームは、複数インスタンスによって変更されたデータの整合性を保証します。デフォルトでは、インスタンスのバッファ・キャッシュ内の各データ・ブロックは、GCS によって保護されています。GCS は、アクセス・モード、ロール、権限およびこれらのリソースの状態を追跡します。

まれに、1 つのファイル内の複数データ・ブロックを 1 つのロックで処理するマルチブロック・ロックを構成することで、GCS および GES を上書きする必要がある場合があります。ブロックが同じインスタンスから頻繁にアクセスされる場合、または同時読込みの共有モードなどの互換性のあるモードでブロックが複数ノードノードノードノードからアクセスされる場合、ロック構成によって、パフォーマンスが向上することがあります。

これを実行するには、GC_FILES_TO_LOCKSパラメータを設定し、特定のファイルで使用されるロックの数を指定します。また、パラメータの構文では、ファイル・グループへのロックの割当て、およびロックごとに処理される連続データ・ブロックの数が指定できます。GC_FILES_TO_LOCKSの値を無計画に使用すると、過剰なディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行などの、パフォーマンスを低下させる操作が行われる可能性があります。そのため、GC_FILES_TO_LOCKSは、次の場合のみに設定します。

� 読取り専用または読取りが主なファイルおよび表領域表領域表領域表領域

� 特定のファイルのデータが 1 つのインスタンス、または主に 1 つのインスタンスによって変更される、パーティション化されたデータ・アクセス

注意注意注意注意 : この付録は、データ・アクセス・パターンがほとんど読込みのみであるアプリケーションの場合など、例外的な場合にのみ参照してください。

A-2 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 163: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GCS 処理および GES 処理の上書きの判断

� 一時表領域、READ ONLYとマークされた表領域およびロールバック・セグメントロールバック・セグメントロールバック・セグメントロールバック・セグメントを含む表領域に対応付けられていないデータ・ファイル

ロックを使用する場合ロックを使用する場合ロックを使用する場合ロックを使用する場合各ファイルにリリース 1(9.0.1)より前のロックを複数使用すると、表 A-1 に示すようなデータに効果的です。

ロックを使用すると、異なるデータべース・ブロックを変更するインスタンス間で競合が発生することがあるため、より多くのインスタンス間キャッシュ管理アクティビティが発生する場合があります。不適切なディスク書込みの強制実行、または過剰なディスク書込みの強制実行を解決するには、現在ブロックにアクセスしているインスタンスのキャッシュから、いくつかのブロックを書き込む必要があります。

表表表表 A-1 ロックを使用する場合ロックを使用する場合ロックを使用する場合ロックを使用する場合

状況状況状況状況 理由理由理由理由

データが主に読取り専用の場合

少数のロックで、多くのブロックを処理できます。ロック・オペレーションもほとんど必要ありません。これらのロックは、別のインスタンスでデータを変更する必要がある場合のみ解放されます。ロックを割り当てると、読取り専用データのパラレル実行パラレル実行パラレル実行パラレル実行処理のパフォーマンスが向上します。データが厳密に読取り専用の場合、表領域を読取り専用として指定することを考慮する必要があります。

データを変更する可能性のあるインスタンスに従って、データをパーティション化できる場合

このパーティション化方法に従ってロック割当てを定義すると、インスタンスが、パーティション化されたロックの集合を保持できます。これによって、ロック・オペレーションの必要性が削減されます。

比較的少数のインスタンスの集合によって、多量のデータが変更される場合

ロック割当てによって、キャッシュされていないデータベース・ブロックへのアクセスが、パラレル・キャッシュ管理アクティビティなしで継続できます。ただし、これは、そのブロックが要求側インスタンスのキャッシュにすでにある場合にのみ有効です。

マルチブロック・ロック割当ての構成(オプション) A-3

Page 164: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GC_FILES_TO_LOCKS の設定

GC_FILES_TO_LOCKS の設定の設定の設定の設定データ・ファイルまたはデータ・ファイルの集合内のデータ・ブロックを処理するロックの数を指定するには、GC_FILES_TO_LOCKS初期化パラメータを設定します。この項の内容は次のとおりです。

� GC_FILES_TO_LOCKS 構文

� ロックの割当て例

� ブロッキング要素、エクステント割当ておよび空きリスト・グループ

GC_FILES_TO_LOCKS 構文構文構文構文GC_FILES_TO_LOCKSパラメータの構文では、ロックとファイルの関係を指定できます。このパラメータの構文は次のとおりです。

GC_FILES_TO_LOCKS="{file_list=#locks[!blocks] [EACH][:]} . . ."

項目の内容は次のとおりです。

file_list 次のように、単一のファイル、ファイルの範囲、またはファイルおよび範囲のリストを指定します。

fileidA[-fileidC][,fileidE[-fileidG]] ...

データ・ディクショナリ・ビュー DBA_DATA_FILESを問い合せて、ファイル名とファイル ID 番号の間で対応するファイルを検索します。

#locks file_listに割り当てるロックの数を設定します。

!blocks 各ロックによって処理される、連続するデータ・ブロックの数(ブロッキング要素)を指定します。

EACH #file_list内の各ファイルに割り当てるロックの数を、#locksに設定します。

注意注意注意注意 : すべてのインスタンスの GC_FILE_TO_LOCKSの値は同一である必要があります。また、GC_FILES_TO_LOCKSパラメータ構文の引用符内には、空白を使用しないでください。

A-4 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 165: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GC_FILES_TO_LOCKS の設定

!blocksのデフォルト値は 1 です。blocksを指定する場合、連続するデータ・ブロックは、#locksロックの各自によって処理されます。blocksの値を指定するには、「!」セパレータを使用します。主に blocksを指定し、EACHキーワードは指定しないで、複数のデータ・ファイルを処理するロックの集合を割り当てます。

空きリスト・グループの使用によって取得されるデータ・パーティション化との干渉を回避するには、必ず、!blocksに値を設定します。通常、エクステントを事前に割り当てる必要はありません。行が表に挿入され、新しいエクステントが割り当てられる場合、GC_FILES_TO_LOCKSの !blocksで指定された連続するブロックは、1 つのインスタンスに対応付けられた空きリスト・グループに割り当てられます。

ロックの割当て例ロックの割当て例ロックの割当て例ロックの割当て例初期化パラメータ・ファイル初期化パラメータ・ファイル初期化パラメータ・ファイル初期化パラメータ・ファイルに次の行を追加して、300 のロックをファイル 1 に、100 のロックをファイル 2 に割り当てることができます。

GC_FILES_TO_LOCKS = "1=300:2=100"

次のエントリによって、合計 1500 のロックが、ファイル 1、2 および 3 に 500 ずつ割り当てられます。

GC_FILES_TO_LOCKS = "1-3=500EACH"

対照的に、次のエントリでは、3 つのファイルに合計 500 のロックが割り当てられます。

GC_FILES_TO_LOCKS = "1-3=500"

次のエントリは、1000 の個別のロックを使用して、ファイル 1 を保護する必要があることを示します。ファイル内のデータは、25 の連続するロックごとに保護されます。

GC_FILES_TO_LOCKS = "1=1000!25"

データ・ファイルを AUTOEXTEND句で定義するか、またはALTER DATABASE... DATAFILE... RESIZE文を発行する場合は、ロック割当てを調整する必要がある場合もあります。

新しいデータ・ファイルを追加する場合、これらの新しいファイルに GCS のデフォルト制御を適用するかどうか、または GC_FILES_TO_LOCKS初期化パラメータを使用してロックを割り当てるかどうかを判断します。

マルチブロック・ロック割当ての構成(オプション) A-5

Page 166: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GC_FILES_TO_LOCKS の設定

次の例では、異なる方法を使用したロックへのブロックのマッピング、および複数のデータ・ファイルでの同じロックの使用方法を示します。

図図図図 A-1 データ・ブロックへのロックのマッピングデータ・ブロックへのロックのマッピングデータ・ブロックへのロックのマッピングデータ・ブロックへのロックのマッピング

例例例例 1 図 A-1 に、パラメータ値 GC_FILES_TO_LOCKS = "1=60:2-3=40:4=140:5=30"に対するロックへのブロックのマッピング例を示します。

図 A-1 に示すデータ・ファイル 1 では、60 のロックが、60 の倍数である 120 ブロックにマップされます。各ロックは 2 つのデータ・ブロックを処理します。

データ・ファイル 2 および 3 では、40 のロックが合計 160 ブロックにマップされます。1 つのロックは、データ・ファイル 2 では 1 つまたは 2 つのデータ・ブロックを、データ・ファイル 3 では 2 つまたは 3 つのデータ・ブロックを処理できます。したがって、1 つのロックが、この 2 つのデータ・ファイル全体の、3 つ、4 つまたは 5 つのデータ・ブロックを処理できます。

データ・ファイル 4 では、ロックの数とデータ・ブロックの数が同じであるため、各ロックは単一のデータ・ブロックにマップされます。

データ・ファイル 5 では、30 のロックが、30 の倍数でない 170 ブロックにマップされます。したがって、各ロックは 5 つまたは 6 つのデータ・ブロックを処理します。

図 A-1 で示したロックはそれぞれ、共有読込みモードまたは読込み排他モードのどちらかに保持されます。

データ・�ファイル4

データ・�ファイル5

140ブロック� 170ブロック 120ブロック

データ・�ファイル1

データ・�ファイル2

データ・�ファイル3

60ブロック 100ブロック

PCMロック241~270

PCMロック101~240

PCMロック�61~100

PCMロック1~60

ロックごとに�5または6ブロック�

ロックごとに�1ブロック�

ロックごとに�3、4または5ブロック�

ロックごとに�2ブロック�

A-6 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 167: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GC_FILES_TO_LOCKS の設定

例例例例 2 次のパラメータ設定では、データ・ファイル 1 に 500 のロックを、データ・ファイル2、3、4、10、11 および 12 にそれぞれ 400 のロックを、データ・ファイル 5 に 150 のロックを、データ・ファイル 6 に 250 のロックを、ファイル 7 ~ 9 にまとめて 300 のロックを割り当てます。

GC_FILES_TO_LOCKS = "1=500:2-4,10-12=400EACH:5=150:6=250:7-9=300"

この例では、(500 + (6 × 400) + 150 + 250 + 300) = 3600 で、合計 3600 のロックを割り当てます。さらに多くのデータ・ファイルを追加する場合は、これより多くのロックを指定できます。

例例例例 3 例 2 では、句「7-9=300」によって 300 のロックがまとめてデータ・ファイル 7、8 および 9 に割り当てられます。キーワード EACHは省略されています。これらのデータ・ファイルにそれぞれ 900 のデータ・ブロックがある場合、データ・ブロックの合計は 2700 となるため、各ロックは 9 つのデータ・ブロックを処理します。データ・ファイルが 300 の倍数であるため、9 つのロックは、各データ・ファイルで 3 つのデータ・ブロックを処理します。

例例例例 4 次のパラメータ値は、ファイル 1 ~ 3 にそれぞれ 200 のロックを、データ・ファイル 4に 50 のロックを、データ・ファイル 5、6、7 および 9 にまとめて 100 のロックを、データ・ファイル 8 と 10 の組合せに、連続する 50 のブロック・グループの 20 のロックを割り当てます。

GC_FILES_TO_LOCKS = "1-3=200EACH 4=50:5-7,9=100:8,10=20!50"

この例では、結合したデータ・ファイル 5、6、7 および 9 に割り当てられたロックは、各データ・ファイルにおいて 1 つ以上のデータ・ブロックを処理します。ただし、1 つのデータ・ファイルが、99 以下のデータ・ブロックを含む場合を除きます。データ・ファイル 5 ~7 がそれぞれ 500 のデータ・ブロックを含み、データ・ファイル 9 が 100 のデータ・ブロックを含む場合、各ロックは 16 のデータ・ブロックを処理します。この場合、データ・ファイル 9 で 1 つ、その他のデータ・ファイルでそれぞれ 5 つのデータ・ブロックが処理されます。または、データ・ファイル 9 が 50 のデータ・ブロックを含む場合は、ロックの半数が16 のデータ・ブロック(そのうちの 1 つはデータ・ファイル 9)を処理し、残りの半分のロックは 15 のデータ・ブロックのみ(データ・ファイル 9 にはなし)を処理します。

データ・ファイル 8 および 10 にまとめて割り当てられた 20 のロックは、50 のデータ・ブロックの連続するグループを処理します。データ・ファイルが 50 の倍数のデータ・ブロックを含み、かつデータ・ブロックの合計数が 20 × 50(つまり 1000)以下の場合、各ロックは、データ・ファイル 8 またはデータ・ファイル 10 のいずれかのデータ・ブロックを処理します。これは、ロックがそれぞれ 50 の連続するデータ・ブロックを処理するためです。データ・ファイル 8 のサイズが、50 のデータ・ブロックの倍数でない場合、1 つのロックは、両方のファイルのデータ・ブロックを処理する必要があります。データ・ファイル 8 および 10 のサイズが、1000 のデータ・ブロックを超える場合、いくつかのロックは、50 のデータ・ブロックのグループを 2 つ以上処理する必要があります。このグループは、1 つのデータ・ファイルにあるとは限りません。

マルチブロック・ロック割当ての構成(オプション) A-7

Page 168: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GC_FILES_TO_LOCKS の設定

例例例例 5 GC_FILES_TO_LOCKS=「1-2=4」

この例では、ファイル 1 および 2 に対して 4 つのロックが指定されています。したがって、各ロックが処理するブロックの数は 8((16+16)/4)です。これらのブロックは連続していません。

図図図図 A-2 GC_FILES_TO_LOCKS の例の例の例の例 5

例例例例 6 GC_FILES_TO_LOCKS=「1-2=4!8」

この例では、ファイル 1 および 2 に対して 4 つのロックが指定されています。ロックは、8つの連続するブロックを処理する必要があります。

図図図図 A-3 GC_FILES_TO_LOCKS の例の例の例の例 6

ファイル2

ファイル1

ロック1

ロック2

ロック3

ロック4

ファイル2

ファイル1

ロック1

ロック2

ロック3

ロック4

A-8 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 169: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GC_FILES_TO_LOCKS の設定

例例例例 7 GC_FILES_TO_LOCKS=「1-2=4!4EACH」

この例では、ファイル 1 に対して 4 つのロック、およびファイル 2 に対しても 4 つのロックが指定されています。ロックは、4 つの連続するブロックを処理する必要があります。

図図図図 A-4 GC_FILES_TO_LOCKS の例の例の例の例 7

例例例例 8 GC_FILES_TO_LOCKS=「1=4:2=0」

この例では、ファイル 1 が、4 つのロックでマルチブロック・ロック制御されています。ファイル 2 には、ロックは割り当てられていません。

図図図図 A-5 GC_FILES_TO_LOCKS の例の例の例の例 8

ファイル2

ファイル1 ロック1

ロック2

ロック3

ロック4

ロック5

ロック6

ロック7

ロック8

ファイル2

ファイル1

ロック1

ロック2

ロック3

ロック4

マルチブロック・ロック割当ての構成(オプション) A-9

Page 170: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GC_FILES_TO_LOCKS の設定

ブロッキング要素、エクステント割当ておよび空きリスト・グループブロッキング要素、エクステント割当ておよび空きリスト・グループブロッキング要素、エクステント割当ておよび空きリスト・グループブロッキング要素、エクステント割当ておよび空きリスト・グループロック処理があるオブジェクトに割り当てられた連続ブロックのエクステントを整列させるには、GC_FILES_TO_LOCKSの !blocksオプションを使用します。!blocksの表記法を使用すると、連続したデータ・ブロックは、1 つのロックで処理されます。次に例を示します。

GC_FILES_TO_LOCKS="12=1000!25"

この例では、ファイル 12 に 1000 のロックを 25 の周期性で割り当てます。つまり、1 つのロックで 25 の連続したブロックを処理します。

表のエクステント定義(INITIAL EXTENT、 NEXT EXTENT)が !blocksに対応する場合、この例では 25 の連続したブロックが、エクステント境界と一致するロックによって処理されます。マルチブロック・ロックによって処理されるすべてのブロックは、同じエクステントに存在します。

これは、空きリスト・グループを使用する場合に重要です。空き領域にブロックが存在しない場合、Oracle は新しいエクステントを割り当てます。このエクステントのブロックは、特定の空きリスト・グループに割り当てられます。ロックを、正しく構成しないと、別のインスタンスで使用される空きリスト・グループに存在する別のエクステントのブロックも処理される場合があります。これは、不適切なディスク書込みの強制実行の原因になります。

ブロッキング要素をこの項の説明どおりに使用しないと、同じロックが、異なる空きリスト・グループに割り当てられた別々のエクステントのブロックを処理する可能性があるため、追加のオーバーヘッドが発生します。この状況を空きリスト・グループによって回避する場合があります。

ロック境界へのブロックの動的割当てロック境界へのブロックの動的割当てロック境界へのブロックの動的割当てロック境界へのブロックの動的割当て拡張に対応するには、エクステントを事前に割り当てるより、空きリスト・グループに動的にブロックを割り当てる方が効果的です。

また、!blocksオプションの GC_FILES_TO_LOCKSを使用して、ロック境界内の 高水位高水位高水位高水位標標標標から空きリストに、動的にブロックを割り当てることもできます。この方法で、セグメント・ヘッダーのすべての強制書込みが排除されるわけではありません。ただし、必要に応じてブロックが割り当てられるため、エクステントを事前に割り当てる必要がありません。

ロックはインスタンスが所有するため、ブロックはインスタンスごとに割り当てられます。このため、ブロックは空きリスト・グループに割り当てられます。インスタンス内では、ブロックは異なる空きリストに割り当てられることがあります。

この方法を使用すると、!blocks値を暗示的に割り当てるか、既存のロックで処理される新しいブロックの均衡化を保つことができます。後者を選択した場合、他のインスタンスに割当てを実行することによって、既存のロックに対する競合が発生する場合があります。

参照参照参照参照 : この項で説明する方法を使用する前に、4-11 ページの「エクステント事前割当ての例」を参照してください。

A-10 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 171: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GC_FILES_TO_LOCKS の設定

セグメントの最高水位標の移動セグメントの最高水位標の移動セグメントの最高水位標の移動セグメントの最高水位標の移動セグメントの 高水位標とは、セグメント内に割り当てられたブロックの数を制限する現行の制限のことです。エクステントを動的に割り当てる場合、 高水位標はロック境界にもなります。ロック境界と、エクステント内で一度に割り当てられるブロック数は、一致する必要があります。この値は、すべてのインスタンスに対して同一である必要があります。

図 A-6 に示すとおり、各ロック(!4)に 4 つのブロックがあるとします。ロックは、ブロックの内容が入力される前に割り当てられています。ロック 2 で保持されるデータ・ブロックD2 が一杯になり、4 つのブロックの別の範囲が割り当てられる場合、ロック境界内に収まるブロック数のみが割り当てられます。この場合、ブロック 7 および 8 も含まれ、これら両方のブロックは現在のロックによって保護されます。 高水位標が 8 の場合、インスタンス 2が一定範囲のブロックを割り当てると、4 つのブロック 9 ~ 12 のすべてが割り当てられ、ロック 3 によって処理されます。インスタンス 1 は、次にブロックを割り当てるとブロック13 ~ 16 を取得し、ロック 4 で処理されます。

図図図図 A-6 Oracle によるブロックの割当てに従って移動する最高水位標があるファイルによるブロックの割当てに従って移動する最高水位標があるファイルによるブロックの割当てに従って移動する最高水位標があるファイルによるブロックの割当てに従って移動する最高水位標があるファイル

例例例例 : この例では、GC_FILES_TO_LOCKSが、両方のインスタンスに対して次のように設定されていることを想定しています。

GC_FILES_TO_LOCKS = "1000!5"

ファイル・�ヘッダー��

セグメント�・ヘッダー�

空き�リスト・�グループ1

1 2 3 4 5 6 7 8データ�データ�データ�データ�空き�

リスト・�グループ2

ロック1 ロック2

9 10 11 12データ�データ�データ�データ�

ロック3

移動後の�最高水位票�

初期の�最高水位票�

マルチブロック・ロック割当ての構成(オプション) A-11

Page 172: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GC_FILES_TO_LOCKS の設定

EACHオプションが指定されると、file_list内の各ファイルに、#locksの数のロックが割り当てられます。各ファイル内では、!blocksによって、各ロックが処理する連続データ・ブロック数が指定されます。

図 A-7 に、セグメントの増大に使用される増分プロセスを示します。

� ステージ 1 では、5 つのデータ・ブロックを割り当て、ロック 2 で保護されたインスタンス 1 のエクステントを示します。

� ステージ 2 では、さらに 5 つのデータ・ブロックを割り当て、ロック 3 で保護されたインスタンス 2 を示します。

� ステージ 3 では、さらにもう 5 つのデータ・ブロックを割り当て、ロック 4 で保護されたインスタンス 1 を示します。

この方法では、インスタンス 1 のユーザー A がブロック 10 を使用している場合、インスタンス 1 および 2 の他のユーザーは、ロック 2 で処理される範囲のブロック(ブロック 6 ~10)にはアクセスできません。

A-12 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 173: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GC_FILES_TO_LOCKS の設定

図図図図 A-7 エクステント内でのブロックの割当てエクステント内でのブロックの割当てエクステント内でのブロックの割当てエクステント内でのブロックの割当て

インスタンス1 インスタンス2セグメントA

インスタンス1 インスタンス2

空きリスト・�グループ1 空きリスト・�

グループ2

割当てB:

セグメントA

最高�水位票2

インスタンス1 インスタンス2セグメントA

空きリスト・�グループ1

2

1

3

5ブロック�

割当てC: 5ブロック

最高�水位票3

最高�水位票1

割当てA: 5ブロック�

空きリスト・�グループ1

空きリスト・�グループ2

空きリスト・�グループ2

ロック1

ロック2

マルチブロック・ロック割当ての構成(オプション) A-13

Page 174: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

GC_FILES_TO_LOCKS の設定に対する追加の考慮点

GC_FILES_TO_LOCKS の設定に対する追加の考慮点の設定に対する追加の考慮点の設定に対する追加の考慮点の設定に対する追加の考慮点Real Application Clusters で GC_FILES_TO_LOCKSを設定する際には、さらに考慮する必要がある項目があります。たとえば、GC_FILES_TO_LOCKSを設定すると、監視によるオーバーヘッドが増大し、データべースが増大する場合やファイルを追加する場合に、頻繁にパラメータを調整する必要があります。また、GC_FILES_TO_LOCKSの設定を動的に変更することはできません。この設定を変更するには、インスタンスを停止して設定を変更し、すべてのインスタンスを再起動する必要があります。さらに、この項で説明する次のことを考慮する必要があります。

� データ・ファイルの拡張または追加

� GC_FILES_TO_LOCKS 設定に含めないファイル

データ・ファイルの拡張または追加データ・ファイルの拡張または追加データ・ファイルの拡張または追加データ・ファイルの拡張または追加継続的に実行しているサイトは、パラメータ値を調整するために停止することはできません。したがって、GC_FILES_TO_LOCKSパラメータを使用する場合、増大またはファイルの拡張に備えて領域を確保しておく必要があります。

また、読取り専用ファイルや主に読取り専用ファイルなどの、あまり増大しないファイルでのロックの使用方法を慎重に検討する必要もあります。複数ブロックに割り当てるロック数を減らすことで、パフォーマンスが向上する場合もあります。ただし、ロック数の減少によって予想される CPU およびメモリー使用の節約よりも、管理オーバーヘッドの方が大きい場合、GCS および GES のリソース制御スキームを使用してください。

GC_FILES_TO_LOCKS 設定に含めないファイル設定に含めないファイル設定に含めないファイル設定に含めないファイル次の種類のファイルは、GC_FILES_TO_LOCKSパラメータ・リストに含めないでください。

� ロールバック・セグメントを含むファイル

� 一時表領域の一部であるファイル

� 明示的に READ ONLYに設定される、表領域内の読取り専用データを格納したファイル。例外として、表領域が予備ロックに対して競合する必要がないことを保証するために、単一のロックを割り当てることができます(このロックの設定は必須ではありません)。

A-14 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 175: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

データべース設計上の考慮点および空きリスト・グループ

データべース設計上の考慮点および空きリスト・グループデータべース設計上の考慮点および空きリスト・グループデータべース設計上の考慮点および空きリスト・グループデータべース設計上の考慮点および空きリスト・グループ複数ノードから表にデータが頻繁に挿入され、その表がパーティション化されていない場合は、空きリスト・グループを使用してパフォーマンスの問題点を回避できます。空きリスト・グループは、表の空き領域管理に関連するデータ構造を、個々のインスタンスが使用できるように分割された集合に分離します。ただし、GCS および GES を上書きする場合、次の項で説明するとおり、空きリストへのロックの割当てを検討する必要があります。

ロックと空きリストとの対応付けロックと空きリストとの対応付けロックと空きリストとの対応付けロックと空きリストとの対応付け表の各エクステントが個別のデータ・ファイルにある場合は、GC_FILES_TO_LOCKSパラメータを使用して、ロックの特定の範囲を各エクステントに割り当てることができます。これによって、ロックの各集合が、空きリストの 1 つのグループのみに対応付けられます。

図 A-8 に、個別ファイル内の複数のエクステントを示します。GC_FILES_TO_LOCKSパラメータは、ファイル 8 および 10 に 10 のロック、ファイル 9 および 11 にも 10 のロックを割り当てます。エクステント A および C は同じ空きリスト・グループに存在し、エクステント B および D は別の空きリスト・グループに存在します。ロックの 1 つの集合はファイル 8および 10 に対応付けられ、ファイル 9 および 11 には別の集合が対応付けられます。ファイル 8 と 10、またはファイル 9 と 11 のような、同じ空きリスト・グループ内のファイルに対してロックを分割する必要はありません。

図図図図 A-8 エクステントおよび空きリスト・グループエクステントおよび空きリスト・グループエクステントおよび空きリスト・グループエクステントおよび空きリスト・グループ

この例では、書込み同様、読込みに対しても完全なパーティション化を想定しています。2つ以上のインスタンスがブロックを更新する場合、強制書込みおよび強制読込みを 小限に抑えるために、各ファイルに 2 つ以上のロックを設定することが理想的です。これは、共有ロックの場合でも、別のインスタンスが、排他モードで保持されているブロックを 1 つでも

ファイル8、エクステントA

ファイル9、エクステントB

ファイル10、エクステントC

ファイル11、エクステントD

空きリスト・グループ1

空きリスト・グループ2

GC_FILES_TO_LOCKS = 8, 10:10; 9, 11:10

マルチブロック・ロック割当ての構成(オプション) A-15

Page 176: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

データべース設計上の考慮点および空きリスト・グループ

読み込もうとすると、ロックによって保持されるすべてのブロックが強制読込みの対象になるためです。

Real Application Clusters でのパラレル実行のチューニングでのパラレル実行のチューニングでのパラレル実行のチューニングでのパラレル実行のチューニングデフォルトのリソース制御スキームを使用せずに Real Application Clusters 環境でパラレル実行を 適化するには、GC_FILES_TO_LOCKSパラメータを正確に設定する必要があります。データ・ブロック・アドレス・ロックは、デフォルト動作では、各ブロックに 1 つのロックを割り当てます。たとえば、フル・テーブル・スキャンの実行中に、読み込まれた各ブロックに対してロックが取得される必要があります。フル・テーブル・スキャンを高速化するには、次のいずれかの操作を行います。

� 読取り専用データのみを含むデータ・ファイルに対しては、表領域を読取り専用に設定します。ロック・オペレーションが発生しなくなります。

� 主に読取り専用データに対しては、各データ・ファイルに、非常に少数のハッシュ・ロック(2 つの共有ロックなど)を割り当てます。データを読み込むときに、取得する必要があるのはこれらのロックのみになります。

� データ・ブロック・アドレス・ロックまたはファイングレイン・ロックが必要な場合、!optionを使用して、ロックごとに制御されるブロックをグループ化します。これは、デフォルトのデータ・ブロック・アドレス・ロックよりメリットがあります。デフォルトでは、100 万個のブロックを読み込むためには 100 万個のロックを取得する必要があります。ブロックをグループ化すると、グループ係数によって、割り当てられたロックの数を削減できます。したがって、!10 のグループ化で取得する必要があるロック数は、デフォルトで取得する必要があるロック数の 10 分の 1 で済みます。ロック割当て数が大幅に削減されるため、パフォーマンスが向上します。これまでの実績では、!10 のグループ化でのパフォーマンスは、ハッシュ・ロックでの速度と同等です。

パラレル DML 操作を高速化するには、データべース・アドレス・ロックではなく、ハッシュ・ロックまたは高いグループ係数を使用することを考慮してください。パラレル実行サーバーは、オーバーラップしていないパーティション上で作業するため、パーティション間でファイルを共有しないことをお薦めします。各ファイルに対して 1 つのハッシュ・ロックのみ設定することで、ロック・オペレーションの数を削減できます。パラレル実行サーバーは、オーバーラップしていないファイル上でのみ作業するため、ロックの ping は存在しません。

次のガイドラインは、メモリー使用量に影響し、間接的にパフォーマンスにも影響します。

� 一時表領域のデータ・ファイルデータ・ファイルデータ・ファイルデータ・ファイルには、ロックを割り当てないでください。

� SYSTEM表領域には、固有のロックを割り当てます。これによって、領域管理などのデータ・ディクショナリ・アクティビティが、キャッシュ管理レベルでデータ表領域と干渉(エラー 01575)しないことが保証されます。

A-16 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 177: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters の I/O 統計の分析

Real Application Clusters のののの I/O 統計の分析統計の分析統計の分析統計の分析GC_FILES_TO_LOCKSを設定した場合、キャッシュ・フュージョンは使用禁止になります。この場合、V$SYSSTATビューの 3 つの統計を使用して、グローバル・キャッシュの同期化に関連する次の I/O の作業負荷を計測できます。

� DBWR クロス・インスタンス書込み

� リモート・インスタンスの UNDO ヘッダー書込み

� リモート・インスタンスの UNDO ブロック書込み

DBWR cross-instance writes は、要求されたブロックが、要求側ノードで使用できるようにディスクに書き込まれることで、インスタンス間のデータ・ブロック競合が解消されたときに発生します。

キャッシュ・フュージョンは、ブロックの現行のバージョンおよび一貫性読込みバージョンに対するディスク I/O を排除します。これによって、各インスタンスが実行する物理書込みおよび物理読込みが大幅に削減されます。

V$SYSSTAT を使用したを使用したを使用したを使用した Real Application Clusters のののの I/O 統計の分析統計の分析統計の分析統計の分析次の統計を取得して、グローバル・キャッシュの同期化に必要な書込み I/O の量を明確にできます。

1. 次の構文を使用して、V$SYSSTATビューを問い合せます。

SELECT NAME, VALUE FROM V$SYSSTAT WHERE NAME IN ('DBWR cross-instance writes', 'remote instance undo block writes', 'remote instance undo header writes', 'physical writes');

次のように出力されます。

NAME VALUE--------------------------------------------------------- ----------physical writes 41802DBWR cross-instance writes 5403remote instance undo block writes 0remote instance undo header writes 24 rows selected.

physical writes 統計は、特定のインスタンスから発生した DBWR が実行するすべての物理書込みを示します。また、DBWR cross-instance writes の値は、別のインスタンスが変更を行うために要求したデータ・ブロックを含む使用済バッファを書き込むことによって発生する、すべての書込みを示します。DBWR プロセスは、クロス・インスタンス書込みも処理するため、DBWR cross-instance writes はすべての physical writes のサブセットになります。

マルチブロック・ロック割当ての構成(オプション) A-17

Page 178: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters の I/O 統計の分析

2. 次の式で、物理 I/O 全体に対する Real Application Clusters 関連 I/O の割合を計算します。

3. 次の式で、リモート・インスタンスが、ローカル・インスタンスによって使用されているロールバック・セグメントから読み込む必要がある場合に、ロールバック・セグメントへの書込みが発生した回数を計算します。

この割合は、ロールバック・セグメントへの書込みに関連するディスク I/O の量を示します。

4. グローバル・キャッシュ同期化による読込みの数または割合を見積もるには、NULL(N)から共有モード(S)への変換に対するロック要求数を使用します。この要求数は、V$LOCK_ACTIVITYまたは V$SYSSTATの physical reads 統計にカウントされます。

次の式では、lock buffers for read が N-to-S ブロック・アクセス・モード変換を示すローカル作業のみに関する読込みの割合が計算されます。

これらは強制読込みと呼ばれ、ローカル・インスタンスによって変更されたキャッシュ・データ・ブロックが、別のインスタンスからの要求によってディスクに書き込まれる必要があり、その後ローカル・インスタンスが、読込みのためにブロックを再取得する場合に発生します。

DBWR cross-instance writes

physical writes

(remote instance undo header writes+remote instance undo block writes)

DBWR cross-instance writes

(physical reads (lock buffers for read)) �100

physical reads

-

A-18 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 179: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

不適切な強制書込みの検出によるマルチブロック・ロック使用量の監視

不適切な強制書込みの検出によるマルチブロック・ロック使用不適切な強制書込みの検出によるマルチブロック・ロック使用不適切な強制書込みの検出によるマルチブロック・ロック使用不適切な強制書込みの検出によるマルチブロック・ロック使用量の監視量の監視量の監視量の監視

不適切な強制書込みは、異なるノードからブロックが同時に更新される場合、2 つ以上のブロックを保護するロックが下位変換されるときに発生します。たとえば、2 つのノードがそれぞれ異なるブロックを更新するとき、それらのブロックが同じロックによって保護されているとします。この場合、各ノードは 1 つのブロックのみを更新するために、2 つのブロックをディスクに書き込む必要があります。これは、同じロックが両方のブロックを処理するためです。

不適切な強制書込みアクティビティを表示できる統計はありません。不適切な強制書込みの検出は、この項で説明する周囲の状況から判断するしかありません。

次の SQL 文は、書込みの原因となるロック・オペレーションの数と、実際に書き込まれたブロックの数を表示します。

SELECT VALUE/(A.COUNTER + B.COUNTER + C.COUNTER) "PING RATE" FROM V$SYSSTAT, V$LOCK_ACTIVITY A, V$LOCK_ACTIVITY B, V$LOCK_ACTIVITY C WHERE A.FROM_VAL = 'X' AND A.TO_VAL = 'NULL' AND B.FROM_VAL = 'X' AND B.TO_VAL = 'S' AND C.FROM_VAL = 'X' AND C.TO_VAL = 'SSX' AND NAME = 'DBWR cross-instance writes';

表 A-2 に、強制書込み率の解析方法を示します。

表表表表 A-2 強制書込み率の解析強制書込み率の解析強制書込み率の解析強制書込み率の解析

ディスク書込みのディスク書込みのディスク書込みのディスク書込みの強制実行の割合強制実行の割合強制実行の割合強制実行の割合

意味意味意味意味

<1 不適切な強制書込みが発生している場合がありますが、ディスク書込みの強制実行を上回るロック・オペレーションがあります。DBWR が十分な速さで

ブロックを書き込んでいるため、ロック・アクティビティに対する書込みは発生していません。これは、soft ping ともいいます。I/O アクティビティが

ディスク書込みの強制実行に対してではなく、ロック・アクティビティにのみ要求されていることを表します。

=1 書込みが発生する可能性がある各ロック・アクティビティで、実際に書込みが発生します。不適切な強制書込みが発生している場合があります。

>1 不適切な強制書込みが確実に発生しています。

マルチブロック・ロック割当ての構成(オプション) A-19

Page 180: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

不適切な強制書込みの検出によるマルチブロック・ロック使用量の監視

次の式を使用して、不適切な強制書込みの確率を計算します。

書込みの合計数をチェックし、不適切な強制書込みによる書込み数を計算します。

SELECT Y.VALUE "ALL WRITES", Z.VALUE "PING WRITES", Z.VALUE * pingrate "FALSE PINGS", FROM V$SYSSTAT Z, V$SYSSTAT Y, WHERE Z.NAME = 'DBWR cross-instance writes' AND Y.NAME = 'physical writes';

次の SQL 文によって、ping_rate が導出されます。

CREATE OR REPLACE VIEW PING_RATE AS SELECT ((VALUE/(A.COUNTER+B.COUNTER+C.COUNTER))-1)/ (VALUE/(A.COUNTER+B.COUNTER+C.COUNTER)) RATE FROM V$SYSSTAT, V$LOCK_ACTIVITY A, V$LOCK_ACTIVITY B, V$LOCK_ACTIVITY C WHERE A.FROM_VAL = 'X' AND A.TO_VAL = 'NULL' AND B.FROM_VAL = 'X' AND B.TO_VAL = 'S' AND C.FROM_VAL = 'X' AND C.TO_VAL = 'SSX' AND NAME = 'DBWR cross-instance writes';

目標は、全体のディスク書込みの強制実行のみでなく、不適切な強制書込みを削減することです。このためには、GC_FILES_TO_LOCKS内のインスタンス・ロックの配分を確認して、ファイル内のデータをチェックします。

×100(ping_rate - 1)

ping_rate

A-20 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 181: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ロックの名前および書式

ロックの名前および書式ロックの名前および書式ロックの名前および書式ロックの名前および書式次の項では、ロックの名前および書式について説明します。この項の内容は次のとおりです。

� ロック名の書式

� ロックの名前

� ロックのタイプおよび名前

ロック名の書式ロック名の書式ロック名の書式ロック名の書式内部的には、グローバル・ロック名の書式は次いずれかです。

� type ID1 ID2

� type, ID1, ID2

� type (ID1, ID2)

項目の内容は次のとおりです。

たとえば、領域管理ロックの名前は ST00 のようになります。ロックの名前は、BL 1900 のようになります。

ロック・マネージャのクライアントは、ロック・タイプを定義します。たとえば、ロックに対して、BL および 2 つのパラメータ(ID1 と ID2)を定義し、これら 2 つのパラメータをGCS API に渡してロックをオープンします。ロック・マネージャは、異なるタイプのロックを識別しません。Oracle の各コンポーネントは、必要に応じてタイプおよび 2 つのパラメータを定義するので、ID1 および ID2 は、各コンポーネントの要件と一貫性があるといえます。

type ロック・タイプを表す 2 文字のタイプ名です。BL、TX、TM などがあります。

ID1 1 番目のロック識別子です。この識別子の意味および書式は、ロック・タイプごとに異なります。

ID2 2 番目のロック識別子です。この識別子の意味および書式は、ロック・タイプごとに異なります。

マルチブロック・ロック割当ての構成(オプション) A-21

Page 182: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ロックの名前および書式

ロックの名前ロックの名前ロックの名前ロックの名前すべてのロックは、バッファ・キャッシュ管理ロックです。バッファ・キャッシュ管理ロックのタイプは BL になります。ロックの名前の構文は、type ID1 ID2です。各項目の意味は次のとおりです。

ロックの名前の例は、次のとおりです。

ロックのタイプおよび名前ロックのタイプおよび名前ロックのタイプおよび名前ロックのタイプおよび名前ロックには、タイプおよび名前が異なるものがあります。表 A-3 に、タイプおよび名前のリストを示します。

type ロックはバッファ・ロックであるため、常に BL です。

ID1 ブロックのデータべース・アドレスです。

ID2 ブロック・クラスです。

BL (100, 1) ロック要素 100 を持つデータ・ブロックです。

BL (1000, 4) ロック要素 1000 を持つセグメント・ヘッダー・ブロックです。

BL (27, 1) ロールバック・セグメント #10 を持つロールバック・セグメント・ヘッダーです。ロールバック・セグメントの計算式は、7 +(10 × 2)です。

表表表表 A-3 ロックのタイプおよび名前ロックのタイプおよび名前ロックのタイプおよび名前ロックのタイプおよび名前

タイプタイプタイプタイプ ロック名ロック名ロック名ロック名 タイプタイプタイプタイプ ロック名ロック名ロック名ロック名

CF 制御ファイル・トランザクション PS パラレル実行プロセスの同期化

CI インスタンス間コール起動 RT REDO スレッド

DF データ・ファイル SC システム変更番号

DL ダイレクト・ローダー索引作成 SM SMON

DM データベース・マウント SN 順序番号

DX 分散リカバリ SQ 順序番号エンキュー

FS ファイル・セット SV 順序番号値

KK REDO ログ「Kick」 ST 領域管理トランザクション

IN インスタンス番号 TA トランザクション・リカバリ

IR インスタンス・リカバリ TM DML エンキュー

IS インスタンス状態 TS 一時セグメント(および表領域)

A-22 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 183: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ロックの名前および書式

MM マウント定義 TT 一時表

MR メディア・リカバリ TX トランザクション

IV ライブラリ・キャッシュ無効化 UL ユーザー定義ロック

L[A-P] ライブラリ・キャッシュ・ロック UN ユーザー名

N[A-Z] ライブラリ・キャッシュ・ピン WL REDO ログ書込み開始

Q[A-Z] 行キャッシュ XA インスタンス登録属性ロック

PF パスワード・ファイル XI インスタンス登録ロック

PR プロセス起動

表表表表 A-3 ロックのタイプおよび名前(続き)ロックのタイプおよび名前(続き)ロックのタイプおよび名前(続き)ロックのタイプおよび名前(続き)

タイプタイプタイプタイプ ロック名ロック名ロック名ロック名 タイプタイプタイプタイプ ロック名ロック名ロック名ロック名

マルチブロック・ロック割当ての構成(オプション) A-23

Page 184: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ロックの名前および書式

A-24 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 185: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Real Application Clusters データベースの設

B

Real Application Clusters データベースのデータベースのデータベースのデータベースの

設計の事例設計の事例設計の事例設計の事例

この付録では、Oracle Real Application Clusters 用に 適化されたシステムを設計する手順の事例を示します。

� 事例の概要

� 事例 : 初期データベース設計から Real Application Clusters へ

� 表へのアクセスの分析

� ユーザーごとのトランザクション量の分析

� 事例 : 初期パーティション化計画

� 索引のパーティション化

� 設計の実装およびチューニング

計の事例 B-1

Page 186: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

事例の概要

事例の概要事例の概要事例の概要事例の概要この付録では、Real Application Clusters で使用する新しいアプリケーションを設計する事例を示します。これらの方法を使用して、既存のアプリケーションを評価し、Real Application Clusters への移行にどれだけ適しているかを判断できます。

この事例では、初期データベース設計をすでに行っていると想定しています。Real Application Clusters の設計を 適化するには、次の手順に従います。

1. 初期データベース設計を開発します。

2. 表へのアクセスを分析します。

3. トランザクション量を分析します。

4. ユーザーおよびデータのパーティション化方法を決定します。

5. 必要に応じて、索引のパーティション化方法を決定します。

6. 設計を実装およびチューニングします。

注意注意注意注意 : 競合を 小化することが目標であることに注意してください。競合の 小化によって、パフォーマンスを 適化できます。

参照参照参照参照 : この手順の詳細は、第 II 部「Real Application Clusters アプリケーションの拡張およびデータベースの設計」を参照してください。

B-2 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 187: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

事例 : 初期データベース設計から Real Application Clusters へ

事例事例事例事例 : 初期データベース設計から初期データベース設計から初期データベース設計から初期データベース設計から Real Application Clusters へへへへこの事例は、実際の分析方法を示します。この事例とは異なるアプリケーションを使用している場合でも、プロセスの理解に有効です。この項の内容は次のとおりです。

� Eddie Bean カタログ販売

� Eddie Bean データべース表

� Eddie Bean のユーザー

� Eddie Bean のアプリケーション・プロファイル

Eddie Bean カタログ販売カタログ販売カタログ販売カタログ販売この事例では、「Eddie Bean」という架空のカタログ販売会社を取り上げます。この会社では、多くの注文入力オペレータが様々な製品の電話注文を処理しています。発送処理オペレータが注文に対応し、売掛処理オペレータが請求書を作成します。買掛処理オペレータは、この会社の内部で使用する備品およびサービスの注文を処理します。セールス・マネージャおよび財務アナリストは、データについてのレポートを実行します。この会社の財務アプリケーションには、単一データベース上で操作されるビジネス処理が 3 つあります。

� 注文入力

� 買掛金

� 売掛金

Eddie Bean データべース表データべース表データべース表データべース表Eddie Bean データベースには、次のような表があります。

表表表表 B-1 Eddie Bean サンプル表サンプル表サンプル表サンプル表

表表表表 内容内容内容内容

order_header 注文番号、顧客の名前および住所

order_item 注文された製品、数量および価格

organizations 顧客およびサプライヤの名前、住所、電話番号

accounts_payable 備品およびサービスに対する会社内部の購入および支払いを追跡します。

budget 会社の支出および歳入の貸借対照表

forecasts 将来の販売を予想し、現在の業績を記録します。

Real Application Clusters データベースの設計の事例 B-3

Page 188: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

事例 : 初期データベース設計から Real Application Clusters へ

Eddie Bean のユーザーのユーザーのユーザーのユーザー次のような様々なアプリケーション・ユーザーが、異なる機能を実行するためにデータベースにアクセスします。

� 注文入力オペレータ

� 買掛処理オペレータ

� 売掛処理オペレータ

� 発送処理オペレータ

� セールス・マネージャ

� 財務アナリスト

Eddie Bean のアプリケーション・プロファイルのアプリケーション・プロファイルのアプリケーション・プロファイルのアプリケーション・プロファイルEddie Bean アプリケーションの操作は、1 日中ほぼ一貫しています。つまり、注文入力、注文処理および出荷が、1 日中発生します。これらの機能は、1 時間単位などで分割されるものではありません。

約 500 の注文が毎日入力されます。各注文ヘッダーは、存続期間中に約 4 回更新されます。したがって、挿入回数の 4 倍の更新が行われることが予想できます。販売業務、会計業務、発送、注文状態のトレースなどの作業を行う多くの従業員が注文ヘッダーを問い合せるため、多くの選択が行われます。

1 つの注文に対して、平均 4 つの項目があります。注文項目が更新されることはありません。ある項目が削除され、他の項目が入力されることはあります。order_header表には、4 つの索引があります。他の表にはそれぞれ、主キー索引のみがあります。

予算および予測アクティビティのボリュームは、注文表よりかなり小さくなります。これらのアクティビティは頻繁に読み取られますが、更新はあまり頻繁には行われません。予測は予算より頻繁に更新され、一度実際に行われると削除されます。

大量の削除処理は、夜間のバッチ・ジョブとして実行されます。したがって、このメンテナンス・アクティビティを、通常のアプリケーション機能の分析に含める必要はありません。

B-4 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 189: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

表へのアクセスの分析

表へのアクセスの分析表へのアクセスの分析表へのアクセスの分析表へのアクセスの分析データベースの表への既存の(または予測される)アクセス・パターンを分析します。その後、表のパーティション化方法、およびアクセス・パターンによるグループ化方法を決定します。

� 表アクセス分析ワークシート

� 事例 : 表アクセス分析

表アクセス分析ワークシート表アクセス分析ワークシート表アクセス分析ワークシート表アクセス分析ワークシート表 B-2 に示すワークシートに、アクティビティが多いすべてのデータベース表を記入します。

このワークシートに記入するために、各種類の操作のボリュームを見積もります。その後、操作に伴う読取り / 書込みの数を計算します。

操作ボリュームの見積り操作ボリュームの見積り操作ボリュームの見積り操作ボリュームの見積り表に対して実行する操作の種類ごとに、1 日の発生予測ボリュームを反映した値を入力します。

表表表表 B-2 表アクセス分析ワークシート表アクセス分析ワークシート表アクセス分析ワークシート表アクセス分析ワークシート

表名表名表名表名

1 日のアクセス・ボリューム日のアクセス・ボリューム日のアクセス・ボリューム日のアクセス・ボリューム

読取りアクセス読取りアクセス読取りアクセス読取りアクセス 書込みアクセス書込みアクセス書込みアクセス書込みアクセス

SELECT INSERT UPDATE DELETE

操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O

注意注意注意注意 : この分析では、相対的な値(アプリケーションの通常の使用を示す合計値)が重要です。アプリケーションがまだ存在しない場合も、ユーザーのタイプを想定し、アクティビティの相対レベルを見積もることができます。表に対するメンテナンス・アクティビティは、通常、この分析には関連しません。

Real Application Clusters データベースの設計の事例 B-5

Page 190: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

表へのアクセスの分析

操作ごとの操作ごとの操作ごとの操作ごとの I/O の計算の計算の計算の計算操作列内の各値に対して、 悪のシナリオで生成される I/O の数を計算します。SELECT操作には読取りアクセス、INSERT、UPDATEおよび DELETE操作には読取り / 書込みアクセスの両方が含まれます。これらの操作は、データ・ブロックのみでなく、すべての関連する索引ブロックにアクセスします。

例として、図 B-1 に、大規模な表のデータへの読取り / 書込みアクセスを示します。この表では、2 つのレベルの索引はバッファ・キャッシュになく、高いレベルの索引のみがシステシステシステシステム・グローバル領域ム・グローバル領域ム・グローバル領域ム・グローバル領域((((SGA))))にキャッシュされます。

図図図図 B-1 SELECT 操作または操作または操作または操作または INSERT 操作ごとの操作ごとの操作ごとの操作ごとの I/O の数の数の数の数

注意注意注意注意 : 操作ごとに生成される I/O の数は、表のアクセス・パスおよび表サイズによって異なります。また、表が持つ索引の数によっても異なります。たとえば、小さい索引には、1 つの単一索引ブランチ・ブロックのみがあります。

低レベル�索引ブランチ�

索引リーフ・�ブロック�

データ・�ブロック�

キャッシュされる�

キャッシュされない�

索引�ルート�

索引�ブランチ�

INSERTSELECT

読取り�

読取り�

読取り�

読取り�

読取り/書込み�

読取り/書込み�

B-6 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 191: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

表へのアクセスの分析

この例の場合、主キーを使用してデータにアクセスすると想定すると、SELECTには次の 3回の I/O が必要になります。

1. 第 1 下位レベルの索引ブロックを読み取る I/O が 1 回

2. 第 2 下位レベルの索引ブロックを読み取る I/O が 1 回

3. データ・ブロックを読み取る I/O が 1 回

INSERT文または DELETE文には、少なくとも次の 5 回の I/O が必要です。

1. データ・ブロックを読み取る I/O が 1 回

2. データ・ブロックを書き込む I/O が 1 回

3. 索引ごとに 3 回の I/O (索引エントリの読取りに 2 回、および索引の書込みに 1 回)

この例の UPDATEには、次の 7 つの I/O が伴います。

1. 第 1 下位レベルの索引ブロックを読み取る I/O が 1 回

2. 第 2 下位レベルの索引ブロックを読み取る I/O が 1 回

3. データ・ブロックを読み取る I/O が 1 回

4. データ・ブロックを書き込む I/O が 1 回

5. 第 1 下位レベルの索引ブロックを再度読み取る I/O が 1 回

6. 第 2 下位レベルの索引ブロックを再度読み取る I/O が 1 回

7. 索引ブロックを書き込む I/O が 1 回

注意注意注意注意 : すべてのルートおよびブランチ・ブロックが SGA にある場合、SELECTに伴う I/O は、リーフ索引ブロック読取りおよびデータ・ブロック読取りの 2 回のみです。

注意注意注意注意 : INSERTまたは DELETEはすべての索引に影響しますが、UPDATEは 1 つの索引にしか影響しない場合があります。変更された索引キーの数をチェックしてください。

Real Application Clusters データベースの設計の事例 B-7

Page 192: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

表へのアクセスの分析

サンプル表に対する操作ごとのサンプル表に対する操作ごとのサンプル表に対する操作ごとのサンプル表に対する操作ごとの I/O事例では、索引数が表ごとに異なるため、操作ごとの I/O 数は表ごとに異なります。

表 B-3 に、order_header表に関する各タイプの操作によって生成される I/O の数を示します。order_header表に索引が 4 つあると想定します。

表 B-4 に、事例のその他の表に対する操作ごとに生成される I/O の数を示します。各表には、主キー索引のみがあると想定します。

これらの分析には、データに対して行われた変更もロールバック・セグメントロールバック・セグメントロールバック・セグメントロールバック・セグメントを生成し、追加の I/O が伴うことを考慮する必要はありません。これらの I/O は、インスタンスインスタンスインスタンスインスタンス・ベースです。したがって、これらの変更が Real Application Clusters アプリケーションの問題の原因になることはありません。

表表表表 B-3 操作ごとの操作ごとの操作ごとの操作ごとの I/O 数数数数 : サンプルサンプルサンプルサンプル order_header 表表表表

操作操作操作操作 SELECT INSERT UPDATE DELETE

アクセスのタイプアクセスのタイプアクセスのタイプアクセスのタイプ 読取り 読取り / 書込み 読取り / 書込み 読取り / 書込み

I/O 数数数数 3 14 7 14

注意注意注意注意 : これらの値は、データベース内の実際の索引数および各表に対するアクセス・パスによって調整してください。

表表表表 B-4 操作ごとの操作ごとの操作ごとの操作ごとの I/O 数数数数 : その他のサンプル表その他のサンプル表その他のサンプル表その他のサンプル表

操作操作操作操作 SELECT INSERT UPDATE DELETE

アクセスのタイプアクセスのタイプアクセスのタイプアクセスのタイプ 読取り 読取り / 書込み 読取り / 書込み 読取り / 書込み

I/O 数数数数 3 5 7 5

参照参照参照参照 : 索引の詳細は、『Oracle9i データベース概要』を参照してください。

B-8 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 193: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

表へのアクセスの分析

事例事例事例事例 : 表アクセス分析表アクセス分析表アクセス分析表アクセス分析表 B-5 に、事例でアプリケーションを標準的に使用している場合のおおよその値を示します。

表 B-5 から、次のことがわかります。

� order_header表および order_item表のみに、大量の書込みアクセスが発生します。

� organizationsは主に読取り専用表です。organizationsは、INSERT、UPDATEおよび DELETE操作のいくつかによっても保持されますが、通常は SELECTのみに使用されます。

表表表表 B-5 事例事例事例事例 : 表アクセス分析ワークシート表アクセス分析ワークシート表アクセス分析ワークシート表アクセス分析ワークシート

表名表名表名表名

1 日のアクセス・ボリューム日のアクセス・ボリューム日のアクセス・ボリューム日のアクセス・ボリューム

読取りアクセス読取りアクセス読取りアクセス読取りアクセス 書込みアクセス書込みアクセス書込みアクセス書込みアクセス

SELECT INSERT UPDATE DELETE

操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O

order_header 20,000 60,000 500 7,000 2,000 14,000 1,000 14,000

order_item 60,000 180,000 2,000 10,000 0 0 4,030 20,150

organizations 40,000 120,000 10 50 100 700 0 0

budget 300 900 1 5 2 14 0 0

forecasts 500 1,500 1 5 10 70 2 10

accounts_payable 230 690 50 250 20 140 0 0

Real Application Clusters データベースの設計の事例 B-9

Page 194: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ユーザーごとのトランザクション量の分析

ユーザーごとのトランザクション量の分析ユーザーごとのトランザクション量の分析ユーザーごとのトランザクション量の分析ユーザーごとのトランザクション量の分析データベース内の表への、既存の(または予測される)アクセス・パターンを分析します。その後、表のパーティション化方法、およびアクセス・パターンによるグループ化方法を決定します。

� トランザクション量の分析ワークシート

� 事例 : トランザクション量の分析

トランザクション量の分析ワークシートトランザクション量の分析ワークシートトランザクション量の分析ワークシートトランザクション量の分析ワークシート大量の書込みアクセスがある各表について、ユーザーのタイプごとに 1 日のトランザクション量を分析します。

表 B-6 に示すワークシートを使用します。

まず、ユーザーのタイプごとにトランザクション量を見積もります。その後、必要な I/O の数を計算します。

注意注意注意注意 : 読取り専用表に対しては、ユーザーのタイプごとにトランザクション量を分析する必要はありません。

表表表表 B-6 トランザクション量の分析ワークシートトランザクション量の分析ワークシートトランザクション量の分析ワークシートトランザクション量の分析ワークシート

表名表名表名表名 :

ユーザーのタイプユーザーのタイプユーザーのタイプユーザーのタイプ ユーザーの数ユーザーの数ユーザーの数ユーザーの数

1 日のトランザクション量日のトランザクション量日のトランザクション量日のトランザクション量

読取りアクセス読取りアクセス読取りアクセス読取りアクセス 書込みアクセス書込みアクセス書込みアクセス書込みアクセス

SELECT INSERT UPDATE DELETE

操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O

B-10 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 195: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ユーザーごとのトランザクション量の分析

事例事例事例事例 : トランザクション量の分析トランザクション量の分析トランザクション量の分析トランザクション量の分析次の表に、事例における、大量の書込みアクセスがある 3 つの表 order_header、order_itemおよび accounts_payableのトランザクション量の分析を示します。

order_header 表表表表表 B-7 に、事例における、order_header表の値に対するおおよその見積りを示します。

表 B-7 から、次のことがわかります。

� 注文入力オペレータのみが、この表に挿入を実行します。

� 売掛処理オペレータおよび発送処理オペレータのみが、更新を実行します。

� セールス・マネージャおよび財務アナリストは、選択操作のみを実行します。

� 買掛処理オペレータは表を使用しません。

削除は、メンテナンス操作として実行されます。したがって、この分析で削除を考慮する必要はありません。さらに、セールス・マネージャは、通常、現在の月のデータにアクセスし、財務アナリストは、過去のデータにアクセスする場合が多いことがわかります。

表表表表 B-7 事例事例事例事例 : トランザクション量分析トランザクション量分析トランザクション量分析トランザクション量分析 : order_header 表表表表

表名表名表名表名 : order_header

ユーザーのタイプユーザーのタイプユーザーのタイプユーザーのタイプユーザーユーザーユーザーユーザー

の数の数の数の数

1 日のトランザクション量日のトランザクション量日のトランザクション量日のトランザクション量

読取りアクセス読取りアクセス読取りアクセス読取りアクセス 書込みアクセス書込みアクセス書込みアクセス書込みアクセス

SELECT INSERT UPDATE DELETE

操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O

注文入力オペレータ 25 5,000 15,000 500 7,000 0 0 0 0

買掛処理オペレータ 5 0 0 0 0 0 0 0 0

売掛処理オペレータ 5 6,000 18,000 0 0 1,000 7,000 0 0

発送処理オペレータ 4 4,000 12,000 0 0 1,000 7,000 0 0

セールス・マネージャ 2 3,000 9,000 0 0 0 0 0 0

財務アナリスト 2 2,000 6,000 0 0 0 0 0 0

Real Application Clusters データベースの設計の事例 B-11

Page 196: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ユーザーごとのトランザクション量の分析

order_item 表表表表表 B-8 に、事例における、order_item表の値に対するおおよその見積りを示します。

表 B-8 から、次のことがわかります。

� 注文入力オペレータのみが、この表に挿入を実行します。

� 更新はほとんど実行されません。

� 売掛処理オペレータ、発送処理オペレータ、セールス・マネージャおよび財務アナリストは、大量の選択操作を表に対して実行します。

� 買掛処理オペレータは表を使用しません。

注文ヘッダーは、使用可能な製品リストより多くの変更(住所の変更など)を必要とする傾向があるため、order_header表には order_itemより多くの書込みが行われます。新しい項目は、ジャーナル・エントリとして表示されるため、order_item表はほとんど更新されません。

表表表表 B-8 事例事例事例事例 : トランザクション量分析トランザクション量分析トランザクション量分析トランザクション量分析 : order_item 表表表表

表名表名表名表名 : order_item

ユーザーのタイプユーザーのタイプユーザーのタイプユーザーのタイプ ユーザーの数ユーザーの数ユーザーの数ユーザーの数

1 日のトランザクション量日のトランザクション量日のトランザクション量日のトランザクション量

読取りアクセス読取りアクセス読取りアクセス読取りアクセス 書込みアクセス書込みアクセス書込みアクセス書込みアクセス

SELECT INSERT UPDATE DELETE

操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O

注文入力オペレータ 25 15,000 45,000 2,000 10,000 0 0 20 100

買掛処理オペレータ 5 0 0 0 0 0 0 0 0

売掛処理オペレータ 5 18,000 54,000 0 0 0 0 10 50

発送処理オペレータ 4 12,000 36,000 0 0 0 0 0 0

セールス・マネージャ 2 9,000 27,000 0 0 0 0 0 0

財務アナリスト 2 6,000 18,000 0 0 0 0 0 0

B-12 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 197: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ユーザーごとのトランザクション量の分析

accounts_payable 表表表表表 B-9 に、事例における、accounts_payable表の値に対するおおよその見積りを示します。この表には、特に大量の書込みアクセスは示されていませんが、買掛処理オペレータが実行する主な操作を含むため、この表も分析しています。

この表から、次のことがわかります。

� 買掛処理オペレータは、1 日 50 の購入注文をサプライヤに送信します。この表のデータを変更するのは、このオペレータのみです。

� 財務アナリストは、必要に応じて情報を調査します。

削除は、メンテナンス操作として実行されます。したがって、この分析で削除を考慮する必要はありません。

表表表表 B-9 事例事例事例事例 : トランザクション量分析トランザクション量分析トランザクション量分析トランザクション量分析 : accounts_payable 表表表表

表名表名表名表名 : accounts_payable

ユーザーのタイプユーザーのタイプユーザーのタイプユーザーのタイプ ユーザーの数ユーザーの数ユーザーの数ユーザーの数

1 日のトランザクション量日のトランザクション量日のトランザクション量日のトランザクション量

読取りアクセ読取りアクセ読取りアクセ読取りアクセスススス 書込みアクセス書込みアクセス書込みアクセス書込みアクセス

SELECT INSERT UPDATE DELETE

操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O 操作操作操作操作 I/O

注文入力オペレータ 25 0 0 0 0 0 0 0 0

買掛処理オペレータ 5 200 600 50 250 20 140 0 0

売掛処理オペレータ 5 0 0 0 0 0 0 0 0

発送処理オペレータ 4 0 0 0 0 0 0 0 0

セールス・マネージャ 2 0 0 0 0 0 0 0 0

財務アナリスト 2 30 90 0 0 0 0 0 0

Real Application Clusters データベースの設計の事例 B-13

Page 198: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

事例 : 初期パーティション化計画

事例事例事例事例 : 初期パーティション化計画初期パーティション化計画初期パーティション化計画初期パーティション化計画この事例では、order_headerおよび order_item表に対して大量の挿入アクティビティを行う多数の注文入力オペレータを、複数のマシンに分割しない例を示します。これらのユーザーは、 もよく使用する 2 つの表とともに 1 つのノードノードノードノードに集約します。したがって、図 B-2 に示すように、注文入力オペレータ用に 1 つのノードを、他のすべてのユーザー用に1 つノードを設定することをお薦めします。

図図図図 B-2 事例事例事例事例 : ユーザーおよびデータのパーティション化ユーザーおよびデータのパーティション化ユーザーおよびデータのパーティション化ユーザーおよびデータのパーティション化

図 B-2 のシステムは、ノード間で適切に均衡化されています。財務アナリストによって行われるデータベース集中型のレポートは、大量のシステム・リソースを使用します。一方、他の注文入力オペレータによって実行されるトランザクションは、比較的単純です。

システムにおけるユーザー数を調整することによってロード・バランスロード・バランスロード・バランスロード・バランスを試みることは、一般的には有効ですが、必ずしも重要ではありません。チューニングに対しては、ロード・バランスを実行するより、競合を削減する方が、より大きな効果を得られます。

ユーザーの�パーティション化�

データの�パーティション化�

インスタンス2インスタンス1

注文入力オペレータ�

OR

DE

R_H

EA

DE

R

OR

DE

R_IT

EM

AC

CO

UN

TS

_PA

YA

BLE

OR

GA

NIZ

AT

ION

S

BU

DG

ET

買掛処理オペレータ�売掛処理オペレータ�発送処理オペレータ�セールス・マネージャ�財務アナリスト�

FO

RE

CA

ST

S

B-14 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 199: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

事例 : 初期パーティション化計画

事例事例事例事例 : さらなるパーティション化計画さらなるパーティション化計画さらなるパーティション化計画さらなるパーティション化計画事例では、買掛データが買掛処理オペレータによってのみ書き込まれることは明確です。したがって、図 B-3 に示すように、このデータを異なるインスタンスインスタンスインスタンスインスタンスに効率的にパーティション化できます。

図図図図 B-3 事例事例事例事例 : ユーザーおよびデータのパーティション化ユーザーおよびデータのパーティション化ユーザーおよびデータのパーティション化ユーザーおよびデータのパーティション化 : 設計オプション設計オプション設計オプション設計オプション 1

データの特定の部分に書込みアクセスを行う必要があるすべてのユーザーが 1 つのノードに集中すると、すべてのグローバル・エンキューがこのノードに常駐します。したがって、リソースの所有権がインスタンス間で移動することはありません。この分析に基づいて、次の項で説明する 2 つの設計オプションが使用可能です。

ユーザーの�パーティション化�

データの�パーティション化�

インスタンス3インスタンス1

注文入力オペレータ�

OR

DE

R_IT

EM

インスタンス2

AC

CO

UN

TS

_PA

YA

BLE

買掛処理�オペレータ�

OR

GA

NIZ

AT

ION

S

BU

DG

ET

FO

RE

CA

ST

S

売掛処理オペレータ�発送処理オペレータ�セールス・マネージャ�財務アナリスト�

OR

DE

R_H

EA

DE

R

Real Application Clusters データベースの設計の事例 B-15

Page 200: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

事例 : 初期パーティション化計画

設計オプション設計オプション設計オプション設計オプション 1図 B-3 に示すように、1 つのインスタンス上のすべての注文入力オペレータとともにシステムを設定して、表の排他的 GCS のリソースに対する競合を 小化できます。これによって、セールス・マネージャおよび財務アナリストは 新の情報を取得できます。セールス・マネージャおよび財務アナリストは、主に過去のデータを必要とするため、カレント・レコードに対する競合はそれほど多く発生しません。

設計オプション設計オプション設計オプション設計オプション 1図 B-4 で示すように、設計オプション 1 のかわりに、order_item/order_headerに対して、別々に一時表を実装できます。この表は、新しい注文情報の記録にのみ使用します。すべての問合せが実行される主な表に、夜間に変更を取り込むことができます。この方法は、財務分析に現行のデータが必要ない場合に有効です。これは、財務分析が主に、履歴データの検索を行う場合にのみ有効な方法です。財務分析に 新のデータが必要な場合、この方法は適切ではない場合があります。

図図図図 B-4 事例事例事例事例 : ユーザーおよびデータのパーティション化ユーザーおよびデータのパーティション化ユーザーおよびデータのパーティション化ユーザーおよびデータのパーティション化 : 設計オプション設計オプション設計オプション設計オプション 2

ユーザーの�パーティション化�

データの�パーティション化�

インスタンス3インスタンス1

注文入力オペレータ�

OR

DE

R_H

EA

DE

R_T

EM

P

OR

DE

R_IT

EM

_TE

MP

インスタンス2

売掛処理オペレータ�発送処理オペレータ�セールス・マネージャ�財務アナリスト�

OR

DE

R_H

EA

DE

R

OR

DE

R_IT

EM

OR

GA

NIZ

AT

ION

S

AC

CO

UN

TS

_PA

YA

BLE

買掛処理�オペレータ�

BU

DG

ET

FO

RE

CA

ST

S

B-16 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 201: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

設計の実装およびチューニング

索引のパーティション化索引のパーティション化索引のパーティション化索引のパーティション化システムにある複数のノードが同じ索引を挿入している場合は、索引のパーティション化を検討する必要があります。この場合、各インスタンスが、索引内の異なる位置に挿入を実行するように設定する必要があります。

設計の実装およびチューニング設計の実装およびチューニング設計の実装およびチューニング設計の実装およびチューニングこの時点で、見積もった値を使用した分析は終了しました。設計を完了するためには、アプリケーションをプロトタイプ化するか、実際に実装する必要があります。実システムを観察することによって、このシステムをさらにチューニングできます。

次の方法でチューニングを行います。

� 強制書込みされているブロックを識別し、競合が存在する場所を判断します。

� ディスク書込みの強制実行および不適切な強制書込みを削減するために、1 つのインスタンスから他のインスタンスにユーザーを移動させることを検討します。

� 挿入時にディスク書込みの強制実行が発生する場合、空きリストを調整するか、複数のシーケンス・ジェネレータを使用して、挿入が索引の異なる部分で実行されるようにします。

注意注意注意注意 : Eddie Bean の事例では、アプリケーションおよびデータの使用方法がパーティション化されているため、この問題は発生しません。

参照参照参照参照 : 『Oracle9i データベース・パフォーマンス・ガイドおよびリファレンス』を参照してください。

Real Application Clusters データベースの設計の事例 B-17

Page 202: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

設計の実装およびチューニング

B-18 Oracle9i Real Application Clusters 配置およびパフォーマンス

Page 203: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

用語集用語集用語集用語集

buffer busy due to global cache

別のプロセスがブロックのリソースを取得しているため、そのブロックが使用可能になるまでプロセスが待機する必要がある場合に通知される待機イベント。

buffer busy waits

その時点で別のプロセスがバッファを使用しているため、プロセスがそのバッファを取得できない場合に通知される待機イベント。

cache convert waits

トランザクションごとの cache convert waits は、global cache null to S、global cache null to X、global cache S to X などのすべての上位変換操作に対する合計待機数。

cache open waits

トランザクションごとの cache open waits は、global cache open S および global cache open X に対する合計待機数。

Cluster Manager((((CM

オペレーティング・システム固有のコンポーネント。クラスタ間にメンバーシップの共通ビューを提供して、ノードノードノードノードのメンバーシップ状態を検出および追跡する。また、プロセスの状態も監視する。グローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービス(GCS)の状態を監視するバックグラウンド・プロセスであるロック・モニター・プロセスロック・モニター・プロセスロック・モニター・プロセスロック・モニター・プロセス(LMON)は、CM への登録およびCM からの登録解除を行う。CM は、すべてのネットワーク・カード障害またはケーブル障害からのリカバリも管理する。

consistent gets

一貫性読込み(CR)モードで取得されるバッファの数。

用語集用語集用語集用語集 -1

Page 204: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

cr request retry

Oracle が、保持側インスタンスを使用できなくなったことを検出したときに、一貫性読込み要求を再発行するたびに発生する待機。

db block changes

DML 用に排他モードで取得されたカレント・バッファの数。

db block gets

読込み用に取得されたカレント・バッファの数。

DBWR cross-instance writes

強制書込みともいう。以前は排他的に保持されていたブロックを、他のインスタンスがバッファ・キャッシュに読み込むことができるようにするために、インスタンスがディスクに対して実行する必要がある書込みの数。実際には、GC_FILES_TO_LOCKSパラメータを 1 以上の値に指定しないかぎり、キャッシュ・フュージョンによって DBWR cross-instance writes は発生しない。

DFS lock handle

グローバル・リソースへのポインタ。GES リソースを操作するには、プロセスは、まず DFS handle を取得する必要がある。

flow control messages received

LMD プロセスが受信するフロー制御(nullreq および nullack)メッセージの数。

flow control messages sent

LMS プロセスが送信するフロー制御(nullreq および nullack)メッセージの数。

global cache bg acks

LMS プロセスがその操作を完了したときのインスタンスの起動または停止中にのみ発生する可能性がある待機イベント。

global cache busy

進行中のリソース操作が完了するまで、セッションが待機する必要があるたびに発生する待機イベント。

global cache convert time

すべてのセッションが GCS リソースに対してグローバル変換を実行するために必要な累計時間。

global cache convert timeouts

リソース操作のタイムアウト数。

用語集用語集用語集用語集 -2

Page 205: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

global cache converts

バッファ・キャッシュ・ブロックのリソース変換。この統計は、GCS リソースが NULL から排他、共有から排他、または NULL から共有に変換されるたびに増加する。

global cache cr block build time

LMS プロセスが保持側インスタンス上で一貫性読込みブロックを作成するために必要な時間。

global cache cr block flush time

CR 要求が行われたときのログ・フラッシュの待機時間。一度 LGWR がログ・フラッシュ・キューにあるバッファへの変更のフラッシュを完了すると、LMS は、これを送信できる。サービス時間の一部。

global cache cr block receive time

一貫性読込み要求の完了にかかった合計時間(一貫性読込みブロックに対するすべての要求のラウンドトリップ時間の累計)。

global cache cr block send time

LMS が一貫性読込みブロックを送信するために必要な時間。各要求に対して、タイミングはブロックが送信されたときに開始し、送信が完了したときに停止する。この統計では、送信するために必要な時間のみが測定される。ブロックが要求側インスタンスに到着するまでの経過時間は測定されない。

global cache cr blocks received

あるプロセスが、ローカル・キャッシュにはないデータ・ブロックの一貫性読込みを要求する場合に、プロセスが要求を別のインスタンスへ送信する回数。一度要求が完了する(バッファが受信される)と、Oracle はこの統計を増加させる。

global cache cr blocks served

LMS が行った一貫性読込みブロックに対する要求の数。Oracle は、ブロックが送信されたときにこの統計を増加させる。

global cache cr cancel wait

取り消されたブロック・アクセス要求に対する AST が完了するまで、セッションが待機するたびに発生する待機イベント。要求の取消しは、キャッシュ・フュージョン書込みプロトコルの一部である。

global cache cr cancel wait 取り消された CR 要求に対する獲得割込みが完了する

まで、セッションが待機する場合に発生する待機イベント。CR 要求の取消しは、キャッシュ・フュージョン書込みプロトコルの一部である。

用語集用語集用語集用語集 -3

Page 206: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

global cache cr request

ペンディング CR 要求が完了するまで、プロセスが待機する必要があるたびに発生する待機イベント。プロセスは、ブロックをディスクからキャッシュに読み込む前に、ブロックへの共有アクセス権が付与されるまで待機するか、または保持側インスタンスの LMS によってブロックが送信されるまで待機する。

global cache cr timeouts

遅延が過剰でタイムアウトした一貫性読込みブロックの要求。これは、システム・パフォーマンスの問題、低速インターコネクトインターコネクトインターコネクトインターコネクト・ネットワークまたはネットワーク・パケットの削除が原因の場合がある。この統計の値は、常に 0(ゼロ)にする必要がある。

global cache current block flush time

ブロックが要求側インスタンスに送信される前に、ブロックへの変更をディスクにフラッシュ(強制ログ・フラッシュともいう)する時間。

global cache current block pin time

現行のブロックを要求側インスタンスに送信する前に、ブロックを確保する時間。ブロックの確保は、別のインスタンスへのブロックの送信準備中に、ブロックへのさらなる変更を許可しないために必要である。

global cache current block receive time

現行のブロックに対するすべての要求の累計ラウンドトリップ時間。

global cache current block send time

現行のブロックをインターコネクトインターコネクトインターコネクトインターコネクト経由で要求側インスタンスに送信する時間。

global cache current blocks received

保持側インスタンスからインターコネクトインターコネクトインターコネクトインターコネクト経由で受信した現行のブロックの数。

global cache current blocks served

インターコネクトインターコネクトインターコネクトインターコネクト経由で要求側インスタンスに送信された現行のブロックの数。

global cache freelist wait

Oracle がローカル要素の空きリストが空であることを検出した後で待機する必要がある場合に発生する待機イベント。

global cache freelist waits

Oracle がリソース要素の空きリストが空であることを検出した回数。

global cache get time

ローカル・バッファ用の GCS リソースをオープンするために必要なすべてのセッションの累計時間。

用語集用語集用語集用語集 -4

Page 207: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

global cache gets

GCS によって新しいリソースがオープンされたバッファ取得の数。

global cache null to S

任意のリソース変換が完了するまで、セッションが待機する必要があるたびに発生する待機イベント。

global cache null to X

特定のリソース変換が完了するまで、セッションが待機する必要があるたびに発生する待機イベント。

global cache open S

要求されたリソースへの共有アクセス権を受信するまで、セッションが待機する必要がある場合に発生する待機イベント。

global cache open X

要求されたリソースへの排他アクセス権を受信するまで、セッションが待機する必要がある場合に発生する待機イベント。

global cache pending ast

Oracle がリソース要素をクローズする前に、プロセスが獲得割込みを待機する場合に発生する可能性がある待機イベント。

global cache pred cancel wait

取り消された前回の読込み要求に対する獲得割込みが完了するまで、セッションが待機する必要がある場合に発生する待機イベント。前回の読込み要求の取消しは、キャッシュ・フュージョン書込みプロトコルの一部である。

global cache retry prepare

Oracle が一貫性読込みまたはキャッシュ・フュージョン要求用のバッファの準備に失敗するたびに、また Oracle がこの失敗を無視またはスキップできない場合に発生する待機イベント。

global cache S to X

特定のリソース変換が完了するまで、セッションが待機する必要があるたびに発生する待機イベント。

global lock async converts

Oracle が非互換モードから変換したリソースの数。

用語集用語集用語集用語集 -5

Page 208: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

global lock async gets

Oracle が非同期でオープンする必要がある GES リソースの数。async gets は、GES リソースに対してのみ使用され、global cache gets が含まれる。

global lock convert time

すべての global lock sync converts および global lock async converts に必要な累計時間。

global lock get time

Oracle がすべての GES リソースをオープンするために必要な累計時間。

global lock sync converts

Oracle が非互換モードから変換した GES リソースの数。sync converts は、主に GES リソースに対して発生する。

global lock sync gets

Oracle が同期でオープンする必要がある GCS リソースの数。sync gets は主に GES リソース(ライブラリ・キャッシュ・リソースなど)に対するものである。

lock buffers for read

NULL から共有への上位変換の回数。

messages flow controlled

直接送信される予定だったが、実際には LMD/LMS によってキューされ、後で配信されたメッセージの数。

messages received

LMD プロセスが受信したメッセージの数。

messages sent directly

Oracle プロセスによって直接送信されたメッセージの数。

messages sent indirectly

Oracle プロセスによって明示的にキューされたメッセージの数。

Net8

「Oracle Net」を参照。

Oracle Data Gatherer

Oracle Performance Manager 用のパフォーマンス統計を収集するコンポーネント。Oracle Data Gatherer は、ネットワーク上のノードノードノードノードにインストールする必要がある。

用語集用語集用語集用語集 -6

Page 209: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Oracle Enterprise Manager

異機種間環境を集中管理するための統合されたソリューションを提供する、システム管理ツール。Oracle Enterprise Manager によって、グラフィカルなコンソール、Management Server、Oracle Intelligent Agent、リポジトリ・データベースおよびツール製品が組み合され、Oracle 製品を管理するための包括的な統合システム管理プラットフォームが提供される。

Oracle Enterprise Manager のコンソールのコンソールのコンソールのコンソール ((((Oracle Enterprise Manager Console))))

Oracle Enterprise Manager 製品を構成する GUI ツール。

Oracle Intelligent Agent

各ノードノードノードノードで実行するプロセス。Management Server 経由でコンソールから送信されるジョブおよびイベントの実行者として機能する。エージェントはコンソールコンソールコンソールコンソールまたはネットワーク接続の状態に関係なく機能できるため、Oracle Intelligent Agent によって高可用性が保証される。

Oracle Net

オラクル社のネットワーク製品ファミリの基本部分。サービスおよびそのアプリケーションを異なるコンピュータに常駐させ、ピア・アプリケーションとして通信できるようにする。Oracle Net の主な機能には、ネットワーク・セッションの確立、およびクライアント・マシンとサーバー間または 2 つのサーバー間のデータ転送がある。ネットワーク・セッションの確立後は、Oracle Net はクライアントとサーバーのためのデータ伝達手段として機能する。

Oracle Parallel Server Management

「「「「Server Management」」」」を参照。

Oracle Performance Manager

Real Application Clusters のパフォーマンス統計を様々な表形式やグラフ形式で提供するOracle Enterprise Manager のアドオン・アプリケーション。統計は、すべてのインスタンスの集計パフォーマンスを表す。

Oracle Real Application Clusters

「Real Application Clusters」を参照。

Oracle9i Enterprise Edition

オブジェクト・リレーショナル・データベース管理システム(ORDBMS)。データベース管理用のアプリケーションおよびファイルを提供する。その他のすべての Real Application Clusters コンポーネントは、Oracle9i Enterprise Edition の 上部のレイヤーに位置している。

用語集用語集用語集用語集 -7

Page 210: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Oracle システム識別子システム識別子システム識別子システム識別子 ((((Oracle System Identifier: SID))))

リリース 8.1 より前の Oracle データベースが動作しているときに、その特定のインスタンスを識別する名前。Real Application Clusters データベースの場合は、クラスタ内の各ノードノードノードノードに、データベースを参照するインスタンスがある。各ノードの SID は、initdb_name.oraファイルの DB_NAMEパラメータで指定されたデータベース名と、一意のスレッドスレッドスレッドスレッド ID で構成される。スレッド ID は、クラスタ内の 初のインスタンスが 1 で始まり、2 番目以降のインスタンスの ID は 1 ずつ大きくなる。

リリース 8.1 より前のデータベースでは、SIDによってデータベースが識別されている。SIDは、tnsnames.oraファイル内の接続記述子部分、および listener.oraファイル内のネットワーク・リスナーの定義に含まれている。

physical reads

データ・ブロックに対する要求がローカル・キャッシュからでは満たされない場合に実行する必要があるディスク読取りの数。

physical writes

DBWn プロセスが実行する書込み I/O の数。GC_FILES_TO_LOCKSが設定されている場合、この数値には、Oracle9i での DBWR cross-instance writes(強制書込み)の数が含まれる。特定のデータ・ファイルに対して GC_FILES_TO_LOCKSを設定すると、以前の ping プロトコルが使用可能になり、キャッシュ・フュージョン・アーキテクチャは活用されない。

ping

実際にはディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行。以前の Oracle クラスタ・ソフトウェア製品では一般的である。データ・ブロックは一度に 1 つのインスタンスによってしか変更できないため、ping が発生する。Real Application Clusters より前では、あるインスタンスが別のインスタンスで必要なデータ・ブロックを変更する場合、ディスク書込みの強制実行が発生するかどうかは、そのブロックに対して発行された要求のタイプによって異なる。要求側インスタンスがブロックを変更する場合、保持側インスタンスのデータ・ブロックに対するリソースは、それにあわせて変換される必要がある。 初のインスタンスは、要求側インスタンスがそのブロックを読み込む前に、ブロックをディスクに書き込む必要がある。この場合に、ブロックに対してディスク書込みの強制実行が行われる。

PMON プロセスプロセスプロセスプロセス ((((PMON process))))

プロセス・モニター・データベース・プロセス。ユーザー・プロセスに障害が発生した場合に、リカバリ処理を実行する。PMON は、キャッシュのクリーンアップと、プロセスで使用されていたリソースの解放を行う。また、ディスパッチャおよびサーバー・プロセスを監視し、障害が発生した場合はそれらを再起動する。PMON は、サービス登録サービス登録サービス登録サービス登録の一部として、リスナーにインスタンス情報を登録する。

RAW デバイスデバイスデバイスデバイス ((((raw device))))

ファイル・システムが設定されていないディスクまたはディスク・ドライブ上のパーティション。RAW デバイスは、ディスクの共有を使用可能にするため、Real Application Clusters に使用される。

用語集用語集用語集用語集 -8

Page 211: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

RAW ボリュームボリュームボリュームボリューム ((((raw volume))))

「RAW デバイスデバイスデバイスデバイス(raw device)」を参照。

Real Application Clusters

複数のインスタンスがデータ・ファイルの共有データベースにアクセスできるようにするアーキテクチャ。Real Application Clusters は、Oracle9i Enterprise Edition データベースをReal Application Clusters データベースにするために必要な Real Application Clusters スクリプト、初期化ファイルおよびデータ・ファイルを提供するソフトウェア・コンポーネントでもある。

Recovery Manager((((RMAN))))

Oracle のツール製品の 1 つ。データ・ファイル、制御ファイルおよびアーカイブ REDO ログの、バックアップ、コピー、リストアおよびリカバリを行う。RMAN は Oracle サーバーに含まれているため、個別にインストールする必要はない。RMAN は、オペレーティング・システム(O/S)のプロンプトからコマンドライン・ユーティリティとして起動するか、または GUI ベースの Enterprise Manager の一部である Backup Manager を使用できる。

REDO ログ・ファイルログ・ファイルログ・ファイルログ・ファイル ((((redo log file))))

データベースのバッファ・キャッシュ内のデータに加えられたすべての変更の記録を含むファイル。インスタンスに障害が発生すると、REDO ログ・ファイルを使用して、メモリー内の変更データがリカバリされる。

remote instance undo block writes

DBWn が強制書込みの一部としてロールバック・セグメント UNDO ブロックをディスクに書き込んだ回数。

remote instance undo header writes

DBWn が強制書込みの一部としてロールバック・セグメント・ヘッダー・ブロックをディスクに書き込んだ回数。

Server Management

Server Management(SRVM)は、Real Application Clusters 環境を管理するための包括的な統合システム管理ソリューションである。SRVM を使用すると、異機種間環境で複数インスタンス・データベースを管理できる。SRVM は、Oracle Enterprise Manager のオープンなクライアント / サーバー・アーキテクチャの一部である。クラスタ・データベースの管理の他に、SRVM では、ジョブのスケジューリング、イベント管理の実行、パフォーマンスの監視および統計の取得を実行して、Real Application Clusters データベースをチューニングできる。

アラート・ファイルアラート・ファイルアラート・ファイルアラート・ファイル ((((alert file))))

データベース処理中に発生する可能性があるエラー・メッセージおよび例外に関する情報が含まれているファイル。各データベース・インスタンスは、1 つのアラート・ファイルを保持する。

用語集用語集用語集用語集 -9

Page 212: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

一貫性読込み一貫性読込み一貫性読込み一貫性読込み ((((consistent read))))

GCS によって、一貫性読込みブロック(マスター・コピー・データ・ブロックともいう)の保持が保証される。一貫性読込みブロックは、すべての変更を保持するマスター・ブロック・バージョンである。これは、ブロックが変更される場合、クラスタ内の 1 つ以上の SGAに保持される。インスタンスがブロックを読み込む必要がある場合、現行のバージョンのブロックは、共有リソースとして多くのバッファ・キャッシュに常駐できる。そのため、すべてのインスタンス上のすべてのトランザクションがコミットしたかどうかにかかわらず、すべての SGA 内のブロックの 新コピーには、それらのインスタンスによってブロックに加えられた変更が含まれる。

インスタンスインスタンスインスタンスインスタンス ((((instance))))

Real Application Clusters データベースの場合、クラスタ内の各ノードノードノードノードには、データベースを参照する、実行中の Oracle9i ソフトウェアのインスタンスがある。

データベース・サーバー上で(コンピュータのタイプに関係なく)データベースを起動すると、Oracle によってシステム・グローバル領域システム・グローバル領域システム・グローバル領域システム・グローバル領域と呼ばれるメモリー領域が割り当てられ、1つ以上の Oracle プロセスが起動される。このような、SGA と Oracle プロセスの組合せをインスタンスという。インスタンスのメモリーおよびプロセスは、データベースのデータを効率的に管理し、データベースのユーザーのために機能する。ユーザーは、任意のインスタンスに接続し、Real Application Clusters データベース内の情報にアクセスできる。

各インスタンスには、一意の Oracle システム識別子システム識別子システム識別子システム識別子、インスタンス名インスタンス名インスタンス名インスタンス名、インスタンス番号インスタンス番号インスタンス番号インスタンス番号、ロールバック・セグメントロールバック・セグメントロールバック・セグメントロールバック・セグメントおよびスレッドスレッドスレッドスレッド ID がある。

インスタンス・グループインスタンス・グループインスタンス・グループインスタンス・グループ ((((instance group))))

パラレル操作に使用するインスタンスの数を制限するために使用する。インスタンス・グループは、それぞれに 1 つ以上のインスタンスを含めて任意の数だけ作成できる。次に、任意またはすべてのパラレル操作で使用するインスタンス・グループを指定できる。パラレル実行サーバーは、指定されたインスタンス・グループのメンバーであるインスタンス上でのみ使用される。

インスタンス番号インスタンス番号インスタンス番号インスタンス番号 ((((instance number))))

特定のインスタンスとデータ・ブロックのエクステントを対応付ける番号。インスタンス番号を使用すると、インスタンスを起動でき、挿入および更新に対して、そのインスタンスに割り当てられたエクステントを使用することが保証される。これによって、インスタンスが他のインスタンスに割り当てられた領域を使用しないことが保証される。インスタンス番号を使用して再起動されないかぎり、インスタンスは、他の空きリストのデータ・ブロックを使用できない。

INSTANCE_NUMBER初期化パラメータでデータ・ブロックのエクステントをインスタンスに対応付けると、様々な SQL オプションを使用できる。

インスタンス番号は、initsid.oraインスタンス初期化ファイルの INSTANCE_NUMBERパラメータによって指定される。

用語集用語集用語集用語集 -10

Page 213: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

インスタンス名インスタンス名インスタンス名インスタンス名 ((((instance name))))

インスタンスの名前。また、複数インスタンスで共通のサービス名が共有される場合、特定のインスタンスを一意に識別するために使用される。インスタンス名は、初期化パラメータ・ファイルの INSTANCE_NAMEパラメータによって識別される。インスタンス名は、Oracle システム識別子システム識別子システム識別子システム識別子と同じ。

インターコネクトインターコネクトインターコネクトインターコネクト ((((interconnect))))

Real Application Clusters およびキャッシュ・フュージョンの場合に、分割ノードノードノードノードのキャッシュ間でデータを送信するためのデータ・パス配置。

オペレーティング・システム固有レイヤーオペレーティング・システム固有レイヤーオペレーティング・システム固有レイヤーオペレーティング・システム固有レイヤー ((((operating system dependent layer: OSD))))

Oracle データベースのプラットフォームが UNIX の場合はそのベンダー、Windows NT の場合は Oracle によって開発された複数のソフトウェア・コンポーネントで構成されるソフトウェア・レイヤー。OSD レイヤーによって、Real Application Clusters の操作に必要な、主要なオペレーティング・システム / クラスタウェア・サービスがマッピングされる。

オペレーティング・システムのコンテキストのスイッチングオペレーティング・システムのコンテキストのスイッチングオペレーティング・システムのコンテキストのスイッチングオペレーティング・システムのコンテキストのスイッチング ((((operating system context switch))))

スレッドの割当て時間が経過した場合、優先順位の高いスレッドが実行できる場合、または実行中のスレッドが I/O の完了などを待機する必要がある場合に発生する。

仮想インタフェース・アーキテクチャ仮想インタフェース・アーキテクチャ仮想インタフェース・アーキテクチャ仮想インタフェース・アーキテクチャ ((((Virtual Interface Architecture: VIA))))

ユーザー・モードの IPC の実装。

逆キー索引逆キー索引逆キー索引逆キー索引 ((((reverse key index))))

列順序を保持しながら、各索引列のバイトを逆にする。これによって、索引の変更がリーフ・ブロックの小さい集合に集中する Real Application Clusters でのパフォーマンスの低下が回避される。キーを逆にすると、索引レンジ・スキャンに逆キー索引を使用できない。

キャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョンキャッシュ・フュージョン ((((Cache Fusion))))

キャッシュ・フュージョンを使用すると、ディスクへの強制書込みを発生させることなく、インターコネクトインターコネクトインターコネクトインターコネクトを経由してインスタンス間でデータ・ブロックを直接転送できる。1 つのインスタンスが、問合せ操作または DML 操作のために別のインスタンスのデータ・ブロックのカレント・コピーまたは一貫性読込みコピーを必要とする場合、保持側インスタンスは要求側インスタンスのキャッシュにそのブロックを直接転送できる。

用語集用語集用語集用語集 -11

Page 214: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

共有サーバー共有サーバー共有サーバー共有サーバー ((((shared server))))

多数のユーザー・プロセスが、非常に少数のサーバー・プロセスを共有できるように構成されたサーバー。これによって、サポートできるユーザーの数が増える。共有サーバーでは、多数のユーザー・プロセスがディスパッチャディスパッチャディスパッチャディスパッチャに接続する。ディスパッチャは、複数の受信ネットワーク・セッション要求を共通キューに送る。複数のサーバー・プロセスの共有プールの中で、あるアイドル状態の共有サーバー・プロセスが共通キューから要求を取り出す。これは、サーバー・プロセスの小規模プールが大量のクライアントを処理できることを意味する。「専用サーバー専用サーバー専用サーバー専用サーバー(dedicatet server)」と対比。

クラスタクラスタクラスタクラスタ ((((cluster))))

通常はそれぞれが異なるノードノードノードノード上で実行されるインスタンスの集合。各インスタンスは、ディスクに常駐する共有データベースへのアクセス時に、他のインスタンスと協調する。

グローバル・エンキュー・サービスグローバル・エンキュー・サービスグローバル・エンキュー・サービスグローバル・エンキュー・サービス ((((Global Enqueue Service: GES))))

グローバルに共有されるエンキューを調整するサービス。

グローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモン ((((Global Enqueue Service Daemon: LMD))))

GES リソース要求を管理するリソース・エージェント・プロセス。LMD プロセスは、デッドロック検出および GES 要求も処理する。リモート・リソース要求とは、別のインスタンスから発生する要求のことである。

グローバル・エンキュー・サービス・モニターグローバル・エンキュー・サービス・モニターグローバル・エンキュー・サービス・モニターグローバル・エンキュー・サービス・モニター ((((Global Enqueue Service Monitor: LMON))))

クラスタ全体を監視して、グローバル・リソースを管理する。LMON は、インスタンスやプロセスの期限切れ、および GCS や GES に関連するリカバリを管理する。特に、グローバル・リソースに関連するリカバリの部分を処理する。LMON が提供するサービスは、クラスタ・グループ・サービス(CGS)とも呼ばれる。

グローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービスグローバル・キャッシュ・サービス ((((Global Cache Service: GCS))))

キャッシュ・フュージョンを実装するプロセス。ブロックのブロック・モードをグローバル・ロールで保持し、インスタンス間のブロック転送を行う。GCS は、LMS や GES などのバックグラウンド・プロセスを使用してこれらのタスクを実行する。

グローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセス ((((Global Cache Service Process: LMSn))))

リモート GCS メッセージを処理する。現行の Real Application Clusters ソフトウェアでは、大 10 の LMSn プロセスが提供される。LMSn プロセスの数は、クラスタのノードノードノードノード間の

メッセージ通信量によって異なる。LMSn プロセスは、GCS リソースに対するインスタンスからの獲得割込み要求およびブロッキング割込み要求を処理する。クロス・インスタンス一貫性読込み要求の場合、LMSn はブロックの一貫性読込みバージョンを作成して、要求側インスタンスに送信する。また、リモート・インスタンスへのメッセージ・フローも制御する。

用語集用語集用語集用語集 -12

Page 215: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

グローバル・キャッシュ初期化パラメータグローバル・キャッシュ初期化パラメータグローバル・キャッシュ初期化パラメータグローバル・キャッシュ初期化パラメータ ((((global cache initialization parameters))))

すべてのインスタンス上のデータベース・バッファを保護する、グローバル・キャッシュの集合のサイズを設定する初期化パラメータ。

グローバル・データベース名グローバル・データベース名グローバル・データベース名グローバル・データベース名 ((((global database name))))

各データベースを一意に識別するための完全な名前。グローバル・データベース名の書式は、database_name.database_domain(sales.us.acme.com など)である。

コンソールコンソールコンソールコンソール ((((Console))))

Oracle Enterprise Manager のコンソールでは、強力なシステム管理を実現する直観的なグラフィカル・ユーザー・インタフェース(GUI)を介して、Oracle 環境の主要部分を管理できる。

サービス登録サービス登録サービス登録サービス登録 ((((service registration))))

PMON プロセス(共有サーバーを使用する場合は、共有サーバー・ディスパッチャ・プロセス)がリスナーに情報を自動的に登録する機能。この情報はリスナーに登録されるため、listener.oraファイルはこの静的情報で構成する必要はない。

サービス名サービス名サービス名サービス名 ((((service name))))

データベースの論理表現。データベースをクライアントに提示する方法。データベースは複数のサービスとして提供できる。また、サービスは複数のデータベース・インスタンスとして実装できる。サービス名は、グローバル・データベース名グローバル・データベース名グローバル・データベース名グローバル・データベース名を表す文字列である。グローバル・データベース名は、インストール時またはデータベースの作成時に入力したデータベース名(DB_NAME)およびドメイン名(DB_DOMAIN)で構成される。

グローバル・データベース名が不明な場合は、初期化ファイルにある SERVICE_NAMESパラメータの結合値からそのデータベース名を確認できる。

最高水位標最高水位標最高水位標最高水位標 ((((high water mark))))

データ・ブロックを格納するために領域が割り当てられているセグメント内の上限。コミットが実行されると、新しい上限が以前の上限より高い場合は、 高水位標が更新される。

シード・データベースシード・データベースシード・データベースシード・データベース ((((seed database))))

データベース作成時のユーザー入力を 小限に抑えた、すぐに使用できる構成済のデータベース。

システム・グローバル領域システム・グローバル領域システム・グローバル領域システム・グローバル領域 ((((System Global Area: SGA))))

データを格納し、Oracle インスタンスインスタンスインスタンスインスタンスの情報を制御する共有メモリー構造のグループ。

注意注意注意注意 : GC_FILES_TO_LOCKSを手動で設定すると、Real Application Clusters でのデフォルトのリソース制御動作がオーバーライドされる。

用語集用語集用語集用語集 -13

Page 216: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

システム変更番号システム変更番号システム変更番号システム変更番号 ((((System Change Number: SCN))))

コミットされたトランザクションとそれによって加えられた変更を一意に識別する番号。Real Application Clusters 内では、システム変更番号はインスタンス内で保持されるのみでなく、すべてのインスタンス間でクラスタと同期化される必要がある。

初期化パラメータ・ファイル初期化パラメータ・ファイル初期化パラメータ・ファイル初期化パラメータ・ファイル ((((initialization parameter file))))

データベース(initdb_name.ora)を初期化するパラメータ設定を含むファイル。Real Application Clusters の場合、このファイルによってクラスタ内のインスタンス

(initsid.ora)が初期化される。デフォルトの単一初期化パラメータ・ファイルは、SPFILE.ORAという。

スター・スキーマスター・スキーマスター・スキーマスター・スキーマ ((((star schema))))

問合せ中心のスキーマ。図で示すと、ファクト表がその中心にある。通常、ファクト表には、スキーマに対して操作される問合せの中心となるデータ要素が含まれる。多くの場合、ファクト表は非常に大規模であり、ファクト表内のデータの属性であるデータを含む複数のディメンション表に囲まれている。スター・スキーマでは、ディメンション表内の属性をファクト表のデータと結合する方法が直観的であるため、問合せ作成が簡単になる。スター・スキーマは、データ・ウェアハウス環境に 適であるが、OTLP 環境には有効ではない。

ストライプ化ストライプ化ストライプ化ストライプ化 ((((striping))))

ディスク間でのデータの関連ブロックのインターリーブ。ストライプ化を正しく実装すると、I/O が削減され、パフォーマンスが向上する。ストライプ化ソフトウェアは、オペレーティング・システム固有であるため、ベンダーのマニュアルを参照して、正しくインストールおよび構成する必要がある。ストライプ化には、主にシングル・ユーザー・ストライプ化とマルチユーザー・ストライプ化という 2 つの方法がある。これらの用語は、それぞれのタイプのストライプ化が も有効である環境のタイプを示している。通常、Real Application Clusters では後者が実装される。マルチユーザー・ストライプ化では、複数のハードディスク・ドライブ上で関連データを読み込む同時ディスク・アーム移動によって、パフォーマンスが向上する。ドライブ数に比例して、平均ディスク・アクセス時間が短縮される。

スレッドスレッドスレッドスレッド ID ((((thread ID))))

インスタンス用の REDO スレッドの番号。使用可能状態の REDO スレッド番号が使用できるが、他のインスタンスと同じスレッド番号は使用できない。

制御ファイル制御ファイル制御ファイル制御ファイル ((((control file))))

データベースの物理構造を記録し、データベース名、関連データベースおよびオンラインREDO ログ・ファイルの名前と位置、データベース作成のタイムスタンプ、現在のログの順序番号、チェックポイント情報、およびデータベースの構造と状態に関する他の様々な記録を含むファイル。

用語集用語集用語集用語集 -14

Page 217: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

接続時フェイルオーバー接続時フェイルオーバー接続時フェイルオーバー接続時フェイルオーバー ((((connect-time failover))))

初のリスナーが応答しない場合、クライアントの接続要求は他のリスナーに転送される。接続時フェイルオーバーは、リスナーが接続の試行前にインスタンスが起動されているかどうかを認識できるため、サービス登録サービス登録サービス登録サービス登録によって使用可能になる。

接続時ロード・バランス接続時ロード・バランス接続時ロード・バランス接続時ロード・バランス ((((connection load balancing))))

同一サービスの様々なインスタンスおよび共有サーバー共有サーバー共有サーバー共有サーバー・ディスパッチャ間で、アクティブな接続数を均衡化する機能。サービス登録ではリモート・リスナーに登録できるため、リスナーはすべてのインスタンスおよびディスパッチャを常に認識できる。このように、リスナーは、その場所に関係なく、特定のサービスに対するクライアントからの受信要求を、も負荷の少ないインスタンスおよびディスパッチャに送信できる。

専用サーバー専用サーバー専用サーバー専用サーバー ((((dedicated server))))

各ユーザー・プロセスに専用のサーバー・プロセスが必要なサーバー。サーバー・プロセスは、クライアントごとに 1 つある。Oracle Net によって、既存のサーバー・プロセスのアドレスがクライアントに返信される。その後、クライアントは指定されたサーバー・アドレスに接続要求を再送する。「共有サーバー共有サーバー共有サーバー共有サーバー(shared server)」と対比。

データ依存ルーティングデータ依存ルーティングデータ依存ルーティングデータ依存ルーティング ((((data dependent routing))))

アプリケーション内でのデータの使用方法に基づいたデータのルーティング方法。

データ・ファイルデータ・ファイルデータ・ファイルデータ・ファイル ((((datafile))))

表や索引など、論理データベース構造のコンテンツを含むファイル。1 つ以上のデータ・ファイルから、表領域と呼ばれる記憶域の論理単位が形成される。データ・ファイルは、1つの表領域および 1 つのデータベースのみと対応付けることができる。

データベース・ライターデータベース・ライターデータベース・ライターデータベース・ライター ((((Database Writer: DBWn))))

DBWn プロセスによって、データベース・バッファ・キャッシュ内の変更された(使用済)バッファがディスクに書き込まれる。

ディスク・アフィニティディスク・アフィニティディスク・アフィニティディスク・アフィニティ ((((disk affinity))))

ディスク上のデータと、そのデータにアクセスする必要があるインスタンスの関係。真のディスク・アフィニティは、シェアード・ナッシング・ディスク構成でのみ使用可能である。これによって、各パーティションが 1 つのインスタンスのみによってアクセスされるように、ディスク間で表領域をパーティション化できる。そのディスク上のデータにアクセスするインスタンスにはディスク・アフィニティがある。

ディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行ディスク書込みの強制実行 ((((forced disk writes))))

インスタンスが DML 操作用にデータ・ブロックを要求した場合に、他のインスタンスが実行するディスクへのデータ・ブロックの強制書込み。実際には、Oracle9i では、キャッシュ・フュージョンによって強制書込みが発生しないが、GC_FILES_TO_LOCKSパラメータに 1:1 または 1:n の解放可能リソースまたは固定リソースを指定した場合は、引続き強制書込みが使用可能になる。この場合、キャッシュ・フュージョンは使用禁止になる。

用語集用語集用語集用語集 -15

Page 218: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ディスパッチャディスパッチャディスパッチャディスパッチャ ((((dispatcher))))

多くのクライアントが、クライアントごとの専用サーバー・プロセスなしで同じサーバーに接続できるようにするプロセス。ディスパッチャは、複数の受信ネットワーク・セッション要求を処理して、共有サーバー・プロセスに送る。「共有サーバー共有サーバー共有サーバー共有サーバー(shared server)」を参照。

透過的アプリケーション・フェイルオーバー透過的アプリケーション・フェイルオーバー透過的アプリケーション・フェイルオーバー透過的アプリケーション・フェイルオーバー ((((Transparent Application Failover: TAF))))

Real Application Clusters や Oracle Real Application Clusters Guard などの高可用性の環境を目的としたランタイム・フェイルオーバー・メカニズム。これは、アプリケーションとサービス間の接続のフェイルオーバーおよび再確立を示す。これによって、接続に失敗した場合、クライアント・アプリケーションは自動的にデータベースに再接続され、処理中のSELECT文を再開することができる。この再接続は、Oracle Call Interface(OCI)ライブラリ内から自動的に実行される。

トランザクションごとのトランザクションごとのトランザクションごとのトランザクションごとの CR blocks received ((((CR blocks received per transaction))))

ブロックを排他アクセス・モードで保持するインスタンスから、そのブロックの CR バージョンを要求するインスタンスに転送される CR ブロックの数。

トランザクションごとのトランザクションごとのトランザクションごとのトランザクションごとの lock converts ((((lock converts per transaction))))

トランザクションごとの global local sync converts および global lock async converts の数。

トランザクションごとのトランザクションごとのトランザクションごとのトランザクションごとの lock gets ((((lock gets per transaction))))

トランザクションごとの global lock sync gets および global lock async gets の数。

Transmission Control Protocol/Interconnect Protocol((((TCP/IP))))

連携して動作するコンピュータがネットワーク上でリソースを共有できるようにするプロトコルのセット。

トランザクション・モニタートランザクション・モニタートランザクション・モニタートランザクション・モニター ((((transaction monitor))))

オペレーティング・システムより上位のトランザクション実行レイヤーを提供するソフトウェア製品のクラス。トランザクション・モニターはデータベースの更新を組み合せ、それらをデータベースに送る。このとき、トランザクション・モニターはデータベースの一貫性および正確性の一部を管理する。モニターによって、トランザクションのアトム性(更新が完全に実行されるか、またはまったく実行されないこと)の規則が守られることが保証される。トランザクション・モニターを使用するメリットには、スループットの向上がある。

ノードノードノードノード ((((node))))

インスタンスが常駐するマシン。

ハイブリッド・データベースハイブリッド・データベースハイブリッド・データベースハイブリッド・データベース ((((hybrid database))))

OLTP とデータ・ウェアハウス処理の両方の特長を備えたハイブリッド・データベース。

用語集用語集用語集用語集 -16

Page 219: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

パラレル実行パラレル実行パラレル実行パラレル実行 ((((parallel execution))))

パラレル実行は、単一のデータベース・トランザクションを完了するために同時に操作されるマルチ・プロセスを示す。パラレル実行は、シングル・インスタンスと複数インスタンスの両方の Oracle 上で機能する。パラレル問合せともいう。

パラレル実行自動チューニング機能パラレル実行自動チューニング機能パラレル実行自動チューニング機能パラレル実行自動チューニング機能 ((((parallel automatic tuning))))

パラレル実行に関連するすべてのパラメータの値を自動的に制御する。これらのパラメータは、サーバー処理の一部である並列度並列度並列度並列度(DOP)、マルチユーザー問合せ調整機能およびメモリーのサイズ指定に影響する。パラレル実行を初期化し、自動的にチューニングするには、PARALLEL_AUTOMATIC_TUNING初期化パラメータを trueに設定する。

表領域表領域表領域表領域 ((((tablespace))))

表および索引データ用の記憶域の割当てに使用される Oracle データベースの論理部分。各表領域は、1 つ以上の物理データ・ファイルに対応する。すべての Oracle データベースに表領域 SYSTEMがあり、その他の表領域がある場合もある。表領域は、関連する論理構造をグループ化するために使用される。たとえば、管理操作を簡単にするために、表領域によってアプリケーションのすべてのオブジェクトがグループ化される。

プロセス間通信プロセス間通信プロセス間通信プロセス間通信 ((((Inter-Process Communication: IPC))))

プロセス間通信レイヤーは、オペレーティング・システム固有のコンポーネント。様々なノードノードノードノード上のインスタンス間で、メッセージ、データ・ブロックの一貫性読込みバージョンおよびデータ・ブロックの現行のバージョンの転送を使用可能にする。

並列度並列度並列度並列度 ((((degree of parallelism: DOP))))

パラレル操作で使用されるプロセスまたはスレッドの数を指定する。各パラレル処理またはスレッドは、SQL 文の複雑さに応じて、1 つまたは 2 つのパラレル実行プロセスを使用できる。

マルチスレッド・サーバーマルチスレッド・サーバーマルチスレッド・サーバーマルチスレッド・サーバー ((((multi-threaded server: MTS))))

「共有サーバー共有サーバー共有サーバー共有サーバー(shared server)」を参照。

ユーザー・データグラム・プロトコルユーザー・データグラム・プロトコルユーザー・データグラム・プロトコルユーザー・データグラム・プロトコル ((((User Datagram Protocol: UDP))))

TCP/IP と同様ではあるが、管理がより簡単なプロトコル。UDP は、メッセージの順序付けなどを保証しないため、TCP/IP より信頼性に劣ると考えられる。

ユーザー・モードのユーザー・モードのユーザー・モードのユーザー・モードの IPC ((((user-mode IPC))))

ネットワーク・ハードウェアに直接アクセスする IPC(プロセス間通信)ベースのプロトコル。カーネル・モードの IPC とは異なり、ユーザー・モードの IPC を使用すると、プロトコルによって、カーネル領域へのデータのコピー、システム・コールの作成およびコンテキストのスイッチングの発生によるオーバーヘッドが回避される。

用語集用語集用語集用語集 -17

Page 220: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

リスナーリスナーリスナーリスナー ((((listener))))

サーバーで実行される独立したプロセス。クライアントの着信接続要求をリスニングし、サーバーへの通信量を管理する。リスナーは、サーバーが使用可能な場合、クライアント要求を受け取ってサーバーに渡す。クライアント(またはクライアントとして動作するサーバー)がサーバーとのネットワーク・セッションを要求するたびに、リスナーが実際の要求を受け取る。クライアントの情報がリスナーの情報と一致すると、リスナーはサーバーへの接続を許可する。

リポジトリ・データベースリポジトリ・データベースリポジトリ・データベースリポジトリ・データベース ((((repository database))))

Real Application Clusters 環境を管理するために Oracle Enterprise Manager が使用するデータが格納されている、Oracle データベース内の表の集合。このデータベースは、ノードノードノードノード上のすべての共有 Real Application Clusters データベースとも異なる。

ロード・バランスロード・バランスロード・バランスロード・バランス ((((load balancing))))

インスタンス間でのアクティブ・データベース接続の均等分散。パラレル実行で使用される場合は、CPU およびメモリー・リソース間で作業を分散させるためのパラレル実行サーバー・プロセスの分散を示す。

ロールバック・セグメントロールバック・セグメントロールバック・セグメントロールバック・セグメント ((((rollback segment))))

コミットされていないトランザクションのデータ・ブロックへの変更を取り消すためのトランザクションを含む。また、トランザクションのロールバックおよびデータベースのリカバリを行うための読取り一貫性を提供する。各ノードノードノードノードには、通常、2 つのロールバック・セグメントがあり、インスタンス初期化ファイルの ROLLBACK_SEGMENTSパラメータによって、RBSthread_id_rollback_number というネーミング規則を使用して識別される。

ロック・マネージャ・サーバーロック・マネージャ・サーバーロック・マネージャ・サーバーロック・マネージャ・サーバー ((((Lock Manager Servers: LMSn))))

「グローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセス(Global Cache Service process: LMSn)」を参照。

ロック・マネージャ・サーバー・プロセスロック・マネージャ・サーバー・プロセスロック・マネージャ・サーバー・プロセスロック・マネージャ・サーバー・プロセス ((((Lock Manager Server Process: LMS))))

「グローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセスグローバル・キャッシュ・サービス・プロセス(Global Cache Service process: LMSn)」を参照。

ロック・マネージャ・デーモン・プロセスロック・マネージャ・デーモン・プロセスロック・マネージャ・デーモン・プロセスロック・マネージャ・デーモン・プロセス ((((Lock Manager Daemon Process: LMD))))

「グローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモングローバル・エンキュー・サービス・デーモン(Global Enqueue Service Daemon: LMD)」を参照。

ロック・モニター・プロセスロック・モニター・プロセスロック・モニター・プロセスロック・モニター・プロセス ((((Lock Monitor Process: LMON))))

「グローバル・エンキュー・サービス・モニターグローバル・エンキュー・サービス・モニターグローバル・エンキュー・サービス・モニターグローバル・エンキュー・サービス・モニター(Global Enqueue Service Monitor: LMON)」を参照。

用語集用語集用語集用語集 -18

Page 221: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

索引索引索引索引

数字数字数字数字

2 層アーキテクチャ,2-33 層アーキテクチャ,2-3

AActive Users by Instance チャート,7-13

Oracle Performance Manager,7-13Active Users チャート

Oracle Performance Manager,7-13ALL_TABLES ビユー,4-19ALLOCATE EXTENT

DATAFILE 句,4-10INSTANCE 句,4-10

ALLOCATE EXTENT 句DATAFILE 句,4-10INSTANCE 句,4-10SIZE 句,4-9インスタンス番号,4-11エクステントの事前割当て,4-11排他モード,4-9

ALTER CLUSTER 文

ALLOCATE EXTENT 句,4-9,4-11ALTER DATABASE 文

DATAFILE RESIZE,A-5ALTER SESSION SET INSTANCE 文,4-8ALTER SESSION 文

SET INSTANCE 句,4-8ALTER TABLESPACE 文

READ ONLY 句,3-7ALTER TABLE 文

ALLOCATE EXTENT,4-9DISABLE TABLE LOCK 句,4-19ENABLE TABLE LOCK 句,4-19

MAXEXTENTS 句,4-12エクステントの割当て,4-11,4-12

AUTOEXTEND 句,A-5

BB2B モデル

Real Application Clusters,2-4

CCACHE

句、Oracle 順序,5-21CATCLUST.SQL スクリプト,6-9

Real Application Clusters のビューを作成するため

の使用,6-9Clusters Data Block Ping by Instance チャート

Oracle Performance Manager,7-13CPU 使用率

キャッシュ・フュージョンによる削減,6-4CR timeouts、チャート,7-7CREATE CLUSTER 文,4-6

FREELIST GROUPS 句,4-5FREELISTS 句,4-5

CREATE TABLE 文

FREELISTS 句,4-5クラスタ化表,4-6初期記憶域,4-10例,4-11

CREATE 文FREELISTS および FREELIST GROUPS の設定,4-5

Current Block Request チャート、Global Cache,7-11

索引索引索引索引 -1

Page 222: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

DDATAFILE 句

表,4-11DB_FILE_MULTIBLOCK_READ_COUNT

フル・テーブル・スキャン用の増加,5-22DBA_QUEUE_TABLES

アドバンスト・キューイングの表およびインスタン

ス・アフィニティの分析,5-24DBA_TABLES 表,4-19DELETE

ブロック・アクセス,3-6DISABLE TABLE LOCK 句,4-19dlm_request、チャート,7-11DML_LOCKS パラメータ

パフォーマンス,4-19

EE-Commerce

Real Application Clusters のアプリケーション,2-2データ・ウェアハウスからの分離,3-8

ENABLE TABLE LOCK 句,4-19

FFile I/O Rate by Instance Default チャート

Oracle Performance Manager,7-4,7-12File I/O Rate by Object Default チャート

Oracle Performance Manager,7-4,7-12File I/O Rate Default チャート

Oracle Performance Manager,7-4,7-12File Ping by Instance チャート

Oracle Performance Manager,7-3,7-9FREELIST GROUPS

再編成の必要性の判断,4-4パラメータ、索引の使用,4-7パラメータ、使用,4-5

FREELIST GROUPS 句,4-5,4-12FREELISTS

STORAGE 句,4-5クラスタ化表用の作成,4-6索引用の作成,4-7使用例,4-6パラメータ、索引の使用,4-7パラメータ、使用,4-5

FREELISTS 句,4-5

大値,4-5

GGC_FILES_TO_LOCKS パラメータ,A-6,A-16

エクステントと GCS リソースとの対応付け,A-15構文,A-4設定,A-4不適切な ping の削減,A-20例,A-5

GCSリソース統計、分析,6-19リソースの取得,5-25

GCS LMS プロセスの使用率,7-7GCS リソース,A-16

競合,A-15ブロックのマッピング,A-15

GES統計、競合の監視,5-24統計、分析,6-18メッセージ統計、分析,6-21リソース、分析,6-19

Global Cache Convert Timeouts by Instance チャート,

7-8Global Cache CR Request by Instance チャート,7-9

Oracle Performance Manager,7-3global cache CR request time、平均,7-3,7-7Global Cache CR Request チャート,7-7

Oracle Performance Manager,7-3Global cache CR timeouts,7-7Global Cache CR Timeouts by Instance チャート

Oracle Performance Manager,7-3Global Cache Current Block Instance Activity チャー

ト,7-12Oracle Performance Manager,7-4

Global Cache Current Block Request by Instance チャート,7-12

Oracle Performance Manager,7-4Global Cache Current Block Request チャート,7-11

Oracle Performance Manager,7-4Global Cache Freelist Waits by Instance チャート,7-9

Oracle Performance Manager,7-3Global Cache Lock Convert by Instance チャート,7-9

Oracle Performance Manager,7-3Global Cache Lock Convert チャート,7-8

Oracle Performance Manager,7-3Global Cache Timeouts チャート,7-7

索引索引索引索引 -2

Page 223: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

Oracle Performance Manager,7-3GLOBAL ヒント,6-10GV$CACHE_TRANSFER ビュー,6-9GV$CACHE ビュー,6-9GV$CLASS_CACHE_TRANSFER ビュー,6-9GV$FILE_CACHE_TRANSFER ビュー,6-9GV$LIBRARYCACHE ビュー,6-9GV$ROWCACHE ビュー,6-9

IINITIAL 記憶域パラメータ

小値,4-10INSERTS

Oracle での処理,3-3使用不可能な空き領域,4-9同時,4-5

INST_ID 列,6-10Instance Ping チャート

Oracle Performance Manager,7-3INSTANCE_NUMBER パラメータ,4-8

設定,4-11INSTANCE_ROLE

セカンダリ・インスタンス接続での使用,1-5INSTANCE 句

SET INSTANCE 文,4-8割当て,4-11

IPCキャッシュ・フュージョン,6-5

LLibrary Cache Lock by Instance チャート,7-11

Oracle Performance Manager,7-4Library Cache Lock チャート,7-10

Oracle Performance Manager,7-4LMS

フロー制御メッセージ機能,6-21Lock Activity Default チャート

Oracle Performance Manager,7-4Lock Activity チャート,7-12

MMAXEXTENTS 記憶域パラメータ

エクステントの事前割当て,4-12自動割当て,4-10

Maximum Ping by Block チャート

Oracle Performance Manager,7-4Maxmum Ping by Block チャート,7-10MINEXTENTS 記憶域パラメータ

自動割当て,4-10,4-12デフォルト,4-10

Nn 層アーキテクチャ

Real Application Clusters,2-3パフォーマンスの監視およびチューニング,2-5メリット,2-5

OObject Ping by Instance チャート

Oracle Performance Manager,7-4Oracle

互換性,4-9Oracle Enterprise Manager

起動Oracle Performance Manager,7-5

Oracle NetReal Application Clusters,1-3

Oracle Performance Manager,7-2概要,7-2起動,7-5チャートの表示,7-5

PPCTFREE

競合,5-18PCTINCREASE パラメータ

表エクステント,4-9Ping by Block Class チャート

Oracle Performance Manager,7-3,7-10Ping by Block チャート,7-10Ping by File チャート

Oracle Performance Manager,7-3,7-9Ping by Object チャート

Oracle Performance Manager,7-3,7-10Ping by Object ドリルダウン・チャート

Oracle Performance Manager,7-10PL/SQL

Real Application Clusters,1-6

索引索引索引索引 -3

Page 224: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

RReal Application Clusters

ディスク・アフィニティ,2-9配置フェーズ,1-7パラレル実行,A-16

RMANReal Application Clusters,1-6

Row Cache Lock by Instance チャート,7-11Oracle Performance Manager,7-4

Row Cache Lock チャート,7-11Oracle Performance Manager,7-4

SSELECT

ブロック・アクセス,3-6Session Default チャート

Oracle Performance Manager,7-4Session チャート

Oracle Performance Manager,7-12SIZE 句

エクステントの割当て,4-11Statspack

競合の監視への使用,5-24

TTABLE_LOCK 列,4-19TIMED_STATISTICS

統計収集のための設定,6-9Total Ping チャート,7-7

Oracle Performance Manager,7-3,7-7TRACE_ENABLED パラメータ

実行履歴のトレース,5-3

UUPDATE

ブロック・アクセス,3-5USER_QUEUE_TABLES

アドバンスト・キューイングの表およびインスタンス・アフィニティの分析,5-24

USER_TABLES 表,4-19Users Default チャート,7-13

Oracle Performance Manager,7-4Users Logged on チャート,7-13

Users Per Instance Default チャート

Oracle Performance Manager,7-4,7-13UTLBSTAT

競合の監視への使用,5-24統計の記録,5-3

UTLESTAT競合の監視への使用,5-24統計の記録,5-3

VV$BH

競合オブジェクトの識別,5-11,5-19強制書込みの識別への使用,5-24

V$BH ビュー,3-3V$CACHE

競合オブジェクトの識別,5-11,5-19V$CACHE_LOCK ビュー,6-10V$CACHE_TRANSFER

競合オブジェクトの識別,5-11,5-19競合の監視への使用,5-24

V$CLASS_CACHE_TRANSFER統計収集,5-10

V$FILE_CACHE_TRANSFER統計収集,5-10

V$LOCK_ACTIVITYブロック・モード変換の割合の監視,5-24

V$LOCK_ACTIVITY ビュー,6-10V$LOCKS_WITH_COLLISIONS ビュー,6-10V$ROLLNAME ビュー,6-10V$ROWCACHE

競合,5-20V$SYSSTAT

統計,5-5V$SYSTEM_EVENT

Real Application Clusters 固有のイベント,6-28待機イベントおよび関連する統計,5-7リソースの競合,5-20

V$SYSTEM_EVENT ビュー,6-27V$ 固定ビュー,7-2VIA

インターコネクト・プロトコル,6-5

索引索引索引索引 -4

Page 225: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ああああ

空きリストGCS リソース,A-15クラスタ,4-6クラスタ化表用の作成,4-6索引用の作成,4-7排他モード,4-5,4-9ハッシュ・クラスタ,4-6リストの数,4-5例,4-6

空きリスト・グループ!blocks の設定,A-5セッションへの割当て,4-8同時挿入,4-3

アクティブ / アクティブ構成Real Application Clusters,1-3

アドバンスト・キューイングReal Application Clusters 内、パフォーマンス,

5-24キュー・テーブルのインスタンス・アフィニティ,

5-24キュー・テーブルのキャッシュ転送,5-25

アフィニティ表およびアドバンスト・キューイング,5-24

アプリケーションReal Application Clusters の分析,3-2Real Application Clusters 用の開発,3-2スケーラビリティ,6-4設計,B-2問合せのチューニング,5-22トランザクション,3-2パフォーマンス特性,5-15パフォーマンスの問題,5-22パフォーマンス問題の診断,5-23表アクセス・パターン,3-2

アプリケーションの拡張,3-1アプリケーション・プロファイル

事例,B-4

いいいい

移行

重要な表の事前識別,4-4排他モードへの戻り,4-9

一貫性読込み処理およびチューニングの問題,6-2

一貫性読込みブロック,6-2イベント 29700

GES リソース統計を収集するための有効化,6-19インスタンス

空きリスト,4-9空きリスト・グループとの対応付け,4-7インスタンスの追加,4-11インスタンス番号,4-11エクステントへの対応付け,4-8スケーラビリティ,3-15追加,3-15データ・ファイルへの対応付け,4-11番号,4-8

インターコネクトReal Application Clusters のプロトコル,6-6パフォーマンス,6-6

ええええ

エクステントGCS リソースの割当て,A-15インスタンスへの未割当て,4-10インスタンスへの割当て,4-8,4-11サイズ,4-9事前割当て,4-9初期割当て,4-10ファイルの指定,4-10

エラー・メッセージ記憶域オプション,4-5

おおおお

応答時間

増大、原因,5-18オーバーラップ

アプリケーションの表,3-13オブジェクト

空きリストを使用した作成,4-3競合の識別,5-11

オペレーティング・システムパフォーマンス用のストライプ化,5-22

オンライン・トランザクション処理Real Application Clusters,2-2

索引索引索引索引 -5

Page 226: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

かかかか

カレント・イメージ一貫性読込み処理およびチューニング,6-2

監視Real Application Clusters の統計,5-2手順,6-7目標,6-7

管理

Real Application Clusters での拡張,2-12

きききき

記憶域オプションエクステント・サイズ,4-9,4-10,4-11クラスタ化表,4-5表,4-5

起動Oracle Performance Manager,7-5排他モード,4-11

機能

活用,1-2新規,xviii

機能の移動,2-6機能パーティション化,3-8逆キー索引

競合の 小化,4-16キャッシュ転送

アドバンスト・キューイングのキュー・テーブルの

データ・ブロック,5-25キャッシュ・フュージョン

E-Commerce アプリケーション,2-2効果,6-4処理、オーバーヘッドの 小化,3-2チューニング,6-1パフォーマンス,6-1パフォーマンス監視の目標,6-7パフォーマンス統計のソース,6-8パフォーマンスの問題,6-6リソース、空きリストへの対応付け,A-15リソース、共有,A-6リソース、指定,A-5リソース、排他,A-6

キャッシュ・フュージョン・リソースへのブロックのマッピング,A-6

行キャッシュ競合,5-20

競合

Real Application Clusters 上のアプリケーション固有の競合,5-21

表データ,4-11ブロック,4-11,A-15ブロック・サイズ,5-18ブロックに対する 小化,4-11リソース,5-20

共有サーバー

Real Application Clusters,1-4接続時ロード・バランス,1-4

くくくく

クラスタ

空きリスト,4-6空きリスト・グループ,4-9エクステントの割当て,4-11ハッシュ・クラスタ,4-6パラレル実行のチュ―ニング,A-16

クラスタ化表

空きリストおよび空きリスト・グループ,4-6クラスタ・ファイル・システム

Real Application Clusters,1-6グローバル V$ 表,7-2グローバル・エンキューの統計

分析,6-16グローバル・キャッシュ

一貫性、測定,5-13グローバル・キャッシュの同期化コスト

計算,5-18グローバル・キャッシュの統計

分析,6-11グローバル作業の割合

測定,5-16

ここここ

高可用性

Real Application Clusters,1-2互換性

共有モードおよび排他モード,4-9コストベース・オプティマイザ,2-7コンテキストのスイッチング

キャッシュ・フュージョンによる削減,6-4コンポーネント・ベースのアーキテクチャ,2-4

索引索引索引索引 -6

Page 227: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ささささ

サーバー調整イベント,6-29高水位票,A-11移動,A-11

作業の割合

測定,5-16作業負荷

E-Commerce とデータ・ウェアハウスの区別,3-8Real Application Clusters に対する特徴付け,3-10アプリケーションのパフォーマンス,5-15一般的なチューニング推奨事項,5-10オブジェクトの競合,5-11パフォーマンスの測定,5-9分散の概要,3-7

索引空きリストおよび空きリスト・グループ,4-7インスタンス間競合の問題,4-16逆キー、競合の 小化,4-16パーティション化、事例,B-17

しししし

識別子リソース,A-21

事前割当て空きリスト・グループへのエクステントの割当て,

4-10エクステント,4-9

実行履歴TRACE_ENABLED パラメータによるトレース,5-3

順序CACHE オプションを使用しない場合の競合,5-20キャッシュされていない順序および競合,5-20

順序番号

グローバル競合の検出,4-13使用,4-12

順序番号の乗数,5-21事例

Real Application Clusters,B-2新機能,xviii診断

パフォーマンス問題,5-23

すすすす

スケーラビリティキャッシュ・フュージョンの使用,6-4作業負荷の測定による評価,5-9パーティション化,3-15

ストライプ化ディスク・アフィニティ,2-9

スループット

キャッシュ・フュージョンの使用,6-4

せせせせ

制御ファイルデータ・ファイル,4-10

セグメントヘッダー,A-22

セグメント・ヘッダー新しいアプリケーション,5-19競合,5-19挿入中の処理,3-3

設計Real Application Clusters 用のデータベース,4-2

専用サーバー接続時ロード・バランス,1-4

そそそそ

増分的な拡張,4-11

ちちちち

チャート、統計,7-7チューニング

Real Application Clusters の概要,5-2一般的な推奨事項,5-10問合せ,5-22

地理的パーティション化方法,3-8

てててて

ディスク・アフィニティ,2-9パラレル問合せ,2-9

ディスク書込みの強制実行,A-20不適切,A-19,A-20ブロック・クラス別の識別,6-24

索引索引索引索引 -7

Page 228: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

ディスク書込みの強制実行、チャート,7-7データ依存ルーティング,3-10データ位置

Real Application Clusters,2-7データ・ウェアハウス

E-Commerce からの分離,3-8Real Application Clusters でのアプリケーションの

配置,2-6データ・ディクショナリ

ビューの問合せ,6-9データ・ディクショナリ・キャッシュ

競合,5-20データのパーティション化

GCS リソース,A-15空きリスト,A-15表データ,A-15

データ・ファイル

エクステントの割当て,4-10各表の複数ファイル,4-11,A-15

データ・ブロックアドバンスト・キューイングのキャッシュ転送,

5-25競合、原因,5-18

データベースReal Application Clusters 用の設計方法,4-2設計,B-2

データべースの設計

事例,B-3

とととと

透過的アプリケーション・フェイルオーバーReal Application Clusters,1-4

同期化コストの計算,5-18コストの決定,5-12

統計

GCS、競合の監視,5-24Oracle による収集,6-8Real Application Clusters の も重要なリスト,5-4V$SYSSTAT 内のクラス,5-5V$SYSTEM_EVENT,5-7競合の 小化,5-14グローバル・キャッシュ、分析,6-11収集のための TIMED_STATISTICS の設定,6-9チューニングのための記録,5-3内容,5-2

ビュー,5-8分析、GES,6-22保持,5-2

統計チャート,7-7統計の記録

チューニング用,5-3動的パフォーマンス・ビュー

作成,6-9特性

アプリケーションのパフォーマンス,5-15トランザクション・プロセス・モニター,3-10トランザクション量

事例,B-10トレース

TRACE_ENABLED による実行履歴のトレース,5-3トレース・ファイル

位置,5-4

のののの

ノード

追加,2-12,4-11ノード内パラレル化,2-7ノードの追加,2-12

はははは

バージョン、Oracle互換性,4-9

パーティション化機能,3-8事例,B-14スケーラビリティ,3-15データ、データ・ファイル,4-11トランザクション,3-10物理表,3-9部門,3-8ユーザー,3-8

排他モード

空きリスト,4-5,4-9インスタンス番号の指定,4-11起動,4-11

配置

Real Application Clusters,1-7Real Application Clusters での方法,2-3アプリケーション開発方法,3-2

索引索引索引索引 -8

Page 229: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

パッケージ・アプリケーション

スケーラビリティ,6-4ハッシュ・クラスタ,4-6パフォーマンス

Real Application Clusters アプリケーションの問題,

5-22影響する主な要素,6-6期待値およびキャッシュ・フュージョン,6-7作業負荷の測定,5-9チューニングおよびインスタンス間パフォーマン

ス,6-1問題、識別,6-27問題、診断,5-23履歴のメンテナンス,6-8

パラメータ

記憶域,4-5,4-9パラレル・インスタンス・グループ,2-8パラレル化

Real Application Clusters,2-6パラレル問合せの 適化,2-7

パラレル実行

クラスタ,A-16ロード・バランス,2-8

ひひひひ

必要な CPU サービス時間

計算,5-12ビュー

Real Application Clusters での作成,6-9Real Application Clusters のパフォーマンスに も

重要なビュー,5-4表

GCS リソース,A-15アフィニティおよびアドバンスト・キューイング,

5-24エクステントの割当て,4-11オーバーラップ,3-13競合,4-11クラスタ,4-6使用不可能な空き領域,4-9初期記憶域,4-10複数のファイル,4-11読取り専用,3-7ロック、使用禁止,4-19

表アクセス分析事例,B-5

表領域

設計、アクセス分散,4-14

ふふふふ

ファイルエクステントの割当て,4-10

フェイルオーバーReal Application Clusters,1-2

不適切な ping,A-3不適切な強制書込み,A-19不適切なディスク書込みの強制実行,A-20部門

パーティション化方法,3-8プライマリ / セカンダリ構成

Real Application Clusters,1-3ブランチ・ブロック

競合の 小化,4-16フロー制御メッセージ機能

GES,6-21ブロック

競合,4-11,A-15競合の 小化,4-11リソース境界の動的割当て,A-10

ブロック・サイズ

競合,5-18問合せパフォーマンス用の増加,5-22

プロトコルインターコネクト,6-5

分析Real Application Clusters アプリケーション,3-2

へへへへ

平均 global cache CR request time,7-3,7-7並行性

挿入および更新,4-5並列度(DOP),2-6

ほほほほ

ホット・ブロック識別,6-24

索引索引索引索引 -9

Page 230: Oracle9i Real Application Clusters配ൿ渰䨰蠰猰터픰ꤰﰰ 뤀 ...Oracle9i Real Application Clusters配置およびパフォーマンス, リリース1(9.0.1) 部品番号:

めめめめ

メッセージGES による処理,6-21

メッセージの統計分析、GES,6-22

メモリマップ IPCキャッシュ・フュージョン,6-5

ゆゆゆゆ

ユーザーインスタンス間の移動,3-15パーティション化方法,3-8

ユーザー・セッション

空きリスト・グループとの対応付け,4-7ユーザー・プロセス

空きリスト・グループとの対応付け,4-8ユーザー・モードの IPC

キャッシュ・フュージョン,6-4,6-5

よよよよ

読込み / 書込み競合キャッシュ・フュージョン,6-1

らららら

ライブラリ・キャッシュ

競合,5-21ラッチ

統計の分析,6-25

りりりり

リーフ・ブロック競合の 小化,4-16

リソースGCS リソース,A-15競合,5-20識別子,A-21名前のフォーマット,A-21ブロック・モード変換、タイプ別分析,6-23変換タイムアウト、分析,6-15

リソース共有システム,4-11リソースの取得

GCS,5-25

領域

インスタンスへの未割当て,4-10エクステントの割当て,4-11排他モードで使用不可能,4-9

領域パラメータ

競合,5-20リリース 9.0.1 より前のロックの設定,A-2

るるるる

ルーティング、データ依存,3-10

ろろろろ

ローカル作業の割合

測定,5-16ロード・バランス,2-8ロック

GC_FILES_TO_LOCKS の設定による使用の判断,

A-2GC_FILES_TO_LOCKS を使用したリリース 9.0.1 よ

り前のロックの設定,A-2リリース 9.0.1 より前のロックを使用する場合,A-3

ロック・アクティビティの割合、チャート,7-12

わわわわ

割当てGCS リソース,A-15エクステント,4-11,4-12エクステント、動的,A-15キャッシュ・フュージョン・リソース,A-7自動,4-11,4-12

索引索引索引索引 -10