2025/12/04

Share

  • Share on Facebook
  • Share on Twitter

電力企業の事業管理システムデータベースのOracleからPostgreSQLへのマイグレーション 電力企業の事業管理システムデータベースのOracleからPostgreSQLへのマイグレーション

案件概要

事業管理システムのデータベース基盤において、コスト最適化とシステムの最適化を目指し、OracleからPostgreSQLへの移行プロジェクトを実施しました。
本システムは、事業計画、財務・会計、運用管理、インフラ監視など、Javaや.NETで構築された多くの業務機能を持つ大規模なものです。
当社は、既存のアプリケーション資産を活かしつつ、データベースエンジンの変更に伴うリスクを最小限に抑える移行計画を策定しました。結果として、ライセンスコストの大幅な削減を実現するとともに、現行の業務ロジックやパフォーマンスを損なうことなく、安定した新環境への移行を完了させました。

利用した技術スタック及び開発ツール

  • プログラミング言語:Java, .NET
  • データベース:Oracle, PostgreSQL
  • タスク管理ツール:Excel
  • コニュニケーションツール:Email/Zoom
  • AIツール:AI

クライアントの課題

  • ライセンスコストの高騰と運用費用の最適化
    クライアントが長年利用していたOracleデータベースは、ライセンス費用が高額であり、全社的な運用コスト削減目標の大きな妨げとなっていました。今後の安定した運用を見据え、機能や性能を維持したまま、よりコストパフォーマンスの高いオープンソースデータベースであるPostgreSQLへの移行が急務となっていました。しかし、基幹業務を支えるシステムであるため、コスト削減と引き換えに品質を落とすことは許されない状況でした。
  • 現行システムへの影響を抑えた基盤刷新
    データベースというシステムの根幹を変更するにあたり、既存のパフォーマンスやデータ整合性、そして日々の業務稼働に一切の悪影響を与えないことが絶対条件でした。Javaや.NETで開発された多数のアプリケーションが稼働しており、それらのロジックに手を加えることなく、あるいは最小限の修正で、バックエンドのデータベースのみを安全に入れ替えるという、極めて難易度の高い移行作業が求められていました。
  • 確実な安全性と検証可能性の担保
    移行プロジェクトにおいては、万が一のデータ損失やシステム停止は許されません。そのため、移行プロセス全体が透明で安全であること、そしてすべての変換結果が検証可能であることが強く求められました。単にデータが移行できたかだけでなく、業務ロジックが以前と全く同じように動作するかを客観的に証明する必要があり、ユーザー業務を止めないスムーズな切り替えを実現することが大きな課題でした。

クライアントの要望

  • DBオブジェクトの完全な移行と互換性確保
    Oracle環境で稼働しているすべてのDBオブジェクトを、漏れなくPostgreSQL環境へ移行することが求められました。単なるデータのコピーではなく、Oracle独自の関数やプロシージャのロジックをPostgreSQLの仕様に合わせて正確に書き換え、新環境でも同様の機能が動作するように構造を再定義する必要がありました。
  • アプリケーションコードの修正と動作保証データベースの変更に伴い、アプリケーション側のJavaおよび.NETのソースコードにおいても、SQL呼び出し部分やDB接続処理に不整合が生じないよう修正を行う必要がありました。コンパイルエラーを解消するだけでなく、データベースドライバの違いによる挙動の差異を吸収し、アプリケーション全体がPostgreSQLとシームレスに連携できる状態に仕上げることが求められました。
  • 厳格なSQLレビューと統合テストの実施変換されたSQL文が、PostgreSQLの構文ルールやロジックに従って正しく動作するかを詳細に精査・修正することが要望されました。その上で、クライアントから提供される詳細なチェックリストに基づいた結合テストを実施し、移行前のシステムと全く同じ挙動を示すことを、具体的なエビデンスをもって証明することが必須条件とされました。

当社の提案・アプローチ

  • 網羅的なシステム分析と依存関係の特定プロジェクト開始にあたり、当社は対象システムの全容を把握するため、すべてのDBオブジェクト、実行されるSQL、およびデータベースに依存するソースコードの徹底的な収集と分析を行いました。これにより、移行が必要な箇所と潜在的なリスクを初期段階で可視化し、影響範囲を正確に特定することで、手戻りのない確実な移行計画を立案しました。
  • 生成AIを活用した変換作業の自動化と効率化
    膨大な量のDBオブジェクトやSQLの手動変換によるミスを防ぐため、AIを活用した自動変換プロセスを導入しました。定型的な構文変換をAIに任せることで、作業工数を大幅に削減すると同時に、変換精度を向上させました。エンジニアは複雑なビジネスロジックの調整や例外的な処理の対応に集中することができ、高品質な移行を短期間で実現しました。
  • 新旧環境の並行稼働による厳密な比較検証
    移行の信頼性を担保するため、Oracleを使用する現行環境のコピーと、PostgreSQLを使用する新環境という2つのテスト環境を構築し、並行してテストを行いました。同一のデータと入力条件を用いて両環境の結果をリアルタイムに比較することで、微細な挙動の差異やデータ不整合を即座に検知し、修正サイクルを迅速に回す体制を整えました。
  • エビデンスに基づく徹底した業務結合テスト
    単なるSQLの単体テストにとどまらず、クライアント提供のチェックリストに基づいた業務シナリオレベルでの結合テストを実施しました。特筆すべきは、旧環境と新環境の両方で同じ操作を行い、その結果(画面キャプチャやログなどのエビデンス)を取得・比較した点です。これにより、システムを利用するエンドユーザーにとって移行前と完全に変わらない操作性と結果を保証しました。