24 オリジナルのエクスポート
オリジナルのエクスポート・ユーティリティ(exp
)により、Oracle Databaseのデータをオペレーティング・システムのファイルにバイナリ形式で書き込みます。このファイルはデータベースの外部に格納されるため、オリジナルのインポート・ユーティリティを使用して、別のOracle Databaseに読み込むことができます。
ノート:
オリジナルのエクスポートは、Oracle Database 11gからは原則としてサポートされなくなりました。Oracle Database 11gで唯一サポートされているオリジナルのエクスポートの使用法は、XMLType
データのOracle Database 10gリリース2 (10.2)以前への下位移行です。したがって、オリジナルのエクスポートおよびインポートが必要な次の場合を除いて、データ・ポンプ・エクスポートおよびインポート・ユーティリティを使用することをお薦めします。
-
オリジナルのエクスポート・ユーティリティ(
exp
)を使用して作成されたファイルをインポートする必要がある。 -
オリジナルのインポート・ユーティリティ(
imp
)を使用してインポートされるファイルをエクスポートする必要がある。このような例として考えられるのは、Oracle Database 10gからデータをエクスポートし、それより前のデータベース・リリースにインポートする場合です。
次のトピックを参照してください。
- エクスポート・ユーティリティとは
- エクスポート・ユーティリティを使用する前に
- エクスポート・ユーティリティの起動
- エクスポート・モード
- エクスポート・パラメータ
- エクスポート・セッションの例
- 警告、エラーおよび完了メッセージ
- 終了コードによる結果の検査と表示
- 従来型パス・エクスポートとダイレクト・パス・エクスポート
- ダイレクト・パス・エクスポートの起動
- ネットワークに関する考慮点
- 文字セットおよびグローバリゼーション・サポートに関する考慮点
- エクスポート・ユーティリティおよびインポート・ユーティリティでのインスタンス親和性の使用
- データベース・オブジェクトのエクスポート時の考慮点
- トランスポータブル表領域
- 読取り専用データベースからのエクスポート
- エクスポート・ユーティリティおよびインポート・ユーティリティを使用したデータベース移行のパーティション化
- リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用
親トピック: その他のユーティリティ
24.1 エクスポート・ユーティリティとは
エクスポート・ユーティリティでは、異なるハードウェアおよびソフトウェア構成を持つプラットフォームに存在している場合でもOracle Database間で簡単にデータ・オブジェクトを転送できます。
Oracle Databaseに対してエクスポート・ユーティリティを実行すると、オブジェクト(表など)が抽出された後で、存在しているその関連のオブジェクト(索引、コメント、権限など)が抽出されます。
エクスポート・ファイルは、通常はディスクまたはテープに格納されるOracleバイナリ形式のダンプ・ファイルです。ダンプ・ファイルは、FTPを使用して転送するか、物理的に(テープの場合)異なる場所に転送できます。その後は、ファイルにインポート・ユーティリティを使用して、ネットワークで接続されていないシステム上のデータベース間でデータを転送できます。このファイルは、通常のバックアップ手順を行った上で、バックアップとして使用することもできます。
エクスポート・ダンプ・ファイルは、Oracleのインポート・ユーティリティのみで読み取ることができます。ダンプ・ファイルの作成に使用したエクスポート・ユーティリティより前のバージョンのインポート・ユーティリティは使用できません。
実際にインポートを実行せずに、エクスポート・ファイルの内容を表示することもできます。これを行うには、Import SHOWパラメータを使用します。詳細は、「SHOW」を参照してください。ASCII固定形式またはデリミタ付きファイルからデータをロードするには、SQL*Loaderユーティリティを使用します。
親トピック: オリジナルのエクスポート
24.2 エクスポート・ユーティリティを使用する前に
エクスポート・ユーティリティを使用する前に、次のことを行う必要があります(詳細は以降の項を参照してください)。
-
データベースを手動で作成した場合は、
catexp.sql
またはcatalog.sql
スクリプトが実行されたことの確認。Database Configuration Assistant(DBCA)を使用してデータベースを作成した場合は、これらのスクリプトを実行する必要はありません。 -
エクスポート・ファイルを書き込むための十分なディスクまたはテープ記憶域が存在することの確認
-
必要なアクセス権限を所有していることの確認
親トピック: オリジナルのエクスポート
24.2.1 catexp.sqlまたはcatalog.sqlの実行
エクスポート・ユーティリティを使用するには、データベースを作成するかまたは新しいリリースに移行した後で、スクリプトcatexp.sql
または(catexp.sql
を実行する)catalog.sql
を実行する必要があります。
データベースに対して、catexp.sql
またはcatalog.sql
を実行するのは1回のみです。スクリプトを実行すると、次の処理が行われ、データベースはエクスポートおよびインポート操作に備えて調整されます。
-
DBA
ロールへのEXP_FULL_DATABASE
およびIMP_FULL_DATABASE
の割当て -
インストールされている
catexp.sql
のバージョンの記録
EXP_FULL_DATABASE
ロールおよびIMP_FULL_DATABASE
ロールは強力です。これらのロールをユーザーに付与する際は、十分に注意する必要があります。
親トピック: エクスポート・ユーティリティを使用する前に
24.2.2 エクスポート操作に必要な十分なディスク領域の確保
エクスポートを実行する前に、エクスポート・ファイルを書き込むための十分なディスクまたはテープのストレージが存在することを確認してください。十分な領域がないと、エクスポート・ユーティリティは書込み失敗エラーが発生して終了します。
表のサイズから、必要な最大領域を見積もることもできます。表のサイズは、Oracleデータ・ディクショナリのUSER_SEGMENTS
ビューで確認できます。次の問合せでは、すべての表のディスク使用率が表示されます。
SELECT SUM(BYTES) FROM USER_SEGMENTS WHERE SEGMENT_TYPE='TABLE';
問合せの結果には、LOB(ラージ・オブジェクト)またはVARRAY
列あるいはパーティション表に格納されているデータ用のディスク領域は含まれません。
関連項目:
ディクショナリ・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください
親トピック: エクスポート・ユーティリティを使用する前に
24.2.3 エクスポート操作およびインポート操作のアクセス権の確認
エクスポート・ユーティリティを使用するには、Oracle Databaseに対するCREATE SESSION
権限が必要です。この権限は、データベースの作成時に設定されるCONNECT
ロールに含まれます。別のユーザーが所有している表をエクスポートするには、EXP_FULL_DATABASE
ロールを有効にする必要があります。このロールは、すべてのデータベース管理者(DBA)に付与されます。
EXP_FULL_DATABASE
ロールに含まれているシステム権限を持っていないと、別のユーザーのスキーマ内のオブジェクトをエクスポートできません。たとえば、そのシノニムを作成した場合でも、別のユーザーのスキーマ内の表をエクスポートできません。
一部のシステム・スキーマは、ユーザー・スキーマではないため、エクスポートできません。システム・スキーマには、Oracleが管理するデータおよびメタデータが含まれています。エクスポートされないスキーマの例としては、SYS
、ORDSYS
、MDSYS
などがあります。
親トピック: エクスポート・ユーティリティを使用する前に
24.3 エクスポート・ユーティリティの起動
次のいずれかの方法を使用して、エクスポート・ユーティリティの起動およびパラメータの指定ができます。
-
コマンドライン・エントリ
-
パラメータ・ファイル
-
対話方式モード
これらのいずれかの方法を使用する前に、使用可能なパラメータについての説明を必ず読んでください。「エクスポート・パラメータ」を参照してください。
24.3.1 SYSDBAでのエクスポート・ユーティリティの起動
SYSDBA
は内部的に使用され、一般ユーザーとは異なる特別な機能を持ちます。そのため、通常、次の場合以外は、エクスポート・ユーティリティをSYSDBA
で起動する必要はありません。
-
Oracleサポート・サービスから要求された場合
-
トランスポータブル表領域セットをインポートする場合
親トピック: エクスポート・ユーティリティの起動
24.3.2 コマンドライン・エントリ
次の構文を使用して、すべての有効なパラメータおよびその値をコマンドラインから指定できます(ユーザー名とパスワードを入力するように要求されます)。
exp PARAMETER=value
または
exp PARAMETER=(value1,value2,...,valuen)
システムでのコマンドラインの最大長を超える数のパラメータは指定できません。
親トピック: エクスポート・ユーティリティの起動
24.3.3 パラメータ・ファイル
パラメータ・ファイルに、すべての有効なパラメータおよびその値を指定できます。複数のパラメータを1つのファイルに格納することによって、これらを簡単に変更したり再利用することができます。これは、エクスポート・ユーティリティの起動にも推奨される方法です。データベースごとに別のパラメータを使用する場合は、複数のパラメータ・ファイルを作成できるので、それぞれにパラメータ・ファイルを用意すると便利です。
フラット・ファイル用のテキスト・エディタを使用してパラメータ・ファイルを作成します。コマンドライン・オプションPARFILE=
filename
を指定すると、エクスポート・ユーティリティは、コマンドラインからではなく指定されたファイルからパラメータを読み込みます。例:
パラメータ・ファイル指定の構文は、次のいずれかを使用します。
PARAMETER=value PARAMETER=(value) PARAMETER=(value1, value2, ...)
次に、パラメータ・ファイル内のリストの一部を示します。
FULL=y FILE=dba.dmp GRANTS=y INDEXES=y CONSISTENT=y
シャープ(#)記号を使用すると、パラメータ・ファイルにコメントを追加できます。シャープ(#)の右側にある文字はすべて無視されます。
コマンドラインでのパラメータの入力と同時にパラメータ・ファイルを指定できます。実際、パラメータ・ファイルとコマンドラインの両方に同じパラメータを指定することもできます。コマンドラインでのPARFILE
パラメータと他のパラメータの位置によって、優先されるパラメータが決まります。たとえば、パラメータ・ファイルparams.dat
にパラメータINDEXES=y
を指定し、エクスポート・ユーティリティを次のコマンドラインで起動するとします。
exp PARFILE=params.dat INDEXES=n
この場合、INDEXES=n
はPARFILE=params.dat
の後にあるため、パラメータ・ファイルに指定されているINDEXES
パラメータの値は、INDEXES=n
によって上書きされます。
親トピック: エクスポート・ユーティリティの起動
24.3.4 対話方式モード
各パラメータの値をプロンプトで入力するには、コマンドラインでexp
を指定します。プロンプトでユーザー名とパスワードを入力した後、一般的に使用されるパラメータが表示されます。
デフォルトのパラメータ値を受け入れるか(示された場合)、または異なる値を入力できます。コマンドライン対話方式では、すべての機能に関してプロンプトが表示されるわけではありません。また、コマンドライン対話方式は下位互換用のみに提供されています。対話方式のインタフェースを使用する場合は、Oracle Enterprise Managerのエクスポート・ウィザードを使用することをお薦めします。
24.3.4.1 対話方式でのエクスポートを使用する際の制限事項
対話方式による方法を使用する場合は、次のことに注意してください。
-
ユーザー・モードでは、データをエクスポートする前にすべてのユーザー名をエクスポートに含めるように要求されます。ユーザー・リストの終わりを指定して現在のエクスポート・セッションを開始するには、[Enter]を押します。
-
表モードでは、スキーマの接頭辞を指定しないと、デフォルトによりエクスポート実行者のスキーマ、または現在のセッション内の最後にエクスポートされた表が含まれているスキーマになります。
たとえば、
beth
が表モードでエクスポートする特権ユーザーの場合、別のスキーマが指定されるまで、すべての表がbeth
スキーマに存在するとみなされます。別のユーザーのスキーマ内の表をエクスポートできるのは、特権ユーザー(EXP_FULL_DATABASE
ロールを持っているユーザー)のみです。 -
エクスポートする表を指定するプロンプトで、NULL表リストを指定すると、エクスポート・ユーティリティは終了します。
親トピック: 対話方式モード
24.4 エクスポート・モード
エクスポート・ユーティリティには、次の4種類の操作モードがあります。
-
全体エクスポート: データベース全体をエクスポートします。
EXP_FULL_DATABASE
ロールを所有するユーザーのみが使用できます。FULL
パラメータを使用してこのモードを指定します。 -
表領域モード: 特権ユーザーが表領域をOracle Database間で移動できます。
TRANSPORT_TABLESPACE
パラメータを使用してこのモードを指定します。 -
ユーザー・モード: 所有するすべてのオブジェクト(表、権限、索引、プロシージャなど)をエクスポートできます。特権ユーザーがユーザー・モードでインポートする場合、指定したユーザー・グループのユーザーのスキーマにあるすべてのオブジェクトをインポートできます。エクスポート・ユーティリティで
OWNER
パラメータを使用してこのモードを指定します。 -
表モード: 特定の表およびパーティションをエクスポートできます。特権ユーザーは、インポートする表を含むスキーマを指定して、その表を修飾できます。スキーマ名が指定されていない表は、デフォルトでエクスポート実行者のスキーマ名になります。
TABLES
パラメータを使用してこのモードを指定します。
表24-1に、各モードでエクスポートおよびインポートされるオブジェクトのリストを示します。
ノート:
遅延セグメント作成によって作成された表に、作成されたセグメントがない場合、オリジナルのエクスポート・ユーティリティではエクスポートされません。セグメントを作成する最も一般的な方法は表に行を格納することですが、ALTER TABLE ALLOCATE EXTENTS
のような他の操作では、セグメントも作成されます。セグメントが存在する表をエクスポートすると、SEGMENT CREATION DEFERRED
句は、オリジナルのインポート・ユーティリティによって実行されるCREATE TABLE
文に含まれません。
従来型パス・エクスポートまたはダイレクト・パス・エクスポートを使用すると、表領域モード以外のどのモードでもエクスポートできます。従来型パス・エクスポートとダイレクト・パス・エクスポートの違いについては、「従来型パス・エクスポートとダイレクト・パス・エクスポート」を参照してください。
表24-1 各モードでエクスポートされるオブジェクト
オブジェクト | 表モード | ユーザー・モード | 全データベース・モード | 表領域モード |
---|---|---|---|---|
分析クラスタ |
なし |
あり |
あり |
なし |
分析表/統計 |
あり |
あり |
あり |
あり |
アプリケーション・コンテキスト |
なし |
なし |
あり |
なし |
監査情報 |
あり |
あり |
あり |
なし |
Bツリー索引、ビットマップ索引、ドメイン・ファンクション索引 |
あり脚注1 |
あり |
あり |
あり |
クラスタ定義 |
なし |
あり |
あり |
あり |
列コメントおよび表コメント |
あり |
あり |
あり |
あり |
データベース・リンク |
なし |
あり |
あり |
なし |
デフォルト・ロール |
なし |
なし |
あり |
なし |
ディメンション |
なし |
あり |
あり |
なし |
ディレクトリ別名 |
なし |
なし |
あり |
なし |
外部表(データなし) |
あり |
あり |
あり |
なし |
外部関数ライブラリ |
なし |
あり |
あり |
なし |
表の所有者以外のユーザーが所有する索引 |
あり(特権ユーザーのみ) |
あり |
あり |
あり |
索引タイプ |
なし |
あり |
あり |
なし |
JavaリソースおよびJavaクラス |
なし |
あり |
あり |
なし |
ジョブ・キュー |
なし |
あり |
あり |
なし |
ネストした表のデータ |
あり |
あり |
あり |
あり |
オブジェクト権限 |
あり(表および索引のみ) |
あり |
あり |
あり |
表で使用されるオブジェクト型定義 |
あり |
あり |
あり |
あり |
オブジェクト型 |
なし |
あり |
あり |
なし |
演算子 |
なし |
あり |
あり |
なし |
パスワード履歴 |
なし |
なし |
あり |
なし |
インスタンスの事後処理およびオブジェクト |
なし |
なし |
あり |
なし |
スキーマの事後プロシージャ処理およびオブジェクト |
なし |
あり |
あり |
なし |
表の事後処理 |
あり |
あり |
あり |
あり |
表の事後プロシージャ処理およびオブジェクト |
あり |
あり |
あり |
あり |
スキーマの事前プロシージャ・オブジェクトおよび処理 |
なし |
あり |
あり |
なし |
表の事前処理 |
あり |
あり |
あり |
あり |
表の事前プロシージャ処理 |
あり |
あり |
あり |
あり |
プライベート・シノニム |
なし |
あり |
あり |
なし |
プロシージャ・オブジェクト |
なし |
あり |
あり |
なし |
プロファイル |
なし |
なし |
あり |
なし |
パブリック・シノニム |
なし |
なし |
あり |
なし |
参照整合性制約 |
あり |
あり |
あり |
なし |
リフレッシュ・グループ |
なし |
あり |
あり |
なし |
リソース・コスト |
なし |
なし |
あり |
なし |
ロール権限 |
なし |
なし |
あり |
なし |
ロール |
なし |
なし |
あり |
なし |
ロールバック・セグメント定義 |
なし |
なし |
あり |
なし |
表のセキュリティ・ポリシー |
あり |
あり |
あり |
あり |
順序番号 |
なし |
あり |
あり |
なし |
スナップショット・ログ |
なし |
あり |
あり |
なし |
スナップショットおよびマテリアライズド・ビュー |
なし |
あり |
あり |
なし |
システム権限 |
なし |
なし |
あり |
なし |
表制約(主キー制約、一意制約、CHECK制約) |
あり |
あり |
あり |
あり |
表データ |
あり |
あり |
あり |
あり |
表定義 |
あり |
あり |
あり |
あり |
表領域定義 |
なし |
なし |
あり |
なし |
表領域割当て制限 |
なし |
なし |
あり |
なし |
トリガー |
あり |
あり脚注2 |
あり脚注3 |
あり |
他のユーザーが所有するトリガー |
あり(特権ユーザーのみ) |
なし |
なし |
なし |
ユーザー定義 |
なし |
なし |
あり |
なし |
ユーザー・プロキシ |
なし |
なし |
あり |
なし |
ユーザー・ビュー |
なし |
あり |
あり |
なし |
ユーザー・ストアド・プロシージャ、ユーザー・ストアド・パッケージおよびユーザー・ストアド・ファンクション |
なし |
あり |
あり |
なし |
脚注1
非特権ユーザーがエクスポートおよびインポートできるのは、そのユーザー自身が所有する表に関する索引のみです。他のユーザーが所有する表に関する索引や、ユーザー自身が所有する表に関して他のユーザーが作成した索引はエクスポートできません。特権ユーザーは、エクスポートおよびインポート対象に指定したユーザーの表に関する索引が、表の所有者以外のユーザーが作成したものであっても、その索引をエクスポートおよびインポートできます。指定したユーザーが他のユーザーの表に関する索引を所有しているときは、エクスポートするユーザーのリストに表の所有者であるユーザーを指定しないかぎり、その索引はエクスポートされません。
脚注2
特権ユーザーも非特権ユーザーも、そのユーザー自身が所有するすべてのトリガーを(他のユーザーが所有する表に関するトリガーの場合でも)、エクスポートおよびインポートできます。
脚注3
全体エクスポートでは、スキーマSYSが所有するトリガーはエクスポートされません。SYSトリガーは、全体インポートの前後のいずれかに手動で再作成する必要があります。このトリガーによってインポートの進行を妨げるような処理が定義されないように、インポートの後に再作成することをお薦めします。
24.4.1 表レベル・エクスポートおよびパーティション・レベル・エクスポート
表、パーティションおよびサブパーティションのエクスポートは、次のように実行できます。
-
表レベル・エクスポート: 指定された表からすべてのデータをエクスポートします。
-
パーティション・レベル・エクスポート: 指定されたソース・パーティションまたはサブパーティションのデータのみエクスポートします。
どのモードでも、パーティションデータは、パーティションまたはサブパーティションを選択してインポートできる形式でエクスポートされます。
24.4.1.1 表レベル・エクスポート
表レベル・エクスポートでは、その索引や他の表依存オブジェクトとともに表(パーティション表および非パーティション表)全体をエクスポートできます。表がパーティション化されている場合は、そのすべてのパーティションとサブパーティションもエクスポートされます。これは、ダイレクト・パス・エクスポートと従来型パス・エクスポートの両方に当てはまります。どのエクスポート・モードでも、表レベル・エクスポートを実行できます。
24.4.1.2 パーティション・レベル・エクスポート
パーティション・レベル・エクスポートでは、表内の指定された1つ以上のパーティションまたはサブパーティションをエクスポートできます。パーティション・レベル・エクスポートは、表モードでのみ実行できます。
表レベルおよびパーティション・レベルのエクスポートを指定する方法の詳細は、「TABLES」を参照してください。
24.5 エクスポート・パラメータ
この項では、エクスポート・コマンドライン・パラメータについて説明します。
- BUFFER
- COMPRESS
- CONSISTENT
- CONSTRAINTS
- DIRECT
- FEEDBACK
- FILE
- FILESIZE
- FLASHBACK_SCN
- FLASHBACK_TIME
- FULL
- GRANTS
- HELP
- INDEXES
- LOG
- OBJECT_CONSISTENT
- OWNER
- PARFILE
- QUERY
- RECORDLENGTH
- RESUMABLE
- RESUMABLE_NAME
- RESUMABLE_TIMEOUT
- ROWS
- STATISTICS
- TABLES
- TABLESPACES
- TRANSPORT_TABLESPACE
- TRIGGERS
- TTS_FULL_CHECK
- USERID (ユーザー名/パスワード)
- VOLSIZE
親トピック: オリジナルのエクスポート
24.5.1 BUFFER
デフォルト: オペレーティング・システムによって異なります。このパラメータのデフォルト値については、ご使用のオペレーティング・システム固有のOracleマニュアルを参照してください。
行のフェッチに使用するバッファのサイズをバイト単位で指定します。その結果、エクスポート・ユーティリティによってフェッチされる配列内の行の最大数が決まります。次の式を使用して、バッファ・サイズを計算します。
buffer_size = rows_in_array * maximum_row_size
ゼロを指定すると、1回に1行のみをフェッチします。
LOB型、LONG
型、BFILE
型、REF
型、ROWID
型、LOGICAL
ROWID
型またはDATE
型の列を持つ表は、1回に1行ずつフェッチされます。
ノート:
BUFFER
パラメータは、従来型パス・エクスポートのみに適用されます。ダイレクト・パス・エクスポートには影響しません。ダイレクト・パス・エクスポートの場合は、RECORDLENGTH
パラメータを使用して、エクスポート・ユーティリティでエクスポート・ファイルへの書き込みに使用されるバッファのサイズを指定します。
親トピック: エクスポート・パラメータ
24.5.1.1 例: バッファ・サイズの計算
この項では、バッファ・サイズを計算する方法の例を示します。
次の表が作成されます。
CREATE TABLE sample (name varchar(30), weight number);
name
列の最大サイズは、30バイトにインジケータ用の2バイトを加えた値です。weight
列の最大サイズは、22バイト(Oracle数値の内部表現のサイズ)にインジケータ用の2バイトを加えた値です。
したがって、最大行サイズは56(30+2+22+2)です。
100行の配列操作を実行するには、バッファ・サイズを5600に指定する必要があります。
親トピック: BUFFER
24.5.2 COMPRESS
エクスポート・ユーティリティおよびインポート・ユーティリティで、表データの初期エクステントをどのように管理するかを指定します。
エクスポート・ユーティリティでは、デフォルトによりCOMPRESS=y
によって、インポート時に1つの初期エクステントに統合するためのフラグが表データに設定されます。エクステント・サイズが大きいと(たとえば、PCTINCREASE
パラメータが使用されているため)、割り当てられる領域がデータの保持に必要な領域よりも大きくなります。
COMPRESS=n
を指定すると、エクスポート・ユーティリティでは初期エクステント・サイズと次のエクステント・サイズの値を含めた現在の記憶域パラメータが使用されます。パラメータの値には、CREATE TABLE
文またはALTER TABLE
文で指定された値、あるいはデータベース・システムによって変更された値を使用できます。たとえば、NEXT
エクステント・サイズの値は、表が大きくなった場合、およびPCTINCREASE
パラメータがゼロ以外の値の場合に変更できます。
COMPRESS
パラメータは、ビットマップ化表領域では機能しません。
ノート:
実際の統合はインポート時に実行されますが、COMPRESS
パラメータを指定できるのは、インポート時ではなくエクスポート時のみです。インポート・ユーティリティではなくエクスポート・ユーティリティによって、記憶域パラメータ定義などのデータ定義が生成されます。したがって、エクスポート時にCOMPRESS=y
を指定した場合は、統合形式でのみデータをインポートできます。
親トピック: エクスポート・パラメータ
24.5.3 CONSISTENT
エクスポート・ユーティリティから見たデータが単一時点に対して一貫性がありexp
コマンドの実行時に変更されないことを保証するために、エクスポート・ユーティリティでSET TRANSACTION READ ONLY
文を使用するかどうかを指定します。エクスポートの開始後に、他のアプリケーションによるターゲット・データの更新が見込まれる場合は、CONSISTENT=y
を指定する必要があります。
CONSISTENT=n
を使用する場合、通常は1つのトランザクションでそれぞれの表がエクスポートされます。ただし、表にネストされた表が含まれている場合は、外部表とそれぞれの内部表が個別のトランザクションとしてエクスポートされます。表がパーティション化されている場合は、それぞれのパーティションが個別のトランザクションとしてエクスポートされます。
したがって、ネストされた表およびパーティション化された表が他のアプリケーションによって更新されると、エクスポートされるデータに不整合が生じる可能性があります。この可能性を最小限に抑えるには、更新が行われていないときにそれらの表をエクスポートします。
表24-2に、2人のユーザーによるイベントの順序を示します。user1
は、表のパーティションをエクスポートし、user2
はその表内のデータを更新します。
表24-2 2人のユーザーによる更新時のイベント順序
時間順序 | user1 | user2 |
---|---|---|
1 |
表:P1のエクスポートを開始 |
アクティビティなし |
2 |
アクティビティなし |
表:P2を更新 表:P1を更新 トランザクションをコミット |
3 |
表:P1のエクスポートを終了 |
アクティビティなし |
4 |
表:P2をエクスポート |
アクティビティなし |
エクスポートでCONSISTENT=y
を使用すると、user2
による更新はエクスポート・ファイルに書き込まれません。
エクスポートでCONSISTENT=n
を使用すると、表:P1に対する更新はエクスポート・ファイルに書き込まれません。ただし、表:P2に対する更新はエクスポート・ファイルに書き込まれます。これは、更新トランザクションが表:P2のエクスポート開始前にコミットされるためです。その結果、user2
のトランザクションが部分的にのみエクスポート・ファイルに記録されて一貫性がなくなります。
CONSISTENT=y
を使用し、更新のボリュームが大きい場合は、ロールバック・セグメントの使用量が大きくなります。また、それぞれの表のエクスポート速度が低下します。これはそのロールバック・セグメントで、コミットされていないトランザクションをスキャンする必要があるためです。
CONSISTENT=y
の使用については、次のことに注意してください。
-
ユーザー
SYS
として接続しているか、AS SYSDBA
を使用している(あるいはその両方)ときに実行されるエクスポートでは、CONSISTENT=y
はサポートされません。 -
ある特定のメタデータのエクスポートでは、再帰的SQL内で
SYS
スキーマを使用することが必要になる場合があります。そのような場合は、CONSISTENT=y
を使用しても無視されます。CONSISTENT=y
が選択されているエクスポート・プロセスの実行時は、メタデータの変更を行わないことをお薦めします。 -
そのようなエクスポートに必要な時間と領域を最小限に抑えるには、一貫性を維持する必要がある表を、一貫性を維持する必要のない表とは別にエクスポートする必要があります。たとえば、一貫性エクスポートで
emp
表およびdept
表を一緒にエクスポートし、データベースの他の部分を2番目のパスでエクスポートします。 -
ロールバック領域を使い切り、コミットされたトランザクションで使用された領域を新しいトランザクションに再利用すると、スナップショットが古すぎるというエラーが発生します。ロールバック・セグメントで領域を再利用すると、最小限の領域要件でデータベースの一貫性を維持できますが、読取り一貫性イメージを保持できる時間は制限されます。
コミットされたトランザクションが上書きされ、データベースの読取り一貫性ビューに情報が必要になると、スナップショットが古すぎることによるエラーが発生します。
このエラーを回避するには、読取り一貫性エクスポートにかかる時間を最小限に抑える必要があります。(これを行うには、エクスポートされるオブジェクトの数を制限し、可能な場合は、データベースのトランザクション・レートを低下させます。)また、ロールバック・セグメントを可能なかぎり大きくします。
ノート:
ロールバック・セグメントは将来のOracle Databaseリリースでは非推奨になります。かわりに、自動UNDO管理を使用することをお薦めします。
関連項目:
親トピック: エクスポート・パラメータ
24.5.5 DIRECT
デフォルト: n
ダイレクト・パス・エクスポートを使用することを指定します。
エクスポート・ユーティリティでDIRECT=y
を指定すると、データを直接読み取って、SQLコマンド処理レイヤー(評価バッファ)をバイパスすることでデータが抽出されます。この方式は、従来型パス・エクスポートよりも非常に高速になります。
セキュリティおよびパフォーマンスの考慮点を含めたダイレクト・パス・エクスポートの詳細は、「ダイレクト・パス・エクスポートの起動」を参照してください。
親トピック: エクスポート・パラメータ
24.5.6 FEEDBACK
デフォルト: 0
(ゼロ)
n
行分のエクスポートを1つのピリオドで示すプログレス・バーの表示を指定します。たとえば、FEEDBACK=10
を指定すると、10行分のエクスポートが終了するたびにピリオドが1つ表示されます。FEEDBACK
値は、エクスポートされるすべての表に適用されるため、各表に対して個別には設定できません。
親トピック: エクスポート・パラメータ
24.5.7 FILE
エクスポート・ダンプ・ファイル名を指定します。デフォルトの拡張子は、.dmp
ですが、任意の拡張子を指定できます。エクスポート・ユーティリティは複数のエクスポート・ファイルをサポートするので、使用する複数のファイル名を指定できます。例:
exp scott FILE = dat1.dmp, dat2.dmp, dat3.dmp FILESIZE=2048
エクスポート・ユーティリティは、最大FILESIZE
に指定された値に到達すると、現在のファイルへの書込みを停止し、FILE
パラメータによって指定された次の名前を持つ別のエクスポート・ファイルを開いて、完了するかFILESIZE
の最大値に再度到達するまで操作を続行します。エクスポートを完了するために十分なエクスポート・ファイル名を指定しないと、エクスポート・ユーティリティによって、追加のファイル名を指定するように要求されます。
親トピック: エクスポート・パラメータ
24.5.8 FILESIZE
デフォルト: データは、表24-3で指定されているように、最大サイズになるまで1つのファイルに書き込まれます。
エクスポート・ユーティリティでは、複数のエクスポート・ファイルへの書込みがサポートされており、インポート・ユーティリティでは、複数のエクスポート・ファイルからの読取りが可能です。FILESIZE
パラメータの値(バイト制限)を指定すると、エクスポート・ユーティリティでは、それぞれのダンプ・ファイルに指定したバイト数のみが書き込まれます。
エクスポート・ユーティリティは、書き込む必要があるデータの量がFILESIZE
に指定された最大値を超えていると、FILE
パラメータから次のエクスポート・ファイルの名前を取得するか(詳細は、「FILE」を参照)、FILE
パラメータに指定された名前をすべて使用した場合は、新しいエクスポート・ファイルの名前を指定するように要求します。FILESIZE
に値を指定しない場合(値0はFILESIZE
を指定しないことに相当)、エクスポート・ユーティリティはFILE
パラメータに指定されたファイル数に関係なく1つのファイルのみに書き込みます。
ノート:
エクスポート・ファイルの領域要件が使用可能なディスク領域を超えていると、エクスポート・ユーティリティは終了します。十分な使用可能ディスク領域を有効にした後で、エクスポート・ユーティリティを繰り返す必要があります。
FILESIZE
パラメータの最大値は、64ビットで格納できる最大値と同じです。
表24-3は、ダンプ・ファイルの最大サイズが、使用しているオペレーティング・システムおよび使用しているOracle Databaseによって異なることを示しています。
表24-3 ダンプ・ファイルの最大サイズ
オペレーティング・システム | Oracle Databaseのリリース | 最大サイズ |
---|---|---|
任意 |
8.1.5より前 |
2GB |
32ビット |
8.1.5 |
2GB |
64ビット |
8.1.5以上 |
無制限 |
32ビットで32ビットファイルを使用 |
任意 |
2GB |
32ビットで64ビットファイルを使用 |
8.1.6以上 |
無制限 |
ファイルに格納できる最大値は、オペレーティング・システムによって異なります。この最大値については、FILESIZE
を指定する前に、ご使用のオペレーティング・システム固有のOracleマニュアルで確認してください。エクスポート・ユーティリティ用に指定するファイル・サイズが、インポート・ユーティリティを実行するシステムでサポートされていることも確認する必要があります。
FILESIZE
の値は、数字にKB(キロバイト数)を付けて指定することもできます。たとえば、FILESIZE=2KB
は、FILESIZE=2048
と同じです。同様に、MBはメガバイト(1024×1024)を、GBはギガバイト(1024の3乗)を表します。Bはバイトの省略です。この場合、最終的なファイル・サイズの算出に乗算は不要です(FILESIZE=2048B
は、FILESIZE=2048
と同じです)。
親トピック: エクスポート・パラメータ
24.5.9 FLASHBACK_SCN
デフォルト: なし
エクスポート・ユーティリティで使用されるシステム変更番号(SCN)を指定して、フラッシュバックを使用可能にします。エクスポート操作は、この指定されたSCNにおけるデータの一貫性を維持したまま実行されます。
関連項目:
-
フラッシュバック・リカバリの実行方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
次に、SCNの指定例を示します。このエクスポートを実行すると、SCN 3482971
におけるデータの一貫性が維持されます。
> exp FILE=exp.dmp FLASHBACK_SCN=3482971
親トピック: エクスポート・パラメータ
24.5.10 FLASHBACK_TIME
デフォルト: なし
タイムスタンプを指定できます。エクスポート・ユーティリティは、指定されたタイムスタンプに最も近いSCNを検索します。このSCNを使用して、フラッシュバックを使用可能にします。エクスポート操作は、このSCNにおけるデータの一貫性を維持したまま実行されます。
DBMS_FLASHBACK
.ENABLE_AT_TIME
プロシージャで使用可能な形式で時刻を指定できます。つまり、次のいずれかの方法で指定できます。
> exp FILE=exp.dmp FLASHBACK_TIME="TIMESTAMP '2006-05-01 11:00:00'" > exp FILE=exp.dmp FLASHBACK_TIME="TO_TIMESTAMP('12-02-2005 14:35:00', 'DD-MM-YYYY HH24:MI:SS')"
また、次の例に示す古い形式も下位互換性を維持するために引き続き指定できます。
> exp FILE=exp.dmp FLASHBACK_TIME="'2006-05-01 11:00:00'"
関連項目:
-
フラッシュバック・リカバリの実行方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
-
DBMS_FLASHBACK
PL/SQLパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
親トピック: エクスポート・パラメータ
24.5.11 FULL
24.5.11.1 全データベースのエクスポートおよびインポートについての考慮点
全データベースのエクスポートおよびインポートは、データベースの複製およびクリーンアップに有効です。ただし、問題が発生しないように、次の点に注意する必要があります。
-
全体エクスポートでは、スキーマ
SYS
が所有するトリガーはエクスポートされません。SYS
トリガーは、全体インポートの前後のいずれかに手動で再作成する必要があります。このトリガーによってインポートの進行を妨げるような処理が定義されないように、インポートの後に再作成することをお薦めします。 -
全体エクスポートでは、デフォルトのプロファイルもエクスポートされません。ソース・データベースでデフォルトのプロファイルを変更した場合(たとえば、スキーマ
SYS
が所有するパスワード確認機能を追加するなど)は、事前に手動でその機能を作成し、インポートの完了後にターゲット・データベースでデフォルトのプロファイルを変更する必要があります。 -
可能な場合、開始前にエクスポートされたデータベースおよびインポートするデータベースの物理コピーを作成します。これによって、誤った操作をやり直すことができます。
-
エクスポートの開始前に、次の情報を含むレポートを作成することをお薦めします。
-
表領域およびデータ・ファイルのリスト
-
ロールバック・セグメントのリスト
-
ユーザーごとの各オブジェクト型(表、索引など)の数
この情報で、表領域がすでに作成され、インポートが正常に完了したことを確認できます。
-
-
エクスポートから完全に新しいデータベースを作成する場合、
SYSTEM
に余分なロールバック・セグメントを作成し、初期化パラメータ・ファイル(init
.ora
)で使用可能にしてからインポートを開始します。 -
インポートの実行時に、正しいインスタンスを指していることを確認します。一部のUNIXシステムでは、サブシェルの入力のみで、インポート操作を行ったデータベースが変更される場合があります。
-
すべての表領域が作成されるまで、複数のデータベースを含むシステムでは全体インポートを行わないでください。全体インポートは、エクスポートされたデータベースと同じデータ・ファイル名を使用して、未定義の表領域を作成します。このため、次のような状況で問題が発生します。
-
データ・ファイルが他のいずれかのデータベースに属する場合、データ・ファイルは破損します。このことは特に、エクスポートされるデータベースが同じシステムに存在する場合に当てはまります(そのデータ・ファイルがインポート先のデータベースによって再利用されるため)。
-
データ・ファイルの名前が既存のオペレーティング・システム・ファイルの名前と同じ場合も問題が発生します。
-
親トピック: FULL
24.5.16 OBJECT_CONSISTENT
デフォルト: n
エクスポートされたデータが単一時点に対して一貫性がありエクスポート中に変更されないことを保証するために、エクスポート・ユーティリティでSET
TRANSACTION
READ
ONLY
文を使用するかどうかを指定します。OBJECT_CONSISTENT
をy
に設定すると、パーティション化されている場合でも、自身の読取り専用トランザクションで各オブジェクトがエクスポートされます。一方、CONSISTENT
パラメータを使用した場合は、1つの読取り専用トランザクションのみが存在します。
関連項目:
親トピック: エクスポート・パラメータ
24.5.18 PARFILE
エクスポート・パラメータのリストを格納するファイルのファイル名を指定します。パラメータ・ファイルの使用方法の詳細は、「エクスポート・ユーティリティの起動」を参照してください。
親トピック: エクスポート・パラメータ
24.5.19 QUERY
デフォルト: なし
このパラメータでは、表モード・エクスポートの実行時に、表のセットから行のサブセットを選択できます。問合せパラメータの値は、TABLES
パラメータにリストされたすべての表(または表のパーティション)に適用されるSQL SELECT
文のWHERE
句が含まれている文字列です。
たとえば、ユーザーscott
が、肩書きがSALESMAN
で給与が1600未満の従業員のみをエクスポートする場合は、次のように指定できます(この例はUNIXに基づいています)。
exp scott TABLES=emp QUERY=\"WHERE job=\'SALESMAN\' and sal \<1600\"
ノート:
QUERY
パラメータの値には空白が含まれるため、ほとんどのオペレーティング・システムでは、WHERE job=\'SALESMAN\'
およびsal\<1600
の文字列全体を二重引用符で囲むか、なんらかの方法でリテラルとしてマークする必要があります。オペレーティング・システムで予約されている文字も、エスケープ文字を前に付ける必要があります。システムの特殊文字および予約文字の詳細は、ご使用のオペレーティング・システム固有のOracleマニュアルを参照してください。
この問合せの実行中に、エクスポート・ユーティリティでは次のようなSQL SELECT
文が構築されます。
SELECT * FROM emp WHERE job='SALESMAN' and sal <1600;
QUERY
パラメータに指定された値は、TABLES
パラメータにリストされているすべての表(または表のパーティション)に適用されます。たとえば、次の文では問合せに一致するemp
とbonus
の両方にある行がアンロードされます。
exp scott TABLES=emp,bonus QUERY=\"WHERE job=\'SALESMAN\' and sal\<1600\"
また、エクスポート・ユーティリティでは次のようなSQL文が実行されます。
SELECT * FROM emp WHERE job='SALESMAN' and sal <1600; SELECT * FROM bonus WHERE job='SALESMAN' and sal <1600;
表にQUERY
句で指定された列が見つからないと、エラー・メッセージが生成され、その不適切な表については行がエクスポートされません。
24.5.19.1 QUERYパラメータを使用する際の制限事項
-
QUERY
パラメータは、全モード、ユーザー・モードまたは表領域モードのエクスポートには指定できません。 -
QUERY
パラメータは、指定されたすべての表に適用可能である必要があります。 -
QUERY
パラメータは、ダイレクト・パス・エクスポート(DIRECT=y
)では指定できません。 -
QUERY
パラメータは、ネストされた内部表がある表には指定できません。 -
データが
QUERY
エクスポートの結果かどうかを、エクスポート・ファイルの内容から判断することはできません。
親トピック: QUERY
24.5.20 RECORDLENGTH
デフォルト: オペレーティング・システムによって異なります。
ファイル・レコードの長さをバイト単位で指定します。RECORDLENGTH
パラメータは、異なるデフォルト値を使用する別のオペレーティング・システムにエクスポート・ファイルを転送する場合に指定する必要があります。
このパラメータを指定しない場合、ご使用のプラットフォーム固有のバッファ・サイズの値がデフォルトになります。
RECORDLENGTH
は、ご使用のシステムのバッファ・サイズの値以上の任意の値に設定できます。(最大値は64KBです。)RECORDLENGTH
パラメータの変更により影響を受けるのは、ディスクに書き出す前に累積されるデータのサイズのみです。オペレーティング・システム・ファイルのブロック・サイズには影響しません。
ノート:
このパラメータは、エクスポート・ユーティリティのI/Oバッファのサイズ指定に使用できます。
親トピック: エクスポート・パラメータ
24.5.22 RESUMABLE_NAME
デフォルト: 'User USERNAME(USERID), Session SESSIONID, Instance INSTANCEID'
再開可能な文を指定します。この値はユーザー定義のテキスト文字列で、USER_RESUMABLE
またはDBA_RESUMABLE
ビューに挿入して、一時停止されている特定の再開可能な文を識別できます。
RESUMABLE
パラメータをy
に設定して、再開可能な領域割当てを有効にしないかぎり、このパラメータは無視されます。
親トピック: エクスポート・パラメータ
24.5.23 RESUMABLE_TIMEOUT
デフォルト: 7200
秒(2時間)
エラー修正に必要な時間を指定します。タイムアウト時間内にエラーを修正できない場合は、文の実行が途中で終了します。
RESUMABLE
パラメータをy
に設定して、再開可能な領域割当てを有効にしないかぎり、このパラメータは無視されます。
親トピック: エクスポート・パラメータ
24.5.25 STATISTICS
デフォルト: ESTIMATE
エクスポートされたデータのインポート時に生成するデータベース・オプティマイザ統計のタイプを指定します。オプションは、ESTIMATE
、COMPUTE
およびNONE
です。
エクスポート・ユーティリティによって計算済の統計情報がエクスポート・ファイルに含まれることがあります。また、ANALYZE
文によって統計情報が再生成されることもあります。
ただし、表にシステム生成名を持つ列がある場合、計算済オプティマイザ統計情報はエクスポート時に使用されません。
計算済オプティマイザ統計情報のエクスポート時には、次の場合に、問題ありというフラグが付きます。
-
エクスポート中に行エラーが発生している
-
クライアントの文字セットまたは
NCHAR
文字セットが、サーバーの文字セットまたはNCHAR
文字セットと一致していない -
QUERY
句が指定されている -
特定のパーティションまたはサブパーティションのみがエクスポートされている
ノート:
ROWS=n
を指定しても、計算済統計情報をエクスポート・ファイルに保存することはできます。この機能により、本番データベースからの統計情報を使用して、非本番データベース上で問合せの実行計画のチューニングを行うことができます。
親トピック: エクスポート・パラメータ
24.5.26 TABLES
表モード・エクスポートでエクスポートすることを指定します。また、エクスポートの対象となる表名、パーティション名およびサブパーティション名を指定します。表の名前を指定するときは、次のように指定します。
-
schemaname
は、表またはパーティションのエクスポート元のユーザー・スキーマの名前を指定します。スキーマ名が指定されていない場合は、エクスポート実行者のスキーマがデフォルトとして使用されます。ORDSYS
、MDSYS
、CTXSYS
、LBACSYS
、ORDPLUGINS
などのシステム・スキーマ名はエクスポート・ユーティリティによって予約されています。 -
tablename
は、エクスポートされる表の名前を指定します。表レベル・エクスポートでは、パーティション表または非パーティション表全体をエクスポートできます。リストにパーティション表が含まれる場合、パーティション名を指定しないと、すべてのパーティションおよびサブパーティションがエクスポートされます。表名は、任意の数の「%」パターン一致文字を含むことができます。各「%」パターン一致文字は、データベースの表オブジェクトに対し表名の0個以上の文字と一致します。指定されたパターンに一致する関連のスキーマ内のすべての表が、それぞれの表名がパラメータで明示的に指定されているとおりにエクスポートに選択されます。
-
partition_name
は、エクスポートがパーティション・レベルのエクスポートであることを示します。パーティション・レベル・エクスポートでは、表内の指定された1つ以上のパーティションまたはサブパーティションをエクスポートできます。
構文の形式は、次のとおりです。
schemaname.tablename:partition_name schemaname.tablename:subpartition_name
tablename
:
partition_name
を使用する場合、指定された表はパーティション化されている必要があり、
partition_name
はパーティションまたはサブパーティションのうちのいずれかの名前である必要があります。指定された表がパーティション化されていない場合、partition_name
は無視され、表全体がエクスポートされます。
パーティション・レベル・エクスポートの例については、「パーティション・レベル・エクスポートでのエクスポート・セッションの例」を参照してください。
親トピック: エクスポート・パラメータ
24.5.26.1 表名の制限
表名には次の制限があります。
-
デフォルトでは、表名は大文字でデータベースに格納されます。表名が大文字と小文字または小文字のみで表記され、大/小文字を区別する場合、名前を引用符で囲む必要があります。したがって、表名は、データベースに格納されている表名と完全に一致するように指定する必要があります。
ただし、オペレーティング・システムによっては、コマンドラインの引用符自体をエスケープする必要がある場合があります。次に、異なるエクスポート・モードで大/小文字の区別を保持する方法を示します。
-
コマンドライン・モード
TABLES='\"Emp\"'
-
対話方式モード
Table(T) to be exported: "Emp"
-
パラメータ・ファイル・モード
TABLES='"Emp"'
-
-
表名を引用符で囲まないかぎり、コマンドラインで指定する表名にシャープ(#)記号は使用できません。同様に、パラメータ・ファイルでは、表名が引用符で囲まれていないかぎり、表名にシャープ(#)記号を使用すると、エクスポート・ユーティリティではシャープ(#)記号より右側の文字がコメントとして解釈されます。
たとえば、パラメータ・ファイルに次のコマンドラインが記述されている場合、エクスポート・ユーティリティでは
emp#
の右側がすべてコメントとして解釈されるため、表dept
およびmydata
はエクスポートされません。TABLES=(emp#, dept, mydata)
ただし、次の例では、
emp#
が引用符で囲まれているため、3つの表はすべてエクスポートされます。TABLES=("emp#", dept, mydata)
ノート:
オペレーティング・システムによっては、一重引用符を使用する必要がある場合と、二重引用符を使用する必要がある場合があります。表のネーミング方法に制限があるオペレーティング・システムもあります。
親トピック: TABLES
24.5.27 TABLESPACES
デフォルト: なし
TABLESPACES
パラメータは、指定された表領域内のすべての表をエクスポートのダンプ・ファイルにエクスポートすることを指定します。これには、指定した表領域に含まれるすべての表と、指定した表領域にあるパーティションを持つすべての表が含まれます。索引は、索引の格納場所に関係なくその表とともにエクスポートされます。
TABLESPACES
を使用して表領域内のすべての表をエクスポートするには、EXP_FULL_DATABASE
ロールが必要です。
TABLESPACES
とTRANSPORT_TABLESPACE=y
を組み合せて使用するときは、データベースからエクスポート・ファイルにエクスポートする表領域の制限付きリストを指定できます。
親トピック: エクスポート・パラメータ
24.5.28 TRANSPORT_TABLESPACE
デフォルト: n
y
を指定すると、トランスポータブル表領域のメタデータをエクスポートできるようになります。
暗号化された列は、トランスポータブル表領域モードではサポートされていません。
ノート:
トランスポータブル表領域をエクスポートした後、それよりも古いリリース・レベルのデータベースにインポートすることはできません。ターゲット・データベースのリリース・レベルは、ソース・データベース以上である必要があります。
関連項目:
-
トランスポータブル表領域の詳細は、『Oracle Database管理者ガイド』を参照してください。
親トピック: エクスポート・パラメータ
24.5.30 TTS_FULL_CHECK
デフォルト: n
TTS_FULL_CHECK
をy
に設定すると、エクスポート・ユーティリティは、リカバリ・セット(リカバリする一連の表領域)がリカバリ・セットの外部のオブジェクトへの依存性(特に、IN
ポインタ)を持たないこと(その逆も)を検証します。
親トピック: エクスポート・パラメータ
24.5.31 USERID(ユーザー名/パスワード)
関連項目:
-
Oracle Netに接続文字列を指定する方法の詳細は、ご使用のOracle Netプロトコルのユーザーズ・ガイドを参照してください
親トピック: エクスポート・パラメータ
24.5.32 VOLSIZE
デフォルト: なし
各テープ・ボリュームのエクスポート・ファイルに最大バイト数を指定します。
VOLSIZE
パラメータの最大値は、ご使用のプラットフォーム上に64ビットで格納できる最大値と同じです。
VOLSIZE
の値は、数字にKB(キロバイト数)を付けて指定できます。たとえば、VOLSIZE=2KB
は、VOLSIZE=2048
と同じです。同様に、MBはメガバイト(1024×1024)を、GBはギガバイト(1024の3乗)を表します。Bはバイトの省略です。この場合、最終的なファイル・サイズの算出に乗算は不要です(VOLSIZE=2048B
は、VOLSIZE=2048
と同じです)。
親トピック: エクスポート・パラメータ
24.6 エクスポート・セッションの例
この項では、次のタイプのエクスポート・セッションの例を示します。
それぞれの例では、コマンドライン方式とパラメータ・ファイル方式の両方の使用方法が示されます。一部の例では、縦長の省略記号を使用して、長すぎてすべてを表示できない出力例のセクションを示しています。
- 全体データベース・モードのエクスポート・セッションの例
- ユーザー・モードのエクスポート・セッションの例
- 表モードのエクスポート・セッションの例
- パーティション・レベル・エクスポートでのエクスポート・セッションの例
親トピック: オリジナルのエクスポート
24.6.1 全体データベース・モードのエクスポート・セッションの例
DBA
ロールまたはEXP_FULL_DATABASE
ロールを持っているユーザーのみが、全体データベース・モードでエクスポートを実行できます。この例では、データベース全体がすべてのGRANTS
およびデータとともにファイルdba.dmp
にエクスポートされます。
パラメータ・ファイル方式
> exp PARFILE=params.dat
params.dat
ファイルには、次の情報が格納されています。
FILE=dba.dmp GRANTS=y FULL=y ROWS=y
コマンドライン方式
> exp FULL=y FILE=dba.dmp GRANTS=y ROWS=y
エクスポート・メッセージ
使用しているエクスポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。状態メッセージは、データベース全体がエクスポートされた時点で書き出されます。エクスポートが警告なしで完了すると、最終的な完了メッセージが返されます。
親トピック: エクスポート・セッションの例
24.6.2 ユーザー・モードのエクスポート・セッションの例
ユーザー・モード・エクスポートを使用して、1人以上のデータベース・ユーザーをバックアップできます。たとえばDBAは、削除されたユーザーの表を一定期間バックアップすることが必要な場合があります。ユーザー・モードは、自分のデータをバックアップする必要があるユーザー、または1人の所有者から別の所有者にオブジェクトを移動する必要があるユーザーにも適しています。 この例では、ユーザーscott
が自分の表をエクスポートします。
パラメータ・ファイル方式
> exp scott PARFILE=params.dat
params.dat
ファイルには、次の情報が格納されています。
FILE=scott.dmp
OWNER=scott
GRANTS=y ROWS=y COMPRESS=y
コマンドライン方式
> exp scott FILE=scott.dmp OWNER=scott GRANTS=y ROWS=y COMPRESS=y
エクスポート・メッセージ
使用しているエクスポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
. . . about to export SCOTT's tables via Conventional Path ... . . exporting table BONUS 0 rows exported . . exporting table DEPT 4 rows exported . . exporting table EMP 14 rows exported . . exporting table SALGRADE 5 rows exported . . . Export terminated successfully without warnings.
親トピック: エクスポート・セッションの例
24.6.3 表モードのエクスポート・セッションの例
表モードでは、表データまたは表定義をエクスポートできます。(行がエクスポートされない場合は、CREATE TABLE
文が権限および索引とともに(指定されている場合)エクスポート・ファイルに書き込まれます。)
EXP_FULL_DATABASE
ロールを持っているユーザーは、表モードを使用しTABLES=schemaname.tablename
を指定して、任意のユーザーのスキーマから表をエクスポートできます。
schemaname
が指定されていない場合、デフォルトでエクスポート実行者のスキーマ名になります。次の例では、表a
および表c
は、デフォルトでSYSTEM
スキーマになります。
> exp TABLES=(a, scott.b, c, mary.d)
EXP_FULL_DATABASE
ロールを持っているユーザーは、他のユーザーによって所有されている依存オブジェクトもエクスポートできます。権限のないユーザーは、所有している指定済の表の依存オブジェクトのみをエクスポートできます。
表モードでのエクスポートには、クラスタ定義は含まれません。その結果、データはクラスタ化されていない表としてエクスポートされます。したがって、表モードを使用して、表のクラスタ化を解除できます。
親トピック: エクスポート・セッションの例
24.6.3.1 例1: DBAによる2人のユーザー用の表のエクスポート
この例では、DBAが2人のユーザーの指定済表をエクスポートします。
パラメータ・ファイル方式
> exp PARFILE=params.dat
params.dat
ファイルには、次の情報が格納されています。
FILE=expdat.dmp TABLES=(scott.emp,blake.dept) GRANTS=y INDEXES=y
コマンドライン方式
> exp FILE=expdat.dmp TABLES=(scott.emp,blake.dept) GRANTS=y INDEXES=y
エクスポート・メッセージ
使用しているエクスポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
. . . About to export specified tables via Conventional Path ... Current user changed to SCOTT . . exporting table EMP 14 rows exported Current user changed to BLAKE . . exporting table DEPT 8 rows exported Export terminated successfully without warnings.
親トピック: 表モードのエクスポート・セッションの例
24.6.3.2 例2: ユーザーによる自身が所有している表のエクスポート
この例では、ユーザーblake
が所有している選択済の表をエクスポートします。
パラメータ・ファイル方式
> exp blake PARFILE=params.dat
params.dat
ファイルには、次の情報が格納されています。
FILE=blake.dmp TABLES=(dept,manager) ROWS=y COMPRESS=y
コマンドライン方式
> exp blake FILE=blake.dmp TABLES=(dept, manager) ROWS=y COMPRESS=y
エクスポート・メッセージ
使用しているエクスポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
. . . About to export specified tables via Conventional Path ... . . exporting table DEPT 8 rows exported . . exporting table MANAGER 4 rows exported Export terminated successfully without warnings.
親トピック: 表モードのエクスポート・セッションの例
24.6.3.3 例3: パターン一致を使用した様々な表のエクスポート
この例では、パターン一致を使用して、ユーザーscott
およびblake
の様々な表をエクスポートします。
パラメータ・ファイル方式
> exp PARFILE=params.dat
params.dat
ファイルには、次の情報が格納されています。
FILE=misc.dmp TABLES=(scott.%P%,blake.%,scott.%S%)
コマンドライン方式
> exp FILE=misc.dmp TABLES=(scott.%P%,blake.%,scott.%S%)
エクスポート・メッセージ
使用しているエクスポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
. . . About to export specified tables via Conventional Path ... Current user changed to SCOTT . . exporting table DEPT 4 rows exported . . exporting table EMP 14 rows exported Current user changed to BLAKE . . exporting table DEPT 8 rows exported . . exporting table MANAGER 4 rows exported Current user changed to SCOTT . . exporting table BONUS 0 rows exported . . exporting table SALGRADE 5 rows exported Export terminated successfully without warnings.
親トピック: 表モードのエクスポート・セッションの例
24.6.4 パーティション・レベル・エクスポートでのエクスポート・セッションの例
24.6.4.1 例1: パーティションを指定しない表のエクスポート
emp
は従業員名でパーティション化されている表であると想定します。m
およびz
の2つのパーティションがあります。この例に示すとおり、パーティションを指定せずに表をエクスポートすると、すべてのパーティションがエクスポートされます。
パラメータ・ファイル方式
> exp scott PARFILE=params.dat
params.dat
ファイルには、次の情報が格納されています。
TABLES=(emp) ROWS=y
コマンドライン方式
> exp scott TABLES=emp rows=y
エクスポート・メッセージ
使用しているエクスポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
. . . About to export specified tables via Conventional Path ... . . exporting table EMP . . exporting partition M 8 rows exported . . exporting partition Z 6 rows exported Export terminated successfully without warnings.
24.6.4.2 例2: パーティションを指定した表のエクスポート
emp
は従業員名でパーティション化されている表であると想定します。m
およびz
の2つのパーティションがあります。この例に示すとおり、表をエクスポートするときにパーティションを指定すると、指定されたパーティションのみがエクスポートされます。
パラメータ・ファイル方式
> exp scott PARFILE=params.dat
params.dat
ファイルには、次の情報が格納されています。
TABLES=(emp:m) ROWS=y
コマンドライン方式
> exp scott TABLES=emp:m rows=y
エクスポート・メッセージ
使用しているエクスポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
. . . About to export specified tables via Conventional Path ... . . exporting table EMP . . exporting partition M 8 rows exported Export terminated successfully without warnings.
24.6.4.3 例3: コンポジット・パーティションのエクスポート
emp
は、2つのパーティションm
、z
があるパーティション表であるとします。表emp
は、コンポジット方式を使用してパーティション化されています。パーティションm
には、サブパーティションsp1
およびsp2
があり、パーティションz
には、サブパーティションsp3
およびsp4
があります。この例に示すとおり、コンポジット・パーティションm
をエクスポートすると、そのすべてのサブパーティション(sp1
およびsp2
)がエクスポートされます。表をエクスポートするときにサブパーティション(sp4
)を指定すると、指定されたパーティションのみがエクスポートされます。
パラメータ・ファイル方式
> exp scott PARFILE=params.dat
params.dat
ファイルには、次の情報が格納されています。
TABLES=(emp:m,emp:sp4) ROWS=y
コマンドライン方式
> exp scott TABLES=(emp:m, emp:sp4) ROWS=y
エクスポート・メッセージ
使用しているエクスポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
. . . About to export specified tables via Conventional Path ... . . exporting table EMP . . exporting composite partition M . . exporting subpartition SP1 1 rows exported . . exporting subpartition SP2 3 rows exported . . exporting composite partition Z . . exporting subpartition SP4 1 rows exported Export terminated successfully without warnings.
24.7 警告、エラーおよび完了メッセージ
この項では、エクスポート・ユーティリティによって発行される各種のメッセージと、ログ・ファイルへのメッセージの保存方法について説明します。
24.7.1 ログ・ファイル
すべてのエクスポート・メッセージをログ・ファイルに保存するには、LOG
パラメータを使用するか、出力をファイルにリダイレクトします(リダイレクトできるシステムの場合)。成功したアンロード、および発生している可能性があるエラーに関して、詳細な情報のログが記録されます。
親トピック: 警告、エラーおよび完了メッセージ
24.7.2 警告メッセージ
エクスポート・ユーティリティは、リカバリ可能なエラーの発生後は終了しません。たとえば、表のエクスポート中にエラーが発生すると、エクスポート・ユーティリティはエラー・メッセージを表示(またはログに記録)して次の表にスキップし、処理を続行します。これらのリカバリ可能エラーは警告と呼ばれます。
エクスポート・ユーティリティは、無効なオブジェクトが検出された場合も警告メッセージを表示します。
たとえば、存在しない表が表モード・エクスポートの一部として指定されても、それ以外のすべての表をエクスポートします。その後で警告メッセージを表示して、正常に終了します。
親トピック: 警告、エラーおよび完了メッセージ
24.7.3 リカバリ不能なエラー・メッセージ
エラーによってはリカバリ不能で、エクスポート・セッションが終了する場合があります。通常、これらのエラーは、内部的な問題、またはメモリーなどのリソースが使用不能か不足しているなどの原因によって発生します。たとえば、catexp.sql
スクリプトが実行されない場合、エクスポート・ユーティリティは次のようなリカバリ不能メッセージを表示します。
EXP-00024: Export views not installed, please notify your DBA
親トピック: 警告、エラーおよび完了メッセージ
24.7.4 完了メッセージ
エラーが発生することなくエクスポートが完了すると、その状態を示す次のようなメッセージが表示されます。
Export terminated successfully without warnings
リカバリ可能なエラーが1つ以上発生した場合に、ジョブが続行されて完了すると、次のようなメッセージが表示されます。
Export terminated successfully with warnings
リカバリ不能なメッセージが発生してジョブがすぐに終了した場合は、その状態を示す次のようなメッセージが表示されます。
Export terminated unsuccessfully
親トピック: 警告、エラーおよび完了メッセージ
24.8 終了コードによる結果の検査と表示
エクスポート・ユーティリティでは、操作の完了後、すぐに実行結果を確認できます。プラットフォームによっては、実行結果はプロセス終了コードに通知され、ログ・ファイルにも記録されます。これによって、コマンドラインやスクリプトからの出力を確認できます。表24-4に、様々な結果の終了コードを示します。
表24-4 エクスポート・ユーティリティの終了コード
結果 | 終了コード |
---|---|
エクスポートは警告なしで正常終了しました。 |
|
エクスポートは正常に終了しましたが、警告が発生しました。 |
|
エラーが発生したためエクスポートを終了します。 |
|
UNIXの場合、終了コードは次のようになります。
EX_SUCC 0 EX_OKWARN 0 EX_FAIL 1
親トピック: オリジナルのエクスポート
24.9 従来型パス・エクスポートとダイレクト・パス・エクスポート
エクスポート・ユーティリティで表データをエクスポートするには、次の2つの方法があります。
従来型パス・エクスポートでは、SQL SELECT
文を使用して表からデータを抽出します。データはディスクからバッファ・キャッシュへと読み取られ、行は評価バッファに転送されます。データは、式の評価が渡された後にエクスポート・クライアントに転送され、クライアントによってエクスポート・ファイルに書き込まれます。
ダイレクト・パス・エクスポートは、従来型パス・エクスポートよりも非常に高速です。これは、データがディスクからバッファ・キャッシュに読み取られて、行が直接エクスポート・クライアントに転送されるためです。評価バッファ(SQLコマンド処理レイヤーに相当)はバイパスされます。データはすでにエクスポート・ユーティリティ向けの形式になっているため、不要なデータ変換を回避できます。データは、エクスポート・クライアントに転送され、クライアントによってエクスポート・ファイルに書き込まれます。
親トピック: オリジナルのエクスポート
24.10 ダイレクト・パス・エクスポートの起動
親トピック: オリジナルのエクスポート
24.10.1 ダイレクト・パス・エクスポートに関するセキュリティ上の考慮点
Oracle Virtual Private Database(VPD)およびOracle Label Securityは、ダイレクト・パス・エクスポートの実行時には施行されません。
次のユーザーは、データベースからのデータの抽出に使用されるエクスポート・モード、アプリケーションまたはユーティリティに関係なく、Virtual Private DatabaseおよびOracle Label Security施行の対象外となります。
つまり、EXEMPT
ACCESS
POLICY
権限を付与されているどのユーザーも、VPDおよびOracle Label Securityの施行の完全な対象外となります。これは強力な権限であるため、注意して管理する必要があります。この権限は、SELECT
、INSERT
、UPDATE
、DELETE
などの従来のオブジェクト権限の施行に影響しません。これらの権限は、ユーザーにEXEMPT
ACCESS
POLICY
権限が付与されている場合も施行されます。
関連項目:
-
VPDを使用してデータ・アクセスを制御する方法の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
親トピック: ダイレクト・パス・エクスポートの起動
24.10.2 ダイレクト・パス・エクスポートに関するパフォーマンス上の考慮点
ダイレクト・パス・エクスポートを起動するときに、RECORDLENGTH
パラメータの値を大きくすると、パフォーマンスを向上できることがあります。実際に得られるパフォーマンスは、次の要因によって決まります。
-
DB_BLOCK_SIZE
-
表内の列の型
-
使用するI/Oレイアウト(エクスポート・ファイルを受け取るドライブは、データベース・ファイルが存在するディスク・ドライブとは別にする必要があります。)
一般に、RECORDLENGTH
には次の値が推奨されます。
-
ファイル・システムI/Oブロック・サイズの整数倍
-
DB_BLOCK_SIZE
の整数倍
ダイレクト・パス・エクスポートを使用して作成されたエクスポート・ファイルをインポートするには、従来型パス・エクスポートを使用して作成されたエクスポート・ファイルの場合と同じ時間がかかります。
親トピック: ダイレクト・パス・エクスポートの起動
24.10.3 ダイレクト・パス・エクスポートに関する制限事項
ダイレクト・パス・モードを使用する場合は、次の制限事項に注意してください。
-
ダイレクト・パス・エクスポートを起動するには、コマンドライン方式またはパラメータ・ファイルを使用する必要があります。対話方式を使用して、ダイレクト・パス・エクスポートを起動することはできません。
-
BUFFER
エクスポート・パラメータは、従来型パス・エクスポートのみに適用されます。ダイレクト・パス・エクスポートの場合は、RECORDLENGTH
パラメータを使用して、エクスポート・ユーティリティでエクスポート・ファイルへの書き込みに使用されるバッファのサイズを指定します。 -
表領域モード(
TRANSPORT_TABLESPACES
=Y
)でエクスポートするときは、ダイレクト・パスを使用できません。 -
QUERY
パラメータは、ダイレクト・パス・エクスポートでは指定できません。 -
ダイレクト・パス・エクスポートでデータをエクスポートできるのは、エクスポートを起動するセッションの
NLS_LANG
環境変数がデータベースの文字セットに一致する場合のみです。NLS_LANG
が設定されていないか、データベースの文字セットと異なる場合は、警告メッセージが表示されて、エクスポートが続行されません。NLS_LANG
環境変数のデフォルト値は、AMERICAN_AMERICA.US7ASCII
です。
親トピック: ダイレクト・パス・エクスポートの起動
24.11 ネットワークに関する考慮点
24.11.1 ネットワークを介してエクスポート・ファイルを転送する方法
エクスポート・ファイルはバイナリ形式であるため、ネットワークを介してそのエクスポート・ファイルを転送するときは、バイナリ転送をサポートしているプロトコルを使用して、ファイルが破損しないようにしてください。たとえば、FTPなどのファイル転送プロトコルを使用して、バイナリ・モードでファイルを転送します。エクスポート・ファイルをキャラクタ・モードで送信すると、ファイルのインポート時にエラーが発生します。
親トピック: ネットワークに関する考慮点
24.12 文字セットおよびグローバリゼーション・サポートに関する考慮点
この項では、ユーザー・データおよびデータ定義言語(DDL)の文字セット変換に関連するエクスポート・ユーティリティのグローバリゼーション・サポートの動作について説明します。
24.12.1 ユーザー・データ
エクスポート・ユーティリティは、常に、エクスポート・サーバーの文字セットでUnicodeデータを含むユーザー・データをエクスポートします。(文字セットは、データベース作成時に指定されます。)ソース・データベースの文字セットが、インポート・データベースの文字セットと異なる場合、自動的にデータをインポート・サーバーの文字セットに変換するための文字セット変換が実行されます。
24.12.1.1 変換による文字セットのソート順への影響
エクスポート文字セットのソート順が、インポート文字セットと異なる場合、キャラクタ列をパーティション化した表では、結果が保証されません。 たとえば、次のようなASCII文字セットのデータベースの表定義について考えてみます。
CREATE TABLE partlist ( part VARCHAR2(10), partno NUMBER(2) ) PARTITION BY RANGE (part) ( PARTITION part_low VALUES LESS THAN ('Z') TABLESPACE tbs_1, PARTITION part_mid VALUES LESS THAN ('z') TABLESPACE tbs_2, PARTITION part_high VALUES LESS THAN (MAXVALUE) TABLESPACE tbs_3 );
ASCII文字セットでは、Z
の後にz
があるため、このパーティション・スキームには意味があります。
この表がEBCDIC文字セット・ベースのデータベースにインポートされると、EBCDIC文字セットでは、z
がZ
の前にあるため、part_mid
パーティションのすべての行が、part_low
パーティションに移行します。希望する結果を得るには、partlist
表の所有者は、インポート後に表を再パーティション化する必要があります。
関連項目:
文字セットの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
親トピック: ユーザー・データ
24.12.2 DDL
エクスポートおよびインポート操作時に、データ定義言語(DDL)に対して最大3回の文字セット変換が必要です。
-
エクスポート・ファイルは、環境変数
NLS_LANG
でユーザー・セッション用に指定された文字セットで書き出されます。NLS_LANG
の値が、データベースの文字セットと異なる場合は、文字セット変換が実行されます。 -
エクスポート・ファイルの文字セットが、インポート先ユーザー・セッション用の文字セットと異なる場合、ユーザー・セッションの文字セットに変換されます。シングルバイト文字セットの場合のみにこの変換が実行されます。マルチバイト文字セットの場合は、インポート・ファイルの文字セットがエクスポート・ファイルの文字セットと同じである必要があります。
-
ターゲット・データベースの文字セットが、インポート・ユーザー・セッション用の文字セットと異なる場合、最後の文字セット変換が実行される場合があります。
文字セット変換によるデータの損失を最小限にするには、エクスポート・データベース、エクスポート・ユーザー・セッション、インポート・ユーザー・セッションおよびインポート・データベースのすべてにおいて、同一の文字セットを使用するようにしてください。
24.12.3 シングルバイト文字セットとエクスポートおよびインポート
24.12.4 マルチバイト文字セットとエクスポートおよびインポート
ターゲット文字セットに同等の文字がないエクスポート・ファイル中の文字は、変換時にデフォルトの文字に置換されます(デフォルトの文字は、ターゲット文字セットによって定義されます)。(デフォルトの文字は、ターゲット文字セットによって定義されます)。100%完全に変換されるためには、ターゲット文字セットはソース文字セットのスーパーセットであるか、ソース文字セットと同等である必要があります。
ノート:
エクスポート・サーバーとインポート・サーバーとの間で文字セットの幅が異なるとき、変換が原因でデータの拡張が発生する場合にデータの切捨てが発生することがあります。切捨てが発生する場合、インポート・ユーティリティに警告メッセージが表示されます。
24.13 エクスポート・ユーティリティおよびインポート・ユーティリティでのインスタンス親和性の使用
インスタンス親和性を使用して、インポートおよびエクスポートするデータベース内のインスタンスにジョブを関連付けることができます。複数のリリースを組み合せて使用している場合は、互換性の問題に注意してください。
関連項目:
-
親和性の詳細は、『Oracle Database管理者ガイド』を参照してください。
親トピック: オリジナルのエクスポート
24.14 データベース・オブジェクトのエクスポート時の考慮点
次の項では、特定のデータベース・オブジェクトをエクスポートする場合の考慮点について説明します。
- エクスポート順序
- LONGおよびLOBデータ型のエクスポート
- 外部関数ライブラリのエクスポート
- オフライン・ローカル管理表領域のエクスポート
- ディレクトリ別名のエクスポート
- BFILE列および属性のエクスポート
- 外部表のエクスポート
- オブジェクトの型定義のエクスポート
- ネストした表のエクスポート
- AQ表のエクスポート
- シノニムのエクスポート
- Javaシノニムに関連して発生する可能性があるエクスポート・エラー
- ファイングレイン・アクセス・コントロールに対するサポート
親トピック: オリジナルのエクスポート
24.14.1 エクスポート順序
エクスポート中もトランザクションから順序番号へのアクセスが継続すると、順序番号がスキップされる場合があります。順序番号がスキップされないようにする最良の方法として、エクスポート中に順序にアクセスしないようにします。
順序番号をスキップできるのは、キャッシュされた順序番号が使用されている場合のみです。順序番号のキャッシュが割り当てられていると、それらを現在のデータベースで使用できます。エクスポートされる値は、次の順序番号(キャッシュされた値の後)です。キャッシュされていても未使用の順序番号は、順序がインポートされたときに失われます。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.14.2 LONGおよびLOBデータ型のエクスポート
エクスポート時に、LONG
データ型はセクションごとにフェッチされます。ただし、LONGデータを含めて、各行のすべての内容を保持できる十分な使用可能メモリーが必要です。
LOB列内のデータはすべてを同時にメモリーに保持する必要はありません。LOBデータはセクションごとにロードおよびアンロードされます。
ノート:
既存のLONG
列もLOB列に変換することをお薦めします。LOB列は、LONG
列ほど制限は多くありません。また、LOB機能はすべてのリリースで拡張されていますが、LONG機能は、いくつかのリリースでは拡張されていません。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.14.3 外部関数ライブラリのエクスポート
外部関数ライブラリの内容はエクスポート・ファイルに含まれません。かわりに、ライブラリの指定(名前、場所)のみが全体データベース・モードおよびユーザー・モード・エクスポートに含まれます。データベースを新しい場所に移動する場合は、ライブラリの実行可能ファイルを移動してライブラリの指定を更新する必要があります。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.14.4 オフライン・ローカル管理表領域のエクスポート
エクスポートするデータにオフライン・ローカル管理表領域が含まれていると、エクスポート・ユーティリティでは完全な表領域定義をエクスポートできず、エラー・メッセージが表示されます。その場合もデータをインポートはできますが、インポートの前にオフライン・ローカル管理表領域を作成して、欠落している表領域を参照する場合があるDDLコマンドに失敗しないようにする必要があります。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.14.5 ディレクトリ別名のエクスポート
ディレクトリ別名の定義は、全体データベース・モード・エクスポートのみに含まれます。データベースを新しい場所に移動する場合、データベース管理者は、新しい場所を指すように、ディレクトリ別名を更新する必要があります。
ディレクトリ別名はユーザー・モードまたは表モード・エクスポートには含まれません。したがって、ディレクトリ別名を使用する前に、ディレクトリ別名をターゲット・システム上に作成しておく必要があります。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.14.6 BFILE列および属性のエクスポート
エクスポート・ファイルには、BFILE
列または属性によって参照される外部ファイルの内容は保持されません。かわりに、ファイルの名前とディレクトリ別名のみがエクスポート時にコピーされて、インポート時にリストアされます。データベースを移動し、元のディレクトリに含まれているファイルにアクセスできない場合、データベース管理者(DBA)は、指定されたファイルが含まれているディレクトリを、アクセス可能な新しい場所に移動する必要があります。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.14.7 外部表のエクスポート
外部表の内容はエクスポート・ファイルに含まれません。かわりに、表の指定(名前、場所)のみが全体データベース・モードおよびユーザー・モード・エクスポートに含まれます。データベースを新しい場所に移動する場合は、外部データを手動で移動して表の指定を更新する必要があります。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.14.8 オブジェクトの型定義のエクスポート
どのエクスポート・モードでも、エクスポート・ユーティリティには、エクスポートする表で使用されるオブジェクトの型定義に関する情報が含まれます。ターゲット・システム上のオブジェクト型とエクスポート・ファイルに含まれているオブジェクトの状態との間に一貫性があるかどうかを確認するには、オブジェクト名、オブジェクト識別子、オブジェクト・ジオメトリなどの情報が必要です。これにより、表に必要なオブジェクト型が、同じオブジェクト識別子でインポート時に作成されます。
ただし、エクスポート・ユーティリティを実行するユーザーが、対象のオブジェクト型に対する実行権限を持っていない場合、表モード、ユーザー・モード、表領域モードでは、表に必要な完全オブジェクト定義がエクスポート・ファイルに含まれません。この場合、その型の存在確認に必要な情報のみが、同じオブジェクト識別子およびジオメトリでインポート・ターゲット・システム上に書き込まれます。
ユーザーは、DBAとともに適切な型定義を作成するか、またはDBAが実行した全体データベース・モード・エクスポートまたはユーザー・モード・エクスポートからそれらの型定義をインポートすることによって、適切なデータ型がターゲット・システムに存在するようにする必要があります。
すべてのオブジェクト型定義を保持するには、全体データベース・モード・エクスポートを定期的に実行することが重要です。また、異なるスキーマのオブジェクト型定義を使用する場合、DBAは、該当するユーザーのユーザー・モード・エクスポートを実行する必要があります。たとえば、ユーザーscott
に属しているtable1
に、blake
の型type1
に存在する列が含まれている場合、表に必要な型定義を保持するには、blake
とscott
の両方のユーザー・モード・エクスポートを実行する必要があります。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.14.9 ネストした表のエクスポート
ネストした内部表データは、外部表がエクスポートされると必ずエクスポートされます。ネストした内部表は名前を指定できますが、個別にエクスポートすることはできません。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.14.10 AQ表のエクスポート
キューは表上で実装されます。キューのエクスポートおよびインポートは、基礎となるキュー表と関連のディクショナリ表のエクスポートおよびインポートによって構成されます。キューのエクスポートおよびインポートは、キュー表単位のレベルでのみ実行できます。
キュー表をエクスポートすると、表定義情報とキュー・データの両方がエクスポートされます。キュー表データと表定義がエクスポートされるため、ユーザーは、キュー表データのインポート時に、アプリケーション・レベル・データの整合性のメンテナンスを行います。
24.14.11 シノニムのエクスポート
シノニムおよび別のオブジェクトとして使用される名前を参照するコンパイル済オブジェクトをエクスポートするときは、注意する必要があります。これらのオブジェクトのエクスポートおよびインポートを実行すると、再コンパイルが施行されて、オブジェクト定義が変更されることがあります。
この問題について、次の例に示します。
CREATE PUBLIC SYNONYM emp FOR scott.emp; CONNECT blake/paper; CREATE TRIGGER t_emp BEFORE INSERT ON emp BEGIN NULL; END; CREATE VIEW emp AS SELECT * FROM dual;
前述の例のデータベースがエクスポートされると、トリガー内のemp
への参照によって、scott
の表ではなくblake
のビューが参照されます。そのため、インポート・ユーティリティでt_emp
トリガーを再確立しようとすると、エラーが発生します。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.14.12 Javaシノニムに関連して発生する可能性があるエクスポート・エラー
対応するDBMS_JAVA
パッケージがないとき、またはJavaがロードされないか、正しくロードされないときに、エクスポート操作でDBMS_JAVA
という名前のシノニムをエクスポートしようとすると、エクスポートが正常に完了されないまま終了します。生成されるエラー・メッセージには、EXP-00008、ORA-00904、ORA-29516などが含まれます。
Javaが有効化されている場合、エクスポートを再実行する前にDBMS_JAVA
シノニムとDBMS_JAVA
パッケージの両方が作成されて有効になっていることを確認してください。
Javaが有効化されていない場合は、エクスポートを再実行する前にJava関連オブジェクトを削除します。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.14.13 ファイングレイン・アクセス・コントロールに対するサポート
ファイングレイン・アクセス・コントロール・ポリシーを使用可能にして、表をエクスポートできます。その場合は、次の点を考慮してください。
-
ファイングレイン・アクセス・コントロール・ポリシーが使用可能な表を含むエクスポート・ファイルをインポートするユーザーは、適切な権限(特に
DBMS_RLS
パッケージに対するEXECUTE
権限。表のセキュリティ・ポリシーを回復するため)を持っている必要があります。適切な権限を持っていないユーザーが、ファイングレイン・アクセス・ポリシーが使用可能な表をエクスポートしようとすると、エクスポート実行者が読取り権限を持つ行のみがエクスポートされます。 -
SELECT
文に対してファイングレイン・アクセス・コントロールを使用可能にすると、従来型パス・エクスポートでは表全体をエクスポートできない場合があります。これは、ファイングレイン・アクセスでは問合せが再作成される可能性があるためです。 -
ファイングレイン・アクセス・コントロールが設定されている表上でダイレクト・パス・エクスポートを実行できるのは、ユーザーSYS、
EXP_FULL_DATABASE
ロールが使用可能なユーザー、またはEXEMPT ACCESS POLICY
を付与されているユーザーのみです。
親トピック: データベース・オブジェクトのエクスポート時の考慮点
24.15 トランスポータブル表領域
トランスポータブル表領域機能は、一連の表領域を、あるOracle Databaseから他のOracle Databaseに移動できる機能です。
ノート:
トランスポータブル表領域をエクスポートした後、それよりも古いリリース・レベルのデータベースにインポートすることはできません。ターゲット・データベースのリリース・レベルは、ソース・データベース以上である必要があります。
一連の表領域を移動またはコピーするには、表領域を読取り専用にし、表領域のデータ・ファイルをコピーしてから、エクスポートおよびインポートを使用して、データ・ディクショナリに格納されているデータベース情報(メタデータ)を移動します。データ・ファイルとメタデータ・エクスポート・ファイルの両方を、ターゲット・データベースにコピーする必要があります。これらのファイルの転送は、オペレーティング・システムのコピー機能、バイナリ・モードFTP、CD-ROMへの出力などのような、フラット・バイナリ・ファイルのコピー機能を使用して行われます。
データ・ファイルのコピーおよびメタデータのエクスポートの後、表領域を任意に読み書き両用モードにできます。
次のパラメータで、トランスポータブル表領域のメタデータを移動できます。
-
TABLESPACES
-
TRANSPORT_TABLESPACE
エクスポート操作時のこれらのパラメータの使用方法の詳細は、「TABLESPACES」および「TRANSPORT_TABLESPACE」を参照してください。
関連項目:
-
トランスポータブル表領域の管理の詳細は、『Oracle Database管理者ガイド』を参照してください。
親トピック: オリジナルのエクスポート
24.16 読取り専用データベースからのエクスポート
ソース・データベースからメタデータを抽出するには、エクスポート・ユーティリティで順序付け句(ソート操作)が含まれる問合せを使用します。これらの問合せを正しく実行するには、エクスポートを実行するユーザーがソート・セグメントを指定できる必要があります。これらのソート・セグメントを読取り専用データベースに指定するには、ユーザーの一時表領域が、一時的なローカル管理表領域を指すように設定します。
親トピック: オリジナルのエクスポート
24.17 エクスポート・ユーティリティおよびインポート・ユーティリティを使用したデータベース移行のパーティション化
エクスポート・ユーティリティおよびインポート・ユーティリティを使用して大規模データベースを移行する場合、移行を複数のエクスポート・ジョブおよびインポート・ジョブにパーティション化するとより効率的です。移行をパーティション化する場合は、次のメリットおよびデメリットに注意してください。
親トピック: オリジナルのエクスポート
24.17.1 移行をパーティション化する場合のメリット
移行をパーティション化すると、次のメリットがあります。
-
多くのサブジョブをパラレルに実行できるため、移行に必要な時間を削減できます。
-
最初のエクスポート・ジョブが完了するとすぐにインポート・ユーティリティを起動できます。
24.17.2 移行をパーティション化する場合のデメリット
移行をパーティション化すると、次のデメリットがあります。
-
エクスポートおよびインポートのプロセスがより複雑になります。
-
特定の型のオブジェクトに対する相互スキーマ参照のサポートが損なわれます。たとえば、異なるスキーマの表に対する外部キー制約を持つ表がスキーマに含まれている場合、その表を依存スキーマにインポートしたときに、必要な親レコードが存在しない場合があります。
24.17.3 エクスポート・ユーティリティおよびインポート・ユーティリティを使用したデータベース移行のパーティション化方法
データベースの移行をパーティション化方法で実行するには、次のステップに従います。
-
データベースのすべての最上位メタデータに、次のコマンドを発行します。
-
exp FILE=full FULL=y CONSTRAINTS=n TRIGGERS=n ROWS=n INDEXES=n
-
imp FILE=full FULL=y
-
-
データベースの各スキーマ
n
に、次のコマンドを発行します。-
exp OWNER=schema
n
FILE=schema
n
-
imp FILE=schema
n
FROMUSER=schema
n
TOUSER=schema
n
IGNORE=y
-
すべてのエクスポートはパラレルで実行できます。full
.dmp
のインポートが完了すると、残りのインポートもパラレルで実行できます。
24.18 リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用
この項では、リリースが異なるエクスポート・ユーティリティおよびOracle Databaseを使用することに関連した互換性の問題について説明します。
異なるリリースのOracle Database間でデータを移動するときは、必ず次の基本的な規則に従います。
-
インポート・ユーティリティとデータのインポート先であるデータベース(ターゲット・データベース)のリリースは同じである必要があります。たとえば、インポート・ユーティリティ9.2.0.7を使用して9.2.0.8のデータベースにインポートしようとすると、エラーが発生する場合があります。
-
エクスポート・ユーティリティのバージョンは、ソースまたはターゲット・データベースの古い方のリリースに合わせる必要があります。
たとえば、新しいリリースのデータベースにインポートするためにエクスポート・ファイルを作成する場合は、ソース・データベースと同じエクスポート・ユーティリティのバージョンを使用します。一方、古いリリースのデータベースにインポートするためのエクスポート・ファイルを作成する場合は、ターゲット・データベースのリリースと同じバージョンのエクスポート・ユーティリティを使用します。
-
通常は、Oracle8リリースのエクスポート・ユーティリティを使用して、Oracle9iサーバーからエクスポートし、Oracle8エクスポート・ファイルを作成できます。
-
親トピック: オリジナルのエクスポート
24.18.1 リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用時の制限事項
異なるリリースのエクスポート・ユーティリティおよびインポート・ユーティリティを使用する場合、次の制限があります。
-
エクスポート・ダンプ・ファイルは、特別なバイナリ形式で格納されているため、インポート・ユーティリティによる読取り専用です。
-
すべてのエクスポート・ダンプ・ファイルは、上位リリースのOracle Databaseにインポートできます。
-
インポート・ユーティリティでは、上位のメンテナンス・リリースのエクスポート・ユーティリティで作成されたエクスポート・ダンプ・ファイルの読取りはできません。たとえば、リリース9.2のエクスポート・ダンプ・ファイルは、リリース9.0.1のインポート・ユーティリティではインポートできません。
-
下位バージョンのエクスポート・ユーティリティを上位リリースのOracle Databaseで実行すると、下位リリースに存在しないデータベース・オブジェクトのカテゴリは、常にエクスポートから除外されます。
-
Oracle9iのエクスポート(ダイレクト・パスまたは従来型パス)によって生成されたエクスポート・ファイルは、以前のリリースのインポート・ユーティリティと互換性がありません。したがって、インポートにはOracle9iのインポートのみを使用できます。下位互換性が問題になる場合は、Oracle9iデータベースよりも古いリリースのエクスポート・ユーティリティを使用してください。
24.18.2 リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用例
表24-5に、異なるリリースのOracle Database間でデータを移動させる場合に使用するエクスポート・ユーティリティおよびインポート・ユーティリティのリリースの例を示します。
表24-5 リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用
エクスポート元>インポート先 | 使用するエクスポート・ユーティリティのリリース | 使用するインポート・ユーティリティのリリース |
---|---|---|
8.1.6 -> 8.1.6 |
8.1.6 |
8.1.6 |
8.1.5 -> 8.0.6 |
8.0.6 |
8.0.6 |
8.1.7 -> 8.1.6 |
8.1.6 |
8.1.6 |
9.0.1 -> 8.1.6 |
8.1.6 |
8.1.6 |
9.0.1 -> 9.0.2 |
9.0.1 |
9.0.2 |
9.0.2 -> 10.1.0 |
9.0.2 |
10.1.0 |
10.1.0 -> 9.0.2 |
9.0.2 |
9.0.2 |
表24-5に、オリジナルのエクスポートおよびインポート・ユーティリティ間のデータ移動を示します。Oracle Database 10gリリース1 (10.1)以上では、ほとんどの場合にデータ・ポンプ・エクスポートおよびデータ・ポンプ・インポート・ユーティリティを使用することをお薦めします。これらのユーティリティは、オリジナルのエクスポートおよびインポート・ユーティリティと比較して、パフォーマンスが著しく向上しています。
関連項目:
10.1以上のリリースを含めた異なるリリース間でのデータのエクスポートおよびインポートの詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。