33
1 Page 1 Oracle Application Server 10g Oracle Developer Suite 10g 機能概要 High Availability

Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

1

Page 1

Oracle Application Server 10gOracle Developer Suite 10g

機能概要

~ High Availability ~

Page 2: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

2

Page 2

はじめに

Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

するために様々な高可用性機能を提供しています。その中核となるのが各層でのクラスタ機能です。10g(9.0.4)での強化ポイントの1つとして、このクラスタの運用・管理性の向上があります。

このセッションでは、クラスタとその強

化ポイントを中心に解説いたします。

本資料ではOracle Application Server 10g(9.0.4)での新機能および強化部分を明確にするため、スライド上で「New」および「Enhanced」と記してあります。

Page 3: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

3

Page 3

アジェンダ

� OracleAS 10g (9.0.4) High Availability– 高可用性機能の概要

� OracleAS 10g (9.0.4) クラスタ・ソリューション

– Infrastructureクラスタ

– WebCacheクラスタ

– OracleASクラスタ

� まとめ

Page 4: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

4

Page 4

アジェンダ

� OracleAS 10g (9.0.4) High Availability– 高可用性機能の概要

� OracleAS 10g (9.0.4) クラスタ・ソリューション

– Infrastructureクラスタ

– WebCacheクラスタ

– OracleASクラスタ

� まとめ

Page 5: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

5

Page 5

OracleAS 10g (9.0.4) High Availability

システム障害

データ障害、災害

人的ミス

OPMN、クラスタ

バックアップ & リカバリ、Disaster Recovery

DCM 、 DCMアーカイブ&リカバリ、バックアップ & リカバリ

システムのメンテナンス DCM、ローリングアップグレード

計画外停止

計画停止

� サービス停止に繋がるあらゆる要因に対するソリューションを提供

Page 6: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

6

Page 6

End-to-Endのクラスタリング

Web Cache クラスタ

OracleAS クラスタInfrastructure

クラスタ

クライアント

Oracle Application Server 10g (9.0.4)

カスタマDB

Oracle DB 10g

(RAC)

� すべての層にわたってクラスタリングが可能

Oracle Application Server 10g(9.0.4)では3つの層でのクラスタリングをサポートしています。

キャッシュ層のWebCacheクラスタ、WebサーバとAPサーバ層のOracleASクラスタ、そして基盤部分のinfrastructureクラスタ。それぞれのコンポーネントの役割によってクラスタリングの仕組みや中身も違いますが、基本的には、クラスタによって高可用性およびスケーラビリティの2つの特性を見出そうとしています。詳細は後続セクションで説明します。

Page 7: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

7

Page 7

プロセス障害への対応� OPMN (Oracle Process Manager and Notification Server)

Web Cache

OHSHTTP OC4JAJP

OPMN

mod_oc4j

– イベント・スクリプトの実行

– 各ノードのOPMNがプロセス状態を通達し合い、 OracleASクラスタでの障害時フェイルオーバーを実現

– プロセス監視と自動回復

– 監視下プロセスの情報収集

監視、  

情報収集カスタムプ ロ セ ス

クライアント

カスタマDB

他ノードのOPMNとの通信

Oracle Application Server 10g

NEWENHANCED

ENHANCED

OPMNはOracle Process Manager and Notification Serverの略で、その名前のとおり2つの役割、Process Manager(プロセスの管理・監視)とNotification(通達)を持ちます。

1. プロセスの管理・監視

・Oracle Application Serverを構成するプロセスの監視と障害検知時の自動回復

・監視下プロセスの情報収集:プロセスに関するあらゆる情報(使用しているCPU、メモリ・リソース、プロセスID、起動時間等)をOPMNを通して参照できます。

2. 通達

・イベント・スクリプトの実行:OPMNが障害を検知した場合などに独自に定義した動作を行うよう、イベント・スクリプトを組み込むことが出来ます。例として、OPMNがOC4Jプロセスの停止を検知したら管理者にメールを送る、もしくは独自のログに書き込む等が考えられます。

・分散環境においては各ノードのOPMNがプロセス状態を通達し合い、障害時のフェイルオーバーを実現します。 この機能はOracleASクラスタのベースとなっています。

Page 8: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

8

Page 8

プロセス障害への対応

� OPMN監視対象プロセス

– デフォルトでOracleAS Metadata Repository (DBインスタンス)を 除くすべてのプロセスが対象

– opmn.xmlの編集により

