X

オラクルエンジニア通信では、オンプレミスからクラウドまで、オラクルテクノロジーの最新情報をお届けします

Data Pump(expdp/impdp)の使い方~エクスポート/インポート、データ移動、論理バックアップ

Oracle Database Appliance
クラウドサービス無料トライアル実施中
 

この記事の解説はセミナー動画でもご覧いただけます。
プレゼンテーション資料もダウンロード可能です。

1. Data Pump とは

Oracle Data Pump (以下、Data Pump) は Oracle Database 10g より導入されたテクノロジーです。 従来から利用されている、エクスポート/インポート(exp/impコマンド)と目的は同じく論理バックアップの取得、データベース間のデータ移動を可能にします。

従来のExp/Impは基本的にユーティリティ・ツールが実行される側で処理されるが、Data Pumpは、データベース・サーバー側でジョブとして管理・処理されます。得られる大きなメリットは、「パフォーマンス向上」と「管理性の向上」です。

パフォーマンスの向上

一般的に、これまでの exp および imp よりも高速に実行可能です。

ダイレクト・パスでアンロードを実行する場合、これまでの exp よりも約2倍の速度で処理されます。データのロードの場合、これまでのimpと比べて15から45倍の速度で処理されます。

さらに、パラレル処理で高速化を上げることも可能です。

【技術資料】Oracle Data Pumpのパラレル機能

管理性の向上

実行の停止・再開、ダンプ・ファイルの暗号化(Oracle Advanced Securityオプション)、ダンプ・ファイルの圧縮(Oracle Advanced Compressionオプション)など、多くの機能がサポートされています。

また、Oracle Database 11g では、expdp コマンドおよび impdp コマンド用に REMAP_DATA という新しいパラメータが提供されており、Data Pump がデータ変換をする際に、ユーザーが指定したPL/SQLファンクションでユーザーのデータを変更できるようになりました。

【技術資料】Oracle Data Pumpによるデータ変換

2.Data Pumpの仕組みアーキテクチャ

Data Pump は以下の3つの要素で構成されています。

  1) コマンドライン・クライアント expdp/impdp

  2) PL/SQL パッケージ DBMS_DATAPUMP (Data Pump API)

  3) PL/SQL パッケージ DBMS_METADATA (メタデータ API)

image 

【技術資料】Data Pump 概要とアーキテクチャ:Oracle Database 11g

3.Data Pumpの使い方

(1) Data Pump 実行前の準備

Data Pump による export/import を行う場合、ディレクトリ・オブジェクトの作成と権限の付与が必要です。

・DIRECTORY OBJECT の作成そのディレクトリへのアクセス権限の付与

TEST_DIR というディレクトリを /home/test として作成し、SCOTTユーザが EXPDP/IMPDP を行います。
ディレクトリの作成と read/write 権限の付与を行います。

    SQL> create or replace directory TEST_DIR as '/home/test';
    SQL> grant read, write on directory TEST_DIR to SCOTT;

・権限の付与

CONNECTおよびRESOURCE ロールが必要です。

(2) Data Pump Export (EXPDP) の実行例

ユーザとして SCOTT (パスワード TIGER)を使用し、DIRECTORY OBJECT として TEST_DIR をあらかじめ作成しています。

(例)SCOTT ユーザのテーブル EMP を export する場合
   % expdp scott/tiger directory=test_dir tables=emp

(3) Data Pump Import (IMPDP) の実行例

ユーザとして SCOTT (パスワード TIGER)を使用し、DIRECTORY OBJECT として TEST_DIR をあらかじめ作成しています。ダンプファイルは exp.dmp として作成されていることを前提とします。

(例)SCOTT ユーザにテーブル EMP を import する場合

   % impdp scott/tiger directory=test_dir dumpfile=exp.dmp tables=emp

【技術資料】Oracle Data Pumpクイック・スタート

4. 主な、エクスポート/インポート対象を指定するオプション

オプション 用途
TABLES テーブル名を指定
SCHEMAS スキーマ名を指定
TABLESPACES 表領域名を指定
FULL FULL=Y でデータベース全体を指定
CONTENT  
( CONTENT=data_only ) 表のデータのみ
( CONTENT=metadata_only ) 表の定義のみ
( CONTENT=all(デフォルト) ) 表のデータと定義の両方
NOLOGFILE NOLOGFILE=y で、ログファイルの出力を行わない
ESTIMATE_ONLY ESTIMATE_ONLY=y で、領域の見積もりのみ実施
EXCLUDE 一部のオブジェクトを除く

 

5. インポートの際にインポート先を指定するオプション

インポートの際に、格納先を変更することが可能です。

  • REMAP_SCHEMAオプション : export 時と異なるスキーマに import する

    (例)SCOTT ユーザの持つオブジェクトを TEST ユーザに import する場合

       % impdp scott/tiger directory=test_dir dumpfile=exp.dmp remap_schema=scott:test
     
  • REMAP_TABLESPACEオプション: export 時と異なる表領域に import する

    (例)USERS 表領域のオブジェクトを TESTTBS 表領域に import する場合

       % impdp scott/tiger directory=test_dir dumpfile=exp.dmp remap_tablespace=users:testtbs
     
  • REMAP_DATAFILEオプション :export 時と異なる名前のデータファイルで import する

    (例)USERS 表領域のデータファイル名を変更して import する場合

       % impdp system/manager directory=test_dir dumpfile=exp.dmp remap_datafile='/home/users.dbf:/home/test/users.dbf'
     
  • SQLFILEオプション : IMPDP 実行時に実行される SQL 文のコマンドを任意のファイルに出力する

    (例)import 時に実行される SQL 文を確認する場合

       % impdp scott/tiger directory=test_dir dumpfile=exp.dmp sqlfile=test.sql

 

■関連情報

中間ダンプファイル不要/ネットワーク経由でのEXPORT/IMPORT

 


この記事の解説はセミナー動画でもご覧いただけます。プレゼンテーション資料もダウンロード可能です。
 
Oracle Database Appliance
クラウドサービス無料トライアル実施中

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha