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_schema
やremap_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 PumpとRMANを使い分けることが重要です。
テーブルやスキーマ単位での柔軟な移行が必要な場合はData Pump、スピードと完全な物理複製が求められる場合はRMANが適しています。
どちらの方法でも、事前のテストと計画的なスケジューリングが成功の鍵となります。