主コンテンツへ
Oracle® TimesTen In-Memory Databaseインストレーション、移行およびアップグレード・ガイド
リリース18.1
F16947-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 TimesTen Classicでのデータのバックアップ、リストアおよび移行

この章では、TimesTen Classicでのデータベースのバックアップとリストア、およびデータベースのデータの移行の手順について説明します。

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

この章の内容は次のとおりです。

ータベースのバックアップとリストア

TimesTen Classicでデータベースをバックアップおよびリストアする機能は、データを保護するために不可欠です。潜在的なデータ損失のリスクを最小化するために、定期的なバックアップを実行することをお薦めします。

バックアップおよびリストアの手順を実行するには、ttBackupおよびttRestoreユーティリティを使用します。詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのttBackupおよびttRestoreを参照してください。これらのユーティリティを実行できるのは、次の場合にデータベースのバックアップおよびリストアを行うときのみです。

  • ユーティリティのバージョンの最初の2桁が、データベースのバージョンの最初の2桁と一致する

  • ユーティリティのプラットフォームがデータベースのプラットフォームと一致する

リリース番号の形式の詳細は、リリース番号の概要を参照してください。


ノート:

クライアントのみの環境ではこれらのユーティリティは使用できません。

この項に関連する情報は次のとおりです。

バックアップ機能

すべてのデータベースのバックアップには、バックアップ・ポイント(バックアップを開始した時点)で存在していたとおりにデータベースをリストアするために必要な情報が含まれています。指定したバックアップからデータベースをリストアすると、バックアップ・ポイント前にコミットしたすべてのトランザクションの変更がリストアされます。

バックアップ操作はアトミックです。正常に完了した場合は、データベースをバックアップ・ポイントの状態にリストアするために使用可能なバックアップが作成されます。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttBackupに関する説明を参照してください。


ノート:

  • バックアップ・ディレクトリの内容は手動で変更しないでください。バックアップ・ディレクトリ内のいずれかのファイルを追加、削除または変更(ttBackupおよびttRestoreによる変更は除く)すると、バックアップの整合性が損なわれる場合があります。この場合、バックアップからデータベースをリストアできないことがあります。

  • キャッシュ・グループを含んでいるデータベースは、ttBackupユーティリティを使用してバックアップすることができます。ただし、このようなバックアップをリストアするときは、特別な考慮が必要になります。キャッシュ・グループ内にリストアされているデータは、古くなっているか、バックエンドOracle Databaseと同期していないことがあります。キャッシュ・グループを含んでいるデータベースをリストアするには、Oracle TimesTen Application-Tier Database Cacheユーザーズ・ガイドのキャッシュ・グループが構成されているデータベースのバックアップおよびリストアを参照してください。


バックアップのタイプ

TimesTen Classicでは次のタイプのバックアップがサポートされます。

  • 完全: 完全バックアップには、最新の一貫性のあるチェックポイント・ファイルおよび既存のすべてのトランザクション・ログ・ファイルが含まれています。このバックアップではデータベース全体が保存されます。完全バックアップの場合は、既存のバックアップと新しいバックアップの両方を保持するための十分なディスク領域があることを確認します。完全バックアップはストリーム・バックアップにすることができます。ストリーム・バックアップでは、データベースのバックアップ・ファイルがstdoutに書き込まれます。

  • 増分: 増分バックアップは、最新の増分バックアップまたは増分を有効にした完全なファイル・バックアップから作成されたすべてのトランザクション・ログ・レコードでバックアップを増加させることによって、既存のバックアップのバックアップ・ポイントを時間的に先に進めます。増分バックアップは、バックアップを最後のバックアップ・ポイント以降に作成されたすべてのトランザクション・ログ・レコードで増補することによって、バックアップ・ポイントを後の時点まで進めます。

    通常、増分バックアップは、全体バックアップよりコピーするデータ量が少ないため、処理が早く完了します。増分バックアップでは、ディスク使用率を増加し、リストアにかかる時間を長くすることによって全体バックアップより高いパフォーマンスが実現されています。増分バックアップは、バックアップにかかる時間、ディスク使用率、リストアにかかる時間のバランスを考慮し、全体バックアップと組み合せて使用してください。増分バックアップではトランザクション・ログが保持されるため、増分バックアップを定期的に実行する必要があります。

    増分バックアップを実行するには、ご使用のバックアップでttBackupユーティリティを-fileFullEnableまたは-fileIncrOrFullオプションで実行し、増分バックアップを許可する必要があります。いずれにしても、ご使用のバックアップで事前に増分が有効化されていなかった場合、後続の増分バックアップが有効化される前に、ファイル全体のバックアップが実行されます。TimesTen Classicでは、データベースごとに最大8つの増分可能なバックアップ・インスタンスを作成できます。9つ目の増分バックアップ開始を試行すると、TimesTen Classicはエラーを返します。

    増分バックアップが有効か無効かにかかわらず、バックアップからデータベースをリストアすると、リストアされたデータベースの増分バックアップは無効になります。増分バックアップを有効にするには、-fileFullEnableまたは-fileIncrOrFullを指定してttBackupユーティリティを再度実行する必要があります。

特定のバックアップ・パスに格納されている、特定のデータベースのバックアップ情報が含まれている一連のファイルは、バックアップ・インスタンスと呼ばれます。バックアップ・インスタンスは、増分バックアップに対して明示的に使用可能にする必要があります。

この表に、TimesTen Classicでサポートされているバックアップ・タイプのリストを示します。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』のttBackupに関する説明を参照してください。

