クラスタの作成および初期化

クラスタの作成および初期化の手順を示します。

クラスタに複数のアクティブ・スタンバイ・ペアを含める予定の場合は、「クラスタでの複数のアクティブ・スタンバイ・ペアの包含」を参照してください。

リモート障害時リカバリ・サブスクライバとしてOracleデータベースを構成する場合は、「障害時リカバリ・サブスクライバとしてのOracleデータベースの構成」を参照してください。

Oracle Clusterwareで管理されない、読取り専用サブスクライバを設定する場合は、「Oracle Clusterwareで管理されない読取り専用サブスクライバの構成」を参照してください。

TimesTenクラスタ・エージェントの起動

ttCWAdmin -initコマンドを実行して、クラスタ内のすべてのホストでTimesTenクラスタ・エージェント(ttCRSAgent)およびTimesTenクラスタ・デーモン・モニター(ttCRSDaemon)を起動します。

このコマンドは、ttcrsagent.optionsファイルで定義された、クラスタ内のどのホストでも実行できます。

たとえば:

ttCWAdmin -init

ttCWAdmin -initコマンドによって、次の操作が実行されます。

  • ttcrsagent.optionsファイルを読み取り、このファイルに定義されている各ホストでTimesTenメイン・デーモンを起動します。

  • クラスタ内のすべてのホストで、TimesTenクラスタ・エージェント(ttCRSAgent)およびTimesTenクラスタ・デーモン・モニター(ttCRSDaemon)が開始および登録されます。各ホストには、TimesTenのインストールのために1つのTimesTenクラスタ・エージェントと1つのTimesTenクラスタ・デーモン・モニターがあります。TimesTenクラスタ・エージェントが起動すると、Oracle Clusterwareによって各ホストでのTimesTenデーモンの監視が開始され、障害が発生するとTimesTenデーモンが再起動されます。

TimesTenクラスタ・エージェントおよびTimesTenクラスタ・デーモン・モニターをクラスタ内の特定のホストで起動および登録するには、-hostsコマンドを使用して、クラスタ内の希望のホストを指定し、起動します。

ttCWAdmin -init -hosts "host1, host2"

ノート:

ttDaemonAdmin -stopコマンドを実行する前に、ttCWAdmin -shutdownを使用して、ローカル・ホストでTimesTenクラスタ・エージェントを停止する必要があります。停止しないと、クラスタ・エージェントがTimesTenデーモンを再起動します。

1つのホストでのTimesTenデータベースの作成および移入

アクティブ・データベースを配置するホストにデータベースを作成します。DSNはデータベース・ファイル名と同じである必要があります。

表、AWTキャッシュ・グループおよび読取り専用キャッシュ・グループなどのスキーマ・オブジェクトを作成し、適切なデータを使用して設定します。ただし、キャッシュ・グループを作成する前に、まず、キャッシャ・グループをロードするタイミングを決定する必要があります。

  • 最高のパフォーマンスを達成するには、ttCWAdmin -createコマンドを実行する前に、キャッシュ・グループ表をOracle Database表からロードします。複製がアクティブ・データベース上で実行されてスタンバイ・データベース(およびすべてのサブスクライバ・データベース)が作成される前に初期データをキャッシュ・グループにロードすると、パフォーマンスのオーバーヘッドがより小さくなります。

    このオプションでは、次の手順を実行します。

    1. キャッシュ・エージェントを次のように起動します。

      call ttCacheStart;

      ノート:

      この時点では、ttCWAdmin -startコマンドは実行されていないため、キャッシュ・エージェントを起動できます。ttCWAdmin -startコマンドを実行すると、キャッシュ・エージェントはすでに起動されており、処理を継続することを示すメッセージが表示されます。

    2. LOAD CACHE GROUP文を使用し、Oracle Database表からキャッシュ・グループ表をロードします。

    3. 自動リフレッシュを使用したキャッシュ・グループを使用する場合、ALTER CACHE GROUP SET AUTOREFRESH STATE PAUSED文を使用して、自動リフレッシュ状態をpauseに設定します。自動リフレッシュの状態は、ttCWAdmin -startコマンドの処理の一環として、ONに設定されます。

    次の例は、自動リフレッシュを使用した読取り専用キャッシュ・グループを作成してデータをロードし、その後に自動リフレッシュ状態をpauseに設定する方法を示しています。

    Command> call ttCacheStart;
    Command> CREATE READONLY CACHE GROUP my_cg
      AUTOREFRESH MODE INCREMENTAL INTERVAL 60 SECONDS
      FROM t1 (c1 NUMBER(22) NOT NULL PRIMARY KEY, c2 DATE, c3 VARCHAR(30));
    
    Command> LOAD CACHE GROUP my_cg COMMIT EVERY 100 ROWS PARALLEL 4;
    Command> ALTER CACHE GROUP my_cg SET AUTOREFRESH STATE PAUSED;
  • または、「キャッシュ・グループのロード」の説明に従って、ttCWAdmin -startが完了してからキャッシュ・グループ表をロードします。データは、スタンバイ・データベースとすべてのサブスクライバ・データベースにレプリケートされます。

