ヘッダーをスキップ
Oracle TimesTen In-Memory Database APIリファレンス・ガイド
リリース7.0
E05170-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

ttMigrate

説明

次の操作のいずれかを実行します。

移行オブジェクトには次のものがあります。

メジャー・リリースには互換性がないため、TimesTenのメジャー・リリースのアップグレード時にttMigrateユーティリティを使用します。例については、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』を参照してください。

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

ttMigrateユーティリティは、同じアーキテクチャ内のビット・レベル間でデータをコピーする場合に使用できます。たとえば、32-bitのSolarisシステムから64-bitのSolarisシステムにデータを移動する場合に使用できます。-noRepUpgradeオプションは、ビット・レベルを変更する場合に使用する必要があります。この場合、データ・ストアは、レプリケーション・スキームに含まれないようにしてください。

UNIXでは、このユーティリティはTimesTen Data Manager DSNで使用できます。TimesTenクライアントDSNでは、ttMigrateCSユーティリティを使用します。

アクセス制御

アクセス制御がTimesTenのインスタンスに対して有効である場合、このユーティリティにはSELECT権限か表を移行するための表の所有権、およびデータ・ストア全体を移行するためのADMIN権限が必要です。接続文字列またはDSNに認証情報が指定されない場合、続行する前にユーザーIDおよびパスワードの入力が求められます。

このユーティリティでは、アクセス制御がTimesTenの新しいインスタンスまた古いインスタンスに対して有効であるかどうかにかかわらず、付与された権限が移行されません。アクセス制御がTimesTenの新しいインスタンスに対して有効である場合は、移行したデータ・ストアに明示的にユーザーを作成し、権限を付与する必要があります。

構文

ttMigrate [-h | -help | -?]

ttMigrate [-V | -version]

バイナリ・データファイルを作成または追加するには、次のように入力します。

ttMigrate  {-a | -c} [-vverbosity] [-nf] [-nr] [-fixNaN]
[-saveAsCharset charset]
[-repUpgrade | -noRepUpgrade
[-convertTypesToOra | -convertTypestoTT]]
{-connStr connection_string | DSN} dataFile
[objectOwner.]objectName

このユーティリティで作成されたバイナリ・データファイルからデータ・ストアをリストアするには、次のように入力します。

ttMigrate -r -noRepUpgrade [-inline rule] [-vverbosity] [-fixNaN]
[-nf] [-nr] [-C chkPtFreq] [-rename oldOwner:newOwner]
[-localhost hostName] [-n noCharsetConversion]
[-cacheUid uid [-cachePwd pwd]] [-convertCGtypes]
[-convertTypesToOra | -convertTypesToTT]
-connStr connection_string | DSN} dataFile [objectOwner.]objectName

または

ttMigrate -r -noRepUpgrade [-inline rule] [-vverbosity] [-fixNaN]
[-nf] [-nr] [-C chkPtFreq] [-rename oldOwner:newOwner]
[-localhost hostName] [-n noCharsetConversion]
[-cacheUid uid [-cachePwd pwd]] [-convertCGtypes]
[-convertTypesToOra | -convertTypesToTT]
-connStr connection_string | DSN} dataFile [objectOwner.]objectName

このユーティリティで作成されたバイナリ・データファイルの内容をリストまたは表示するには、次のように入力します。

ttMigrate {-l | -L | -d | -D} dataFile [owner.name ...]

オプション


注意: 追加(-a)または作成(-c)モード、リスト(-l/-L)または説明(-d/-D)モード、およびリストア・モード(-r)は、相互に排他的です。これらのオプションのいずれか2つを同じ行に指定することはできません。

ttMigrateには次のオプションがあります。

オプション
説明

-a

追加モードを選択します。ttMigrate -cを使用して作成された、すでに存在しているバイナリ・データファイルに、データを追加します。詳細は、「作成モード(-c)と追加モード(-a)」を参照してください。

-c

作成モード: 新規にバイナリ・データファイルを作成します。詳細は、「作成モード(-c)と追加モード(-a)」を参照してください。

-cacheUid

AUTOREFRESHおよびASYNCHRONOUS WRITETHROUGHキャッシュ・グループのリストア時に使用するキャッシュ管理ユーザーID。

-cachePwd

