Oracle Data Pumpクイック・スタート

12 

Loading....

Loading....

Loading....

Loading....

Loading....

全文

(1)

Oracle Data Pump クイック・スタート

Oracle ホワイト・ペーパー

2007 年 6 月

(2)

ご注意 本書は、オラクルの一般的な製品の方向性を示すことが目的です。また、情報提 供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。 下記の事項は、マテリアルやコード、機能の提供を確約するものではなく、また、 購買を決定する際の判断材料とはなりえません。オラクルの製品に関して記載さ れている機能の開発、リリース、および時期については、弊社の裁量により決定 いたします。

(3)

Oracle Data Pump クイック・スタート

はじめに

Oracle Data Pump は、オリジナルの Export および Import ユーティリティを置き換 えるツールです。Oracle Database 10g から利用できる Oracle Data Pump は、データ およびメタデータをデータベースから別のデータベースにより高速に移動させる ことができます。

Oracle Data Pump の Export および Import ユーティリティは、これまでのユーティ リティのようなルック・アンド・フィールを実装していますが、効率性はより高 くなっており、インポートおよびエクスポートのジョブの制御と管理も充実して います。

このホワイト・ペーパーでは、オリジナルの Export および Import ユーティリティ を使用してきたユーザーに、高速かつ強力で、より柔軟な Oracle Data Pump の Export および Import ユーティリティの使用方法を紹介します。

Oracle Data Pump の総合的な情報は、『Oracle Database Utilities Guide』を参照して ください。

ORACLE DATA PUMP の新しい概念

Oracle Data Pump の Export および Import ユーティリティは、これまでのものに比 べてより効率的になりました。

Oracle Data Pump には、オリジナルの Export および Import ユーティリティとは異 なる 2 つの新しい概念があります。

ディレクトリ・オブジェクト

Oracle Data Pump は、オリジナルの Export および Import ユーティリティとは異な り、すべてのジョブが主にサーバー・プロセスを使用して実行されます。これら のサーバー・プロセスは、ファイルの場所を特定するディレクトリ・オブジェク トを使用して、Oracle Data Pump のジョブのファイルにアクセスします。ディレク トリ・オブジェクトは、DBA がこれらのファイルへのアクセスを制御できるよう、 セキュリティ・モデルを強化します。

インタラクティブ・コマンドライン・モード

通常の運用システム・コマンドライン・モード以外にも、非常に強力なインタラ クティブ・コマンドライン・モードを搭載しました。これは、ユーザーが Oracle Data Pump の Export および Import の操作を監視および制御するためのモードです。

(4)

オリジナルの Export/Import から ORACLE DATA PUMP への移

ディレクトリ・オブジェクトの作成

Oracle Data Pump を使用するため、データベース管理者はディレクトリ・オブジェ クトを作成し、そのディレクトリ・オブジェクトでユーザーに権限を与える必要 があります。ディレクトリ・オブジェクトが指定されていない場合、data_pump_dir というデフォルトのディレクトリ・オブジェクトが提供されます。デフォルトの data_pump_dir は、DBA が権限を与えないかぎり、特権ユーザーのみ利用できます。 次の例では、以下の SQL 文で/usr/apps/datafiles 内のディレクトリにマッピングさ れたディレクトリ・オブジェクトの dpump_dir1 を作成します。 ディレクトリを作成します。 Oracle Data Pump を使用するため、デー

タベース管理者はディレクトリ・オブ

ジェクトを作成する必要があります。 1. SQL> CREATE DIRECTORY dpump_dir1 AS ‘/usr/apps/datafiles’;

ディレクトリの作成後、ディレクトリに対するその他のユーザーの READ および WRITE 権限を与える必要があります。たとえば、dpump_dir1 というディレクトリ で、ユーザーの scott に代わって Oracle データベースがファイルの読込みおよび書 込みを実行できるよう許可するには、次のコマンドを実行する必要があります。

2. SQL> GRANT READ,WRITE ON DIRECTORY dpump_dir1 TO scott; ディレクトリ・オブジェクトへの READ または WRITE 権限では、ユーザーの代 わりに Oracle データベースがファイルの読込みおよび書込みを行うだけです。適 切なオペレーティング・システム特権を与えられていないかぎり、Oracle データ ベース以外からファイルに対して直接アクセスする権限はありません。同様に、 Oracle データベースはディレクトリ内のファイルの読込みおよび書込みを行うた めに、オペレーティング・システムから許可を得る必要があります。 ディレクトリへのアクセスが一度許可されると、ユーザーの scott は次のコマンド 引数でデータベース・オブジェクトのエクスポートが実行できるようになります。

