DataPumpの使い方 (インポート編)
impdpでデータをインポートする手順
Oracle 10g から導入された「Data Pump」を使ってデータをインポートする手順をメモしておきます。oracleでのデータ移行はexp/impが主流でしたが、データポンプはexp/impより優れた特徴があります。
それはなんといっても処理速度の向上です。ダイレクトパスでのアンロードであればexpよりも2倍速く、データロードにおいては15~45倍という速さです。さらにパラレル実行も可能になっているので、作業効率は圧倒的に向上しますね。
それでは手順に移ります。作業の流れはこうです。
- Data Pump用の作業ディレクトリの登録
- エクスポートしたデータをData Pump用ディレクトリに配置
- パラメータファイルの作成
- impdpでインポート
Data Pump用ディレクトリ登録
sqlplusを起動して、SQLで登録します。ここでは以下の2つのディレクトリを登録します。
- エクスポートファイルの配置ディレクトリ → /work/ExpdpDump/dmp_data
- ログファイル出力用ディレクトリ → /work/ExpdpDump/dmp_log
以下のSQLで登録します。
SQL> create directory dmp_data as '/work/ExpdpDump/dmp_data'; ディレクトリが作成されました。 SQL> create directory dmp_log as '/work/ExpdpDump/dmp_log'; ディレクトリが作成されました。 SQL>
登録したディレクトリを確認します。
SQL> select * from dba_directories; OWNER DIRECTORY_NAME DIRECTORY_PATH ---------- ------------------------------ -------------------------------------------------- SYS DMP_DATA /work/ExpdpDump/dmp_data SYS DMP_LOG /work/ExpdpDump/dmp_log SYS XMLDIR /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/xml SYS ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0/dbhome_1/ccr/state SYS DATA_PUMP_DIR /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/log/ SYS ORACLE_OCM_CONFIG_DIR2 /u01/app/oracle/product/11.2.0/dbhome_1/ccr/state 7行が選択されました。 SQL>
パラメータファイル作成
パラメータファイルには、テーブル名、スキーマ名、表領域名、エクスポートファイルパス、ログ出力先、を記述します。impdpコマンドに直接書くこともできますが、ここではパラメータファイルに記述して、それを読み込ませてインポートする手順となります。
パラメータファイル「/work/ExpdpDump/dmp_dat/TEST_SELLER_impdp.dat」を作成します。
[oracle@server01:/home/oracle] vi /work/ExpdpDump/dmp_dat/TEST_SELLER_impdp.dat tables=( SCHEMA_A.TABEL_1, SCHEMA_A.TABEL_2 ) DUMPFILE=dmp_data:TEST_SELLER.dmp LOGFILE=dmp_log:TEST_SELLER_impdp.log
データのインポート
impdpコマンドを実行して、データをインポートします。パラメータファイルは、「parfile=」で指定します。
[oracle@server01:/home/oracle] impdp system parfile=/work/ExpdpDump/dmp_dat/TEST_SELLER_impdp.dat Import: Release 11.2.0.4.0 - Production on 水 11月 6 19:58:18 2013 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. パスワード: 接続先: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options マスター表"SYSTEM"."SYS_IMPORT_TABLE_01"は正常にロード/アンロードされました "SYSTEM"."SYS_IMPORT_TABLE_01"を起動しています: system/******** parfile=/work/ExpdpDump/dmp_dat/TEST_SELLER_impdp.dat オブジェクト型TABLE_EXPORT/TABLE/TABLEの処理中です オブジェクト型TABLE_EXPORT/TABLE/TBL_TABLE_DATA/TABLE/TABLE_DATAの処理中です . . "A"."TABLE_1" 8.128 MB 230284行がインポートされました . . "A"."TABLE_2" 3.801 MB 22179行がインポートされました オブジェクト型TABLE_EXPORT/TABLE/GRANT/TBL_OWNER_OBJGRANT/OBJECT_GRANTの処理中です オブジェクト型TABLE_EXPORT/TABLE/INDEX/INDEXの処理中です オブジェクト型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です オブジェクト型TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSの処理中です オブジェクト型TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSの処理中です ジョブ"SYSTEM"."SYS_IMPORT_TABLE_01"が完了しました [oracle@server01:/home/oracle]
データインポートが完了しました。