Oracle Clusterwareの使用時のTimesTenのオンライン・アップグレードの実行

この項では、Oracle ClusterwareとともにTimesTenを使用する場合のTimesTenのオンライン・アップグレードのステップを説明します。Oracle Clusterwareを使用したTimesTenレプリケーションは、Oracle Linux for Armシステムではサポートされないため、Oracle Linux for Armを使用している場合、この項の情報は当てはまりません。

この項では、Oracle Clusterwareがアクティブ・スタンバイ・ペアを管理する構成で、TimesTenのオンライン・ローリング・アップグレード(パッチ) (TimesTen 22.1.w.xから22.1.y.zへのアップグレード)を実行する方法を説明します。(オフライン・アップグレードの詳細は、Oracle Clusterware使用時のTimesTenのオフライン・アップグレードの実行を参照してください。)

この章では、次の項目について説明します。

サポートされているOracle Clusterwareのバージョンについては、Oracle TimesTen In-Memory Databaseリリース・ノートを参照してください。

サポートされている構成

TimesTenのオンライン・ローリング・アップグレードでは、次の基本構成がサポートされています。いずれの場合も、Oracle Clusterwareによってホストが管理されます。

  • 2つのホスト上の1つのアクティブ・スタンバイ・ペア。

  • 各ホストに1つのデータベースを備えた複数のアクティブ・スタンバイ・ペア。

  • 各ホストに1つ以上のデータベースを備えた複数のアクティブ・スタンバイ・ペア。

(追加のスペア・ホストを備えたものなど、他のシナリオもこれらのシナリオの1つと事実上同等です。)

制限と前提

Oracle Clusterwareを使用しているときにTimesTenをアップグレードするための次の前提に注意してください。

  • 既存のアクティブ・スタンバイ・ペアは適切に構成され、動作しています。

  • スタンバイ・データベースを停止および起動するためのOracle Clusterwareコマンドは、適切に使用されています。

  • アップグレードを実行しても、アクティブ・データベースおよびスタンバイ・データベース用のTimesTen環境は変化しません。

  • これらの手順はTimesTenのパッチ・アップグレード専用です。Oracle Clusterwareによってアクティブ・スタンバイ・ペアが管理される構成では、オンライン・メジャー・アップグレードはサポートされていません。

  • 少なくとも2つのホストがOracle Clusterwareによって管理されています。

    Oracle Clusterwareによって管理されている複数のアクティブ・データベースまたはスタンバイ・データベースは、クラスタに少なくとも2つのホストがある場合のみホストに存在できます。

ノート:

必要に応じてOracle Clusterwareをアップグレードします。ただし、TimesTenのオンライン・アップグレードと同時には実行できません。アクティブ・スタンバイ・ペアがOracle Clusterwareによって管理される構成でTimesTenのオンライン・パッチ・アップグレードを実行する場合は、TimesTenのアップグレードの前または後でClusterwareのアップグレードを個別に実行する必要があります。

1つのアクティブ・スタンバイ・ペア用のアップグレード・タスク

この項では、次の作業について説明します。

ノート:

次の項の例では、ホスト名はhost2、DSNはmyDSN、インスタンス名はupgrade2およびインスタンス管理者はterryです。

アクティブ・スタンバイ・ペアが適切に機能していることの確認

