データベースの移行

あるメジャー・リリースのTimesTen Classic (18.1など)から別のメジャー・リリースのTimesTen Classic (22.1など)にデータベースを移行できます。これを実現するには、ttMigrateユーティリティを実行します。ttMigrateは、データベース・オブジェクトをバイナリ・ファイルに保存し、バイナリ・ファイルからターゲット・データベースにオブジェクトをリストアすることによって、データベース・オブジェクトをアップグレードまたはダウングレードします。

バイナリ・ファイルはプラットフォームに依存します。たとえば、Linuxで生成されたバイナリ・ファイルはLinuxにリストアする必要があります。ただし、ttMigrateCSユーティリティを使用して、プラットフォーム間でデータベースをコピーできます(たとえば、LinuxとUNIXの間)。

詳細は、Oracle TimesTen In-Memory DatabaseリファレンスttMigrateを参照してください。

ノート:

この項では、TimesTen Classicでのデータベースの移行について説明します。TimesTen ClassicからTimesTen Scaleoutへのデータベースの移行およびTimesTen Scaleoutでのデータベースの移行の詳細は、Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイドデータの移行、バックアップおよびリストアを参照してください。

ttMigrateの使用例は次のとおりです。

TimesTen Classicの他のメジャー・リリースへの移動

TimesTen Classicでは、ttMigrateユーティリティを使用して古いリリースからデータをエクスポートし、新しいリリースにインポートすることで、メジャー・リリースの間(たとえば、TimesTen 18.1から22.1)でデータを移行できます。

データベースをあるメジャー・リリースから別のメジャー・リリースに移行するための前提条件:

次の手順を実行します:

  1. 古いリリースで、データベースからすべてのアプリケーションを切断します。
  2. ttMigrateユーティリティを使用してデータベースのコピーを保存します。
    % ttMigrate -c database1 /tmp/database1.data
    ...
    

    ttMigrateユーティリティの詳細は、Oracle TimesTen In-Memory DatabaseリファレンスttMigrateを参照してください。

  3. 古いリリースで、データベースをメモリーからアンロードします。詳細は、データベースをメモリーからアンロードしますを参照してください。
  4. 古いリリースで、必要に応じてttDestroyユーティリティを使用して古いデータベースを破棄します。新しいデータベースが古いデータベースと同じ場所にある場合は、このステップは必須です。
  5. 移行オブジェクト・ファイルを、新しいリリースのインスタンスからアクセスできるファイル・システムにコピーします。
  6. 新しいリリースのインスタンスからデータベースを作成します。sys.odbc.ini (またはodbc.ini)ファイルで接続属性を変更し、環境変数を設定してデーモンを起動したことを確認します。

    データベースを作成するには、次のコマンドを実行します。

    % ttIsql -connstr "dsn=new_database1;AutoCreate=1" -e "quit"
    

    この時点でデータベースは空です。

  7. 新しいリリースのインスタンスから、-rおよび-relaxedUpgradeオプションを指定してttMigrateを使用し、バックアップしたデータベースを新しいリリースにリストアします。たとえば:
    % ttMigrate -r -relaxedUpgrade new_database1 /tmp/database1.data
    

データベースが新しいリリースで稼働したら、このデータベースのバックアップを作成して、データベースの有効なリストア・ポイントを作成します。データベースのバックアップを作成したら、データベースのttMigrateコピー(この例では、/tmp/database1.data)を削除できます。また、古いリリースからインスタンスおよびインストール環境を削除することもできます。

アップグレードを実行した後、TimesTenの新しいリリースを使用する前に、既存のODBCアプリケーションを再コンパイルおよび再リンクしてください。詳細は、Oracle TimesTen In-Memory Database C開発者ガイドODBC APIの非互換性の概要を参照してください。

他のプラットフォームへのデータベースの移行

データベースの内部形式はプラットフォーム間で異なります。この手順を使用すると、あるプラットフォームから別のプラットフォームにデータベースを移動し(AIXからLinuxなど)、ターゲット・プラットフォーム用に再フォーマットできます。

  1. アプリケーションをデータベースから切断します。
  2. ターゲット・システムからttMigrateCSを使用してクライアント/サーバー・モードで移動元のデータベースに接続し、-cオプションを使用してターゲット・システムのデータベース用のデータ・ファイルを作成します。たとえば:
    ttMigrateCS -c database1 database1data.dat
    ...
    
  3. ターゲット・システムで、データベースのDSNを作成します。詳細は、Oracle TimesTen In-Memory Databaseオペレーション・ガイドTimesTen Classic用のLinuxおよびUNIXでのDSNの作成を参照してください。
  4. DataStore接続属性を含むすべての接続属性が、新しいシステム上の場所に対して正しく設定されていることを確認します。
  5. 次の例のように、AutoCreate=1を使用してデータベースを再作成します。
    ttIsql -connstr "dsn=database2;AutoCreate=1" -e "quit"
    

    この時点でデータベースは空です。

  6. ターゲット・システムで、ttMigrateユーティリティに-rオプションおよび-relaxedUpgradeオプションを指定して、ttMigrateCSで作成したファイルを新しいデータベースにインポートします。たとえば:
    ttMigrate -r -relaxedUpgrade database2 database1data.dat
    
  7. 新しいシステムで要求どおりにデータベースが稼働したら、ttDestroyユーティリティを使用して古いシステムのデータベースを破棄し、古いDSNを削除します。