Oracle Clusterwareコンポーネントの管理

Oracle Clusterwareコンポーネントの管理

参考:Oracle Database 2日でReal Application Clustersガイド10g リリース2(10.2)

この章では、Oracle Clusterwar環境の管理について説明します。また、投票ディスクおよびOracle Cluster Registry(OCR)の管理についても説明します。内容は次のとおりです。

* Oracle Clusterwareの概要

* 投票ディスクのバックアップおよびリカバリ

* 投票ディスクの追加および削除

* Oracle Cluster Registryのバックアップおよびリカバリ

* Oracle Cluster Registry構成の変更

* Oracle Cluster Registryのトラブルシューティング

Oracle Clusterwareの概要

Oracle Real Application Clusters(Oracle RAC)は、複数のノードを結合し、単一のサーバーとして動作するようにするインフラストラクチャとしてOracle Clusterwareを使用します。Oracle Clusterwareは、Oracleデータベースと統合された、ポータブルなクラスタ管理ソリューションです。Oracle RAC環境では、Oracle ClusterwareはすべてのOracleコンポーネント(インスタンスやリスナーなど)を監視します。障害が発生した場合、Oracle Clusterwareは障害の発生したコンポーネントの再起動を自動的に試行し、障害の発生していないコンポーネントに操作をリダイレクトします。

Oracle Clusterwareには、ご使用のクラスタで実行するアプリケーションを管理するための高可用性フレームワークが含まれます。Oracle Clusterwareは、システムの起動時にアプリケーションが起動されるように管理します。また、Oracle Clusterwareは、アプリケーションを監視して、アプリケーションを常に使用可能な状態にします。たとえば、あるアプリケーション・プロセスが失敗した場合、カスタマイズしたスクリプトに基づいて、Oracle Clusterwareがそのプロセスの再起動を試行します。クラスタ内のノードに障害が発生した場合は、通常は障害が発生したノード上で実行されるアプリケーション・プロセスを、クラスタ内の別のノード上で再起動するようにプログラムできます。

Oracle Clusterwareコンポーネントには、投票ディスクとOCRという2つの重要なコンポーネントが含まれています。投票ディスクはノードのメンバーシップに関する情報を管理するファイルで、OCRはクラスタおよびOracle RACデータベースの構成情報を管理するファイルです。

Oracle Clusterwareのインストール処理では、共有記憶域に、投票ディスクおよびOCRが作成されます。インストール処理中に、通常の冗長コピーのオプションを選択した場合、これらのファイルの冗長コピーが自動的に保持され、シングル・ポイント障害を防止できます。また、通常の冗長性機能によって、サード・パーティ製の記憶域冗長ソリューションが不要になります。通常の冗長性を使用する場合、Oracle Clusterwareでは、OCRファイルの2つのコピーと、投票ディスク・ファイルの3つのコピーが自動的に保持されます。

投票ディスクのバックアップおよびリカバリ

高可用性を備えた構成には、シングル・ポイント障害を回避することにより操作を維持する冗長なハードウェアとソフトウェアが含まれています。コンポーネントが停止した場合、Oracle Clusterwareは管理対象のリソースをバックアップ・コンポーネントにリダイレクトします。

投票ディスクには、ノードのメンバーシップ情報が記録されます。ノードは、常に半数以上の投票ディスクにアクセス可能である必要があります。複数の投票ディスクが同時に失われることを回避するには、コンポーネント(コントローラやコントローラなど)を他の投票ディスクが使用するストレージ・デバイスと共有しないストレージ・デバイス上に各投票ディスクが存在する必要があります。

たとえば、構成済の投票ディスクが5つ存在する場合、ノードは常に 3つ以上の投票ディスクにアクセス可能である必要があります。ノードが必要最小限の数の投票ディスクにアクセスできない場合は、クラスタから削除されます。障害の原因が修正されて、投票ディスクへのアクセスがリストアされた後、障害ノードをリカバリしてクラスタにリストアするようにOracle Clusterwareに指示できます。

投票ディスクのバックアップ

通常、ノードのメンバーシップ情報は変更されないため、投票ディスクを毎日バックアップする必要はありません。ただし、次のタイミングで投票ディスクのバックアップを行います。

* インストール後

* クラスタへのノードの追加後またはクラスタからのノードの削除後

