ライセンス変更や毎年の保守料金の値上がりなどOracle Database(DB)関連のコストに悩むユーザーは多い。思い切ってOracle DBをやめてほかのDBに移行したい。こう考えるユーザーも多いはずだ。その際の移行先の候補として有力な選択肢となるのがOSS(オープンソースソフトウエア)のRDBMS(リレーショナルデータベース管理システム)である「PostgreSQL」だ。

 以下では、Oracle DBからPostgreSQLに移行を検討する場合に知っておきたいポイントを解説する。

 Oracle DBからPostgreSQLへ移行する際、まずコスト削減が目的に挙がるケースが多いのではないだろうか。移行元のOracle DBが最上位版の「Enterprise Edition(EE)」の場合、ライセンス料・保守料を考えればコスト削減を目的にPostgre SQLに移行するのは正しい。

 しかし「Standard Edition(SE)」より小規模向けの場合、Oracle DBからPostgreSQLに移行するコスト面のメリットはほとんどない。アプリケーションをPostgre SQLに対応させるための移行費用や、移行後にサポートをITベンダーに依頼するコストなどがかかるからだ。

 Oracle DBからPostgreSQLへの移行には、コスト削減以外のメリットもある。商用DB製品として大きなシェアを持つOracle DBは、米オラクルの方針により使用許諾条件やライセンス料、保守料が決まる。これは継続的にDBを運用する立場からすれば経営リスクに他ならない。Oracle DBからOSSであるPostgre SQLへ移行すれば、こうしたベンダーの製品戦略の変更によるリスクを取り除ける。

 とはいえ、PostgreSQLへの移行が必ずしもメリットをもたらすわけでない。移行コストや運用上のリスクが存在するため、Oracle DBを使い続けるリスクとともに正しく比較・評価してほしい。

PostgreSQLを検討する条件

 Oracle DBからPostgreSQLへの移行を検討する場合、「移行コスト」「運用要件」「性能要件」の3つを満たせるかどうかが重要になる。3つの条件を複合的に検討しよう。

 移行コストは、エンジニアの育成コストなどを含めて考えよう。幸いOracle DBのエンジニアであれば、Oracle DBとPostgreSQLの差異を理解すれば済むためエンジニアは比較的育成しやすい。

 運用要件は「障害が発生した場合の復旧条件」や「24時間運用」といった稼働の条件である。Oracle DBでも、厳しい運用条件の場合はSEでの実現が困難でEEを利用するケースがある。その場合PostgreSQLに移行したうえで運用要件を満たそうとするとコスト増の可能性がある。

 性能については両者を比較するのが難しい。単純なクエリーの性能はPostgreSQLが劣る印象はないが、いざ性能要件を満たせないような問題が発生したときの調査手段、対応手段がOracle DBより少なく、総じて対応コストはPostgreSQLのほうが高くなる傾向がある。

 PostgreSQLへの移行を決断した場合、「DB移行だけならば非互換機能の対応のみを確認し、移行検証は新旧システムでのアウトプット結果の比較のみで可能ではないか」と考える人がいるかもしれない。

 しかし現実には、移行時に発生する問題を防ぐためにも、少なくとも運用の要となる部分は単体テストから実施したほうがよい。

移行作業の全体像
[画像のクリックで拡大表示]

 企業システムでのPostgreSQLの活用について研究する「Postgre SQLエンタープライズ・コンソーシアム(PGECons)」内でDB移行を研究する「移行WG」が調査した結果、移行時間の91.4%がテストとエラー対応に占められていた。

この先は有料会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら