Oracleデータベースでは、別環境への移行やバックアップ、開発環境へのデータコピーなどのために、データベースの情報を効率的に取り出したり復元したりする機能が必要になります。そのような用途で利用される代表的なサーバーサイド・ユーティリティがOracle Data Pump(データ・ポンプ)です。
Data Pumpを利用すると、従来のエクスポート・インポート機能より高速に、スキーマ定義やテーブルデータ、各種データベースオブジェクトをエクスポート・インポートできます。この記事では、Oracle Data Pumpの仕組みや基本的な使い方、従来機能との違いについて解説します。
Oracleで高速なエクスポート・インポートを行うData Pumpとは
Oracle Data Pumpとは、Oracle Databaseに標準搭載されているサーバーサイド型のデータ移行ユーティリティです。
Data Pumpには、データベース内の情報を外部ファイルへ出力するData Pump Export(expdp)と、出力したファイルからデータベースへ取り込むData Pump Import(impdp)があります。
従来のexpコマンドやimpコマンドと比べて、高速な処理が可能であり、大規模なデータベース環境での移行やバックアップ作業によく利用されています。
Data Pumpでエクスポートできる情報
Data Pumpでは、単純なデータだけではなく、データベースオブジェクトの定義情報も含めて取得できます。
| 対象 | 内容 |
|---|---|
| スキーマ定義 | テーブル、ビュー、インデックス、制約などの定義 |
| データ | テーブルに格納されているレコード |
| 権限情報 | ユーザー権限やロール設定 |
| その他オブジェクト | プロシージャ、ファンクション、シーケンスなど |
例えば、本番環境のあるユーザーのスキーマを丸ごと開発環境へコピーしたい場合、Data Pumpを利用することでテーブル構造だけではなく、データや関連オブジェクトもまとめて移行できます。
Data Pump Export(expdp)の基本的な使い方
Data Pumpでデータをエクスポートする場合は、expdpコマンドを使用します。
例えば、ユーザーSCOTTのスキーマをエクスポートする場合は以下のような形式になります。
expdp scott/password DIRECTORY=dp_dir DUMPFILE=scott_backup.dmp SCHEMAS=scott
この処理により、指定したディレクトリへダンプファイル(DMPファイル)が作成されます。このファイルには、指定したスキーマの定義やデータが格納されます。
Data Pumpでは、スキーマ単位だけでなく、データベース全体や特定のテーブルだけを対象にすることも可能です。
Data Pump Import(impdp)でデータを復元する方法
エクスポートしたDMPファイルをOracleへ取り込む場合は、impdpコマンドを使用します。
例えば、取得したスキーマバックアップを別環境へインポートする場合は以下のように実行します。
impdp scott/password DIRECTORY=dp_dir DUMPFILE=scott_backup.dmp SCHEMAS=scott
インポート時には、元のスキーマ名を変更したり、テーブルの配置先を変更したりすることもできます。
例えば、本番環境のSALESスキーマを開発環境のTESTスキーマとして取り込みたい場合は、REMAP_SCHEMAオプションを利用して対応できます。
Data Pumpが従来のexp・impより優れている理由
Oracleには以前からexp・impというエクスポート・インポート機能がありました。しかし、大容量データを扱う場合はData Pumpのほうが多くのメリットがあります。
- サーバー側で処理するため高速
- 並列処理による性能向上が可能
- 詳細な対象指定ができる
- メタデータだけの取得も可能
- 移行時の変換機能が豊富
例えば、数百GB規模のデータベースを移行する場合、従来のexp・impでは長時間かかる処理でも、Data PumpのPARALLELオプションを利用することで処理時間を短縮できる場合があります。
Data Pumpを利用する際の注意点
Data Pumpを使用するには、Oracleサーバー上にあらかじめDIRECTORYオブジェクトを作成しておく必要があります。
また、DMPファイルはデータベースサーバー側のファイルシステムに作成されるため、実行ユーザーには適切な権限設定が必要です。
例えば、エクスポートを実行できても、指定したディレクトリへの書き込み権限が不足している場合はエラーになります。そのため、事前にCREATE DIRECTORYやREAD、WRITE権限の確認が重要です。
まとめ
Oracleデータベースで、スキーマ定義やデータを高速にエクスポート・インポートするサーバーサイド・ユーティリティはOracle Data Pumpです。
Data Pumpは、expdpによるエクスポートとimpdpによるインポートを利用して、テーブル定義・データ・各種オブジェクトを効率的に移行できます。
データベース移行、バックアップ、開発環境へのコピーなど、Oracleを運用するさまざまな場面で利用される重要な機能のため、基本的な操作方法やオプションを理解しておくと、より安全で効率的なデータベース管理が可能になります。


コメント