AUTOREFRESHおよびASYNCHRONOUS WRITETHROUGHキャッシュ・グループのリストア時に使用するキャッシュ管理パスワード。コマンドラインにキャッシュ管理ユーザーIDを入力したが、キャッシュ管理パスワードを入力しなかった場合は、ttMigrateによってパスワードの入力が要求されます。

-connStr

connection_string

データ・ストア名、サーバー名とDSN(必要に応じて)および関連する接続属性を含むODBC接続文字列。

-convertTypesToOra

-convertTypesToTT

TimesTenデータ型をOracleデータ型に変換、またはOracleデータ型をTimesTenデータ型に変換します。これらのオプションには、-noRepUpgrade オプションが必要です。

TimesTen 7.0では、デフォルトの型モードはORACLE型モードです。旧リリースのデータ・ストアをTimesTen 7.0に移行する場合に-convertTypesToOraが役立ちます。

-convertTypesToTTオプションは、Oracle型がサポートされていない下位リリースへの移行に役立ちます。

これらのオプションはマテリアライズド・ビュー以外のすべての種類の表に適用されます。表の種類には、通常の表、キャッシュされた表、グローバル表および一時表があります。


注意: これらのオプションでは、ビューまたはマテリアライズド・ビュー定義内のCAST式に使用されている型名は変換されません。したがって、CAST文を使用しているビューまたはマテリアライズド・ビューは、異なる型モードのデータベース間での移行に失敗する場合があります。
また、これらのデータ型変換処理では、元のデータ型に戻せる状態になることは保証されていません。TimesTen型からOracle型へデータを変換した後、逆方向に変換すると、場合によっては、元の状態と異なる列およびデータになる可能性があります。

-convertCGTypes「TimesTenデータ型からOracleデータ型への変換」および「Oracleデータ型からTimesTenデータ型への変換」も参照してください。

-d

説明モードを選択します。データファイル内のオブジェクトの簡単な説明が表示されます。詳細は、「説明モード(-d)」を参照してください。

-D

詳細説明モードを選択します。データファイル内のオブジェクトの詳細な説明が表示されます。詳細は、「詳細説明モード(-D)」を参照してください。

dataFile

移行オブジェクトの保存先または移行オブジェクトのリストア元のデータファイルのパス名です。

DSN

移行するデータ・ストアのODBCデータソース名を指定します。

-estimateStats percentRows

ttMigrateで、リストアされた表およびマテリアライズド・ビューの指定された割合の行の統計を見積もることを指定します。percentRowsの適切な値は、0から100です。-cまたは-a オプションを指定すると、このオプションは無視されます。

-estimateStatsおよび-updateStatsの両方を指定した場合、リストアされた表の統計は更新されますが、見積もられません。

このフラグを使用すると、マテリアライズド・ビューのリストアのパフォーマンスと、リストアされた表およびビューに対する問合せのパフォーマンスが向上する場合があります。

-fixNaN
移行オブジェクト内で検出されたNaN、Inf、-Infの値をすべて0.0に変換します。NaN、Inf、-Infの値がサポートされていないTimesTenのリリースにデータを移行する場合に役立ちます。
-h
-help
-?
使用方法のメッセージを出力して終了します。

-inline rule

リストア・モードで可変長列をINLINEに変換するために使用するruleを指定します。このruleの値は次のいずれかです。
preserve : ttMigrateは、各列の元のINLINE属性を保存します。これがデフォルトです。  -repUpgradeが使用されている場合は必須です。
dsDefault : ttMigrateは、リストアされた列のINLINE属性を設定するためにデータ・ストアのデフォルトのルールを使用します。
maxlen : ttMigrateは、maxlen以下の長さのすべての可変長列をINLINEとしてリストアし、maxlenより長いすべての可変長列をNOT INLINEとしてリストアします。maxlenが0(ゼロ)の場合は、すべての列をNOT INLINEとしてリストアします。
このオプションを移行中に使用する場合は、INLINE列がサポートされていないTimesTenバージョンのデータ・ストアで、データ・ストアをレプリケートしないでください。INLINE可変長列は、NOT INLINE列には正常にレプリケートできません。

-l

リスト・モードを選択します。指定されたデータファイル内のデータ・ストア・オブジェクトの名前が表示されます。詳細は、「リスト・モード(-l)と詳細リスト・モード(-L)」を参照してください。