バックアップ・タイプ ファイルまたはストリーム 全体または増分 増分可能 コメント
fileFull ファイル 全体 いいえ デフォルト
fileFullEnable ファイル 全体 はい 完全バックアップ、および増分バックアップが有効にされたことによるバックアップ
fileIncremental ファイル 増分 はい 増分バックアップが不可の場合は失敗します
fileIncrOrFull ファイル どちらか はい 可能な場合はfileIncremental、そうでない場合はfileFullEnableを実行します
streamFull ストリーム 全体 いいえ ストリーム・バックアップ
incrementalStop なし なし いいえ バックアップを実行せず、増分バックアップを無効にします。トランザクション・ログ・ファイルが蓄積されません。

データベースのリストア

ttRestoreユーティリティを実行し、ttBackupユーティリティを使用して以前に作成したデータベース・バックアップをリストアします。このユーティリティの詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのttRestoreを参照してください。


ノート:

または、ttBackupおよびttRestoreに対応するC関数を使用することもできます。詳細は、『Oracle TimesTen In-Memory Database C開発者ガイド』のTimesTenユーティリティAPIを参照してください。

バックアップおよびリストアの例

データベースは同じホスト上の別のディレクトリにバックアップおよびリストアできます。同じプラットフォーム・タイプの別のホストのデータベースをバックアップおよびリストアすることもできます。

例:

単純なバックアップおよびリストアの実行

この例では、database1データベースを/scratch/backupディレクトリにバックアップします。次に、ttDestroyを実行してデータベースを削除します。(既存のデータベースを上書きしようとすると、ttRestoreがエラーを返します。)最後に、ttRestoreを実行してdatabase1データベースをリストアします。

% ttBackup -dir /scratch/backup database1
Backup started ...
Backup complete

% ttDestroy database1

% ttRestore -dir /scratch/backup database1
Restore started ...
Restore complete

他のディレクトリへのデータベースの移動

TimesTenデーモンは、データベースのチェックポイント・ファイルのフルパス名を使用してデータベースを識別します。データベースを別のディレクトリに移動するには、ttBackupユーティリティを使用してデータベースをバックアップし、新しいデータベースのパス名を示す新しいDSN定義を作成します。その後で、ttRestoreを使用して、データベースを新しい場所にリストアします。

この例では、/scratch/tmpディレクトリを一時記憶域に使用し、データベース名database1/scratch/old/database1をデータベース名database1_new/scratch/new/database1に移動します。

  1. 一時ディレクトリを作成します。

    % mkdir /scratch/tmp
    
  2. アプリケーションをデータベースから切断します。

  3. データベースを一時ディレクトリにバックアップします

    % ttBackup -dir /scratch/tmp -fname database1 database1
    Backup started ...
    Backup complete
    
  4. データベースをメモリーからアンロードします。詳細は、メモリーからのデータベースのアンロードを参照してください。

  5. 新しいDSNをdatabase1_newという名前で作成し、DataStore属性にデータベースのフルパス名およびファイル名の接頭辞を設定します。

    [database1_new]
    DataStore=/scratch/new/database1/database1_new
    
  6. 新しい場所でバックアップをリストアします。

    % ttRestore -dir /scratch/tmp -fname database1 database1_new
    Restore started ...
    Restore complete
    
  7. 一時ディレクトリを削除します。

    rm -r /scratch/tmp
    
  8. データベースが新しい場所で稼働していることを確認したら、必要に応じてttDestroyユーティリティを実行して古い場所のデータベースを破棄し、古いDSNを削除します。

他のホスト(同じプラットフォーム)へのデータベースの移行

ttBackupおよびttRestoreユーティリティを使用して、TimesTen Classicの同じメジャー・リリース、同じCPUアーキテクチャ、同じオペレーティング・システムを持つ2つのホスト間でデータベースを移動できます。

CPUアーキテクチャとオペレーティング・システムが同じホスト間でデータベースをコピーするには、次の手順を実行します。

  1. アプリケーションをデータベースから切断します。

  2. ttBackupを使用して、元のホストのデータベースをバックアップします。

    %ttBackup -dir /scratch/tmp -fname database1 database1
    Backup started ...
    Backup complete
    
  3. バックアップを新しいホストに移動します。

  4. 新しいシステムのデータベースのDSNを作成します。詳細は、Oracle TimesTen In-Memory Databaseオペレーション・ガイドのLinux for TimesTen ClassicおよびUNIX for TimesTen ClassicでのDSNの作成を参照してください。

  5. ttRestoreを使用して新しいシステムでバックアップをリストアします。

    % ttRestore -dir /scratch/tmp -fname database1 database1_new
    Restore started ...
    Restore complete
    
  6. 新しいホストでデータベースが稼働したら、ttDestroyユーティリティを使用して古いホスト上のデータベースを破棄し、古いDSNを削除できます。

データベースの移行

TimesTen Classicのあるメジャー・リリース(11.2.2など)からTimesTen Classicの別のメジャー・リリース(18.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 11.2.2から18.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)を削除できます。また、古いリリースからインスタンスおよびインストール環境を削除することもできます。

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

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

  1. アプリケーションをデータベースから切断します。

  2. ターゲット・システムからttMigrateCSを使用してクライアント/サーバー・モードで移動元のデータベースに接続し、-cオプションを使用してターゲット・システムのデータベース用のデータ・ファイルを作成します。例:

    ttMigrateCS -c database1 database1data.dat
    ...
    
  3. ターゲット・システムで、データベースのDSNを作成します。詳細は、Oracle TimesTen In-Memory Databaseオペレーション・ガイドのLinux for TimesTen ClassicおよびUNIX for TimesTen Classicでの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を削除します。