...

Oracle Database 11g Release 2 Oracle Clusterware アーキテクチャ

by user

on
Category: Documents
365

views

Report

Comments

Transcript

Oracle Database 11g Release 2 Oracle Clusterware アーキテクチャ
1
2
本資料では、以下の省略表記を使用している箇所があります。
名称
省略表記
Oracle Local Registry
OLR
Oracle Cluster Registry
OCR
Grid Plug and Play (プロファイル)
GPnP (プロファイル)
Cluster Ready Services
CRS
Oracle High Availability Services
OHAS
Cluster Synchronization Services
CSS
Event Manager
EVM
Oracle Automatic Storage Management
Oracle ASM (ASM)
Oracle ASM Cluster File System
Oracle ACFS (ACFS)
Single Client Access Name
SCAN
Grid Naming Service
GNS
3
4
5
6
7
8
9
10
11
Oracle Clusterware のコンポーネント
• Oracle Clusterware リソース
Oracle Clusterware で管理するリソースを表します。
• Oracle Clusterware スタック
Oracle Clusterware 上で動作するデーモンを表します。
• Oracle Clusterware ファイル
ここでは、Oracle Clusterware で使用されるファイル郡を指します。
Oracle Clusterware のおおまかな起動の流れ
1.OHAS デーモンが起動
2.OHAS デーモンが OHAS エージェントを起動
3. OHAS エージェントが Oracle Clusterware プロセス (CRS デーモン含む) を起動
4. CRS デーモンが CRS エージェントを起動
5. CRS エージェントが Oracle Clusterware リソースを開始
12
RAC 11g R1 までは、Oracle Clusterware をインストールすると、CSS、CRS、EVM 用のエン
トリが / t /i itt b に3行追加されていました。RAC
トリが、/etc/inittab
に3行追加されていました RAC 11
11g R2 では、Grid
では G id IInfrastructure
f t t
をインス
トールすると、/etc/inittab に下記の ohasd 用のエントリが1行追加されます。
h1:35:respawn:/etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null
スタンドアロン・サーバー用 Grid Infrastructure
スタンドアロン・サーバー用 Grid Infrastructure は、RAC 11g R2 から導入された新しいインス
ト
トールのオプションです。シングル・インスタンス環境に従来の
のオプシ ンです シング
イン タン 環境に従来の CRS リソースのような障害時の
リ
のような障害時の
自動再起動の仕組みを実装したインストール・オプションです。
13
RAC 11g R2 では、Oracle Custerware プロセスおよび、リソースはエージェントにより監視を
行い O l Cl
行い、Oracle
Clusterware
t
の高可用性を実現します OHAS エージェントは主に、Oracle
の高可用性を実現します。OHAS
エ ジ ントは主に O l
Clusterware プロセスを監視し、CRS エージェントは、CRS リソースの監視の役割を担います。
Oracle Clusterware プロセスも内部的には、リソースとして扱うため、OHAS リソースと呼ぶこ
ともあります。
OHAS エージェント障害時は、OHAS が即時に再起動を行います。CRS エージェント障害時
は、CRS が即時に再起動を行います。
14
Oracle Clusterware スタックは、以下の2つのスタックから構成されています。
• Cluster Ready Services (CRS) スタック
• Oracle High Availability Services (OHAS) スタック
ベンダー製クラスタウェアが存在する場合は、従来通り、Oracle Clusterware は、ベンダー製ク
ラスタウェアに依存します。
15
エージェントのプロセスについて
エージェントによって監視対象となるプロセスやリソースは異なります。また、起動する OS ユー
ザごとにエージェントのプロセスは異なります (OS ユーザごとに1プロセス起動)。root 権限の
必要なプロセスおよび、リソースは、orarootagent が使用されます。その他は、Grid
Infrastructure インストールユーザで操作する oraagent が使用されます。Grid Infrastructure
と Oracle Database のインストールユーザを分割している場合は、各ユーザに対応した
oraagent (2個) が起動されます。
cssdagent / cssdmonitor は、CSS を監視するためのエージェントです。
16
17
Oracle Clusterware リソースの確認方法
crsctl status resource –t コマンドにより確認します。以下は、2 ノードクラスタ環境で、RAC /
ASM 環境を構成した際の出力例です。
$ crsctl status resource -t
-------------------------------------------------------------------------------NAME
TARGET STATE
SERVER
STATE_DETAILS
-------------------------------------------------------------------------------Local Resources
-------------------------------------------------------------------------------ora.DG1.dg
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
ora.LISTENER.lsnr
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
ora.asm
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
ora.eons
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
ora.gsd
OFFLINE OFFLINE
stvm20
OFFLINE OFFLINE
stvm21
ora.net1.network
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
ora.ons
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
t 21
ora.registry.acfs
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
-------------------------------------------------------------------------------Cluster Resources
-------------------------------------------------------------------------------ora.LISTENER_SCAN1.lsnr
1
ONLINE ONLINE
stvm20
ora.LISTENER_SCAN2.lsnr
1
ONLINE ONLINE
stvm20
ora.LISTENER_SCAN3.lsnr
1
ONLINE ONLINE
stvm21
ora.oc4j
1
OFFLINE OFFLINE
ora.orcl.db
1
ONLINE ONLINE
stvm20
2
ONLINE ONLINE
stvm21
ora.orcl.srv_a.svc
1
ONLINE ONLINE
stvm20
t 20
2
ONLINE ONLINE
stvm21
ora.scan1.vip
1
ONLINE ONLINE
stvm20
ora.scan2.vip
1
ONLINE ONLINE
stvm20
ora.scan3.vip
1
ONLINE ONLINE
stvm21
ora.stvm20.vip
1
ONLINE ONLINE
stvm20
ora.stvm21.vip
1
ONLINE ONLINE
stvm21
18
19
Oracle Clusterware の起動の流れとして、スライドの○で囲った部分に重点をおいて説明しま
す。
20
Oracle Clusterware 起動の流れ (OCR / 投票ディスクを ASM 管理した場合)
1. OHAS デーモン起動時に、OLR をオープン
2. OHAS デーモンは、OHAS エージェントを起動
3. oraagent は GPNPD、cssdagent は、CSS を起動
4. gpnpd は、GPnP プロファイルを読み込み起動完了
5. CSS は、gpnpd と通信を行い、プロファイルを取得
6. CSS は、投票ディスクを検出して I/O を開始。起動完了
7 CSS 起動完了後に、ASM
7.
起動完了後に ASM が起動を開始 ((*1)
1)
8. ASM は gpnpd からプロファイルを取得し、SPFILE を参照して起動を開始
9. ASM の起動完了後、CRS が起動を開始 (*2)
10. CRS は gpnpd からプロファイルを取得
11. CRS は CSS への接続を確立 (*1)
12. CRS は OCR をオープンして、CRS エージェントの起動および、CRS リソースを開始
(*1) CSS の起動に失敗した場合は、ASM や CRS は起動できません。
(*2) OCR / 投票ディスクを共有ファイルシステム上に配置している場合は、CRS と ASM はほ
ぼ同時に起動します。(CRS は ASM の起動を待ちません)
21
22
RAC 11g R1 までは、ネットワークや投票ディスクなどの情報は、OCR で管理されていました。
OCR を ASM で管理する場合、OCR
で管理する場合 OCR へアクセスするためには ASM インスタンスが起動して
いる必要があります。そこで、RAC 11g R2 では、クラスタの構成情報を GPnP プロファイルに
格納し、OCR と分離して管理します。ただし、GPnP プロファイルも OCR の中にも格納される
ため、OCR から情報がなくなったわけではありません。
OCR / 投票ディスクの ASM 管理
CSS が起動する前に、ASM を起動させることはできないため、CSS 自ら投票ディスクを検出
する実装が必要でした。そこで、GPnP
する実装が必要でした。そ
で、
プロファイルに投票ディスクの配置場所を格納し、ASM
ァイルに投票ディ クの配置場所を格納し、
インスタンスの起動の有無に依存しない、投票ディスクの検出および、使用を可能にしています。
ASM 自身の SPFILE を ASM 管理
ASM を起動する前に、SPFILE にアクセスする必要があるため、ASM 自ら SPFILE を検出す
る実装が必要でした。そこで、GPnP プロファイルに SPFILE の配置場所を格納し、ASM イン
スタンスの起動の有無に依存しない、SPFILE の検出および、使用を可能にしています。
23
ネットワーク・プロファイル
クラスタや RAC で使用するインターコネクトの情報として利用されます。Oracle Interface
Configuration (OIFCFG) コマンドでネットワーク情報を変更すると、GPnP プロファイルも自動
的に更新されます。
CSS プロファイル
CSS が投票ディスクを検出するために利用されます。投票ディスクの管理方法 (共有ファイル
システムもしくは、ASM 管理) に依存しないで常に利用されます。crsctl ユーティリティで投票デ
ィスクの配置を変更した場合は GPnP プロファイルも自動的に更新されます。
ィスクの配置を変更した場合は、
プロファイルも自動的に更新されます
ASM プロファイル
ASM が使用する ASM ディスクおよび、ASM 自身の SPFILE を検出する際に利用されます。
ASM で使用される初期化パラメータ ASM_DISKSTRING で指定される文字列と同じ情報で
す。asmcmd で SPFILE の配置場所を変更、もしくは、 ASM_DISKSTRING を変更した場合
は、GPnP プロファイルも自動的に更新されます。投票ディスクが ASM 管理されている場合に
も利用されます。
24
Profile.xml の内容
<?xml version="1.0" encoding="UTF-8"?>
<gpnp:GPnP-Profile Version=“1.0” xmlns=.. <省略> >
<gpnp:Network-Profile>
<gpnp:HostNetwork id="gen" HostName="*">
<gpnp:Network id="net1" IP="10.185.144.0" Adapter="eth0" Use="public"/>
<gpnp:Network id="net2" IP="10.10.1.0" Adapter="eth1" Use="cluster_interconnect"/>
</gpnp:HostNetwork>
</gpnp:Network-Profile>
<orcl:CSS-Profile id="css“ DiscoveryString="+asm" LeaseDuration="400"/>
<orcl:ASM-Profile id="asm" DiscoveryString="/dev/xvdb*“
SPFile="+DATA/stvm-cluster/asmparameterfile/registry.253.694745987"/>
<ds:Signature …<省略> >
</ds:Signature>
</gpnp:GPnP-Profile>
ネットワーク情報
CSS プロファイル
ASM プロファイル
OLR / OCR にも、GPnP プロファイルのコピーが格納されます (「SYSTEM.GPnP.profiles」 キ
ーとして格納)。ただし、OCRDUMP で内容を出力させても、プロファイル部分はバイナリ形式
で出力されるため、OLR / OCR のダンプからプロファイルの内容を確認することはできません。
投票ディスクを ASM 管理している場合は、CSS プロファイルの DiscoveryString は、‘+asm’ とな
り、ASM プロファイルの DiscoveryString を利用して、投票ディスクの検出を行います。投票ディスクを共
有ファイルシステムに配置している場合は、CSS プロファイルの DiscoveryString に投票ディスクのパス
が格納されます。
25
RAC 11g R1 までは、インターコネクトの情報は、OCR から取得していました。RAC 11g R2 で
は インタ コネクト情報を GPnP
は、インターコネクト情報を
GP P プロファイルから取得します。そのため、ASM
プロフ イルから取得します そのため ASM / DB Alert.log
Al t l
では、インスタンス起動時に以下のメッセージが出力されます。
DB Alert.log の例
Thu Aug 13 02:20:30 2009
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE SESSIONS WARNING = 0
LICENSE_SESSIONS_WARNING
Interface type 1 eth1 10.10.1.0 configured from GPnP Profile for use as a cluster interconnect
Interface type 1 eth0 10.185.144.0 configured from GPnP Profile for use as a public interface
Picked latch-free SCN scheme 2
GPNPD 障害などで通信に失敗した場合は、以下のメッセージが出力されます。
DB Alert.log
g の例
2009-08-16 22:08:16.798
[USER(6891)]CRS-2302:GPnPプロファイルを取得できません。
エラーCLSGPNP_NO_DAEMON (GPNPDデーモンは実行されていません)。
WARNING clssnsifquery: return = 1 vec_size = 10
interconnect information is not available from GPnP Profile
WARNING: No cluster interconnect has been specified. Depending on
the communication driver configured Oracle cluster traffic
may be
b di
directed
t d tto th
the public
bli iinterface
t f
off thi
this machine.
hi
Oracle recommends that RAC clustered databases be configured
with a private interconnect for enhanced security and
performance.
Picked latch-free SCN scheme 2
26
GPnP プロファイルは、バージョン管理されています。プロファイルに変更があった場合は、内
部的に保持しているシ ケンス番号が増えます O l Clusterware
部的に保持しているシーケンス番号が増えます。Oracle
Cl t
起動時には
起動時には、profile.xml
fil
l
/ OLR / OCR 間、および他ノードのシーケンス番号の比較を行い、シーケンス番号が最も大き
いプロファイル (最新のプロファイル) が採用されます。この仕組みにより、以下の状況にも対応
可能です。
• OLR / OCR の破損などで、以前のバックアップをリストアした場合
次回 Oracle Clusterware 起動時に、自動的に最新のプロファイルに更新されます。
• 他ノードが停止していた場合のプロファイルの更新
他ノードが停止していた状況で、ASM SPFILE や投票ディスクの配置変更を行った場合、停止
ノードではプロファイルの更新は行われませんが、次回 Oracle Clusterware 起動時に、自動
的に最新のプロファイルに更新されます。
ここでのバージョン管理は、GPnP プロファイル部分のみです。OCR / OLR 全体が最新に更
新されるという意味ではありません。
27
RAC 11g R2 では、Oracle Clusterware プロセスも内部的にリソース管理されます。そのため、
O l Cl
Oracle
Clusterware
t
プロセスは OHAS リソースと呼ばれることもあります。従来の
プロセスは、OHAS
リソ スと呼ばれることもあります 従来の CRS リソ
ースで定義されていたリソース属性 (CHECK_INTERVAL など) を持ち、CRS リソースと同等
の高可用性フレームワークで Oracle Clusterware プロセスも管理されます。
28
Oracle Clusterware 起動時に、OHAS デーモンが OLR を参照して、Oracle Clusterware プ
ロセスやエ ジ ントの起動を行います
ロセスやエージェントの起動を行います。
OLR の設定ファイル
OLR の配置場所は、各ノードの /etc/oracle/olr.loc に格納されています。
olrconfig_loc=/opt/gridhome/cdata/stvm16.olr
crs_home=/opt/gridhome
root.sh 実行時の OLR の自動バックアップ
Grid Infrastructure インストール時の root.sh 実行時に、以下のように、OLR のバックアップが
取得されます。
# ./root.sh
...
CRS-2672: 'ora.evmd'('stvm17')の起動を試行しています
CRS-2676: 'ora.evmd'('stvm17')の起動が成功しました
OLR のバックアップを取得
ックアッ を取得
stvm17 2009/08/27 00:33:35 /opt/gridhome/cdata/stvm17/backup_20090827_003335.olr
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
クラスタウェアのインベントリ・プロパティの更新中
Oracle Universal Installerを起動中です...
…
29
30
各 Oracle Clusterware プロセスの監視間隔は、OLR 内のリソース属性 CHECK_INTERVAL
として定義されています プロセス障害が発生すると エ ジ ントがプロセスの再起動を行い
として定義されています。プロセス障害が発生すると、エージェントがプロセスの再起動を行い
ます (CSS 障害の場合は、ノードリブート)。また、リソース名や使用するエージェントの定義もリ
ソース属性として定義されています。
(*1) oraagent は、1 秒間隔で ASM インスタンスを監視し、インスタンス障害が発生した場合は、
即時に ASM インスタンスを再起動させます。oraagent は、11g R1 までのインスタンス・モニタ
(racgimon) と同等の監視を行います。
(*2) CSS に障害が発生すると、cssdagent は即時にノードを再起動させます。30 秒間隔の監
視は、CSS のステータスを監視しています。
31
OLR の手動バックアップの実行例
新たにバックアップされたファイル
# ocrconfig -local -manualbackup
stvm16
2009/08/15 23:24:09
/opt/gridhome/cdata/stvm16/backup_20090815_232409.olr
stvm16
2009/08/13 01:03:26
/opt/gridhome/cdata/stvm16/backup_20090813_010326.olr
OLR のバックアップ情報の確認
# ocrconfig -local -showbackup
stvm16
2009/08/15 23:24:09
/opt/gridhome/cdata/stvm16/backup_20090815_232409.olr
stvm16
2009/08/13 01:03:26
/opt/gridhome/cdata/stvm16/backup_20090813_010326.olr
32
補足事項
• OLR の自動バックアップの機能はありません
• OLR の多重化は不可 (各ノード1つのみ)
• OLR の追加 / 削除は不可
• OLR が破損すると、Oracle Clusterware は起動不可 (バックアップからのリストアが必要)
33
RAC 11g R1 までは、ASM は、CRS リソースとして管理されていました。CRS デーモンが
OCR をオープンし、各リソースを起動する中で、ASM
をオ プンし 各リソ スを起動する中で ASM インスタンスも起動していました。しかし、
インスタンスも起動していました しかし
11g R2 の新機能である OCR を ASM 管理する場合、OCR をオープンする前に、ASM は起
動されている必要がありました。
RAC 11g R2 では、CRS リソースの中ではなく、Oracle Clusterware スタックの中で起動する
よう変更されています。OHAS エージェント (oraagent) が ASM インスタンスを起動します。
OHAS エージェントは、1 秒間隔で ASM インスタンスを監視し、インスタンス障害が発生した場
合は、即時に ASM インスタンスを再起動させます。OHAS エージェントは、11g R1 までのイン
スタンス・モニタ (racgimon) と同等の監視を行います。
Oracle ASM のリソース属性の違い
Oracle ASM の OHAS リソースと CRS リソースの役割の違いから、リソース属性として以下
が異なります。
リソース属性
OHAS リソースの ASM
CRS リソースの ASM
AUTO START
AUTO_START
restore
never
CHECK_INTERVAL
1
60
34
35
ASMCA で ASM を構成すると、デフォルトで ASM の SPFILE は ASM 管理されます。
SQL*Plus もしくは、SRVCTL で ASM インスタンスを起動する場合も、GPnP プロファイルから
情報を取得するため、ASM SPFILE を使用した ASM インスタンスの起動は可能です。
インスタンス起動中の SPFILE へのアクセスは読み込みのみ許可されています。そのため、
SPFILE 内の初期化パラメータを変更するためには、ASM インスタンスが起動されている必要
があります。
SPFILE を格納したディスクグループは、ASM インスタンス起動時に自動的にマウントされます。
SPFILE の確認方法
以下のコマンドで、GPnP プロファイル内の SPFILE のパスやディスク検出文字列を確認する
ことが可能です。
$ asmcmd spget
+DATA/jpintl cluster/asmparameterfile/registry 253 696194007
+DATA/jpintl-cluster/asmparameterfile/registry.253.696194007
$ asmcmd dsget
parameter:/dev/xvdb*
profile:/dev/xvdb*
36
RAC 11g R2 では、Oracle Clusterware と ASM を統合した Grid Infrustructure を提供します。
また O l Cl
また、Oracle
Clusterware
t
に必要な OCR / 投票ディスクを ASM 管理するため、従来のような
管理するため 従来のような
ASM インスタンスのみ停止する操作に制限がかけられています。
以下は、各種停止コマンドにおける ASM の停止の可否を表しています。
ASM で管理しているファイル
停止方法
SPFILE
OCR / 投票ディスク
svctl
tl stop
t asm (*1)
×
×
svctl stop asm –f (*2)
○
×
shutdown (normal /
immediate)
○
×
shutdwn abort
○
○
crsctl stop crs
○
○
crsctl stop cluster
○
○
(*1) OCR / 投票ディスクを ASM 管理している場合は、ASM の停止は不可
(*2) SPFILE のみ ASM 管理している場合は、-f オプションを指定することで停止することは可
能 (この場合、OCR / 投票ディスクは、共有ファイルシステムに配置)
37
CSS は自ら投票ディスクを検出し、I/O を実行することができるため、ASM インスタンス障害が
発生しても O l Cl
発生しても、Oracle
Clusterware
t
は稼動し続けることが可能です
は稼動し続けることが可能です。
38
39
Oracle High Availability Services (OHAS) デーモン
Oracle Clusterware プロセスの起動および、監視を行います。OLR
プ
起動および 監視を行 ます
の管理を行います。
管理を行 ます
Grid Plug and Play デーモン (GPNPD)
GPnP プロファイルの配布および、メンテナンスの管理を行います。非 GNS 環境でも利用されます。
Grid Interprocess Communication (GIPC) デーモン
RAC 11g R2 初期リリースでは何らかの機能を提供するプロセスではありません。今後のリリースにて、
使用される可能性があります。
Multicast Domain Name Service (mDNS) デーモン
GNS 環境で利用されるデ
環境で利用されるデーモン。GNS
モン。GNS を使用して名前解決を行う際のレスポンダとしての役割を担いま
す。
Oracle Agent (oraagent)
Oracle Clusterware プロセスの障害監視を行うエージェント (root 所有以外)。監視対象としては、
GPNPD, EVM などが含まれます。
Oracle Root Agent (orarootagent)
Oracle Clusterware プロセスの障害監視を行うエージェント (root 所有)。監視対象としては、CRS,
CTSS などが含まれます。
などが含まれます
cssdagent / cssdmonitor
CSS の状態を監視するエージェント。CSS の起動 / 停止 / 監視の主要な役割は、cssdagent が担いま
す。
Oracle ACFS ドライバ
Oracle ACFS / Oracle Kernel Services (OKS) / Oracle ADVM ドライバを管理。リソースを開始すると、
ドライバは OS 上にロードされます。Grid Infrastructure インストール時に Oracle ACFS ドライバも自動
的にインスト ルされます
的にインストールされます。
40
cssdagent / cssdmonitor に障害が発生しても、OHAS デーモンが即時に、エージェントの再起
動を行います
動を行います。cssdagent
d
t 障害時から再起動するまでの間も CSS の継続監視を行うために、
の継続監視を行うために
cssdmonitor が導入されています。
RAC 11g R1 までは、CSS 障害発生時のノード再起動は、init スクリプト (init.ocssd) で行わ
れていまいた。RAC 11g R2 では、cssdagent がノードの再起動を行います。
oprocd / oclsvmon / oclsomon
oprocd
d
プロセッサ・デーモンとしての役割を担います。プロセッサ (CPU) がストールしているか否かを
チェックし、ストールしている場合はノードを強制的に再起動します。これにより、 I/O Fencing
に似たメカニズムを提供し、データ障害を未然に防ぎます。
oclsvmon
CSS プロセス障害時にログを出力させる役割を担います。特定のベンダークラスタウェアが動
作している環境下でのみ起動します。
oclsomon
CSS がハングしていないかどうかを監視する役割を担います。CSS がハングしている場合は、
ノードを強制的に再起動します。
hangcheck timer モジュールの必要性
Linux 環境では、10.2.0.4 / 11.1 からノードハングの監視を目的として、 oprocd が導入されま
した。また、ノードハングの監視として、hangcheck timer モジュールも併用するようご案内して
いました RAC 11g R2 では、ノ
いました。RAC
では ノードおよび
ドおよび CSS の状態を CSS エ
エージェントが統合監視するこ
ジェントが統合監視するこ
とで、障害に対する精度の高い監視が可能になっています。そのため、RAC 11g R2 では、
hangcheck timer モジュールの設定は要件から外れました (設定する必要はありません)。
41
CSS のハングは、CSS エージェントが監視を行います。CSS エージェント (cssdagent /
cssdmonitor
d
it のいずれか) がハングすると、CSS
がハングすると CSS がハングしているかどうかの監視を行うこと
ができません。そのため、MISSCOUNT 秒以上 CSS エージェントがハングした場合は、ハン
グが解消された時点で即時にノード再起動が実行されます。
CSS および、CSS エージェントは、高負荷な場合でもより安定して動作するように Linux 環境
ではスケジューリングクラスが RR (Round Robin) に設定されています。RAC 11g R1 も同様
(oprocd / oclsomon / ocssd は RR に設定) です。
Linux 環境の MISSCOUNT / REBOOTTIME / DISKTIMEOUT の確認
MISSCOUT / REBOOTTIME / DISKTIMEOUT は以下のコマンドで確認できます。RAC 11g
R1 と設定値は同じです。
# crsctl get css misscount
30
# crsctl get css reboottime
3
# crsctl get css disktimeout
200
42
Cluster Ready Services (CRS) デーモン
CRS リソースの可用性を管理します。定期的に
用性を管理 ます 定期的 CRS リソースの状態を監視し、CRS
状態を監視
リソース障害時に
障害時
は必要に応じて再起動の試行や他ノード上へのフェイルオーバー / フェイルバックを行います。また、CRS
リソースの状態変化をイベントとして eONS / EVM に通知します。サーバー・プールの管理も行います。
Cluster Synchronization Services (CSS) デーモン
ノード間でハートビートを送りあうことによるクラスタ・メンバーシップ情報の管理や、投票ディスクを利用し
たスプリット・ブレイン解決を行います。また、クラスタ内で起動しているインスタンスのグループ・メンバー
シップ情報を管理し、ロック機能を提供する役割を担います。
Event Manager (EVM) デーモン
クラスタ内で発生した高可用性イベントの処理を行います。CRS
クラスタ内で発生した高可用性イベントの処理を行います
CRS リソースの状態に変化があった時、イベ
リソ スの状態に変化があ た時 イベ
ントを発行します。
Cluster Time Synchronization Service (CTSS) デーモン
NTP の設定がされていない場合に、クラスタを構成する全サーバーのシステム時刻同期を行います。
Oracle ASM
OCR / 投票ディスクを配置するディスク管理として利用します。
Disk Monitor (DISKMON) デーモン
HP Oracle Exadata Storage
g Server ストレージの監視および、I/O
ト
ジの監視および、
フェンシングを実行します。CSS
ンシングを実行します。
を開
始する際は、DISKMON も同時に開始されます。
Oracle Agent (oraagent)
Oracle Clusterware リソースの障害監視を行うエージェント (root 所有以外)。監視対象としては、DB, リ
スナー, ONS などが含まれます。また、FAN イベントが起きた場合、サーバー・コールアウトを実行します。
Oracle Root Agent (orarootagent)
Oracle Clusterware リソースの障害監視を行うエージェント (root 所有)。監視対象としては、VIP, ネット
ワークなどが含まれます。
ワ
クなどが含まれます。
43
44
45
46
全てのリソースは、リソースタイプを持ちます。RAC 11g R1 までは、リソースタイプは、
「
「application」
li ti 」 のみで、リソース作成時に必要なリソース属性を全て定義する必要がありました。
のみで リソ ス作成時に必要なリソ ス属性を全て定義する必要がありました
RAC 11g R2 では、予めリソースタイプでリソース属性を定義できるため、リソース作成時は、
必要最小限の定義で済みます。RAC 11g R2 でも、「application」 タイプは利用可能ですが、
下位互換のために存在します。
リソースタイプの利点
• リソースの特性に応じて、属性テンプレートの作成が可能
• リソース作成時は、必要なリソース属性のみ定義
リソース作成時は 必要なリソース属性のみ定義
• リソースタイプに基づく依存性の構築が可能
リソースタイプの確認方法
現在、作成されているリソースタイプを確認するためには、crsctl status type コマンドを実行し
ます。TYPE_NAME はタイプ名、BASE_TYPE は参照元 (親となる) タイプです。
$ crsctl status type
TYPE_NAME=application
BASE_TYPE=cluster_resource
TYPE_NAME=cluster_resource
BASE_TYPE=resource
TYPE_NAME=local_resource
BASE TYPE=resource
BASE_TYPE=resource
TYPE_NAME=resource
BASE_TYPE=
47
「local_resource」、「cluster_resource」 タイプは、組み込みリソースタイプで、Grid
I f t t
Infrastructure
インスト ル時に自動的に作成されます 組み込み CRS リソースやカスタム・ア
インストール時に自動的に作成されます。組み込み
リソ スやカスタム ア
プリケーションで利用されます。「cluster_resource」 タイプは、フェイルオーバー関連のリソー
ス属性 (PLACEMENT, SERVER_POOLS など) が定義されています。 「local_resource」 に
はその定義はありません。
ローカル・リソース / クラスタ・リソースの稼動確認
カスタム・アプリケーションの apps1 (ローカル・リソース) と apps2 (クラスタ・リソース) を作成
および、開始した後の状態出力例を以下に示します。
-- ローカル・リソース
-- 各サーバー上で起動 (ONLINE)
$ crsctl status resource apps1
NAME=apps1
TYPE=local_resource
TARGET=ONLINE
, ONLINE
, ONLINE
, ONLINE
STATE=ONLINE
STATE
ONLINE on serv1, ONLINE on serv2, ONLINE on serv3, ONLINE on serv4
-- クラスタ・リソース
-- クラスタ内のいずれかのサーバー上で起動 (ONLINE)
$ crsctl status resource apps2
NAME=apps2
TYPE=cluster_resource
TARGET=ONLINE
STATE=ONLINE on serv1
48
RAC 11g R2 より、新しく追加されたリソース属性 START_DEPENDENCIES /
STOP DEPENDENCIES で、リソースの開始
STOP_DEPENDENCIES
で リソ スの開始 / 停止時における依存関係を別々に定義するこ
とが可能になりました。また、オプションを利用することで、より柔軟な依存関係の構築が可能
になっています。
従来の依存関係の課題
• 依存関係の定義は、リソースによって以下のように分散定義されていました
• Hard Dependency
• リソース属性
リソ ス属性 REQUIRED_RESOURCES
REQUIRED RESOURCES で定義
• Soft Dependency
• バイナリ・ファイル (racgmain) で定義 (ハード・コード)
• 依存関係の制約
• 指定可能な依存関係は、Hard Dependency のみ
• 依存関係は、リソースの開始 / 停止両方に適用される (分離不可)
• 依存リソースは、最初に開始しなければいけない
• 依存関係を持つリソースは、同じノード上で起動しなければいけない
REQUIRED_RESOURCES / OPTIONAL_RESOURCES
REQUIRED_RESOURCES / OPTIONAL_RESOURCES リソース属性は、下位互換として、
application タイプのリソースのみ使用可能です。
49
開始の依存性
• 強い依存性 : リソースを開始する前に、依存するリソースが ONLINE でなければいけない場
合に利用
• 弱い依存性 : 依存するリソースの状態に関係なく、リソースを開始させたい場合に利用
• 集中依存性 : 依存するリソースが配置されているノード上で、リソースを開始させたい場合に
利用
• プルアップ依存性 : 依存するリソースを開始した後に、自動的にリソースを開始させたい場合
に利用
• 分散依存性 : リソースの共存
リ
の共存 (同一サーバー上で稼動)
(同 サ バ 上で稼動) を避けたい場合に利用
停止の依存性
• 強い依存性 : リソースを停止する際、依存するリソースも停止させたい場合に利用
50
構文
hard([intermediate:][global:]resource_name | type:resource_type)
指定可能なパラメータ
パラメータ
説明
intermediate
R2 が ONLINE もしくは、INTERMEDIATE である場合は、R1 は開始可能。
指定がない場合は、R2 は ONLINE である必要がある。
global
R2 がクラスタのいずれかのノード上で稼動していれば、R1 は開始可能。
指定がない場合は、R2 と同じノード上で R1 を配置する必要がある。
強い依存性を定義する場合は、プルアップ依存性も併せて設定することをお奨めします。
51
構文
weak([concurrent:][global:][uniform:]resource_name | type:resource_type)
指定可能なパラメータ
パラメータ
説明
concurrent
R1 の起動は、R2 の起動を待たない (同時実行)。指定がない場合は、R2 の開始
後に、R1 を開始。
global
R2 と同じサーバー上で R1 が稼動することを要求しない。指定がない場合は、R2
と同じノード上で R1 を配置する必要がある。
uniform
リソースが稼動可能な全てのサーバー上で R2 を開始。指定がない場合は、R1
と同じサーバー上で R2 を開始。
52
構文
attraction([intermediate:]resource_name | type:resource_type)
指定可能なパラメータ
パラメータ
説明
intermediate
R2 が ONLINE もしくは、INTERMEDIATE であるノード上で、R1 の開始を試行
。指定がない場合は、R2 は ONLINE である必要がある。
53
構文
pullup[:always]([intermediate:][global:]resource_name | type:resource_type)
指定可能なパラメータ
パラメータ
説明
intermediate
R2 が ONLINE もしくは、INTERMEDIATE である場合は、R1 は開始可能。
指定がない場合は、R2 は ONLINE である必要がある。
global
R2 がクラスタのいずれかのノード上で稼動していれば、R1 は開始可能。
指定がない場合は、R2 と同じノード上で R1 を配置する必要がある。
:always
R1 の TARGET 値に関係なくプルアップする。指定がない場合は、
TARGET=ONLINE のみ。
54
構文
dispersion[:active]([intermediate:]resource_name | type:resource_type)
指定可能なパラメータ
パラメータ
説明
intermediate
R2 が ONLINE もしくは、INはTERMEDIATE であるノード以外のノードで R1 の
開始を試行。指定がない場合は、R2 は ONLINE である必要がある。
:active
同一サーバー上でリソースが共存している場合は、ノード起動時にリソースの再
配置を行う。指定がない場合は、ノード起動時に再配置は行わない。
55
構文
hard([intermediate:][global:][shutdown:]resource_name | type:resource_type)
指定可能なパラメータ
パラメータ
説明
intermediate
R2 が ONLINE もしくは、INTERMEDIATE である場合は、R1 は ONLINE で稼
動し続けることが可能。指定がない場合は、R2 は ONLINE である必要がある。
global
R2 がクラスタ内のいずれかのノードで稼動していれば、R1 は稼動し続けることが
可能。指定がない場合は、同じサーバー上で、R2 が停止する際は、R1 の停止も
行う。
shutdown
crsctl stop crs / crsctl stop cluster を実行した時のみ依存性を適用。個々のリソ
ースの計画停止 / 計画外停止には影響しない。
56
RAC 10g R1 より、CRS リソースの開始 / 停止 / 再起動を行う高可用性フレームワークを提供
しました CRS リソースの監視は、CRS
しました。CRS
リソ スの監視は CRS デーモンが定期的にアクション・プログラムを実行
デ モンが定期的にアクシ ン プログラムを実行
(fork) することで行っていました (ただし、racgimon は常駐プロセス)。また、 RAC / ASM / VIP
のようなアプリケーションの場合は、racgvip や racgimon などを独自実装することで対応して
いました。
RAC 11g R2 では、クラスタ環境の全てのアプリケーションに高可用性サービスを提供するた
め、エージェント・フレームワークを提供します。RAC 11g R2 では、エージェントと呼ばれる常
駐プロセスが CRS リソースの監視を行います。常駐プロセスとすることで、プログラムを fork
するオーバヘッドを削減し、監視間隔の短縮および、より早期な障害検知を可能とします。エー
ジェントに障害が発生した場合は CRS デーモンがエージェントを即時に再起動します。
ジェントに障害が発生した場合は、CRS
デ モンがエ ジェントを即時に再起動します
アプリケーション利用時のエージェント
RAC 11g R2 では、アプリケーションを保護するスクリプトを実行するため、以下のエージェント
が利用可能です。
スクリプト・エージェント
• <Grid_Home>/bin/scriptagent.bin
• cluster_resource / local_resource タイプ利用時
アプリケーション・エージェント
• <Grid_Home>/bin/appagent.bin
• application タイプ利用時 (下位バージョンのデータベースおよび、サービス含む)
• 下位互換のために提供
カスタム・アプリケ ションを作成する際は、スクリプト・エ
カスタム・アプリケーションを作成する際は
スクリプト・エージェントを利用することをお奨めしま
ジェントを利用することをお奨めしま
す。
57
RAC 11g R2 のカスタム・アプリケーションの操作には、crsctl ユーティリティをご利用ください。
従来の crs_profile
fil などの crs_** コマンドは、下位互換のために存在します。
コマンドは 下位互換のために存在します
58
59
RAC 11g R2 では、いくつかのリソースが新しく追加されました。
デフォルトで OFFLINE となるリソース
• GSD リソース
RAC 11g R2 より、GSD リソースは、デフォルトで無効 (disable) に設定されるため、
OFFLINE となります。ベンダー製クラスタウェアがインストールされた RAC 9.2 で、かつ共有
構成ファイル (SRVM) が設定されている環境にて、Oracle Clusterware 11.2 をインストール
する場合は、デフォルトで ONLINE になります。
• OC4J リソース
OC4J リソースは、RAC 11g R2 初期リリースでは利用されないため、デフォルトで OFFLINE
になります。
• Oracle ASM / ディスクグループ / Oracle ACFS レジストリ
クラスタ用 Grid Infrastructure インストール時に、OCR / 投票ディスクを共有ファイルシステム
に配置する場合は、ASM は起動されないため、デフォルトで
デ
OFFLINE になります。OCR / 投
票ディスクを ASM に配置、もしくは、ASMCA により、ディスクグループを作成した場合は、自
動的に ONLINE になります。
ASM ディスクグループのリソースは、ディスクグループ作成時に自動的に作成されます。
60
RAC 11g R1 までは、ASM および、リスナーは、Oracle Database ホームから起動していまし
た RAC 11
た。RAC
11g R2 では、Oracle
では O l Cl
Clusterware
t
および ASM を統合したインストール
を統合したインスト ル (Grid
(G id
Infrastructure) の導入に伴い、ASM および、リスナーは、Grid Infrastructure ホームから起動
されます。
EM Database Control はリソースではありませんが、Oracle Database ホームから起動されま
す。
61
ASM を構成するツール (ASMCA) は、クラスタ用 Grid Infrastructure ホームにインストールさ
れます。
れます
NETCA は、クラスタ用 Grid Infrastructure ホームおよび、Oracle Database ホームの両方に
インストールされますが、RAC 11g R2 では、クラスタ用 Grid Infrastructure ホームの NETCA
を利用することをお奨めします。NETCA でリスナーを作成すると、ローカル・リソースとして
CRS リソースに登録され、クラスタを構成する全サーバーで起動されます(ノードの選択は不
可)。
リ ナ の管理
SCAN リスナーの管理
NETCA で SCAN リスナーを構成することはできません。SCAN リスナーを手動で構成する必
要がある場合は、SRVCTL ユーティリティを使用します。
62
管理する対象や使用するコマンドによって、環境変数 ORACLE_HOME やコマンドのパスの切
り替えが必要になります そのため 以下のような対処をしておくことをお奨めします
り替えが必要になります。そのため、以下のような対処をしておくことをお奨めします。
• Grid Infrastructure と Oracle Database は異なる OS ユーザでインストールを行い、各ユー
ザで読み込む環境変数を分離する
• 単一のインストールユーザの場合は、Grid Infrastructure 用と Oracle Database 用の環境
変数を定義したファイルを用意し、実行コマンドによって読み込む環境変数を切り替える
63
サーバー・プールやリソースを管理するコマンドとして、CRSCTL ユーティリティと SRVCTL ユ
ーティリティがあります。これらのコマンドは用途に応じて使用するユーティリティが異なるため、
テ リテ があります これらの マンドは用途に応じて使用する
テ リテ が異なるため
ご注意ください。
64
crs_stat コマンドは、下位互換のために残されているものの、RAC 11g R2 の新しいリソース・
モデリングに対応していないため使用しないようにしてください。
モデリングに対応していないため使用しないようにしてください
65
Oracle Clusterware リソースの確認方法
crsctl status resource –t コマンドにより確認します。以下は、2 ノードクラスタ環境で、RAC /
ASM 環境を構成した際の出力例です。
$ crsctl status resource -t
-------------------------------------------------------------------------------NAME
TARGET STATE
SERVER
STATE_DETAILS
-------------------------------------------------------------------------------Local Resources
-------------------------------------------------------------------------------ora.DG1.dg
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
ora.LISTENER.lsnr
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
ora.asm
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
ora.eons
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
ローカル・リソース
ora.gsd
各サーバー上で起動
OFFLINE OFFLINE
stvm20
OFFLINE OFFLINE
stvm21
ora.net1.network
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
ora.ons
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
t 21
ora.registry.acfs
ONLINE ONLINE
stvm20
ONLINE ONLINE
stvm21
-------------------------------------------------------------------------------Cluster Resources
-------------------------------------------------------------------------------ora.LISTENER_SCAN1.lsnr
1
ONLINE ONLINE
stvm20
ora.LISTENER_SCAN2.lsnr
1
ONLINE ONLINE
stvm20
ora.LISTENER_SCAN3.lsnr
1
ONLINE ONLINE
stvm21
ora.oc4j
1
OFFLINE OFFLINE
ora.orcl.db
1
ONLINE ONLINE
stvm20
2
ONLINE ONLINE
stvm21
ora.orcl.srv_a.svc
クラスタ・リソース
クラスタ
リソ ス
1
ONLINE ONLINE
stvm20
t 20
2
ONLINE ONLINE
stvm21
クラスタ内のいずれかの
ora.scan1.vip
サーバー上で起動
1
ONLINE ONLINE
stvm20
ora.scan2.vip
1
ONLINE ONLINE
stvm20
ora.scan3.vip
1
ONLINE ONLINE
stvm21
ora.stvm20.vip
1
ONLINE ONLINE
stvm20
ora.stvm21.vip
1
ONLINE ONLINE
stvm21
66
67
RAC 11g R1 までは、クラスタ・リソースのみで管理していました。全サーバーで稼動するリソー
ス (ローカル・リソース)
(ロ カル リソ ス) を作成する際は、クラスタ・リソースを全サーバー分作成して、個々のリ
を作成する際は クラスタ リソ スを全サ バ 分作成して 個々のリ
ソースとして管理していました。RAC 11g R2 では、クラスタ・リソース / ローカル・リソースの概
念を取り入れることで、ローカル・リソースも単一のリソースとして管理します。
68
RAC 11g R1 までは、ノードアプリケーションを構成するリソースは、クラスタ内のサーバー別に
リソ スが作成され それを識別するためにリソ スの名前には ホスト名が付いていました
リソースが作成され、それを識別するためにリソースの名前には、ホスト名が付いていました。
RAC 11g R2 では、単一のリソースと扱うため、リソースの名前からホスト名を排除しています。
$ crsctl status resource -t
…
ora.LISTENER.lsnr
ONLINE ONLINE
ONLINE ONLINE
ora.asm
ONLINE ONLINE
ONLINE ONLINE
ora.gsd
OFFLINE OFFLINE
OFFLINE OFFLINE
ora.ons
ONLINE ONLINE
ONLINE ONLINE
…
ora.stvm16.vip
1
ONLINE ONLINE
ora.stvm17.vip
1
ONLINE ONLINE
単一のリソースとして管理
各メンバーごとのステータスを表示
stvm16
stvm17
stvm16
stvm17
Started
Started
stvm16
stvm17
stvm16
stvm17
VIP は従来と同じ
stvm16
stvm17
69
RAC 11g R2 ではインスタンスおよび、サービス・メンバーのリソースは排除され、それぞれ単
一のリソースとして管理されます。
のリソ スとして管理されます
$ crsctl status resource -t
…
ora.asm
ONLINE ONLINE
ONLINE ONLINE
...
ora.orcl.db
1
ONLINE ONLINE
2
ONLINE ONLINE
ora.orcl.srv1.svc
1
ONLINE ONLINE
2
ONLINE ONLINE
単一のリソースとして管理
stvm16
stvm17
Started
Started
stvm16
stvm17
Open
Open
stvm16
stvm17
70
メンバー固有で管理するリソース属性に関しては、-v オプションを付けて確認することができま
す。
$ crsctl status resource ora.orcl.db -v
NAME=ora.orcl.db
TYPE=ora.database.type
LAST_SERVER=stvm16
STATE=ONLINE on stvm16
TARGET=ONLINE
CARDINALITY ID=1
CARDINALITY_ID=1
CREATION_SEED=65
CURRENT_RCOUNT=0
FAILURE_COUNT=0
FAILURE_HISTORY=
ID=ora.orcl.db 1 1
INCARNATION=2
LAST_RESTART=1250954892
_
p
STATE_DETAILS=Open
インスタンスのステータス
インスタンス障害が起きると、
CURRENT_RCOUNT がカウントアップされる
LAST_SERVER=stvm17
STATE=ONLINE on stvm17
TARGET=ONLINE
CARDINALITY_ID=2
CREATION_SEED=65
CURRENT_RCOUNT=0
FAILURE_COUNT=0
FAILURE HISTORY
FAILURE_HISTORY=
ID=ora.orcl.db 2 1
INCARNATION=1
LAST_RESTART=1250954995
STATE_DETAILS=Open
71
72
73
ネットワーク・リソース
crsctl status resource では、以下のようにネットワーク・リソースのステータスを確認できます。
$ crsctl status resource –t
…
ora.net1.network
ONLINE ONLINE
ONLINE ONLINE
stvm16
stvm17
ネットワーク番号
ネットワ
ク番号
ネットワーク・リソースは、ネットワーク番号を持ちます。Grid Infrastructure インストール時に構
成されるネットワークのネットワーク番号は 1 (デフォルト) です。RAC 11g R2 の新機能で、複
数サブネットに対して、VIP を作成することが可能です。その場合は、サブネットごとにネットワ
ーク番号 (2,3…) を割り当て、それに応じたネットワーク・リソース (ora.net(2,3…).network) が
作成されます。
74
ネットワークと VIP の監視
RAC 11g R1 までは、CRS が VIP リソースの監視 (RACGVIP) の中で、パブリック・ネットワー
クの監視も行っていました。RAC 11g R2 では、パブリック・ネットワークの監視は、ネットワー
ク・リソースのチェックで行います。リンクのステータスを1秒間隔で監視し、パブリックネットワー
ク障害が発生すると、ネットワーク・リソースは、OFFLINE になります。VIP や SCAN VIP の監
視は、NIC 上の VIP の存在の有無をチェックするのみとなります。
VIP / SCAN VIP を開始させるためには、そのノード上でネットワーク・リソースが ONLINE で
ある必要があります。
パブリック・ネットワーク障害時の動作
1. パブリック・ネットワークに障害発生
2. ネットワーク・リソースが障害検知 (即時)
3. ネットワーク・リソースの再起動を1回試行 (再起動に失敗すると、次のステップ)
4. 以下のリソースを停止
• デフォルト・リスナー
• SCAN リスナー
リスナ
• サービス
• VIP (デフォルトリスナー、全サービス停止後)
• SCAN VIP (SCAN リスナー停止後)
5. サービスを別のインスタンスで起動 (SINGLETON の場合)
6. VIP / SCAN VIP をフェイルオーバー先のサーバーで起動
7. SCAN リスナーをフェイルオーバー先のサーバーで起動 (SCAN VIP 起動後)
75
RAC 11g R1 までは、ネットワーク障害の回復後、DB インスタンスの監視 (5分間隔) の際に、
VIP をフェイルバックすることは可能でした。ただし、ネットワークが回復したことを直接検知する
をフ イルバ クすることは可能でした ただし ネ トワ クが回復したことを直接検知する
メカニズムは持っていないため、フェイルバックには少し時間を要していました。
(RAC 11g R1 までは、デフォルトで VIP の自動フェイルバックが無効 (10.2.0.3 を除く))
RAC 11g R2 では、ネットワーク・リソースを導入し、ネットワークの監視を VIP と分離すること
で、ネットワーク障害回復の早期検知および、 早期 VIP フェイルバックを実現させています。
SCAN VIP はホームノードを持たないため、自動フェイルバックの動作はありません。
76
サーバー障害時の VIP リソース
VIP リソースは、フェイルオーバーすると、ステータスが 「INTERMEDIATE」 の状態になります。
$ crsctl status resource ora.stvm16.vip
NAME=ora.stvm16.vip
TYPE=ora.cluster_vip_net1.type
TARGET=ONLINE
STATE=ONLINE on stvm16
* 「stvm16」 のサーバーに障害が発生
$ crsctl status resource ora.stvm16.vip
NAME=ora.stvm16.vip
TYPE=ora.cluster_vip_net1.type
TARGET=ONLINE
STATE=INTERMEDIATE on stvm18
リソースのステータス 「INTERMEDIATE」
「INTEMEDIATE」 は、リソースは部分的に ONLINE の状態 (稼動しているものの、サービス
は提供可能ではない状態) を表します。VIP が正常にフェイルオーバーしても、アプリケーション
からは、この VIP を利用してデータベースに接続することはできないため、「INTEMEDIATE」
というステータスになります。基本的に、対処の必要はありません。
77
SCAN VIP と SCAN リスナーは依存関係を持つため、個々の SCAN VIP / リスナーは、常に
同じサ バ 上で起動します
同じサーバー上で起動します。
$ crsctl status resource –t
…
ora.LISTENER_SCAN1.lsnr
1
ONLINE ONLINE
ora.LISTENER_SCAN2.lsnr
1
ONLINE ONLINE
ora LISTENER SCAN3 lsnr
ora.LISTENER_SCAN3.lsnr
1
ONLINE ONLINE
…
ora.scan1.vip
1
ONLINE ONLINE
ora.scan2.vip
1
ONLINE ONLINE
ora.scan3.vip
1
ONLINE ONLINE
stvm19
stvm18
stvm17
scan1 / scan2 / scan3 の VIP とリスナーは、
それぞれ同じサーバー上に配置
stvm19
stvm18
stvm17
78
SCAN VIP / SCAN リスナーの手動再配置
通常は、クラスタ内のサーバー上で分散配置されるため、手動での再配置は必要ありません。
以下のように、サーバーのメンテナンスなどで、SCAN を他のサーバーに移動させたい場合に
手動で再配置することが可能です。いずれのコマンドも SCAN VIP / SCAN リスナー両方、同
じサーバー上に再配置します。
SCAN VIP の再配置
s ct relocate
srvctl
e ocate sca
scan -i <scan
sca _number>
u be [-n
[ <node
ode_name>]
a e ]
例) srvctl relocate scan -i 1 -n serv1
SCAN リスナーの再配置
srvctl relocate scan_listener -i <scan_number> [-n <node_name>]
例) srvctl relocate scan_listener -i 1 -n serv1
79
サーバーが複数のサブネットのネットワークに接続されている場合は、RAC 11g R2 では、サ
ブネ トごとに VIP を作成することが可能になります。1つのサブネットに1つの
ブネットごとに
を作成することが可能になります 1つのサブネ トに1つの VIP を構成でき
ます。同じサブネットに複数の VIP は構成できません。
セキュリティ要件や負荷分散の観点で、サブネットを分離したい場合に有効です。
ネットワーク・リソース
複数サブネットに対して VIP を作成した際のネットワーク・リソースのステータスは以下のように
なります。
$ crsctl status resource –t
…
ora.net1.network
ONLINE ONLINE
ONLINE ONLINE
ora.net2.network
ONLINE ONLINE
ONLINE ONLINE
デフォルトのネットワーク・リソース
stvm16
stvm17
異なるサブネットに VIP を作成した際の
ネットワーク・リソース
stvm16
stvm17
t 17
ネットワーク番号
ネットワーク・リソースは、ネットワーク番号を持ちます。Grid Infrastructure インストール時に構
成されるネットワークのネットワーク番号は 1 (デフォルト) です。RAC 11g R2 の新機能で、複
数サブネットに対して、VIP を作成することが可能です。その場合は、サブネットごとにネットワ
ーク番号 (2,3…) を割り当て、それに応じたネットワーク・リソース (ora.net(2,3…).network) が
作成されます。
80
81
82
RAC 11g R2 では、listener.ora にエンドポイントの設定は行いません。エンドポイントの情報
は リソ スの属性として保持し リスナ 起動時にエ ジ ントが動的に設定を行います そ
は、リソースの属性として保持し、リスナー起動時にエージェントが動的に設定を行います。そ
のため、リスナーの構成を変更 (ポート番号の変更など) することによる listener.ora の編集は
不要です。
リスナー起動時の動作
1. リスナー起動 (srvctl start listener を実行)
2. CRS が oraagent にリスナー開始を実行
3 oraagentt は、リスナーを起動
3.
は リ ナ を起動
4. oraagent は、ローカルの VIP とリスナーのポート番号からエンドポイントを生成
5. oraagent は、リスナーにエンドポイントを登録
登録されたリスナーのエンドポイントの確認
lsnrctl コマンドにより、リスナーのエンドポイントの確認が可能です。リスナーのエンドポイント
の先頭は、常に IPC のエントリがくるため、ネットワーク障害時などにおけるリスナー停止で時
間を要する (TCP タイムアウトを待つ) ことはありません。
エージェントによって、動的に登録されたエンドポイント
$ lsnrctl status LISTENER
(VIP とパブリック IP がリスニングアドレスとして登録)
…
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<VIP Address>)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<Public IP>)(PORT=1521)))
サービスのサマリー...
サービス"+ASM"には、1件のインスタンスがあります。
インスタンス"+ASM1"、状態READYには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
83
RAC 11g R2 で、listener.ora の設定が無効 (無視) になったわけではありません。リスナーを
起動する際は li t
起動する際は、listener.ora
を読み込んで起動しているため li t
を読み込んで起動しているため、listener.ora
のパラメ タなどの
のパラメータなどの
設定は11g R2 でも有効です。
リスナーの設定確認
現在のリスナーの設定を確認するためには、srvctl config listener を実行します。
$ srvctl config listener -l LIS112
名前: LIS112
ネットワーク: 1、所有者: grid
ホーム: <CRS home>
エンド・ポイント: TCP:1525
listener.ora の内容
listener.ora には、以下のようにエージェントが動的に追加した IPC のエントリがあります。これ
はエージェントがリスナーに接続するための情報になります。
は
ジ ントがリ ナ に接続するための情報になります。
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)
(KEY=LISTENER))))
# line added by Agent
endpoints_listener.ora ファイル
<Grid_home>/network/admin 配下には、endpoints_listener.ora というファイルがあります。
これは Oracle Clusterware 配下に、下位のバージョンのデータベースが共存し、
これは、Oracle
配下に 下位のバ ジョンのデ タベ スが共存し 11g R2
ASM を認識する際に利用されるファイルになります。11g R2 のみの環境ではこのファイルは
利用されません。
84
RAC 11g R2 では、DBCA は LOCAL_LISTENER の設定を行いません。
LOCAL LISTENER の設定は、ローカルの
LOCAL_LISTENER
の設定は ロ カルの VIP やリスナー情報を読み取り、エージェントによ
やリスナ 情報を読み取り エ ジ ントによ
り自動的に設定されます。そのため、ポリシー管理で動的に、RAC インスタンスの配置が変更
されても、デフォルトリスナーに対するサービスの登録は自動的に対応可能です。また、リスナ
ーの新規作成や構成を変更 (ポート番号の変更など) することによる LOCAL_LISTENER の
設定変更は不要です。
インスタンス起動時の動作
1. イン
インスタンスの起動
タン の起動 ((srvctl start database))
2. CRS が oraagent にデータベース開始を実行
3. oraagent は、インスタンスを起動 (サービスの起動も含む)
4. oraagent は、ローカルの VIP とリスナーのエンドポイントから LOCAL_LISTENER の設定
を生成
5. oraagent は、インスタンスに接続を行い、ALTER SYSTEM SET LOCAL_LISTENER を実
行
6. PMON がロ
6
がローカル上で稼動するリスナーに対して、サービスを登録
カル上で稼動するリスナ に対して、サ ビスを登録 (リスナ
(リスナー経由の接続が
経由の接続が
可能に)
インスタンス起動時の ALERT.LOG
Fri Aug 14 23:41:59 2009
Starting ORACLE instance (normal)
エージェントにより、動的に設定された LOCAL_LISTENER
…
Completed: ALTER DATABASE OPEN
Fri Aug 14 23:42:28 2009
ALTER SYSTEM SET local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
(HOST=stvip03)(PORT=1521))))' SCOPE=MEMORY SID='orcl_1';
85
RAC 11g R2 の DBCA で RAC データベース (管理者管理 / ポリシー管理両方) を作成する
際は デフォルトで以下のように構成されます
際は、デフォルトで以下のように構成されます。
• LOCAL_LISNTENER (設定なし)
• REMOTE_LISTENER=“<SCAN 名>:ポート番号“
デフォルトリスナーには、ローカルで起動しているインスタンスのサービスのみが登録されます。
SCAN リスナーでは、クラスタで稼動する全サービスの情報が登録されます。
86
87
リスナーの構成変更を LOCAL_LISTENER に反映する方法
リスナーの新規作成もしくは、変更を行った場合、それを LOCAL_LISTENER に反映させるた
めには、以下のいずれかの対応が必要です。
• DB インスタンスの再起動
• ALETER SYSTEM SET LOCAL_LISTENER (SCOPE=MEMORY 指定) を明示的に実行
下位バージョンの LOCAL_LISTENER の動的設定について
Oracle Clusterware 11.2 環境に、RAC 11g
g R1 などの下位バージョンの Oracle データベー
スを共存させる場合は、LOCAL_LISTENER の設定に依存せず、エージェントによる
LOCAL_LISTENER の動的設定は行いません。下位バージョンで LOCAL_LISTENER を構
成する場合は、従来通り、初期化パラメータの設定が必要です。
88
DB Home から起動するリスナーを利用する場合は、LOCAL_LISTENER を明示的に設定す
る必要があります。
る必要があります
複数サブネットで、デフォルト以外のネットワーク上に作成するリスナーに関しては、初期化パラ
メータ LISTENER_NETWORKS を明示的に設定してください。
89
90
91
92
ポリシー管理では、RAC フェイルオーバー時に、SID が変わることがあるため、インスタンス固
有の設定は排除すべきです DBCA でポリシー管理を選択した場合は、インスタンス固有のパ
有の設定は排除すべきです。DBCA
でポリシ 管理を選択した場合は インスタンス固有のパ
ラメータは設定されません。従来の <SID>.UNDO_TABLEPSPACE=‘UNDOTBS1‘ といった
インスタンスごとに異なる値を取る設定はポリシー管理では行いません。
CLUSTER_INTERCONNECTS
CLUSTER_INTERCONNECTS は、RAC のノード間通信で利用するネットワークの IP アドレ
スを指定します。ポリシー管理では、ノード障害などで、RAC インスタンスが別のサーバーにフ
ェイルオーバーするため、このようにサーバー固有の設定に対応できず、インスタンスの起動に
イルオ
するため、このようにサ
固有の設定に対応できず、インスタンスの起動に
失敗します。ポリシー管理では、CLUSTER_INTERCONNECTS を設定しないことをお奨めし
ます。
CLUSTER_DATABASE_INSTANCES
RAC 11g R1 までは、CLUSTER_DATABASE_INSTANCES を全ノードで同じ値に設定する
必要がありました。インスタンス追加を行う際は、このパラメータも変更する必要がありました。
RAC 11g R2 では、ポリシー管理 / 管理者管理共に、CLUSTER_DATABASE_INSTANCES
を明示的に設定する必要はありません DBCA で RAC データベースを作成する際もデフォル
を明示的に設定する必要はありません。DBCA
デ タベ スを作成する際もデフォル
トでは設定されません。デフォルト値は CSS から取得し、クラスタを構成するノード数に設定さ
れます。
93
例えば、2 ノード RAC 環境で、1 ノードがダウンした場合は、生存ノードで稼動するインスタン
スは1つのみです この場合 RAC インスタンスはフェイルオーバーしません。フェイルオーバ
スは1つのみです。この場合、RAC
インスタンスはフ イルオ バ しません フ イルオ バ
ー先がある、つまり、サーバー・プールで新たにサーバーを割り当てることができた場合は、
RAC インスタンスはフェイルオーバーします。
RAC インスタンスがフェイルオーバーすると、必要なファイル (初期化パラメータ・ファイルや
ALERT.LOG、トレースファイル) などは、フェイルオーバー先のサーバー上で自動的に作成さ
れるため、事前の設定は必要ありません。
管理者管理デ タ
管理者管理データベースの場合
の場合
管理者管理のインスタンスはフェイルオーバーしません。インスタンス障害発生時は、従来通り、
即時にインスタンスは再起動されます。
94
サービスの注意点
• ポリシー管理のサービスでは、以下をサポートしていません。
• 優先 / 使用可能
• TAF ポリシー (BASIC / PRECONNECT)
• 複数サブネット環境では、-k オプションを使用してサブネットを指定 (デフォルトはネットワーク
番号 1)。
srvctl add service -d orcl -s srv1 –g pool1 –k 2
• クラスタでサービス名が一意となるようにサービスを作成してください。
• 異なるデータベース間で同じサービス名を持つサービスを作成することは可能
• ただし、クライアントからの接続では、接続先のデータベースが変わる可能性があります
95
SINGLETON サービスは、明示的な優先インスタンスは持たないものの、最初に起動されたイ
ンスタンス上で全ての SINGLETON サービスが起動します。
サ ビスが起動します
SINGLETON サービスの開始
• サービスを起動するノード名、もしくは、インスタンス名を指定して起動可能
srvctl start service -d orcl -s srv1 -n stvm18 (ノード名指定)
srvctl start service -d orcl -s srv1 -i orcl_1 (インスタンス名指定)
• 全サービスを一括で開始 / 停止可能
srvctl start service -d orcl (一括開始)
srvctl stop service -d orcl (一括停止)
96
インスタンス名指定での SINGLETON サービスの手動再配置はサポートされていません。(管
理者管理 RAC データベースのサービスで使用可能)
デ タベ スのサ ビスで使用可能)
-f オプションを指定したサービスの手動再配置
-f オプションを指定すると、そのサービスで接続されているセッションは kill され、クライアント側
には、ORA-3113 などのエラーが返ります。ALERT.LOG では以下のようなメッセージが出力
され、セッションが kill されていることが確認できます。
ALERT.LOG
ALERT
LOG
Tue Aug 25 04:24:00 2009
ALTER SYSTEM SET service_names='srv1' SCOPE=MEMORY SID='orcl_1';
Immediate Kill Session#: 50, Serial#: 189
Immediate Kill Session: sess: 0x3ea6e78c OS pid: 29834
97
98
クラスタ・リソースは、サーバー障害時など、フェイルオーバーするリソースであることを表してい
ます。
ます
リソースタイプの階層構造
「resource」 タイプを起点として、「local_resource」、「cluster_resource」 タイプが作成されます。
各組み込み CRS リソースで使用するリソースタイプは、「local_resource」、
「cluster_resource」 タイプをベースとして作成されています。
resource
ローカル・リソース
クラスタ・リソース
+ local_resource
+ cluster_resource
+ ora.local_resource.type
+ ora.eons.type
+ ora.gsd.type
+ ora.listener.type
+ ora.network.type
+ application
+ ora.cluster_resource.type
+ ora.cluster_vip.type
+ ora.cluster_vip_net1.type
+ ora.scan_vip.type
+ ora.ons.type
+ ora.scan_listener.type
+ ora.asm.type
+ ora.oc4j.type
+ ora.diskgroup.type
+ ora.database.type
+ ora.registry.acfs.type
+ ora.service.type
99
クラスタ・リソースが、フェイルオーバーの対象リソースになります。サーバー障害発生時、その
サ バ 上で稼動していたリソ スは 他のサ バ にフ イルオ バ します
サーバー上で稼動していたリソースは、他のサーバーにフェイルオーバーします。
ポリシー管理の RAC データベース利用時は、サーバー障害発生時のサーバー・プールの再
構成に依存してフェイルオーバー先のサーバーが決まります。
ASM インスタンスは、ローカル・リソースです。クラスタを構成する全サーバー上で稼動するた
め、ASM インスタンスは、サーバー・プールに非依存、かつ、フェイルオーバーもしません。
11g R2 のシングル・インスタンスも管理者管理となるため、フェイルオーバーしません。
100
各 Oracle Clusterware リソースの監視間隔は、リソース属性 CHECK_INTERVAL で定義さ
れています RAC 11
れています。RAC
11g R2 では、従来と較べると、VIP
では 従来と較べると VIP および、リスナーの監視間隔が短くなり
および リスナ の監視間隔が短くなり
ました。
(*1) ASM は、OHAS エージェントにより、1 秒間隔で監視
(*2) GSD と OC4J リソースはデフォルトで OFFLINE
101
開始の依存関係は、リソースの起動順序を制御します。上記は、強い依存性 (hard) と弱い依
存性 (weak)
(
k) を図式したものです。プルアップ依存性
を図式したものです プルア プ依存性 (pullup)
( ll ) や分散依存性 (dispersion)
(di
i ) など
の他のオプションは省略しています。
データベースが ASM を利用している場合、RAC 11g R2 では、データベースは、ASM ではな
くディスクグループと依存関係を持ちます。
102
停止の依存関係は、リソースの停止順序を制御します。停止の依存関係は、強い依存性
(h d) のみです。
(hard)
のみです
103
104
105
GPnP プロファイルから有効な SPFILE を検出できなかった場合は、<Grid_home>/dbs 配下
の SPFILE / PFILE を探索します。それでも
を探索します それでも SPFILE / PFILE を見つけることができなかった場
を見つけることができなか た場
合は、デフォルトの初期化パラメータ (パラメータの設定なし) で ASM インスタンスは起動しま
す。もし、ASM SPFILE を格納した ASM ディスクが破損した場合は、デフォルトの初期化パラ
メータで ASM を一旦起動し、SPFILE のバックアップをリストアすることが可能です。
106
RAC 11g R1 までは、DB リソースで管理される SPFILE の位置を直接参照し、インスタンスを
起動していました RAC 11
起動していました。RAC
11g R2 では、initsid.ora
では i it id
に設定する情報として利用されます ポリシ
に設定する情報として利用されます。ポリシ
ー管理データベースにおいて、RAC インスタンスが再配置された際に、そのサーバー上で
initsid.ora が存在しない場合は、エージェントが自動的にファイルを生成します。ただし、
$ORACLE_HOME/dbs 配下にそれよりも優先順位の高い spfilesid.ora や spfile.ora が配置
されていると、そちらが優先されることにご注意ください。
管理者管理 RAC データベースの PFILE の使用
DBCA で管理者管理 RAC デ
データベースを作成する場合、SPFILE
タ
を作成する場合、
は、ASM もしくは、共有
は、
もしくは、共有フ
ァイルシステム上に作成されます。$ORACLE_HOME/dbs/initsid.ora でテキストファイルとして
初期化パラメータファイルを管理したい場合は、以下のように、SPFILE の場所を指定しないで
DB リソースを再作成する必要があります。
$ srvctl remove database -d orcl
$ srvctl add database -d orcl -o /opt/oracle/db -n orcl -m world -g pool1 -a DG1
→ -p オプションの指定なし
$ srvctl config database -d orcl | grep spfile
spfile:
→ null にクリアされる
初期化パラメータを定義した $ORACLE_HOME/dbs/initsid.ora を RAC を
構成するサーバー上に配置することで、PFILE での運用が可能です。
107
(*1) SCAN リスナーのログは、自動診断リポジトリ (ADR) の仕様に基づいて出力されます。そ
のため O l Cl
のため、Oracle
Clusterware
t
を起動する OS ユーザの環境変数
ユ ザの環境変数 ORACLE_BASE
ORACLE BASE に依存しま
す。通常、OS 起動時に起動される Oracle Clusterware では、ORACLE_BASE は設定されて
いないため、<Grid_Home>/log 配下に出力されます。Oracle Clusterware を手動で起動する
際に、OS ユーザの環境変数に、ORACLE_BASE が設定されている場合は、その配下に
SCAN リスナーのログが出力されます。
108
109
110
111
Fly UP