active gridlink for rac 入門

36
Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 1 Active GridLink for RAC 入門 日本オラクル株式会社 オラクルユニバーシティ 岡田 大輔 20130425

Upload: oracle-fusion-middleware

Post on 23-Jun-2015

1.225 views

Category:

Documents


1 download

DESCRIPTION

WebLogic ServerのデータソースではOracle Real Application Clusters (RAC)の機能をフル活用できるActive GridLink for RACが提供されています。本セッションではGridLinデータソースの仕組みと構成のポイントを紹介します。後半は「クイズで確認!データソース」を 通じてポイントをレビューします。また、日本電気株式会社からActive GridLinkのオラクル社との共同WhitePaperの紹介をします。

TRANSCRIPT

Page 1: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 1

Active GridLink for RAC 入門

日本オラクル株式会社 オラクルユニバーシティ 岡田 大輔 2013年04月25日

Page 2: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。

Page 3: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 3

GridLinkデータソースとは (Active GridLink for RAC)

Page 4: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 4

データソースとは?

アプリケーションに対して論理名(JNDI名)を使ってデータストアへの接続(Connectionオブジェクト)を提供するオブジェクト

WebLogic Serverのデータソースは接続プールから接続を取得する

– データソースはサーバー起動時、またはデプロイ時に作成される

スコープ 作成方法 モジュール追加/削除 更新

アプリケーション IDE, XMLエディタ × デロイメントプラン

システム 管理コンソール,

WLST ○ JMX

Page 5: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 5

データソースを使ったデータベースアクセス アプリケーションは接続情報を意識しない

WebLogic Server

データソース

接続プール

JNDI デプロイ時にバインド

RDBMS

デプロイ時に

初期容量まで接続

JNDIルックアップ

(論理名で検索)

