業務で若干触れたので、備忘録として…
情報のバージョンがバラバラの可能性があります。
そもそもの話
Export/Importとは
Oracle DatabaseにおけるExport/Importは、
テーブル等のオブジェクトをバックアップ、移行する為の仕組みです。
そもそも単語としてOracle DBの専門用語ではないので、イメージはし易いかもしれません。
Exportによって作成されるファイルをダンプファイルと言い、バイナリ形式です。
このファイルはExport/Importのみで扱う事ができ、FTPで転送可能となります。
Importによってダンプファイルからデータを読み込みます。
主な目的
データベースのバックアップや他のDBへのデータ移行に使う事が多いです。
Export/Importの種類
Export/Import
exp、impコマンドで起動するオリジナルのExport/Import
Data Pump
expdp、impdpコマンドで起動するExport/Import
高速に動作するOracle Database10gから使用可能です。
違い
一番の違いはExportによって作成されるダンプファイルがどこにできるか だと思います。
Export/ImportはクライアントPCから実行し、クライアントPC側にファイルが保存されます。
一方で、Data PumpはDBサーバー側の機能で実行され、サーバー側にファイルが保存されます。
| Export/Import | Data Pump | |
| メリットデメリット | 単純だが、遅い | 複雑だが、早い |
| コマンド | exp、imp | expdp、impdp |
| ダンプファイルの場所 | クライアントPC | サーバー |
Data Pump の使い方
基本的な順番は下記の通り
1.ダンプファイルの格納場所準備
2.エクスポート
3.インポート
事前準備が必要です。
ダンプファイルが格納される場所(directory object)を作成します。
/home/dumpはOS上に存在する必要があります。
-- DUMP_DIR: ディレクトリオブジェクト名
CREATE OR REPLACE DIRECTORY DUMP_DIR as '/home/dump';
ディレクトリオブジェクトへの権限があるユーザを用意
GRANT READ, WRITE ON DIRECTORY DUMP_DIR TO SCOTT;
実際にエクスポートする例
expdp scott/tiger directory=TEST_DIR DUMPFILE=scott_table.dmp TABLES=scott.emp REUSE_DUMPFILES=Y
| パラメータ | 内容 |
|---|---|
scott/tiger | ログインユーザー名/パスワード |
DIRECTORY=TEST_DIR | ダンプファイルを保存するOracleディレクトリオブジェクト |
DUMPFILE=scott_table.dmp | 出力するダンプファイル名 |
TABLES=scott.emp | エクスポート対象のテーブル(スキーマ.テーブル) |
REUSE_DUMPFILES=Y | 既存の同名ファイルを上書きする |
インポートの例(同一DBサーバーの場合)
※別のDBサーバーにインポートする場合はダンプファイルをインポートするサーバーにコピーし、ディレクトリオブジェクトの作成が必要になります。
impdp scott/tiger directory=DUMP_DIR dumpfile=scott_data.dmp logfile=import.log schemas=SCOTT
別のDBサーバーにインポート
-- まずはダンプファイルのコピー
scp /home/dump/scott_data.dmp oracle@importserver:/home/dump/
インポート先でディレクトリ作成(ディレクトリオブジェクトへの権限があるユーザを用意)
CREATE OR REPLACE DIRECTORY DUMP_DIR AS '/home/dump';
GRANT READ, WRITE ON DIRECTORY DUMP_DIR TO SCOTT;
インポートします。
impdp scott/tiger directory=DUMP_DIR dumpfile=scott_data.dmp tables=SCOTT.EMP logfile=impdp_emp.log
「table_exists_action」でインポートする際に既存のオブジェクトが存在した時の動きを制御できます。
table_exists_action(12c)
https://docs.oracle.com/cd/E57425_01/121/SUTIL/GUID-C9664F8C-19C5-4177-AC20-5682AEABA07F.htm
参考
初心者向け公式ドキュメント(Oracle DB 11g)
https://www.oracle.com/jp/a/tech/docs/technical-resources/20100908-expimp-beginner.pdf


コメント