Oracle移行の相談で最初に確認するのは、テーブル定義でもデータ量でもなく「SYSやDBA権限で何をしているか」です。Oracleは強力な権限モデルを持つぶん、それに寄りかかった運用がクラウドの制約とぶつかります。この記事では、移行方式の最初の分岐と、権限まわりで実際につまずく点を順に見ていきます。

01まず最初の分岐 — 同一エンジンか、作り替えか

Oracle移行は、この判断で難易度が数倍変わります。先に決めないと、後の全工程が揺れます。

現場のコツ:迷ったら、まず同一エンジン(RDS for Oracle)で移行を完遂し、エンジン変更は独立プロジェクトに切り出すのが定石です。1回の移行で「基盤の引っ越し」と「DBの作り替え」を同時にやると、問題が起きたとき原因の切り分けができなくなります。ライセンス費の絡みはサーバサイジングの記事も参照してください。

02RDS for Oracle 最大の制約 — SYSDBAがない

RDS for Oracleを選んだとき、オンプレのDBAが最初に戸惑うのがこれです。マネージドサービスなので、SYSやSYSTEMでの直接ログイン(SYSDBA接続)ができません。マスターユーザーという専用の管理アカウントが与えられ、管理操作はAWSが用意したパッケージ経由で行います。

この前提で見直しが必要になる典型は次のとおりです。

現場のコツ:「SYSDBAが要る運用が本当にあるか」を棚卸ししてください。多くは慣習で使っているだけで、置き換え可能です。しかし本当にSYSDBAが必須の要件(特殊なバックアップ製品連携など)が残るなら、それがEC2上Oracleを選ぶ明確な理由になります。ここは方式分岐にフィードバックする論点です。

03権限の罠① — ロール経由の権限はストアド内で効かない

これはOracleに不慣れな移行担当が最もハマる点です。Oracleでは、ロールで付与した権限は、定義者権限(definer's rights)のPL/SQL内では有効になりません。オンプレで「開発ロールに一括で権限を付けて、みんなそれで動いている」環境をそのまま移行すると、ユーザーが直接叩くSQLは動くのに、ストアドプロシージャ経由だと権限不足で落ちる、という現象が起きます。

正確には移行で新たに壊れるというより、オンプレでは「たまたま直接grantも入っていて動いていた」ケースが、権限を整理して移行した瞬間に露見します。対策は、ストアドが必要とするオブジェクト権限は、ロールではなく所有ユーザーに直接grantすること。移行を機に権限の依存関係を棚卸しするのが正道です。

04権限の罠② — PUBLICシノニム・共有スキーマ・DBA依存ジョブ

05表領域(tablespace)の罠

オンプレのデータファイルは特定パス・特定の表領域構成に紐づいています。移行先で同じ表領域が存在しないと、インポートが失敗するか、意図しない場所にオブジェクトが作られます。

06手番としての権限移行 — 「先に流して、検証する」

権限まわりは、データより先に整理・移行するのが安全です。おおまかな手番は次のとおりです。

「テーブルとデータは移ったが、権限とシノニムで数日溶かす」——これがOracle移行で最も多い遅延パターンです。権限を移行の後回しにせず、設計フェーズの主役の1つとして扱ってください。

まとめ

Oracle移行は、まず「同一エンジンか作り替えか」を決め、RDSなら「SYSDBAがない前提」で運用を見直す。そして権限——ロールとストアドの関係、PUBLICシノニム、DB内ジョブ、表領域——を、データより先に棚卸しして移行する。テーブル定義は自動で運べても、権限の依存関係だけは人が読み解くしかありません。ここに時間を使うことが、Oracle移行を予定どおり終わらせる最大のコツです。次は古いOracleからの移行手番と文字コード変換を。

Oracle環境のアセスメント(方式分岐・権限棚卸し・RDS制約の適合判定)は、EMWの移行支援の中核メニューです。「SYSDBAで何をしているか分からない」状態からでも、棚卸しからご一緒します。

相談する
← ブログ一覧へ戻る