OracleからSQL Serverへ移行する際のポイントを紹介

技術者が語るMicrosoft Azure

OracleからSQL Serverへの移行では慎重な計画と適切なツール選びが成功の鍵となります。
本ブログでは、データベース移行を検討する際の注意点やポイント、おすすめの移行支援ツールについて紹介します。

1.はじめに

OracleからSQL Serverへ移行する場合、さまざまな手法があります。
次章以降で、OracleをSQL Serverに移行する際の注意点、各移行手法の概要とメリット・デメリット、そしてコストが最も安価な移行手法であるMicrosoft SQL Server Migration Assistantについて紹介します。

2.OracleからSQL Serverに移行する際の注意点

OracleからSQL Serverへの移行を検討する場合、特に注意すべき点は以下2点です。

①環境の理解
OracleとSQL Serverには、Oracle固有の機能、データ型やNULLの差異、パッケージやストアドプロシージャ、およびカスタム関数などの違いがあるため、あらかじめそれぞれの環境について理解しておく必要があります。

②スキーマの分析と変換、変換出来ない箇所の特定
Oracleデータベーススキーマを分析し、OracleとSQL Serverのスキーマ定義の違いを特定します。
ツールの利用、または手動による分析で、Oracle-SQL Server間で変換が可能なスキーマかどうかを確認しておく必要があります。

3.Oracleから SQL Serverへの移行手法とメリット・デメリット

Oracle からSQL Serverへのよくある移行手法について、一覧で紹介します。
それぞれの手法のメリット・デメリットは以下の通りです。

方式 概要 メリット デメリット
エクスポート/インポート エクスポート、インポートのみを使用して、データを移行する ・移行コストが低い
・直感的に利用可能
・大規模なデータセットに向かない
リンクサーバ リンクサーバを通じてデータを移行する ・リアルタイムアクセスが可能 ・クエリを準備する必要がある
・サーバ間を直接ネットワーク接続する必要がある
ETLツール ETLツールを使用してデータを移行する ・複雑な変換を扱える
・データ変換や管理の見直しなども可能
・データの扱い、ツール利用の学習時間が必要
・ツール導入コストがかかる
カスタムスクリプト データをエクスポートした後、Pythonなどを使用してCSVデータを読み込み、変換し、T-SQLスクリプトでSQL Serverにインポートする ・柔軟性とカスタマイズオプションが提供される ・スクリプト作成スキルと既存データに関する深い知識が必要
・十分なテストが必要
・規模に比例して手間がかかることが多い
レプリケーション OracleとSQL Serverデータベース間の連続データ同期を実現する ・リアルタイム同期が可能 ・現行への影響を考慮する必要がある
・追加の導入コストが発生
Microsoft SQL Server Migration Assistant マイクロソフト社が提供するデータ移行支援ツール ・検証から移行までの全プロセスがサポートされる
・GUIベースで直感的に利用可能
・無償提供されている
・ストアドプロシージャなどのプログラムは個別対応が必要
・導入先の環境を用意しておく必要がある

今回は、Oracleを SQL Serverに移行する際、コストが最も低い手法としてMicrosoft SQL Server Migration Assistantを紹介します。

4.Microsoft SQL Server Migration Assistantとは

Microsoft SQL Server Migration Assistant(以下SSMA)は、SQL Server以外のデータベースからSQL Serverへの移行作業を自動化するためにマイクロソフト社が無償で提供しているGUIベースのマイグレーションツールです。
移行元としては、次のデータソースに対応しています。

  • Microsoft Access
  • IBM Db2
  • MySQL
  • Oracle Database
  • SAP ASE

今回はSQL Server Migration Assistant for Oracleを例にして、簡単な使用方法を紹介します。

5.SSMA for Oracleの使用方法(移行操作の流れ)

SSMA for Oracleのダウンロードおよびインストール

マイクロソフト社のダウンロード専用ページでSSMA for Oracleをダウンロードします。
※2024/3/22時点では、英語版のみ提供されています(最新バージョン 9.5)

移行を管理する SSMA プロジェクトを作成する(New Project…)