3. >expdp username/password DIRECTORY=dpump_dir1 dumpfile=scott.dmp

コマンドライン・パラメータにおけるオリジナルの Export/Import と

Oracle Data Pump の違い

Oracle Data Pump のコマンドは、オリジナルの Export および Import のコマンドの ようなルック・アンド・フィールを持ちますが、異なります。次のいくつかの例 は、これらの違いを示したものです。

(5)

オリジナルの Import:

> imp username/password FILE=scott.dmp FROMUSER=scott TOUSER=jim TABLES=(*)

Oracle Data Pump の Import:

> impdp username/password DIRECTORY=dpump_dir1

DUMPFILE=scott.dmp TABLES=scott.emp REMAP_SCHEMA=scott:jim

FROMUSER/TOUSER 構文が REMAP_SCHEMA オプションに置き換えられています。

2) データベース全体をすべての GRANTS、INDEXES、およびデータを使用して、 ダンプ・ファイルにエクスポートする例

> exp username/password FULL=y FILE=dba.dmp GRANTS=y INDEXES=y ROWS=y

> expdp username/password FULL=y INCLUDE=GRANT INCLUDE= INDEX DIRECTORY=dpump_dir1 DUMPFILE=dba.dmp CONTENT=ALL

Oracle Data Pump は 、 オ リ ジ ナ ル の Export および Import ユーティリティと比 べて、より優れたメタデータ・フィルタ リングを提供します。

Oracle Data Pump は、これまでの Export および Import ユーティリティと比べて、 より優れたメタデータ・フィルタリングを提供します。INCLUDE パラメータでは、 エクスポート・ジョブでどのオブジェクト(および依存オブジェクト)を維持す るかを指定できます。EXCLUDE パラメータは、エクスポート・ジョブでどのオ ブジェクト(および依存オブジェクト)を排除するかを指定できます。2 つのパ ラメータを 1 つのジョブに組み合わせることはできません。両方のパラメータは Oracle Data Pump の Import でも機能し、同じダンプ・ファイルで異なる INCLUDE および EXCLUDE オプションによる異なる操作も実行できます。

3) チューニング・パラメータ

BUFFER 、 COMMIT 、 COMPRESS 、 CONSISTENT 、 DIRECT 、 お よ び RECORDLENGTH パラメータを使用するオリジナルの Export および Import ユー ティリティとは異なり、Oracle Data Pump はチューニングせずに最高のパフォーマ ンスを得ることができます。Oracle Data Pump は、データおよびメタデータがもっ とも効率的にエクスポートおよびインポートされる最良の方法を選択します。イ ンストール時の、初期化パラメータで十分です。

4) バージョン間でのデータ移動

Oracle Data Pump の異なるバージョンのデータベース間でデータを移動する方法 は、オリジナルの Export および Import の方法とは異なります。オリジナルの Export では、古いバージョンのデータベースと互換性のあるダンプ・ファイルを生成す るため、古い Export バージョンを実行する必要がありました。Oracle Data Pump では現行の Export バージョンのまま、VERSION パラメータを用いてターゲット となるバージョンのデータベースを指定するだけです。(Oracle Data Pump が 10g より前には存在しなかったため)Oracle Database 10g より前のバージョンでは指定 できません。

(6)

> expdp username/password TABLES=hr.employees VERSION=10.1 DIRECTORY=dpump_dir1 DUMPFILE=emp.dmp

Oracle Data Pump の Import は、古いバージョンの Oracle Data Pump の Export で作 成されたダンプ・ファイル・セットを常に読み込むことができます。

PARALLEL パラメータは、Oracle Data Pump のジョブのパフォーマンスを向上

させる強力なツールです。 ただし、Oracle Data Pump の Import は、オリジナルの Export で作成されたダンプ・ ファイルを読み込むことができない点に注意してください。

Oracle Data Pump の機能を最大化する方法