その他のホストでのシステムDSNファイルの作成

クラスタに含められるすべてのホストで、システムDSN (sys.odbc.ini)ファイルを作成します。

DataStore属性とData Source Nameは、cluster.oracle.iniファイルのエントリ名として同じである必要があります。「cluster.oracle.iniファイルによるOracle Clusterware管理の構成」を参照してください。

cluster.oracle.iniファイルの作成

cluster.oracle.iniファイルをテキスト・ファイルとして作成します。

このファイルの内容と許容可能な場所の詳細は、「cluster.oracle.iniファイルによるOracle Clusterware管理の構成」を参照してください。

仮想IPアドレスを管理するためのOracle Clusterwareリソースの作成

高度な可用性を実現するには、予備のマスター・ホストまたはサブスクライバ・ホストを構成します。これらのホストは、アクティブ・スタンバイ・ペア・レプリケーション・スキームで使用されるマスター・ホストまたはサブスクライバ・ホストが予期しないシャットダウンやリカバリ不能なエラーの発生により置換えが必要になるまで、アイドル状態に維持されます。

これはオプションのステップで、高度な可用性を構成することを決定した場合のみ実行する必要があります。

高度な可用性を実装するために追加のマスター・ホストまたはサブスクライバ・ホストを提供することを計画している場合、仮想IPアドレスを構成する必要があります(アクティブ・スタンバイ・ペアでアクティブに使用されている各マスター・ホストおよび各サブスクライバに1つずつ)。作成する必要がある仮想IPアドレスの数の詳細は、「高度な可用性の構成」を参照してください。

この場合、次の手順を実行します。

  1. Oracle Clusterwareにより管理されているTimesTenレプリケーション環境の複数のホストを管理するためのみに使用される、ネットワーク上の新しい仮想IPアドレスを指定(または作成)します。

  2. 高度な可用性のために、複数のホストの管理に使用するこれらのVIPアドレスをcluster.oracle.iniファイル内で構成します(「高度な可用性の構成」を参照)。

  3. これらのVIPアドレスを管理するOracle Clusterwareリソースを、クラスタ内の任意のホストでrootユーザーとしてttCWAdmin -createVIPsコマンドを実行して作成します。

    たとえば:

    ttCWAdmin -createVIPs -dsn myDSN

    このコマンドで作成されるVIPアドレスの名前は、network_で始まり、その後に、TimesTenインスタンス名、TimesTenインスタンス管理者およびDSNが続きます。一方、Oracle Clusterwareによる使用のために作成されるVIPアドレスは、oraで始まります。

    ノート:

    ttCWAdmin -createコマンドの前に、ttCWAdmin -createVIPsコマンドを実行する必要があります。ttCWAdmin -createコマンドの実行後に、VIPアドレスを高度な可用性のために使用する場合、次の手順を実行する必要があります。

    1. ttCWadmin -dropを実行して、アクティブ・スタンバイ・ペアのレプリケーション・スキームを削除します。

    2. VIPアドレスをcluster.oracle.iniファイルに追加します。

    3. ttCWadmin -createVIPsを実行して、VIPアドレスを管理するためのリソースを作成します。

    4. ttCWAdmin -createを実行して、Oracle Clusterwareにより管理されるアクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。

作成後、VIPアドレスを管理するOracle Clusterwareリソースを削除する唯一の方法は、ttCWAdmin -dropVIPsコマンドを実行することです。仮想IPアドレスを削除する前に、最初にttCWAdmin -dropコマンドを実行する必要があります。

次に、仮想IPアドレスを削除する方法の例を示します。

ttCWAdmin -dropVIPs -dsn myDSN 

ttCWAdmin -dropVIPsコマンドを使用する状況の例は、「クラスタからのアクティブ・スタンバイ・ペアの削除」を参照してください。

アクティブ・スタンバイ・ペアのレプリケーション・スキームの作成

クラスタ内の任意のホストでttCWAdmin -createコマンドを実行して、アクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。

ノート:

cluster.oracle.iniファイルにはttCWAdmin -createコマンドの実行に必要な構成が含まれているため、ttCWAdmin実行可能ファイルがこのファイルにアクセスできることが必要です。「cluster.oracle.iniファイルによるOracle Clusterware管理の構成」を参照してください。

たとえば:

ttCWAdmin -create -dsn myDSN