-L

詳細リスト・モードを選択します。指定されたデータファイル内のデータ・ストア・オブジェクトの名前と、データ・ストア・オブジェクトに関するその他の詳細が表示されます。詳細は、「リスト・モード(-l)と詳細リスト・モード(-L)」を参照してください。

-r

リストア・モードを選択します。このユーティリティで作成されたバイナリ・データファイルからデータ・ストアをリストアします。詳細は、「リストア・モード(-r)」を参照してください。

name

保存またはリストアするデータ・ストア・オブジェクトの名前。

-nf

通常の(キャッシュされていない)表の保存またはリストア時に、ttMigrateが外部キー情報の保存またはリストアを行わないことを指定します。

-nr

通常の(キャッシュされていない)表の保存またはリストア時に、ttMigrateが表の行の保存またはリストアを行わないことを指定します。

-noRepUpgrade

保存/リストアした表と元の表のレプリケーションとの互換性は保障されません。このオプションを使用することにより、リストアした表のサイズは少し小さくなり、アクセス速度が若干向上する場合があります。 -a オプションが指定されている場合、このオプションは無視されます。元の表とリストアした表とのレプリケーションは適切に行われない場合があるため、このオプションの使用には注意が必要です。

owner

移行オブジェクトの所有者です。

-rename oldOwner:newOwner

oldOwnerが以前所有し、newOwnerが所有することになるすべてのデータ・ストアをリストアします。TimesTenシステム表(TTREPまたはSYSが所有)の所有権は変更できません。

このオプションの使用には、一定の注意が必要です。 -renameオプションを使用する場合は、次の点に注意してください。

  • 新しい所有者がAccess Control TimesTenインスタンス内のデータ・ストアへのアクセス権を付与されているユーザーでない場合でも、ttMigrateは所有者を変更し、エラーまたは警告を返しません。
  • 前の所有者名が存在しない場合、ttMigrateの処理の最後に警告が出力され、指定した所有者のオブジェクトの名前が変更されなかったことが示されます。
  • 新しい所有者でデータ・ストア・オブジェクトを作成してエラーが返された場合、ttMigrateはエラーを出力して残りのデータ・ストア・オブジェクトのリストアを続行します。
  • TTREPまたはSYSが所有する表の所有者は変更できません。
  • 表の所有者および表の名前がデータ・ストア内の別の表と同一になるように所有者名を変更すると、その表は正しくリストアされません。
  • ビューによって参照される表の所有者名を変更する場合は、ビューを削除して再作成することが必要になる場合があります。
  • レプリケートされた表の所有者を変更した場合、更新を正常にレプリケートするために、すべてのレプリケーション・ピアの表の所有者を変更する必要があります。

-repUpgrade

レプリケーションのアップグレードのための表のリストア時に、保存/リストアした表と元の表のレプリケーションでの互換性が保障されます。-cまたは-aオプションが指定されている場合、このオプションは無視されます。

ttMigrateユーティリティは、リストア・モードではデフォルトで-repUpgradeに設定されます。ttMigrateデータファイルからデータをリストアするとき、-repUpgradeオプションをサポートしていないttMigrateのバージョンで作成されたファイルの場合、または明示的に-noRepUpgradeを指定して(5.1より前のttMigrateバージョンで)作成されたファイルの場合、移行オブジェクトがレプリケーションの互換性により作成できなかったことを示すエラーが発生します。

このオプションはデフォルトで設定されます。-repUpgradeオプションをサポートしていないttMigrateのバージョンを使用した場合、または移行ファイルの作成時に-noRepUpgradeを明示的に指定した場合、レプリケーションの互換性により移行オブジェクトを作成できなかったことを示すエラーが発生します。

-repUpgradeオプションがサポートされているバージョンのttMigrateを移行元のTimesTenリリース用に取得するか、-repUpgradeがサポートされている場合は、デフォルトで-repUpgradeが設定されるTimesTenのバージョンにファイルを移行する際に、-noRepUpgradeを指定する必要があります。

-saveAsCharset

charset

データベース・キャラクタ・セット以外のキャラクタ・セットでオブジェクトを保存できます。オブジェクトを保存する際に、ttMigrateではデータベースのキャラクタ・セットがデフォルトで使用されます。

