クラスタウェア管理

TimesTenと併用した場合の、クラスタウェアを管理するためのいくつかの手順を示します。

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

Oracle Clusterware使用時のユーザー名やパスワードの変更

ttCWAdmin -createコマンドでアクティブ・スタンバイ・ペアのレプリケーション・スキームを作成する場合、TimesTen環境を管理するために必要なユーザー名とパスワードを求めるプロンプトがOracle Clusterwareで表示されます。

Oracle Clusterwareはこれらのユーザー名とパスワードを保存します。ユーザー名やパスワードを変更した後、ttCWAdmin -reauthenticateコマンドを実行して、これらの新しいユーザー名とパスワードをOracle Clusterwareが格納できるようにする必要があります。

  1. DDLReplicationLevel接続属性が3に設定されていることを確認します。この値であれば、アクティブ・データベース上のユーザー名やパスワードへの変更がスタンバイ・データベースにレプリケートされます。
  2. 「レプリケーションで使用されるユーザー名またはパスワードの変更」で説明したのと同じ方法(および同じ制限)を使用してユーザー名やパスワードを変更します。
  3. アクティブ・データベースで、スタンバイ・データベースのDSNおよびホストを使用してttRepSubscriberWait組込みプロシージャ(またはttRepAdmin -waitコマンド)をコールし、すべてのパスワード変更がスタンバイ・データベースにレプリケートされていることを確認します。たとえば、すべてのトランザクションがhost2ホストのmaster2スタンバイ・データベースレプリケートされるようにするには、次のようにします。
    CALL ttRepSubscriberWait(NULL, NULL, 'master2', 'host2', -1);
  4. ttCWAdmin -reauthenticateコマンドを実行して、Oracle Clusterwareに新しいパスワードを格納します。
    ttCWAdmin -reauthenticate -dsn myDSN

    このコマンドを実行すると、ttCWAdmin -createコマンド(これについては、「アクティブ・スタンバイ・ペアのレプリケーション・スキームの作成」を参照)で要求されるのと同じ情報を求めるプロンプトが表示されます。

クラスタでのホストの管理

次の各項では、クラスタ使用時のホストの追加方法または削除方法を説明します。

クラスタへのホストの追加

ホストを追加するには、クラスタが高度な可用性用に構成されている必要があります。

この項の例では、advancedSubscriberDSNを使用しています。

クラスタに2つのスペア・マスター・ホストを追加するには、次のようなコマンドを入力します。

ttCWAdmin -addMasterHosts -hosts "host8,host9" -dsn advancedSubscriberDSN

クラスタに1つのスペア・サブスクライバ・ホストを追加するには、次のようなコマンドを入力します。

ttCWAdmin -addSubscriberHosts -hosts "subhost1" -dsn advancedSubscriberDSN

クラスタからのホストの削除

ホストをクラスタから削除するには、クラスタが高度な可用性用に構成されている必要があります。

マスター・ホストの1つを削除するには、MasterHostsに3つ以上のホストがリストされている必要があります。サブスクライバ・ホストの1つを削除するには、サブスクライバ・データベースの数よりも少なくとも1つ多いホストがSubscriberHostsにリストされている必要があります。

この項の例では、advancedSubscriberDSNを使用しています。

クラスタから2つのスペア・マスター・ホストを削除するには、次のようなコマンドを入力します。

ttCWAdmin -delMasterHosts "host8,host9" -dsn advancedSubscriberDSN

クラスタから1つのスペア・サブスクライバ・ホストを削除するには、次のようなコマンドを入力します。

ttCWAdmin -delSubscriberHosts "subhost1" -dsn advancedSubscriberDSN

クラスタでのアクティブ・スタンバイ・ペアの管理

次の各項では、クラスタに対するアクティブ・スタンバイ・ペアの追加または削除の方法を説明します。

クラスタへのアクティブ・スタンバイ・ペアの追加

