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
です。
スタンバイ・データベースのアップグレードの実行
次のステップで、スタンバイ・データベースのインスタンスのオフライン・アップグレードを実行します。
- 新しいインストール環境を作成します。詳細は、Linux/UNIXでのインストール環境の作成を参照してください。
- インスタンスが新しいインストール環境を指すようにします。詳細は、別のインストール環境とのインスタンスの関連付け(アップグレードまたはダウングレード)を参照してください。
- Oracle Clusterware用の新しいインストールを構成します。
アクティブ・データベースとスタンバイ・データベースのロールの切替え
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からの読取り専用の更新は、アクティブ・データベースに伝播されます。
この構成の場合、キャッシュ・グループ用の書込みスループットが増え、リソースの使用のバランスが向上することがあります。この種の構成に対する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つのホスト上にある関連のデータベースに影響を及ぼすことに注意してください。
- スタンバイ・データベースが目的のホストで実行されることを確認します。
ttCWAdmin -status -dsn
DSN
コマンドおよびttCWAdmin -status
コマンドを使用します。 - Oracle Clusterware
stop
コマンドを変更して、すべてのスタンバイ・データベースがあるホスト上のすべてのマスター・プロセスを停止します。 - 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
です。databasea
とdatabaseb
という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