重要
Data Migration Assistant (DMA) は、2025 年 7 月 16 日に廃止されます。 SQL Server から Azure SQL への移行オプションについては、「 移行の概要: SQL Server から」を参照してください。 詳細については、「 Microsoft Data Migration Assistant (DMA) ツールの提供終了の発表」を参照してください。
dma.exe.config ファイルで構成値を設定することで、Data Migration Assistant の特定の動作を微調整できます。 この記事では、主要な構成値について説明します。
Data Migration Assistant デスクトップ アプリケーションの dma.exe.config
ファイルと Command Line Utilities は、コンピューター上の次のフォルダーにあります。
デスクトップ アプリケーション
%ProgramFiles%\Microsoft Data Migration Assistant\dma.exe.config
Command Line Utilities
%ProgramFiles%\Microsoft Data Migration Assistant\dmacmd.exe.config
変更する前に、必ず元の構成ファイルのコピーを保存してください。 変更を行った後、新しい構成値を有効にするには Data Migration Assistant を再起動します。
並列に評価するデータベースの数
Data Migration Assistant は複数のデータベースを並列に評価します。 評価の間に、Data Migration Assistant はデータベース スキーマを認識するためにデータ層アプリケーション (dacpac) を抽出します。 同じサーバー上の複数のデータベースが並列で評価された場合、この操作はタイムアウトすることがあります。
Data Migration Assistant v2.0 以降では、parallelDatabases 構成値を設定することでこれを制御できます。 既定値は 8 です。
<advisorGroup>
<workflowSettings>
<assessment parallelDatabases="8" />
</workflowSettings>
</advisorGroup>
並列に移行するデータベースの数
Data Migration Assistant は、ログインを移行する前に、複数のデータベースを並列に移行します。 移行の間に、Data Migration Assistant はソース データベースのバックアップを取得し、必要に応じてバックアップをコピーしてから、ターゲット サーバーにそれを復元します。 移行対象として複数のデータベースが選択されている場合、タイムアウト エラーが発生する可能性があります。
Data Migration Assistant v2.0 以降では、この問題が発生する場合、parallelDatabases 構成値を減らすことができます。 この値を大きくすると、全体的な移行時間を短縮できます。
<advisorGroup>
<workflowSettings>
<migration parallelDatabases="8″ />
</workflowSettings>
</advisorGroup>
DacFX の設定
評価の間に、Data Migration Assistant はデータベース スキーマを認識するためにデータ層アプリケーション (dacpac) を抽出します。 データベースが大きい場合、またはサーバーに負荷がかかっている場合、この操作がタイムアウトで失敗する可能性があります。 Data Migration v1.0 以降では、次の構成値を変更してエラーを回避できます。
注
既定では、<dacfx>
エントリ全体がコメントになっています。 コメントを解除してから、必要に応じて値を変更してください。
commandTimeout
このパラメーターは、IDbCommand.CommandTimeout プロパティを "秒単位" で設定します。 (既定値 = 60)
databaseLockTimeout
このパラメーターは、SET LOCK_TIMEOUT (ミリ秒単位) と同じです。 (既定値 = 5000)
maxDataReaderDegreeOfParallelism
このパラメーターは、使用する SQL 接続プール接続の数を設定します。 (既定値 = 8)
<advisorGroup>
<advisorSettings>
<dacFx commandTimeout="60" databaseLockTimeout="5000" maxDataReaderDegreeOfParallelism="8"/>
</advisorSettings>
</advisorGroup>
Stretch Database: 推奨のしきい値
重要
拡張データベースは、SQL Server 2022 (16.x) および Azure SQL Database では非推奨になります。 この機能は、データベース エンジンの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。
SQL Server Stretch Database を使うと、Microsoft SQL Server 2016 から Azure にウォームとコールドのトランザクション データを動的に拡張できます。 Stretch Database の推奨は、アドバイザー オプションとして使用できなくなりました。
SQL 接続のタイムアウト
接続タイムアウト値を特定の秒数に設定することで、評価または移行の実行中にソースとターゲットのインスタンスの SQL 接続タイムアウトを制御できます。 既定値は 15 秒です。
<appSettings>
<add key="ConnectionTimeout" value="15" />
</appSettings>
エラー コードを無視する
各ルールのタイトルにはエラー コードが含まれます。 ルールが不要で無視したい場合は、ignoreErrorCodes
プロパティを使います。 1 つのエラーまたは複数のエラーを無視するように指定できます。 複数のエラーを無視するには、セミコロンを使います (例: ignoreErrorCodes="46010;71501"
)。 既定値は 71501 です。これは、オブジェクトがプロシージャやビューなどのシステム オブジェクトを参照するときに識別される未解決の参照に関連付けられています。
<workflowSettings>
<assessment parallelDatabases="8" ignoreErrorCodes="71501" />
</workflowSettings>
移行後の手順
移行後、ユーザー名を含む構成ファイルを削除する必要があります。 構成ファイルは、次の場所にあります。
C:\Users\<username>\AppData\Local\DataMigrationAssistant\Servers.xml
注
このファイルには、パスワードではなく、ユーザー名のみが含まれています。