� カスタムプロセスの組み込みが可能

� 管理対象の依存関係 (起動順序) を設定可能

� 自動再起動する / しない、Pingの間隔などの指定が可能

ENHANCED

以下は、Standalone OC4Jプロセスを同じサーバで動かし、OPMNの監視下に置く場合の設定例(opmn.xmlの抜粋)になります。 opmn.xmlの完全な記述方式についてはOracle Process Manager and Notification Server Administrator‘s Guide 10g (9.0.4)をご参照く

ださい。

---

<ias-component id="Custom">

<process-type id="Custom" module-id="CUSTOM" working-dir="/home/oracle/work/rmuramot/oc4j/j2ee/home">

<process-set id="Custom" numprocs="1">

<module-data>

<category id="start-parameters">

<data id="start-executable" value="/opt/oracle/904_3/jdk/bin/java"/>

<data id="start-args" value="-jar /home/oracle/work/rmuramot/oc4j/j2ee/home/oc4j.jar"/>

</category>

<category id="restart-parameters">

<data id="restart-executable" value="/opt/oracle/904_3/jdk/bin/java"/>

<data id="restart-args " value="-jar /home/oracle/work/rmuramot/oc4j/j2ee/home/admin.jar ormi://localhost:23791 admin welcome -restart"/>

</category>

<category id="stop-parameters">

<data id="stop-executable" value="/opt/oracle/904_3/jdk/bin/java"/>

<data id="stop-args " value="-jar /home/oracle/work/rmuramot/oc4j/j2ee/home/admin.jar ormi://localhost:23791 admin welcome -shutdown"/>

</category>

</module-data>

</process-set>

</process-type>

</ias-component>

---

Page 9: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

9

Page 9

構成管理

� Distributed Configuration Manager (DCM)– OC4JやOHS などのコンポーネントの設定情報を

管理する機能

– Application Server Controlのベースとなる機能

– Archive機能により、管理者の設定ミスに対して柔軟に対応

– 設定情報を管理リポジトリに保存することにより、分散環境でも容易に一貫性のとれた状態を保持

ENHANCED

NEW

Distributed Configuration Manager (DCM) はOracle Application Server 10gを構成するコンポーネントの設定・構成を管理する機能です。これらの情報を管理する際に単一のリポジトリを利用するという特徴があり、そのおかげでクラスタのような分散環境の管理に有効です。DCMに関してはいくつか機能の追加、エンハンスがされていますが、詳細は後続のセクションで詳解します。

Page 10: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

10

Page 10

バックアップ&リカバリ

� 10g(9.0.4)よりバックアップ&リカバリ・ツールとマニュアルを製品に同梱

� Middle Tier および Infrastructure に対応

– 構成にあわせて必要な設定ファイルをバックアップするためのPerlスクリプト&InfrastructureのデータベースをバックアップするためのRMANスクリプトで構成

� オフライン/オンラインでフル/差分バックアップの取得可能

� フルと差分バックアップを組み合わせた point-in-time リカバリが可能

NEW

R2(9.0.2/3)でOTNより提供していたバックアップ&リカバリ・ツールを10g (9.0.4) からは正式に製品に同梱するようになりました。

各種設定ファイルをバックアップするためのPerlスクリプト群およびInfrastructure DBのバックアップを取得するためのRMANスクリプト群から構成されているこのツールを使うことで、例えば、インストール直後等にコールド・バックアップを一度取得し、その後の開発・運用時に適宜にオンラインで差分バックアップをとっていくことで、障害が発生した場合にpoint-in-timeリカバリが可能になります。

Page 11: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

11

Page 11

Disaster Recovery� 地震、火事などによってサ

イト全体が障害にあった場合の対処策

� 地理的に分けられたActive/Standby 構成

– バックアップ & リカバリ機能を使用してプライマリとスタンバイ・サイトの構成ファイルを同期

– Infrastructure内のDBはData Guardで同期

プライマリ・サイト スタンバイ・サイト

DR Sync

DR Sync

DR Sync

ロードバランサ ロードバランサ

クライアント

MT1 MT2 MT1’ MT2’

INFRA INFRA’

NEW

