「オフライン・アップグレードの実行」では、すべてのアプリケーションの停止が必要なTimesTenデータ・ストアでの様々なメンテナンス操作について説明しました。この項では、TimesTenレプリケーション機能を使用して、データの継続使用が必要なアプリケーションのオンライン・アップグレードを実行する方法について説明します。オンライン・アップグレードは、TimesTenのメジャー・リリース間での移行時に実行できます。パッチ・リリースへの移行では、インプレースまたはオフライン・アップグレードを実行する必要があります。
通常、データに対する高可用性が求められるアプリケーションでは、TimesTenレプリケーションを使用して、現在のデータ・ストアのコピーを1つ以上保持しておきます。この項で説明するオンライン・アップグレードの手順では、双方向のレプリケーション・スキームが構成されていて、2つのデータ・ストアを実行していると想定しています(『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』を参照)。
TimesTenリリースXのデータ・ストアをTimesTenリリースYのデータ・ストアにアップグレードするには、ttMigrateリリースXを使用してデータ・ストアのバックアップを作成し、そのバックアップをttMigrateリリースYを使用してリリースYのデータ・ストアにロードします。
オンライン・アップグレードの一般的な手順は、次のとおりです。
データの継続的な可用性を維持するため、コピーとアップグレードの実行中もアプリケーションは稼働しています。TimesTenレプリケーション機能は、コピーやアップグレード中に行われた更新内容を収集および保持し、新しいデータ・ストアに適用します。レプリケーションの更新が完全に適用された後、アプリケーションは元のデータ・ストアへのアクセスを終了し、新しいデータ・ストアへのアクセスを開始することができます。
レプリケーションが機能している状態でのオンライン・アップグレードの実行手順を、時間を追って説明します。
前述の手順をアップグレード・システムで実行した後、同じ手順を使用して、オリジナル・システムをアップグレードできます。
オンライン・アップグレードを実行できるのは、すべてのユーザー表がレプリケーション要件を満たしているデータ・ストアに対してのみです。すべてのユーザー表には、PRIMARY KEY宣言が含まれているか、NULLを指定できない列に一意索引が宣言されている必要があります。
オンライン・アップグレードを実行するには、データ・ストアと、アップグレードするデータ・ストアのコピーを保持するメイン・メモリーおよびディスク領域が必要です。アップグレード中は、元のデータ・ストアとそのコピーの両方がアクティブになります。本番アプリケーションのパフォーマンスを維持するために、別のシステムでアップグレードを実行することも可能です。
レプリケーションを使用してオンライン・アップグレードを実行するには、レプリケーションで静的ポートが使用されている必要があります。詳細は、『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』を参照してください。
ttMigrateユーティリティを使用して作成したデータ・ストアのバックアップ・コピーを格納するために、追加のディスク領域を割り当てる必要があります。通常、バックアップ・コピーのサイズは、使用中のデータ・ストアのサイズとほぼ同じです。このサイズを確認するには、ttIsqlを使用してMONITOR表を問い合せます。
この項では、双方向でレプリケートされている2つのTimesTenデータ・ストアをオンラインでアップグレードする手順について説明します。
ここでは、アップグレードの対象となる2つのTimesTenシステムを、オリジナル・システムおよびアップグレード・システムと呼びます。この手順では、オリジナル・システムは、TimesTenのリリースをそのままにしておきます。また、アップグレード・システムは、新しいリリースに変換します。この手順が完了した後、同じ手順を使用してオリジナル・システムを同様に変換することができます。ただし、アップグレードしたリリースをテストするまで、オリジナル・システムは変換しないことをお薦めます。
次に示す手順は、その順序どおりに示されています。オンライン・アップグレードの手順は、次のとおりです。
手順
|
オリジナル・システム
|
アップグレード・システム
|
---|---|---|
1. | ttRepAdminユーティリティを使用して、オリジナルのデータ・ストアからアップグレード側のデータ・ストアへのレプリケーションを一時停止します。 このコマンドにより、オリジナル・システムからアップグレード・システムへの更新のレプリケーションは一時的に停止されますが、オリジナル・システムに対する更新内容はデータ・ストアのログ・ファイルに保存されます。アップグレード手順の実行中にオリジナル・システムに対して行われた更新は、後で適用されます。レプリケーション状態のリセットについては、『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』のサブスクライバのレプリケーション状態の設定に関する項を参照してください。 | すべての本番アプリケーションを停止します。アップグレード・システムで実行されているワークロードは、すべてオリジナル・システムで実行するようにする必要があります。 |
2. | オリジナル・システムに送信されるすべてのレプリケーションの更新を待機します。アップグレード側のデータ・ストアで、更新の確認用として予約されている表に認識可能な更新を適用することで、更新がすべて送信されたことを確認できます。オリジナル側のデータ・ストアに更新がレプリケートされれば、更新が送信されたことになります。 |
|
3. | オリジナル・システムで、ttAdminユーティリティを使用してレプリケーション・エージェントを停止します。 レプリケーション・エージェントの開始と停止については、『Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド』のレプリケーション・エージェントの開始と停止に関する項を参照してください。 | アップグレード・システムで、ttAdminユーティリティを使用してレプリケーション・エージェントを停止します。 |
4. |
ttIsqlを使用してレプリケーション・スキームを変更し、リリース間でのデータ・ストアの通信を可能にします。それぞれのデータ・ストアに、静的なポート番号を設定する必要があります。 | ttRepAdminを使用して、アップグレード側のデータ・ストアからオリジナルのデータ・ストアへのレプリケーションを停止します。 |
ポート番号を設定する場合は、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コマンドを使用できます。 |
6. | オリジナルのデータ・ストアのレプリケーション・エージェントを再び開始します。 |
移行が正常に行われた場合、アップグレード側のデータ・ストアを破棄します。 永続データ・ストア(Temporary=0)を破棄するには、ttDestroyを使用します。 |
7. | オリジナルのデータ・ストアからアップグレード側のデータ・ストアへのレプリケーションを再開します。 |
TimesTenのアップグレード・リリースをインストールします。 |
8. |
| ttMigrateコマンドを使用して、手順5で作成したバックアップをアップグレード側のデータ・ストアの新しいバージョンにロードします。
アップグレードが一時データ・ストア(Temporary=1)の場合は、最初にttAdmin -ramloadを使用します。 注意: この手順では、アップグレードしているTimesTenの新しいリリースのttMigrateユーティリティを使用する必要があります。 |
9. |
| ttRepAdminユーティリティを使用して、レプリケーション定義を移行します。アップグレードするリリースによっては、レプリケーション定義を変更する必要があります。ttRepAdminの-upgradeオプションを指定すると、レプリケーション定義が以前のリリースから自動的にアップグレードされます。 |
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を使用して、アップグレード側の新しいデータ・ストアのレプリケーション・エージェントを開始し、オリジナル・システムに対する更新の蓄積を開始します。 |
13. |
アプリケーションがオリジナルのデータ・ストアで実行中の場合は、アップグレード・システムの移行が正常に終了し、更新がオリジナル・システムからアップグレード・システムに正しくレプリケートされたことを確認するまで、そのまま実行しておきます。 |
アップグレード・システムがオリジナル・システムから更新を受信することを確認します。 アップグレード側のデータ・ストアで、更新の確認用として予約されている表に認識可能な更新を適用することで、更新が送信されたことを確認できます。オリジナル側のデータ・ストアに更新がレプリケートされれば、更新が送信されたことになります。 |
14. |
|
更新が正常にレプリケートされていることを確認したら、すべてのアプリケーションをアップグレード・システムに移動することができます。オリジナル・システムからの最後の更新がアップグレード・システムにレプリケートされたことを確認した後、オリジナル・システムはアップグレード可能となります。 |
15. | オリジナルのデータ・ストアからアップグレード側のデータ・ストアへのレプリケーションを一時停止します。 |
アップグレード側のデータ・ストアからオリジナルのデータ・ストアへのレプリケーションを一時停止します。 |
16. | ttAdminを使用して、オリジナルのデータ・ストアのレプリケーション・エージェントを停止します。 | ttAdminを使用して、アップグレード側のデータ・ストアのレプリケーション・エージェントを停止します。 |
17. | オリジナル・システムで、ttMigrateユーティリティを使用し、データ・ストアをバックアップします。データ・ストアのサイズによっては、この作業に時間を要する場合があります。/backupファイル・システムに十分なディスク領域の空きがあれば、次のttMigrateコマンドを使用できます。 | |
18. |
移行が正常に行われた場合、オリジナルのデータ・ストアを破棄します。 永続データ・ストア(Temporary=0)を破棄するには、ttDestroyを使用します。 |
|
19. | ttMigrateコマンドを使用して、手順17で作成したバックアップをオリジナルのデータ・ストアの新しいバージョンにロードします。
オリジナルが一時データ・ストア(Temporary=1)の場合は、最初にttAdmin -ramloadを使用します。 注意: この手順では、アップグレードしているTimesTenの新しいリリースのttMigrateユーティリティを使用する必要があります。 | |
20. | ttRepAdminユーティリティを使用して、レプリケーション定義を移行します。アップグレードするリリースによっては、レプリケーション定義を変更する必要があります。ttRepAdminの-upgradeオプションを指定すると、レプリケーション定義が以前のリリースから自動的にアップグレードされます。 |
ttRepAdminを使用して、アップグレード側のデータ・ストア・ログのブックマークを、最新のトランザクションにリセットします。 |
21. |
オリジナルのデータ・ストアのレプリケーション・エージェントを開始します。 |
|
22. |
|
アップグレードからオリジナルへの更新のレプリケーションを再び開始します。 |
23. |
アップグレードからオリジナルに更新がレプリケートされていることを確認します。 |
手順15でオリジナルへのレプリケーションを一時停止した時にログに記録されていた以前の更新と、それ以降にログに記録された新しい更新が、新しくアップグレードされたオリジナル・システムにすべてレプリケートされていることを確認します。 |