Oracle Data Pump はデフォルトのパラメータでも正常に動作しますが、新機能を使 用することも可能です。

並行処理

Oracle Data Pump の Export および Import 操作は、Oracle Data Pump のジョブとし てデータベース内で処理されます。これは、オリジナルの Export および Import に よるクライアント側での実行よりも遥かに効率的です。新しい Oracle Data Pump では、サーバーの並列処理を活用して、同時に複数のデータ・ストリームの読込 みまたは書込みを実行できます(PARALLEL は Oracle Database Enterprise Edition でのみ利用可能です)。

いくつかの並列処理は、Oracle Data Pump のインタラクティブ・コマンドライン・ モードでその場で切り替えられます。日中は一定数の処理を実行し、より多くの リソースが活用できる夜間は処理数を増やすといったことも可能です(その逆で も実行可能です)。 最適なパフォーマンスを得るには、以下を実行してください。 • 使用するシステムの CPU、メモリ、および I/O のバランスが取れている ことを確認します。 • 並列処理の各段階で少なくとも 1 つのダンプ・ファイルを作成します。 ダンプ・ファイルが十分にないと、パフォーマンスは最適化されません。 複数のスレッドを実行する際に、すべて同じダンプ・ファイルにアクセ スしようとするためです。 • ダンプ・ファイル・セットのメンバーであるファイルを異なるディスク に保存し、書込みおよび読込みを並列的に実行できるようにします。 • エクスポート操作については、DUMPFILE パラメータの%U 変数を使用 して、複数のダンプ・ファイルが自動生成されるようにします。 例:

> expdp username/password DIRECTORY=dpump_dir1 JOB_NAME=hr DUMPFILE=par_exp%u.dmp PARALLEL=4

(7)

REMAP

• REMAP_TABLESPACE - エクスポートされた場所から違う表領域に簡単に 表をインポートできます。Oracle データベースは、10g Release 1 以降である必 要があります。

例:

> impdp username/password REMAP_TABLESPACE=tbs_1:tbs_6 DIRECTORY=dpumpdir1 DUMPFILE=employees.dmp • REMAP_DATAFILES - これは、異なるファイル・ネーミング規則を持つプ ラットフォーム間でデータベースを移行させる際に、非常に便利な機能とな ります。このパラメータは、ソース・データ・ファイルを参照するすべての SQL 文に対して、ソース・データ・ファイル名をターゲット・データ・ファ イル名に変換します。REMAP_DATAFILE 値は引用符を使用するため、パラ メータ・ファイル内のパラメータを指定することが最善の方法となります。 例: パラメータ・ファイルの payroll.par は、次のような内容です。 DIRECTORY=dpump_dir1 FULL=Y DUMPFILE=db_full.dmp REMAP_DATAFILE=”’C:¥DB1¥HRDATA¥PAYROLL¥tbs6.dbf’:’/db1/hrdata/pa yroll/tbs6.dbf’” ここで次のコマンドを実行できます。 > impdp username/password PARFILE=payroll.par

ORACLE DATA PUMP のさらに高度な機能

Oracle Data Pump にはコマンドライン・モードやパフォーマンス機能以外にも、 DBA にとって非常に有益な新機能があります。いくつかの特徴的な機能を紹介し ます。

インタラクティブ・コマンドライン・モード

インタラクティブ・コマンドライン・モードを使用すると、Oracle Data Pump の監 視および制御をより強力に制御することができます。Oracle Data Pump のジョブは 完全にサーバー上で実行されるため、エクスポート・ジョブまたはインポート・ ジョブを実行したら、別の作業をしてから再度ジョブに接続して進行状況を監視 することも可能です。このモードで実施できるいくつかの作業は、次のとおりです。 インタラクティブ・コマンドライン・モー

ドは、Oracle Data Pump のジョブを簡単 に監視および制御できます。 • ジョブの状態を表示する。ジョブの実行状況を監視するのに必要なすべ ての情報が提供されます。 • エクスポート・ファイルを格納するためのディスク容量が不足している 場合に、ダンプ・ファイルをさらに追加する。 • ダンプ・ファイルのデフォルト・サイズを変更する。

(8)

• リソースを消費しすぎているといった場合は、ジョブを停止してより多 くのリソースが利用可能になった後で再起動する。

