大量データを素早く別の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=Y
+TRANSPORTABLE=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
コメント