企業の情報システムで利用されているRDBMSでは、近年は商用データベースだけでなくオープンソース・データベースを併用するケースも増えており、選択肢は多様化しています。ご存じの通り、SQLはRDBMS共通の言語ですが、実際は細かな記述の違いやRDBMS独自の機能が多数存在します。そのため、例えば商用データベースからオープンソース・データベースに移行したり併用したりすると、アプリケーションの改修コストや、意図した通りに動作しないといった問題が発生する場合があります。本記事では、SQLの視点からRDBMSの主な差異を紹介し、異なるRDBMSに移行する際の注意点やRDBMS選定のポイントに迫ります。
取り扱うRDBMS
本記事では、以下のRDBMSについて解説していきます。
・Oracle Database︵以下、Oracle︶
・PostgreSQL
・Postgres Plus Enterprise Edition︵以下PPEE︶
※PostgreSQLエンジンを使用し、Oracleとの高い互換性を持ったRDBMS。本記事ではPostgreSQLと異なる場合に記載。
・MySQL
・MariaDB
※MySQLのブランチであり、MySQLをベースに機能が強化されたRDBMS。本記事ではMySQLと異なる場合に記載。
構成
本記事では、RDBMS間での移行を題材にして解説していきます。移行は一般的に主に以下のようなフローで行われます。その中でもSQLが直接関係するステップ4、5、6、7、9︵網掛けのステップ︶について解説しています。
1 |
移行可否判断 |
RDBMS変更のリスクを明らかにし、移行可否を判断 |
2 |
システム構成移行 |
クラスタ、認証サーバーなどのシステム構成を設計 |
3 |
異種RDBMS連携 |
複数のRDBMSを並行運用する際の連携方法を設計 |
4 |
定義移行 |
表などのオブジェクトを移行先に作成 |
5 |
データ移行 |
移行元のデータを抽出し、移行先に挿入 |
6 |
アプリケーション移行 |
SQLなどを移行 |
7 |
移行評価 |
トランザクションなど、RDBMS変更による影響を確認 |
8 |
運用移行 |
起動・停止、監視、バックアップなどの運用設定を移行 |
9 |
SQLチューニング |
移行先の環境で性能を測定後、必要に応じて索引作成、SQL記述を変更 |
10 |
データベースチューニング |
パラメータなどを調整し、システムの構成を最適化 |