【Oracle】旧バージョンから新バージョンへの移行手順まとめ|Data PumpとRMANの比較

【Oracle】旧バージョンから新バージョンへの移行手順まとめ|Data PumpとRMANの比較 Oracle

Oracleデータベースのバージョンアップや新環境への移行を行う際、正しい手順とツールの選定が重要になります。特に旧バージョンから新バージョンへ移行する場合、Data Pump(expdp/impdp)RMANのいずれかを選択することが一般的です。

本記事では、それぞれの特徴と具体的な移行手順を比較しながら解説します。

Data Pumpを使った移行手順

Data Pump(expdp / impdp)は、論理バックアップ形式で移行する方法です。テーブル単位・スキーマ単位などの柔軟な移行が可能で、異なるバージョン間の移行にも対応しています。

主な特徴

  • 対象スキーマや表領域などを柔軟に指定可能
  • 異なるOS・プラットフォーム間でも移行可能
  • パラレル処理で高速化可能
  • 圧縮や暗号化も対応

移行の基本手順

-- 旧バージョン側でエクスポート
expdp user/password@olddb \
  directory=dp_dir \
  dumpfile=exp_full.dmp \
  logfile=exp.log \
  full=y

-- 新バージョン側でインポート
impdp user/password@newdb \
  directory=dp_dir \
  dumpfile=exp_full.dmp \
  logfile=imp.log \
  full=y

異なるスキーマや表領域へ移行する場合は、remap_schemaremap_tablespaceオプションを使用します。

RMANを使った移行手順

RMAN(Recovery Manager)は、物理バックアップとして移行を行う方法です。旧DBと新DBのプラットフォームやエンディアンが同じであれば、RMANのduplicate機能を使って丸ごと複製できます。

主な特徴

  • 構成・物理構造ごと完全な複製が可能
  • 高速な移行が可能(アーカイブログを使った増分複製にも対応)
  • バイナリレベルのためテーブル単位の柔軟性はない

移行の基本手順(duplicateの場合)

-- 新環境のRMANからターゲットに接続してduplicate
rman target sys/password@olddb auxiliary sys/password@newdb

RUN {
  DUPLICATE TARGET DATABASE TO newdb
  FROM ACTIVE DATABASE
  NOFILENAMECHECK;
}

この方法では、スタンバイDBの構築にも応用できます。

Data PumpとRMANの比較

比較項目 Data Pump RMAN
移行対象の柔軟性 高い(テーブル・スキーマ単位) 低い(DB全体)
異なるOSへの移行 可能 不可(同一プラットフォームのみ)
速度 中程度(並列指定で高速化) 非常に高速(物理コピー)
バージョン間互換性 高い(versionパラメータ使用) 制限あり
用途 部分移行・検証環境向け 本番環境全体移行向け

まとめ

Oracleのバージョン移行では、移行先環境・要件・目的に応じてData PumpRMANを使い分けることが重要です。

テーブルやスキーマ単位での柔軟な移行が必要な場合はData Pump、スピードと完全な物理複製が求められる場合はRMANが適しています。

どちらの方法でも、事前のテストと計画的なスケジューリングが成功の鍵となります。