ttMigrate
ttMigrate
ユーティリティは、TimesTenオブジェクトを保存およびリストアし、別のTimesTenリリース間でデータベースを移行します。次の操作を実行できます:
-
TimesTenデータベースのオブジェクトを
ttMigrate
データファイルに保存します。 -
ttMigrate
データファイルからTimesTenデータベースにオブジェクトをリストアします。 -
ttMigrate
データファイルの内容の詳細を出力します。
保存されるオブジェクトには次のものがあります:
-
表
-
キャッシュ・グループ定義
-
ビューおよびマテリアライズド・ビュー
-
順序
-
レプリケーション・スキーム
-
ユーザーおよびユーザー情報(各ユーザーのデータベース権限を含む)。
ttMigrate
ユーティリティを使用して、次の3つの方法でデータベースを移行できます。
- TimesTen Classicの1つのメジャー・リリース(リリース18.1など)からTimesTenの別のメジャー・リリース(リリース22.1など)。
- TimesTen ClassicからTimesTen Scaleout。
- TimesTen ScaleoutからTimesTen Classic。
データベース・チェックポイントおよびトランザクション・ログ・ファイルにはメジャー・リリース間で互換性がないため、ttMigrate
ユーティリティを使用してTimesTen Classicのメジャー・リリースをアップグレードする必要があります。
ノート:
ユーザーおよびユーザー権限はTimesTen 7.0以前のリリースに存在しませんでした。したがって、これらのオブジェクトはリストアできません。
TimesTenデータベースの移行の詳細は、『Oracle TimesTen In-Memory Databaseインストレーション、移行およびアップグレード・ガイド』の「TimesTen Classicの他のメジャー・リリースへの移行」を参照してください。
このユーティリティで作成されるデータファイルはプラットフォーム依存です。たとえば、Linuxで作成されたttMigrate
データファイルは、AIXなどの他のプラットフォームではなく、Linuxでのみリストアできます。
デフォルトでは、ttMigrate
ユーティリティにより、1つのスレッドを使用してデータベースがリストアされます。リストア時には、-numThreads
オプションを指定して複数のスレッドを使用してデータファイルをリストアできるため、パフォーマンスが向上する可能性があります。
ttMigrate
ユーティリティはTimesTenサーバーDSNでサポートされています。TimesTenクライアントDSNでは、ttMigrateCS
(クライアント/サーバーのバージョン)ユーティリティを使用します。
ノート:
クライアント/サーバー・プロトコルにおけるリリース間互換性はTimesTenでサポートされていますが、ツールttMigrateCS
は、下位リリース互換性および上位リリース互換性がありません。したがって、同じバージョンのクライアント/サーバー接続にのみ使用可能です。
必要な権限
このユーティリティを使用するには、指定したオプションに応じて様々な権限が必要です。インスタンス管理者(ADMIN
)はすべてのオプションにアクセスできます。
-r
オプションを使用できるのは、インスタンス管理者のみです。このオプションを使用する時点ですでにデータベースが作成されている場合は、CREATE ANY TABLE
、CREATE ANY SEQUENCE
、CREATE ANY VIEW
、CREATE ANY MATERIALIZED VIEW
、CREATE ANY CACHE GROUP
、CREATE ANY INDEX
の各権限が必要であり、さらにユーザーの自動作成が必要になる場合にはADMIN
権限も必要です。データベースでレプリケーションまたはキャッシュ・オプションを使用する場合は、CACHE_MANAGER
も必要になります。
-c
オプションを使用してデータベース全体を取得できるのは、インスタンス管理者のみです。-c
オプションを使用して、データベース・オブジェクト(表、ビュー、マテリアライズド・ビュー、キャッシュ・グループ、順序)のサブセットを取得するには、SELECT ANY TABLE
権限およびSELECT ANY SEQUENCE
権限が必要です。
TimesTen ScaleoutおよびTimesTen Classicでの使用
このユーティリティは、主にTimesTen Classicでサポートされています。TimesTen Classicからのデータベースの移行は、TimesTen ScaleoutでサポートされるttMigrate
ユーティリティのみを使用して行われます。
構文
ttMigrate {-h | -help | -?} {-V | -version}
データファイルを作成または追加するには、次のように入力します。
ttMigrate {-a | -c} [-v verbosity] [-nf] [-nr] [-fixNaN] [-saveAsCharset charset] [-relaxedUpgrade | -exactUpgrade] [-activeDML | -noActiveDML] {DSN | -connStr connection_string} data file [[objectOwner.]objectName...]
このユーティリティで作成されたバイナリ・データファイルからデータベースをリストアするには、次のように入力します。
ttMigrate -r [-C ckptFreq] [-v level] [-nf] [-nr] [-fixNaN] [-numThreads n] [-updateStats | -estimateStats percent] [-relaxedUpgrade | -exactUpgrade] [-inline rule] [-noCharsetConversion] [-cacheUid uid [-cachePwd pwd]] [-autorefreshPaused] [-restorePublicPrivs] [-localhost host] [-resizeHashIndexes] {DSN | -connstr connection_string} dataFile [objectOwner.objectName...]
このユーティリティで作成されたデータファイルの内容をリストまたは表示するには、次のように入力します。
ttMigrate {-l | -L | -d | -D} dataFile [[objectOwner
.]objectName...]
オプション
追加(-a
)または作成(-c
)モード、リスト(-l
/-L
)または説明(-d
/-D
)モード、およびリストア・モード(-r
)は、相互に排他的です。これらのオプションのいずれか2つを同じ行に指定することはできません。
ttMigrate
には次のオプションがあります。
オプション | 説明 |
---|---|
|
使用方法のメッセージを出力して終了します。 |
|
|
|
追加モードの選択: |
|
作成モード: 新規にデータファイルを作成します。詳細は、「作成モード(-c)と追加モード(-a)」を参照してください。 |
|
|
|
通常の(キャッシュされていない)表の保存またはリストア時に、 |
|
通常の(キャッシュされていない)表の保存またはリストア時に、 |
|
オブジェクト内で検出された |
|
指定された接続文字セットにオブジェクトを保存します。接続文字セットがデータベース文字セットと異なる場合、 このオプションが設定されない場合、 |
|
このオプションは、 デフォルトは |
|
このオプションは、 これはデフォルトです。 |
|
単一のトランザクションで外部キー階層内のすべての表を保存して、
デフォルトは |
|
移行するデータベースのODBCデータソース名を指定します。 |
|
データベースの場所、ドライバ、および必要に応じてその他の接続属性設定を指定するODBC接続文字列。 |
|
オブジェクトの所有者。 |
|
保存またはリストアするデータベース・オブジェクトの名前。 |
|
リストア・モードを選択します。このユーティリティで作成されたデータファイルからデータベースをリストアします。詳細は、「リストア・モード(-r)」を参照してください。 |
|
データベース・ファイルのリストア時に使用するスレッドの数を指定します。指定しない場合、 有効な値は1から32までです。 |
|
このフラグを使用すると、マテリアライズド・ビューのリストアのパフォーマンスと、リストアされた表およびビューに対する問合せのパフォーマンスが向上する場合があります。 |
|
このフラグを使用すると、マテリアライズド・ビューのリストアのパフォーマンスと、リストアされた表およびビューに対する問合せのパフォーマンスが向上する場合があります。 |
|
リストア・モードで可変長列を
|
|
非同期ライトスルー・キャッシュ・グループおよび |
|
自動リフレッシュ・キャッシュ・グループ、非同期ライトスルー・キャッシュ・グループおよび コマンドラインにキャッシュ管理ユーザーIDを入力したが、キャッシュ管理パスワードを入力しなかった場合は、 |
|
リスト・モードを選択します。指定されたデータファイル内のデータベース・オブジェクトの名前が表示されます。詳細は、「リスト・モード(-l)と詳細リスト・モード(-L)」を参照してください。 |
|
詳細リスト・モードを選択します。指定されたデータファイル内のデータベース・オブジェクトの名前と、データベース・オブジェクトに関するその他の詳細が表示されます。詳細は、「リスト・モード(-l)と詳細リスト・モード(-L)」を参照してください。 |
|
説明モードを選択します。データファイル内のオブジェクトの簡単な説明が表示されます。詳細は、「説明モード(-d)」を参照してください。 |
|
詳細説明モードを選択します。データファイル内のオブジェクトの詳細な説明が表示されます。詳細は、「詳細説明モード(-D)」を参照してください。 |
|
オブジェクトの保存先またはオブジェクトのリストア元のデータファイルのパス名です。 |
次のttMigrate
のオプションは、リストア・モード(-r
)でのみ使用できます。
オプション | 説明 |
---|---|
|
自動リフレッシュ状態をPAUSEDにして、 |
|
ノート: このオプションは、TimesTen Scaleoutではサポートされません。 |
|
次の項目を使用して、基礎となるOracle Database表からTimesTenキャッシュ表への最適な型のマッピングを決定します。
|
|
索引および外部キーをリストアします。 このオプションは、TimesTen ClassicからTimesTen Scaleoutへの移行にのみ使用します。『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』の「TimesTen ClassicからTimesTen Scaleoutへのデータベースの移行」を参照してください。 |
|
行を表にリストアします。 このオプションは、TimesTen ClassicからTimesTen Scaleoutへの移行にのみ使用します。『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』の「TimesTen ClassicからTimesTen Scaleoutへのデータベースの移行」を参照してください。 |
|
レプリケートされた表をリストアする際に、ローカル・ホストの名前またはIPアドレスを明示的に指定します。 |
|
データファイルに保存された接続文字セットを保持したまま、データをリストアします。 設定しない場合、 関連項目: このオプションは、 |
|
リストア時に、ユーザー・ハッシュ索引を表の行数に基づいて最適なサイズに変更します。 |
|
データベースが作成された後、 |
モード
作成モード(-c)と追加モード(-a)
作成モードでは、ttMigrate
ユーティリティはTimesTenデータベースのオブジェクトを新しいバイナリ・データファイルに保存します。データファイルがない場合には、ttMigrate
ユーティリティが作成します。それ以外の場合は、ttMigrate
は既存のファイルを上書きして、その内容を破棄します。
ttMigrate
ユーティリティによって使用されるデータファイル形式は、TimesTenのいずれのリリースにも依存していないため、あるTimesTenリリースから別のリリースへデータを移行する場合にttMigrate
を使用できます。
追加モードでは、ttMigrate
ユーティリティはTimesTenデータベースのオブジェクトを既存のデータファイルに追加します。データファイルがない場合には、ttMigrate
ユーティリティが作成します。
通常の(キャッシュされていない)各表について、ttMigrate
ユーティリティは次のものを保存します。
-
表の説明: 主キーとNULL値可能に関する情報を含む、表の列ごとの名前と型。
-
表の索引定義: 各索引と索引に含まれる列の名前。
ttMigrate
は、索引の実際の内容は保存せず、表のリストア時に索引を再作成するために必要となる情報のみを保存します。 -
表の外部キー定義。
-nf
オプションを使用して、外部キー定義の保存を無効にできます。 -
表の行。
-nr
オプションを使用して行の保存を無効にできます。
各キャッシュ・グループについて、ttMigrate
ユーティリティは次のものを保存します。
-
キャッシュ・グループの定義: キャッシュ・グループの所有者と名前、キャッシュ・グループ内のすべての表の名前、関連するキャッシュ・グループの設定(キャッシュ・グループの時間など)。行データはエクスポートされません。
- キャッシュ・グループ内のすべてのキャッシュされた表: 表名、列情報、表の属性(伝播または読取り専用)、
WHERE
句(存在する場合)、外部キー定義、索引定義。
ノート:
TimesTen ClassicからTimesTen Scaleoutに移行する場合、TimesTen Scaleoutでサポートされていないキャッシュ・グループ・タイプが検出されると、ユーティリティによってエラーが発行され、キャッシュ・グループがスキップされ、インポート・プロセスが続行されます。さらに、静的自動リフレッシュ・キャッシュ・グループは、インポート・プロセス中にすべての表のハッシュ配分を使用して作成されます。
ttMigrate
ユーティリティを使用してデータベースをリストアした後は、ソース・データベースでのAUTOREFRESH STATEの設定方法に関係なく、リストアされたデータベースのすべての自動リフレッシュ・キャッシュ・グループでAUTOREFRESH
の状態がOFF
に設定されます。ttMigrate -r
を使用してキャッシュ・グループをリストアした後は、ALTER CACHE GROUP
文を使用して、AUTOREFRESH STATE
をON
にリセットしてください(この操作はプログラムで実行することも、ttIsql
ユーティリティで実行することもできます)。
各ビューについて、ttMigrate
ユーティリティは次のものを保存します。
-
一般的な表と同一のすべての情報。
-
ビューを定義する問合せ。
各順序について、ttMigrate
ユーティリティは次のものを保存します。
-
順序の完全な定義。
-
順序の現在の値。
各ユーザーについて(インスタンス管理者を除く)、ttMigrate
ユーティリティは次のものを保存します。
-
ユーザー名。
-
ユーザーの暗号化されたパスワード。
-
ユーザーに付与されている権限。
PUBLIC
の場合、ttMigrate
ユーティリティはデータベースの作成後にPUBLIC
に付与されたすべての権限を保存します。
レプリケーション・スキームが定義されている場合、ttMigrate
ユーティリティは、レプリケーション・スキームを含むすべてのTTREP
表を保存します。レプリケーション・スキームは、他のすべてのデータストア・オブジェクトとは別の一意の名前である必要があります。他のデータベース・オブジェクトと同じ名前のレプリケーション・スキームは移行できません。
ノート:
ttMigrate
ユーティリティは、-nr
オプションを指定しなかった場合でも、キャッシュされた表の行をデータファイルに保存しません。キャッシュされた表の外部キー定義は、キャッシュ・グループの整合性を保つために必要となるため、-nf
オプションの使用にかかわらず、常に保存されます。
デフォルトでは、ttMigrate
ユーティリティは、表、ビュー、キャッシュ・グループ、順序、ユーザー、レプリケーション・スキームなど、データベース内のすべてのデータベース・オブジェクトおよびユーザーをデータファイルに保存します。また、レプリケーション・スキームを除き、保存するデータベース・オブジェクトのリストをコマンドラインに指定することもできます。このリスト内の名前には、ワイルドカード文字%
(1文字以上に一致)と_
(1文字に一致)を含めることができます。ttMigrate
ユーティリティは、指定されたパターンのいずれかに一致するすべてのデータベース・オブジェクトを保存します。名前を完全修飾する必要はなく、所有者なしで名前を指定すると、ttMigrate
は、その名前またはパターンに一致するすべてのデータベース・オブジェクトについて、所有者を考慮せずに保存します。
キャッシュされた表は、キャッシュ・グループから独立させて保存することはできません。キャッシュされた表をコマンドラインでリストしても、対応するキャッシュ・グループもリストしなければ、ttMigrate
ユーティリティはエラーを発行します。
-v
オプションを使用して、保存の処理中にttMigrate
によって出力される情報を制御します。
リストア・モード(-r)
リストア・モードでは、ttMigrate
ユーティリティは、すべてのデータベース・オブジェクトをデータファイルからTimesTenデータベースにリストアします。
通常の(キャッシュされていない)各表について、ttMigrate
ユーティリティは次のものをリストアします。
-
表(元の所有者、表名、列名、型、NULL値可能に関する設定、オリジナルの主キーを使用)。
-
表の外部キー。
-nf
フラグを使用して、外部キーのリストアを無効にできます。 -
表のすべての索引。
-
表のすべての行。
-nr
フラグを使用して、行のリストアを無効にできます。
各キャッシュ・グループについて、ttMigrate
ユーティリティは次のものをリストアします。
-
キャッシュ・グループ定義(元のキャッシュ・グループ所有者と名前を使用)。データはインポートされません。
-
キャッシュ・グループ内のすべてのキャッシュされた表(元の表名、列名、型、NULL値可能、元の主キー、表属性(
PROPAGATE
またはREADONLY
)、およびWHERE
句(存在する場合)を使用)。 -
キャッシュされた表の外部キー定義。
-
キャッシュされた表のすべての索引。
-
ttMigrate
ユーティリティは、-nr
オプションを指定しなかった場合でも、キャッシュされた表の行をリストアしません。キャッシュされた表の外部キー定義は、キャッシュ・グループの整合性を保つために必要となるため、-nf
オプションの使用にかかわらず、常にリストアされます。 -
リストアされたデータベース内のすべての自動リフレッシュ・キャッシュ・グループの
AUTOREFRESH
状態は、ソース・データベースでの設定方法にかかわらずOFF
に設定されます。必要に応じて、-autorefreshPaused
オプションを使用して、リストアされた自動リフレッシュ・キャッシュ・グループのAUTOREFRESH
状態をOFF
ではなくPAUSED
に設定できます。
-exactUpgrade
オプションは、-c
オプションと-r
オプションの両方のデフォルトです。
デフォルトでは、ttMigrate
ユーティリティはデータファイル内のすべての表とキャッシュ・グループをリストアします。また、リストアする特定の表とキャッシュ・グループをコマンドラインにリストすることもできます。このリスト内の名前は完全修飾する必要があり、ワイルド・カード文字は使用できません。
キャッシュされた表は、キャッシュ・グループから独立させてリストアすることができません。キャッシュされた表をコマンドラインでリストしても、対応するキャッシュ・グループもリストしなければ、ttMigrate
ユーティリティはエラーを発行します。
-v
オプションを使用して、リストアの処理中にttMigrate
ユーティリティによって出力される情報を制御します。
-inline
オプションを使用すると、可変長列をINLINE
としてリストアするか、NOT INLINE
としてリストアするかを制御できます。詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス』の「データ型の仕様」を参照してください。デフォルト・モード(-inline
preserve
)では、ttMigrate
はすべての可変長列を、それらが保存されたときと同じINLINE
またはNOT INLINE
設定でリストアします。その他の2つのモード(-inline
dsDefault
および-inline
maxlen
)では、ttMigrate
はしきい値長以下の可変長列をINLINE
としてリストアし、他の可変長列をすべてNOT INLINE
としてリストアします。-inline
dsDefault
では、このしきい値はTimesTenデータベースのデフォルトの自動INLINE
長です。-inline
maxlen
モードでは、ユーザー定義のしきい値長(maxlen
)を持つ可変長列は、INLINE
としてリストアされ、その他のすべての可変長列は、INLINE
として保存されている場合でも、NOT INLINE
としてリストアされます。maxlen
が0
の場合、すべての可変長列はNOT INLINE
としてリストアされます。
リスト・モード(-l)と詳細リスト・モード(-L)
リスト・モードでは、ttMigrate
ユーティリティは、キャッシュされた表およびレプリケーション・スキームTTREP
表などの、指定したデータファイル内のデータベース・オブジェクトの名前を表示します。
詳細リスト・モードでは、ttMigrate
ユーティリティは、キャッシュされた表およびレプリケーション・スキームTTREP
表などの、データファイル内のデータベース・オブジェクトの名前と、各表の行数と各表の索引定義、各ビューを定義する問合せ、および各順序の仕様を表示します。
デフォルトでは、ttMigrate
ユーティリティは、レプリケーション・スキーム名およびファイル内のすべてのデータベース・オブジェクトを表示します。また、コマンドラインにデータベース・オブジェクト名のリストを指定することもできます。このリスト内の名前は完全修飾する必要があり、ワイルド・カード文字は使用できません。
説明モード(-d)
説明モードでは、ttMigrate
ユーティリティは、指定したファイル内のデータベース・オブジェクトに関する簡単な説明を提供します。
各表について、ttMigrate
ユーティリティは表名、表の行数、表の列定義、主キーおよび外部キーを表示します。キャッシュされた表については、ttMigrate
は、表の属性(PROPAGATE
またはREADONLY
)および表のWHERE
句(存在する場合)も表示します。
ビューについて、ttMigrate
ユーティリティは、ビューを定義する問合せも表示します。
キャッシュ・グループについて、ttMigrate
ユーティリティは、キャッシュ・グループ名、キャッシュ・グループ内の表の数、キャッシュ・グループの持続時間を表示し、キャッシュ・グループ内のキャッシュされた各表について説明します。
レプリケーション・スキームについて、ttMigrate
ユーティリティは、レプリケーション・スキーム名およびすべてのTTREP
レプリケーション・スキーム表をユーザー表と同様の方法で表示します。
デフォルトでは、ttMigrate
ユーティリティは、ファイル内のデータベース・オブジェクトをすべて示します。また、コマンドラインにデータベース・オブジェクト名のリストを指定することもできます。このリスト内の名前は完全修飾する必要があり、ワイルド・カード文字は使用できません。
詳細説明モード(-D)
詳細説明モードでは、ttMigrate
は指定したファイル内のデータベース・オブジェクトに関する詳細な説明を提供します。
各表について、ttMigrate
ユーティリティは、表名、表の行数、表の列定義、主キー、外部キーおよび索引定義を表示します。キャッシュされた表については、ttMigrate
は、表の属性(PROPAGATE
またはREADONLY
)および表のWHERE
句(存在する場合)も表示します。
キャッシュ・グループについて、ttMigrate
ユーティリティは、キャッシュ・グループ名、キャッシュ・グループ内の表の数、キャッシュ・グループの持続時間を表示し、キャッシュ・グループ内のキャッシュされた各表について説明します。
順序について、ttMigrate
ユーティリティは、順序とその現在の値の定義に使用されるすべての値を表示します。
レプリケーション・スキームについて、ttMigrate
ユーティリティは、すべてのTTREP
レプリケーション・スキーム表をユーザー表と同様の方法で表示します。
デフォルトでは、ttMigrate
ユーティリティは、ファイル内のデータベース・オブジェクトをすべて示します。また、コマンドラインにデータベース・オブジェクト名のリストを指定することもできます。このリスト内の名前は完全修飾する必要があり、ワイルド・カード文字は使用できません。
キャッシュ・グループのデータ型の変換
リリース7.0より前のTimesTenからキャッシュ・グループを含むデータベースをリストアする場合は、-convertCGTypes
オプションを使用して、7.0より前の型と、キャッシュ・グループに関連付けられているOracle Databaseの列のデータ型を正確にマッピングして、列のデータ型を変換します。
次の表に、型のマッピングを示します。
7.0より前のTimesTen型 | Oracle型 | 変換後の型 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
任意 |
|
|
任意 |
|
|
任意 |
|
|
任意 |
|
|
任意 |
|
|
任意 |
|
|
任意 |
|
|
任意 |
|
|
|
|
|
|
|
|
|
|
Any1 |
|
|
ノート:
any
は、型の値が変換後の型に影響しないことを示します。
データ型については、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』の「データ型」と、『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』の「Oracle Databaseデータ型とTimesTenデータ型の間のマッピング」を参照してください。
リターン・コード
ttMigrate
ユーティリティのリストア(-r
)および作成(-c
)コマンドは次の終了コードを返します。
0
- すべてのオブジェクトは正常に作成またはリストアされました。
1
- 一部のオブジェクトは正常に作成またはリストアされました。エラーのため、一部のオブジェクトは作成またはリストアできませんでした。
2
- 致命的エラー。たとえば、データファイルに接続できなかったか、データファイルを開けませんでした。
3
- 作成またはリストア処理中に[Ctrl]キーを押しながら[C]キー
が押されたか、別のシグナルを受信しました。
例
次のコマンドでは、すべてのデータベース・オブジェクトが、データベースSalesDS
からファイルsales.ttm
にダンプされます。sales.ttm
が存在している場合は、ttMigrate
によって上書きされます。
% ttMigrate -c SalesDS sales.ttm
次のコマンドでは、ユーザーMARY
が所有するSalesDS
データベース内のすべてのデータベース・オブジェクトをsales.ttm
に追加します。
% ttMigrate -a SalesDS sales.ttm MARY.%
次のコマンドでは、sales.ttm
のすべてのデータベース・オブジェクトをSalesDS
データベースにリストアします。
% ttMigrate -r SalesDS sales.ttm
次のコマンドでは、sales.ttm
のMARY.PENDING
およびMARY.COMPLETED
をSalesDS
にリストアします(オブジェクトでは大文字と小文字は区別されません):
% ttMigrate -r SalesDS sales.ttm MARY.PENDINGMARY.COMPLETED
このコマンドでは、sales.ttm
に保存されたすべてのオブジェクトを表示します。
% ttMigrate -l sales.ttm
ノート
現行リリースの機能をサポートしていないOracle TimesTen In-Memory Databaseのリリースに対して下位方向の移行を行う場合、通常、TimesTenは警告を発行し、サポートされていない機能を移行せずに処理を続行します。オブジェクトの変換を実行済の場合、まれに、ttMigrate
が失敗し、エラー・メッセージが返されることがあります。データ型、文字セットおよび主キー表現の変換が行われた場合に失敗することがあります。
ttMigrate
ユーティリティを使用する前に、次の制限、制約および推奨事項を考慮してください。
キャッシュ・グループ: リストア・モードでは、表間に外部キー依存性がある場合は、ttMigrate
ユーティリティで表の順序を整理しなおして、子表が親表の前にリストアされないようにすることが必要になる場合があります。
キャッシュされた表内の文字型の列は、長さのみでなくバイト・セマンティクスも、基礎となるOracle Database表と同じであることが必要です。キャッシュされた表に、長さまたは長さセマンティクスの不一致がある場合、キャッシュ・グループの移行は失敗します。
このユーティリティでは、0以外の値を指定したPassThrough
接続属性はサポートされていないため、0以外の値を指定するとエラーが返されます。
文字セット: デフォルトでは、-saveAsCharset
オプションを指定しないかぎり、ttMigrate
ユーティリティは表データをデータベース文字セットで保存します。異なるデータベース文字セットのデータベースに表を移行することにより、他の文字セットへの変換がリストア時に実行されます。
7.0より前のリリースのTimesTenからデータを移行する場合、TimesTenは、データがすでに移行先のデータベース文字セットになっていると想定します。データのデータベース文字セットが移行先のデータベースと同じでない場合、データが正しくリストアされない可能性があります。
NLSがサポートされているがデータベース文字セットが異なる2つのデータベースの間で、BYTE
長セマンティクスが指定された列を移行する場合、新しいデータベース内の列の長さが、移行ファイルに含まれる値を保持するのに十分でない場合、移行が失敗する可能性があります。たとえば、移行元データベースでは最大バイト長が4の文字セットを使用していて、移行先データベースでは最大バイト長が2の文字セットを使用している場合に移行が失敗する可能性があります。
TimesTenでは、文字セットの変換が行われる場合に常に警告を発行し、変換によるデータの損失の可能性を知らせます。
外部キーの依存性: リストア・モードでは、表間に外部キーの依存性がある場合は、ttMigrate
ユーティリティで表の順序を整理しなおして、子表が親表より先にリストアされないようにすることが必要になる場合があります。このような依存性により、親表が1つでもリストアされなかった場合に子表がリストアされるのを回避することもできます。たとえば、表B
に対して外部キーの依存性を持つ表A
をリストアする場合、ttMigrate
は最初に表B
がデータベースに存在することを確認します。表B
が検出されない場合、ttMigrate
は表B
がリストアされるまで表A
のリストアを遅らせます。表B
がttMigrate
セッションの一部としてリストアされない場合、TimesTenは、依存性を解決できなかったため表A
がリストアされなかったことを示すエラー・メッセージを出力します。
レプリケーション: レプリケートされたデータベースのセット全体の移行を開始する前に、ソースと宛先の両方のデータベースのホスト名とデータベース名が同じであることを確認します。
システム・ビュー: TimesTenは移行中にシステム・ビューの定義または内容を保存しません。
その他の考慮事項: ttMigrate
ユーティリティを使用して次の作業を行うことはできません。
-
あるデータベース・リリースから別の
ttMigrate
リリースへの移行。ttMigrate
ユーティリティのリリースは、接続しているデータベースのリリースと一致する必要があります。
アプリケーションのロックの競合問題を回避するために、ttMigrate -r
操作の実行中に、ttIsql
またはプログラムでDDL SQLコマンドを実行しないことをお薦めします。