ttCWAdmin -createコマンドにより、次のプロンプトが表示されます。

  • ADMIN権限を持つTimesTenユーザーの名前を求めるプロンプト。キャッシュ・グループがOracle Clusterwareにより管理されている場合は、TimesTenキャッシュ管理ユーザー名を入力します。

  • 前の手順で入力したユーザー名のTimesTenパスワードを求めるプロンプト。

  • キャッシュ・グループが使用されている場合は、Oracleキャッシュ管理ユーザーのパスワードの入力を求められます。このパスワードは、そのキャッシュ管理ユーザーが接続したときにOraclePWD接続属性で提供されます。

  • 前の手順の情報を暗号化するために使用するランダム文字列を求めるプロンプト。

cluster.oracle.iniファイルとして使用するファイルのパスと名前を指定する場合は、ttCWAdmin -createコマンドの-ttclusteriniオプションを使用します。

ttCWAdmin -create -dsn myDSN -ttclusterini path/to/cluster/mycluster.ini

アクティブ・スタンバイ・ペアを削除するには、ttCWAdmin -dropコマンドを次のように使用します。

ttCWAdmin -drop -dsn myDSN

ノート:

アプリケーションが仮想IPアドレスを使用してTimesTenデータベースに接続する場合、仮想IPアドレスはOracle Clusterwareにより管理されるため、この接続はttCWAdmin -dropコマンドを使用して削除できます。ただし、アプリケーションがホスト名を使用してTimesTenデータベースに接続する場合、接続は削除されません。

ttCWAdmin -createコマンドとttCWAdmin -dropコマンドを使用する順序を示す例は、「クラスタでのアクティブ・スタンバイ・ペアの管理」および「アクティブ・スタンバイ・ペアでの読取り専用サブスクライバの管理」を参照してください。

アクティブ・スタンバイ・ペアおよびアプリケーションの起動

ttCWAdmin -startコマンドを任意のホストで実行して、アクティブ・スタンバイ・ペアのレプリケーション・スキームでクラスタを起動します。

これによって、アクティブ・データベースでキャッシュ・エージェント(まだ起動していない場合)とレプリケーション・エージェントが起動され、複製が実行されてスタンバイ・データベース(およびすべてのサブスクライバ・データベース)が作成され、スタンバイ(およびすべてのサブスクライバ)でキャッシュ・エージェントとレプリケーション・エージェントが起動されます。

-noAppオプションを指定しなかった場合は、アプリケーションも起動されます。-noAppオプションを指定する場合は、-startAppsまたは-stopAppsオプションを使用してアプリケーションを起動または停止できます。

たとえば:

ttCWAdmin -start -dsn myDSN

このコマンドは、アクティブ・スタンバイ・ペアの次のプロセスを開始します。

  • TimesTenデーモン,ttCRSMasterの監視

  • アクティブ・サービスttCRSActiveService

  • スタンバイ・サービスttCRSsubservice

  • アプリケーションAppNameの監視

次の例では、キャッシュ・エージェントおよびレプリケーション・エージェントを起動しますが、-noappオプションが含まれているため、アプリケーションは起動されません。

ttCWAdmin -start -noapp -dsn myDSN

アプリケーションを起動および停止するには、次に示すとおり、ttCWAdmin -startAppsおよび-stopAppsコマンドを使用します。

ttCWAdmin -startapps -dsn myDSN
ttCWAdmin -stopapps -dsn myDSN

TimesTenデータベース・モニター(ttCRSMaster)、キャッシュ・エージェントおよびレプリケーション・エージェントを停止し、アプリケーションを両方のデータベースから切断するには、ttCWAdmin -stopコマンドを実行します。

ttCWAdmin -stop -dsn myDSN

ノート:

アプリケーションが仮想IPアドレスを使用してTimesTenデータベースに接続する場合、仮想IPアドレスはOracle Clusterwareにより管理されるため、この接続はttCWAdmin -stopコマンドを使用して削除できます。ただし、アプリケーションがホスト名を使用してTimesTenデータベースに接続する場合、接続は削除されませんが、スタンバイへのレプリケーションは発生しません。

ttCWAdmin -startコマンドおよび-stopコマンドを使用する順序を示す例は、「クラスタでのアクティブ・スタンバイ・ペアの管理」および「アクティブ・スタンバイ・ペアでの読取り専用サブスクライバの管理」を参照してください。

キャッシュ・グループのロード

アクティブ・スタンバイ・ペアにキャッシュ・グループが含まれており、キャッシュ・グループがまだロードされていない場合は、LOAD CACHE GROUP文を使用してOracleデータベース表からキャッシュ・グループ表をロードします。

「1つのホストでのTimesTenデータベースの作成および移入」を参照してください。

いつキャッシュ・グループをロードするかの詳細は、「1つのホストでのTimesTenデータベースの作成および移入」を参照してください。

クラスタでの複数のアクティブ・スタンバイ・ペアの包含

