SE の雑記

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

SQL Database Migration Wizard の実行環境を作る方法

leave a comment

オンプレミスの SQL Server から SQL Database に移行する際に、SQL Database Migration Wizard を使用するとツールベースで移行をすることができます。

このツールを使用するための実行環境の作り方についてまとめてみたいと思います。

ダウンロードページのツールのシステム要件には以下のように書かれています。

Requirements
SQLAzureMW v3x and tools requires SQL Server 2008 R2 SP1 bits to run.
SQLAzureMW v4x and tools requires SQL Server 2012 bits to run.

SQL Database Migration Wizard (MW) は SQL Server のアセンブリを使用していますので前提条件として SQL Server のインストールが要件となっています。

どちらの SQL Server をインストールしているかで使用できるバージョンが変わってきます。
# 移行を行う SQL Server ではなく、ツールを実行する SQL Server のバージョンに依存します。

前提が整っていない環境では、以下のようなアセンブリの不足のエラーが発生すします。

image

ツールを実行する環境の SQL Server ですが、SQL Server のフルセットがなくても動作させることが可能です。
一番手っ取り早いのは、MW のバージョンに応じた SQL Server Management Studio をインストールすることです。

SQL Server Management Studio は無償の Management Studio Express で問題ありません。
# SQL Server 2012 SP1 以降は無償版で完全版の SSMS がインストールできるようになりました。
SSMS Express は以下からダウンロードすることが可能です。
MicrosoftR SQL ServerR 2008 R2 SP2 – Express Edition
MicrosoftR SQL ServerR 2012 Service Pack 1 (SP1) Express

ここから SSMS をインストールすることで MW で使用しているアセンブリと BCP ツールがインストールされますので、実行の前提環境を整えることができます。

MW ですが最小のコンポーネントは以下のものになります。

  • SQL Server System CLR Types
  • SQL Server Shared Management Object (SMO)
  • SQL Server Native Client
  • SQL Server コマンド ライン ユーティリティ

これらのコンポーネントは Feature Pack に含まれています。
MicrosoftR SQL ServerR 2008 R2 SP2 Feature Pack
MicrosoftR SQL ServerR 2012 SP1 用 Feature Pack

ただし、これらのインストールだけでは依存関係が不足してしまいます。
image

Microsoft.SqlServer.MessageBox の名前空間を使用するために Microsoft.ExceptionMessageBox が必要になるのですが、上記のツールだけではこのアセンブリがインストールされずに起動することができません。

v3.9.11 & v4.0.14 から Dependencies.xml に Microsoft.SqlServer.Smo と Microsoft.ExceptionMessageBox の確認が入ったようでこれらのアセンブリがないとツールが起動できなくなったようです。

Dependencies.xml のファイル名を変更するかファイル内から対象のアセンブリのエントリを削除するとツールが起動できるようになります。

BCP.exe へのパスが通っていないので、MW の config の BCPExe をフルパスで指定するか、PATH に BCP へのパスを通して実行できるようにしておく必要があります。

Management Studio をインストールしなくてもこれで動作するようにはなりますが、依存関係が足りてないので、きちんと動作させるようにするためには SSMS をインストールしたほうがよいかと思います。
# BatchUpload や BatchBackup のような CUI ツールであれば動作する気はしますが。

Share

Written by Masayuki.Ozawa

5月 18th, 2013 at 6:52 pm

Leave a Reply