-updateStats

ttMigrateで、リストアされた表およびマテリアライズド・ビューの統計を更新することを指定します。-cまたは-a オプションを指定すると、このオプションは無視されます。

-estimateStatsおよび-updateStatsの両方を指定した場合、リストアされた表の統計は更新されますが、見積もられません。

このフラグを使用すると、マテリアライズド・ビューのリストアのパフォーマンスと、リストアされた表およびビューに対する問合せのパフォーマンスが向上する場合があります。

-v verbosity

ttMigrateがデータ・ストアの保存またはリストアを行うときに出力されるメッセージの冗長レベルを指定します。
メッセージの冗長レベルは、次のいずれかです。
0: エラーおよび警告のみを表示します。
1: 表の保存またはリストア時に、各表の名前を出力します。
2: 表や索引の保存またはリストア時に、各表または索引の名前を出力します。
3: (デフォルト)表や索引の保存またはリストア時に、各表または索引の名前を出力し、10,000行が保存またはリストアされるごとにドット(.)を出力します。
リスト、詳細リスト、説明および詳細説明の各モードでは、-vは無視されます。

-V | -version

ttMigrateのリリース番号を出力し、終了します。

次のオプションは、リストア・モード(-rと併用)にかぎり使用可能です。

-C chkPtFreq

chkPtFreqの値(MB)のデータをリストアするたびに、ttMigrateがデータ・ストアのチェック・ポイントを行うことを指定します。0(ゼロ)の値(デフォルト)は、ttMigrateがデータ・ストアのチェック・ポイントを行わないことを指定します。

-convertCGTypes

次の項目を使用して、基礎となるOracle表からTimesTenキャッシュ表への最適な型のマッピングを決定します。
  • Oracle表の列の型
  • 移行ファイルに保存された列の型
  • 前述した、TimesTen型とOracle型間のマッピング・ルール

このオプションが-convertTypesToOraまたは-convertTypesToTTオプションのいずれかとともに指定された場合、キャッシュされた表に対しては、このオプションが優先されます。このオプションは、キャッシュされていない表には影響しません。

-localhost hostName

レプリケートされた表をリストアする際に、ローカル・ホストの名前またはIPアドレスを明示的に指定するために使用できます。

-noCharsetConversion

タグ付きキャラクタ・セットではなく、データベース・キャラクタ・セットでデータをリストアします。-saveAsCharsetも参照してください。このオプションは、TIMESTEN8またはWE8ISO8895P1などの他のキャラクタ・セットとして、7.0より前のデータを7.0以降のリリースのTimesTenに移行し、データが実際に別のキャラクタ・セットになっている場合、旧TimesTenのユーザーには役立つ可能性があります。後で、そのデータを実際のキャラクタ・セットに従って解釈することが必要になった場合、このオプションを使用して、データの実際のキャラクタ・セットを使用しているデータ・ストアに、キャラクタ・セットを変換せずにデータを移行します。

モード

作成モード(-c)と追加モード(-a)

作成モードでは、ttMigrateが移行オブジェクトをTimesTenデータ・ストアから新規のバイナリ・データファイルに保存します。データファイルが存在しない場合には、ttMigrateによって作成されます。それ以外の場合は、ttMigrateは既存のファイルを上書きして、その内容を破棄します。

ttMigrateによって使用されるデータファイル形式は、TimesTenのいずれのリリースにも依存していないため、あるTimesTenリリースから別のリリースへデータを移行する場合にttMigrateを使用できます。

様々なリリースのTimesTenの移行オブジェクトを、1つのデータファイルに保存できます。

追加モードでは、ttMigrateは移行オブジェクトをTimesTenデータ・ストアから既存のデータファイルに追加します。データファイルが存在しない場合には、ttMigrateによって作成されます。

通常の(キャッシュされていない)各表について、ttMigrateは次のものを保存します。

各キャッシュ・グループについて、ttMigrateは次のものを保存します。

各ビューについて、ttMigrateは次のものを保存します。

各順序について、ttMigrateは次のものを保存します。

レプリケーション・スキームが定義されている場合、ttMigrateはレプリケーション・スキームを含むすべてのTTREP表を保存します。レプリケーション・スキームには、他のすべてのデータ・ストア・オブジェクトと異なる一意の名前を付ける必要があります。他のデータベース・オブジェクトと同じ名前のレプリケーション・スキームは移行できません。


注意: ttMigrateユーティリティは、-nrオプションを指定しなかった場合でも、キャッシュされた表の行をデータファイルに保存しません。キャッシュされた表の外部キー定義は、キャッシュ・グループの整合性を保つために必要となるため、-nfオプションの使用にかかわらず、常に保存されます。

デフォルトでは、ttMigrateは、表、ビュー、キャッシュ・グループ、順序およびレプリケーション・スキームなどの、データ・ストア内のすべてのデータ・ストア・オブジェクトをデータファイルに保存します。また、レプリケーション・スキームを除き、保存するデータ・ストア・オブジェクトのリストをコマンドラインに指定することもできます。このリスト内の名前には、ワイルド・カード文字の%(1文字以上に一致)と_(単一の文字に一致)を含めることができます。ttMigrateは、指定されたパターンのいずれかに一致する、すべてのデータ・ストア・オブジェクトを保存します。名前を完全修飾する必要はありません。所有者なしで名前を指定すると、ttMigrateは指定された名前またはパターンに一致するすべてのデータ・ストア・オブジェクトを所有者にかかわらず保存します。

キャッシュされた表は、キャッシュ・グループから独立させて保存することはできません。キャッシュされた表をコマンドラインでリストしても、対応するキャッシュ・グループもリストしなければ、ttMigrateはエラーを発行します。

-vオプションを使用して、保存の処理中にttMigrateによって出力される情報を制御します。

リストア・モード(-r)

リストア・モードでは、ttMigrateはすべてのデータ・ストア・オブジェクトをデータファイルからTimesTenデータ・ストアにリストアします。

通常の(キャッシュされていない)各表について、ttMigrateは次のものをリストアします。

各キャッシュ・グループについて、ttMigrateは次のものをリストアします。

デフォルトでは、リストア中に-repUpgradeオプションが設定されます。

デフォルトでは、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は表名、表の行数、表の列定義、主キーおよび外部キーを表示します。キャッシュされた表については、表の属性(PROPAGATEまたはREADONLY)および表のWHERE句(存在する場合)も表示します。

ビューについて、ttMigrateはビューを定義する問合せも表示します。

キャッシュ・グループについて、ttMigrateはキャッシュ・グループ名、キャッシュ・グループ内の表の数、キャッシュ・グループの持続時間を表示し、キャッシュ・グループ内のキャッシュされた各表について説明します。

レプリケーション・スキームについて、ttMigrateは、レプリケーション・スキーム名およびすべてのTTREPレプリケーション・スキーム表をユーザー表と同様の方法で表示します。

デフォルトでは、ttMigrateは、ファイル内のデータ・ストア・オブジェクトをすべて示します。また、コマンドラインにデータ・ストア・オブジェクトの名前のリストを表示することもできます。このリスト内の名前は完全修飾する必要があり、ワイルド・カード文字は使用できません。

詳細説明モード(-D)

詳細説明モードでは、ttMigrateは指定したファイル内のデータ・ストア・オブジェクトに関する詳細な説明を提供します。

各表について、ttMigrateは表名、表の行数、表の列定義、主キー、外部キーおよび索引定義を表示します。キャッシュされた表については、表の属性(PROPAGATEまたはREADONLY)および表のWHERE句(存在する場合)も表示します。

キャッシュ・グループについて、ttMigrateはキャッシュ・グループ名、キャッシュ・グループ内の表の数、キャッシュ・グループの持続時間を表示し、キャッシュ・グループ内のキャッシュされた各表について説明します。

順序について、ttMigrateは順序の現在の値に加えて、その順序の定義に使用されたすべての値を表示します。

レプリケーション・スキームについて、ttMigrateは、すべてのTTREPレプリケーション・スキーム表をユーザー表と同様の方法で表示します。

デフォルトでは、ttMigrateは、ファイル内のデータ・ストア・オブジェクトをすべて示します。また、コマンドラインにデータ・ストア・オブジェクトの名前のリストを表示することもできます。このリスト内の名前は完全修飾する必要があり、ワイルド・カード文字は使用できません。

TimesTenデータ型からOracleデータ型への変換

TimesTen 7.0では、TimesTenとOracleの両方のデータ型がサポートされています。以前のバージョンのTimesTenからTimesTen 7.0にデータ・ストアを移行する場合、データ・ストアのデータ型をデフォルトのOracle型モードに変換できます。ただし、これは必須ではありません。

レプリケーションの場合は、レプリケーション・スキーム内のレプリケーションする側とされる側のデータ型モードが同じであることが必要です。したがって、7.0より前のTimesTenリリースではOracleデータ型がサポートされていないため、オンライン・アップグレードの一部としてデータ型を変換することはできません。


注意: -convertTypesToOraが指定されていて、データ・ストアに精度が38を超えるDECIMAL(またはNUMERIC)列が存在する場合、その列は精度が38のNUMBER列に変換され、警告が返されます。列に値が存在する場合にこの変換が行われると、精度38でオーバーフローまたはアンダーフローし、値は精度38のNUMBER型が取り得る最大値に減らされるか、または最小値に増やされます。このような事例が考えられるため、データ型の変換処理(-convertTypesToOraおよび-convertTypesToTTを使用)では、元のデータ型に戻せる状態になることは保証されていません。TimesTen型からOracle型に変換し、再度TimesTen型に変換すると、場合によっては最初と異なる列およびデータになる可能性があります。

TimesTenデータ型からOracleデータ型に変換するには、-convertTypesToOraオプションを使用します。

-convertTypesToOraオプションは、ttMigrateで表の保存またはリストアを行う際に、次の型変換を実行するようにttMigrateに指示します。

変換前のTimesTen型
変換後のOracle型
TT_CHAR
ORA_CHAR
TT_VARCHAR
ORA_VARCHAR2
TT_NCHAR
ORA_NCHAR
TT_NVARCHAR
ORA_NVARCHAR2
TT_DECIMAL
ORA_NUMBER
TT_DATE
ORA_DATE (12:00:00 amが追加されます。)
TT_TIMESTAMP
ORA_TIMESTAMP(6)


注意: データ型がTT_TINYINT、TT_SMALLINT、TT_INTEGER、TT_BIGINT、BINARY_FLOAT、BINARY_DECIMAL、TT_BINARY、TT_VARBINARYおよびTT_TIMEの列は、変換されません。

データ型の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のデータ型に関する説明を参照してください。

Oracleデータ型からTimesTenデータ型への変換

7.0より前のリリースではOracleデータ型がサポートされていないため、TimesTenリリース7.0から下位バージョンのTimesTenに表を移行する際に、Oracleデータ型をTimesTenデータ型に変換する必要があります。

Oracleデータ型からTimesTenデータ型に変換するには、-convertTypesToTTオプションを使用します。

-convertTypesToTTオプションは、ttMigrateユーティリティで表の保存またはリストアを行う際に、次の型変換を実行するようにttMigrateに指示します。

変換前のOracle型
変換後のTimesTen型
ORA_CHAR
TT_CHAR
ORA_VARCHAR2
TT_VARCHAR
ORA_NCHAR
TT_NCHAR
ORA_NVARCHAR2
TT_NVARCHAR
ORA_NUMBER
TT_DECIMAL
ORA_DATE
TT_DATE (日付の時間部分が暗黙で切り捨てられます。)
ORA_TIMESTAMP
TT_TIMESTAMP

データ型の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のデータ型に関する説明を参照してください。

キャッシュ・グループのデータ型の変換

リリース7.0より前のTimesTenからキャッシュ・グループを含むデータ・ストアをリストアする場合は、 -convertCGTypesオプションを使用して、7.0より前の型と、キャッシュ・グループに関連付けられているOracleデータベースの列のデータ型を正確にマッピングして、列のデータ型を変換します。

次の表に、型のマッピングを示します。

