SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

AWS Schema Conversion Tool で SQL Server のスキーマを移行してみる

leave a comment

re:invent で発表のあった、AWS Database Migration Service の中で紹介されていた、AWS Schema Conversion Tool を SQL Server / MySQL 間で試してみました。

発表については、以下が参考になります。

【AWS発表】プレビュー:AWS Database Migration Service
「現地ラスベガスよりお届け!re:Invent速報」の資料アップロード
[速報]「AWS Database Migration Service」を発表。最小のダウンタイムでオンプレミスからクラウドへデータベース移行。AWS re:Invent 2015

公式のドキュメントについては、What Is the AWS Schema Conversion Tool? から。

ツールについては、AWS Database Migration Service Preview を登録することによってダウンロードをすることができます。

本ツールですが接続元として、SQL Server / Oracle、接続先として MySQL / Amazon Aurora を選択することができますので、SQL Server / Oracle からのスキーマ移行で使用するツールになるかと。
# MySQL は AWS 上のものでなく、オンプレミスのものでもテストすることができます。

 

ツールでは JDBC 経由で各サーバーに接続をしますので、以下から SQL Server と MySQL 用の JDBC ドライバーをダウンロードしておきます。

Microsoft JDBC Driver 4.2 for SQL Server、Microsoft JDBC Driver 4.1 for SQL Server、および Microsoft JDBC Driver 4.0 for SQL Server
MySQL Connectors

 

ダウンロードが終了したら Schema Conversion Tool の Settings から JDBC ドライバーの設定を行います。
image

JDBC ドライバーの設定が完了すれば、SQL Server / MySQL に接続をすることができます。
SQL Server については Windows 認証に対応していないようなので、接続先のインスタンスでは SQL Server 認証が有効になってる必要があります。

JDBC で接続できる準備ができたら新しいプロジェクトを作成し、
image

「Connect to SQL Server」「Connect to MySQL」から各サーバーに接続をします。
接続が完了すると以下のように、移行元 / 移行先が表示されます。
image

SQL Server からのスキーマ移行ですが、DB 単位ではなく、スキーマ単位での移行となります。
移行対象のスキーマ選択して、「Convert schema」を選択することで、MySQL のスキーマを作成することができます。
imageimage

AdventureWorks2014 の dbo のスキーマを移行した場合、AdventureWorks2014_dbo というスキーマとして移行が行われます。
image

移行に問題があるオブジェクトがあるかどうかは、「Create Report」から確認することができます。
image

互換性のない個所についてはレポートされます。
image

全体としてどれだけ互換性がないかは「Summary」タブから確認することができます。
AdventureWorks の場合は、大体 70% 程度が移行できるようでした。
移行できないオブジェクトを修正するための想定の作業日時も表示されるようです。
(時間が妥当かどうかがわからない、微妙なSIer 泣かせの表示)

image

互換性については SQL Server to MySQL Supported Schema Conversion でも情報が公開されていますのでこちらを見てもよいかと。

移行対象としては、

  • Index
  • View
  • Trigger
  • Constraint
  • Column
  • Table
  • Schema
  • Procedure

等を移行できるようですね。

移行対象の確認ができたら、MySQL のペインで「Apply to database」を実行することで、MySQL に実際のデータベースが作成されます。
image

 

データベースの移行については、MySQL Workbench の Migration Wizard を使うことでも実行できますが、こちらでは、テーブルは移行できますが、ビュー/関数/ストアドプロシージャといったオブジェクトは移行できないようでしたので、移行できる範囲は AWS Schema Conversion Tool の方が多いようでした。

Share

Written by Masayuki.Ozawa

10月 9th, 2015 at 11:51 pm

Posted in AWS

Tagged with ,

Leave a Reply