Oracle | Oracle Database10g |
Oracle Data Pump概要
- Oracle Data Pumpを使用すると、データおよびメタデータをデータベース間で非常に高速に移動できます。
- Oracle Database 10g R1 以降でのみ使用できる。
構成要素
コマンドライン・クライアント
クライアント
|
内容
|
expdp
|
Data Pump Exportユーティリティを起動
|
impdp
|
Data Pump Importユーティリティを起動
|
- オリジナルのエクスポート・ユーティリティ(exp)およびインポート・ユーティリティ(imp)とほぼ同じユーザー・インタフェースが提供される
PL/SQLパッケージ
- DBMS_DATAPUMP(Data Pump APIとも呼ばれます)
- DBMS_METADATA(メタデータAPIとも呼ばれます)
- Data Pumpは、クライアント・ベースではなく、サーバー・ベースであるため、ダンプ・ファイル、ログ・ファイルおよびSQLファイルには、サーバー・ベースのディレクトリ・パスを基準としてアクセスします
- Data Pumpでは、ディレクトリ・パスをディレクトリ・オブジェクトとして指定する必要があります
- ディレクトリ・オブジェクトは、ファイル・システムのディレクトリ・パスに名前をマップします
- CREATE ANY DIRECTORY権限を持つユーザーがディレクトリ・オブジェクトを作成する必要があります
ディレクトリ・オブジェクトを作成
- ディレクトリ /home/oracle/dpump にマップされるディレクトリ・オブジェクト dpump_dir1を作成する
- SQL> create directory dpump_dir1 as '/home/oracle/dpump';
-
- Directory created.
- 出力するスキーマーのユーザに書き込み権限を与えておく
- SQL> grant read,write on directory dpump_dir1 to exam;
-
- Grant succeeded.
- ダンプ・ファイル・セットと呼ばれる一連のオペレーティング・システム・ファイルにデータおよびメタデータをアンロードするためのユーティリティ
- ダンプ・ファイル・セットは、Data Pump Importユーティリティによってのみインポートできる
エクスポートモード
モード
|
パラメータ
|
内容
|
全体エクスポート・モード
|
FULL
|
データベース全体をアンロード、EXP_FULL_DATABASEロールが必要
|
スキーマ・モード
|
SCHEMAS
|
デフォルトのエクスポート・モード、EXP_FULL_DATABASEロールを所有していない場合は、自分のスキーマのみをエクスポートできる
|
表モード
|
TABLES
|
指定した表、パーティションおよびそれらの依存オブジェクトのみがアンロードされる
|
表領域モード
|
TABLESPACES
|
指定した表領域内に存在する表のみがアンロードされる
|
トランスポータブル表領域モード
|
TRANSPORT_TABLESPACES
|
指定した表領域内にある表のメタデータ(およびその表の依存オブジェクト)のみがアンロードされます。これによって、表領域データ・ファイルを別のOracleデータベースにコピーし、トランスポータブル表領域インポートを使用して、データベースに取り込むことができる。EXP_FULL_DATABASEロールが必要
|
表モードエクスポートの実行
- examスキーマの testテーブルをエクスポートする
- 複数テーブルはカンマで区切る
- $ expdp exam/abc123 TABLES=test DUMPFILE=dpump_dir1:table.dmp NOLOGFILE=y
-
- Export: Release 10.2.0.1.0 - Production on Saturday, 11 July, 2009 8:47:48
-
- Copyright (c) 2003, 2005, Oracle. All rights reserved.
-
- Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
- With the Partitioning, OLAP and Data Mining options
- Starting "EXAM"."SYS_EXPORT_TABLE_01": exam/******** TABLES=test DUMPFILE=dpump_dir1:table.dmp NOLOGFILE=y
- Estimate in progress using BLOCKS method...
- Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
- Total estimation using BLOCKS method: 64 KB
- Processing object type TABLE_EXPORT/TABLE/TABLE
- Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
- Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
- . . exported "EXAM"."TEST" 5.242 KB 2 rows
- Master table "EXAM"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
- ******************************************************************************
- Dump file set for EXAM.SYS_EXPORT_TABLE_01 is:
- /home/oracle/dpump/table.dmp
- Job "EXAM"."SYS_EXPORT_TABLE_01" successfully completed at 08:48:31
表モードエクスポートの実行(Enterprise Managerを使用する)
メンテナンス - 行移動
ウィザードに従いモードを選択
先ほど作成した、ディレクトリオブジェクトが確認できる
PL/SQLが生成されるので、実行する
- エクスポート・ダンプ・ファイル・セットをターゲット・システムにロードするためのユーティリティ
- ダンプ・ファイルを介さずに、ソース・データベースから直接ターゲット・データベースをロードするために使用することもできます。これによって、エクスポートおよびインポート操作を同時に実行でき、操作にかかる時間を最小限にできます。これはネットワーク・インポートと呼ばれます。
インポートモード
モード
|
パラメータ
|
内容
|
全体エクスポート・モード
|
FULL
|
ソースの全内容がターゲット・データベースにロードされる
|
スキーマ・モード
|
SCHEMAS
|
指定されたスキーマが所有しているオブジェクトのみがロードされる
|
表モード
|
TABLES
|
指定した表、指定した表、パーティションおよびそれらの依存オブジェクトのみがロードされる
|
表領域モード
|
TABLESPACES
|
指定した表領域内のすべてのオブジェクトが、依存オブジェクトとともにロードされる
|
トランスポータブル表領域モード
|
TRANSPORT_TABLESPACES
|
指トランスポータブル表領域エクスポート・ダンプ・ファイル・セットまたは別のデータベースからのメタデータがロードされます。
|
表モードインポートの実行
testテーブルを削除する
- SQL> select * from exam.test;
-
- ID NAME
- ---------- ----------
- 4 jkl
- 5 mno
-
- SQL> drop table exam.test;
-
- Table dropped.
-
- SQL> purge recyclebin;
-
- Recyclebin purged.
-
- SQL> select * from exam.test;
- select * from exam.test
- *
- ERROR at line 1:
- ORA-00942: table or view does not exist
impdpコマンドの実行
- $ impdp exam/north123 directory=dpump_dir1 DUMPFILE=table.dmp TABLES=test
-
- Import: Release 10.2.0.1.0 - Production on Saturday, 11 July, 2009 9:18:33
-
- Copyright (c) 2003, 2005, Oracle. All rights reserved.
-
- Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
- With the Partitioning, OLAP and Data Mining options
- Master table "EXAM"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
- Starting "EXAM"."SYS_IMPORT_TABLE_01": exam/******** directory=dpump_dir1 DUMPFILE=table.dmp TABLES=test
- Processing object type TABLE_EXPORT/TABLE/TABLE
- Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
- . . imported "EXAM"."TEST" 5.242 KB 2 rows
- Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
- Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
- Job "EXAM"."SYS_IMPORT_TABLE_01" successfully completed at 09:18:50
データの確認
- SQL> select * from exam.test;
-
- ID NAME
- ---------- ----------
- 4 jkl
- 5 mno