* 投票ディクスの追加または削除操作の実行後

投票ディスクのバックアップ・コピーを作成するには、Linuxのddコマンドを使用します。この操作は、必要なすべての投票ディスクに対して実行します。voting_disk_nameにはアクティブな投票ディスクの名前、backup_file_nameには投票ディスクの内容をバックアップする宛先ファイルの名前を指定します。

dd if=voting_disk_name of=backup_file_name

投票ディスクがRAWデバイスに格納されている場合、voting_disk_nameにはデバイス名を指定します。次に例を示します。

dd if=/dev/sdd1 of=/tmp/voting.dmp

投票ディスクのバックアップの作成にddコマンドを使用する場合、バックアップはCluster Ready Services(CRS)プロセスがアクティブなときに実行できます。投票ディスクのバックアップを取る前にcrsd.binプロセスを停止する必要はありません。

投票ディスクのリカバリ

投票ディスクが破損して、Oracle Clusterwareで使用不可能になった場合、バックアップ・ファイルがあれば投票ディスクをリカバリできます。投票ディスクをリカバリするには、次のコマンドを実行します。backup_file_nameには投票ディスクのバックアップ・ファイルの名前、voting_disk_nameにはアクティブな投票ディスクの名前を指定します。

dd if=backup_file_name of=voting_disk_name

投票ディスクの追加および削除

Oracle RACのインストール後に、投票ディスクを動的に追加および削除できます。これを行うには、次のコマンドを使用します。pathには、追加する投票ディスクの完全修飾パスを指定します。投票ディスクを追加するには、rootユーザーで次のコマンドを実行します。

crsctl add css votedisk path

投票ディスクを削除するには、rootユーザーで次のコマンドを実行します。

crsctl delete css votedisk path

注意:

前述のいずれのコマンドを使用するときでも、クラスタが停止している場合は、-forceオプションを使用して、アクティブなOracle Clusterwareデーモンとの対話なしに、投票ディスクの構成を変更できます。ただし、クラスタ・ノードがアクティブなときに-forceオプションを使用すると、クラスタ構成が破損する場合があります。

Oracle Cluster Registryのバックアップおよびリカバリ

OCRのバックアップは、Oracle Clusterwareによって、4時間ごとに自動的に作成されます。毎回、Oracle Clusterwareによって、OCRの最新のバックアップ・コピーが3つ(4時間前のコピー、1日前のコピーおよび1週間前のコピー)保存されます。

バックアップの頻度またはOracle Clusterwareで保存されるファイルの数はカスタマイズできません。1日に1つ以上のバックアップ・ファイルが自動的に生成されますが、これらのファイルは、任意のバックアップ・ソフトウェアを使用して、元のOCRファイルが存在するデバイスとは別のデバイスにコピーすることもできます。Red Hat Linuxシステムでのバックアップ生成のデフォルト位置は、CRS_home/cdata/cluster_nameです。cluster_nameは使用しているクラスタの名前、CRS_homeはOracle Clusterwareインストールのホーム・ディレクトリです。

この項の内容は次のとおりです。

* 使用可能なOCRバックアップの表示

* OCRのバックアップ

* OCRのリカバリ

使用可能なOCRバックアップの表示

クラスタの任意のノードでOCRの最新のバックアップを検索するには、次のコマンドを使用します。

ocrconfig -showbackup

# ocrconfig -showbackup

db02-t     2009/01/10 20:33:23     /u01/oracle/app/oracle/product/10.2.0/crs/cdata/crs

db02-t     2009/01/10 16:33:20     /u01/oracle/app/oracle/product/10.2.0/crs/cdata/crs

db02-t     2009/01/10 12:33:17     /u01/oracle/app/oracle/product/10.2.0/crs/cdata/crs

db02-t     2009/01/09 16:33:03     /u01/oracle/app/oracle/product/10.2.0/crs/cdata/crs

db02-t     2009/01/03 12:31:18     /u01/oracle/app/oracle/product/10.2.0/crs/cdata/crs

OCRのバックアップ

OCR情報は重要であるため、ocrconfigツールを使用して、自動的に作成されたバックアップ・ファイルのコピーを1日1回以上作成することをお薦めします。

