2 Oracle Clusterwareの構成と管理
Oracle Clusterwareとその様々なコンポーネントの構成と管理には、アプリケーションとデータベースの管理およびクラスタ内のネットワーク構成が含まれます。
ノート:
Oracle Grid Infrastructure 23ai以降、Oracleクラスタ・ドメイン・アーキテクチャに含まれるドメイン・サービス・クラスタ(DSC)は非推奨になりました。
Oracleクラスタ・ドメインは、ドメイン・サービス・クラスタ(DSC)とメンバー・クラスタで構成されます。メンバー・クラスタは、Oracle Grid Infrastructure 19cで非推奨となりました。DSCは、引き続き、本番クラスタにサービスを提供するために使用可能です。ただし、それらのサービスの大部分ではホスティングにDSCを必要としなくなったため、DSCのインストールはOracle Database 23aiでサポートされなくなります。該当する場合、以前にDSCでホストされていたサービスに、任意のクラスタまたはシステムを使用することをお薦めします。Oracleでは、代替システムで各サービスを使用できるようになるまで、共有サービスをホストするためのDSCのサポートを継続します。
管理者管理クラスタの場合、クラスタ・リソースをどのようにデプロイするか、およびワークロードをどこで管理するかを手動で構成する必要があります。通常、これは、どのクラスタ・ノードでどのデータベース・インスタンスを優先して実行するか、および障害発生時にどこでそれらのインスタンスを再起動するかを構成する必要があるということです。データベース・インスタンスの配置場所を構成することにより、クラスタ全体のワークロードを構成します。
ノート:
ポリシー管理型のデータベース・デプロイメント・オプションは、Oracle Database 23aiではサポートされなくなりました。ロール別管理
ロール別管理は、リソースの競合と不足のリスクを軽減する目的でクラスタ・リソースおよびワークロードを協調的に管理するためのアプローチです。
ロール別管理では、オペレーティング・システムのセキュリティとロール定義、およびユーザーのロールに従ってリソースとワークロード管理を分離するためのOracle Clusterwareアクセス権限を使用します。統合環境においては、コンピューティング・リソースの競合が存在する可能性があり、リソース・コンシューマおよびそれらのリソースの管理にはある程度の分離が必要となるため、このような統合環境で作業するユーザーにとっては特にこれが重要になります。デフォルトでは、この機能はインストール時に実装されません。
ロール別管理を構成する場合、意図されたロールに従って(データベースなどの)クラスタ・リソースを管理するオペレーティング・システムのユーザーおよびグループを設定し、必要に応じてクラスタ・リソースに対する権限を追加します。また、Oracle Automatic Storage Management (Oracle ASM)では、これらのロール別構造をストレージ管理機能にまで拡張できます。
Oracle Clusterwareのロール別管理は、現在はクラスタ管理者に依存していません(下位互換性は維持されています)。デフォルトでは、Oracle Grid Infrastructureホーム(Gridホーム)にOracle Clusterwareをインストールしたユーザーおよびroot
は、永続的なクラスタ管理者となります。プライマリ・グループ権限(デフォルトではoinstall
,)により、データベース管理者はOracle Database Configuration Assistant (Oracle DBCA)を使用してデータベースを作成できますが、ロール区分は有効になりません。
ロール区分の構成
ロール区分は、必要なロール、ロールが管理するリソースおよびロールのアクセス権限の決定です。
ロールを決定した後、ACLおよびCRSCTLユーティリティを使用して、グループ権限(oinstall
やgrid
など)用のオペレーティング・システム・ユーザー・アカウントを作成または変更できます。最も基本的には、2つのオペレーティング・システム・ユーザーをoinstall
グループの一部として作成し、クラスタを作成します。
このことは、慎重に計画し、一貫性を維持しながら細部を重視して実行することが必要ですが、実装後、誤りの修正や時間の経過に伴う調整のために構成を変更できます。
ノート:
ロール別手法をora.*リソース(Oracle RACデータベース・リソース)に適用することはできません。これらの手法は、ユーザー定義のクラスタ・リソースおよびタイプにのみ適用できます。リソースは、root
またはgrid
アカウントの下に作成します。指定されたオペレーティング・システム・ユーザーがこれらのリソースを管理するためには、それらのユーザーに各自のロールを実行するための正しい権限を付与する必要があります。
crsctl setperm
コマンドを使用して、ACL、リソースまたはその両方を使用した水平ロール区分を構成します。CRSCTLユーティリティは、パスGrid_home
/bin
にあります(Grid_home
は、クラスタ・ホームのOracle Grid Infrastructureです)。
コマンドには次の構文を使用し、アクセス制御(ACL)文字列はイタリックで示します。
crsctl setperm {resource | type | serverpool} name {-u acl_string |
-x acl_string | -o user_name | -g group_name}
フラグ・オプションは、次のとおりです。
-
-u
: エンティティACLの更新 -
-x
: エンティティACLの削除 -
-o
: エンティティ所有者の変更 -
-g
: エンティティ・プライマリ・グループの変更
ACL文字列は、次のとおりです。
{user:user_name[:readPermwritePermexecPerm] |
group:group_name[:readPermwritePermexecPerm] |
other[::readPermwritePermexecPerm] }
前述の構文例では、次のとおりです。
-
user
: ユーザーACL(指定したユーザーに付与されるアクセス権限)を指定します。 -
group
: グループACL(指定したグループ・メンバーに付与される権限)を指定します。 -
other
: 他のACL(特定のアクセス権限は付与されないユーザーまたはグループに付与されるアクセス権)を指定します。 -
readperm
: 読取り権限の場所(r
は権限を付与、-
は権限を禁止) -
writeperm
: 書込み権限の場所(w
は権限を付与、-
は権限を禁止) -
execperm
: 実行権限の場所(x
は権限を付与、-
は権限を禁止)
クラスタ・リソースの場合、グループcrsadmin
に対して(Maynard
により管理される) MyProgram
という名前のアプリケーション(リソース)に対する権限を設定するとき、管理ユーザーに読取り、書込みおよび実行権限を付与し、crsadmin
グループのメンバーに読取り権限と実行権限を付与し、グループ外のユーザーに(ステータスおよび構成チェックのために)読取りアクセス権のみを付与するには、最初にリソースを作成したユーザー(root
またはgrid
所有者)として、次のコマンドを入力します。
# crsctl setperm resource MyProgram -u user:Maynard:r-x,group:crsadmin:rw-,other:---:r--
グリッド設定ウィザードを使用したOracle Grid Infrastructureの構成
構成ウィザードでは、1つ以上のノードに新しいOracle Grid Infrastructureを構成するか、またはアップグレードされたOracle Grid Infrastructureを構成することができます。また、グリッド設定ウィザードはサイレント・モードでも実行できます。
Oracle Grid Infrastructureのソフトウェアのみのインストールを実行した後、グリッド設定ウィザードを使用してソフトウェアを構成できます。このウィザードでは、ウィザードの実行前と実行後にグリッド・ホームおよび入力の様々な検証が実行されます。
ノート:
-
グリッド設定ウィザードを実行する前に、Oracle Grid Infrastructureホームがカレントであり、必要なすべてのパッチが適用されていることを確認してください。
-
グリッド設定ウィザードを一連の手順で起動するには:
LinuxおよびUNIXの場合は、次のコマンドを実行します。
Oracle_home/gridSetup.sh
Windowsの場合は、次のコマンドを実行します。
Oracle_home\gridSetup.bat
複数ノードの構成
構成ウィザードを使用して、クラスタ内に複数ノードを構成できます。
構成ウィザードを使用して構成するノードへのOracle Grid Infrastructureソフトウェアのインストールは、必須ではありません。
ノート:
構成ウィザードを起動する前に、次の点を確認します。
すべてのノードにソフトウェアをインストールする必要はありませんが、インストールする場合は、ソフトウェアを同じGrid_home
パスにインストールし、すべてのノードで同一レベルに配置する必要があります。
構成ウィザードを使用して複数ノードを構成するには:
Oracle Grid Infrastructureのアップグレード
グリッド設定ウィザードを使用して、クラスタのOracle Grid Infrastructureをアップグレードします。
クラスタ用のOracle Grid Infrastructureをアップグレードするには:
関連項目:
Oracle Restartの手順の詳細は、ご使用のプラットフォームの『Oracle Databaseインストレーション・ガイド』を参照してください。
サイレント・モードでの構成ウィザードの実行
—silentパラメータを指定して、構成ウィザードをサイレント・モードで実行できます。
構成ウィザードをサイレント・モードで使用してノードを構成またはアップグレードするには:
-
次のようにして、コマンドラインから構成ウィザードを起動します。
$ $ORACLE_HOME/gridSetup.sh -silent -responseFile file_name
構成ウィザードはレスポンス・ファイルを検証してから、構成に進みます。レスポンス・ファイルで無効な入力を検出すると、構成ウィザードはエラーを表示して終了します。
-
指示に従って、
root
スクリプトおよびGrid_home/gridSetup -executeConfigTools
スクリプトを実行します。
Oracle Grid Infrastructureホームの移動およびパッチ適用
グリッド設定ウィザードを使用して、Oracle Grid Infrastructureホームを移動しそれにパッチを適用します。
Oracleインストーラ・スクリプトgridSetup.sh
では、この目的のために、新しいスイッチ-switchGridHome
がサポートされています。この機能では、同じかより新しいパッチ・レベルになるように、Oracle Grid Infrastructureホームを移動してそれにパッチを適用できます。
関連項目:
-
パッチ適用後のOracle Grid Infrastructureホームの切替えの詳細は、Oracle Grid Infrastructure Linuxインストレーションおよびアップグレード・ガイドfor Linux
サーバーの重みベースのノード削除
Oracle Clusterwareの障害リカバリ・メカニズムを、プライベート・ネットワーク(クラスタ・インターコネクト)障害のイベントで終了または削除するノードを選択するように構成できます。
クラスタでネットワーク分離が発生し、クラスタが非結合コホートにパーティション化されるスプリット・ブレイン状況においては、Oracle Clusterwareは特定のルールを適用して残りのコホートを選択し、場合によってはクリティカルなシングルトン・リソースを実行しているノードを削除することがあります。
これらの決定の結果を反映させるには、値をデータベース・インスタンスまたはノードに追加します。これにより、Oracle Clusterwareは、削除か終了かを決定する必要があるとき、これらの要因を考慮し、すべてのクリティカル・コンポーネントを使用可能な状態に保持しようとします。重み関数を構成して、クラスタ内のクリティカル・コンポーネントに重みを追加できます。これにより、スプリット・ブレイン状況を解決するときにどのノードを削除するかを決定する際に、Oracle Clusterwareに付加的な入力が提供されます。
特定のハードウェア特性のためにタイブレーク処理後も特定のノードが存在するようにしたり、特定のデータベースやサービスのために特定のリソースが存在するようにする必要がある場合があります。次の基準に基づいて、特定のノード、リソースまたはサービスに重みを割り当てることができます。
-
重みは管理者管理ノードにのみ割り当てることができます。
-
重みは、登録済のOracle Clusterwareリソースであるサーバーまたはアプリケーションに割り当てることができます。
重みは、コンポーネントの重要度の一因となり、分離ブレイン状況の管理中にOracle Clusterwareが行う選択に影響します。様々なコホート間で他のクリティカルな因子が同等であれば、Oracle Clusterwareは最も重いコホートを選択してアクティブのままにします。
様々なコンポーネントに重みを割り当てるには、次のようにします。
-
データベース・インスタンスまたはサービスに重みを割り当てるには、データベース・インスタンスまたはサービスを追加するときに、
srvctl add database
またはsrvctl add service
コマンドで-css_critical yes
パラメータを使用します。また、srvctl modify database
およびsrvctl modify service
コマンドでこのパラメータを使用することもできます。 -
ora.*でないリソースに重みを割り当てるには、リソースを追加または変更するときに、
crsctl add resource
およびcrsctl modify resource
コマンドで-attr "CSS_CRITICAL=yes"
パラメータを使用します。 -
サーバーに重みを割り当てるには、
crsctl set server
コマンドで-css_critical yes
パラメータを使用します。
ノート:
値を有効にするには、ノードでOracle Clusterwareスタックを再起動する必要があります。リソースは再起動しなくても変更が有効になるため、これはリソースには適用されません。
グリッド・ネーミング・サービスの概要
Oracle Clusterwareでは、クラスタ環境のアドレス解決にグリッド・ネーミング・サービス(GNS)が使用されます。
ノート:
Oracle Grid Infrastructureのグリッド・ネーミング・サービス(GNS)の高可用性グリッド・ネーミング・サービス機能は、Oracle Database 23aiでは非推奨になりました。高可用性GNSでは、マルチクラスタ環境における複数のGNSインスタンスを様々なロールで実行できます。この機能は非推奨になります。これに替わる機能はありません。
GNSおよびGNS仮想IPアドレスのネットワーク管理タスク
GNSを実装するには、ネットワーク管理者がDNSを構成してクラスタのドメインを設定し、そのドメイン解決をGNS VIPに委譲する必要があります。別のドメインを使用するか、クラスタに既存のドメインのサブドメインを作成できます。
GNSは、そのクラスタ・ノードのホスト名の一部であるクラスタ名と個別のノード識別子を使用してノードを区別するため、クラスタAのクラスタ・ノード123とクラスタBのクラスタ・ノード123を区別することができます。
ただし、手動でホスト名を構成する場合、GNSに委譲するサブドメインにサブドメインがあってはなりません。たとえば、サブドメインmydomain.example.com
をGNSに委譲して解決する場合、other.mydomain.example.com
ドメインがあってはなりません。GNSが排他的に使用するGNSにサブドメインを委譲することをお薦めします。
ノート:
Oracle Flex ASMまたはOracle Flex Clusterなどで静的なアドレス変換を行う構成では、DNSに委譲せずにGNSを使用できます。ただし、DHCPを使用して住所を割り当てる場合、GNSには委譲先となるドメインが必要です。
例2-1は、myclustergns.example.com
というドメインをGNS VIPアドレス10.9.8.7
に委譲するために必要なDNSエントリを示しています。
GNSデーモンおよびGNS VIPは、サーバー・クラスタの1つのノードに対して実行されます。GNSデーモンは、ポート53を使用しているGNS VIPでDNSリクエストをリスニングします。Oracle Clusterwareによって、GNSデーモンおよびGNS VIPはいつでも使用できるように管理されます。GNSデーモンを実行しているサーバーに障害が発生した場合、Oracle ClusterwareはGNSサーバーおよびGNS VIPを、正常に動作するクラスタ・メンバー・ノードにフェイルオーバーします。クラスタがOracle Flex Cluster構成である場合、Oracle Clusterwareは、GNSデーモンおよびGNS VIPをフェイルオーバーします。
ノート:
Oracle Clusterwareは、GNSアドレスを他のクラスタにフェイルオーバーしません。フェイルオーバーは、同じクラスタのメンバーのみに実行されます。
例2-1 DNSエントリ
# Delegate to gns on mycluster mycluster.example.com NS myclustergns.example.com #Let the world know to go to the GNS vip myclustergns.example.com. 10.9.8.7
グリッド・ネーミング・サービス構成オプションの理解
GNSは、自動または標準のクラスタ・アドレス構成モードのいずれかで実行できます。
自動構成は、IPv4アドレスのDynamic Host Configuration Protocol (DHCP)またはIPv6アドレスのStateless Address Autoconfiguration Protocol (autoconfig) (RFC 2462およびRFC 4862)のいずれかを使用します。
アドレスの自動構成オプション
自動構成の場合、DNS管理者はGNSサブドメインを使用して解決するDNS上のドメインを委譲します。Oracle Universal Installerは、インストールまたは構成中にOracle Grid Infrastructureを使用できるよう、指定された各クラスタ・メンバー・ノード・インタフェースに名前を割り当てます。SCANおよびその他すべてのクラスタ名とアドレスは、DNS上ではなくクラスタ内で解決されます。
-
IPv4アドレスの場合、Oracle Clusterwareは、Oracle Grid Infrastructureに割り当てられた各クラスタ・メンバー・ノード・インタフェースに一意の識別子を割り当て、GNSに委譲されたサブドメイン内のこれらの識別子を使用して名前を生成します。DHCPサーバーはこれらのインタフェースにアドレスを割り当て、GNSは、IPv4 DHCP プールから借用したIPv4アドレスに関連する名前とアドレスを維持します。
-
IPv6アドレスの場合、Oracle Clusterwareは、autoconfigを使用して自動的にアドレスを生成します。
アドレスの静的な自動構成オプション
静的な構成では、委譲されるサブドメインはありません。DNS管理者はGNS VIPを構成して、DNS上で構成された名前とアドレスに解決し、また、DNS管理者はSCAN名を構成して、クラスタのこれらの静的なアドレスに解決します。
また、DNS管理者は、各クラスタ・メンバー・ノードに静的なパブリックIP名とアドレスおよび仮想IP名とアドレスを構成します。DNS管理者は、クラスタに追加された各ノードに新しいパブリックおよび仮想IP名とアドレスを構成する必要もあります。すべての名前とアドレスはDNSによって解決されます。
静的なVIPアドレスおよびSCANを使用したサブドメインの委譲がないGNSでは、クラスタ内に名前解決情報が必要なOracle Flex ClusterおよびCloudFS機能を使用できます。ただし、ノードを追加したり変更する場合は、手動で管理タスクを実行する必要があります。
グリッド・ネーミング・サービスの管理
SRVCTLを使用して、クラスタ環境でグリッド・ネーミング・サービス(GNS)を管理します。
ノート:
Oracle Grid Infrastructureのグリッド・ネーミング・サービス(GNS)の高可用性グリッド・ネーミング・サービス機能は、Oracle Database 23aiでは非推奨になりました。高可用性GNSでは、マルチクラスタ環境における複数のGNSインスタンスを様々なロールで実行できます。この機能は非推奨になります。これに替わる機能はありません。
SRVCTLを使用したGNSの起動と停止
srvctlコマンドを使用してGNSを起動および停止します。
サーバー・クラスタでのGNSの起動と停止は、次のそれぞれのコマンドをroot
として実行します。
# srvctl start gns # srvctl stop gns
IPv4からIPv6ネットワークへの移行時のGNSサブドメインの変更
IPv4ネットワークからIPv6ネットワークに移行するとき、GNSサブドメインを変更する必要があります。
ノード障害分離
障害分離は、障害が発生したノードをクラスタの残りのノードから分離させ、障害が発生したノードでデータが失われるのを防ぐプロセスです。
ノート:
IPMIドライバは、すべてのクラスタ・ノードで構成するか、まったく構成しないかのいずれかにする必要があります。障害が発生したノードの分離には、Oracle Clusterwareやそのノードで実行されているオペレーティング・システムとの連携なく問題のノードを再起動できる外部メカニズムが関与します。この機能を提供するために、Oracle Clusterwareでは、業界標準の管理プロトコルであるIntelligent Platform Management Interface仕様(IPMI)(Baseboard Management Controller (BMC)とも呼ばれる)がサポートされています。
通常、IPMIを使用する障害分離は、Oracle Grid Infrastructureのインストール時の「障害の分離のサポート」画面でIPMI構成のオプションが提示されたときに構成します。インストール中にIPMIを構成しない場合は、インストール後にOracle Clusterware Controlユーティリティ(CRSCTL)を使用して構成できます(後続の項を参照)。
障害分離用にIPMIを使用するには、各クラスタ・メンバー・ノードに、IPMIバージョン2.0(Local Area Network (LAN)を介してIPMIがサポートされます)に対応するファームウェアが動作するIPMIデバイスを装備する必要があります。BMCに加えて、各ノードにipmitool
またはipmiutil
がインストールされている必要があります。ipmiutil
ユーティリティは、Oracle Grid Infrastructureインストールとともに配布されないため、ダウンロードする必要があります。ipmiutil
は、ipmiutil.sourceforge.net
または他のリポジトリからダウンロードできます。必要なipmiutil
ユーティリティの最小バージョンは、3.08です。バージョン番号はヘルプ・プロンプトでも表示されますが、ipmiutil
の実行によっても表示できます。
IPMIバージョン1.5ではLANを介したIPMIがサポートされています データベースの操作中、障害分離は、削除を行うクラスタ同期サービス・デーモンから障害が発生したノードのIPMIデバイスへのLANを介した通信によって行われます。IPMI-over-LANプロトコルは、インストール時に管理者から取得したユーザー名およびパスワードで保護される認証セッションに引き継がれます。
DHCPを使用してIPMIの動的IPアドレス割当てをサポートするには、クラスタ同期サービス・デーモンは、クラスタ同期サービスの起動時にローカルのIPMIデバイスと直接通信を行いIPMIデバイスのIPアドレスを取得する必要があります。(ただし、これはHP-UXおよびSolarisプラットフォームにはあてはまりません。これらのプラットフォームでは、IPMIデバイスに静的IPアドレスを割り当てる必要があります。)これは、各クラスタ・システムにインストールする必要があるIPMIドライバを介してIPMIデバイスと通信するIPMIプローブ・コマンド(OSD)を使用して行われます。
IPMIデバイスに静的IPアドレスを割り当てた場合、IPMIドライバは、クラスタ同期サービス・デーモンにとって必須ではありません。ただし、ipmitool
またはipmiutil
を使用してIPMIデバイスを構成するにはドライバが必要ですが、一部のプラットフォームでは管理コンソールを使用してこれを行うこともできます。
IPMI用のサーバー・ハードウェア構成
最初に、ipmitool
またはipmiutil
バイナリをインストールし、IPMIドライバをインストールして有効にし、IPMIデバイスを構成する必要があります(ご使用のプラットフォームのOracle Grid Infrastructureインストレーションおよびアップグレード・ガイドを参照)。
ノート:
IPMIドライバは、すべてのクラスタ・ノードで構成するか、まったく構成しないかのいずれかにする必要があります。CRSCTLを使用したIPMIベース障害分離のインストール後の構成
Oracle Clusterwareをインストールした後、crsctlコマンドを使用してIPMIベースの障害分離を構成します。このコマンドを使用して、IPMI構成を変更または削除することもできます。
Oracle ClusterwareでのIPMIインストール後の構成
ipmitool
またはipmiutil
バイナリをインストールし、IPMIドライバをインストールして有効化し、IPMIデバイスを構成し、サーバー構成を完了した後、CRSCTLコマンドを使用してIPMI構成を完了できます。
インストールを開始する前に、ipmitool
またはipmiutil
バイナリをインストールし、サーバー・オペレーティング・システムにIPMIドライバをインストールして有効にし、各ノードでIPMIハードウェア(IPアドレス・モード、管理資格証明など)を構成しました(Oracle Grid Infrastructureインストレーション・ガイドを参照)。Oracle Clusterwareをインストールすると、インストーラによって、IPMI管理者のユーザーIDおよびパスワードが収集され、ノードのローカル記憶域の(OLRにある)Oracle Walletに格納されます。さらに、インストーラによってipmitool
またはipmiutil
バイナリの場所に関する情報も収集されます。
サーバーの構成、およびipmitool
またはipmiutil
バイナリの場所の構成が完了した後、各クラスタ・ノードで次の手順を実行し、ノードにIPMI管理者およびパスワードを登録します。
ノート:
IPMIがDHCPを使用してIPアドレスを取得するように構成されている場合は、IPMIをリセットするか、またはノードを再起動して、アドレスを取得するようにする必要がある可能性があります。
CRSCTLを使用したIPMI構成の変更
既存のIPMIベースの障害分離構成を変更して、IPMIパスワードを変更するか、既存のインストールの障害分離に対するIPMIを構成する必要がある場合があります。ipmiutil
バイナリ・ファイルへのパスの変更が必要になる場合もあります。
ご使用のプラットフォームに適したIPMI構成ツールでCRSCTLを使用して、これらの変更を行います。
たとえば、IPMIの管理者パスワードを変更するには、まず『Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイド』で説明しているようにIPMI構成を変更してから、CRSCTLを使用してOLR内のパスワードを変更します。
Oracle Clusterwareで必要なIPMIの構成データはOLRのOracle Walletに保存されています。構成情報はセキュアなストアに保持されるため、この情報はOracle Grid Infrastructureインストールの所有者アカウント(グリッド・ユーザー)によって書き込まれる必要があるため、このインストールのユーザーとしてログインする必要があります。
既存のIPMI構成を変更するには、次の手順を実行します。
CRSCTLを使用したIPMI構成の削除
IPMIの使用を完全に停止する場合、またはIPMIの最初の構成がOracle Clusterwareをインストールしたユーザー以外のユーザーによって行われていた場合は、CRSCTLを使用してクラスタからIPMI構成を削除できます。
後者に該当する場合、Oracle ClusterwareはIPMI構成データにアクセスできず、Oracle ClusterwareソフトウェアはIPMIを使用できないため、Oracle ClusterwareをインストールしたユーザーとしてIPMIを再構成する必要があります。
IPMIを完全に削除するには、次のステップを実行します。Oracle ClusterwareをインストールしたユーザーとしてIPMIを再構成するには、ステップ3および4を実行し、前の項のステップ3および4を繰り返します。
手動構成ネットワーク上のネットワーク・アドレスの理解
手動構成ネットワーク上のネットワーク・アドレスの概念および要件を理解することは役立ちます。
ネットワーク・アドレスの構成要件の理解
Oracle Clusterware構成には、少なくとも1つのパブリック・ネットワーク・インタフェースと1つのプライベート・ネットワーク・インタフェースが必要です。
-
パブリック・ネットワーク・インタフェースは、データベース・サーバー上のデータにアクセスするためにユーザーとアプリケーション・サーバーを接続します。
-
プライベート・ネットワーク・インタフェースはノード間の通信用で、Oracle Clusterwareによって排他的に使用されます。
パブリック・ネットワーク・インタフェースは、特定のネットワーク上のIPv4、IPv6または両方のタイプのアドレスに対して構成できます。冗長なネットワーク・インタフェース(ボンディングまたはチーミングされたインタフェース)を使用する場合、Oracleでは、1つのインタフェースがIPv4アドレスをサポートしていますが、別のインタフェースがIPv6アドレスをサポートするような構成はサポートしていないので注意してください。冗長なインタフェースのネットワーク・インタフェースは、同じIPプロトコルを使用して構成する必要があります。
1つ以上のプライベート・ネットワーク・インタフェースを、すべてのネットワーク・アダプタに対してIPv4アドレスかIPv6アドレスのどちらかを使用して構成できます。プライベート・ネットワーク・インタフェースに対してIPv4アドレスとIPv6アドレスを組み合せて使用することはできません。
ノート:
クラスタ内のプライベート・ネットワークに対してIPv6を使用できるのは、Oracle Clusterware 12c リリース2 (12.2)以上を使用する場合のみです。クラスタ内のすべてのノードには、同じIPプロトコル構成を使用する必要があります。すべてのノードがIPv4を使用するか、すべてのノードがIPv6を使用するか、すべてのノードがIPv4およびIPv6の両方を使用するかのいずれかです。クラスタ内の一部のノードがIPv6アドレスのみをサポートするように構成し、その他のノードがIPv4アドレスのみをサポートするように構成することはできません。
VIPエージェントは、ステートレス・アドレス自動構成(RFC 2462)を使用したIPv6の生成をサポートしており、これらのアドレスをGNSで通知します。srvctl config network
コマンドを実行して、DHCPまたはステートレス・アドレス自動構成が使用されているかを識別します。
IPv6アドレスのフォーマットについて
Oracle Grid Infrastructureクラスタの各ノードは、同一ネットワーク上でIPv4アドレスとIPv6アドレスの両方をサポートできます。推奨されるIPv6アドレス書式は次のとおりです(各xは、16進文字を表します)。
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
IPv6アドレス・フォーマットはRFC 2460によって定義されます。Oracle Grid Infrastructureでは次のIPv6アドレスがサポートされます。
-
RFC 4193によって定義されるグローバルIPv6アドレスとサイトローカルのIPv6アドレス。
ノート:
RFC 1884で定義されているリンクローカルとサイトローカルのIPv6アドレスはサポートされません。
-
IPアドレスの各フィールドの先頭に圧縮されたゼロを使用。
-
圧縮されて、「::」セパレータでで表現された空のフィールド。たとえば、IPv6アドレス2001:0db8:0000:0000:0000:8a2e:0370:7334を2001:db8::8a2e:370:7334と表記できます。
-
8ビットの断片を含む下位4つのフィールド(標準的なIPv4アドレス・フォーマット)。たとえば、2001:db8:122:344::192.0.2.33です。
名前解決およびネットワーク・リソースのアドレス・タイプ
ネットワーク構成の確認にはsrvctl config network
コマンド(構成の確認用)を、ネットワーク・アドレス・タイプの制御にはsrvctl modify network -iptype
コマンドをそれぞれ使用します。
srvctl modify network -nettype
コマンドを使用してアドレスの取得方法を構成できます。-nettype
パラメータの値をdhcp
またはstatic
に設定して、IPv4ネットワーク・アドレスの取得方法を制御します。または、-nettype
パラメータの値をautoconfig
またはstatic
を設定して、IPv6アドレスの生成方法を制御します。
-nettype
と-iptype
パラメータは直接関連していませんが、-iptype ipv4
と-nettype dhcp
を同時に使用したり、-iptype ipv6
と-nettype autoconfig
を同時に使用できます。
ノート:
ネットワークがIPv4サブネットとIPv6サブネットの両方で構成されている場合、-nettype
がmixed
に設定されていると両方のサブネットがサポートされません。
-nettype
をmixed
に設定した場合、IPv4からIPv6への移行はサポートされません。最初にstatic
からdhcp
への移行が完了してから、IPv6をサブネットに追加する必要があります。
同様に、-nettype
をmixed
に設定した場合、IPv6からIPv4への移行の開始はサポートされません。最初にautoconfig
からstatic
への移行が完了してから、IPv4をサブネットに追加する必要があります。
関連トピック
SCANアドレスおよびクライアント・サービス接続の理解
パブリック・ネットワーク・アドレスはクライアントにサービスを提供するために使用します。
クライアントで単一クライアント・アクセス名(SCAN)アドレスに接続している場合は、クラスタに対してノードを追加または削除する際にパブリックおよび仮想IPアドレスを変更する必要がある場合がありますが、クライアントを新しいクラスタ・アドレスで更新する必要はありません。
ノート:
listener.ora
ファイルを編集して、SCANおよびノード・リスナーのOracle Netリスナー・パラメータを変更できます。たとえば、TRACE_LEVEL_listener_name
を設定できます。ただし、リスナー・エージェントは動的にリスナー・エンドポイントを管理するため、プロトコル・アドレス・パラメータを設定して、リスニング・エンドポイントを定義することはできません。
SCANはクラスタの別名のように機能します。ただし、SCANはクラスタ内の任意のノードで解決され、ノードのVIPアドレスとは異なり、SCANに接続するクライアントでは、クラスタに対してノードを追加または削除する際に、更新されたVIPアドレスは必要なくなります。SCANアドレスはクラスタ内のノード・アドレスではなくクラスタに解決されるため、SCANアドレス構成に影響を与えることなく、クラスタでノードを追加または削除できます。
SCANは完全修飾名(ホスト名およびドメイン)で、SCANに割り当てられたすべてのアドレスに解決するように構成されています。SCANは、DNSサーバー上のSCAN名に構成された3つすべてのアドレスに解決するか、GNS構成のクラスタ内に解決します。SCANリスナーはクラスタ内の任意のノードで実行できます。SCANは、クライアント構成が特定のデータベースを実行するノードに依存する必要がないように、データベースに位置の独立性を提供します。
Oracle Databaseインスタンスは、リモート・リスナーとしてSCANリスナーにのみ登録されます。アップグレードしたデータベースは、リモート・リスナーとしてSCANリスナーに登録されるとともに、引き続きすべてのノード・リスナーにも登録されています。
ノート:
インストール時にSCAN名を指定するというOracle Grid Infrastructureのインストール要件により、サーバーの/etc/hosts
ファイルを使用して1つ以上のIPアドレスを解決してこのインストール要件を回避し、SCANに必要なインフラストラクチャがない場合は、インストール後、SCANを無視し、VIPを使用してクラスタ内のデータベースに接続できます。
Oracleでは、SCANアドレスの削除はサポートされていません。
有効なノード・チェックにおけるSCANリスナーおよびサービス登録制限
有効なノード・チェックを使用して、SCANリスナーが登録を受け入れるノードおよびサブネットを指定できます。
SRVCTLは、ノードおよびサブネット情報をSCANリスナー・プロファイルに格納します。SCANリスナー・エージェントは、リソース・プロファイルからその情報を読み出し、listener.ora
ファイルに書き込みます。
リスナーへのデータベース・インスタンスの登録は、リクエスト元が有効なノードである場合にのみ成功します。ネットワーク管理者は、有効なノードおよび除外ノードのリストを指定したり、有効なノードの確認を完全に無効にすることができます。有効なノードのリストでは、データベースに登録できるノードやサブネットを明示的にリストします。除外ノードのリストでは、データベースに登録できないノードを明示的にリストします。動的登録を制御することによって、Oracle RACデプロイメントの管理性およびセキュリティが向上します。
デフォルトでは、SCANリスナー・エージェントはREMOTE_ADDRESS_REGISTRATION_listener_name
をプライベートIPエンドポイントに設定します。SCANリスナーは、プライベート・ネットワークからの登録要求のみを受け入れます。SCANリスナーのプライベート・ネットワークにアクセスできないリモート・ノードは、listener.ora
ファイルのregistration_invited_nodes_alias
パラメータを使用して、またはコマンドライン・インタフェースのSRVCTLを使用してSCANリスナーを変更して、有効なノードのリストに含める必要があります。
ノート:
Oracle Grid Infrastructure 12c以降、SCANリスナーについて、VALID_NODE_CHECKING_REGISTRATION_listener_name
およびREGISTRATION_INVITED_NODES_listener_name
パラメータがlistener.ora
ファイルに設定されている場合、リスナー・エージェントはこれらのパラメータを上書きします。
SRVCTLユーティリティを使用してinvitednodes
値とinvitedsubnets
値を設定すると、リスナー・エージェントは自動的にVALID_NODE_CHECKING_REGISTRATION_listener_name
をSUBNETに設定し、REGISTRATION_INVITED_NODES_listener_name
をlistener.ora
ファイルで指定されたリストに設定します。
CRSによって管理されるその他のリスナーの場合、リスナー・エージェントは、listener.ora
ファイルでまだ設定されていない場合にのみ、listener.ora
ファイルでVALID_NODE_CHECKING_REGISTRATION_listener_name
をSUBNETに設定します。SRVCTLユーティリティでは、SCAN以外のリスナーについてinvitednodes
値とinvitedsubnets
値の設定はサポートされていません。リスナー・エージェントは、SCAN以外のリスナーについてlistener.ora
ファイルのREGISTRATION_INVITED_NODES_listener_name
を更新しません。
共有単一クライアント・アクセス名の構成
共有単一クライアント・アクセス名(SCAN)により、専用クラスタと他のクラスタで、一連のSCAN仮想IP(VIP)とリスナーを共有できます。
共有単一クライアント・アクセス名の構成について
データベース・サーバーとデータベース・クライアントの両方で共有単一クライアント・アクセス名(SCAN)を構成する必要があります。
ノート:
Oracle Grid Infrastructure 23ai以降、Oracleクラスタ・ドメイン・アーキテクチャに含まれるドメイン・サービス・クラスタ(DSC)は非推奨になりました。共有SCANを使用すると、クラスタごとにSCAN VIPセットをデプロイするのではなく、複数のクラスタでSCAN仮想IP(VIP)アドレスの単一共通セットを使用してユーザー接続を管理できます。たとえば、10のクラスタで、クラスタごとに3つのSCAN VIPをデプロイする場合、合計30のIPアドレスを使用しますが、共有SCANデプロイメントでは、それらの同じ10のクラスタに対して3つのSCAN VIPのみデプロイするため、必要なIPアドレスは3つのみです。
Oracle Real Application Cluster (Oracle RAC)データベース・クラスタにはSCAN VIP (共有またはそれ以外)が必要であることに注意してください。
共有SCANを構成する一般的な手順として、最初にサーバー(つまり、共有SCANをホストするクラスタ)でsrvctl
ユーティリティを使用して構成を行い、次に、クライアント(この共有SCANを使用するOracle RACクラスタ)でこのユーティリティを使用して構成を行います。サーバーでは、srvctl
を使用した構成に加えて、環境変数の設定、資格証明ファイルの作成すが必要であり、またSCANクラスタ固有のOracle Notification Service (ONS)プロセスが、ONS構成を作成および管理する専用の構成ディレクトリにアクセス可能であることを保証する必要もあります。
手動構成システム上のネットワーク・アドレスの変更
手動構成システム上でネットワーク・アドレス・メンテナンスを実行できます。
SRVCTLを使用した仮想IPアドレスの変更
SRVCTLを使用して、仮想IPアドレスを変更できます。
Oracle Database 11gリリース2(11.2)より前のOracle DatabaseリリースのパブリックVIPアドレスを使用するように構成されたクライアントは、既存の接続アドレスを引き続き使用できます。SCANを使用するようにクライアントを構成することをお薦めしますが、ユーザーがSCANを使用する必要はありません。以前のバージョンのOracle Databaseは、アップグレードされるとSCANに登録され、クライアントでは、SCANを使用してこのデータベースへの接続を開始するか、接続用のVIPアドレスの使用を継続することができます。
クライアント接続用のVIPアドレスの使用を継続する場合、Oracle DatabaseおよびOracle ASMの実行が継続している間にVIPアドレスを変更できます。ただし、アドレスを変更する間は、サービスを停止する必要があります。VIPアドレスを再起動すると、サービスもノードで再起動します。
この手順を使用して、静的パブリック・サブネットでDHCPを使用するように変更することはできません。srvctl add network -subnet
コマンドは、DHCPネットワークを作成するだけです。
ノート:
次の説明は、VIPアドレスのみを変更する方法を示すもので、VIPアドレスに関連付けられたホスト名は変更しないことを想定しています。GNSを使用していて、VIPがDHCPを使用して割り当てられている場合は、VIPアドレスを手動で更新する必要はありません。
VIPアドレスのみを変更する場合、DNSおよびクライアントのhostsファイルを更新します。また、サーバーのhostsファイルがVIPアドレスに対して使用されている場合は、それも更新します。
VIPアドレスを変更するには、次のステップを実行します。
Oracle Clusterwareのプライベート・ネットワーク構成の変更
Oracle Clusterwareプライベート・ネットワーク構成を変更できます。
プライベート・ネットワークおよびネットワーク・インタフェースについて
Oracle Clusterwareでは、各ノードが、(パブリック・ネットワークに加えて)プライベート・ネットワークに接続されている必要があります。プライベート・ネットワーク接続は、クラスタ・インターコネクトとも呼ばれます。
表2-1に、ネットワーク・インタフェース・カードおよびプライベートIPアドレスがどのように格納されるかを示します。
すべてのノードが、同一のサブネットに接続された同一のネットワーク・インタフェース(oifcfg
コマンドによりグローバル・インタフェースとして定義済)を使用しているクラスタのみをサポートしています。ノードごとに異なるネットワーク・インタフェース(ノード固有のインタフェース)を使用することはできません。
表2-1 ネットワーク・インタフェース、プライベートIPアドレスおよびプライベート・ホスト名の記憶域
エンティティ | 格納先 | コメント |
---|---|---|
ネットワーク・インタフェース名 |
オペレーティング・システム たとえば、 |
ネットワーク・インタフェース名を指定する場合、ワイルドカードを使用できます。 たとえば、 |
プライベート・ネットワーク・インタフェース |
Oracle Clusterwareのグリッド・プラグ・アンド・プレイ(GPnP)・プロファイル内 |
インストール時にインタフェースを「プライベート」とすることによって、使用するインタフェースをプライベート・インタフェースとして構成するか、 |
冗長インターコネクトの使用
インストール時、またはインストール後にoifcfg setif
コマンドを使用してインタフェースのロールをプライベートとして分類することにより、冗長なインターコネクトの使用に対して複数のインタフェースを定義できます。
このようにすると、定義したインタフェースの数に応じて1つから4つの高可用性IP(HAIP)アドレスがOracle Clusterwareによって作成され、Oracle DatabaseおよびOracle ASMインスタンスは、これらのアドレスを使用して高可用性のロード・バランスされた通信を実現します。
デフォルトでは、Oracleソフトウェア(Oracle RAC、Oracle ASMおよびOracle ACFSなど)は、そのすべてのトラフィックのHAIPアドレスとして、プライベート・ロールを指定したインタフェースのHAIPアドレスを使用するので、提供されたクラスタ・インターコネクト・インタフェースのセット全体でロード・バランシングが可能になります。定義済のクラスタ・インターコネクト・インタフェースのいずれかに障害が発生するか、または通信できなくなった場合、Oracle Clusterwareは、機能している残りのインタフェースのいずれかに対応するHAIPアドレスを透過的に移動します。
たとえば、インストール後に新しいインタフェースを、サブネット番号が172.16.2.0のeth3
というサーバーに追加する場合は、次のコマンドを使用して、このインタフェースをプライベート・インタフェースとしてOracle Clusterwareで使用できるようにします。
$ oifcfg setif -global eth3/172.16.2.0:cluster_interconnect
Oracle Clusterwareではeth3
で169.254.*.*というHAIPアドレス(HAIP用の予約済サブネット)が使用され、データベースOracle ASMおよびOracle ACFSはそのアドレスを通信に使用しますが、Oracle Clusterwareは自身の通信に172.16.2.0アドレスも使用します。
注意:
HAIPサブネット(169.264.*.*)を分類するためにOIFCFGを使用しないでください。OIFCFGは、Oracle Clusterwareのインタフェース名、サブネットおよびタイプ(パブリック、クラスタ・インターコネクトまたはOracle ASM)を記録するために使用できます。ただし、OIFCFGを使用して各インタフェースの実際のIPアドレスを変更することはできません。
ノート:
Oracle Clusterwareが使用するインタフェースは、定義されているインタフェースの数に関係なく、常に最大で4つです。あるインタフェースに障害が発生すると、HAIPアドレスは、定義されたセット内の別の構成済インタフェースに移動します。
HAIPアドレスが1つのみで、選択するインタフェースが複数ある場合、HAIPアドレスの移動先のインタフェースは、そのアドレスが構成された元のインタフェースではなくなります。Oracle Clusterwareは、HAIPアドレスの追加先として、数が最も小さいサブネットのインタフェースを選択します。
OIFCFGを使用したインタフェース名の変更結果
インタフェース名の変更結果は、どの名前を変更するか、またIPアドレスも変更するかどうかによって異なります。
インタフェース名のみを変更する場合、結果は、それほど重要ではありません。OCR内に格納されたパブリック・インタフェースの名前を変更する場合、クラスタのノード・アプリケーションも変更する必要があります。したがって、この変更を有効にするために、ノード・アプリケーションを停止する必要があります。
ネットワーク・インタフェースの変更
OIFCFGコマンドを使用して、ネットワーク・インタフェースおよびそれに関連するサブネット・アドレスを変更できます。
この手順では、Oracle ClusterwareおよびOracle Databaseが以前使用していたクラスタ内の各ノードで、ネットワーク・インタフェースおよびIPアドレスを変更します。
注意:
Oracle RAC(RDBMS)インターコネクトで使用されるインタフェースは、Oracle Clusterwareでホスト名に使用されるインタフェースと同じである必要があります。Oracle Clusterwareで監視されない別のインタフェースで、Oracle RACのプライベート・インターコネクトを構成しないでください。
SRVCTLを使用したネットワークの作成
SRVCTLを使用して、クラスタ・メンバー・ノードにネットワークを作成し、アプリケーション構成情報を追加します。
次のように、クラスタ・メンバー・ノード用のネットワークを作成します。
クラスタ内のネットワーク・アドレス構成
IPv4、IPv6または指定されたネットワーク上での両タイプのアドレスのいずれかにネットワーク・インタフェースを構成できます。
サード・パーティーの技術を使用して冗長なネットワーク・インタフェースを構成する場合、Oracleでは、1つのインタフェースがIPv4アドレスをサポートし、別のインタフェースがIPv6アドレスをサポートするような構成はサポートしていません。冗長なインタフェースのネットワーク・インタフェースは、同じIPアドレス・タイプを使用して構成する必要があります。Oracle Clusterwareの冗長インターコネクト機能を使用する場合は、インタフェースにIPv4アドレスを使用する必要があります。
クラスタ内のすべてのノードには、同じIPプロトコル構成を使用する必要があります。すべてのノードがIPv4を使用するか、すべてのノードがIPv6を使用するか、すべてのノードがIPv4およびIPv6の両方を使用するかのいずれかです。クラスタ内の一部のノードがIPv6アドレスのみをサポートするように構成し、その他のノードがIPv4アドレスのみをサポートするように構成することはできません。
ローカル・リスナーは、ネットワーク・リソースに構成されたサブネットのアドレス・タイプに基づくエンドポイントでリスニングします。IPV4、IPV6または両方のタイプを使用できます。
SRVCTLを使用した、静的IPv4アドレスの静的IPv6アドレスへの変更
IPv4静的アドレスからIPv6静的アドレスに変更する場合は、静的IPv6アドレスのみを使用するように切り替える前に、IPv6アドレスを追加し、IPv4アドレスとIPv6アドレスの両方を短期間受け入れるようにネットワークを変更します。
ノート:
IPv4ネットワークが、静的および動的アドレスの両方が混合したモードである場合、この手順は実行できません。最初にすべてのアドレスを静的に移行する必要があります。
静的IPv4アドレスを静的IPv6アドレスに変更するには:
SRVCTLを使用した、動的IPv4アドレスの動的IPv6アドレスへの変更
SRVCTLコマンドによって、動的IPv4アドレスを動的IPv6アドレスに変更します。
ノート:
IPv4ネットワークが、静的および動的アドレスの両方が混合したモードである場合、この手順は実行できません。最初にすべてのアドレスを動的に移行する必要があります。
動的IPv4アドレスを動的IPv6アドレスに変更するには:
関連トピック
IPv4ネットワークのIPv4およびIPv6ネットワークへの変更
IPv6ネットワークを既存のIPv4ネットワークに追加して、IPv4ネットワークをIPv4およびIPv6ネットワークに変更できます。
このプロセスは、「SRVCTLを使用した、静的IPv4アドレスの静的IPv6アドレスへの変更」のステップ1から5で説明されています。
これらのステップを完了した後、グリッド・ユーザーとしてログインし、次のコマンドを実行します。
$ srvctl status scan
出力を確認して、SCAN VIPの変更を確認します。