連載
» 2019年03月15日 05時00分 公開

SQL Server 2008 EOSにも対応できる!:SQL Serverマイグレーションの歩き方[後編]――マイグレーションに活用できるツール (2/2)

[小澤真之/Microsoft MVP for Data Platform,@IT]
前のページへ 1|2       

[ツール]Database Experimentation Assistant(DEA)

 DMAでは、SQL Server内のオブジェクトに対してアセスメントを行うことができました。ストアドプロシージャやトリガーの互換性はDMAで確認できますが、アプリケーション内で生成されているクエリについては、SQL Server内に含まれていないオブジェクトとなるため、DMAでは互換性を確認できません。

 アプリケーション内で生成されているクエリを含め、互換性を詳細に調査したい場合は「Database Experimentation Assistant(DEA)」の利用を検討してください。

 DEAはクエリのA/Bテストを実行できるツールで、「A環境/B環境で同一のクエリを実行した結果」を比較できます。最初に、テストで使用するクエリをアプリケーションから実行し、使用するワークロードのキャプチャを行います(図1)。

図1 図1 ワークロードのキャプチャ

 次に、キャプチャしたワークロードをA/B環境に再生することで実行結果の比較を行います(図2)。

図2 図2 ワークロードの再生

 DEAは、このキャプチャ/再生/レポート作成の一連の流れを実現できます。DEAを活用することで、次のような比較が行えます。

  • バージョンアップ/データベース互換性レベルの変更により、エラーが発生するようになったクエリの確認
  • サーバの設定変更やインデックス追加といった性能改善のための作業を行った場合の効果確認

 実際にDEAを実行し、作成したレポートが以下の画面です(画面7)。このレポートは、SQL Server 2008 R2とSQL Server 2017にDEAを使用してクエリを実行した結果です。

画面7 画面7 DEAで出力されたレポート

 SQL Server 2008 R2では実行できるが、SQL Server 2017では互換性のないクエリがキャプチャーされる情報に含まれていたため、SQL Server 2017ではエラーとなったクエリが存在したことを、レポートのエラー発生情報から確認できます。

 DEAはクエリの互換性を確認するための心強いツールですので、ぜひ活用してみてください。

[ツール]Azure Database Migration Service(DMS)

 最後に紹介するのが、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)。最初に移行に必要となるネットワークの構成を満たすことができるかどうかを確認してください。

図3 図3 DMSを使用して、社内NW環境内のSQL Serverを移行するための構成例

●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で実現することができます。

画面8 画面8 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の最新情報に興味がある方はぜひご参加ください。

 上記の日程以外にも開催予定がありますので、最新情報については以下のサイトでご確認ください。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。