データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

OracleRACノードの重み付けの概要

Oracle Real Application Clusters(RAC)環境では、すべてのインスタンスまたはサーバーは、プライベートネットワーク上で高速相互接続を使用して相互に通信します。 RACのインスタンスメンバーがこのプライベートインターコネクトを介してpingまたは相互接続に失敗した場合、物理的に稼働しているすべてのサーバー(およびそれらのサーバー上のデータベースインスタンス)は、split-brainと呼ばれる状態になる可能性があります。

Oracleクラスタ(Oracle RAC 12cリリース2バージョンより前)では、ネットワークまたはディスクの問題が原因でasplit-brainの問題が発生した場合、ノード番号が最も小さいノードがクラスタ内で存続しました。ただし、最新のOracle RAC 12cRelease 2では、分割されたブレインによってサブクラスター内に同数のノードが作成される特定のケースで、削除される候補ノードが選択されるアルゴリズムが変更されました。 。

このブログ投稿では、新しいノード均等化機能に基づくOracleRAC12cリリース2でのノード排除アルゴリズムの変更について説明しています。

ノード均等化アルゴリズムの概要

次の画像は、ノード均等化アルゴリズムを示しています。

OracleRACノードの重み付けの概要 Oracleのノード均等化

出典:https://goo.gl/images/qarxrq

ノード均等化は、Oracle RAC 12cリリース2で導入された新機能であり、フェンシング中にクラスタでホストされるワークロードを考慮します。スプリットブレインシチュエーションが発生すると、Oracle Clusterwareは特定のルールを適用して存続するコホートを選択し、システムは重要なリソースで実行されているノードを削除する可能性があります。この新機能を使用して、特定のノードに重みを割り当て、ノードがクラスターから終了するのを防ぐことができます。

新しく作成されたタグ、CSS\_CRITICAL 、をさまざまなレベルまたはコンポーネントに設定して、それらを「クリティカル」としてマークし、障害が発生した場合にクラスターがそれらを保持しようとするようにすることができます。 Oracle Clusterwareがスプリットブレインの場合にどのノードを削除するかを決定するとき、CSS_CRITICAL タグは、ノードの存続を禁止する技術的な理由が他にない限り、尊重されます(ノードに障害時に少なくとも1つの重要なコンポーネントがある場合)。この概念により、他のすべてが等しい場合でも、作業の大部分は影響を受けないままになります。

ノード均等化アルゴリズムタスク

ノード均等化アルゴリズムは、次のタスクを実行します。

  • データベースインスタンスまたはサービスに重みを割り当てます。 -css_criticalを設定できます yes srvctl add databaseを使用 またはsrvctladd service データベースインスタンスまたはサービスを追加するときのコマンド。 srvctl modify databaseを使用してパラメータを設定または変更することもできます。 およびsrvctlmodify service コマンド。
  • ora。*以外のリソースに重みを割り当てます。 -attr CSS_CRITICAL=yesを使用します リソースを追加または変更するときに、* crsctl addresource*および*crsctlmodifyresource*コマンドを使用するパラメーター。
  • サーバーに重みを割り当てます。 -css_criticalを設定します yesへのパラメータ crsctl set serverを使用 コマンド。

以下は、データベースインスタンスまたはサービスに重みを割り当てるいくつかの例です。

$srvctl modify database –d <dbname> css\_critical yes
$srvctl modify service  –db  <dbname> -service <service_name> css_critical yes

リソースに重みが割り当てられていない場合、アルゴリズムは次の考慮事項を調べます。

  • 作成されたサービスの最大数はどのノードですか?
  • インスタンス用にシングルトンサービスが作成されていますか?
  • ノードは構成済みのFlexASMインスタンスですか?
  • パブリックネットワークに障害が発生しましたか?
  • ノードのタイプ(ハブまたはリーフ)
テストケース

次のコードウォークスルーでは、bond2が2ノードクラスターのプライベート相互接続として使用される場合を検証します。

