LoginSignup
1
2

Oracle Data Pumpによるエクスポートとインポートの基礎

Last updated at Posted at 2024-02-23

はじめに

Oracle Data Pumpは、Oracle Databaseのオンプレミスからクラウドへの移行やバージョンアップの際によく使用される手法の1つです。
今回はOracle Databaseを運用していく上で、重要な役割を果たすOracle Data Pumpについてご紹介していきます。

また、本記事の内容は、

第8回 Oracle DBaseCamp
【Oracle Data Pumpによるエクスポートとインポート】

に登壇した際の内容になります。

詳細についてご覧になりたい方は、以下の録画や資料を参考にしてみてください。

  • 録画

*資料

エクスポートとインポートの概要

■ エクスポートおよびインポートとは

image.png
まず、エクスポートとインポートというのは、データベース間のデータの移動を行うことができる機能です。

  • エクスポート
    ソース・データベースから移動させたいスキーマや表といったオブジェクトをOSファイルとして抽出すること
  • ダンプファイル
    抽出したOSファイルのこと
  • インポート
    ダンプ・ファイルを元に、ターゲットデータベースにデータを書き込むこと

エクスポート、インポートの種類としては、主に2種類あり、Oracle Database 10gより前から提供されていた「オリジナルのエクスポート、オリジナルのインポート」と10g以降に提供されている「Oracle Data Pump」があります。
どちらもエクスポートの際にダンプファイルを作成しますが、それぞれに互換性はありませんので、注意が必要です。

■ エクスポートとインポートの種類

image.png
「Oracle Data Pump」では、データベースサーバー側で作業が実行されるため、クライアント側で作業が実行される「オリジナルのエクスポートおよびインポート」と比較して処理が高速になっています。
また、Oracle Data Pumpでは、APIによる呼び出しやジョブ管理が可能など、機能的に優れている部分が多いです。
しかし、Oracle Data Pumpでサポートされていない、古いOracle Databaseの移行の際は、オリジナルのエクスポートおよびインポートを利用する必要があります。

■ Oracle Data Pumpの利用用途

image.png
Oracle Data Pumpの利用用途として、「論理バックアップ」、「データベースのバージョンアップ」、「クラウドリフト」が挙げられます。

  • 論理バックアップ
    特定のデータだけをバックアップ可能で、復元したいデータを選択して復元することが可能になっています。また、物理バックアップの補助手段としても有効です。

  • データベースのバージョンアップ
    Oracle Data Pumpは異なるバージョン間でのオブジェクトの移動が可能なので、10g以降であれば古いバージョン間でも利用可能になっています。Enterprise Editionだけでなく、Standard Edition 2でも使用できるので、非常に使い勝手が良いと言えます。

  • クラウドリフト
    オンプレミスからクラウドのPaaSとOracle DatabaseをインストールしたIaaSへの移行の際も使用することができます。

Oracle Data Pumpの概要

■ Oracle Data Pumpとは

image.png
クライアントからexpdpおよびimpdpというこれらのコマンドを受け、エクスポートでダンプファイルを書き出す、インポートでダンプファイルを読み込むといった操作が行われます。

image.png
Oracle Databaseのデータベース・リンクの機能を利用して、Oracle Data Pumpのネットワーク・リンクというソース・データベースからターゲットデータベースへデータを移動させる機能を利用することができます。
ネットワークリンクを利用すれば、直接ソースデータベースからターゲットデータベースのストレージにダンプファイルをエクスポートできるようになります。また、ダンプファイルなどを生成せずとも直接ターゲットデータベースへデータをインポートすることも可能になります。

■ Oracle Data Pumpの特徴

Oracle Data Pumpの特徴としては、以下のような柔軟なデータの移動が可能なことが挙げられます。

  • 異なるバージョンのOracle Database間におけるデータ移動
  • 異なるプラットフォーム間におけるデータ移動
  • 対象範囲を選択したデータ移動
     ・モード: データベース全体、表領域、スキーマ、表
     ・オブジェクト単位: EXCLUDE、INCLUDE、QUERY、CONTENT
  • データベース構造の変更を伴う移行において利用可能
     ・非CDB構成からPDB構成
     ・暗号化、圧縮、キャラクタ・セット、表領域・スキーマの再マッピング

対象範囲を選択したデータ移動において、エクスポート・インポート時にモードを選択することができ、そのモードの種類を表にまとめています。

モード 機能説明 パラメータ
全体 データベース全体のエクスポート FULL=[YES|NO]
スキーマ 指定したスキーマ全体のエクスポート SCHEMAS=schema_name [, ...]
指定した表全体のエクスポート TABLES=[schema_name.]table_name[:partition_name] [, ...]
表領域 指定した表領域全体のエクスポート TABLESPACES=tablespace_name [, ...]

また、オブジェクト単位で対象範囲を選択することができるので、データのフィルタ処理のようにエクスポート・インポートする対象を制限することが可能です。

パラメータ 説明
EXCLUDE 操作対象から除外するオブジェクトを指定可能
INCLUDE 操作対象に含めるオブジェクトを指定可能
QUERY SELECT文などを使用し、条件を絞り込むことで、指定した表のデータでフィルタリング可能
CONTENT メタデータのみ、データのみ、またはその両方のパターンでエクスポート、インポート可能

おわりに

今回は、Oracle Data Pumpの概要について解説いたしました。

Oracle Data Pumpについて、更に詳しく知りたい方は以下の記事もご参考にしてみてください。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2