SSMAを立ち上げ、「File」→「New Project…」をクリックします。

プロジェクト名、保管先、移行先のDBMS製品を選択し、「OK」ボタンを押します。

移行元データベースに接続(Connect to Oracle)

SSMAはすべての Oracle スキーマに関するメタデータを取得し、[Oracle Metadata Explorer]に表示します。
そのため、 移行元のOracle データベースに接続する必要があります。
「Connect to Oracle」ボタンを押下して「Connect to Oracle」画面で接続情報を入力し、「Connect」ボタンを押します。

項目 説明
Provider Oracle Client Provider(デフォルト)
Mode Standard mode(デフォルト)
Server name サーバ名またはIPアドレス
Server port 1521(デフォルト : Oracleに接続するポート番号)
Oracle SID 接続するDBのORACLE SID名
User name 接続するユーザー名(移行用ユーザー名)
Password 接続するユーザーのパスワード
接続が成功するとスキーマ情報を参照できます。

移行レポートを実行する(Create Report)

SSMAのオブジェクトの評価は、移行元のオブジェクトに対してソース分析を行い、互換性がない箇所や代替方法、推奨情報などを教えてくれます。
Oracle Metadata Explorerから「TEST01」をクリックし、「Create Report」を選択します。

自動的ブラウザにレポートが生成されます。

項目 設定内容
Conversion statistics 引数、戻り値、SELECTステート面など変更対象の数
Objects by categories カテゴリごとのオブジェクト数

これらの結果レポートを使えばSSMAで自動変更できないソースの箇所を特定できるため、移行工数の見積もりを作成する時に参考になります。
また、エラー情報から足りないオブジェクトを発見することができます。

移行先データベースに接続(Connect to SQL Server)

「Connect to SQL Server」ボタンをクリックします。
「Connect to SQL Server」画面で移行先DBに接続するための情報を入力します。

項目 説明
Server name サーバ名またはIPアドレス(localhostはデフォルト)
Server port SQL Serverに接続するポート番号([default]はデフォルト)
Database 接続するデータベース名
Authentication 認証方式
User name -(Windows認証のため)
Password -(Windows認証のため)
Encrypt Connection (チェックしない)

接続が成功すると接続元の「SQL Sercer Metadata Explorer」項目にSQL Serverデータベースが表示されるので、「+」を展開して移行先のデータベースが表示されることを確認します。

スキーマ変換(Covert Schema)

Oracle Metadata Explorerから「TEST01」をクリックし、「Convert Schema」を選択します。

オブジェクトの変更に成功すると「SQL Server Metadata Explorer」に変換されたオブジェクトが表示されるので、以下の内容で展開して状況を確認します。
 ⇒ Database
  ⇒ <移行先DB名>
   ⇒ Schemas
    ⇒ dbo

データベース同期(Synchronize with Database)

画面上部のツールバーより「Tools」⇒「Synchronize with Database」をクリックします。

画面に実行内容が出力されるので、内容を確認して「OK」をクリックします。

データ移行(Migrate Data)

「スキーマ名」の横にあるチェックボックスをチェックします。

画面上部のツールバーより「Tools」⇒「Migrate Data」をクリックします。

OracleとSQL Serverの接続情報をそれぞれ入力し、「Connect」をクリックします。

データ移行結果が出力されるので、内容を確認し「Close」をクリックします。

6.おわりに

今回は例としてSSMAを使った移行プロセスを紹介しました。
SSMA for Oracleは、OracleからSQL Serverへのデータベース移行に対して堅牢で包括的なソリューションを提供しますが、そのメリットとデメリットを具体的な移行ニーズに照らし合わせ、実現性を検討することが重要です。
実際に使ってみるとSSMAだけでは移行を実現できないケースもあるため、移行プロセスを確実にするためには綿密な計画、評価、テストが不可欠です。

システムエグゼでは、さまざまなデータベースの移行やクラウド移行に対応しており、移行支援を行うサービスも提供しています。
Azureへの移行やデータベースの移行ご検討の際にはお気軽にご相談ください。