自動的に作成されたOCRバックアップ・ファイルを使用することに加え、環境にノードを追加したり、環境からノードを削除した場合や、Oracle Clusterwareのリソースを変更した場合、データベースを作成した場合など、構成に対して行う大きな変更の前後に、OCRの内容をファイルにエクスポートする必要もあります。OCRの内容をファイルにエクスポートすると、構成の変更によりエラーが発生した場合にOCRをリストアできます。たとえば、構成に解決できない問題がある場合や、構成の変更後にクラスタ・データベースを再起動できない場合は、保存済のOCRの内容を有効な構成からインポートして、構成をリストアできます。

OCRの内容をファイルにエクスポートするには、次のコマンドを使用します。backup_file_nameには、作成するOCRバックアップ・ファイルの名前を指定します。

ocrconfig -export backup_file_name

注意:

ocrconfigコマンドは、rootユーザーとしてログインして実行する必要があります。

[root@db01-t oracle]# ocrconfig -export /tmp/ocrconfig-export.dmp
[root@db01-t oracle]# strings /tmp/ocrconfig-export.dmp

OCRのリカバリ

この項では、OCRをリカバリする2つの方法について説明します。1つ目の方法では、自動的に生成されたOCRファイルのコピーを使用します。2つ目の方法では、手動で作成したOCRエクスポート・ファイルを使用します。

障害が発生した場合は、OCRのリストアを試行する前にOCRが使用不可能であることを確認します。次のコマンドを実行して、OCRのステータスを確認します。

ocrcheck

このコマンドによって、1つ以上のOCRのコピーに対して「デバイス・ファイルの整合性チェックが成功しました」というメッセージが表示されない場合は、元のOCRとミラー化されたOCRの両方に障害が発生しています。バックアップからOCRをリストアする必要があります。
自動的に生成されたOCRバックアップからのOracle Cluster Registryのリストア

自動的に生成されたバックアップからOCRをリストアする場合、まずリカバリに使用するバックアップ・ファイルを決定する必要があります。
Red Hat Linuxシステムで自動的に生成されたバックアップからOCRをリストアする手順:

1. ocrconfigコマンドを使用して、使用可能なOCRのバックアップを特定します。

# ocrconfig -showbackup

注意:

ocrconfigコマンドは、rootユーザーとしてログインして実行する必要があります。
2. 次のocrdumpコマンドを使用して、バックアップの内容を確認します。file_nameには、OCRバックアップ・ファイルの名前を指定します。

$ ocrdump -backupfile file_name

3. rootユーザーとして、次のコマンドを実行して、Oracle RACクラスタ内のすべてのノードでOracle Clusterwareを停止します。

# crsctl stop crs

Oracle RACクラスタ内の各ノードに対して、このコマンドを繰り返します。
4. rootユーザーとして、次のコマンドを使用し、手順1で指定したOCRバックアップ・ファイルを適用して、OCRをリストアします。file_nameには、リストアするOCRの名前を指定します。OCR構成で指定したOCRデバイスが存在し、これらのOCRデバイスが有効であることを確認して、このコマンドを実行します。

# ocrconfig -restore file_name

5. rootユーザーとして、各ノードを再起動するか、または次のコマンドを実行して、クラスタ内のすべてのノードでOracle Clusterwareを再起動します。

# crsctl start crs

Oracle RACクラスタ内の各ノードに対して、このコマンドを繰り返します。
6. クラスタ検証ユーティリティ(CVU)を使用して、OCRの整合性を検証します。次のコマンドを実行します。引数-n allを指定すると、クラスタの一部として構成されているすべてのクラスタ・ノードのリストが取得されます。

$ cluvfy comp ocr -n all [-verbose]

OCRエクスポート・ファイルからのOCRのリカバリ

ocrconfig -exportコマンドを使用すると、構成の変更によってエラーが発生した場合に、-importオプションを使用してOCRをリストアできるようになります。
OCRエクスポート・ファイルからOCRに格納されている以前の構成をリストアする手順:

1. ディスク上のアクセス可能なディレクトリに、ocrconfig -exportコマンドを使用して以前作成したOCRエクスポート・ファイルを配置します。

2. rootユーザーとして、次のコマンドを実行して、Oracle RACクラスタ内のすべてのノードでOracle Clusterwareを停止します。

crsctl stop crs

