...

実践!! 高可用性システム構築~RAC詳細編

by user

on
Category: Documents
52

views

Report

Comments

Transcript

実践!! 高可用性システム構築~RAC詳細編
実践!! 高可用性システム構築 ~RAC詳細編 ~
日本オラクル株式会社 製品事業統括 テクノロジー製品事業統括本部
エンジニア 小林 史郎
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは
できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメン
ト(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さ
い。オラクル製品に関して記載されている機能の開発、リリースおよび時期につい
ては、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright© 2011, Oracle. All rights reserved.
2
Agenda
• Real Application Clusters概要
• 高拡張性①
• キャッシュの一貫性
• 高拡張性②
• パラレル処理
• 高可用性
• まとめ
Copyright© 2011, Oracle. All rights reserved.
3
Real Application Clusters概要
Copyright© 2011, Oracle. All rights reserved.
4
Real Application Clusters (RAC) とは
• Oracle Real Application Clustersとは
システム障害によるダウンタイムを最小に抑え、データ保護と連続的な
サービス環境を実現するOracle Databaseのクラスタ技術
• 特徴
 高拡張性:サーバの追加によって容易にスケールアウトが可能
 高可用性:Active-Activeのクラスタ構成により、障害時サービスが
停止しても残りのサーバーで処理を継続できる
障害によるサーバ停止
があっても、システムは
残りのサーバーが維持
できる
Active
1つのデータベースに
複数のサーバ(ノード)から
同時にアクセスできる
Active
Active
Active
処理量の増加に合わせ、
容易に拡張可能
共有ディスク
Copyright© 2011, Oracle. All rights reserved.
5
RACの特徴① 高拡張性の実現
• サーバーの処理性能を高めるためには…
• CPUコアを増設して同時実行性を向上
• CPUコアを増設するアプローチは2つ:スケールアップ / スケールアウト
スケールアップ
スケールアウト
+ +
サーバーにCPUを増設
+
ノードを追加してCPUを増設
Copyright© 2011, Oracle. All rights reserved.
6
RACの特徴② 高可用性の実現
• HA(Active-Standby)構成では、 • RAC(Active-Active)構成では、
全てのサーバーが稼働しているため
障害時にディスクの切り替えや
すぐに別のサーバーですぐに処理を再
データベース・インスタンスの
開することが可能
再起動が必要
生存ノードに再接続
することで処理を続行
Standby機を起動させる
ことで処理を続行
待機サーバー
起動
Active
稼働
サーバー
Active
Standby
Active
Active
Active
待機サーバー
ディスクの
切替え
Active-Standby構成
Copyright© 2011, Oracle. All rights reserved.
RAC構成
7
RAC データベースとインスタンスの関係
• 複数のインスタンスが同じデータベースにアクセスする
• クライアントはどのインスタンスに接続をしても同じSQLを
発行することができる
クライアントはどのインスタンスに接続しても同じ
Instance1
SGA
Instance2
SGA
Node1
Instance3
SGA
Node2
Node3
データベース
Copyright© 2011, Oracle. All rights reserved.
8
RACの構成
Public Network
クライアントからの接続
Private Network
(Interconnect Network)
ノード間の通信(ハートビートや、
キャッシュ・データのやり取り)
Oracle Clusterware
クラスタメンバシップと
データベースシステム
の管理
RACサーバー(ノード)
Oracle インスタンスを稼働
RAC
複数のOracleインスタ
ンスでデータの一貫性
を保つ
Oracle Database (RAC)
Oracle Clusterware
※REDO、UNDOは
インスタンスごとに用意
共有ディスク
全てのサーバーからアクセ SPFILE
スできるディスクに、Oracle
データベースのファイルを
配置
アーカイブ
REDOログファイル
REDOログ
ファイル
データファイル
UNDO
ファイル
制御ファイル
Copyright© 2011, Oracle. All rights reserved.
9
RACのソフトウェアとコンポーネントの関係
• RACを構成するためには Oracle Clusterwareが必要
• 11g R2から Oracle Clusterwareと Oracle ASMが統合され
Oracle Grid Infrastructureの構成要素となった
• データベース統合基盤となるコンポーネントを集約
11g R2
11g R1まで
Oracle Database
Listener
Oracle Database
Listener
Oracle Database以外は
Grid Infrastructureに
Listener
Oracle ASM
Oracle ASM
Oracle Clusterware
Oracle Clusterware
Oracle Grid Infrastructure
Oracle ASM … Oracle Automatic Storage Management
Copyright© 2011, Oracle. All rights reserved.
10
RACの高拡張性
キャッシュの一貫性
Copyright© 2011, Oracle. All rights reserved.
11
「ノード」を追加するということは?
• RACにノードを追加するのはCPUを追加するということ
• 同時に実行可能な処理を増やすことができる
• 1つの処理を並列化することができる
Copyright© 2011, Oracle. All rights reserved.
12
複数あるCPUの利用
複数の処理を同時実行
(スループットを向上)
クライアント
SQL
サーバー
CPU
ストレージ
1つの処理を並列実行
(レスポンスタイムを向上)
クライアント
SQL
SQL
SQL
SQL
サーバー
CPU
ストレージ
Copyright© 2011, Oracle. All rights reserved.
13
キャッシュの一貫性を保持する仕組み
• Cache Fusion
• 各ノード間でキャッシュの一貫性を維持する仕組み
• 要求されたOracle データ・ブロックが他のノードで更新されていても、
最新のデータ・ブロックを取得することが可能
SQL> select * from sales;
SQL> select * from sales;
SQL
SQL
Instance1
SGA
キャッシュの
一貫性を維持
Instance2
SGA
Instance3
SGA
Datafile
Copyright© 2011, Oracle. All rights reserved.
14
RACのデータアクセス
Cache Fusion
• キャッシュ・ヒットした場合
• キャッシュのデータを使用
• キャッシュ・ミスした場合
• シングル・インスタンス
• ディスクから読み込む
• RAC
• 他ノードのキャッシュから受け取る
• ディスクから読み込む
SQL
Server
Process
キャッシュの
一貫性を維持
Copyright© 2011, Oracle. All rights reserved.
15
Global Resource Directory(GRD)
• Oracle データ・ブロックをどのインスタンスがどのロック状態で
キャッシュしているかを管理する領域
• RACの全Oracle インスタンスのSGA上に分散配置
• あるデータ・ブロックのロックの状態に責任をもつGRDは、
クラスタのノードうち1つあり、そのデータ・ブロックのリソース・
マスターと呼ぶ
Interconnect
Network
このデータ・ブロックの
リソース・マスターがどの
インスタンスであるかは、
データ・ブロックアドレス
から決定
バッファ・キャッシュ
Instance 1
Instance 2
Instance 3
共有ディスク
Copyright© 2011, Oracle. All rights reserved.
16
リソース・マスターの割り当て
• あるデータ・ブロックのリソース・マスターとなるインスタンスは
、そのブロック・アドレスをハッシュした値に基づき決定する
対象インスタンス
1
2
3
1
2
3 …
0
1
2
3
4
5 …
ハッシュ値
Instance 1
Instance 2 Instance 3
GRD
GRD
GRD
Buffer Cache
Buffer Cache
Buffer Cache
ブロック・アドレスをハッシュ
123AFV45
ブロック・アドレス
A B
983KES58
ブロック A の
リソース・マスター
Copyright© 2011, Oracle. All rights reserved.
ブロック B の
リソース・マスター
17
キャッシュ・ヒットした場合
Instance1
GRD
Buffer Cache
①ノード1に
キャッシュヒットした
SQL
Instance3
GRD
Instance2
GRD
Buffer Cache
Buffer Cache
リソース・マスター
Datafile
Copyright© 2011, Oracle. All rights reserved.
18
キャッシュ・ミスした場合①
リモート・キャッシュから取得
①キャッシュミスした
Instance1
GRD
Buffer Cache
②このデータ・ブロックの
リソース・マスターは
どのインスタンスか
SQL
③リソース・マスター
へデータ・ブロックを
リクエスト
Instance2
GRD
Instance3
GRD
Buffer Cache
⑥ 転送
Buffer Cache
リソース・マスター
⑤「Instance3」へ
データ・ブロック転送を指示
④GRDから
キャッシュ状態を調べる
Datafile
Copyright© 2011, Oracle. All rights reserved.
19
キャッシュ・ミスした場合②
リモート・キャッシュから取得
①キャッシュミスした
Instance1
GRD
Buffer Cache
②このデータ・ブロックの
リソース・マスターは
どのインスタンスか
SQL
③リソース・マスターへ
データブロックを
リクエスト
Instance3
GRD
Instance2
GRD
Buffer Cache
Buffer Cache
⑥ 転送
リソース・マスター
④GRDから
キャッシュ状態を調べる
⑤リソース・マスターが
最新データ・ブロックを
キャッシュしていた
Datafile
Copyright© 2011, Oracle. All rights reserved.
20
キャッシュ・ミスした場合③
ディスクから取得
①キャッシュミスした
Instance1
GRD
Buffer Cache
②このデータ・ブロックの
リソース・マスターは
どのインスタンスか
SQL
Instance3
GRD
Instance2
GRD
Buffer Cache
Buffer Cache
④ ディスクから取得
リソース・マスター
③ ディスクから取得するよう指示
Datafile
Copyright© 2011, Oracle. All rights reserved.
21
RACの高拡張性②
パラレル処理
Copyright© 2011, Oracle. All rights reserved.
22
複数あるCPUの利用
複数の処理を同時実行
(スループットを向上)
1つの処理を並列実行
(レスポンスタイムを向上)
クライアント
SQL
サーバー
CPU
ストレージ
クライアント
SQL
SQL
SQL
SQL
サーバー
CPU
ストレージ
Copyright© 2011, Oracle. All rights reserved.
23
1つのCPUを使用したデータベース処理
大量データを集計するようなSQLをシリアル実行した場合
クライアント
Oracle インスタンス
CPU(コア)
SP
Table
SP・・・Server Process
(データベース処理をするプロセス)
シリアル処理
Copyright© 2011, Oracle. All rights reserved.
24
パラレル処理による複数CPUの利用
1つのSQLを自動並列化
パラレル処理により搭載しているCPUにデータを分散して短時間で結果を返す。
Oracle インスタンス
CPU(コア)
QC
PS
PS
PS PS
PS PS
PS PS
Table
QC…Query Coordinator
PS …Parallel Slave Process
Parallel Query
Copyright© 2011, Oracle. All rights reserved.
25
パラレル処理による複数CPUの利用
1つのSQLを自動並列化
パラレル処理により全ノードに搭載しているCPUにデータを分散して短時間で結
果を返す。
Node1
Node2
Node3
Noden
PS PS
PS PS
PS PS
QC
PS
PS
Table
QC…Query Coordinator
PS …Parallel Slave Process
Parallel Query
Copyright© 2011, Oracle. All rights reserved.
26
Parallel Queryロードバランス
QC
• スキャン範囲の担当を動的に決定する
• 各スレーブ・プロセスは、異なるブロックを担当
• スレーブ・プロセスの実行時間を均等にする
スキャン対象のセグメント
並列度で分割
さらに分割
Copyright© 2011, Oracle. All rights reserved.
PS
PS
大きなブロックから処理する
27
パラレル・クエリーの設定
Oracle Database 11g Release 2からの新たなパラレル度設定の方法
• 自動パラレル
 各SQLの最適なパラレル度を自動的に設定
11.2 New
• アプリケーション側での設定は不要
• 初期化パラメータ PARALLEL_DEGREE_POLICYの設定
• RAC環境では、全てのインスタンスに同じ設定をする
• I/O測定情報の収集
• DBMS_RESOURCE_MANAGER.CALIBRATE_IOプロシージャの実行
• パラレル実行となるSQLの基準
• PARALLEL_MIN_TIME_THRESHOLD初期化パラメータの設定
• このパラメータで設定されている値(単位:秒)以上の時間がシリアル
実行で必要と判断された場合、自動パラレル実行の対象となる
デフォルト値:AUTO (10秒)
Copyright© 2011, Oracle. All rights reserved.
28
In-Memory Parallel Execution による
さらなる高速化
11.2 New
• パラレル実行でもOracleインスタンスにキャッシュされたデータ・ブロック
を使用
• 近年のサーバは搭載可能な物理メモリの上限も増加している
• アクセスするデータ量を削減
• パーティション表
QC…Query Coordinator
クライアント
• 圧縮
PS …Parallel Slave Process
QC
PS PS
PS PS
PS PS
PS PS
Oracle
Instance
Table
Copyright© 2011, Oracle. All rights reserved.
29
In-Memory Parallel Execution
RACの場合
クライアント
ノード数が増えるとキャッシュ可能なデータ量も増加
Node1
Node n
Node2
QC
PS PS PS
…
PS
Buffer
Cache
PS PS PS
…
PS
Buffer
Cache
Copyright© 2011, Oracle. All rights reserved.
PS PS PS
…
PS
Buffer
Cache
30
高可用性
Copyright© 2011, Oracle. All rights reserved.
31
RACの可用性
• Oracle Clusterwareによる障害ノードの切り離し
• 正常ノードでトランザクションのリカバリ (インスタンス・リカバリ)
正常ノードでトランザクションのリカバリ
Instance1
SGA
Instance2
SGA
Instance3
SGA
障害ノードを切り離す
Copyright© 2011, Oracle. All rights reserved.
32
Oracle Clusterwareの役割
Oracle Cluster Synchronization Services (CSS)
• クラスタにおけるノード構成の管理
• ノード間で相互に生存確認
• 障害ノード切り離し
Oracle Cluster Ready Services(CRS)
• 監視対象のリソース (CRS リソース)の管理
• リソースの監視
• 障害時のリソース再起動
• 障害時のフェイルオーバー
Listener
Listener
Instance
Instance
Oracle Cluster Ready Services(CRS)
Oracle Cluster Synchronization Services (CSS)
Copyright© 2011, Oracle. All rights reserved.
33
Oracle Clusterwareによる監視の仕組み
Cluster Synchronization Services
(CSS)
• クラスタ・メンバーシップを管理
• 他ノードの生存を監視
Cluster Ready Services (CRS)
• インスタンス、VIP、リスナー等の
リソースを監視
• リソースの停止、起動、フェイル
オーバーなどの操作を行う
- 共有ディスクのハートビート
- インターコネクトのハートビート
VIP
Listener
Instance
VIP
Listener
Instance
CRS
CRS
CSS
CSS
Copyright© 2011, Oracle. All rights reserved.
CRSが管理する主なリソース
・ データベース・インスタンス
・ リスナー
・ サービス
・ ASMインスタンス
・ 仮想IPアドレス(VIP)
・ SCAN IP
34
Cluster Synchronization Services (CSS)
• クラスタ・メンバーシップの管理
• ハートビートを行い生存確認
• ハートビートが途絶えると、障害ノードを切り離す
インターコネクトでのハートビート
CSS
CSS
CSS
共有ディスクでのハートビート
Voting Disk
共有ディスク上のハートビート用領域
Copyright© 2011, Oracle. All rights reserved.
35
CSSによるノード障害の検知
• ハートビートが一定時間途切れたら、CSSが障害として検知
• 最もメンバシップが多いグループでクラスタを再構成し、
障害グループを切り離す
クラスタ再構成
ノード切り離し
CSS
CSS
CSS
Voting Disk
Copyright© 2011, Oracle. All rights reserved.
36
Cluster Ready Services (CRS)
• CRSリソースの起動、停止、監視
• 障害を検知すると、リソースの再起動又はフェイルオーバーを試行する
• CRSリソースの構成及びステータスはOracle Cluster Registry(OCR)
に記録されている
VIP
VIP
Listener
Listener
Instance
Instance
CRS
CRS
OCR
共有ディスク上の
リソース管理用の領域
Copyright© 2011, Oracle. All rights reserved.
37
Oracle Clusterware によるリソース管理
エージェントによるリソースの監視
• 11g Release 2 では、エージェントが Oracle Clusterware の
プロセスおよびリソースを監視
• エージェントは、高可用性サービスを提供する常駐プロセス
• OHAS エージェント
• Oracle Clusterware プロセスの監視
• CRS エージェント
• CRS リソースの監視
init
監視
監視
OHAS エージェント
OHAS
Oracle Clusterware プロセス
(CSS, CRS, EVM など)
監視
CRS エージェント
CRS
監視
CRS リソース
(DB, リスナー、VIP など)
Copyright© 2011, Oracle. All rights reserved.
38
エージェントおよびプロセスとリソースの一覧
11g R2 (11.2.0.3)
OHAS エージェント
init
Oracle Clusterware
プロセス
CRS エージェント
DISKMON
orarootagent
リソース
Network
CTSS
Oracle ACFS drivers
OHAS
Oracle Clusterware
orarootagent
VIP
SCAN VIP
CRS
Oracle ACFS registry
HAIP
CRF
OC4J
Default Listener
GIPC
SCAN Listener
mDNS
oraagent
GSD
GPNPD
EVM
oraagent
Oracle ASM
cssdagent
CSS
ONS
CVU
Oracle ASM
Disk Group
Database
cssdmonitor
Service
Copyright© 2011, Oracle. All rights reserved.
39
インスタンス・リカバリ
• 障害インスタンスで実行されていたトランザクションのリカバリ
• ロールフォワード
• コミット済みのトランザクションによる変更をデータファイルに反映する
• ロールバック
• 未コミットのトランザクションによる変更を戻す
リカバリ
Instance1
SGA
Instance2
SGA
Instance3
SGA
Copyright© 2011, Oracle. All rights reserved.
40
RACのインスタンス・リカバリ
1. GRDを再構成し、リカバリを実行するインスタンスを決定
2. リカバリが必要なデータ・ブロックを識別(Fast Pass Log Read)
•
•
データ・ブロック毎にどこでロールフォワードが完了するか判断
リカバリ不要なデータ・ブロックはアクセス可能
3. リカバリが必要なデータ・ブロックをリカバリ(Second Pass Log Read)
•
ロールフォワードが完了したデータ・ブロックからアクセス可能
Instance1
SGA
Instance2
SGA
Instance3
SGA
リカバリ・インスタンス
Datafile
REDO
REDO
REDO
UNDO
UNDO
UNDO
Instance1用
Instance2用
Instance3用
Copyright© 2011, Oracle. All rights reserved.
41
Fast Pass Log Read
リカバリが必要なデータ・ブロックを識別
• 障害が起きたインスタンスのREDOログを読み込み、リカバリが必要
なブロックのリスト(リカバリ・セット)を作成
• リカバリ不要なデータ・ブロックはアクセス可能になる
• データ・ブロック毎にどこでロールフォワードが完了するか判断 リカバリが不要な
データ・ブロックへ
のアクセスは可能
Instance1
SGA
Instance2
SGA
Instance3
SGA
リカバリ・セット
リカバリ・インスタンス
Datafile
REDO
REDO
REDO
UNDO
UNDO
UNDO
Instance1用
Instance2用
Instance3用
Copyright© 2011, Oracle. All rights reserved.
障害ノードのREDO
ログファイルを読み
込みリカバリ・セット
を作成
42
Second Pass Log Read
リカバリが必要なデータ・ブロックのみをロールフォワード
• リカバリ・セットから特定されたデータ・ブロックをロールフォワード
• ロールフォワードが完了したデータ・ブロックから順次、使用可能となる
• SQLの処理が進行する
リカバリが完了した
データ・ブロックから
順次利用可能
Instance1
SGA
Instance2
SGA
Instance3
SGA
リカバリ・セット
リカバリ・インスタンス
Datafile
REDO
REDO
REDO
UNDO
UNDO
UNDO
Instance1用
Instance2用
Instance3用
Copyright© 2011, Oracle. All rights reserved.
リカバリ・セットのデ
ータ・ブロックをロー
ルフォワード
43
ロールバック
• ロールフォワードが完了したデータ・ブロックから順次、使用可能となる
• SQLの処理が進行する
• SQLがアクセスするデータ・ブロックにロールバックが必要なら、
そのセッションが自動で行う
SQL
SQL
Instance1
SGA
SQL
Instance2
SGA
ロールバックが必要な
データ・ブロックにアク
セスしたら、そのセッシ
ョンが自動でロールバッ
クする
Datafile
SQL
Instance3
SGA
リカバリ・インスタンス
REDO
REDO
REDO
UNDO
UNDO
UNDO
Instance1用
Instance2用
Instance3用
Copyright© 2011, Oracle. All rights reserved.
44
まとめ
Copyright© 2011, Oracle. All rights reserved.
45
Oracle Real Application Clusters
• 高拡張性
• 全てのOracleインスタンスは同じデータベースへアクセスする
• 同時に実行可能な処理を増やすことができる
• 1つの処理を並列化することができる
• 高可用性
• 障害ノードを切り離して、正常インスタンスで処理が可能
• トランザクションの一貫性を自動で維持
Copyright© 2011, Oracle. All rights reserved.
46
OTNセミナーオンデマンド
コンテンツに対する
ご意見・ご感想を是非お寄せください。
OTNオンデマンド 感想
http://blogs.oracle.com/oracle4engineer/entry/otn_ondemand_questionnaire
上記に簡単なアンケート入力フォームをご用意しております。
セミナー講師/資料作成者にフィードバックし、
コンテンツのより一層の改善に役立てさせていただきます。
是非ご協力をよろしくお願いいたします。
Copyright© 2011, Oracle. All rights reserved.
47
OTNセミナーオンデマンド
日本オラクルのエンジニアが作成したセミナー資料・動画ダウンロードサイト
掲載コンテンツカテゴリ(一部抜粋)
100以上のコンテンツをログイン不要でダウンロードし放題
Database 基礎
データベースからハードウェアまで充実のラインナップ
Database 現場テクニック
Database スペシャリストが語る
毎月、旬なトピックの新作コンテンツが続々登場
Java
WebLogic Server/アプリケーション・グリッド
EPM/BI 技術情報
サーバー
ストレージ
例えばこんな使い方
•
•
•
•
製品概要を効率的につかむ
基礎を体系的に学ぶ/学ばせる
時間や場所を選ばず(オンデマンド)に受講
スマートフォンで通勤中にも受講可能
コンテンツ一覧 はこちら
http://www.oracle.com/technetwork/jp/ondemand/index.html
毎月チェック!
新作&おすすめコンテンツ情報 はこちら
http://oracletech.jp/seminar/recommended/000073.html
OTNオンデマンド
Copyright© 2011, Oracle. All rights reserved.
48
オラクルエンジニア通信
オラクル製品に関わるエンジニアの方のための技術情報サイト
技術資料
インストールガイド・設定チ
ュートリアルetc. 欲しい資
料への最短ルート
特集テーマ
Pick UP
性能管理やチューニングな
ど月間テーマを掘り下げて
詳細にご説明
アクセス
ランキング
他のエンジニアは何を見て
いるのか?人気資料のラン
キングは毎月更新
技術コラム
SQLスクリプト、索引メンテ
ナンスetc. 当たり前の運用
/機能が見違える!?
http://blogs.oracle.com/oracle4engineer/
オラクルエンジニア通信
Copyright© 2011, Oracle. All rights reserved.
49
oracletech.jp
ITエンジニアの皆様に向けて旬な情報を楽しくお届け
製品/技術
情報
Oracle Databaseっていく
ら?オプション機能も見積
れる簡単ツールが大活躍
スキルアップ
ORACLE MASTER!
試験頻出分野の模擬問
題と解説を好評連載中
セミナー
基礎から最新技術まで
お勧めセミナーで自分にあ
った学習方法が見つかる
Viva!
Developer
全国で活躍しているエンジ
ニアにスポットライト。きらり
と輝くスキルと視点を盗もう
http://oracletech.jp/
oracletech
Copyright© 2011, Oracle. All rights reserved.
50
あなたにいちばん近いオラクル
Oracle Direct
まずはお問合せください
Oracle Direct
システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。
ステム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
Web問い合わせフォーム
フリーダイヤル
専用お問い合わせフォームにてご相談内容を承ります。
http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28
0120-155-096
※フォームの入力にはログインが必要となります。
※こちらから詳細確認のお電話を差し上げる場合がありますので
ご登録の連絡先が最新のものになっているかご確認下さい。
※月曜~金曜
9:00~12:00、13:00~18:00
(祝日および年末年始除く)
Copyright© 2011, Oracle. All rights reserved.
51
Copyright© 2011, Oracle. All rights reserved.
Copyright© 2011, Oracle. All rights reserved.
53
Fly UP