地震や火災などでデータセンター全体が障害にあった、もしくはそこに繋がるネットワークに支障がきたされた場合は、ここまで解説してきたクラスタ等のソリューションでは対処できません。必要なのは、通常運用時に使う「プライマリ・サイト」に加え、災害時の代替としてすぐに利用可能な「スタンバイ・サイト」を物理的に分けられた位置に用意するといったDisaster Recoveryソリューションになります。この構成を実現するためにOracleAS10g(9.0.4)として提供するのは、プライマリとスタンバイ・サイトが障害時に切り替わったときに同等のサービスを提供できるよう、この二つを同期化する仕組みです。

1. バックアップ&リカバリ・ツールをベースとした仕組みで構成ファイルの同期化

2. DataGuardでプライマリ・サイトのREDOログをスタンバイ・サイトに適用し、Infrastructure DB の同期化

このようにして同期化された2つのサイトを構築することによって、災害発生時でもサービスを継続して提供することが可能になります。

Page 12: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

12

Page 12

Disaster Recovery

DR Sync

DR Sync

ロードバランサロードバランサ

プライマリ・サイト スタンバイ・サイト

DR Sync

� プライマリ・サイトとスタンバイ・サイトの切り替えをクライアントに認知させるための仕組みが必要

– Wide Area Load Balancer (global traffic manager)

– DNSエントリの手動切り替え

クライアント

MT1 MT2 MT1’ MT2’

INFRA INFRA’

NEW

障害時のルーティングに関してはOracleASが干渉する部分ではありませんが、一般的にはDNSのマッピング・設定の手動操作もしくはWide Area Load Balancingというソリューションを利用します。 DNSエントリの手動切り替えと違い、Wide Area Load Balancingを利用することで障害を瞬時/自動的に検知し、対応することができますが追加コストがかかります。

Page 13: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

13

Page 13

アジェンダ

� OracleAS 10g (9.0.4) High Availability– 高可用性機能の概要

� OracleAS 10g (9.0.4) クラスタ・ソリューション

– Infrastructureクラスタ

– WebCacheクラスタ

– OracleASクラスタ

� まとめ

Page 14: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

14

Page 14

Infrastructureのクラスタ

� Cold Failover Cluster (CFC)と呼ばれるActive/Standby構成でInfrastructureが提供するサービスの可用性を向上

� R2 (9.0.2) から利用可能

� 10g(9.0.4)より簡略化されたインストール作業

– クラスタウェア要件の確認

– 論理ホスト名、論理IPのマッピングを指定

– 共有ディスクの用意

� サポートされるクラスタウェア– Sun Cluster, HP MC/Service Guard, Red Hat Cluster

Manager etc.

ENHANCED

CFCはいわゆるActive/Standby構成で、片方のノードがサービスを提供し、もう片方はそのサービスを提供しているノードの障害に備えて待機しています。この構成はクラスタウェアを利用してつなげたノードの共有ディスクに対してOracleAS Infrastructureをインストールするといった方法で構築します。R2(9.0.2)では一部ライブラリを置き換える等の追加作業が必要でしたが、10g(9.0.4)ではこの構築作業が非常に簡略化されています。

Page 15: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

15

Page 15

Cold failover Cluster (CFC)

Active Standby

共有ディスク

論理IP、論理ホスト名

phy-host1 phy-host2物理ホスト名 物理ホスト名

ポイント②:Middle Tier は論理ホスト名を通してInfrastructure へリクエスト

ポイント③:phy-host1 が落ちた場合phy-host2 でサービス再開

ポイント①:Infrastructureのインス

トールは共有ディスクに格納

clusterware

切り替え

Middle Tier

INFRA INFRA

Page 16: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

16

Page 16

Active Standby

共有ディスク

phy-host1 phy-host2

clusterware

切り替え

③ ④

Middle Tier

Cold failover Cluster (CFC)� フェールオーバー時の動作

論理IP、ホスト名

CFCでのフェールオーバー時の動作:

1. phy-host1で障害を検知

障害発生の判断基準としてMetadata Repositoryのバックグラウンド・プロセスを監視するのが一般的

2.phy-host1で

a. Infrastructureを停止

b. 論理 IPの非アクティブ化

c. 共有ボリューム切り離し

3.phy-host2で

a. 共有ボリュームマウント

b. 論理 IPのアクティブ化

c. Infrastructureを起動

4.phy-host2でサービス継続

Page 17: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

17

Page 17

アジェンダ

� OracleAS 10g (9.0.4) High Availability– 高可用性機能の概要

� OracleAS 10g (9.0.4) クラスタ・ソリューション

– Infrastructureクラスタ

– WebCacheクラスタ

– OracleASクラスタ