Oracle RACクラスタ内の各ノードに対して、このコマンドを繰り返します。
3. rootユーザーとして、次のコマンドを使用して、OCRエクスポート・ファイルの内容をインポートしてOCRデータをリストアします。file_nameには、OCRエクスポート・ファイルの名前を指定します。

ocrconfig -import file_name

4. rootユーザーとして、各ノードを再起動するか、または次のコマンドを実行して、クラスタ内のすべてのノードでOracle Clusterwareを再起動します。

crsctl start crs

Oracle RACクラスタ内の各ノードに対して、このコマンドを繰り返します。
5. CVUを使用して、OCRの整合性を検証します。次のコマンドを実行します。引数-n allを指定すると、クラスタの一部として構成されているすべてのクラスタ・ノードのリストが取得されます。

cluvfy comp ocr -n all [-verbose]

注意:

OCRバックアップ・ファイルのインポートに、ocrconfigコマンドは使用できません。

Oracle Cluster Registry構成の変更

この項では、OCRの管理について説明します。OCRには、クラスタ・ノード・リストに関する情報、各ノードで実行されているインスタンス、およびOracle Clusterwareで管理対象となるように変更されているアプリケーションのOracle Clusterwareリソース・プロファイルの情報が含まれています。

この項の内容は次のとおりです。

* OCR位置の追加

* OCRの置換

* ローカル・ノードのOracle Cluster Registry構成の修復

* Oracle Cluster Registryの削除

注意:

この項の操作は、クラスタ全体のOCRに影響します。ただし、ocrconfigコマンドを実行しても、停止しているノードやOracle Clusterwareが実行されていないノードのOCR構成情報は変更されません。そのため、ocrconfigコマンドを使用してOCRを変更している間はノードを停止しないでください。

OCR位置の追加

アップグレードの完了後またはOracle RACのインストール完了後に、OCR位置を追加できます。すでにOCRをミラー化している場合は、OCR位置を追加する必要はありません。OCRに標準の冗長性を構成すると、Oracle Clusterwareによって2つのOCRが自動的に管理されます。Oracle RAC環境では、プライマリOCRとセカンダリOCRの2つのOCR以外はサポートされていません。

OCR位置を追加するには、追加するOCRのターゲット位置をdestination_fileまたはdiskに指定して、次のコマンドを実行します。

ocrconfig -replace ocr destination_file
ocrconfig -replace ocr disk

OCRミラーの位置を追加するには、追加するOCRのターゲット位置をdestination_fileまたはdiskに指定して、次のコマンドを実行します。

ocrconfig -replace ocrmirror destination_file
ocrconfig -replace ocrmirror disk

注意:

ocrconfigコマンドは、rootユーザーとしてログインして実行する必要があります。

OCRの置換

既存のOCRの位置を変更する必要がある場合、または障害が発生したOCRの位置を、動作しているOCRの位置に変更する必要がある場合は、1つのOCRファイルがオンラインであるかぎり次の手順を使用できます。
OCRの位置の変更手順:

1. OCRCHECKユーティリティで次のコマンドを使用して、置換しようとしているOCR以外のOCRのコピーがオンライン状態であることを確認します。

ocrcheck

注意:

置換するOCRは、オンラインまたはオフラインのいずれの状態でもかまいません。
2. 次のコマンドを使用して、置換操作を実行するノードでOracle Clusterwareが実行中であることを確認します。

crsctl check crs

3. OCRを置換するには、ターゲットのOCRをdestination_fileまたはdiskに指定して、次のコマンドを実行します。

ocrconfig -replace ocr destination_file
ocrconfig -replace ocr disk

4. OCRミラーの位置を置換するには、ターゲットのOCRをdestination_fileまたはdiskに指定して、次のコマンドを実行します。

ocrconfig -replace ocrmirror destination_file
ocrconfig -replace ocrmirror disk

5. 現在のOracle RAC環境に停止しているノードが存在する場合は、停止しているノードで次のコマンドを実行し、そのノードの再起動後にクラスタへ再度結合できるようにします。

ocrconfig -repair

ローカル・ノードのOracle Cluster Registry構成の修復

あるノードが停止している間にOCR構成を変更した場合は、そのノードのOCR構成を修復する必要がある場合があります。たとえば、OCRの追加、置換または削除を行っているときに停止したノードでは、OCRを修復する必要がある場合があります。OCR構成を修復するには、Oracle Clusterwareデーモンが停止していたノードで、次のコマンドを実行します。

