トップ 一覧 ping 検索 ヘルプ RSS ログイン

Oracle Database10g Data Pumpの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!Oracle Database10g Data Pump
[Oracle][Oracle Database10g]
{{amazon 479810910X}}
[Oracle Data Pump|http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19211-01/dp_overview.html#1367]概要
*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とも呼ばれます)

![ディレクトリ・オブジェクト|http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19211-01/dp_overview.html#3819]
*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 Exportユーティリティ|http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19211-01/dp_export.html]
*ダンプ・ファイル・セットと呼ばれる一連のオペレーティング・システム・ファイルにデータおよびメタデータをアンロードするためのユーティリティ
*ダンプ・ファイル・セットは、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を使用する)
::メンテナンス - 行移動
{{ref_image ora_dpump01.jpg}}
::ウィザードに従いモードを選択
{{ref_image ora_dpump02.jpg}}
::先ほど作成した、ディレクトリオブジェクトが確認できる
{{ref_image ora_dpump03.jpg}}
::PL/SQLが生成されるので、実行する
{{ref_image ora_dpump04.jpg}}

!![Data Pump Importユーティリティ|http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19211-01/dp_import.html]
*エクスポート・ダンプ・ファイル・セットをターゲット・システムにロードするためのユーティリティ
*ダンプ・ファイルを介さずに、ソース・データベースから直接ターゲット・データベースをロードするために使用することもできます。これによって、エクスポートおよびインポート操作を同時に実行でき、操作にかかる時間を最小限にできます。これはネットワーク・インポートと呼ばれます。

!インポートモード
,モード,パラメータ,内容
,全体エクスポート・モード,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コマンドの実行
*複数テーブルはカンマで区切る
*テーブルスペースは、TABLESPACESで指定
 $ impdp hr/hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLESPACES=tbs_1,tbs_2,
tbs_3,tbs_4

 $ 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