すでにアクティブ・スタンバイ・ペアを管理しているクラスタにアクティブ・スタンバイ・ペア(サブスクライバありまたはなし)を追加できます。

  1. 最初にアクティブ・データベースを配置するホストに、データベースを作成して移入を行います。「1つのホストでのTimesTenデータベースの作成および移入」を参照してください。
  2. cluster.oracle.iniファイルを変更します。この例では、advancedSubscriberDSNの構成がすでに含まれたcluster.oracle.iniファイルに、advSub2DSNを追加します。新しいアクティブ・スタンバイ・ペアは、元のアクティブ・スタンバイ・ペアとは異なるホストにあります。
    [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=host6,host7,host8
    SubscriberHosts=host9, host10
    MasterVIP=192.168.1.4, 192.168.1.5
    SubscriberVIP=192.168.1.6
    VIPInterface=eth0
    VIPNetMask=255.255.255.0
  3. rootユーザーとして、新しい仮想IPアドレスを作成します。
    ttCWAdmin -createVIPs -dsn advSub2DSN
  4. 新しいアクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。
    ttCWAdmin -create -dsn advSub2DSN
  5. 新しいアクティブ・スタンバイ・ペアのレプリケーション・スキームを開始します。
    ttCWAdmin -start -dsn advSub2DSN

クラスタからのアクティブ・スタンバイ・ペアの削除

クラスタからアクティブ・スタンバイ・ペア(サブスクライバありまたはなし)を削除できます。

  1. アクティブ・スタンバイ・ペアのすべてのデータベースで、レプリケーション・エージェントを停止します。この例では、「クラスタへのアクティブ・スタンバイ・ペアの追加」で追加したadvSub2DSNを使用します。
    ttCWAdmin -stop -dsn advSub2DSN
  2. アクティブ・スタンバイのレプリケーション・スキームを削除します。
    ttCWAdmin -drop -dsn advSub2DSN
  3. アクティブ・スタンバイ・ペアの仮想IPアドレスを削除します。
    ttCWAdmin -dropVIPs -dsn advSub2DSN
  4. cluster.oracle.iniファイルを変更します(オプション)。advSub2DSNのエントリを削除します。
  5. データベースを破棄する場合、このアクティブ・スタンバイ・ペアの構成に含まれる各ホストにログオンし、ttDestroyユーティリティを使用します。
    ttDestroy advSub2DSN

    『Oracle TimesTen In-Memory Databaseリファレンス』ttDestroyを参照してください。

アクティブ・スタンバイ・ペアでの読取り専用サブスクライバの管理

次の各項では、Oracle Clusterwareで管理されるアクティブ・スタンバイ・ペア内の読取り専用サブスクライバの管理方法を説明します。

Oracle Clusterwareによって管理される読取り専用サブスクライバの追加

Oracle Clusterwareによって管理される読取り専用サブスクライバをアクティブ・スタンバイ・ペアのレプリケーション・スキームに追加するには、次のステップを実行します。

  1. すべてのデータベースでレプリケーション・エージェントを停止します。この例では、すでにサブスクライバが含まれており、高度な可用性が構成されているadvancedSubscriberDSNを使用します。
    ttCWAdmin -stop -dsn advancedSubscriberDSN
  2. アクティブ・スタンバイ・ペアを削除します。
    ttCWAdmin -drop -dsn advancedSubscriberDSN
  3. cluster.oracle.iniファイルを変更します。
    • SubscriberHosts属性にサブスクライバを追加します。

    • クラスタが高度な可用性用に構成されている場合、仮想IPアドレスをSubscriberVIP属性に追加します。

    これらの属性を使用する例は、「高度な可用性の構成」を参照してください。

  4. アクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。
    ttCWAdmin -create -dsn advancedSubscriberDSN
  5. アクティブ・スタンバイ・ペアのレプリケーション・スキームを開始します。
    ttCWAdmin -start -dsn advancedSubscriberDSN

Oracle Clusterwareによって管理される読取り専用サブスクライバの削除

Oracle Clusterwareによって管理される読取り専用サブスクライバをアクティブ・スタンバイ・ペアから削除するには、次のステップを実行します。

  1. すべてのデータベースでレプリケーション・エージェントを停止します。この例では、サブスクライバが含まれており、高度な可用性が構成されているadvancedSubscriberDSNを使用します。
    ttCWAdmin -stop -dsn advancedSubscriberDSN
  2. アクティブ・スタンバイ・ペアを削除します。
    ttCWAdmin -drop -dsn advancedSubscriberDSN
  3. cluster.oracle.iniファイルを変更します。
    • SubscriberHosts属性からサブスクライバを削除するか、アクティブ・スタンバイ・ペアにサブスクライバが残っていない場合は属性全体を削除します。

    • SubscriberVIP属性から仮想IPアドレスを削除するか、アクティブ・スタンバイ・ペアにサブスクライバが残っていない場合は属性全体を削除します。

  4. アクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。
    ttCWAdmin -create -dsn advancedSubscriberDSN
  5. アクティブ・スタンバイ・ペアのレプリケーション・スキームを開始します。
    ttCWAdmin -start -dsn advancedSubscriberDSN

Oracle Clusterwareで管理されない読取り専用サブスクライバの追加または削除

Oracle Clusterwareによって管理されている既存のアクティブ・スタンバイ・ペアのレプリケーション・スキームに、Oracle Clusterwareによって管理されていない読取り専用サブスクライバを追加または削除できます。

ttCWAdmin -beginAlterSchemaコマンドを使用すると、レプリケーション・スキームを削除および再作成せずに、サブスクライバを追加できます。サブスクライバはOracle Clusterware管理用に設定された構成の一部ではないため、Oracle Clusterwareでは管理されません。

次の手順を実行します:

  1. ttCWAdmin -beginAlterSchemaコマンドを実行して、アクティブ・データベースとスタンバイ・データベースでレプリケーション・エージェントを停止します。
  2. ttIsqlを使用してアクティブ・データベースに接続し、ALTER ACTIVE STANDBY PAIR文を使用して、レプリケーション・スキームにサブスクライバを追加、または削除します。たとえば、サブスクライバを追加するには次のコマンドを実行します。
    ALTER ACTIVE STANDBY PAIR ADD SUBSCRIBER ROsubDSN ON host6;

    サブスクライバを削除するには、次のコマンドを実行します。

    ALTER ACTIVE STANDBY PAIR DROP SUBSCRIBER ROsubDSN ON host6;
  3. 変更したレプリケーション・スキームを登録し、レプリケーションを開始するttCWAdmin -endAlterSchemaコマンドを実行します。サブスクライバを追加する場合は、これにより、スタンバイ・データベースへの複製も開始されます。
  4. ttIsql repschemesコマンドを入力して、読取り専用サブスクライバがレプリケーション・スキームに追加、または削除されていることを確認します。
  5. ttRepStateGet組込みプロシージャを使用して、スタンバイ・データベースの状態がSTANDBYであることを確認します。
  6. サブスクライバを追加した場合は、サブスクライバ・ホストでttRepAdmin -duplicateを実行して、スタンバイ・データベースを読取り専用サブスクライバに複製します。「データベースの複製」を参照してください。
  7. サブスクライバを追加した場合は、サブスクライバ・エージェントでレプリケーション・エージェントを起動します。

サブスクライバを追加した場合は、「Oracle Clusterwareで管理されない読取り専用サブスクライバの構成」のステップ1の説明に従って、cluster.oracle.iniファイルに読取り専用サブスクライバのOracle Clusterware属性RemoteSubscriberHostsを追加することで、クラスタが削除されて再作成された場合に読取り専用サブスクライバが確実に含まれるようにします。また、サブスクライバを削除した場合は、cluster.oracle.iniファイルから、削除したサブスクライバのOracle Clusterware属性RemoteSubscriberHostsを削除します(構成されている場合)。

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

次のタスクを実行して、Oracle Clusterwareによって管理されない読取り専用サブスクライバを破棄および再作成します。

  1. サブスクライバ・ホストでレプリケーション・エージェントを停止します。
  2. ttDestroyユーティリティを使用して、サブスクライバ・データベースを破棄します。
  3. サブスクライバ・ホストで、ttRepAdmin -duplicateを使用して、スタンバイ・データベースを読取り専用サブスクライバに複製します。「データベースの複製」を参照してください。

マスター・データベースの役割の入替え

フェイルオーバー後、アクティブ・データベースおよびスタンバイ・データベースはフェイルオーバー前とは異なるホストに配置されます。元の構成をリストアするには、ttCWAdminユーティリティの-switchオプションを使用します。

また、必要に応じて、-timeoutオプションと-switchオプションを使用して、アクティブおよびスタンバイ・データベースの切替えが完了するまで待機するタイムアウトの秒数を設定できます。

たとえば:

ttCWAdmin -switch -dsn basicDSN

-switchオプションを使用する前に、オープン・トランザクションが存在しないことを確認してください。オープン・トランザクションが存在する場合、コマンドは失敗します。

ノート:

『Oracle TimesTen In-Memory Databaseリファレンス』ttCWAdminを参照してください。

図8-6に、アクティブ・スタンバイ・ペアのホストを示します。アクティブ・データベースはホストAに存在し、スタンバイ・データベースはホストBに存在します。

図8-6 アクティブ・スタンバイ・ペアのホスト

図8-6の説明が続きます。
図8-6「アクティブ・スタンバイ・ペアのホスト」の説明

ttCWAdmin -switchコマンドによって次のタスクが実行されます。

  • ホストA (アクティブ・マスター)でTimesTenクラスタ・エージェント(ttCRSAgent)を非アクティブにする。

  • ホストAでTimesTenデータベース・モニター(ttCRSmaster)を無効にする。

  • ホストAで組込みプロシージャttRepSubscriberWaitttRepStopおよびttRepDeactivateをコールする。

  • ホストAでアクティブ・サービス(ttCRSActiveService)を停止し、Oracle ClusterwareのCRSDプロセスに失敗イベントをレポートする。

  • ホストAで監視を有効にし、アクティブ・サービスをホストBに移動する。

  • ホストAでレプリケーション・エージェントを開始し、ホストBでスタンバイ・サービス(ttCRSsubservice)を停止して、ホストBでOracle ClusterwareのCRSDプロセスに失敗イベントをレポートする。

  • ホストAでスタンバイ・サービス(ttCRSsubservice)を開始する。

接続属性値の変更

サブスクライバを持つアクティブ・スタンバイ・ペアの間で接続属性を変更した場合、この構成に含まれるすべてのホストで接続属性を変更する必要があります。

ノート:

DATASTORE接続属性は、データ・ストアの作成時にのみ設定が許可されているため、すべて変更できません。たとえば、次のプロシージャはPermSize値を変更するために使用できます。

ttCWAdmin -beginAlterSchemaおよび-endAlterSchemaコマンドを使用すると、アクティブおよびスタンバイ・データベースとすべてのサブスクライバの接続属性値を簡単に変更できます。

  • 変更の準備のため、ttCWAdmin -beginAlterSchemaコマンドを使用して、Oracle Clusterware管理を一時停止し、アクティブおよびスタンバイ・データベースとすべてのサブスクライバ・データベースのレプリケーション・エージェントを停止します。

  • すべての変更が完了したら、ttCWAdmin -endAlterSchemaコマンドを使用して、Oracle Clusterware管理を再開し、アクティブおよびスタンバイ・データベースとすべてのサブスクライバ・データベースのすべてのレプリケーション・エージェントを再起動します。

Oracle Clusterwareを使用している場合にアクティブ・スタンバイ・ペアの接続属性を変更するには、次のタスクを実行します。

  1. ttCWAdmin -beginAlterSchemaコマンドを使用して、Oracle Clusterwareを一時停止し、アクティブおよびスタンバイ・データベースのすべてのレプリケーション・エージェントを停止します。

    アクティブ・データベースはリクエストと更新を引き続き受け付けますが、レプリケーション・エージェントが再起動されるまでは、スタンバイ・データベースとすべてのサブスクライバにはいかなる変更も伝播されません。

    また、ttCWAdmin -beginAlterSchemaコマンドは、スタンバイ・データベースとすべてのサブスクライバ・データベースのRAMポリシーを一時的にInUse with RamGraceに変更します。このポリシーにより、TimesTenがこれらのデータベースをアンロードできるようにするための60秒の猶予期間が設定されます。スタンバイおよびサブスクライバ・データベースがメモリーからアンロードされると、これらのデータベースの接続属性が変更可能になります。

    ttCWAdmin -beginAlterSchema -dsn advancedDSN
  2. すべてのアプリケーション接続を切断し、(RAMポリシーに基づいて)スタンバイおよびサブスクライバ・データベースがメモリーからアンロードされるのを待機します。

    スタンバイおよびサブスクライバ・データベースがメモリーからアンロードされたら、それぞれのsys.odbc.iniファイル内のスタンバイ・データベースおよびすべてのサブスクライバ・データベースのホストで、PermSizeなどの任意の接続属性を変更します。

  3. ttCWAdmin -endAlterSchemaコマンドを使用して、Oracle Clusterwareを再開し、アクティブおよびスタンバイ・データベースのすべてのレプリケーション・エージェントを再起動します。各TimesTenデータベースの構成済のRAMポリシーは、alwaysに戻されます。アクティブ・データベースは、スタンバイ・データベースとサブスクライバが停止していた間に発生したすべてのトランザクションを伝播します。

    ttCWAdmin -endAlterSchema -dsn advancedDSN

    ノート:

    次のステップを実行する前に、アクティブ・データベースからスタンバイ・データベースとすべてのサブスクライバにすべての変更が伝播されるまで、しばらく待機します。

    接続属性をまだ変更していないホストは、アクティブ・データベースのみです。このホストで接続属性を変更できるようにするため、アクティブ・データベースとスタンバイ・データベースを切り替えます。

  4. すべてのアプリケーション・ワークロードを一時停止して、アクティブ・データベースのすべてのアプリケーションを切断します。

  5. ttCWAdmin -switchコマンドを使用して、アクティブ・データベースとスタンバイ・データベースを切り替えます。

    ttCWAdmin -switch -dsn advancedDSN

    ノート:

    「マスター・データベースの役割の入替え」を参照してください。

  6. ttCWAdmin -beginAlterSchemaコマンドを使用して、Oracle Clusterwareを一時停止し、すべてのデータベースのすべてのレプリケーション・エージェントを停止します。

    新しいアクティブ・データベースは引き続きリクエストと更新を受け付けますが、新しいスタンバイ・データベースとすべてのサブスクライバにはいかなる変更も伝播されません。

    新しいスタンバイ・データベース(およびすべてのサブスクライバ・データベース)のRAMポリシーがinUse with RamGraceに変更されます。このポリシーにより、TimesTenがこれらのデータベースをアンロードできるようにするための60秒の猶予期間が設定されます。

    ttCWAdmin -beginAlterSchema -dsn advancedDSN
  7. 新しいスタンバイ・データベースがメモリーからアンロードされるを待機します。アンロードが完了したら、sys.odbc.iniファイルに含まれる新しいスタンバイ・データベースで、同じ接続属性(PermSizeなど)を変更します。これで、すべてのホストで接続属性が変更されました。

  8. ttCWAdmin -endAlterSchemaコマンドを実行して、Oracle Clusterware管理を再開し、アクティブおよびスタンバイ・データベースのレプリケーション・エージェントを再起動します。構成済のRAMポリシーはalwaysに戻されます。

    ttCWAdmin -endAlterSchema -dsn advancedDSN
  9. すべてのアプリケーション・ワークロードを一時停止して、アクティブ・データベースのすべてのアプリケーションを切断します。

  10. 必要であれば、ttCWAdmin -switchコマンドを使用してアクティブ・データベースとスタンバイ・データベースを切り替え、アクティブ・スタンバイ・ペアを元の構成に戻します。

    ttCWAdmin -switch -dsn advancedDSN

TimesTenデータベースのRAMポリシーの管理

Oracle ClusterwareでTimesTenデータベースを管理する場合、TimesTenデータベースのRAMポリシーはデフォルトでalwaysに設定されています。ただし、Oracle Clusterware管理を停止すると、TimesTenデータベースのRAMポリシーはinUseに設定されます。

TimesTenの管理にOracle Clusterwareを今後使用しない場合は、ご使用の環境に合ったTimesTen RAMポリシーを設定する必要があります。一般的に推奨される設定はmanualです。

『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』RAMポリシーの指定を参照してください。

スキーマの変更

Oracle Clusterwareを使用してアクティブ・スタンバイ・ペアを管理する場合、Oracle Clusterwareですべてのレプリケーション・エージェントを起動および停止する必要があることを除いて、通常のレプリケーション環境と同様に必要に応じてDDL文を実行してスキーマを変更できます。

したがって、スキーマを変更する際には次のことに気をつけてください。

  • 自動的にレプリケートされるオブジェクトに対するDDL文については、レプリケーション・エージェントを停止する必要はありません。この場合、DDL文が自動的に伝播され、スタンバイ・データベースとすべてのサブスクライバに適用されるため、それ以上のアクションは必要ありません。DDLReplicationLevel接続属性によって、レプリケートされるDDL文を制御します。

  • レプリケーション・スキームに含まれているオブジェクトだが、これらのオブジェクトに対して処理されたDDL文がレプリケートされない場合は(これらのオブジェクトは「アクティブ・スタンバイ・ペアに対するその他の変更」内でリスト)、アクティブ・データベースでOracle ClusterwareのttCWAdmin -beginAlterSchemaコマンドを実行することで、Oracle Clusterware管理をすべて一時停止しレプリケーション・スキーム内の各ノードでレプリケーション・エージェントを停止します。その後、レプリケーション・スキームのアクティブ・データベースでDDL文を実行します。最後に、アクティブ・データベースでOracle ClusterwareのttCWAdmin -endAlterSchemaコマンドを実行して、すべてのレプリケーション・エージェントを再起動します。

    これらのオブジェクトはレプリケーション・スキームに含まれますが、DDL文がレプリケートされないため、ttCWAdmin -endAlterSchemaコマンドの実行後に複製が行われ、これらのスキーマ変更がスタンバイ・データベースとすべてのサブスクライバに伝播されます。これは、複製がスキーマの変更を伝播するために使用される唯一のシナリオです。

    手順については、「Oracle Clusterwareのスキーマ変更の簡略化」を参照してください。

  • 自動的にレプリケートされない、レプリケーション・スキームに含まれないオブジェクトに対するDDL文については、アクティブ・データベースでOracle ClusterwareのttCWAdmin -beginAlterSchemaコマンドを実行して、Oracle Clusterware管理をすべて一時停止し、すべてのノード上のレプリケーション・エージェントを停止します。その後、「アクティブ・スタンバイ・ペアでのDDL変更」で説明されているように、手動でこれらのDDL文を実行することですべてのノードを同期できます。最後に、アクティブ・データベースでOracle ClusterwareのttCWAdmin -endAlterSchemaコマンドを実行して、すべてのレプリケーション・エージェントを再起動します。

    手順については、「Oracle Clusterwareのスキーマ変更の簡略化」を参照してください。

ノート:

「アクティブ・スタンバイ・ペアでのDDL変更」「アクティブ・スタンバイ・ペアに対するその他の変更」の項で、アクティブ・スタンバイ・ペアの場合にどのDDL文が自動的にレプリケートされるか、およびレプリケートされないかを説明しています。これらの項では、どのオブジェクトがレプリケーション・スキームの一部かも説明しています。

Oracle Clusterwareのスキーマ変更の簡略化

ttCWAdmin -beginAlterSchemaおよび-endAlterSchemaコマンドを使用すると、アクティブおよびスタンバイ・データベースでのスキーマ変更が簡単にできます。

  • スキーマ変更の準備のため、ttCWAdmin -beginAlterSchemaコマンドを使用して、Oracle Clusterware管理を一時停止し、アクティブ・データベースとスタンバイ・データベースの両方でレプリケーション・エージェントを停止します。

  • すべてのスキーマ変更が完了した後、ttCWAdmin -endAlterSchemaコマンドを実行します。レプリケーション・スキームに含まれるがオブジェクトに対して実行されるDDL文が自動的にレプリケートされないオブジェクトの場合、ttCWAdmin -endAlterSchemaコマンドの実行後に複製が行われ、これらのスキーマ変更のみがスタンバイ・データベースとすべてのサブスクライバに伝播されます。このコマンドは、変更されたレプリケーション・スキームを登録し、アクティブおよびスタンバイ・データベースのレプリケーション・エージェントを再起動し、Oracle Clusterwareの制御を回復します。

Oracle Clusterwareの使用時にアクティブ・スタンバイ・ペアのスキーマを変更するには、次のタスクを実行します。

  1. Oracle Clusterwareを一時停止し、アクティブ・データベースとスタンバイ・データベースの両方でレプリケーション・エージェントを停止します。

    ttCWAdmin -beginAlterSchema -dsn advancedDSN
  2. 必要なスキーマ変更を行います。

    また、オブジェクトに対するDDLがレプリケートされないオブジェクトを作成、変更または削除する場合は、レプリケーション・エージェントが非アクティブになっている間に、スタンバイ・データベースとサブスクライバで同じオブジェクトを手動で作成、変更または削除して、同じオブジェクトがレプリケーション・スキーム内のすべてのデータベースに存在するようにする必要があります。たとえば、アクティブ・データベースでマテリアライズド・ビューを作成する場合は、スタンバイ・データベースとサブスクライバ・データベースでも同時にそのマテリアライズド・ビューを作成します。

  3. レプリケーション・スキームの一部であるが、自動的にはレプリケートされないオブジェクト(順序など)をアクティブ・スタンバイ・ペアのレプリケーション・スキームに含める場合は、アクティブ・スタンバイ・ペアを変更します。

    ALTER ACTIVE STANDBY PAIR INCLUDE samplesequence;
  4. オブジェクトがキャッシュ・グループである場合の、キャッシュ・グループを作成、変更または削除する手順については、「キャッシュ・グループに対するスキーマ変更」を参照してください。

  5. ttCWAdmin -endAlterSchemaコマンドを実行して、Oracle Clusterwareを再開し、アクティブおよびスタンバイ・データベース上のレプリケーション・エージェントを再起動します。レプリケーション・スキームに含まれるがオブジェクトに対して実行されるDDL文が自動的にレプリケートされないオブジェクトを変更した場合は、ttCWAdmin -endAlterSchemaコマンドの実行後に複製が行われ、これらのスキーマ変更のみがスタンバイ・データベースとすべてのサブスクライバに伝播されます。

    ttCWAdmin -endAlterSchema -dsn advancedDSN

キャッシュ・グループに対するスキーマ変更

ttCWAdmin -beginAlterSchemaおよび-endAlterSchemaコマンドを使用すると、Oracle Clusterware内のキャッシュ・グループに対するスキーマ変更が簡単にできます。

キャッシュ・グループの追加

アクティブ・スタンバイ・ペアのアクティブ・データベースにキャッシュ・グループを追加できます。

アクティブ・スタンバイ・ペアのアクティブ・データベースについて、次のステップを実行します。

  1. ttCWAdmin -beginAlterSchemaコマンドを使用して、Oracle Clusterware管理を一時停止し、レプリケーション・エージェントを停止します。
    ttCWAdmin -beginAlterSchema -dsn advancedDSN
  2. キャッシュ・グループを作成します。
  3. キャッシュ・グループが読取り専用の場合は、読取り専用キャッシュ・グループを含めるようにアクティブ・スタンバイ・ペアを変更します。
    ALTER ACTIVE STANDBY PAIR INCLUDE CACHE GROUP samplecachegroup;
  4. ttCWAdmin -endAlterSchemaコマンドを実行してOracle Clusterwareを再開し、レプリケーション・エージェントを起動します。キャッシュ・グループ・オブジェクトを追加したので、複製が行われ、これらのスキーマ変更がスタンバイ・データベースに伝播されます。
    ttCWAdmin -endAlterSchema -dsn advancedDSN

キャッシュ・グループを作成すると、いつでもそのキャッシュ・グループをロードすることができます。

キャッシュ・グループの削除

クラスタウェア環境内のキャッシュ・グループを削除するには、いくつかの手順が必要です。

キャッシュ・グループを削除するには、次のステップを実行します。

  1. キャッシュ・グループをアンロードします。
    UNLOAD CACHE GROUP samplecachegroup;
  2. アクティブ・スタンバイ・ペアのアクティブ・データベースで、キャッシュ・グループの削除を有効にします。
    ttCWAdmin -beginAlterSchema -dsn advancedDSN
  3. キャッシュ・グループが読取り専用の場合は、読取り専用キャッシュ・グループを除外するようにアクティブ・スタンバイ・ペアを変更します。
    ALTER ACTIVE STANDBY PAIR EXCLUDE CACHE GROUP samplecachegroup;
  4. キャッシュ・グループが読取り専用の場合は、自動リフレッシュの状態をPAUSEDに設定します。
    ALTER CACHE GROUP samplecachegroup SET AUTOREFRESH STATE PAUSED;
    
  5. キャッシュ・グループを削除します。
    DROP CACHE GROUP samplecachegroup;
  6. キャッシュ・グループが読取り専用キャッシュ・グループだった場合は、Oracleデータベースでキャッシュ管理ユーザーとしてSQL*Plusスクリプトtimesten_home/install/oraclescripts/cacheCleanUp.sqlを実行して、自動リフレッシュ操作の実装に使用されるOracleデータベース・オブジェクトを削除します。
  7. ttCWAdmin -endAlterSchemaコマンドを実行してOracle Clusterwareを再開し、レプリケーション・エージェントを再起動します。キャッシュ・グループ・オブジェクトを削除したので、複製が行われ、これらのスキーマ変更がスタンバイ・データベースに伝播されます。
    ttCWAdmin -endAlterSchema -dsn advancedDSN

既存のキャッシュ・グループの変更

既存のキャッシュ・グループの変更には、キャッシュ・グループの削除と追加が伴います。

既存のキャッシュ・グループを変更するには、まず「キャッシュ・グループの削除」の説明に従って既存のキャッシュ・グループを削除します。その後、「キャッシュ・グループの追加」の説明に従って、必要な変更を加えたキャッシュ・グループを追加します。

異なるホストへのデータベースの移動

クラスタで高度な可用性が構成されている場合、ttCWAdmin -relocateコマンドを使用して、ローカル・ホストから、cluster.oracle.iniファイルのMasterHosts属性で指定されている次に利用可能なスペア・ホストにデータベースを移動できます。

ローカル・ホストのデータベースがアクティブな役割を持っている場合、-relocateオプションでは、まず役割の入替えが行われます。したがって、新しく移行されたアクティブ・データベースがスタンバイ・データベースになり、元のスタンバイ・データベースが新しいアクティブ・データベースになります。

ttCWAdmin -relocateコマンドは、ホストをオフラインにすることを決定した場合にデータベースを再配置するのに役立ちます。このコマンドを使用する前に、オープン・トランザクションが存在しないことを確認してください。

ttCWAdmin -relocateコマンドで役割の切替えが必要な場合は、-timeoutオプションと-relocateオプションを使用し、役割の切替えが完了するまで待機するタイムアウトの秒数を設定できます。

たとえば:

ttCWAdmin -relocate -dsn advancedDSN

ノート:

『Oracle TimesTen In-Memory Databaseリファレンス』ttCWAdminを参照してください。

Oracle Clusterwareソフトウェアのローリング・アップグレードの実行

Oracle Clusterwareソフトウェアのローリング・アップグレードを実行するための方法を説明します。

Oracle Databaseドキュメントの『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。

Oracle Clusterware使用時のTimesTenのアップグレード

Oracle Clusterware使用時にすべてのホストでTimesTenをアップグレードする方法について説明します。

ホスト・メンテナンスまたはネットワーク・メンテナンスの実行

ホストまたはネットワークのメンテナンスを実行する必要がある場合は、Oracle Clusterwareリソースを停止し、クラスタ内のTimesTenデータベースを1つ以上停止する必要があります。

データベースのデータの一貫性を維持するため、トランザクションが失われないように、アクティブ・スタンバイ・ペアに含まれるTimesTenデータベースを適切に停止する必要があります。

メンテナンスの実行中に行う決定の1つに、Oracle Clusterwareを有効なままにするか無効にするかがあります。Oracle Clusterwareを有効なままにすると、システムの再起動後に、すべてのOracle ClusterwareおよびTimesTenプロセスが自動的に再起動します。Oracle Clusterwareを無効にすると、これらのプロセスはすべて自動的には再起動しません。

クラスタ内のすべてのホストで同時にメンテナンスを実行する

クラスタ内のすべてのホストでのメンテナンスの実行中に停止時間を最小限に抑えるためのタスクを実行できます。

ノート:

アクティブ、スタンバイおよび1つ以上のサブスクライバ・データベースがある場合は、指定されたデータベースを含む各ホストで、これらのタスクの一部を実行する必要があります。

  1. アクティブ、スタンバイおよびサブスクライバ・データベースを含む各ホストで、rootまたはOS管理者として、Oracle Clusterwareのcrsctl stop crsコマンドを実行して、Oracle Clusterwareとレプリケーション・エージェントを停止します。

    アクティブ・データベースが停止しているため、レプリケーション・エージェントが再起動されるまで、すべてのリクエストが拒否されます。

    crsctl stop crs

    crsctl stop crsコマンドは、アクティブ、スタンバイおよびすべてのサブスクライバ・データベースのRAMポリシーを一時的にinUse with RamGraceに変更します。このポリシーにより、TimesTenがこれらのデータベースをアンロードできるようにするための60秒の猶予期間が設定されます。

  2. 必要に応じて、クラスタ内のすべてのホストでrootまたはOS管理者としてOracle Clusterwareのcrsctl disable crsコマンドを実行することにより、サーバー起動時にOracle ClusterwareおよびTimesTenが自動起動されるのを防止できます。

    crsctl disable crs
  3. すべてのアプリケーション接続を切断し、アクティブ、スタンバイおよびサブスクライバ・データベースがメモリーからアンロードされるのを待機します。

  4. アクティブ・スタンバイ・ペアの各TimesTenデータベースを正常に停止するには、アクティブ、スタンバイおよびサブスクライバ・データベースを含む各ホストで次のコマンドを実行します。

    ttDaemonAdmin -stop

    ノート:

    TimesTenメイン・デーモン・プロセスは同じTimesTenインストールに属するすべてのデータベースを管理しているので、前述のコマンドを実行する前にすべてのデータベースを切断してください。

    『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』TimesTenアプリケーションの停止を参照してください。

  5. アクティブ、スタンバイおよびサブスクライバ・データベースを含むホストでメンテナンスを実行します。

  6. メンテナンスが完了したら、次のいずれかを実行します。

    • Oracle ClusterwareおよびTimesTenの自動起動を無効にしなかった場合は、すべてのホストを再起動してから、Oracle ClusterwareおよびTimesTenプロセスが実行されるまで待機します(これには数分かかる場合があります)。

    • 再起動後のOracle ClusterwareおよびTimesTenの自動起動を無効にした場合、または、自動起動が有効になっているがメンテナンス後にホストを再起動していない場合は、クラスタ内の各ホストで次のタスクを実行します。

      1. 次のコマンドを実行してTimesTenデータベースを起動します。

        ttDaemonAdmin -start
      2. rootまたはOS管理者としてcrsctl enable crsを実行して、サーバー起動時のOracle Clusterwareの自動起動を有効にします。

        crsctl enable crs
      3. rootまたはOS管理者としてcrsctl start crsを実行して、ローカル・サーバーのOracle Clusterwareを起動します。次のステップに進む前に、すべてのOracle Clusterwareリソースが稼働するまで待機します。

        crsctl start crs

    すべてが稼働したら、アプリケーションを再接続できます。アクティブは、スタンバイおよびサブスクライバ・データベースへのすべての更新のレプリケートを開始します。構成済のRAMポリシーはalwaysに戻されます。

リクエストを受け付けながらメンテナンスを実行する

クラスタ内のすべてのホストでのメンテナンスの実行中に停止時間を最小限に抑える方法について説明します。

ノート:

アクティブ、スタンバイおよび1つ以上のサブスクライバ・データベースがある場合は、指定されたデータベースを含む各ホストで、これらのタスクの一部を実行する必要があります。

  1. スタンバイおよびサブスクライバ・データベースを含む各ホストで、rootまたはOS管理者としてOracle Clusterwareのcrsctl stop crsコマンドを実行して、Oracle Clusterwareとレプリケーション・エージェントを停止します。

    アクティブ・データベースはリクエストと更新を引き続き受け付けますが、レプリケーション・エージェントが再起動されるまでは、スタンバイ・データベースとすべてのサブスクライバにはいかなる変更も伝播されません。

    crsctl stop crs

    また、crsctl stop crsコマンドは、スタンバイおよびすべてのサブスクライバ・データベースのRAMポリシーを一時的にInUse with RamGraceに変更します。このポリシーにより、TimesTenがこれらのデータベースをアンロードできるようにするための60秒の猶予期間が設定されます。

  2. 必要に応じて、スタンバイおよびサブスクライバ・データベースを含む各ホストでrootまたはOS管理者としてOracle Clusterwareのcrsctl disable crsコマンドを実行することにより、サーバー起動時にOracle ClusterwareおよびTimesTenが自動起動されるのを防止できます。

    crsctl disable crs
  3. すべてのアプリケーション接続を切断し、スタンバイおよびサブスクライバ・データベースがメモリーからアンロードされるのを待機します。

  4. TimesTenデータベースを正常に停止するには、スタンバイおよびサブスクライバ・データベースを含む各ホストで次のコマンドを実行します。

    ttDaemonAdmin -stop

    ノート:

    TimesTenメイン・デーモン・プロセスは同じTimesTenインストールに属するすべてのデータベースを管理しているので、前述のコマンドを実行する前にすべてのデータベースを切断してください。

    『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』TimesTenアプリケーションの停止を参照してください。

  5. スタンバイおよびサブスクライバ・データベースを含むホストでメンテナンスを実行します。

  6. メンテナンスが完了したら、次のいずれかを実行します。

    • Oracle ClusterwareおよびTimesTenの自動起動を無効にしなかった場合は、すべてのホストを再起動してから、Oracle ClusterwareおよびTimesTenプロセスが実行されるまで待機します(これには数分かかる場合があります)。

    • 再起動後のOracle ClusterwareおよびTimesTenの自動起動を無効にした場合、または、自動起動が有効になっているがメンテナンス後にホストを再起動していない場合は、クラスタ内の各ホストで次のタスクを実行します。

      1. 次のコマンドを実行してTimesTenデータベースを起動します。

        ttDaemonAdmin -start
      2. rootまたはOS管理者としてcrsctl enable crsを実行して、サーバー起動時のOracle Clusterwareの自動起動を有効にします。

        crsctl enable crs
      3. rootまたはOS管理者としてcrsctl start crsを実行して、ローカル・サーバーのOracle Clusterwareを起動します。次のステップに進む前に、すべてのOracle Clusterwareリソースが稼働するまで待機します。

        crsctl start crs

    すべてが稼働したら、アクティブはすべての更新をスタンバイおよびサブスクライバ・データベースにレプリケートします。

  7. アクティブ・データベースのホストで同じメンテナンスを実行できるように、ttCWAdmin -switchコマンドを使用してアクティブ・データベースとスタンバイ・データベースを切り替えます。

    ttCWAdmin -switch -dsn advancedDSN

    ノート:

    ttCWAdmin -switchコマンドの詳細は、「マスター・データベースの役割の入替え」を参照してください。

  8. 新しいスタンバイ・データベースのホストでrootまたはOS管理者としてOracle Clusterwareのcrsctl stop crsコマンドを実行して、Oracle Clusterwareとレプリケーション・エージェントを停止します。

    新しいアクティブ・データベースは引き続きリクエストと更新を受け付けますが、レプリケーション・エージェントが再起動されるまで、新しいスタンバイ・データベースとすべてのサブスクライバにはいかなる変更も伝播されません。

    crsctl stop crs
  9. すべてのアプリケーション接続を切断し、スタンバイおよびサブスクライバ・データベースがメモリーからアンロードされるのを待機します。

  10. TimesTenデータベースを正常に停止するには、新しいスタンバイ・データベースを含むホストで次のコマンドを実行します。

    ttDaemonAdmin -stop
  11. 新しいスタンバイ・データベースを含むホストでメンテナンスを実行します。これで、クラスタ内のすべてのホストでメンテナンスが実行されました。

  12. メンテナンスが完了したら、次のいずれかを実行します。

    • Oracle ClusterwareおよびTimesTenの自動起動を無効にしなかった場合は、すべてのホストを再起動してから、Oracle ClusterwareおよびTimesTenプロセスが実行されるまで待機します(これには数分かかる場合があります)。

    • 再起動後のOracle ClusterwareおよびTimesTenの自動起動を無効にした場合、または、自動起動が有効になっているがメンテナンス後にホストを再起動していない場合は、クラスタ内の各ホストで次のタスクを実行します。

      1. 次のコマンドを実行してTimesTenデータベースを起動します。

        ttDaemonAdmin -start
      2. rootまたはOS管理者としてcrsctl enable crsを実行して、サーバー起動時のOracle Clusterwareの自動起動を有効にします。

        crsctl enable crs
      3. rootまたはOS管理者としてcrsctl start crsを実行して、ローカル・サーバーのOracle Clusterwareを起動します。次のステップに進む前に、すべてのOracle Clusterwareリソースが稼働するまで待機します。

        crsctl start crs

    すべてが稼働したら、アクティブはすべての更新をスタンバイおよびサブスクライバ・データベースにレプリケートします。RAMポリシーはalwaysに戻されます。

  13. ttCWAdmin -switchコマンドを使用して、アクティブ・スタンバイ・ペアのアクティブとスタンバイの役割を元の構成に戻します。

    ttCWAdmin -switch -dsn advancedDSN

ノート:

Oracle Databaseドキュメントの『Oracle Clusterware管理およびデプロイメント・ガイド』を参照してください。