WindowsでのOracle

<ここに画像を挿入>
WindowsでのOracle Database:
ベスト・プラクティスと将来の方向性
Alex Keh
Principal Product Manager, Server Technologies
議題
•
•
•
•
Oracle Database 11g:新機能
サポートされるオペレーティング・システム
データベース・アーキテクチャ
Windowsのベスト・プラクティス(32ビットと64ビット)
•
•
•
•
•
•
診断性
CPU使用率の最適化
ネットワークの最適化
ファイルI/Oの最適化
32ビットWindowsのベスト・プラクティス
64ビットWindowsのベスト・プラクティス
<ここに画像を挿入>
Oracle Database 11g:新機能
Windowsで最適なパフォーマンスを最良の
価格で
•
TPC-C価格性能比カテゴリにて全プラットフォームのトッ
プに
• WindowsのOracle Database 11g
TPC-Cの価格性能比カテゴリ
11g
SQL 2005
ベンチマーク最高順位
1位
3位
$0.73
$0.84
tpmC
102,454
82,774
公開日
07/9/12
07/3/27
価格/tpmC
•
…TPC-C性能比カテゴリでもオラクルが1位に
2007/11/29時点 HP ProLiant ML350G5は102,454 tpmC、$.73/tpmC、公開日2007/12/31。HP Integrity Superdome Serverは4,092,799 tpmC、$2.93 tpmC、公開日2007/8/6
(TPC-C性能比1位獲得)。 出典:Transaction Processing Performance Council(TPC)www.tpc.org
Active DirectoryとWindowsセキュリティ
•
データベース登録と名前解決
•
•
OS認証によるActive Directoryへの認証接続をサポート
Kerberos認証
•
より強力な暗号化アルゴリズム(DES3、AES、RC4)
•
•
•
•
MS KDCサポートのデフォルト暗号化タイプに対応
デフォルトでDNSドメイン名をKerberos REALM名として使用
MSの異なるドメイン間設定でOracleデータベースに
Kerberos認証を使用
Kerberosユーザー名で30文字制限を廃止
Oracle VSSライター
•
Oracle Volume Shadow Copy Service(VSS)ライター
はWindows VSSと透過的に統合
•
•
•
•
•
Oracle VSSライターは自動でOracle DBにインストール
VSSリクエスタでOracleデータベースを自動オンライン・ポイント・イン・タ
イム・コピー
簡単なバックアップとリカバリ手順
移動可能なスナップショットで別のサーバーへオフロー
ド・バックアップとレポートを実施
Oracle Recovery Manager(Oracle RMAN)とフラッシ
ュ・リカバリ領域との統合
•
•
リストア・ファイルへのインテリジェントな事後ストア処理
• 例:ファイルのリカバリ、必要なディレクトリ作成後にマウント/非マウ
ント・モードでインスタンスを起動
VSSフレームワークでシャドウ・コピーされたアーカイブ・ログの自動削
除
WindowsでのOracle Direct NFS Client
• ネットワーク接続ストレージ(NAS)はネットワーク・ファイ
ル・システム(NFS)を使用
• Oracle Database 11gはWindows NFS v3への直接アク
セスを提供
• Oracle Disk ManagerライブラリのDBカーネルの一部
• ほぼすべてのプラットフォームとNFSサーバーに共通の
Oracle NFSインタフェース
• Oracleが使用する特定のI/Oパターンにカスタマイズ
• OSの多くのソフトウェア層をバイパス
• Kernel NFSをネイティブ・サポートしないWindowsでとくに
便利
• 利点:高パフォーマンス、容易な管理性、簡易化されたチュ
ーニング、より優れた診断性
Oracle Direct NFS
• 低コストのNICでOracle Direct NFSを線形に拡張可能
• リンク・アグリゲーションをサポートする高価なスイッチは不要
Oracleがスイッチの代わりにロードバランシングを実施
• パラレル・ネットワーク・パスで、より多くのNICによる、より多くの帯
域を確保
• Oracle Direct NFSはローエンドからハイエンドまでのデー
タベース・サーバーで優れたソリューション
Grid Control for Microsoft Servers
システム対象範囲の体系的な拡張方法
• おもな利点:一元管理
• GCで新コンポーネントの
監視と管理を実現
• Windowsホスト管理
• MOMコネクタ
• Microsoftプラグイン:
•
•
•
•
•
Exchange
SQL Server
Active Directory
.NET Framework
IIS
GC for Microsoft Exchange Server
• Grid Control 10.2.0.4で新規に提供
• 管理エージェントから自動導入
• OTNからのダウンロードは不要
• 検出
• 組織、ルーティング・グループ、Microsoft Exchange Server
• 監視
•
•
•
•
インバウンドおよびアウトバウンドのMTA/SMTP/情報ストア接続
メッセージ・トラフィック
インバウンド/アウトバウンド・キュー
リソース使用率
GC for Microsoft Exchange Server
• レポート
• 標準搭載
• 構成データ
•
•
•
•
Exchangeリンク
Exchangeコネクタ
Exchangeクラスタ・リソース
Active Directory
GC for Microsoft Exchange Server
Management Connector for Microsoft
Operations Manager (MOM)
• Oracle Enterprise ManagerへのMOMアラートの選択的
な送信を実現
• イベント・ルールと解決状態による自動および手動アラート送信
• MOM変更時にOracle Enterprise Managerを自動更新
• Oracle Enterprise Manager内の柔軟なモデリング・オプ
ション
• 一般的なMOM管理ホスト・ターゲット
• MOMコンピュータをOracle EM内の個別ターゲットにマッピング
• 既存のOracle EMターゲットにMOMアラートを関連づけ
<ここに画像を挿入>
サポートされるWindowsオペレー
ティング・システム
Windows 32ビットプラットフォームのサポー
ト
オペレーティング・システム
9i R2
10g R1 10g R2
11g
Windows 2000
はい
はい
はい
はい
Windows XP Professional
はい
はい
はい
はい
Windows Server 2003
はい
はい
はい
はい
Windows Vista
いいえ
いいえ
はい
はい
Windows Server 2008
いいえ
いいえ
予定
予定
予定 – その時点の最新DBパッチセットを利用可能
Windows 64ビットプラットフォームのサポート
オペレーティング・システム
9i R2
10g R1
10g R2
11g
Itanium版Windows Server
2003
はい
はい
はい
TBD
x64版Windows XPおよび
Windows Server 2003
いいえ
いいえ
はい
はい
x64システム対応Windows
Vista
いいえ
いいえ
予定
はい
x64システム対応Windows
Server 2008
いいえ
いいえ
予定
予定
Itanium版Windows Server
2008
いいえ
いいえ
TBD
TBD
TBD – 未定、今後発表予定
<ここに画像を挿入>
Windowsアーキテクチャ上の
Oracleデータベース
アーキテクチャ:スレッド・モデル
Oracleプロセス
SGA
3GB
または
8TB
(総サイズ)
バックグラウンド・スレッドとフォアグラウンド・スレッド
コード
SGAは
DBバッファ、
ログ・バッファ
共有プール、
ほかのメモリの
割当てを含む
各スレッドは
PGAやスタック、
ほかのメモリの
割当てで構成
データベース・アーキテクチャ
• スレッド・モデル
• Oracleプロセス・アーキテクチャの直接ポートではない
• データベース・インスタンスごとの最大メモリは3GB(32ビ
ット)または8TB(64ビット)
• VLMサポートにより32ビットで3GB以上を実現
• Windowsのサービス・プロセスとして実行
• オペレーティング・システムの制限以外は、メモリ、接続、
リソースの制限なし
Windows Server 2003における
Oracleの機能強化
• ラージ・ページ・サポート
• 大容量のメモリを必要とするインスタンスの場合、ラージ・ページ・
サポートでパフォーマンスを向上可能
• レジストリ・パラメータORA_LPENABLEを1に設定
• 32ビット – デフォルトは4KB – 2MB
• Itanium – デフォルトは8KB – 16MB
• x64 – デフォルトは8KB – 2MB
• メモリ/スケジューリングでNUMAをサポート
• データベースはノード構成に基づき、メモリとスケジュールをインテ
リジェントに割当て
• ベスト・プラクティス:AMDのNUMAはパッチ10.2.0.2 P5から対応
<ここに画像を挿入>
32ビットおよび64ビットWindows
のベスト・プラクティス
11gクライアントの診断性
• ADRとの統合
• OCIとネットトレースおよびロギングではADRをデフォルト
で使用
• クライアント側のマルチスレッドでの診断性コンテキストを
サポート
• 最初の障害の取得
• クライアントおよびサーバーのトレース・ファイルの相関性
• one-off診断パッチの削減
• 構造ダンプ機能
クライアント特性
• V$SESSION_CONNECT_INFO/GV$_SESSION_CO
NNECT_INF
• CLIENT_CHARSET (NLS character set)
• CLIENT_CONNECTION(同機種/異機種)
• CLIENT_OCI_LIBRARY(ホーム・ベース、Oracle Instant Client
Full/Light)
• CLIENT_VERSION(クライアントのRSFバージョン)
• CLIENT_DRIVER(OCI/JDBC/その他)
• OCI_ATTR_DRIVER_NAMEでサード・パーティのドライ
バを設定
CPUチューニング
• OracleはOSを通じて全プロセッサを使用する
• ORACLE_AFFINITYレジストリ値を設定し、どのスレッド
をどのプロセッサで実行するかOracleに指示可能(全イン
スタンスに同様の設定)
• Oracle Database Resource Managerで異なるクラスの
ユーザーにCPU使用率を設定
• たとえば、ゴールド・カスタマーでCPUの50%を、シルバー・カスタ
マーで30%、残りで20%を使用するようDBに設定するなど
• スレッドの優先度はORACLE_PRIORITY変数でレジスト
リに設定可能
CPUチューニング – 高CPUの診断
• Process Explorer:スレッドへドリルダウン
• 高CPUのスレッドIDを取得して問合せを実行
• SELECT a.spid, b.username FROM v$process a,
v$session b WHERE a.addr= b.paddr AND a.spid =
<thread number>
ネットワークのベスト・プラクティス
• システムごとに1リスナーを使用
• Windows Serverのデフォルトのキュー・サイズは50 –
LISTENER.ORAのQUEUESIZEパラメータで増加 – ログ
イン・ストーム時のエラーを防止
• リスナー・ログイン・ストーム・ハンドラ
• LISTENER.ORAのサーバー側で構成可能(RATE_LIMIT = <max
conn/sec>)
• ログイン・ストームが問題になっている場合のみ使用
ネットワークのベスト・プラクティス
• SQLNET.ORAまたはTNSNAMES.ORAのSDU_SIZEを増
やす
• SQL*Netパケット・サイズを制御
• 11gのデフォルトSDU_SIZEは8K
• バルク・データの転送シナリオでは、sqlnet.oraまたは
tnsnames.oraのSDU_SIZEを増やす
• サイズは32Kまで増加可能
• 11gおよび10gクライアントとサーバーの混在環境では、いずれかに
設定されたSDU_SIZEの低い値が採用される(11g以前のデフォルト
は2K)
• 10gでは、SDU_SIZEを8K以上に増やす
• よくある誤解: MTUに合わせて設定しないこと
ネットワークのベスト・プラクティス:
共有サーバーvs専用サーバー
• 専用サーバーは最高のパフォーマンスを提供
•
•
•
•
各クライアント接続は独自のスレッドを保持
メモリ使用率はサーバー・スレッドごとに2~4MB
OracleはOLTPベンチマークで専用サーバーを使用
メモリ使用により、スケーラビリティに限界あり
• 共有サーバーは大量のメモリを節約
• アイドル接続でもメモリをあまり消費せず
• ディスパッチャが共有サーバーへリクエストを渡すことで待機時間発
生
• 大量のアイドルをもつ大量の接続数で効果的
ネットワークのベスト・プラクティス:
共有サーバーvs専用サーバー
• 推奨事項
• 十分な物理メモリがある場合は専用サーバーを使用
• それ以外では、一定の期間アイドルになる可能性のあるセッションす
べてで共有サーバーを使用
• 少数の高パフォーマンス接続/問合せでは、専用サーバーを
使用
ネットワークのベスト・プラクティス:
共有サーバーの使用
• クライアント接続は事前に起動されたサーバー・スレッドを共有
• リソースを無駄にする専用アイドル・スレッドなし
• tnsnames.oraにてクライアント上で共有サーバーを有効化
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)
(HOST=sales-server)(PORT=1521))
(CONNECT_DATA= (SERVICE_NAME=sales.us.acme.com)
(SERVER=shared) ))
• サーバーのinit.oraパラメータを修正して共有サーバーを有効化
• おおよそのガイドライン: 500セッションごとに20または30の共有サーバ
ーを準備し、そこからチューニングする
• 50~100セッションごとに1つのディスパッチャを使用する
• 詳細は『ネットワーク管理者ガイド』を参照
ネットワークのベスト・プラクティス:
データベース常駐接続プール
• Oracle専用サーバーをプール
• サーバー側接続プールを中間層システムとプロセス全体で共有
• 全サーバー構成に共存
• 専用サーバー、共有サーバー、Oracle RAC
• データベース・サーバーに無数のクライアント・プロセスが接続してお
り、各プロセスが短期間データベース・サーバー・セッションを維持す
る必要がある場合に便利
• テスト環境では、2GBデータベース・サーバーに対して10,000接続の
サポートを実現
• プーリングはオプションでDBAによりサーバーで有効化される
• クライアント接続文字列には、(SERVER=POOLED)も必要
ネットワークのベスト・プラクティス:
接続タイムアウト
• クライアント側の接続タイムアウト:接続文字列に複数のアド
レスがあるとき、迅速なフェイルオーバーを実現
• TCP.CONNECT_TIMEOUT – 11gの機能 - 数秒で実施 – 非デフォ
ルト設定
• SQLNET.OUTBOUND_CONNECT_TIMEOUT – 10gR2以上 – 非
デフォルト設定
• 両方のタイムアウトは、個別または同時に実行可能
• サーバー側の接続タイムアウト:
• SQLNET.INBOUND_CONNECT_TIMEOUT – 10gR1以上 10gR2および11gではデフォルトで60秒に設定、10gR1では非デフォ
ルト設定
• 上記のクライアント側の接続タイムアウトと併用可能
ネットワークのベスト・プラクティス
• SQLNET.AUTHENTICATION_SERVICES=(NTS)
• SQLNET.ORAのデフォルト値で、OS認証に必要( connect / as
SYSDBA )
• サーバー側ではデフォルトのままで使用する
• SecureFile LOBを使用
• ネット・スタック最適化は基盤ハードウェアに制限されるスループット
を最大に引き上げる
ファイル・システムのベスト・プラクティス
• ASMを使用 – 単一インスタンスまたはOracle RACを問わ
ず – 10.1.0.4以上を使用
• 利点
• データファイルの移動が不要
• 表領域のオフライン化が不要
• 停止時間なしでディスクを追加
メモリのベスト・プラクティス
• 11g:SGAとPGAの組合せに対する自動管理に
MEMORY_TARGETを使用
• 10g以上:
• SGA_TARGETパラメータでSGAメモリを制御
• PGA_AGGREGATE_TARGETパラメータでPGAメモリを制
御
<ここに画像を挿入>
32ビットWindowsのベスト・プラク
ティス
32ビット・メモリのベスト・プラクティス
• boot.iniファイルに/3GBスイッチを追加し、Oracleプロセスで
利用できるアドレス可能なメモリを増大
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server"
/fastdetect /3GB
• サーバーをリブートして有効化
• オペレーティング・システムの不安定性を防止するため、カ
ーネル・メモリを詳しく監視すること
• Metalink Notes 46001.1と297498.1を参照
• Microsoft KB記事の297812を参照
メモリ監視
• メモリ使用率の監視の主要項目:
• Perfmon - oracle.exeのVirtual Bytesで、プロセスが使用する総
メモリ量を監視
• Total Pool Non-Paged Bytes– メモリ・カウンタ
• 128MBまで増大すると、オペレーティング・システムが不安定
になる
• 増えすぎる場合、メモリ・リークを確認
• Free System Page Table Entries (PTE) – メモリ・カウンタ
• 7500以下にならないよう監視
• boot.iniの/USERVA=2560スイッチで防止
ORASTACKの使用
• Oracleプロセス内の各スレッドには1MBのスタック領域が
予約されている
• ほとんどのシステムに影響を与えず、500KBまで削減可能
C:\ orastack tnslsnr.exe 500000
C:\ orastack oracle.exe 500000
•
•
•
•
•
tnslsnr.exeとoracle.exe両方でかならず実行
Orastack実行前にプロセスを停止
パッチ適用の場合、Orastackの再実行が必要
500KBで問題ないか、かならずシステムをテストすること
詳しくはMetalink Note 46001.1を参照
32ビット:VLMサポート
RAM
の残り
O/S
そのほかのアプリ
SGA
Windows Server 2003
メモリ制限(32ビット)
Standard Edition:
4GB
Enterprise Edition:
32GB
Datacenter Edition:
64GB
3GB
コード
データベース・スレッド/
メモリ
32ビット:VLMサポート
RAM
の残り
DBで利用可能な拡張
メモリはAWEコール
経由でバッファリング
O/S
そのほかのアプリ
AWEコールのメモリは
DBバッファでのみ使用。割
り当てられたAWEメモリ量
はdb_block_sizeに
db_block_buffersを掛けた
数に相当。
AWEメモリ内のDBバッファ
へのWindow
3GB
SGA - DBバッファ
コード
Oracleオペレーティング・シス
テム・プロセス。通常は3GBの
アドレス空間に制限。VLMを
使用すると、Oracleはデータ
ベース・バッファに12GBまで
使用可能。
AWEの実装
• OracleでAWEを使用するには、初期化パラメータ
USE_INDIRECT_DATA_BUFFERSを追加
• DB_CACHE_SIZEの代わりにDB_BLOCK_BUFFERS
を使用
• AWEにおいて、データベースのバッファ・キャッシュは約
12GBまで増大可能
• AWE_WINDOW_MEMORYのデフォルト値は1GB
• 詳しくはMetalink Note 225349.1を参照
32ビット・メモリのベスト・プラクティス
• Automatic Workload Repository(AWR)を使用してキ
ャッシュ・ヒット比率やshared_poolステータスなどを監視
値が大きくなりすぎないよう注意
• AWEを実装する際、AWEを使用すると自動メモリ管理
機能が無効になることに注意
(USE_INDIRECT_DATA_BUFFERSが設定されてい
ると、SGA_TARGETは使用不可)
<ここに画像を挿入>
64ビットWindowsのベスト・プラク
ティス
64ビットWindowsのベスト・プラクティス
• Windows Server 2003ではSP 2を使用し、Windowsの
パフォーマンス・バグを回避
• アーキテクチャに対して適切なOracleの64ビット版を実行
• 例:AMD64/EM64T版の64ビットOracle、またはItanium版のOracle
• 32ビットOracle DBは64ビット・プラットフォームでサポート
なし
• 32ビット・クライアントはWindows x64でサポート
• ラージ・ページに対応
Windowsカスタマーとオラクル製品
“
オラクルは、よりスケー
ラブルで信頼性の高い
データベース製品を提
供する
これにより、比較的低コ
ストでハイエンドのクラ
スタリング機能を実現
Pete Goutmann
テクノロジー副社長
”
“
“
Windows環境で23ノード
のOracle RACクラスタを
テストし、問題なく稼働する
ことを確認
”
”
Oracle Enterprise
Manager Grid Controlに
より、データセンター内の
全データベースを1人で管
理可能に
Daniel Beuoy
DBテクノロジー・ディレクター
“
オラクルでは、最高
クラスのパフォーマン
スを提供しながら、
Oracleの機能性を大
幅に向上するシステ
ムをデプロイできる
Russ
Donnan
Russ
Donnan, 、
CIO
CIO
”
追加情報
• Windows Server Center
•
http://otn.oracle.com/windows
• Windowsおよび.NETブログ
•
http://cshay.blogspot.com/
• 質問
•
[email protected]
本書は、弊社の一般的な製品の方向性に関する概要を
説明するものです。 また、情報提供を唯一の目的とする
ものであり、いかなる契約にも組み込むことはできませ
ん。 本書は、マテリアルやコード、機能の提供を確約す
るものではなく、また、購買を決定する際の判断材料と
はなりえません。
オラクルの製品に関して記載されている機能の開発、リ
リース、および時期については、弊社の裁量により決定
いたします。