Export/Import まとめ

これは、日々の業務で使っているので楽勝。
これらの仕組みのイメージは、エクスポートを行なうとdumpファイルができるに
CREATE TABLE文,INSERT 文が格納されており、
インポートでその文が実行されてデータが移行できますよ。と思っている。

エクスポート

4つのモードがある。

  1. 表モード
  2. ユーザモード
  3. 全データベースモード
  4. 表領域モード

コマンドのパラメータとして、あまりなじみがないのはこれぐらいかな。

  • TRANSPORT_TABLESPACE
    • トランスポータブル表領域として実行するか?
  • QUERY
    • WHERE句、ORDER BY句の指定(表モードのみ指定可能)
  • COMPRESS
    • 1つのエクステントにまとめてエクスポートするか?

インポート

モードについては、エクスポートと同じなのでパス。
内部処理の手順はこのようになってる。

  1. 新規表の作成
  2. データのINSERT処理
  3. B*Tree索引の作成
  4. 制約の有効化
  5. トリガーのインポート
  6. その他索引の作成

テーブルごとにこれの繰り返しとなるので、参照整合性制約がある場合は、
1度のインポートじゃうまくいかない場合がある。
その場合は、

  1. まず、制約なしのデータのみインポート
    • imp system/system FILE = full.dmp FULL= y CONSTRAINTS=N
  2. 次に、データなしの制約のみインポート
    • imp system/system FILE = full.dmp FULL= y ROWS=N

これでいいような希ガス

コマンドのパラメータとして、あまりなじみがないのは

  • COMMIT
    • 配列ごとにコミットするか(Nの場合は表単位)
  • SHOW
    • エクスポートファイルの内容を画面表示するか?よくわからん

トランスポータブル表領域

表領域のメタデータのみをEXP/IMPして、実際のデータは
データファイルをFTPなどでそのまま転送してしまうって方法。
データファイルの転送のほうが、データのEXP/IMPより高速だYOってこと。
ただし、同一プラットフォーム、同一キャラクタセット間のみ可能。
(10gでは、変更されていたような希ガス