SQL Server から SQL Server ベースの環境に移行 (マイグレーション / バージョンアップ) を実施する場合のアセスメントとデータ移行を実施するためのツールとして、Database Migration Assistant (DMA) というツールが提供されています。
このツールを使用すると SQL Server のバージョンアップや Azure SQL Database への移行を行う際のアセスメント / マイグレーションを実施することができます。
DMA では、サポートされているソース バージョンとターゲット バージョン に記載されているソースとターゲットをサポートしており、これらの組み合わせの SQL Server ベースの環境をサポートしています。
SQL Database へのデータ移行時の方法については、本ブログでも Database Migration Assistant (DMA) で SQL Server から SQL Database へのデータ移行方法について で触れたこともありますね。
DMA のアセスメントで、移行のブロッカーとなる要素が検知されると、アセスメントの結果として次のように表示が行われます。
「どのような検索を行い、問題として検知しているか」については、抽出することはできないのですが、「どのようなルールが存在しているか」については、DMA のインストールディレクトリ内のファイルから、一部情報を確認することができます。
本投稿では、ファイルから SQL Database に移行する際のアセスメントで検知されるルールについて確認をしてみたいと思います。
使用しているスクリプトや出力結果については、こちら で公開していますので必要に応じて参考にしていただければと思います。
DMA で使用されているルールのファイル
DMA で使用されるルールですが、DMA のインストールディレクトリ内の XML ファイルで管理が行われています。
SQL Database 向けであれば、次のようなファイルが、ルールの情報が格納されているものとなります。(どのような条件でそのルールが適用されたかというような詳細までは記載されていません)
- C:\Program Files\Microsoft Data Migration Assistant\RuleMetadataStore.xml
- C:\Program Files\Microsoft Data Migration Assistant\AzureSQLDatabase\AzureSQLDbFeatureRuleMetadataStore.xml
これらの XML 内の情報を整理することで、SQL Database にマイグレーションを実施する際のアセスメントでは、どのようなルールが存在しているかを確認することができます。
ルールファイルの整形
どのファイルを確認すればよいかがわかったら、XML のファイルを見やすい形に整形します。
今回は Markdown のテーブルで出力を行っていますが、次のような形で整形してみました。
Markdown のファイルや、整形用のスクリプトこちら で公開しています。
「RuleMetadataStore.xml」であれば、次のような情報として出力をし、
「AzureSQLDbFeatureRuleMetadataStore.xml」であれば、次のような情報として出力しています。
「AzureSQLDbFeatureRuleMetadataStore.xml」は XML 内に詳細は記載されていないようですが、タイトルからどのようなものが考慮点としてありそうかは把握できるのではないでしょうか。