ヘッダーをスキップ
Oracle TimesTen In-Memory Databaseインストレーション・ガイド
リリース6.0
B25765-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

オンライン・アップグレードの実行

「オフライン・アップグレードの実行」では、すべてのアプリケーションの停止が必要なTimesTenデータ・ストアでの様々なメンテナンス操作について説明しました。この項では、TimesTenレプリケーション機能を使用して、データの継続使用が必要なアプリケーションのオンライン・アップグレードを実行する方法について説明します。オンライン・アップグレードは、TimesTenのメジャー・リリース間での移行時に実行できます。パッチ・リリースへの移行では、インプレースまたはオフライン・アップグレードを実行する必要があります。

通常、データに対する高可用性が求められるアプリケーションでは、TimesTenレプリケーションを使用して、現在のデータ・ストアのコピーを1つ以上保持しておきます。この項で説明するオンライン・アップグレードの手順では、双方向のレプリケーション・スキームが構成されていて、2つのデータ・ストアを実行していると想定しています(『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』を参照)。

注意: 異なるリリース間でレプリケーションが機能するのは、最新バージョンのTimesTenのデータ・ストアが、以前のバージョンのTimesTenのデータ・ストアからアップグレードされている場合のみです。最新バージョンのTimesTenで作成されたデータ・ストアと、以前のバージョンとのレプリケーションは、サポートされていません。たとえば、バージョン5.1のTimesTenで作成されたデータ・ストアと、バージョン6.0のTimesTenで作成されたデータ・ストア間のレプリケーションは、サポートされていません。ただし、あるデータ・ストアをバージョン5.1で作成し、もう一方のデータ・ストアをバージョン5.1で作成してから、バージョン6.0にアップグレードした場合、これらのデータ・ストア間ではレプリケーションがサポートされます。

概要

TimesTenリリースXのデータ・ストアをTimesTenリリースYのデータ・ストアにアップグレードするには、ttMigrateリリースXを使用してデータ・ストアのバックアップを作成し、そのバックアップをttMigrateリリースYを使用してリリースYのデータ・ストアにロードします。

注意: 表の所有者名の変更に使用するttMigrate -r -rename optionは、オンライン・アップグレードでは使用できません。

オンライン・アップグレードの一般的な手順は、次のとおりです。

注意: ttMigrateを使用した後は、ソース・データ・ストアでのAUTOREFRESH STATEの設定方法に関係なく、リストア先のデータ・ストアのすべての自動リフレッシュ・キャッシュ・グループでAUTOREFRESH STATEがOFFに設定されます。ALTER CACHE GROUP文を使用して、AUTOREFRESH STATEをONに設定し直してください。

データの継続的な可用性を維持するため、コピーとアップグレードの実行中もアプリケーションは稼働しています。TimesTenレプリケーション機能は、コピーやアップグレード中に行われた更新内容を収集および保持し、新しいデータ・ストアに適用します。レプリケーションの更新が完全に適用された後、アプリケーションは元のデータ・ストアへのアクセスを終了し、新しいデータ・ストアへのアクセスを開始することができます。

レプリケーションが機能している状態でのオンライン・アップグレードの実行手順を、時間を追って説明します。

手順
オリジナル・システム
アップグレード・システム
1.
本番アプリケーションは稼働中です。
本番アプリケーションは稼働中です。
2.
 
アプリケーションをオリジナル・システムに移動します。
3.
アップグレード・システムへのレプリケーションを一時停止します。
 
4.
 
オリジナル・システムへの更新の適用を待機します。
5.
 
アップグレード・システムでレプリケーションを停止します。
6.
 
ttMigrate -cを使用して、アップグレード・システムのバックアップを作成します。
7.
 
アップグレード・システムを停止します。
8.
 
新しいリリースのTimesTenをインストールします。
9.
 
ODBC データソース アドミニストレータ(Windowsの場合)または.odbc.iniファイル(UNIXの場合)を使用し、新しいリリースのTimesTenのデータ・ソースを作成します。
10.
 
ttMigrate -rを使用して、バックアップからデータ・ストアをリストアします。
11.
 
レプリケーション定義の自動更新を適用します(ttRepAdmin -upgrade)。
12.
 
オリジナル・システムへのレプリケーションをリセットします。
13.
 
オリジナル・システムへのレプリケーションの状態をstartにします。
14.
 
レプリケーションを開始します。
15.
TimesTenリリース4.1以上を使用してオリジナルのデータ・ストアを作成している場合は、アップグレード・システムへのレプリケーションをリセットします。
 
16.
アップグレード・システムへのレプリケーションを開始します。
 
17.
アップグレード・システムへの更新の適用を待機します。
 
18.
 
