| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

Oracle Database10g Data Pump

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

Oracle Database10g Data Pump

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を作成する
  1. SQL> create directory dpump_dir1 as '/home/oracle/dpump';
  2.  
  3. Directory created.
  • 出力するスキーマーのユーザに書き込み権限を与えておく
  1. SQL> grant read,write on directory dpump_dir1 to exam;
  2.  
  3. Grant succeeded.

Data Pump Exportユーティリティ

  • ダンプ・ファイル・セットと呼ばれる一連のオペレーティング・システム・ファイルにデータおよびメタデータをアンロードするためのユーティリティ
  • ダンプ・ファイル・セットは、Data Pump Importユーティリティによってのみインポートできる

エクスポートモード

モード パラメータ 内容
全体エクスポート・モード FULL データベース全体をアンロード、EXP_FULL_DATABASEロールが必要
スキーマ・モード SCHEMAS デフォルトのエクスポート・モード、EXP_FULL_DATABASEロールを所有していない場合は、自分のスキーマのみをエクスポートできる
表モード TABLES 指定した表、パーティションおよびそれらの依存オブジェクトのみがアンロードされる
表領域モード TABLESPACES 指定した表領域内に存在する表のみがアンロードされる
トランスポータブル表領域モード TRANSPORT_TABLESPACES 指定した表領域内にある表のメタデータ(およびその表の依存オブジェクト)のみがアンロードされます。これによって、表領域データ・ファイルを別のOracleデータベースにコピーし、トランスポータブル表領域インポートを使用して、データベースに取り込むことができる。EXP_FULL_DATABASEロールが必要

表モードエクスポートの実行

  • examスキーマの testテーブルをエクスポートする
  • 複数テーブルはカンマで区切る
  1. $ expdp exam/abc123 TABLES=test DUMPFILE=dpump_dir1:table.dmp NOLOGFILE=y
  2.  
  3. Export: Release 10.2.0.1.0 - Production on Saturday, 11 July, 2009 8:47:48
  4.  
  5. Copyright (c) 2003, 2005, Oracle. All rights reserved.
  6.  
  7. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
  8. With the Partitioning, OLAP and Data Mining options
  9. Starting "EXAM"."SYS_EXPORT_TABLE_01": exam/******** TABLES=test DUMPFILE=dpump_dir1:table.dmp NOLOGFILE=y
  10. Estimate in progress using BLOCKS method...
  11. Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
  12. Total estimation using BLOCKS method: 64 KB
  13. Processing object type TABLE_EXPORT/TABLE/TABLE
  14. Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
  15. Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
  16. . . exported "EXAM"."TEST" 5.242 KB 2 rows
  17. Master table "EXAM"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
  18. ******************************************************************************
  19. Dump file set for EXAM.SYS_EXPORT_TABLE_01 is:
  20. /home/oracle/dpump/table.dmp
  21. Job "EXAM"."SYS_EXPORT_TABLE_01" successfully completed at 08:48:31

表モードエクスポートの実行(Enterprise Managerを使用する)

メンテナンス - 行移動

0942 ora dpump01.jpg

ウィザードに従いモードを選択

0943 ora dpump02.jpg

先ほど作成した、ディレクトリオブジェクトが確認できる

0944 ora dpump03.jpg

PL/SQLが生成されるので、実行する

0945 ora dpump04.jpg

Data Pump Importユーティリティ

  • エクスポート・ダンプ・ファイル・セットをターゲット・システムにロードするためのユーティリティ
  • ダンプ・ファイルを介さずに、ソース・データベースから直接ターゲット・データベースをロードするために使用することもできます。これによって、エクスポートおよびインポート操作を同時に実行でき、操作にかかる時間を最小限にできます。これはネットワーク・インポートと呼ばれます。

インポートモード

モード パラメータ 内容
全体エクスポート・モード FULL ソースの全内容がターゲット・データベースにロードされる
スキーマ・モード SCHEMAS 指定されたスキーマが所有しているオブジェクトのみがロードされる
表モード TABLES 指定した表、指定した表、パーティションおよびそれらの依存オブジェクトのみがロードされる
表領域モード TABLESPACES 指定した表領域内のすべてのオブジェクトが、依存オブジェクトとともにロードされる
トランスポータブル表領域モード TRANSPORT_TABLESPACES 指トランスポータブル表領域エクスポート・ダンプ・ファイル・セットまたは別のデータベースからのメタデータがロードされます。

表モードインポートの実行

testテーブルを削除する
  1. SQL> select * from exam.test;
  2.  
  3. ID NAME
  4. ---------- ----------
  5. 4 jkl
  6. 5 mno
  7.  
  8. SQL> drop table exam.test;
  9.  
  10. Table dropped.
  11.  
  12. SQL> purge recyclebin;
  13.  
  14. Recyclebin purged.
  15.  
  16. SQL> select * from exam.test;
  17. select * from exam.test
  18. *
  19. ERROR at line 1:
  20. ORA-00942: table or view does not exist
impdpコマンドの実行
  • 複数テーブルはカンマで区切る
  1. $ impdp exam/north123 directory=dpump_dir1 DUMPFILE=table.dmp TABLES=test
  2.  
  3. Import: Release 10.2.0.1.0 - Production on Saturday, 11 July, 2009 9:18:33
  4.  
  5. Copyright (c) 2003, 2005, Oracle. All rights reserved.
  6.  
  7. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
  8. With the Partitioning, OLAP and Data Mining options
  9. Master table "EXAM"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
  10. Starting "EXAM"."SYS_IMPORT_TABLE_01": exam/******** directory=dpump_dir1 DUMPFILE=table.dmp TABLES=test
  11. Processing object type TABLE_EXPORT/TABLE/TABLE
  12. Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
  13. . . imported "EXAM"."TEST" 5.242 KB 2 rows
  14. Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
  15. Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
  16. Job "EXAM"."SYS_IMPORT_TABLE_01" successfully completed at 09:18:50
データの確認
  1. SQL> select * from exam.test;
  2.  
  3. ID NAME
  4. ---------- ----------
  5. 4 jkl
  6. 5 mno