Oracle Clusterwareを使用してクラスタ内の複数のアクティブ・スタンバイ・ペアを管理する場合、cluster.oracle.iniファイルに追加の構成を含めます。

すべてのTimesTenデータベースが単一ホストの同じTimesTenインスタンスに含まれる場合のみ、Oracle Clusterwareはクラスタ内の1つ以上のアクティブ・スタンバイ・ペアを管理できます。

たとえば、次のcluster.oracle.iniファイルには、同一ホストの2つのアクティブ・スタンバイ・ペアのレプリケーション・スキームの構成情報が含まれます。

ノート:

「Oracle ClusterwareのTimesTen構成属性」を参照してください。

[advancedSubscriberDSN]
MasterHosts=host1,host2,host3
SubscriberHosts=host4, host5
MasterVIP=192.168.1.1, 192.168.1.2
SubscriberVIP=192.168.1.3
VIPInterface=eth0
VIPNetMask=255.255.255.0

[advSub2DSN]
MasterHosts=host1,host2,host3
SubscriberHosts=host4, host5
MasterVIP=192.168.1.4, 192.168.1.5
SubscriberVIP=192.168.1.6
VIPInterface=eth0
VIPNetMask=255.255.255.0

追加のレプリケーション・スキームに対して次の手順を実行します。

  1. データベースを作成および移入します。

  2. 仮想IPアドレスを作成します。ttCWAdmin -createVIPsコマンドを使用します。

  3. アクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。ttCWAdmin -createコマンドを使用します。

  4. アクティブ・スタンバイ・ペアを開始します。ttCWAdmin -startコマンドを使用します。

障害時リカバリ・サブスクライバとしてのOracleデータベースの構成

プライマリ・サイトにリモート障害時リカバリ・サブスクライバとしてOracle Databaseを持つアクティブ・スタンバイ・ペアを作成できます。

「アクティブ・スタンバイ・ペアでの障害時リカバリ・サブスクライバの使用」を参照してください。

Oracle Clusterwareは、アクティブ・スタンバイ・ペアは管理しますが、障害時リカバリ・サブスクライバは管理しません。プライマリ・サイトに障害が発生した場合、ユーザーは、リモート・サイトを使用するよう明示的に切り替える必要があります。

Oracle Clusterwareを使用してリモート障害時リカバリ・サブスクライバを持つアクティブ・スタンバイ・ペアを管理するには、次の手順を実行します。

  1. RepDDLまたはRemoteSubscriberHosts Clusterware属性を使用し、リモート障害時リカバリ・サブスクライバに関する情報を提供します。例:
    [advancedDRsubDSN]
    MasterHosts=host1,host2,host3
    SubscriberHosts=host4, host5
    RemoteSubscriberHosts=host6
    MasterVIP=192.168.1.1, 192.168.1.2
    SubscriberVIP=192.168.1.3
    VIPInterface=eth0
    VIPNetMask=255.255.255.0
    CacheConnect=y
  2. ttCWAdmin -createを使用し、プライマリ・サイトにアクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。この操作では障害時リカバリ・サブスクライバは作成されません。
  3. ttCWAdmin -startを使用し、アクティブ・スタンバイ・ペアのレプリケーション・スキームを開始します。
  4. アクティブ・スタンバイ・ペアによってレプリケートされるキャッシュ・グループをロードします。
  5. 「障害時リカバリ・サブスクライバのロール・アウト」の手順に従って、障害時リカバリ・サブスクライバを設定します。

Oracle Clusterwareで管理されない読取り専用サブスクライバの構成

Oracle Clusterwareによって管理されていない読取り専用のTimesTenサブスクライバ・データベースを含めることができます。

次のタスクを実行します:

  1. cluster.oracle.iniファイルにRemoteSubscriberHosts Clusterware属性を含めます。例:
    [advancedROsubDSN]
    MasterHosts=host1,host2,host3
    RemoteSubscriberHosts=host6
    MasterVIP=192.168.1.1, 192.168.1.2
    SubscriberVIP=192.168.1.3
    VIPInterface=eth0
    VIPNetMask=255.255.255.0
  2. ttCWAdmin -createを使用し、プライマリ・サイトにアクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。
  3. ttCWAdmin -startを使用し、アクティブ・スタンバイ・ペアのレプリケーション・スキームを開始します。これによって、読取り専用サブスクライバは作成されません。
  4. ttRepStateGet組込みプロシージャを使用して、スタンバイ・データベースの状態がSTANDBYであることを確認します。
  5. サブスクライバ・ホストで、ttRepAdmin -duplicateオプションを使用して、スタンバイ・データベースを読取り専用サブスクライバに複製します。「データベースの複製」を参照してください。
  6. サブスクライバ・ホストでレプリケーション・エージェントを起動します。