• ジョブを再起動する。ジョブが何らかの理由(システム障害、停電など) で停止した場合、ジョブに接続して再起動します。

• ジョブに対するアクティブ・ワーカー処理数を増やす、または減らす (Oracle Database Enterprise Edition のみ)。

• (自宅などから)リモート・サイトを通してジョブに接続し、状態を監 視する。

ネットワーク・モード

Oracle Data Pump は、ダンプ・ファイルをディスクに作成することなく、(データ ベース・リンクを通じて)ネットワーク上にて 2 つのデータベース間でデータを 渡すことができます。これは、使用できるディスク容量が十分でない場合に、デー タベース間でデータを移動させるのに便利なモードです(例:データ・マートか らデータ・ウェアハウス)。大きなボリュームのデータを移動する場合、ネット ワーク・モードはファイル・モードよりも遅くなる可能性があります。

ネットワーク・エクスポートは、Oracle Data Pump のジョブが実行されているイン スタンス上にダンプ・ファイル・セットを作成し、リモート・インスタンスから メタデータおよびデータを抽出します。

ネットワーク・エクスポートは、読込み専用データベースでのエクスポートを可 能にします(Oracle Data Pump の Export はインスタンス上で書込み操作を行う必 要があるため、読込み専用インスタンス上からローカルで実行することができま せん)。これは、スタンバイ・データベースからデータをエクスポートする際に 便利です。

SQLFILES の生成

オリジナルの Import において、INDEXFILE パラメータは表とインデックスを再作 成するのに必要な SQL コマンドを含むテキスト・ファイルを生成しました。表と インデックスを編集すると、実行可能な DDL スクリプトが得られます。 Oracle Data Pump のジョブでは、実行可能な DDL スクリプトを簡単に得ることが できます。Oracle Data Pump の Import を実行して SQLFILE パラメータを指定する と、必要なデータ定義言語(DDL)を持つテキスト・ファイルを生成し、表やイ ンデックスだけでなく、すべてのオブジェクト・タイプを再作成することができ ます。出力ファイルは実行可能な状態ですが、ターゲット・システムを変更しな いようにするため、DDL 文は実際には実行されていません。 SQLFILE は、特に新しいデータベース内で表やオブジェクトを事前作成するのに 有効です。INCLUDE パラメータおよび EXCLUDE パラメータは、SQL ファイル 出力を調整する際に使用します。たとえば、同じ制約、権限、およびその他のメ タデータを含まない状態で、ソース・データベースの表およびインデックスすべ てを含むデータベースを作成する場合は、次のコマンドを実行します。

>impdp username/password DIRECTORY=dpumpdir1 DUMPFILE=expfull.dmp SQLFILE=dpump_dir2:expfull.sql INCLUDE=TABLE,INDEX

(9)

SQL ファイルの expfull.sql は dpump_dir2 に書き込まれ、意図した表とインデッ クスを作成するために、別のデータベースで実行可能な SQL DDL を含むことに なります。

よくある質問

ディレクトリ・オブジェクトが必要な理由

ディレクトリ・オブジェクトは、データの安全性および整合性を保証するために 必要です。ディレクトリ・オブジェクトがないと、ユーザーはアクセス権限のな いデータを読み込め、サーバー上で不正な操作を実行できてしまいます。

オリジナルの Export および Import よりも Oracle Data Pump が高速な理

オリジナルの Export および Import よりも Oracle Data Pump が高速な理由は、主に 3 つあります。1 つ目は、ダイレクト・パス・データ・アクセス方法(サーバーが SQL をバイパスしてディスク内のデータ・ブロックへ直接アクセスすることを許 可)がより効率的に実行できるよう再設計され、Oracle Data Pump の Import およ び Export をサポートできるようになったことです。2 つ目は、Oracle Data Pump がクライアント上よりもサーバー上で処理を行うため、クライアントとサーバー 間のデータの移動がより削減されたことです。3つ目は、Oracle Data Pump が最新 のハードウェアやオペレーティング・システムのアーキテクチャを活用できるよ う徹底的に設計されていることです。これは、オリジナルの Export/Import では実 現できませんでした。こうした要素が組み合わさったことで、オリジナルの Export および Import よりも Oracle Data Pump は遥かに高いパフォーマンスを得ることが できたのです。