これらのステップを実行して、アクティブ・スタンバイ・ペアが適切に機能していることを確認します。

  1. 次を確認します。
    • アクティブ・データベースおよびスタンバイ・データベースでTimesTen 22.1.w.xリリースが実行されます。

    • アクティブ・データベースおよびスタンバイ・データベースは、Oracle Clusterwareによって管理される別々のホストです。

    • レプリケーションが機能しています。

    • アクティブ・スタンバイ・ペアのレプリケーション・スキームにキャッシュ・グループが含まれている場合、次のことが正しくなります。

      • AWTおよびSWTによる書込みは、TimesTenのスタンバイ・データベースからOracle Databaseに対して機能しています。

      • リフレッシュは、Oracle DatabaseからTimesTenのアクティブ・データベースに対して機能しています。

  2. ttCWAdmin -status -dsn yourDSNコマンドを実行して、次を確認します。
    • アクティブ・データベースは、スタンバイ・データベースとは違うホストにあります。

    • アクティブ・データベースの状態は'ACTIVE'で、ステータスは'AVAILABLE'です。

    • スタンバイ・データベースの状態は'STANDBY'で、ステータスは'AVAILABLE'です。

  3. アクティブ・データベースでttStatusコマンドを実行して、次のことを確認します。
    • ttCRSactiveserviceおよびttCRSmasterプロセスが実行されています。

    • サブデーモンおよびレプリケーション・エージェントが実行されています。

    • アクティブ・スタンバイ・ペアのレプリケーション・スキームにキャッシュ・グループが含まれている場合、キャッシュ・エージェントは実行されています。

  4. スタンバイ・データベースでttStatusコマンドを実行して、次のことを確認します。
    • ttCRSsubserviceおよびttCRSmasterプロセスが実行されています。

    • サブデーモンおよびレプリケーション・エージェントが実行されています。

    • アクティブ・スタンバイ・ペアのレプリケーション・スキームにキャッシュ・グループが含まれている場合、キャッシュ・エージェントは実行されています。

スタンバイ・データベースの停止

スタンバイ・データベースを停止するには、次のステップを実行します。

  1. 次のようなOracle Clusterwareコマンドを実行して、スタンバイ・データベースのホスト上のOracle Clusterwareマスター・プロセス、デーモン・プロセスおよびエージェント・プロセスの名前を取得します。grep TTコマンドを使用して出力をフィルタ処理することをお薦めします。
    crsctl status resource -n standbyHostName | grep TT
    
  2. Oracle Clusterwareコマンドを実行してスタンバイ・データベースを停止します。Oracle Clusterwareコマンドは、スタンバイ・データベースのマスター・プロセス、インスタンスのデーモン・プロセスおよびインスタンスのエージェント・プロセスを停止します。
    crsctl stop resource TT_Master_upgrade2_terry_myDSN_1
    crsctl stop resource TT_Daemon_upgrade2_terry_host2
    crsctl stop resource TT_Agent_upgrade2_terry_host2
    
  3. TimesTenメイン・デーモンを停止します。
    ttDaemonAdmin -stop
    

    ttDaemonAdmin -stopコマンドでエラー10028が発生する場合は、コマンドを再試行してください。

スタンバイ・データベースのアップグレードの実行

次のステップで、スタンバイ・データベースのインスタンスのオフライン・アップグレードを実行します。

  1. 新しいインストール環境を作成します。詳細は、Linux/UNIXでのインストール環境の作成を参照してください。
  2. インスタンスが新しいインストール環境を指すようにします。詳細は、別のインストール環境とのインスタンスの関連付け(アップグレードまたはダウングレード)を参照してください。
  3. Oracle Clusterware用の新しいインストールを構成します。

スタンバイ・データベースの起動

スタンバイ・データベースを起動するには、次のステップを実行します。

  1. 次のttCWAdminコマンドを実行して、TimesTenメイン・デーモン、TimesTen Oracle Clusterwareエージェント・プロセスおよびTimesTen Oracle Clusterwareデーモン・プロセスを起動します。
    ttCWAdmin -init -hosts localhost
    
  2. スタンバイ・データベースのOracle Clusterwareマスター・プロセスを起動します。
    crsctl start resource TT_Master_upgrade2_terry_MYDSN_1

アクティブ・データベースとスタンバイ・データベースのロールの切替え

ttCWAdmin -switchコマンドを使用して、アクティブデータベースとスタンバイデータベースのロールを切り替えて、他のマスター・データベースのオフライン・アップグレードを有効にします。

ttCWAdmin -switch -dsn myDSN

次のタスクを起動する前に、ttCWAdmin -statusコマンドを使用して、切替え操作が完了したことを確認します。

新しいスタンバイ・データベースの停止

Oracle Clusterware crsctl status resourceコマンドを使用して、新しいスタンバイ・データベースのホスト上のマスター・プロセス、デーモン・プロセスおよびエージェント・プロセスの名前を取得します。この例では、ホストhost1を想定し、grep TTにより出力をフィルタします。