7.0より前のTimesTen型
Oracle型
変換後の型
TINYINT
NUMBER(p,s) s > 0の場合
NUMBER(p,s)
その他
TT_TINYINT
SMALLINT
NUMBER(p,s) s > 0の場合
NUMBER(p,s)
その他
TT_SMALLINT
INTEGER
NUMBER(p,s) s > 0の場合
NUMBER(p,s)
その他
TT_INTEGER
BIGINT
NUMBER(p,s) s > 0の場合
NUMBER(p,s)
その他
TT_BIGINT
NUMERIC(p,s)
DECIMAL(p,s)
NUMBER
NUMBER
NUMERIC(p,s)
DECIMAL(p,s)
NUMBER(x,y)
NUMBER(x,y)
NUMERIC(p,s)
DECIMAL(p,s)
FLOAT(x)
NUMBER(p,s)
REAL
任意1
BINARY_FLOAT
DOUBLE
任意1
BINARY_DOUBLE
FLOAT(x) x <=24
任意1
BINARY_FLOAT
FLOAT(x) x >= 24
任意1
BINARY_DOUBLE
CHAR(x)
任意1
ORA_CHAR(x)
VARCHAR(x)
任意1
ORAVARCHAR2(x)
BINARY(x)
任意1
TT_BINARY(x)
VARBINARY(x)
任意1
TT_VARBINARY(x)
DATE
DATE
ORA_DATE
TIMESTAMP
DATE
ORA_DATE
TIME
DATE
ORA_DATE
任意1
TIMESTAMP(m)
ORA_TIMESTAMP(m)

1 「任意」は、型の値が変換後の型に影響しないことを示します。

データ型の詳細は、『Oracle TimesTen In-Memory Database SQLリファレンス・ガイド』のデータ型に関する説明と、『Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド』のCache Connect to Oracleのデータ型マッピングに関する説明を参照してください。

次のコマンドでは、すべてのデータ・ストア・オブジェクトが、データ・ストアSalesDSからファイルsales.ttmにダンプされます。sales.ttmがすでに存在している場合は、ttMigrateによって上書きされます。

ttMigrate -c DSN=SalesDS sales.ttm

次のコマンドでは、ユーザーMARYが所有するSalesDSデータ・ストア内のすべてのデータ・ストア・オブジェクトをsales.ttmに追加します。

ttMigrate -a DSN=SalesDS sales.ttm MARY.%

次のコマンドでは、sales.ttmのすべてのデータ・ストア・オブジェクトをSalesDSデータ・ストアにリストアします。

ttMigrate -r DSN=SalesDS sales.ttm

次のコマンドでは、sales.ttmMARY.PENDINGおよびMARY.COMPLETEDSalesDSデータ・ストアにリストアします(移行オブジェクトでは大/小文字は無視されます)。

ttMigrate -r DSN=SalesDS sales.ttm MARY.PENDING  MARY.COMPLETED

このコマンドでは、sales.ttmに保存されたすべての移行オブジェクトを表示します。

ttMigrate -l sales.ttm

注意

現行リリースの機能をサポートしていないOracle TimesTen In-Memory Databaseのリリースに対して下位方向の移行を行う場合、通常、TimeTenは警告を発行し、サポートされていない機能を移行せずに処理を続行します。オブジェクトの変換を実行済の場合、まれに、ttMigrateが失敗し、エラー・メッセージが返されることがあります。データ型、キャラクタ・セットおよび主キー表現の変換が行われた場合に失敗することがあります。

次の制約、制限およびアドバイスを検討してから、ttMigrateを使用する準備をしてください。

キャッシュ・グループ: リストア・モードでは、表間に外部キーの依存性がある場合は、ttMigrateで表の順番を整理しなおして、子表が親表より先にリストアされないようにすることが必要になる場合があります。

キャッシュ・グループを含むデータ・ストアを以前のリリースのTimesTenからTimesTen 7.0以降のリリースに移行する場合、オプション-convertTypesToOraを使用する必要があります。データ型のマッピングに関する説明は、「キャッシュ・グループのデータ型の変換」を参照してください。

キャッシュされた表内の文字型の列は、長さのみでなくバイト・セマンティクスも、基礎となるOracle表と同じであることが必要です。キャッシュされた表に、長さまたは長さセマンティクスの不一致がある場合、キャッシュ・グループの移行は失敗します。

キャラクタ・セット: デフォルトでは、-saveAsCharsetオプションを指定しないかぎり、ttMigrateは表データをデータベース・キャラクタ・セットで保存します。異なるデータベース・キャラクタ・セットのデータ・ストアに表を移行することにより、他のキャラクタ・セットへの変換がリストア時に実行されます。7.0より前のリリースのTimesTenからデータを移行する場合、TimesTenは、データがすでに移行先のデータベース・キャラクタ・セットになっていると想定します。データのデータベース・キャラクタ・セットが移行先のデータベースと同じでない場合、データが正しくリストアされない可能性があります。