オリジナルの Export および Import ユーティリティと比較した Oracle

Data Pump の処理速度

1 つのストリームにおいて、Oracle Data Pump の Export はオリジナルの Export に 比べて 2 倍高速で、Oracle Data Pump の Import はオリジナルの Import に比べて 15 ~40 倍高速です。処理速度は、PARALLEL パラメータを使用することで大幅に向 上できます。

Oracle Data Pump が小さなジョブで遅い理由

Oracle Data Pump は、大量のデータを扱う大きなジョブ向けに設計されました。 Oracle Data Pump の各ジョブは、ジョブに関するすべての情報を含むマスター表を 持ち、再起動できるようになっています。マスター表を作成するためのオーバー ヘッドによって小さなジョブは遅くなりますが、大量のデータを高速に処理でき ることは、中規模または大規模なジョブにとって大きなメリットとなります。

オリジナルの Export および Import のサポートについて

オリジナルの Export は、Oracle Database 11g では使用されません。オリジナルの Import については、以前のリリース(リリース 5.0 以降)のダンプ・ファイルを インポートできるよう、常にサポートされます。オリジナルのダンプ・ファイル

(10)
(11)

Oracle Data Pump のダンプ・ファイルとオリジナルの Export および

Import のダンプ・ファイルの互換性について

ダンプ・ファイルの互換性はないため、置き換えて使用することはできません。 オリジナルの Export のダンプ・ファイルがある場合、オリジナルの Import を使っ てロードする必要があります。

Oracle Data Pump のジョブの監視方法

インタラクティブ・モードでは、STATUS コマンドを通じて多くの詳細情報を取 得できます。SQL では、次のビューで問合せを実行できます。

• DBA_DATAPUMP_JOBS - Oracle Data Pump のすべてのアクティブなジョ ブおよび各ジョブの状態

• USER_DATAPUMP_JOBS - ユーザーの Oracle Data Pump のアクティブな ジョブの概要

• DBA_DATAPUMP_SESSIONS - Oracle Data Pump のジョブに関連付けら れたすべてのアクティブ・ユーザーのセッション

• V$SESSION_LONGOPS - Oracle Data Pump のアクティブな各ジョブの進 捗状況すべて

Oracle Data Pump での Oracle Enterprise Manager の使用について

Oracle Enterprise Manager は Oracle Data Pump に対して、機能性に優れたインタ フェースをサポートします。

Oracle Data Pump での gzip の使用について

Oracle Data Pump は、並列処理を利用することで高いパフォーマンスを獲得してい ます。そのため、Oracle Data Pump のエクスポートの出力は gzip で圧縮できませ ん。Oracle Database 11g 以降、Oracle Data Pump は COMPRESSION パラメータを 使用して作成されたダンプ・ファイルを圧縮します。COMPRESSION パラメータ は、Oracle Database 11g の Advanced Compression Option の一部として利用できます。

結論

Oracle Data Pump は、高速で柔軟なツールです。Oracle Database 10g 以降で、オリ ジナルの Export および Import と置き換わります。Oracle Data Pump への移行は簡 単であり、新しいオプションや優れた機能を提供します。

(12)

Oracle Data Pump クイック・スタート 2007 年 6 月 著者:Carol Palmer Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. 海外からのお問合せ窓口: 電話: +1.650.506.7000 ファクシミリ: +1.650.506.7200 www.oracle.com

Copyright © 2007, Oracle.All rights reserved.

本文書は情報提供のみを目的として提供されており、ここに記載される内容 は予告なく変更されることがあります。本文書は一切間違いがないことを保 証するものではなく、さらに、口述による明示または法律による黙示を問わ ず、特定の目的に対する商品性もしくは適合性についての黙示的な保証を含 み、いかなる他の保証や条件も提供するものではありません。オラクル社は 本文書に関するいかなる法的責任も明確に否認し、本文書によって直接的ま たは間接的に確立される契約義務はないものとします。本文書はオラクル社 の書面による許可を前もって得ることなく、いかなる目的のためにも、電子 または印刷を含むいかなる形式や手段によっても再作成または送信すること はできません。Oracle は米国 Oracle Corporation およびその子会社、関連会 社の登録商標です。その他の名称はそれぞれの会社の商標です。

Updating...

参照

Updating...

関連した話題 :