@Resource(name = "jdbc/test") DataSource ds; try (Connection conn = ds.getConnection(); PreparedStatement pstmt = conn.prepareStatement(QUERY)) { pstmt.setString(1, "xxx"); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { // .... } } catch (SQLException e) { // 例外処理

}

開発者 運用担当者

接続オブジェクト取得

Page 6: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 6

WebLogic Serverのデータソース

汎用データソース

– クラスタ化されていない単一のデータベースへの接続に使用

マルチ・データソース

– 複数の(汎用)データソースをグループ化し、データソース間での負荷分散やフェイルオーバ機能を提供する ⇒ クラスタ化されたデータベースへの接続に使用

GridLink データソース (WLS 10.3.4 ~)

– Oracle RACの機能をフル活用するために構成するデータソース

Page 7: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 7

データソースの種類

WebLogic Server

マルチデータソース データソース1

JNDI Tree

Lookup

RAC

非RAC

Servlet

EJB

アプリケーション

データソース

データソース1

データソース2

RAC データソース

Connection

データソース2

①汎用データソース

②マルチデータソース

③GridLinkデータソース

(Active GridLink)

Connection

Connection

Connection

Connection

Connection

DataSource

アプリケーションはデータソースの種類は意識しない

Page 8: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 8

GridLinkデータソースと汎用データソース

汎用データソース

– 接続先のRACインスタンスを意識していない

– 実行時ロードバランスはなく、RAC側の都合は意識できない。実行先RACインスタンスに偏りが出る可能性がある。

– RACサービス(インスタンス)の動的な停止、起動に対する物理接続の作成、終了タイミングが制御できない

GridLinkデータソース

– 接続先のインスタンスを意識できる(アプリケーションからは透過)

– FANイベントによりRAC側のステータスを把握でき、適切な実行時ロードバランスが可能

– RACサービス(インスタンス)の停止では迅速にそのインスタンスだけの接続を終了させ、起動時は自動的にそこへの物理作成を作成

RAC接続時の振る舞いの違い

RAC データソース

Connection

Connection

Connection

Connection

RAC

GridLink DS

Connection

Connection

Connection

Connection

RAC1

RAC1

RAC2

RAC2

FAN

RACステータスなし

RAC ステータス

通常のデータソース

GridLinkデータソース

Page 9: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 9

GridLinkデータソースの機能

構成容易性の向上

– Single Client Access Name(SCAN) 対応

可用性の向上

– RACからの通知による高速接続フェールオーバ(FCF)

性能の向上

– RACの負荷状況を考慮した実行時接続ロードバランシング(RLCB)

– XAトランザクション・アフィニティ

– Webセッション・アフィニティ(WLS12.1.1~)

Oracle RAC環境を最大限に活かす機能を提供

Page 10: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 10

ONS (Oracle Notification Service)

– RAC側の情報をFANイベントとして送信する仕組み

FAN (Fast Application Notification )

– RAC側の死活情報、負荷情報などを含んだ情報

UCP ( Universal Connection Pool)

– GridLinkデータソースがFANイベント情報を扱うために内部で利用

ロード・バランシング・アドバイザ

– RACのサービスレベルでの負荷状況をFANを通じてアプリケーションに提供

UCP-RAC モジュール

ONS Daemon

Web

Lo

gic

Serv

er

RA

C

死活・負荷状況通知

インスタンス1 GridLinkデータソース

(サービスA用)

インスタンス2

ON

S

clien

t

サービス

A ロード・バラ

ンシング・アドバイザ

ONS Daemon

FAN

GridLinkデータソースの仕組み WebLogic ServerデータソースにUCPの機能を統合

Page 11: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 11

SCAN Single Client Access Name

WebLogic Server

Interconnect

Shared Storage

RAC1 RAC2

OCR & Voting Disks ASM Volumes

mlg-rac-scan 192.168.56.91

mlg-rac-scan 192.168.56.92

mlg-rac-scan 192.168.56.93

rac1-priv

192.168.57.21

rac1 192.168.56.21

rac1-vip 192.168.56.221

rac2-priv

192.168.57.22

rac2 192.168.56.22

rac2-vip 192.168.56.222

SCAN=RACインタンスにアクセスする単一アドレスを提供 •データソースの作成時のリスナーやONS指定にSCANアドレスを使用可能

データソース

SCAN Address

Page 12: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 12

GridLink データソースの作成 GridLinkデータソース作成

Page 13: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 13

GridLinkデータソースの作成 トランザクション・オプション

Page 14: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 14

GridLinkデータソースの作成 接続プロパティ – サービスの指定

リスナーにはSCANアドレスを指定可能 •RACノードの構成変更があった場合もクライアントの設定変更は不要

Page 15: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 15

GridLinkデータソースの作成 リスナーのテスト

⑤で指定した[サービス名]と[ホストとポート]に基づいて JDBC URL が構成される

Page 16: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 16

GridLinkデータソースの作成 ONSクライアントの構成

ONSホストにはSCANアドレスを指定可能 •RACノードの構成変更があった場合もクライアントの設定変更は不要

Page 17: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 17

高速接続フェールオーバー (FCF)

UCPがサブスクライブしているRAC FANイベントをWebLogic Server の接続プールに通知

– RACノードの計画/計画外停止(DOWNイベント)

– RACノードの新規追加や復旧(UPイベント)

通知されたイベントをもとにWebLogic Server側で接続プールを制御

– 無効な接続を検知し即座に削除 … 障害インスタンスの接続だけ削除し、正常なインスタンスへの接続は維持

– ノードの追加や削除を検知し、アクティブなRACインスタンスに分配

障害時の早期エラー検出機能

GridLink DataSource

Instance2

RAC Database

Instance1

Instance3

Start ONS Subscribe

Handle Event ONS Publish X

X X

X

Universal Connection Pool (UCP)

FAN

WebLogic Server

Page 18: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 18

FCFを有効化するには FANの有効化を設定

Downイベントを受け取ると …

Downしたインスタンスへの接続のみを破棄し、使用可能なインスタンスへの接続を作成

####<2013/04/21 8時25分19秒 JST> <Info> <JDBC> <MYHOST> <Server1> <[ACTIVE]

ExecuteThread: '21' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1366500319744> <BEA-001558> <サービスdemosvc.mlg.oracle.comのデータ・ソースRACDataSourceがインスタンス[flavia2]のサービス停止イベントを受け取りました。>

Upイベントを受け取ると …

Upしたインスタンスへの接続を回復

####<2013/04/21 8時29分51秒 JST> <Info> <JDBC> <MYHOST> <Server1> <[ACTIVE]

ExecuteThread: '21' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1366500591907> <BEA-001560> <サービスdemosvc.mlg.oracle.comのデータ・ソースRACDataSourceがインスタンスflavia2のサービス起動イベントを受け取りました。>

Page 19: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 19

実行時接続ロードバランシング (RCLB)

Oracle RACのロード・バランシング・アドバイザ

– RACインスタンスが自身のSQL実行統計を観測し、最適なリクエスト配分を算出

サービスタイムまたはスループットのどちらかを優先した方法でリクエスト配分を算出

リクエスト配分をFANイベントとして、ONS経由でGridLink内のUCPモジュールに送信

GridLinkデータソース

– 各インスタンスのリクエスト配分率にしたがってプールからどのインスタンスへの接続を取得するかを選択

クラスタの設定変更、アプリケーションのワークロード、過負荷/ハング状態のノードにも対応

負荷状況に応じた最適なリクエスト配分

GridLinkデータソース

Application

RAC Database

Instance1

Instance2

Instance3

ロード・バランシング・アドバイザ

リクエスト配分比率

inst1: 30%

inst2: 10%

inst3: 60%

リクエスト配分

比率情報

SQL実行統計

SQL実行統計

SQL実行統計

比率に応じた

コネクション

FAN

30%

10%

60%

WebLogic Server

Page 20: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 20

RCLBの動作

各インタンスへの接続情報は

JDBCOracleDataSourceInstanceRuntimeMBeanで取得可能 •CurrCapacity – 現在の容量

•CurrentWeight – 重み情報

デフォルトでは30秒間隔で重みをチェックし必要に応じて各インスタンスへの接続容量をリバランス •weblogic.jdbc.gravitationShrinkFrequencySeconds で制御可能

Page 21: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 21

最初のリクエストはRCLBによってインスタンスを選択

コンテキスト内に選択されたインスタンス情報が保存され同じHttpセッション内で有効

– セッション外のリクエストはXAアフィニティで処理

– アフィニティのON/OFFをRAC側が自動的に制御。アフィニティヒントとしてFANで通知

前回と同じインスタンス用のコネクション

Webセッション・アフィニティ セッション処理を同じRACインスタンスで処理

GridLinkデータソース

Application

RAC Database

Instance1

Instance2

Instance3

ロード・バランシング・アドバイザ アフィニティヒント

inst1: true

inst2: true

inst3: true

アフィニティ

有効フラグ

待機イベント統計

待機イベント統計

待機イベント統計

HTTPセッション

アフィニティ・コンテキスト

sessionXX : inst1

FAN

WebLogic Server

Page 22: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 22

XAトランザクション・アフィニティ

最初のリクエストはRCLBによってインスタンスを選択

コンテキスト内にインスタンス情報が保存され同じXAトランザクション内で有効になる

– WebLogicのコンテキスト伝搬機能により他のサーバーでもコンテキスト情報が共有され同じRACインスタンスを選択

– アフィニティのON/OFFをRAC側が自動的に制御。アフィニティヒントとしてFANで通知。

XA処理を同じRACインスタンスで処理

GridLInkデータソース

TXClient 1

RAC Database

Instance1

Instance2

Instance3

XAトランザクション

コンテキスト伝搬

TXClient 2 前回と同じインスタンス用のコネクション

Txコンテキスト

XID xxx : inst1

WebLogic Server

Page 23: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 23

GridLinkデータソースのモニタ 管理コンソール

•RCLBベースの流用数 (成功/失敗) … RCLBを満たす(既存)接続を見つけた数

•アフィニティ・ベースの流用数 (成功/失敗) … アフィニティ・ポリシーを満たす(既存)接続を見つけた数

•失敗したアフィニティ・ベースの流用数が1以上の場合は、アフィニティ接続からRCLBに切り替えられたと考えられる

Page 24: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 24

GridLinkデータソースのモニタ 監視ダッシュボード

複数のRuntimeMBean情報を一つ画面で監視可能 •JDBCDataSourceRuntimeMBean

•JDBCOracleDatabaseDataSourceInstanceRuntimeMBean

Page 25: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 25

Tips: RCLBの確認 GridLinkデータソースが正しく作成されているが…

####<2013/04/19 18時39分53秒 JST> <Debug> <JDBCRAC> <MYHOST> <Server1> <[ACTIVE] ExecuteThread: '0' for

queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-000446AAFD4496EFA173> <> <1366364393878> <BEA-000000> <UCPRACModuleImpl [RACDataSource]: RACManager RCLB miss>

Debugフラグ DebugJDBCRACを有効化してログを確認するとRCLBが有効になっていない

•管理コンソール[デバッグ]または起動オプション(-Dweblogic.debug.DebugJDBCRAC=true)

成功したRCLBベースの流用数が増えて欲しい…

Page 26: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 26

Tips: RAC設定の確認 RCLBを有効化

[oracle@rac1 admin]$ srvctl config service -d flavia -s demosvc

Service name: demosvc

Service is enabled

Server pool: flavia_demosvc

Cardinality: 2

Disconnect: false

Service role: PRIMARY

Management policy: AUTOMATIC

DTP transaction: false

AQ HA notifications: false

Failover type: NONE

Failover method: NONE

TAF failover retries: 0

TAF failover delay: 0

Connection Load Balancing Goal: LONG

Runtime Load Balancing Goal: NONE

TAF policy specification: NONE

Edition:

Preferred instances: flavia2,flavia1

Available instances:

[oracle@rac1 admin]$ srvctl config service -d flavia -s demosvc.mlg.oracle.com

Service name: demosvc.mlg.oracle.com

Service is enabled

Server pool: flavia_demosvc.mlg.oracle.com

Cardinality: 2

Disconnect: false

Service role: PRIMARY

Management policy: AUTOMATIC

DTP transaction: false

AQ HA notifications: true

Failover type: NONE

Failover method: NONE

TAF failover retries: 0

TAF failover delay: 0

Connection Load Balancing Goal: SHORT

Runtime Load Balancing Goal: THROUGHPUT

TAF policy specification: NONE

Edition:

Preferred instances: flavia1,flavia2

Available instances:

[oracle@rac1 admin]$ srvctl stop service -d flavia -s demosvc

[oracle@rac1 admin]$ srvctl remove service -d flavia -s demosvc

[oracle@rac1 admin]$ srvctl add service -d flavia -s demosvc.mlg.oracle.com -r flavia1,flavia2 -q

TRUE -B THROUGHPUT -j SHORT

[oracle@rac1 admin]$ srvctl start service -d flavia -s demosvc.mlg.oracle.com

RCLBが有効ではない

CLBの目標はSHORT, RCLBの目標はSERVICE_TIMEまたはTHROUGHPUTを指定

CLBとRLCB目標が適切に設定されたサービス

Page 27: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 27

参考: GridLinkデータソースとマルチデータソース GridLinkデータソースの方がRACとの親和性が高い

機能 GridLinkデータソース マルチデータソース

データソースの構成 RAC側のサービスごとにGridLinkデータソースを1つ設定

RAC側のサービス数×ノード数分の設定が必要

RAC構成変更時の

データソース設定変更 設定変更は不要 設定変更が必要

フェールオーバー RAC側からの通知による高速接続フェールオーバー(FCF)

WLS側からの定期的なポーリングによる障害検知のため遅延が発生しやすい

ロードバランシング DB側の負荷を考慮した実行時接続ロードバランシング(RCLB)

DB側の負荷を考慮しない静的ラウンドロビン

接続アフィニティ 複数GridLinkデータソースに跨るXAアフィニティ、Webセッションアフィニティ

同一マルチデータソース内でのXAアフィニティのみ

Data Guardサポート プライマリ側、スタンバイ側に同等構成のRACを配置できる

プライマリ側のRACは1インスタンスしか利用できない

Page 28: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 28

参考: マルチデータソースの設定 マルチデータソース = 汎用データソースのグループ

マルチデータソース <data-source-list>で汎用データソースを指定

汎用データソース RACインスタンスごとに汎用データソースを作成。汎用データソースの設定はすべて同じ設定にする

Page 29: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 29

まとめ

Active GridLink for RAC

– WebLogic Server Suiteライセンスで使用可能

– Oracle RACとWebLogic Serverの親和性を高める

DB障害の即時検知機能やSCAN対応による運用性の向上

動的負荷分散やアフィニティ機能による性能の向上

– アプリケーション側は特別なプログラミングや設定は不要

Page 30: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 30

オラクルユニバーシティからのお知らせ

Page 31: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 31

Oracle Universityからのお知らせ

JDBCデータソースをはじめとしたWebLogic Serverの管理方法を体系的に学習したい方に最適な研修コースをご提供しています。

– Classroomトレーニングだけでなく、Live Virtual Classや『Oracle トレーニング・オンデマンド』など多様な受講形態から選択いただけます。

Page 32: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 32

コース内容

■Oracle Fusion Middleware の概要 ■WebLogic Serverのアーキテクチャ

■Oracle WebLogic Serverのインストール ■管理コンソールおよび他の管理ツールの概要

■WebLogic Server ドメインのコンフィグレーション ■Oracle WebLogic Server の管理およびロギングの使用

■アプリケーションのデプロイ ■データソース、JDBCドライバ、接続プールの設定

■JMS アプリケーションのコンフィグレーション ■WebLogic Serverの基本セキュリティのコンフィグレーション

■Oracle HTTP Server のコンフィグレーション ■Oracle WebLogic クラスタのコンフィグレーション

■バックアップおよびリカバリの管理 ■全体バックアップ、増分バックアップ

受講

前提条件

・Linux の基本コマンドおよびデスクトップのナビゲーション

・クライアント/サーバーの概念における TCP/IP ネットワークに関する基本的な知識

・Java EE の基礎知識(サーブレットや JSP など) ※推奨

対象者 ・Oracle WebLogic Server 11g/12c管理者

・Javaアプリケーション開発者

コース日程 5日間 日程の詳細は Oracle University Webサイト にてご確認ください。

受講料 定価¥363,825(税込) ※Oracle PartnerNetwork会員様は、パートナー割引価格で受講いただけます。

Oracle Application Gridの基盤を支える Oracle WebLogic Server 11gの管理コース!

このコースでは、Web管理者がOracle WebLogic Server 11gのインストールおよび設定する方法に

ついて説明します。Web管理者が管理コンソールやコマンドライン、およびスクリプトツール(

WLST)などを使用して、Java EEアプリケーションをOracle WebLogic Server 11gにデプロイする方

法についても説明します。

その他に、Oracle WebLogic Server のWebインタフェースとしてOracle HTTP Serverを設定する方

法を解説し、またOracle WebLogic Serverクラスタを設定してアプリケーションのフェイルオーバ

ーとロードバランシングをサポートする方法を学習します。また、WebLogic Server管理者の管理

タスクの概要について説明します。

Oracle WebLogic Server 11g: 管理

ミドルウェア

※ Oracleトレーニング・オンデマンドでのご受講をオススメします!!

※ WLS12cとの差分は参考資料を配布します

Page 33: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 33

Oracle WebLogic Server 11g: 管理コースを90日間いつでも何度でも。

新時代のラーニングソリューション •インターネット経由でお好きな時間にお好きな場所で

• 実際の講義をそのまま収録してストリーミング配信

•教室と同じ演習環境を5日間使用可能

•担当講師による Q&A

•eKit(電子媒体テキスト)付き

Oracle トレーニング・オンデマンドとは?

Page 34: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 34

WebLogic Server勉強会 参加者の皆さまの特典 http://education.oracle.co.jp/campaign_wlstudy/

Page 35: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 35

Page 36: Active GridLink for RAC 入門

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 36

36