この章では、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に関する説明を参照してください。
ノート:
|
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
に移動します。
一時ディレクトリを作成します。
% mkdir /scratch/tmp
アプリケーションをデータベースから切断します。
データベースを一時ディレクトリにバックアップします
% ttBackup -dir /scratch/tmp -fname database1 database1 Backup started ... Backup complete
データベースをメモリーからアンロードします。詳細は、メモリーからのデータベースのアンロードを参照してください。
新しいDSNをdatabase1_new
という名前で作成し、DataStore
属性にデータベースのフルパス名およびファイル名の接頭辞を設定します。
[database1_new] DataStore=/scratch/new/database1/database1_new
新しい場所でバックアップをリストアします。
% ttRestore -dir /scratch/tmp -fname database1 database1_new Restore started ... Restore complete
一時ディレクトリを削除します。
rm -r /scratch/tmp
データベースが新しい場所で稼働していることを確認したら、必要に応じてttDestroy
ユーティリティを実行して古い場所のデータベースを破棄し、古いDSNを削除します。
ttBackup
およびttRestore
ユーティリティを使用して、TimesTen Classicの同じメジャー・リリース、同じCPUアーキテクチャ、同じオペレーティング・システムを持つ2つのホスト間でデータベースを移動できます。
CPUアーキテクチャとオペレーティング・システムが同じホスト間でデータベースをコピーするには、次の手順を実行します。
アプリケーションをデータベースから切断します。
ttBackup
を使用して、元のホストのデータベースをバックアップします。
%ttBackup -dir /scratch/tmp -fname database1 database1 Backup started ... Backup complete
バックアップを新しいホストに移動します。
新しいシステムのデータベースのDSNを作成します。詳細は、Oracle TimesTen In-Memory Databaseオペレーション・ガイドのLinux for TimesTen ClassicおよびUNIX for TimesTen ClassicでのDSNの作成を参照してください。
ttRestore
を使用して新しいシステムでバックアップをリストアします。
% ttRestore -dir /scratch/tmp -fname database1 database1_new Restore started ... Restore complete
新しいホストでデータベースが稼働したら、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では、ttMigrate
ユーティリティを使用し、古いリリースからデータをエクスポートして新しいリリースにインポートすることで、メジャー・リリース間でデータを移行できます(たとえば、TimesTen 11.2.2から18.1)。
データベースをあるメジャー・リリースから別のメジャー・リリースに移行するための前提条件:
インストールzipファイルを解凍して、新しいリリースをインストールします。詳細は、第2章 LinuxまたはUNIXでのTimesTen Classicのインストールを参照してください。
古いリリースのデータベースで、データベースのバックアップを作成します。詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのttBackupとttRestore、およびデータベースのバックアップおよびリストアを参照してください。
次のステップを実行します。
古いリリースで、データベースからすべてのアプリケーションを切断します。
ttMigrate
ユーティリティを使用してデータベースのコピーを保存します。
% ttMigrate -c database1 /tmp/database1.data ...
ttMigrate
ユーティリティの詳細は、Oracle TimesTen In-Memory DatabaseリファレンスのttMigrateを参照してください。
古いリリースで、データベースをメモリーからアンロードします。詳細は、メモリーからのデータベースのアンロードを参照してください。
古いリリースで、必要に応じてttDestroy
ユーティリティを使用して古いデータベースを破棄します。新しいデータベースが古いデータベースと同じ場所にある場合は、このステップは必須です。
移行オブジェクト・ファイルを、新しいリリースのインスタンスからアクセスできるファイル・システムにコピーします。
新しいリリースのインスタンスからデータベースを作成します。sys.odbc.ini
(またはodbc.ini
)ファイルで接続属性を変更し、環境変数を設定してデーモンを起動したことを確認します。
データベースを作成するには、次のコマンドを実行します。
% ttIsql -connstr "dsn=new_database1;AutoCreate=1" -e "quit"
この時点でデータベースは空です。
新しいリリースのインスタンスから、-r
および-relaxedUpgrade
オプションを指定してttMigrate
を使用し、バックアップしたデータベースを新しいリリースにリストアします。例:
% ttMigrate -r -relaxedUpgrade new_database1 /tmp/database1.data
データベースが新しいリリースで稼働したら、このデータベースのバックアップを作成して、データベースの有効なリストア・ポイントを作成します。データベースのバックアップを作成したら、データベースのttMigrate
コピー(この例では、/tmp/database1.data
)を削除できます。また、古いリリースからインスタンスおよびインストール環境を削除することもできます。
データベースの内部形式はプラットフォーム間で異なります。この手順を使用すると、あるプラットフォームから別のプラットフォームにデータベースを移動し(AIXからLinuxなど)、ターゲット・プラットフォーム用に再フォーマットできます。
アプリケーションをデータベースから切断します。
ターゲット・システムからttMigrateCS
を使用してクライアント/サーバー・モードで移動元のデータベースに接続し、-c
オプションを使用してターゲット・システムのデータベース用のデータ・ファイルを作成します。例:
ttMigrateCS -c database1 database1data.dat ...
ターゲット・システムで、データベースのDSNを作成します。詳細は、Oracle TimesTen In-Memory Databaseオペレーション・ガイドのLinux for TimesTen ClassicおよびUNIX for TimesTen ClassicでのDSNの作成を参照してください。
DataStore
接続属性を含むすべての接続属性が、新しいシステム上の場所に対して正しく設定されていることを確認します。
次の例のように、AutoCreate=1
を使用してデータベースを再作成します。
ttIsql -connstr "dsn=database2;AutoCreate=1" -e "quit"
この時点でデータベースは空です。
ターゲット・システムで、ttMigrate
ユーティリティに-r
オプションおよび-relaxedUpgrade
オプションを指定して、ttMigrateCS
で作成したファイルを新しいデータベースにインポートします。例:
ttMigrate -r -relaxedUpgrade database2 database1data.dat
新しいシステムで要求どおりにデータベースが稼働したら、ttDestroy
ユーティリティを使用して古いシステムのデータベースを破棄し、古いDSNを削除します。