Data PumpとSQL*Loader

 Data Pump 

 Data Pumpエクスポート 

  Data Pumpエクスポートは、Oracleデータベース内のオブジェクトを高速にアンロードできるユーティリティである。
  取り出されたデータはData Pumpにより、ダンプファイルとしてファイル化される。

  エクスポートタイプ

    データベース全体(FULL=Y)、スキーマ(SCHEMAS)、表(TABLES)を指定できる。
    データベース全体、他スキーマを対象とする場合、EXP_FULL_DATABASEロールが必要。

  コンテンツ

    デフォルト(CONTENT=ALL)では、データとメタデータ(定義)の両方がエクスポートされるが、
    データのみ(CONTENT=DATA_ONLY)、メタデータのみ(CONTENT=META_DATA)とすることもできる。

 Data Pumpインポート 

  Data Pumpインポートは、Data Pumpエクスポートにより作成されたダンプファイルをOracleデータベースにロードするユーティリティである。

  インポートタイプ

    データベース全体(FULL=Y)、スキーマ(SCHEMAS)、表(TABLES)を指定できる。
    データベース全体、他スキーマを対象とする場合、IMP_FULL_DATABASEロールが必要。

  再マッピング

    スキーマ(REMAP_SCHEMA)、表領域(REMAP_TABLESPACE)、ファイル名(REMAP_DATAFILE)をエクスポート時と異なるものにすることができる。

 ダンプファイル 

  Data Pumpを使用したエクスポート/インポートでは、サーバ側に置かれるダンプファイルに書き込み、読み込みが行われる。
  サーバ側のディレクトリを直接指定するのではなく、ディレクトリオブジェクトを使用する。
  Data Pumpエクスポート/インポートでは、ファイル名に「%U」置換変数を使用することができる。
  これは01から始まり単純に増加していく固定幅の数字。複数のファイルが生成される場合に使用する。

 SQL*Loader 

  SQL*Loaderは、外部ファイルをOracleデータベースにロードするユーティリティ。
  下記のような関連ファイルがある。

入力ファイル

制御ファイル どのようにロードするかを記述しているテキストファイル。ロードするデータの位置、データ形式などを記述する。
データファイル ロードする実際のデータを記述しているテキストファイル。制御ファイルに含めることも可能。

出力ファイル

データ ロード条件を満たしたレコードのみ、データベース内の既存テーブルに格納される。
ログファイル 成功時も失敗時も生成される。成功時はどのようにロードしたかが、失敗時はどのようなエラーが発生したかが記録される。
不良ファイル Oracleデータベースにロードが拒否されたレコードが格納される。制約に違反したり、データ型が異なっていたり、最大サイズを超過していたりする場合、そのレコードはロードされず、不良ファイルにコピーされる。
廃棄ファイル 制御ファイル内に「WHEN 条件」が存在する場合、条件を満たさないレコードは廃棄レコードとなりロードされない。廃棄ファイルを生成するように指定しておくと、廃棄レコードが廃棄ファイルにコピーされる。

  SQL*Loaderでは、次の2つのロード方法がある。

  従来型パスロード

    レコードの配列を作成し、INSERT文でロードされる方法。
     テーブルの最高水位標(HWM)より下のブロックが使用できるロード方法。
    常にREDOログが生成される。

  ダイレクトパスロード

    ブロックイメージを作成し、データファイルのデータブロックに直接保存する方法。
    テーブルの最高水位標より上の未使用ブロックのみが使用される。
    NOARCHIVELOGモード時や、NOLOGGING設定されたテーブルの場合は、REDOログが生成される。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License