$oifcfg getif
bond0  147.167.80.0  global  public
bond2  10.168.33.32  global  cluster\_interconnect
$olsnodes -s -n
node1   1       Active
node2   2       Active
$
$crsctl set server css\_critical yes
$crsctl get server css\_critical
CRS-5092: Current value of the server attribute CSS_CRITICAL is yes.
$

bond2を停止して、node1とnode2の間の通信障害をシミュレートしましょう:

#ifdown bond2

$olsnodes -s -n
node1   1       Active
node2   2       Inactive

OCSSD.trcからの出力

2018-01-09 11:01:21.220 :    CSSD:1825834752: clssnmrCheckNodeWeight: node(1) has weight stamp(393228187) pebbles (0) goldstars (0) flags (3) SpoolVersion (0)
2018-01-09 11:01:21.220 :    CSSD:1825834752: clssnmrCheckNodeWeight: node(2) has weight stamp(0) pebbles (0) goldstars (0) flags (0) SpoolVersion (0)
2018-01-09 11:01:21.727 :    CSSD:1825834752: clssnmrCheckNodeWeight: node(1) has weight stamp(393228187) pebbles (0) goldstars (0) flags (3) SpoolVersion (0)
2018-01-09 11:01:21.727 :    CSSD:1825834752: clssnmrCheckNodeWeight: node(2) has weight stamp(0) pebbles (0) goldstars (0) flags (0) SpoolVersion (0)
2018-01-09 11:01:21.727 :    CSSD:1825834752: clssnmrCheckNodeWeight: Server pool version not consistent
2018-01-09 11:01:21.727 :    CSSD:1825834752: clssnmrCheckNodeWeight: stamp(393228187), completed(1/2)
結論

RAC 12cリリース2以降、新しいアルゴリズムは、次のように(スプリットブレインシナリオ中に)強制または保持するノードを決定します。

  • サブクラスターのサイズが異なる場合、機能は以前のリリースと同じです。

  • すべてのサブクラスターが同じサイズの場合、機能は次のように変更されています。

    • サブクラスターのノードの重みが等しい場合、ノード番号が最も小さいサブクラスターが存続し、2ノードクラスターでノード番号が最も小さいノードが存続するようにします。
    • サブクラスターのノードの重みが等しくない場合、重みの大きいサブクラスターは存続し、2ノードのクラスターでは、重みが小さいためにノード番号が最も小さいノードが削除されます。

サーバーの重みベースのノード排除を使用して、スプリットブレインが発生した場合にどのクラスターノードを終了または排除するかを選択することにより、OracleClusterwareの障害回復メカニズムをより詳細に制御できます。このトピックについて質問がある場合やガイダンスが必要な場合は、下のフィールドにコメントを追加できます。


  1. OracleDeferredCOGSアカウンティング

    この投稿では、Oracle®CostManagementリリース12.0.0以降の繰延売上原価(DCOGS)勘定機能を紹介します。この拡張機能は、売上原価(COGS)を、以前は不可能だった収益に直接一致させます。 はじめに 以前のバージョンでは、出荷によって収益が得られなかった場合でも、システムは在庫から出荷された商品の価値をCOGSに費やしていました。この機能拡張により、システムは在庫から出荷された商品の価値をDCOGSアカウントに入れます。 この機能拡張により、一般に公正妥当と認められた会計原則(GAAP)の推奨事項に従って収益と売上原価を同期させるように変更が加えられます。ソフトウェ

  2. Oracle19cでDBCAコマンドを使用してデータベースのクローンを作成する

    このブログでは、Oracle19cの新機能であるDatabaseConfiguration Assistant(DBCA)を使用して、ソースデータベースのバックアップを作成せずにリモートプラガブルデータベース(PDB)をコンテナデータベース(CDB)に複製する方法を紹介します。 ソースからターゲットへのクローン作成にかかる時間は最小限です。 ソースDBの詳細 CDB:LCONCDBPDB:LCON 以下は総数です。ソース内の各コンテナ(CDBおよびPDB)の下にあるDBFファイルのうち、クローンがターゲット内にある後に検証する必要があります。上記のソースDBから、ターゲットホスト内にCDB