この章では、Oracle Clusterware環境の管理方法について説明します。投票ディスクおよびOracle Cluster Registry(OCR)の管理方法についても説明します。
この章の内容は次のとおりです。
Oracle Real Application Clusters(Oracle RAC)は、複数のノードを結び付けて単一のサーバーとして機能させるためのインフラストラクチャとしてOracle Clusterwareを使用します。Oracle RAC環境では、Oracle ClusterwareはすべてのOracleコンポーネント(インスタンスやリスナーなど)を監視します。障害が発生すると、障害の発生したコンポーネントの再起動を自動的に試行し、使用可能なコンポーネントに処理をリダイレクトします。
Oracle Clusterwareには、クラスタ上で実行されるアプリケーションを管理するための高可用性フレームワークが含まれています。Oracle Clusterwareでは、システムの起動時にアプリケーションが起動されるようにアプリケーションを管理します。また、アプリケーションが常に使用可能であるようにアプリケーションを監視します。たとえば、あるアプリケーション・プロセスで障害が発生した場合、Oracle Clusterwareでは、カスタマイズされたスクリプトに基づいてプロセスの再起動を試行します。クラスタ内のあるノードで障害が発生した場合は、障害が発生したノードで通常実行されるアプリケーション・プロセスがクラスタ内の別のノードで再起動されるようにプログラムできます。
投票ディスクには、ノードのメンバーシップ情報が記録されます。ノードは、過半数の投票ディスクに随時アクセスできる必要があります。複数の投票ディスクが同時に失われないようにするため、各投票ディスクは、他の投票ディスクに使用されるストレージ・デバイスとコンポーネント(コントローラやインターコネクトなど)を共有していないストレージ・デバイスに存在する必要があります。
たとえば、5つの投票ディスクが構成されている場合、ノードは常に3つ以上の投票ディスクにアクセス可能である必要があります。最低限必要な数の投票ディスクにアクセスできないノードは、クラスタから除去、つまり削除されます。障害の原因が修正されて、投票ディスクへのアクセスがリストアされた後、障害ノードをリカバリしてクラスタにリストアするようにOracle Clusterwareに指示できます。
Oracle Cluster Registry(OCR)は、クラスタ・ノード・リストおよびインスタンスからノードへのマッピング情報が含まれたファイルです。また、OCRは、カスタマイズしたリソースのOracle Clusterwareリソース・プロファイルの情報も含まれています。投票ディスクのデータもOCRにバックアップされています。
クラスタ内の各ノードにも、Oracle Local Registry(OLR)と呼ばれるOCRのローカル・コピーがあり、Oracle Clusterwareのインストール時に作成されます。Oracle Clusterwareが完全に機能するかどうかに関係なく、各ノードの複数のプロセスには、置かれているノードに固有のOLRに対して同時読取りおよび書込みアクセス権があります。デフォルトでは、OLRの場所はGrid_home
/cdata/
$HOSTNAME
.olr
です。
高可用性を備えた構成には、シングル・ポイント障害を回避することにより操作を維持する冗長なハードウェアとソフトウェアが含まれています。コンポーネントが停止した場合、Oracle Clusterwareは停止したコンポーネントに管理されているリソースを冗長コンポーネントにリダイレクトします。ただし、障害が発生した場合や大規模なハードウェア障害が発生すると、保持している冗長コンポーネントでは足りなくなることがあります。システムを完全に保護するには、重要なファイルをバックアップすることが大切です。
Oracle Clusterwareのインストール・プロセス中に、投票ディスクとOCRが共有記憶域に作成されます。インストール・プロセス中に通常の冗長コピーのオプションを選択すると、Oracle Clusterwareによってこれらのファイルの冗長コピーが自動的に保持され、ファイルがシングル・ポイント障害となることを阻止します。また、通常の冗長性機能により、サード・パーティの記憶域冗長ソリューションが不要になります。通常の冗長性を使用すると、Oracle Clusterwareにより、OCRファイルのコピー2つと投票ディスク・ファイルのコピー3つが自動的に保持されます。
参照: 投票ディスクの管理の詳細は、『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。 |
デフォルトでは、Oracle Clusterwareは、サーバーが存在する場合は常に再起動するよう構成されています。特定のメンテナンス操作中、Oracle Clusterwareスタックを手動で停止または起動する必要がある場合があります。
注意: Oracleサポートによって実行するよう指示されないかぎり、名前がora で始まるOracleエンティティ(リソース、リソース・タイプ、サーバー・プールなど)でOracle Clusterware Control(CRSCTL)を実行しないでください。サーバー制御ユーティリティ(SRVCTL)は、Oracleエンティティに対して使用する適切なユーティリティです。 |
CRSCTLユーティリティを使用して、Oracle Clusterwareを管理します。Oracle高可用性サービス・デーモン(OHASD)がすべてのクラスタ・ノードで実行されている場合は、任意のノードで次のコマンドを実行することで、クラスタ内のすべてのノードのすべてのOracle Clusterwareスタック(Oracle Clusterwareによって管理されているすべてのプロセスとリソース)を起動できます。
crsctl start cluster -all
-n
オプションの後にノード名のスペース区切りリストを使用し、特定のノードでOracle Clusterwareスタックを起動できます。次に例を示します。
crsctl start cluster -n racnode1 racnode4
前述のコマンドを使用するには、指定されたノードでOHASDプロセスが実行されている必要があります。
あるノードでOHASDプロセスを含むすべてのOracle Clusterwareスタックを起動するには、そのノードで次のコマンドを実行します。
crsctl start crs
クラスタ内のすべてのノードでOracle Clusterwareを停止するには、任意のノードで次のコマンドを実行します。
crsctl stop cluster -all
前述のコマンドで停止されるのは、Oracle Clusterwareによって管理されるリソース、Oracle ASMインスタンス、およびすべてのOracle Clusterwareプロセス(OHASDとその依存プロセスを除く)です。
選択したノードでOracle ClusterwareおよびOracle ASMを停止するには、-n
オプションを含め、その後にノード名のスペース区切りリストを指定します。次に例を示します。
crsctl stop cluster -n racnode1 racnode3
stop cluster
コマンドに-all
または-n
オプションを含めない場合、コマンドを実行したノードにあるOracle Clusterwareとその管理対象リソースのみが停止されます。
Oracle Clusterwareの全スタック(OHASDプロセスを含む)を完全に停止するには、crsctl stop crs
コマンドを使用します。CRSCTLは、Oracle Clusterwareスタックの停止の間に、Oracle Clusterwareが管理するリソースを正しく停止しようとします。Oracle Clusterwareが管理するリソースがcrsctl stop crs
コマンドの実行後もまだ動作している場合、コマンドは失敗です。この場合、-f
を使用すると、すべてのリソースが無条件に停止され、たとえばOracle Clusterwareスタックが停止されます。
crsctl stop crs -f
この項では、次のタスクの実行方法について説明します。
Oracle ASMにOracle Clusterwareファイルを格納し、ディスク・グループに冗長性を使用するようにした場合、Oracle ASMは、ディスク・グループの冗長性に基づいて自動的に理想的な数の投票ファイルを保持します。
投票ディスクの格納に様々な形式の共有記憶域を使用する場合は、Oracle RACのインストール後に投票ディスクを動的に追加および削除できます。次のコマンドを使用して実行します。ここで、path
は追加の投票ディスクの完全修飾パスです。
ディスクに格納された投票ディスクを追加または削除するには、次の手順を実行します。
投票ディスクを追加するには、次のコマンドをgrid
(またはoracle
)ユーザーとして実行します。
crsctl add css votedisk path
投票ディスクを削除するには、次のコマンドをgrid
(またはoracle
)ユーザーとして実行します。
crsctl delete css votedisk path
この項の内容は次のとおりです。
Oracle Clusterware 11gリリース2(11.2)では、投票ディスクをバックアップする必要はありません。投票ディスクのデータは、構成変更の一環としてOCRで自動的にバックアップされます。次のようにファイルの内容が変更された場合は、Oracle Clusterwareによって投票ディスクが自動的にバックアップされます。
たとえば、構成パラメータ(misscount
など)が追加あるいは変更された場合
投票ディクスの追加
または削除
操作の実行後
投票ディスクが破損し、Oracle Clusterwareで使用できなくなった場合、投票ディスクを交換または再作成できます。投票ディスクを交換するには、使用不可の投票ディスクを削除した後で、新しい投票ディスクを構成に追加します。新しい投票ファイルが追加されると、投票ディスク・ファイルがOracle Automatic Storage Management(Oracle ASM)に格納されているかどうかにかかわらず、投票ディスクの内容がバックアップからリストアされます。
Oracle ASMに格納されていない、破損または欠落した投票ディスクを交換する手順:
CRSCTLを使用して破損した投票ディスクを取り除きます。たとえば、破損したディスクがディスク場所/dev/sda3
に格納されている場合、次のコマンドを実行します。
crsctl delete css votedisk /dev/sda3
CRSCTLを使用して同じ場所に新しい投票ディスクを作成します。例を次に示します。
crsctl add css votedisk /dev/sda3
すべての投票ディスクが破損している場合は、Oracle Clusterware管理およびデプロイメント・ガイドに説明されているとおりにこれらをリストすることができます。
Oracle Clusterware 11gリリース2から、Oracle Clusterware投票ディスク・ファイルは、Oracle ASMディスク・グループに格納することができる。Oracle ASMに投票ディスクを格納するようにした場合、Oracle ASMは、選択したディスク・グループにクラスタのすべての投票ディスクを格納します。同じクラスタで、Oracle ASMに格納されている投票ディスクとOracle ASMに格納されていない投票ディスクを組み合せることはできません。
特定のOracle ASMディスク・グループに格納できる投票ファイルの数は、ディスク・グループの冗長性に依存します。Oracle ASMは、デフォルトで、ディスク・グループ内の自身の障害グループに各投票ディスクを配置します。冗長性が通常のディスク・グループには2つ以上の障害グループが含まれる必要がありますが、Oracle ASMに投票ディスクを格納している場合、冗長性が通常のディスク・グループには3つ以上の障害グループが含まれる必要があります。冗長性が高いディスク・グループには、3つ以上の障害グループが含まれる必要があります。
Oracle ASMに投票ディスクを構成した後、投票ディスクの構成を変更するには、crsctl replace votedisk
コマンドを使用する必要があります。これは、稼働している投票ディスクがない場合にもあてはまります。crsctl query css votedisk
コマンドによって、使用中の投票ディスクがないと報告されたとしても、Oracle ClusterwareはOracle ASMが使用中だったことを記憶しているため、replace
が必要になります。replace
を使用して投票ディスクをOracle ASM以外の記憶域に移動した後にのみ、CRSCTLコマンドadd css votedisk
およびdelete css votedisk
が再び使用できるようになります。
共有記憶域からOracle ASMディスク・グループに投票ディスクを移動するには、次の手順を実行します。
Oracle ASM Configuration Assistant(ASMCA)を使用してOracle ASMディスク・グループを作成します。
ディスク・グループのASM互換性属性が11.2.0.0以上に設定されていることを確認します。
次のコマンドでディスク・グループ名を指定することで、CRSCTLを使用してOracle ASMディスク・グループ内に投票ディスクを作成します。
crsctl replace votedisk +ASM_disk_group
参照:
|
Oracle Clusterwareでは、OCRのバックアップを4時間ごとに自動的に作成します。Oracle Clusterwareにより、4時間前、1日前、1週間前の3つの最新のOCRバックアップ・コピーが常に保持されます。
バックアップ頻度やOracle Clusterwareで保持されるファイルの数はカスタマイズできません。任意のバックアップ・ソフトウェアを使用すると、自動的に生成されたバックアップ・ファイルを、プライマリOCRファイルとは別のデバイスに1日に1回以上コピーできます。
この項の内容は次のとおりです。
ocrconfig
ユーティリティを使用して、Oracle Clusterwareで自動的に生成されたバックアップを表示します。
OCRの最終バックアップを検索するには、次の手順を実行します。
クラスタ内のノードで次のコマンドを実行します。
ocrconfig -showbackup
Oracleクラスタウェアが、4時間間隔で行われる自動バックアップを待機するのではなく、いつでもOCRのバックアップを実行できるようにするには、ocrconfig
ユーティリティを使用します。このオプションは、OCRを変更する前など、バイナリ・バックアップをオンデマンドで取得する際に特に便利です。
OCRの内容を手動でバックアップするには、次の手順を実行します。
root
ユーザーとしてログインします。
次のコマンドを使用すると、Oracle ClusterwareによるOCRの即時バックアップを強制的に実行できます。
ocrconfig -manualbackup
最近生成されたOCRバックアップの日付および識別子が表示されます。
(オプション)OCRバックアップ・ファイルの場所を変更する必要がある場合、次のコマンドを使用します。directory_name
は、バックアップの新しい場所です。
ocrconfig -backuploc directory_name
Oracle Linuxシステムでバックアップが生成されるデフォルトの場所はGrid_home
/cdata/
cluster_name
であり、ここで、cluster_name
はクラスタの名前を、Grid_homeはクラスタ用Oracle Grid Infrastructureソフトウェアのホーム・ディレクトリを表しています。デフォルトのバックアップはローカル・ファイル・システム上にあるため、ocrconfig
コマンドで作成したバックアップ・ファイルを、標準的なオペレーティング・システムまたはサード・パーティのツールを使用してオペレーティング・システム・バックアップの一部として含めることをお薦めします。
OCRのリカバリには2つの方法があります。第1の方法では自動的に生成されたOCRファイルのコピーを使用し、第2の方法では手動で作成したOCRのエクスポート・ファイルを使用します。
この項の内容は次のとおりです。
障害が発生した場合は、OCRのリストアを試行する前にOCRが使用不可能であることを確認します。
OCRのステータスをチェックするには、次の手順を実行します。
次のコマンドを実行します。
ocrcheck
このコマンドによって、OCRの1つ以上のコピーに「デバイス・ファイルの整合性チェックが成功しました」
というメッセージが表示されない場合は、OCRのすべてのコピーに障害が発生しています。バックアップまたはOCRのエクスポートからOCRをリストアする必要があります。
1つ以上のOCRのコピーが使用可能である場合、そのコピーを使用してOCRの他のコピーをリストアします。
自動的に生成されたバックアップからOCRをリストアする場合、まずリカバリに使用するバックアップ・ファイルを決定する必要があります。
Oracle Linuxシステムで自動生成されたバックアップからOCRをリストアするには、次の手順を実行します。
root
ユーザーとしてログインします。
ocrconfig
コマンドを使用して、使用可能なOCRバックアップを特定します。
[root]# ocrconfig -showbackup
次に示すocrdump
コマンドを使用して、バックアップの内容を確認します。ここで、file_name
はOCRバックアップ・ファイルの名前であり、その内容がocr_dump_output_fileファイルに書き出されます。
[root]# ocrdump ocr_dump_output_file -backupfile file_name
出力ファイル名を指定しない場合、OCRの内容は、現在のディレクトリにあるOCRDUMPFILE
という名前のファイルに書き出されます。
root
ユーザーとして、次のコマンドを実行して、クラスタ内のすべてのノードでOracle Clusterwareを停止します。
[root]# crsctl stop cluster -all
root
ユーザーとして、手順1で特定したOCRバックアップ・ファイルを次のコマンドを使用して適用し、OCRをリストアします。ここで、file_name
はリストアするOCRの名前です。このコマンドを実行する前に、OCR構成で指定したOCRデバイスが存在し、これらのOCRデバイスが有効であることを確認します。
[root]# ocrconfig -restore file_name
root
ユーザーとして、次のコマンドを実行して、クラスタ内のすべてのノードでOracle Clusterwareを再起動します。
[root]# crsctl start cluster -all
クラスタ検証ユーティリティ(CVU)を使用して、OCRの整合性を検証します。root
ユーザー・アカウントを終了し、クラスタ・インストール用Oracle Grid Infrastructureのソフトウェア所有者として次のコマンドを実行すると、-n all
引数によって、クラスタの一部として構成されているすべてのクラスタ・ノードのリストが取得されます。
cluvfy comp ocr -n all [-verbose]
この項では、OCRの管理方法について説明します。OCRには、クラスタ・ノード・リストに関する情報、どのインスタンスがどのノードで実行しているかという情報、Oracle Clusterwareによって管理されるように変更されたアプリケーションに対するOracle Clusterwareのリソース・プロファイルに関する情報が含まれます。
この項の内容は次のとおりです。
注意: この項の操作は、クラスタ全体のOCRに影響を及ぼします。ただし、ocrconfig コマンドでは、停止したノードやOracle Clusterwareが実行中でないノードのOCR構成情報を変更できません。ocrconfig コマンドを使用してOCRを変更する間は、ノードを停止しないようにします。 |
Oracle Clusterwareは、最大5つまでのOCRコピーをサポートします。Oracle RACインストールの完了後またはアップグレード後に、OCRの場所を追加できます。OCRコピーを追加すると、フォルト・トレランスが大幅に高まります。
OCRファイルを追加するには、次の手順を実行します。
新しいOCRファイルを追加するには、root
ユーザーとして次のコマンドを入力します。
[root]# ocrconfig -add new_ocr_file_name
このコマンドを実行すると、Oracle Clusterwareが実行されているすべてのノードでOCR構成が更新されます。
Oracle Clusterware 11gリリース2から、Oracle ASMディスク・グループにOCRを格納することができます。デフォルトで、OCRは、Oracle Clusterwareの新規インストールを実行するときにOracle ASMを使用するように構成されています。ただし、以前のリリースからグレードアップする場合は、OCRをOracle ASMに移行して、Oracle Clusterware記憶域の管理で改善された点を利用できます。
OCRは、ディスク・グループの冗長性を継承します。OCRに高い冗長性が必要な場合は、高い冗長性でOracle ASMディスク・グループを作成する必要があります。外部のミラーリング・ソリューションがある場合を除き、少なくとも通常の冗長性でディスク・グループを使用する必要があります。OCRをOracle ASMディスク・グループに格納している場合に、あるノードでOracle ASMインスタンスに障害が発生すると、OCRはそのノードでのみ使用できなくなります。1つのOracle ASMインスタンスの障害が、クラスタ全体の可用性に影響を及ぼすことはありません。
移行時を除き、OCRをOracle ASMと共有ファイル・システムの両方に格納するなど、OCRを異なるタイプの記憶域に同時に格納することはサポートされていません。Oracle ASM記憶域にOCRを移行した後、既存のOCRファイルを削除する必要があります。
共有記憶域からOracle ASMディスク・グループにOCRを移動するには、次の手順を実行します。
Oracle ASM Configuration Assistant(ASMCA)を使用して、サイズが既存のOCR以上であり、かつ、冗長性が通常以上であるOracle ASMディスク・グループを作成します。
ディスク・グループのASM互換性属性が11.2.0.0以上に設定されていることを確認します。
Oracle ASMディスク・グループ名を指定し、root
ユーザーとして次のOCRCONFIGコマンドを実行します。
# ocrconfig -add +ASM_disk_group
複数のOCRの場所を追加すると、このコマンドを複数回実行できます。OCRの場所は、5つまで保持できます。ただし、連続する各実行では、異なるディスク・グループを指す必要があります。
root
ユーザーとして次のコマンドを実行し、Oracle ASM以外の記憶域の場所を削除します。
# ocrconfig -delete old_storage_location
このコマンドは、Oracle ASMを使用していないOCRの共有ストレージの場所ごとに1回実行する必要があります。
参照:
|
既存のOCRの場所を変更、または障害の発生したOCRの場所を有効な場所に変更する必要がある場合、1つのOCRファイルがオンラインであれば、次の手順を使用できます。
OCRの場所を変更する場合またはOCRファイルを置換する場合は、次の手順を実行します。
OCRCHECKユーティリティを使用して、置換しようとしているOCR以外のOCRのコピーがオンラインであるかどうかを検証します。使用するコマンドは次のとおりです。
ocrcheck
注意: 置換するOCRは、オンラインまたはオフラインのいずれの状態でもかまいません。 |
次のコマンドを使用して、置換操作を実行しようとしているノードでOracle Clusterwareが実行されていることを確認します。
crsctl check cluster -all
指定したOCRファイルに新しい場所を指定するには、root
ユーザーとして次のコマンドを入力します。
[root]# ocrconfig -replace source_ocr_file -replacement destination_ocr_file
このコマンドを実行すると、Oracle Clusterwareが実行されているすべてのノードでOCR構成が更新されます。
OCRCHECKユーティリティを使用して、OCR置換ファイルがオンラインであることを確認します。
ocrcheck
OCRのファイルを削除するには、少なくともOCRの1つのコピーがオンラインである必要があります。OCR関連のオーバーヘッドを削減するため、またはOCRのRedundant Array of Independent Disks(RAID)などの冗長ストレージ・システムへの移動によりOCRのミラー化を停止するため、OCRの場所を削除できます。
クラスタからOCRの場所を削除するには、次の手順を実行します。
OCRCHECKユーティリティを使用して、削除するOCRの他に、1つ以上のOCRがオンライン状態になっていることを確認します。
ocrcheck
注意: 1つ以上のアクティブなOCRがオンラインでないかぎり、OCRの削除手順は実行しないでください。 |
クラスタの任意のノードで、root
ユーザーとして次のコマンドを実行し、特定のOCRファイルを削除します。
[root]# ocrconfig -delete ocr_file_name
このコマンドを実行すると、Oracle Clusterwareが実行されているすべてのノードでOCR構成が更新されます。
OCR構成を変更した際、クラスタ内に使用できないノードがあった場合は、再起動の前に、そのノード上のOCR構成の修復が必要になる場合があります。
OCR構成を修復するには、次の手順を実行する必要があります。
root
ユーザーとして、OCR構成に対して行われた変更の数とタイプに応じて、Oracle Clusterwareが停止しているノードに対して次のコマンドを1つ以上実行します。
[root]# ocrconfig –repair -add new_ocr_file_name
[root]# ocrconfig –repair -delete ocr_file_name
[root]# ocrconfig –repair -replace source_ocr_file -replacement dest_ocr_file
これらのコマンドでは、コマンドを実行したノードのOCR構成のみが更新されます。
注意: これらの操作は、Oracle Clusterwareデーモンが実行中のノードでは、実行できません。 |
修復したノードでOracle Clusterwareを再起動します。
root
ユーザーとして次のコマンドを使用して、クラスタのOCR構成の整合性をチェックします。
[root]# ocrcheck
この項には、Oracle Cluster Registry(OCR)のトラブルシューティングについての次の項が含まれます。
OCRCHECKユーティリティでは、OCRで使用されるデータ・ブロック形式のバージョン、OCR内の使用可能な領域および使用済領域、OCRに使用されるID、およびOCR用に構成した場所が表示されます。OCRCHECKユーティリティでは、構成したすべてのOCRのあらゆるデータ・ブロックのチェックサムを計算して、各ブロックの整合性が検証されます。各OCRファイルの個別のステータスと、OCR全体の整合性チェックの結果も返されます。OCRCHECKの出力のサンプルを次に示します。
Status of Oracle Cluster Registry is as follows : Version : 3 Total space (kbytes) : 262144 Used space (kbytes) : 16256 Available space (kbytes) : 245888 ID : 570929253 Device/File Name : +CRS_DATA Device/File integrity check succeeded ... Decive/File not configured Cluster registry integrity check succeeded Logical corruption check succeeded
OCRCHECKユーティリティでは、次のディレクトリにログ・ファイルが作成されます。ここで、Grid_home
はクラスタ用Oracle Grid Infrastructureインストールの場所、hostname
はローカル・ノードの名前を表します。
Grid_home/log/
hostname/client
ログ・ファイルの名前は、ocrcheck_
nnnnn
.log
という形式になります。ここで、nnnnn
はocrcheck
コマンドを発行した操作セッションのプロセスIDです。
表5-1に、OCRの一般的な問題とその解決策を示します。
表5-1 OCRの一般的な問題および解決策
問題 | 解決策 |
---|---|
OCRがミラー化されていません。 |
|
OCRのコピーが失敗し、それを置換する必要があります。エラー・メッセージがOracle Enterprise ManagerまたはOCRログ・ファイルでレポートされています。 |
|
OCRCHECKが有効なOCRを検索しません。あるいは、OCRのすべてのコピーが破損しています。 |
|
OCR構成が誤って更新されました。 |
|
複数のOCRファイルの更新によってパフォーマンスに重大な影響が及ぼされたか、または他の理由のためにOCRファイルを削除します。 |
|
You want to change the location or storage type currently used by the OCRが現在使用している場所タイプまたは記憶域タイプを変更したいと考えています。 |
「OCRの置換」の項で説明したとおり、Oracle Clusterwareが動作している間に |