Data PumpとRMANによるトランスポータブル表領域を徹底解説

Datapump

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=YTRANSPORTABLE=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

Oracle Data Pump完全ガイド:仕組みと使い方、SCOTTスキーマ導入から実行例まで徹底解説
Oracle Databaseを効率的にバックアップ・移行する際に活用されるツールが「Oracle Data Pump」です。この記事では、SCOTTスキーマの導入からexpdp / impdp の実行例、補足手順(ディレクトリ作成・権限付…

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

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

コメント

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