NLSがサポートされているがデータベース・キャラクタ・セットが異なる2つのデータ・ストアの間で、バイト長セマンティクスが指定された列を移行する場合、新しいデータベース内の列の長さが、移行ファイルに含まれる値を保持するのに十分でない場合、移行が失敗する可能性があります。たとえば、移行元データ・ストアでは最大バイト長が4のキャラクタ・セットを使用していて、移行先データ・ストアでは最大バイト長が2のキャラクタ・セットを使用している場合に移行が失敗する可能性があります。

TimesTenでは、キャラクタ・セットの変換が行われる場合に常に警告を発行し、変換によるデータの損失の可能性を知らせます。

データ型の変換:

7.0より前のTimesTenからデータを移行する場合、-convertTypesToOraまたは-convertTypesToTTオプションのいずれかを使用して、データ型の変換を明示的にリクエストする必要があります。

ttMigrateでは、CHARまたはVARCHAR列の長さセマンティクスの注釈(BYTEまたはCHAR)が保存され、これらがサポートされているTimesTenのリリースにリストアする際に、これらの注釈がリストアされます。これらの注釈がサポートされていないTimesTenリリースに下位方向の移行を行う場合、文字長セマンティクスが指定された列はBYTE長による指定に変換されますが、元の列のバイト長と一致するように長さが調整されます。これらの注釈がサポートされていないリリースから上位方向に移行する場合、バイト長セマンティクスが使用されます。

外部キーの依存性: リストア・モードでは、表間に外部キーの依存性がある場合は、ttMigrateで表の順番を整理しなおして、子表が親表より先にリストアされないようにすることが必要になる場合があります。このような依存性により、親表が1つでもリストアされなかった場合に子表がリストアされるのを回避することもできます。たとえば、表Bに対して外部キーの依存性を持つ表Aをリストアする場合、ttMigrateは最初に表Bがデータ・ストアに存在することを確認します。表Bが検出されない場合、ttMigrateは表Bがリストアされるまで表Aのリストアを遅らせます。表BがttMigrateセッションの一部としてリストアされない場合、依存性を解決できなかったため表Aがリストアされなかったことを示すエラー・メッセージがTimesTenによって出力されます。

索引: TimesTenでは、この機能をサポートしているTimesTenの各リリースの主キー索引としてTツリーをサポートします。主キー索引としてのTツリーがサポートされていないリリースに下位方向の移行を行う場合、主キーはデフォルト・サイズのハッシュ索引としてリストアされます。主キー索引としてのTツリーがサポートされていないリリースから上位方向の移行を行う場合、主キーは元の索引と同じサイズのハッシュ索引としてリストアされます。

INLINE列: INLINE可変長列を含むTimesTen表を、5.1より前のリリースのTimesTenに移行する場合は、明示的に-noRepUpgradeオプションを使用する必要があります。デフォルトの-repUpgradeオプションを使用すると、エラーが発生します。-inlineオプションを使用して他の指定をしないかぎり、列のINLINE属性は保持されます。

レプリケーション: レプリケートされたデータ・ストア全体の移行を実行する前に、移行元データ・ストアと移行先データ・ストアのホスト名とデータ・ストア名が同じであることを確認する必要があります。

その他の注意事項: ttMigrateではバイナリ形式が使用されるため、次の処理には使用できません。

プラットフォーム: 2つのプラットフォームが32-bitと64-bitであること以外は同じである場合、ttMigrateを使用して2つのプラットフォーム間でデータ・ストアを移行できます。『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』の例を参照してください。

関連項目

ttBackupttBackupユーティリティは、データ・ストアをバックアップします。これは特定の状態でデータ・ストアのスナップショットを作成するのに役立ちます。

ttBulkCpttBulkCpユーティリティは、表をASCIIファイルに保存します。これは表への行の追加、プラットフォーム間でのTimesTenデータ・ストアの移行、他のアプリケーションからのデータのインポートで役立ちます。

ttRestorettRestoreユーティリティは、ttBackupユーティリティを使用してバックアップされたデータ・ストアをリストアします。