DMAでは、SQL Server内のオブジェクトに対してアセスメントを行うことができました。ストアドプロシージャやトリガーの互換性はDMAで確認できますが、アプリケーション内で生成されているクエリについては、SQL Server内に含まれていないオブジェクトとなるため、DMAでは互換性を確認できません。
アプリケーション内で生成されているクエリを含め、互換性を詳細に調査したい場合は「Database Experimentation Assistant(DEA)」の利用を検討してください。
DEAはクエリのA/Bテストを実行できるツールで、「A環境/B環境で同一のクエリを実行した結果」を比較できます。最初に、テストで使用するクエリをアプリケーションから実行し、使用するワークロードのキャプチャを行います(図1)。
次に、キャプチャしたワークロードをA/B環境に再生することで実行結果の比較を行います(図2)。
DEAは、このキャプチャ/再生/レポート作成の一連の流れを実現できます。DEAを活用することで、次のような比較が行えます。
実際にDEAを実行し、作成したレポートが以下の画面です(画面7)。このレポートは、SQL Server 2008 R2とSQL Server 2017にDEAを使用してクエリを実行した結果です。
SQL Server 2008 R2では実行できるが、SQL Server 2017では互換性のないクエリがキャプチャーされる情報に含まれていたため、SQL Server 2017ではエラーとなったクエリが存在したことを、レポートのエラー発生情報から確認できます。
DEAはクエリの互換性を確認するための心強いツールですので、ぜひ活用してみてください。
最後に紹介するのが、Azureのサービス「Azure Database Migration Service(DMS)」です。DMSを使用することでマイグレーションに利用できる環境を簡単に準備できます。また、DMSは、さまざまなマイグレーションシナリオをサポートしています。
SQL Server 2005からSQL Server 2017までがサポート対象になっているので、Azure上のデータベースに移行する場合は、利用を検討してみてください。
●DMSを使用する際に必要となるネットワーク構成
DMSはAzureのサービスであるため、DMSを展開したAzureの上のネットワークと移行元のSQL Serverがネットワーク的に疎通可能な状態になっている必要があります。
社内にあるSQL Serverのマイグレーションで使用する場合は、Azureと社内ネットワークがVPNで接続され、DMSというクラウド上のサービスが社内ネットワークにアクセスできるようにする必要があります(図3)。最初に移行に必要となるネットワークの構成を満たすことができるかどうかを確認してください。
●DMSの特徴
SQL Serverからのマイグレーションでは、DMSは次のパターンをサポートしています(表2)。
移行元 | 移行先 | 移行方法 |
---|---|---|
SQL Server 2005〜2017 | Azure SQL on Azure Virtual Machines | ・オフライン移行 |
Azure SQL Database Managed Instance | ・オフライン移行 ・オンライン移行 |
|
Azure SQL Database | ・スキーマのみ移行 ・オフライン移行 ・オンライン移行 |
|
表2 DMSがサポートするSQL Serverのマイグレーションパターン |
DMSは「AzureのPaaSのデータベースへのオンライン移行」をサポートしていることが特徴の一つです。SQL Database Managed Instanceにデータを移行する場合、レプリケーションなどの機能を使用することで、テーブル単位でのオンライン移行が可能ですが、Managed Instanceのデータベース全体を継続的に同期するオンライン移行をサポートしているのは、本稿執筆時点ではDMSだけです。
SQL Databaseについても、オンライン移行をサポートしており、こちらにも特徴があります。
オンプレミスのSQL ServerからAzure SQL Databaseに対しては、レプリケーションをサポートしています。
しかし、SQL Server 2012 SP2 CU(累積的な更新プログラム)8以降からのサポートとなっており、SQL Server 2008/2008 R2はサポートされていません。
データの継続的な同期を行う場合は「トランザクションレプリケーション」を使用することになります。ただし、トランザクションレプリケーションで移行するテーブルには主キーが必要となるので、レプリケーションに対応しているバージョンでも、移行対象のテーブル構造によっては、同期の設定が行えない可能性があります。
他にも「Data Sync」という機能を使用して、SQL Databaseにデータ同期を行うこともできますが、この機能についても主キーが必要となります。
DMSのオンライン移行ではレプリケーション機能が使用されていますが、レプリケーションだけでなく、変更データキャプチャーを使用できる環境であれば、「主キーがないテーブルについてもオンラインで移行できる」ようになっています。
SQL Databaseへのレプリケーションが対応していない、SQL Server 2005/2008/2008 R2でも、DMSを利用することでSQL Databaseへのオンライン移行が可能になるので、SQL Serverの標準機能だけでは対応できないオンライン移行をDMSで実現することができます。
オンライン移行をDMSを使用せずに、オンプレミスの環境のみで実現したいという場合は、「Attunity Replicate for Microsoft Migrations」の利用を検討してみてください。
Attunity Replicate for Microsoft Migrationsは、有償の製品である「Attunity Replicate」を、Microsoftが提供している各種データベースへの移行に限定して無償で利用することができる、期間限定で提供されているプログラムとなります。
Attunity Replicate for Microsoft Migrationsもオンライン移行をサポートしているので、このプログラムが提供されている期間内であれば、SQL Serverのマイグレーションに活用できます。
本稿では、SQL Serverのマイグレーションを実施するに当たり、どのような作業を考慮し、どのような情報が公開されているのか、基本的な内容をまとめました。
実際のマイグレーション作業では、さらに細かな検討が必要になることもありますが、本稿の情報を参考にすることで「何から始めればよいか分からない」という悩みについては、解消できるのではないでしょうか。
また、こちらのサイトで「製品/サービス」からSQL Serverを検索すると、ステップバイステップでSQL Serverを学習することができる自習書シリーズや、SSMAを使用したOracleからの移行方法といったドキュメントをダウンロードできます。これからSQL Serverを学習しようという方は、これらのドキュメントも活用してみてください。
本稿のSQL Serverマイグレーションや、最新のSQL Serverとなる「SQL Server 2019」の最新情報については、毎月、東京・品川の日本マイクロソフトで開催されている『SQL Server丸わかり1日セミナー』でも解説しています。セミナーでは、デモを交えながら詳しく説明していますので、SQL Serverの最新情報に興味がある方はぜひご参加ください。
上記の日程以外にも開催予定がありますので、最新情報については以下のサイトでご確認ください。
Copyright © ITmedia, Inc. All Rights Reserved.