本番アプリケーションを起動します。

前述の手順をアップグレード・システムで実行した後、同じ手順を使用して、オリジナル・システムをアップグレードできます。

制限事項

オンライン・アップグレードを実行できるのは、すべてのユーザー表がレプリケーション要件を満たしているデータ・ストアに対してのみです。すべてのユーザー表には、PRIMARY KEY宣言が含まれているか、NULLを指定できない列に一意索引が宣言されている必要があります。

要件

オンライン・アップグレードを実行するには、データ・ストアと、アップグレードするデータ・ストアのコピーを保持するメイン・メモリーおよびディスク領域が必要です。アップグレード中は、元のデータ・ストアとそのコピーの両方がアクティブになります。本番アプリケーションのパフォーマンスを維持するために、別のシステムでアップグレードを実行することも可能です。

レプリケーションを使用してオンライン・アップグレードを実行するには、レプリケーションで静的ポートが使用されている必要があります。詳細は、『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』を参照してください。

ttMigrateユーティリティを使用して作成したデータ・ストアのバックアップ・コピーを格納するために、追加のディスク領域を割り当てる必要があります。通常、バックアップ・コピーのサイズは、使用中のデータ・ストアのサイズとほぼ同じです。このサイズを確認するには、ttIsqlを使用してMONITOR表を問い合せます。

C:> select perm_in_use_size from SYS.MONITOR; 

オンライン・アップグレードの例

この項では、双方向でレプリケートされている2つのTimesTenデータ・ストアをオンラインでアップグレードする手順について説明します。

ここでは、アップグレードの対象となる2つのTimesTenシステムを、オリジナル・システムおよびアップグレード・システムと呼びます。この手順では、オリジナル・システムは、TimesTenのリリースをそのままにしておきます。また、アップグレード・システムは、新しいリリースに変換します。この手順が完了した後、同じ手順を使用してオリジナル・システムを同様に変換することができます。ただし、アップグレードしたリリースをテストするまで、オリジナル・システムは変換しないことをお薦めます。

次に示す手順は、その順序どおりに示されています。オンライン・アップグレードの手順は、次のとおりです。

手順
オリジナル・システム
アップグレード・システム
1.
ttRepAdminユーティリティを使用して、オリジナルのデータ・ストアからアップグレード側のデータ・ストアへのレプリケーションを一時停止します。
ttRepAdmin -dsn Original
    -receiver -name Upgrade
    -state pause 
このコマンドにより、オリジナル・システムからアップグレード・システムへの更新のレプリケーションは一時的に停止されますが、オリジナル・システムに対する更新内容はデータ・ストアのログ・ファイルに保存されます。アップグレード手順の実行中にオリジナル・システムに対して行われた更新は、後で適用されます。レプリケーション状態のリセットについては、『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』のサブスクライバのレプリケーション状態の設定に関する項を参照してください。
すべての本番アプリケーションを停止します。アップグレード・システムで実行されているワークロードは、すべてオリジナル・システムで実行するようにする必要があります。
2.
 
オリジナル・システムに送信されるすべてのレプリケーションの更新を待機します。アップグレード側のデータ・ストアで、更新の確認用として予約されている表に認識可能な更新を適用することで、更新がすべて送信されたことを確認できます。オリジナル側のデータ・ストアに更新がレプリケートされれば、更新が送信されたことになります。
3.
オリジナル・システムで、ttAdminユーティリティを使用してレプリケーション・エージェントを停止します。
ttAdmin -repStop Original 
 

これ以降、アップグレード側のデータ・ストアに更新は送信されません。

レプリケーション・エージェントの開始と停止については、『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』のレプリケーション・エージェントの開始と停止に関する項を参照してください。
アップグレード・システムで、ttAdminユーティリティを使用してレプリケーション・エージェントを停止します。
ttAdmin -repStop Upgrade 
 

これ以降、オリジナルのデータ・ストアに更新は送信されません。

4.

ttIsqlを使用してレプリケーション・スキームを変更し、リリース間でのデータ・ストアの通信を可能にします。それぞれのデータ・ストアに、静的なポート番号を設定する必要があります。

ttRepAdminを使用して、アップグレード側のデータ・ストアからオリジナルのデータ・ストアへのレプリケーションを停止します。
ttRepAdmin -dsn Upgrade
    -receiver
    -name Original
    -state stop 
 

この手順によって、アップグレード側のデータ・ストアで、オリジナルのデータ・ストアに送信される更新の蓄積が停止し、レプリケーション・ブックマークの一部がリセットされます。

 

ポート番号を設定する場合は、SET PORTパラメータとともにALTER REPLICATIONを指定します。