crsctl status resource -n host1 | grep TT

スタンバイ・データベースの停止で説明されているコマンドなどを実行し、適切なインスタンス名、インスタンス管理者、DSNおよびホスト名を使用します。たとえば:

crsctl stop resource TT_Master_upgrade2_terry_MYDSN_0
crsctl stop resource TT_Daemon_upgrade2_terry_host1
crsctl stop resource TT_Agent_upgrade2_terry_host1
ttDaemonAdmin -stop

新しいスタンバイ・データベースのアップグレードの実行

ステップについては、スタンバイ・データベースのアップグレードの実行を参照してください。

新しいスタンバイ・データベースの起動

スタンバイ・データベースの起動を参照し、前述の新しいスタンバイ・データベースの停止で概説したcrsctl status resourceコマンドによって取得したマスター・プロセス名を使用します。

ttCWAdmin -init -hosts localhost
crsctl start resource TT_Master_upgrade2_terry_MYDSN_0

数多くのホストのペアでの複数アクティブ・スタンバイ・ペアのアップグレード

複数のホストのペアの複数のアクティブ・スタンバイ・ペアのインスタンスをアップグレードする手順は、2つのホストの単一のアクティブ・スタンバイ・ペアのインスタンスをアップグレードする手順と基本的に同じです。詳細は、1つのアクティブ・スタンバイ・ペアのアップグレード・タスクを参照してください。アクティブ・スタンバイ・ペアのアップグレードを一度に実行するのがベスト・プラクティスです。

ttCWAdmin -statusコマンドを使用して、Oracle Clusterwareによって管理されているデータベースの状態を調べます。

1つのホスト・ペアでの複数アクティブ・スタンバイ・ペアのアップグレード

複数のアクティブ・スタンバイ・ペアは、ホストの複数のペア上で構成できます。詳細は、数多くのホストのペアでの複数アクティブ・スタンバイ・ペアのアップグレードを参照してください。または、複数のアクティブ・スタンバイ・ペアはホストの1つのペア上で構成できます。1つのシナリオとして、すべてのアクティブ・データベースを1つのホストで稼働させ、すべてのスタンバイ・データベースを別のホストで稼働させることができます。より典型的なシナリオでは、ワークロードのバランスを向上させるため、各ホストで複数のアクティブ・データベースとスタンバイ・データベースを稼働させることができます。

図7-1に、Oracle Clusterwareによって管理されている2つのホスト上の2つのアクティブ・スタンバイ・ペアを示します。host1上のactive1というアクティブ・データベースは、host2上のstandby1にレプリケートされます。host2上のactive2というアクティブ・データベースは、host1上のstandby2にレプリケートされます。両方のスタンバイ・データベースからのAWT更新は、Oracle Databaseに伝播されます。Oracle Databaseからの読取り専用の更新は、アクティブ・データベースに伝播されます。

図7-1 2つのホスト上の複数のアクティブ・スタンバイ・ペア

図7-1の説明が続きます。
「図7-1 2つのホスト上の複数のアクティブ・スタンバイ・ペア」の説明

この構成の場合、キャッシュ・グループ用の書込みスループットが増え、リソースの使用のバランスが向上することがあります。この種の構成に対するsys.odbc.iniのエントリ例およびcluster.oracle.iniファイルの例については、次の項、構成ファイルの例: ホストの1つのペア上の複数のアクティブ・スタンバイ・ペアを参照してください。(そのファイルの詳細はOracle TimesTen In-Memory Databaseレプリケーション・ガイドcluster.oracle.iniファイルによるOracle Clusterware管理の設定を参照してください。)

1つのホストのペアの複数のアクティブ・スタンバイ・ペアをローリング・アップグレードする手順は、複数のホストのペアの複数のアクティブ・スタンバイ・ペアをアップグレードする手順と同様です。詳細は、数多くのホストのペアでの複数アクティブ・スタンバイ・ペアのアップグレードを参照してください。

