Data PumpとRMANによるトランスポータブル表領域とは?違いと使いどころを徹底解説!

Oracle Master Gold

大量データを素早く別のOracleデータベースに移行したいとき、普通のexpdp/impdpやINSERT文ではとても時間がかかります
そんなときに頼れるのが「トランスポータブル表領域(Transportable Tablespace)」という高速移行技術です。

この記事では、Oracleが提供する2つのトランスポータブル表領域機能

  • Data Pumpによるトランスポータブル表領域
  • RMANによるトランスポータブル表領域

違い・メリット・活用シーンを、初心者向けにやさしく解説していきます。


トランスポータブル表領域とは?

通常のData Pumpエクスポートは論理的にデータを出力(ダンプファイル)しますが、トランスポータブル表領域では物理ファイル(.dbf)をそのまま使い回すため、移行が圧倒的に速いです。

図で見てみましょう:

通常のエクスポート
┌──────────────┐
│ 表データ │
│ インデックス │ → エクスポート → インポート(テキストベース)
│ 制約など │
└──────────────┘

トランスポータブル表領域
┌──────────────┐
│ USERS01.DBF │ → コピー → メタデータだけインポート(expdp/impdp)
└──────────────┘

つまり、「表領域単位で物理ファイルを引き継ぐ移行方法」です。
これは、特に次のようなケースで有効です:

  • 数十GB〜TBクラスのデータを移行したい
  • 異なるバージョンや環境にデータを渡したい
  • テスト/開発/本番など環境を複製したい

1. Data Pumpによるトランスポータブル表領域

特徴

Oracle標準のデータ移行ツールexpdp/impdpに、TRANSPORT_TABLESPACESオプションを付けて実行します。

$ expdp user/pass TRANSPORT_TABLESPACES=USERS DIRECTORY=dir DUMPFILE=meta.dmp
  • メタデータ(表定義・制約など)のみをエクスポート
  • .dbfファイルは手動でコピー
  • impdpでインポート時に、.dbfを指定して取り込む

メリット

  • コマンドが直感的でわかりやすい
  • Oracle標準のData Pump機能と併用可能(REMAP_SCHEMAなど)
  • Oracle 10g以降で使用可
  • 11g以降ではFULL=YTRANSPORTABLE=ALWAYS指定で全表領域も移行可

デメリット

  • データファイルのコピーが手動
  • クロスプラットフォーム(Linux → Windows等)は一工夫が必要
  • 対象表領域を一時的にREAD ONLYに変更する必要あり

2. RMANによるトランスポータブル表領域

特徴

RMAN(Recovery Manager)で、表領域のエクスポート・インポート処理がほぼ自動化されます。

  • TRANSPORT TABLESPACEコマンドで、データファイルとメタデータを一括バックアップ
  • クロスプラットフォーム時はエンディアン変換も自動
  • 受信側でRMANがそのままリストア
RMAN> TRANSPORT TABLESPACE users TABLESPACE DESTINATION '/tmp/transport' ...

メリット

  • ファイルコピー・変換・メタデータ作成までほぼ自動
  • クロスプラットフォームでもRMANがエンディアン変換
  • RMANスクリプト化しやすく、自動化に向いている

デメリット

  • Data Pumpよりやや難易度が高い
  • RMAN構文に慣れていないとスクリプトの読解が大変
  • 一部古いバージョンでは対応が不完全

テキスト図で比較!

[Data Pump方式]

┌────────────┐ ┌────────────┐
│ 送信元DB │ expdp │ 受信先DB │
│ USERS01.DBF ├──────→│ USERS01.DBF │
│ meta.dmp │← impdp│ meta.dmp │
└────────────┘ └────────────┘

[RMAN方式]

┌────────────┐ ┌────────────┐
│ 送信元DB │ │ 受信先DB │
│ RMANで一括作成│────→│ RMANで一括読込│
│ backup + meta│ │ │
└────────────┘ └────────────┘

Data PumpとRMANの違いまとめ

項目Data Pump方式RMAN方式
操作性コマンドが簡単自動化しやすいがスクリプト慣れ必要
ファイル移動手動コピー自動でバックアップ形式
クロスプラットフォーム可(指定が必要)可(RMANが変換)
実行速度非常に速い非常に速い+変換も速い
自動化適性
難易度初心者でも可中級者以上推奨

どっちを選べばいいの?

利用シーンおすすめ方式
単純な移行で済ませたいData Pump方式
定期的な環境複製を自動化したいRMAN方式
クロスプラットフォーム移行(Linux → Windows等)RMAN方式
バッチやスクリプトで定常運用したいRMAN方式
テスト環境へ一時的にデータ移行したいData Pump方式

まとめ

トランスポータブル表領域は、Oracleデータベース間で大量データを高速に移行できる非常に便利な手法です。

  • Data Pump方式は手軽で扱いやすく、初心者におすすめ
  • RMAN方式は自動化・クロスプラットフォーム移行に強く、中〜上級者向け

両者の違いを正しく理解し、プロジェクトの要件に応じて選択することが成功のカギです。

[参考]
Oracle® Databaseユーティリティ 19c

コメント

タイトルとURLをコピーしました