ttIsql -connStr dsn=Original -e
"alter replication repl.scheme
alter store Upgrade on
upgradehost  set port 22011;
alter replication repl.scheme
alter store Original on
originalhost set port
22012;quit;" 
注意: 静的なポートの設定は、アップグレード側のデータ・ストアをアップグレードする前に行うことができます。ただし、前述のttIsqlコマンドは両方のデータ・ストアで実行する必要があります。
 
5.

 

アップグレード・システムで、ttMigrateユーティリティを使用し、データ・ストアをバックアップします。データ・ストアのサイズによっては、この作業に時間を要する場合があります。/backupファイル・システムに十分なディスク領域の空きがあれば、次のttMigrateコマンドを使用できます。
ttMigrate -c DSN=Upgrade
    /backup/upgrade.dump 
6.
オリジナルのデータ・ストアのレプリケーション・エージェントを再び開始します。
ttAdmin -wait -repStart
Original 

移行が正常に行われた場合、アップグレード側のデータ・ストアを破棄します。

永続データ・ストア(Temporary=0)を破棄するには、ttDestroyを使用します。

ttdestroy Upgrade 
 

一時データ・ストア(Temporary=1)を破棄するには、ttAdminを使用します。

ttAdmin -ramUnload Upgrade

注意: アップグレード側に元からあるデータ・ストアは、新しいリリースのTimesTenへの移行が正常に終了するまで保持しておくことができます。ただし、レプリケーション・エージェントは停止させておく必要があります。また、オリジナルのデータ・ストアで、オリジナルからアップグレードへのレプリケーションの状態をpauseに設定する必要もあります。

7.
オリジナルのデータ・ストアからアップグレード側のデータ・ストアへのレプリケーションを再開します。
ttRepAdmin -dsn Original
    -receiver -name Upgrade
    -start start 
 

この時点でオリジナルおよびアップグレード・システムのTimesTenのリリースは異なります。TimesTenはオンライン・アップグレードをサポートする、異なるメジャー・リリース間でのレプリケーションをサポートします。

TimesTenのアップグレード・リリースをインストールします。

8.

 

ttMigrateコマンドを使用して、手順5で作成したバックアップをアップグレード側のデータ・ストアの新しいバージョンにロードします。

アップグレードが一時データ・ストア(Temporary=1)の場合は、最初にttAdmin -ramloadを使用します。

ttAdmin -ramLoad Upgrade 
ttMigrate -r
   "DSN=Upgrade;
    AutoCreate=0"
   /backup/upgrade.dump 
注意: この手順では、アップグレードしているTimesTenの新しいリリースのttMigrateユーティリティを使用する必要があります。
9.

 

ttRepAdminユーティリティを使用して、レプリケーション定義を移行します。アップグレードするリリースによっては、レプリケーション定義を変更する必要があります。ttRepAdminの-upgradeオプションを指定すると、レプリケーション定義が以前のリリースから自動的にアップグレードされます。
ttRepAdmin -dsn Upgrade
-self -upgrade 
ttRepAdmin -dsn Upgrade
-self -check 
ttRepAdmin -dsn Upgrade
-receiver -name Original
-reset 
 

データ・ストアが正しく識別されていることを確認します。

ttRepAdmin -dsn Upgrade -self -list
10.

 

ttIsqlを使用してレプリケーション・スキームを変更し、リリース間でのデータ・ストアの通信を可能にします。それぞれのデータ・ストアに、静的なポート番号を設定する必要があります。

ポート番号を設定する場合は、SET PORTパラメータとともにALTER REPLICATIONを指定します。

ttIsql -connStr dsn=Original -e
"alter replication repl.scheme
alter store Upgrade on
upgradehost  set port 22011;
alter replication repl.scheme
alter store Original on
originalhost set port
22012;quit;" 
注意: 静的なポートの設定は、アップグレード側のデータ・ストアをアップグレードする前に行うことができます。ただし、前述のttIsqlコマンドは両方のデータ・ストアで実行する必要があります。
11.

 

ttRepAdminを使用して、オリジナルのデータ・ストアのレプリケーションを停止してから、状態をstartにします。

ttRepAdmin -dsn Upgrade
-receiver -name Original
-state stop 
sleep 10 
ttRepAdmin -dsn Upgrade
-receiver -name Original
-state start 
sleep 10 
注意: リソースやオペレーティング・システムによっては、マシン上での状態の変更に最大で10秒かかるものもあるため、それぞれの状態が確実に有効になるようにsleepを指定します。
12.

 

ttAdminを使用して、アップグレード側の新しいデータ・ストアのレプリケーション・エージェントを開始し、オリジナル・システムに対する更新の蓄積を開始します。

ttAdmin -repStart Upgrade 
13.