ただし、アクティブ・データベースとスタンバイ・データベースが2つのホストで混在している場合は、最初にすべてのスタンバイ・データベースを1つのホストに切り替え、すべてのアクティブ・データベースをもう1つのホストに切り替えます。ttCWAdmin -switch -dsn DSNコマンドを使用して、ホスト間でアクティブ・データベースとスタンバイ・データベースを切り替えます。すべてのアクティブ・データベースが1つのホストに切り替わり、すべてのスタンバイ・データベースがもう1つのホストに切り替わると、「スタンバイ」ホスト全体をアップグレードするために次のステップを実行します。

アップグレードは、インスタンス全体と、1つのホスト上にある関連のデータベースに影響を及ぼすことに注意してください。

  1. スタンバイ・データベースが目的のホストで実行されることを確認します。ttCWAdmin -status -dsn DSNコマンドおよびttCWAdmin -statusコマンドを使用します。
  2. Oracle Clusterware stopコマンドを変更して、すべてのスタンバイ・データベースがあるホスト上のすべてのマスター・プロセスを停止します。
  3. Oracle Clusterware startコマンドを変更して、すべてのスタンバイ・データベースがあるホスト上のすべてのマスター・プロセスを起動します。

構成ファイルの例: 1つのホストのペア上の複数アクティブ・スタンバイ・ペア

次にsys.odbc.iniエントリの例を示します。

[databasea]
Driver=timesten_home/install/lib/libtten.so
DataStore=/scratch/terry/ds/databasea
PermSize=400
TempSize=320
DatabaseCharacterSet=WE8MSWIN1252
OracleNetServiceName=ORCL
 
[databaseb]
Driver=timesten_home/install/lib/libtten.so
DataStore=/scratch/terry/ds/databaseb
PermSize=400
TempSize=320
DatabaseCharacterSet=WE8MSWIN1252
OracleNetServiceName=ORCL

[databasec]
Driver=timesten_home/install/lib/libtten.so
DataStore=/scratch/terry/ds/databasec
PermSize=400
TempSize=320
DatabaseCharacterSet=WE8MSWIN1252
OracleNetServiceName=ORCL

[databased]
Driver=timesten_home/install/lib/libtten.so
DataStore=/scratch/terry/ds/databased
PermSize=400
TempSize=320
DatabaseCharacterSet=WE8MSWIN1252
OracleNetServiceName=ORCL

次に、cluster.oracle.iniファイルの例を示します。

[databasea]
MasterHosts=host1,host2
CacheConnect=Y
 
[databaseb]
MasterHosts=host2,host1
CacheConnect=Y
 
[databasec]
MasterHosts=host2,host1
CacheConnect=Y
 
[databased]
MasterHosts=host1,host2
CacheConnect=Y

cluster.oracle.iniファイルは、1つのアクティブ・データベースおよび1つのスタンバイ・データベースを各ホストに配置します。これを行うには、MasterHost属性に指定されているホスト名の順序を反転させます。

スクリプトの例: 1つのホスト上の複数のスタンバイ・プロセスの停止および起動

次のようなOracle Clusterwareコマンドを実行して、スタンバイ・データベースのホスト上のOracle Clusterwareマスター・プロセス、デーモン・プロセスおよびエージェント・プロセスの名前を取得します。grep TTを使用して出力をフィルタ処理することをお薦めします。

crsctl status resource -n standbyHostName | grep TT

次のスクリプトは、Oracle Clusterwareが管理する同じホスト上の複数のデータベース用のスタンバイの停止スクリプトの例です。インスタンス名はupgrade2です。インスタンス管理者はterryです。ホストはhost2です。databaseadatabasebという2つのスタンバイ・データベースがあります。

crsctl stop resource TT_Master_upgrade2_terry_DATABASEA_0
crsctl stop resource TT_Master_upgrade2_terry_DATABASEB_1
crsctl stop resource TT_Daemon_upgrade2_terry_HOST2
crsctl stop resource TT_Agent_upgrade2_terry_HOST2
ttDaemonAdmin -stop

次のスクリプトは、同じ構成向けのスタンバイの開始スクリプトの例です。

ttCWAdmin -init -hosts localhost
crs start resource TT_Master_upgrade2_terry_DATABASEA_0
crs start resource TT_Master_upgrade2_terry_DATABASEB_1