� まとめ

Page 18: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

18

Page 18

Web Cache クラスタ

� 外部ロードバランサによる可用性の向上

� Web Cache クラスタを組むことによりスケーラビリティ・管理性の向上

– 複数のWeb Cacheインスタンスがひとつの論理キャッシュとして動作し、キャッシュしたコンテンツを効率よく、共有する

– インスタンス間で設定が共有されるため管理が容易

Web Cacheクラスタ APサ ー バ

カスタマDB

外部ロードバランサ

クライアント

WebCacheクラスタを利用し、インスタンスがひとつの論理キャッシュとして動作することにより次のメリットがあります。

・キャッシュしたコンテンツを効率よく共有することによるスケーラビリティの向上

・インスタンス間で設定が共有されるため管理が容易

コンテンツ共有の仕組みを簡単に説明すると、Web Cacheは起動時とともに、スロットと呼ばれる「箱」を各自一定数作成します。2ノードのクラスタを組んでいる場合では、このスロットの半分を自ノード、残りをもうひとつのノードという具合に割り当てます。次にリクエストがきた際、これをそのどちらかのスロットに割り当てて、どのリクエストがどのノードでキャッシュすべきか決めます。尚、この判断には、「http:/」の部分を除いたURLに対してハッシュ関数を適用して算出された値が利用されます。すべてのキャッシュ・ノードで同じアルゴリズムが使用されるので、どのノードがどのコンテンツの所有権を持っているのか・持つべきなのか、ピア間の通信なしで判断可能になっています。

Page 19: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

19

Page 19

アジェンダ

� OracleAS 10g (9.0.4) High Availability– 高可用性機能の概要

� OracleAS 10g (9.0.4) クラスタ・ソリューション

– Infrastructureクラスタ

– WebCacheクラスタ

– OracleASクラスタ

� まとめ

Page 20: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

20

Page 20

OracleAS クラスタ

� Webサーバ(OHS)とJ2EEコンテナ(OC4J)のクラスタ

� OracleAS クラスタを組むことによって得られる動作

1. 各ノードのOPMNが通信しあい、クラスタに含まれるOHSとOC4J間の負荷分散および障害時のフェール

オーバを自動的に調整

2. 複数のOC4J間でアプリケーションのステート(状態)を相互に複製し、フェイルオーバ時にセッションの引継ぎを可能に

3. DCM機能により、クラスタ内のOracleASインスタンスが同一構成(デプロイされているアプリケーションなど)になることを保証

OracleASクラスタとは、J2EEアプリケーションにスケーラビリティと高可用性を提供するのを目的とした、WebサーバとJ2EEコンテナ部分のクラスタを指します。

Page 21: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

21

Page 21

OC4J

OHS

OracleAS クラスタ

OC4Jプロセス

状態の通知およ

びルーティング

OHS mod_oc4j

mod_oc4j

OPMN

OPMN

OC4J

J2EEアプリ

ケーション

クラスタ間の設定の同期化

Middle Tier A

Middle Tier B OracleAS クラスタ

ロー

ドバ

ラン

DC

M

ステートステート

ステートステート

状態の

複製

DC

M

クライアント

クラスタ基本設定

管理   

リポジトリ

Page 22: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

22

Page 22

レプリケーション(HTTP)� HTTPレプリケーション

– HTTPSessionオブジェクトが変更(setAttribute())されるとIPマルチキャスト方式で伝播

– アイランドでレプリケート範囲を指定

MiddleTierインスタンスA

OC4Jインスタンス

OHS

OracleAS クラスタ

OC4Jインスタンス

OHS

OC4Jインスタンス

OHS

アイランド

アイランドOC4J

プロセス

MiddleTierインスタンスB MiddleTierインスタンスC

OC4J プロセス

OC4J プロセス

OC4J プロセス

ステートフルなアプリケーションが障害時に透過的にフェールオーバーし、処理を継続する為にはセッション情報の複製(レプリケーション)を行う必要があります。

J2EEアプリケーションではWebコンテナおよびEJBコンテナもしくは両方でセッションの情報を保持する可能性があります。Webコンテナ層におけるセッション管理を実現するには、通常HttpSessionオブジェクトを使用します。OracleASではこのHTTPSessionオブジェクトが変更(setAttribute())されるとIPマルチキャスト方式で伝播することによってセッション情報のレプリケーションを実装しています。ただしスケーラビリティの面を考え、クラスタに属すすべてのOC4Jインスタンスにその変更情報を伝播するのではなく、アイランドという管理者が任意に定義する論理的なグループで伝播範囲を指定できます。