アプリケーションがオリジナルのデータ・ストアで実行中の場合は、アップグレード・システムの移行が正常に終了し、更新がオリジナル・システムからアップグレード・システムに正しくレプリケートされたことを確認するまで、そのまま実行しておきます。

アップグレード・システムがオリジナル・システムから更新を受信することを確認します。

アップグレード側のデータ・ストアで、更新の確認用として予約されている表に認識可能な更新を適用することで、更新が送信されたことを確認できます。オリジナル側のデータ・ストアに更新がレプリケートされれば、更新が送信されたことになります。

14.

 

更新が正常にレプリケートされていることを確認したら、すべてのアプリケーションをアップグレード・システムに移動することができます。オリジナル・システムからの最後の更新がアップグレード・システムにレプリケートされたことを確認した後、オリジナル・システムはアップグレード可能となります。

15.
オリジナルのデータ・ストアからアップグレード側のデータ・ストアへのレプリケーションを一時停止します。
ttRepAdmin -dsn Original
    -receiver -name Upgrade
    -state pause 
sleep 10 

アップグレード側のデータ・ストアからオリジナルのデータ・ストアへのレプリケーションを一時停止します。

ttRepAdmin -dsn Upgrade -
receiver -name Original -state
pause 
sleep 10 
16.
ttAdminを使用して、オリジナルのデータ・ストアのレプリケーション・エージェントを停止します。
ttAdmin -repStop Original 
ttAdminを使用して、アップグレード側のデータ・ストアのレプリケーション・エージェントを停止します。
ttAdmin -wait -repStop Upgrade 
17.
オリジナル・システムで、ttMigrateユーティリティを使用し、データ・ストアをバックアップします。データ・ストアのサイズによっては、この作業に時間を要する場合があります。/backupファイル・システムに十分なディスク領域の空きがあれば、次のttMigrateコマンドを使用できます。
ttMigrate -c DSN=Original /
backup/original.dump 
 
18.

移行が正常に行われた場合、オリジナルのデータ・ストアを破棄します。

永続データ・ストア(Temporary=0)を破棄するには、ttDestroyを使用します。

ttdestroy Original 
 

一時データ・ストア(Temporary=1)を破棄するには、ttAdminを使用します。

ttAdmin -ramUnload Original

注意: オリジナル側に元からあるデータ・ストアは、新しいリリースのTimesTenへの移行が正常に終了するまで保持しておくことができます。ただし、レプリケーション・エージェントは停止させておく必要があります。また、アップグレード側のデータ・ストアで、アップグレードからオリジナルへのレプリケーションの状態をpauseに設定する必要もあります。

 

19.
ttMigrateコマンドを使用して、手順17で作成したバックアップをオリジナルのデータ・ストアの新しいバージョンにロードします。

オリジナルが一時データ・ストア(Temporary=1)の場合は、最初にttAdmin -ramloadを使用します。

ttAdmin -ramLoad Original 
ttMigrate -r
   "DSN=Original;
    AutoCreate=0"
   /backup/original.dump 
注意: この手順では、アップグレードしているTimesTenの新しいリリースのttMigrateユーティリティを使用する必要があります。
 
20.
ttRepAdminユーティリティを使用して、レプリケーション定義を移行します。アップグレードするリリースによっては、レプリケーション定義を変更する必要があります。ttRepAdminの-upgradeオプションを指定すると、レプリケーション定義が以前のリリースから自動的にアップグレードされます。
ttRepAdmin -dsn Original
    -self -upgrade 
ttRepAdmin -dsn Original -self -
check 
ttRepAdmin -dsn Original -
receiver -name Upgrade -reset 
 

データ・ストアが正しく識別されていることを確認します。

ttRepAdmin -dsn Original -self - list

ttRepAdminを使用して、アップグレード側のデータ・ストア・ログのブックマークを、最新のトランザクションにリセットします。

ttRepAdmin -dsn Upgrade -
receiver -name Original -reset 
 

ttAdminを使用して、アップグレード側のデータ・ストアのレプリケーション・エージェントを再び開始します。

ttAdmin -wait -repStart Upgrade
21.

オリジナルのデータ・ストアのレプリケーション・エージェントを開始します。

ttAdmin -wait -repStart
Original 

 

22.

 

アップグレードからオリジナルへの更新のレプリケーションを再び開始します。

ttRepAdmin -dsn Upgrade -
receiver -name Original -state
start 
sleep 10 
23.

アップグレードからオリジナルに更新がレプリケートされていることを確認します。

手順15でオリジナルへのレプリケーションを一時停止した時にログに記録されていた以前の更新と、それ以降にログに記録された新しい更新が、新しくアップグレードされたオリジナル・システムにすべてレプリケートされていることを確認します。