Oracleデータベース間で数GB、あるいは数TBもの大量データを移行する際、通常の expdp/impdp(論理エクスポート/インポート)では時間がかかりすぎて、メンテナンスウィンドウに収まらないことがあります。
そんな時の切り札が、物理ファイル(データファイル)をそのまま再利用する「トランスポータブル表領域(Transportable Tablespace: TTS)」です。この記事では、Data PumpとRMAN、2つの手法の違いと使いどころを解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
🚀 トランスポータブル表領域とは?
通常のエクスポートはデータを論理的に読み出してダンプファイルに書き出しますが、トランスポータブル表領域はデータファイル(.dbf)そのものをコピーして、別のDBに「マウント」させる技術です。
物理的なコピーがメインのため、処理速度はストレージのI/O性能に依存し、データ量が増えても圧倒的な速さを維持できます。
✅ 主な活用シーン
- 大規模データの移行: 数十GB〜TBクラスのデータ移行。
- 環境複製: 本番データを使用したテスト環境や開発環境の構築。
- バージョンアップ/プラットフォーム移行: 異なるOSやバージョン間でのデータ移動。
1. Data Pumpによるトランスポータブル表領域(TTS)
特徴
Oracle標準の expdp/impdp ユーティリティを使用します。メタデータ(表の構造情報など)だけをエクスポートし、実データを含むデータファイルはOSコマンド等で手動コピーします。
# Data Pumpでのエクスポート例
$ expdp user/pass TRANSPORT_TABLESPACES=USERS DIRECTORY=dir DUMPFILE=meta.dmp
メリット
- 直感的: 普段使い慣れた Data Pump のコマンド体系で操作できる。
- 柔軟性:
REMAP_SCHEMAなど、インポート時にスキーマ名を変更する等の加工が容易。 - 全表領域移行: 11g以降では
FULL=Y+TRANSPORTABLE=ALWAYS指定により、システム表領域以外を丸ごと移行することも可能。
2. RMANによるトランスポータブル表領域
特徴
Recovery Manager(RMAN)の機能を使い、バックアップセットからトランスポータブルな表領域一式を作成します。メタデータの作成からファイルコピー、さらにはエンディアン変換までを自動化します。
# RMANでの実行例
RMAN> TRANSPORT TABLESPACE users
TABLESPACE DESTINATION '/tmp/transport'
AUXILIARY DESTINATION '/tmp/aux';
メリット
- 一気通貫の自動化: ファイルの変換・メタデータの抽出を一括で処理できる。
- クロスプラットフォームに強い: LinuxからWindowsなど、エンディアンが異なる移行でもRMANが自動で変換処理を代行する。
- スクリプト化: 定期的な環境更新などの自動化バッチに組み込みやすい。
❓ FAQ:よくある質問
Q: 移行元と移行先でブロック・サイズが違っていても大丈夫ですか?
A: いいえ、移行先データベースでも同じブロック・サイズの表領域をサポートしている必要があります。標準ブロック・サイズが異なる場合は、移行先で DB_nK_CACHE_SIZE パラメータを設定しておく必要があります。
Q: 送信元と送信先でキャラクタ・セットが異なっていても移行できますか?
A: 基本的には、送信先が送信元のキャラクタ・セットを包括(互換性がある)している必要があります。AL32UTF8同士であれば問題ありませんが、異なる場合は事前に互換性のチェックが必要です。
Q: インデックスも一緒に移行されますか?
A: はい。インデックスが同じ表領域内に格納されていれば、データファイルと一緒にそのまま移行されます。別の表領域にある場合は、それらも同時にトランスポートの対象に含める必要があります。
Q: 実行前に「移行可能かどうか」を確認する方法はありますか?
A: DBMS_TTS.TRANSPORT_SET_CHECK プロシージャを使用します。実行後に TRANSPORT_SET_VIOLATIONS ビューを確認することで、自己完結しているか(他の表領域との依存関係がないか)を事前にチェックできます。
📊 方式比較まとめ
| 項目 | Data Pump方式 | RMAN方式 |
| 主な操作感 | コマンドが直感的で簡単 | 高度な自動化が可能(スクリプト向け) |
| ファイル移動 | OSコマンドでの手動コピー | RMANが自動生成・配置 |
| 異プラットフォーム | 変換コマンドが別途必要 | RMANが自動変換 |
| 実行速度 | 物理コピーのため非常に高速 | 非常に高速(変換込みで効率的) |
| 推奨レベル | 初心者〜中級者 | 中級者〜上級者 |
💡 どちらを選べばいいの?
Data Pump方式がおすすめなケース
- 1回限りの単純な移行: 手軽にサクッと済ませたいとき。
- スキーマ名を変えたい: インポート時に所有者(ユーザ名)を変更したいとき。
RMAN方式がおすすめなケース
- OSが異なる移行: Linux ↔ Windowsなど、エンディアン変換が必要なとき。
- 運用の自動化: 本番から検証へ、毎週末データをコピーするような仕組みを作るとき。
🏁 まとめ
トランスポータブル表領域は、Oracleエンジニアにとって「時間短縮」の最大の武器です。
- Data Pump方式は、手軽で柔軟な「使いやすさ」が魅力。
- RMAN方式は、変換や移動を丸投げできる「自動化」が強み。
移行要件や自身のスキルセットに合わせて、最適な手法を選択してください。これらを使いこなせれば、テラバイト級の移行作業も怖くありません!
本記事は Oracle Database 19c を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。
[参考]
Oracle® Databaseユーティリティ 19c

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


コメント