Page 23: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

23

Page 23

レプリケーション(EJB)

� EJBレプリケーション– Stateful Session Bean (SFSB)

� JVM終了時にレプリケート

­ JVM 終了時にのみセッション情報を転送するため、プロセス/ハードウェア障害には対応不可

� 呼び出し終了時にレプリケート

­ メソッド呼び出し毎にセッション情報をIPマルチキャスト

– JNDIツリー・レプリケーション

� EJBレプリケーションの設定を行うと自動的に有効

� JNDIツリー・レプリケーションだけ利用したいという場合でもEJBレプリケーションを設定する必要あり

NEW

JNDIツリー・レプリケーションはEJBレプリケーションの設定を行うと自動的に有効になります。尚、EJBレプリケーションを必要とせず、JNDIツリー・レプリケーションだけ利用したいという場合でもEJBレプリケーションを設定する必要があります。

Page 24: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

24

Page 24

フェイルオーバ / ロードバランス

� mod_oc4jとOPMNとの連携により、アイランド内でのロードバランス、障害発生時のフェイルオーバを実現

� リソースを有効活用できるよう、いくつかのロードバランス方式から選択可能

– ラウンドロビン

– ランダム

– メトリックス・ベース� 各OC4Jプロセスの負荷状況をもとにルーティング

� ロードバランス方式のオプション– Local Affinity

� OHSと同一マシンのOC4Jに優先的にルーティング

– Weighted� OC4Jプロセスが動作する各ホストに指定された“Weight”をもとにリ

クエストの割り振りを決定

NEW

NEW

OHSに組み込まれたOracle独自のモジュール(mod_oc4j)とプロセスの障害を検知する仕組みのOPMNを連携させることにより、OC4Jプロセスの障害時のフェイルオーバー動作を実現します。ただしこれだけではなく、リソースを最大限に利用できるよう、3つのロードバランス方式と2つのオプション(+デフォルトのオプションなし)で計8つの選択肢を提供しています(メトリックス・ベース+Weightedオプションの組み合わせは不可)。

Page 25: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

25

Page 25

OracleASクラスタの管理

� 10g(9.0.4)ではDistributed Configuration Management (DCM) をベースとしたOracleASクラスタの運用・管理性が向上

– Fileベースの管理リポジトリをサポート

– DCMリポジトリのArchive機能により、管理者の人

的ミスに迅速に対応

NEW

NEW

Page 26: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

26

Page 26

DCM管理リポジトリの種類

管理リポジトリ(Fileシステム上)

登録同期

OracleAS Infrastructure

Fileベース管理リポジトリDatabaseベース管理リポジトリ

MTノード#1 MTノード#2

OracleAS クラスタ

管理リポジトリ(Metadata

Repository 内)

MTノード#1 MTノード#2

OracleAS クラスタ

OracleAS Infrastructure 不要 !!

登録 同期

NEW

R2(9.0.2/3)ではInfrastructureを利用したDBベース・リポジトリのみサポートしており、管理者にとってはDBを管理する負担が掛かっていました。そこで10g(9.0.4)からはDBベース・リポジトリに加え、ファイルシステムにリポジトリを配置するfileベース・リポジトリがサポートされるようになりました。もちろん、Infrastructureには管理リポジトリ以外にも認証サービスを提供するなどの役割を持ちますので、そのような用途でInfrastructureをすでに利用している場合にはDBベース・リポジトリを使用することをお勧めします。

Page 27: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

27

Page 27

Fileベース・リポジトリの可用性

ノード#A ノード#B ノード#C

OracleAS クラスタ (リポジトリ移動前)

リポジトリホスト

OracleAS クラスタ (リポジトリ移動後)

ノード#A ノード#B ノード#C

リポジトリ

ホスト

① あらかじめリポジトリ情報をファイルにエキスポートし、安全な場所に保管

② 新しくリポジトリのホストとなるノードにリポジトリ情報を

インポート。この時点でクラスタの管理作業が再開可能

③ ノード2での障害が修復され、クラスタに戻る際にはリポジトリが移動したことを通知

リポジトリの

エ キ ス ポ ー ト

・ファイル

NEW