ocrconfig -repair ocrmirror device_name

注意:

この操作は、Oracle Clusterwareデーモンが実行中のノードでは、実行できません。

この操作では、このコマンドを実行したノードのOCR構成のみが変更されます。たとえば、OCRのミラーが/dev/raw1というディスクにある場合、このノードでコマンドocrconfig -repair ocrmirror /dev/raw1を実行すると、そのノードのOCR構成が修復されます。

Oracle Cluster Registryの削除

OCR位置を削除するには、1つ以上のOCRがオンライン状態である必要があります。OCR位置の削除は、OCR関連のオーバーヘッドを軽減する場合や、Redundant Array of Independent Disks(RAID)などの冗長な記憶域システムにOCRを移動したために、OCRのミラー化を中止する場合に実行します。
Oracle RAC環境からOCR位置を削除する手順:

1. OCRCHECKユーティリティを使用して、削除するOCRの他に、1つ以上のOCRがオンライン状態になっていることを確認します。

ocrcheck

注意:

1つ以上のアクティブなOCRがオンラインでないかぎり、OCRの削除手順は実行しないでください。
2. クラスタの任意のノードで次のコマンドを実行し、OCRのコピーを1つ削除します。

ocrconfig -replace ocr

このコマンドを実行すると、Oracle Clusterwareが実行されているすべてのノードでOCR構成が更新されます。

Oracle Cluster Registryのトラブルシューティング

この項では、Oracle Cluster Registry(OCR)のトラブルシューティングを行う方法について説明します。内容は次のとおりです。

* OCRCHECKユーティリティの使用

* Oracle Cluster Registryの一般的な問題の解決

OCRCHECKユーティリティの使用

OCRCHECKユーティリティを実行すると、OCRで使用されるデータ・ブロック形式のバージョン、OCRの空き領域および使用済の領域、OCRで使用されるIDおよびOCR用に構成した位置が表示されます。 OCRCHECKユーティリティは、構成したすべてのOCRのデータ・ブロックに対して、チェックサムを計算して各ブロックの整合性を検証します。また、各OCRファイルのステータスおよびOCR全体の整合性チェックの結果が戻されます。OCRCHECKの出力例を次に示します。

Status of Oracle Cluster Registry is as follows :
   Version                  :          2
   Total space (kbytes)     :     262144
   Used space (kbytes)      :      16256
   Available space (kbytes) :     245888
   ID                       : 1918913332
   Device/File Name         : /dev/raw/raw1
                              Device/File integrity check succeeded
   Device/File Name         : /oradata/mirror.ocr
                              Device/File integrity check succeeded

Cluster registry integrity check succeeded

OCRCHECKユーティリティは、次のディレクトリにログ・ファイルを作成します。CRS_homeにはインストールしたOracle Clusterwareソフトウェアの位置を、hostnameにはローカル・ノードの名前を指定します。

CRS_home/log/hostname/client

ログ・ファイルにはorcheck_nnnnn.logという形式の名前を指定します。nnnnnには、ocrcheckコマンドを発行した操作セッションのプロセスIDを指定します。

Oracle Cluster Registryの一般的な問題の解決

表5-1に、OCRの一般的な問題とその解決策を示します。

表5-1 OCRの一般的な問題および解決策
問題 解決策

OCRがミラー化されません。

-replaceオプションを指定してocrconfigコマンドを実行します。詳細は、「OCRの置換」を参照してください。

OCミラーに障害が発生したため、交換する必要があります。Enterprise ManagerまたはOCRログ・ファイルにエラー・メッセージがレポートされています。

-replaceオプションを指定してocrconfigコマンドを実行します。詳細は、「OCR位置の追加」を参照してください。

OCRは不適切に更新されました。

-repairオプションを指定してocrconfigコマンドを実行します。詳細は、「ローカル・ノードのOracle Cluster Registry構成の修復」を参照してください。

OCRの処理によってパフォーマンスに重大な影響が及ぼされたか、または他の理由のためにOCRを削除します。

-repairオプションを指定してocrconfigコマンドを実行します。詳細は、「ローカル・ノードのOracle Cluster Registry構成の修復」を参照してください。