DBベース・リポジトリの場合、CFCによりリポジトリの可用性を保証することができます。Fileベース・リポジトリの場合は、リポジトリのexport/import機能を利用して障害に対処します。下記はリポジトリが障害にあった場合に、それを新たなホストに移動し、サービスを継続する際の手順になります。尚、リポジトリが利用できない事態に陥った場合、管理作業を行うことは出来ませんが、実行中のアプリケーションには特に影響はありません。

1. ホストからリポジトリ情報をrep.dmpファイルにあらかじめexportしておく

% dcmctl exportrepository -file rep.dmp

2. rep.dmpファイルを安全な場所に保管し、リポジトリ障害時にはFTP等で新規ホストとなるノードに移動

3. このファイルをimportする前にクラスタに含まれるすべてのインスタンスでdcmデーモンを停止

% opmnctl stopproc ias-component=dcm-daemon

3. 新規ホストでrep.dmpファイルをimport

% dcmctl importrepository -file rep.dmp

4. ホストとなったことを確認

% dcmctl whichfarm

Farm Name: .opt.oracle.904_1.dcm.repository

Host Instance: 904_3.wo2.oracle.co.jp

Host Name: wo2.oracle.co.jp

Repository Type: Distributed File Based (host) <= ★

SSL In Use: false

5. 旧ホストをクラスタのメンバーとして復活させる場合、自分がもうホストでないことを認識させる

% dcmctl repositoryrelocated

Page 28: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

28

Page 28

DCM Archive機能

� 構成・設定のスナップショットをリポジトリに保持し、変更のロールバックを可能にする機能

� バックアップ&リカバリより手軽・高速に設定ミスなどから回復

� アーカイブ取得のタイミング– 自動 (automatic)

� 設定の変更を実行する前にDCMが自動的にビフォア・イメージをアーカイブ� デフォルトでは15個の自動アーカイブまで保持(変更可)

– 明示的 (explicit)� 任意のタイミングでコマンド(dcmctl createArchive) を発行し

、アーカイブを取得

NEW

アーカイブを取得する方法は2通りあります。

1. dcmctlもしくはApplication Server Control GUIからの指示による構成・変更を適用する前にDCMが自動的取得する自動アーカイブ。

2. 管理者が任意のタイミングで取得する明示的アーカイブ(dcmctl createarchiveコマンドの発行)

自動アーカイブの最大数はデフォルトで15個となっていますが、ディスク領域に余裕がある等で最大数を変更したい場合は次のコマンドを利用します。

$ dcmctl set -arch 50 (アーカイブ数を50に設定。offにする場合は“0”を指定。)

また上書きを避けるためにも、アーカイブをリポジトリからファイルにエキスポートしておき、必要な時にインポートすることも可能です。

$dcmctl exportarchive -arch archive_name -f file_name

$dcmctl importarchive -arch archive_name -f file_name

取得したアーカイブを適用することによってアーカイブ取得時の構成に戻ることができます。

$dcmctl applyarchiveto -arch archive_name

尚、OracleAS10g(9.0.4)でアーカイブ機能が追加されたことにより、dcmctlコマンドのsaveInstance、restoreInstanceオプションはdeprecate扱いとなっています。

Page 29: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

29

Page 29

OracleASクラスタ環境でDCM Archiveを使用する際の注意点

� アーカイブは2種類存在

– クラスタ・モード:クラスタ内のメンバーが共有する“クラスタ基本設定情報”を保存

– インスタンス・モード:指定したインスタンスの情報を保存

� クラスタ環境での自動アーカイブはクラスタ・モードで取得される

� クラスタに属すインスタンスの場合、インスタンス・モードのアーカイブは適用不可

NEW

アーカイブはクラスタ・モードおよびインスタンス・モードの2種類存在します。

この2つの大きな違いはクラスタ・モードではインスタンス固有の設定が含まれないということです。インスタンス固有の設定とは以下のようなものを指します。

 ・OHS – 各種ディレクティブ(ApacheVirtualHost、Listen、Port、ServeName、User、Group等)

 ・OC4J – OC4Jプロセス数、RMI、JMS、AJPポート、OC4J起動オプション等

完全なリストにつきましてはOracle Application Server 10g (9.0.4) High Availability Guideを参照してください。

OracleASクラスタを利用している場合の自動アーカイブはクラスタ・モードで行われるため、インスタンス固有の設定の変更を回復するためには明示的にインスタンス・モードのアーカイブを取得しておく必要があります。しかしインスタンス・モードで取得したアーカイブはクラスタに属したインスタンスには適用できないという制約があります。ではどうすればよいのでしょうか?後続のスライドで例を用いて、OracleASクラスタ環境でのDCM Archive利用方法を解説します。

尚、OracleASクラスタを組んでいない環境では、アーカイブがクラスタ/インスタンス・モードで取得されているかは気にする必要はありません。

Page 30: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

30

Page 30

OracleASクラスタ環境でのDCM Archive利用方法 (1)

OracleAS クラスタ:状態A OracleAS クラスタ:状態B

①J2EEアプリケーションのデプロイ

②自動的にアーカイブが作成

状態Aのアーカイブ③デプロイ作業を取り消すため状態Bにアーカイブを適用

④状態Aに回復

NEW

OracleASクラスタ環境で、クラスタ全体に影響する変更をアーカイブを利用してロールバックする手順:

① クラスタ全体に影響する変更を行う(eg.J2EEアプリケーションのデプロイ)

% dcmctl deployapplication -file test.ear -a test -co home

② 自動的にクラスタ・モードのアーカイブが作成されていることを確認

% dcmctl listarchives

Name: dcm.autoarchive_219.101.158.145125d61e.f9abf2f4f9. -7ffa

Source: cluster: 904cluster  <= ★

Version: 9.0.4.0.0

Comments: Automatic archival prior to deployment of application test  <= ★

Created: 2004-01-20 15:51:20.182

Clusterable: true

③ アーカイブを適用(任意のインスタンスで)

% dcmctl applyarchiveto -src dcm.autoarchive_219.101.158.145125d61e.f9abf2f4f9.-7ffa -cl 904cluster

④ もとの状態にもどっていることを確認

% dcmctl listapplications

Page 31: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

31

Page 31

OracleASクラスタ環境でのDCM Archive利用方法 (2)

OracleAS クラスタ:状態A OracleAS クラスタ:状態B

②ノードCのOHSリスニング・ポートを変更

Listen:7777 Listen:80

httpd.conf編集

①明示的にインスタンス・モードのアーカイブを作成

状態AのインスタンスCのアーカイブ

C

③ノードCをクラスタから切り離す

④アーカイブを適用

⑤再度クラスタに参加することによって状態Aに回復

C

C

BA

NEW

BA

OracleASクラスタ環境で、インスタンス固有の変更をアーカイブを利用してロールバックする手順:

① クラスタ環境ではクラスタ・モード(-cl)で自動アーカイブが取得されるためインスタンス固有の変更情報は含まれないので、手動でアーカイブを取得

% dcmctl createarchive -arch portchange -i 904_3.wo2.oracle.co.jp

% dcmctl listarchives

Name: portchange

Source: instance: 904_3.wo2.oracle.co.jp  <= ★

Version: 9.0.4.0.0

Comments:

Created: 2004-01-20 16:08:12.999

Clusterable: true

② インスタンス固有の変更を行う(eg.OHSのリスニング・ポートの変更)

③ 変更を取り消すためにアーカイブを適用しようとするが、クラスタに属す場合、インスタンス・モードのアーカイブはそのままでは適用できないため、まず該当するインスタンスを一度クラスタから切り離す

% dcmctl leavecluster -cl 904cluster

④ アーカイブを適用し、リスニング・ポートが元の値にもどっていることを確認

% dcmctl applyarchiveto -src portchange -cl 904cluster

⑤ 再度クラスタに登録し、もとの状態に完全に回復

% dcmctl joincluster -cl 904cluster

Page 32: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

32

Page 32

まとめ

� OracleAS 10g(9.0.4) はサービス停止に繋がるあらゆる要因に対する高可用性ソリューションを提供

� OracleAS 10g(9.0.4)での機能強化によって可用性を高める構成の構築、運用/管理、そして障害時の回復がさらに容易に

Page 33: Oracle Application Server 10g Oracle Developer …otndnld.oracle.co.jp/products/ias/pdf/CoreTechAS_High...2 Page 2 はじめに Oracle Application Server 10g (9.0.4)では、サービスを継続して提供

33

Page 33

日本オラクル株式会社

無断転載を禁ず

この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。日本オラクル社は本書の内容に関していかなる保証もいたしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。

Oracleは米国Oracle Corporationの登録商標です。文中に参照されている各製品名及びサービス名は米国Oracle Corporationの商標または登録商標です。その他の製品名及びサービス名はそれぞれの所有者の商標または登録商標の可能性があります。