オンプレミス データベースの Azure VM SKU Azure SQL Database、Azure SQL Managed Instance、またはSQL Serverを特定する

データベースのクラウドへの移行は複雑になる可能性があります。特に、データベースに最適な Azure SQL Database、SQL Managed Instance、または SQL Server を Azure VM ターゲットと SKU で選択する場合です。 Database Migration Assistant (DMA) の目標は、これらの SKU に関する推奨事項を使いやすく出力することで、これらの質問に対処し、データベース移行エクスペリエンスを簡単に行う方法です。 パフォーマンス データ ポイント DMA を使用すると、適切なターゲット Azure SQL SKU と推奨事項の説明が推奨されます。

SKU の推奨事項機能を使用すると、データベースをホストするソース SQL Server インスタンスから収集されたパフォーマンス データ ポイントに基づいて、Azure VM SKU で推奨される最小 Azure SQL Database、Azure SQL Managed Instance、または SQL Server の両方を識別できます。 この機能は、価格レベル、コンピューティング レベル、最大データ サイズに関連する推奨事項を提供します。 この機能は現在、コマンド ライン インターフェイス (CLI) 経由でのみ使用できます。

DMA を使用して AZURE で SKU の推奨事項を決定し、対応するデータベースをプロビジョニングする手順を次に示します。

注意

VMWare で大規模な SQL Server データ資産全体を評価する場合は、 Azure Migrate を使用して、Azure SQL デプロイの推奨事項、対象のサイズ設定、月単位の見積もりを取得します。

前提条件

  • 最新バージョンの DMA をダウンロードして インストールします。 既に以前のバージョンのツールを開いている場合は、DMA のアップグレードを求めるメッセージが表示されます。
  • SKU 推奨事項コンソール アプリケーションが実行されているツール マシンに、最小バージョン の .NET Core 3.1 をインストールします。
  • オンプレミス ソースへの接続に使用されるアカウントSQL Server sysadmin アクセス許可を持つ必要があります。

注意

潜在的なオーバーヘッドを最小限に抑えるために、SQL Server 自体をホストするマシンからではなく、ターゲット SQL インスタンスに接続する別のツール (クライアント) マシンからツールを使用する必要があります。 SKU に関する推奨事項のパフォーマンス データを収集する場合は、数時間のスパンで既定のオプション値を使用してツールを実行し、オフピークとピーク時の両方のワークロードを対象にし、インデックスの再構築やバックアップ データベースなどのメンテナンス タスクを除外してください。 メンテナンス タスクは、CPU、メモリ、IO の消費量に影響を与え、その後、推奨される SKU レベルを高くする可能性があります。

パフォーマンス データを収集する

収集されるデータには、サーバーのハードウェア構成に関する限られた情報と、CPU、メモリ、ストレージの使用量などのシステム動的管理ビュー (DMV) の SQL 固有のパフォーマンス データ ポイント、および IO スループットと IO 待機時間が含まれます。 収集されたデータは、コンピューターにローカルに格納されます。 その後、収集されたデータを集計して分析し、ソース インスタンスのパフォーマンス特性を調べることで、ワークロードに最適な Azure SQL オファリング (Azure VM 上の SQL Database、SQL Managed Instance、SQL など) に対して SKU の推奨事項を決定し、コスト効率も高くすることができます。

DMA インストール パスで、SQLAssessmentConsole フォルダーとアプリケーションのSqlAssessment.exeします

DMA インストール SKUConsoleApplication.exeに表示されているファイルのスクリーンショット。

データ収集プロセスを開始するには、コンソール アプリケーションでアクションを次の引数 PerfDataCollection で指定します。

  • sqlConnectionStrings: (必須) インスタンス内のターゲットの引用符で囲まれた仮SQL文字列。
  • perfQueryIntervalInSec (省略 可能): パフォーマンス データのクエリを実行する間隔 (秒)。 (既定値: 30)
  • staticQueryIntervalInSec (省略 可能): 静的構成データのクエリと永続化を行う間隔 (秒)。 (既定値: 60)
  • numberOfIterations (省略 可能): ファイルに永続化する前に実行するパフォーマンス データ収集の反復回数。 たとえば、既定値では、パフォーマンス データは 30 秒 * 20 イテレーション = 10 分ごとに保持されます。 (既定値: 20)
  • outputFolder (省略可能): パフォーマンス データ、レポート、およびログの書き込み/読み取りを行うフォルダー。 (既定値: %LocalAppData%/Microsoft/SqlAssessmentConsole)

呼び出しの例を次に示します。

.\SqlAssessment.exe PerfDataCollection 
--sqlConnectionStrings "Data Source=Server1;Initial Catalog=master;Integrated Security=True;" "Data Source=Server2;Initial Catalog=master;Integrated Security=True;" 
--outputFolder C:\Output

または、JSON 構成ファイルに適切な引数を指定し、アクションなしで実行可能ファイルを実行して構成ファイルをツールに渡して、次のようにしてデータ収集プロセスを呼び出すことができます。


.\SqlAssessment.exe --configFile C:\path\to\config.json

上で説明したパフォーマンス データ収集アクションと同等のサンプル ConfigFile を次に示します。


{
  "action": "PerfDataCollection",
  "sqlConnectionStrings": [
  "Data Source=Server1;Initial Catalog=master;Integrated Security=True;",
  "Data Source=Server2;Initial Catalog=master;Integrated Security=True;"
  ],
  "outputFolder": "C:\\Output"
}

すべてのアクションのサンプル構成ファイルは、DMA インストール パス Example :AssessSampleConfigFile.json、PerfDataCollectionSampleConfigFile.json、GetSkuRecommendationSampleConfigFile.json のフォルダーにあります。

コマンドの実行後、パフォーマンスと構成のデータ ポイントは、ターゲット インスタンスごとに 3 つの *_Counters.csv ファイルのセットとして保存され、それぞれにサーバーとインスタンス名が格納されます。 このファイルは、プロセスの次の部分の入力として使用できます。これにより、Azure VM 上の Azure SQL Database、Azure SQL Managed Instance、または SQL Server に関する SKU の推奨事項が提供されます。

コンソール アプリケーションを使用して SKU の推奨事項を取得する

前の手順で収集されたデータ ポイントは、SKU 推奨プロセスの入力として使用されます。

単一データベース オプションの場合、DMA は Azure SQL Database 単一データベース層、コンピューティング レベル、および SQL インスタンス上の各データベースに対して推奨されるストレージ構成に関する推奨事項を提供します。

Azure VM SQL Managed InstanceとSQL Server場合、推奨事項ではリフト アンド シフト シナリオがサポートされます。 その結果、SKU の推奨事項コンソール アプリでは、Azure VM レベルの Azure SQL Managed Instance または SQL Server に関する推奨事項、コンピューティング レベル、および SQL インスタンス上のデータベースのセットに対して推奨されるストレージ構成を提供できます。 SKU の推奨事項に含めるか、SKU から除外するデータベースのサブセットのみを指定することもできます。

GetSkuRecommendationは、ワークロードの代表的な収集されたパフォーマンス データ値 (指定されたパーセント値に基づく) を適切な Azure SQL SKU にマップするベースライン戦略を使用します。 また、収集されたパフォーマンス データに基づいて固有の価格対パフォーマンス曲線を生成し、既に Azure SQL に移行されているお客様と比較してワークロード パターンを分析するエラスティック戦略 (統計的アプローチ) も公開しています。

SKU 推奨プロセスを開始するには、コンソール アプリケーションでアクションを次の GetSkuRecommendation 引数で指定します。

  • perfQueryIntervalInSec (省略 可能): パフォーマンス データのクエリが実行された間隔 (秒)。 注: これは、パフォーマンス データの収集中に最初に使用された値と一致する必要があります。 (既定値: 30)
  • targetPlatform (省略 可能): SKU の推奨事項のターゲット プラットフォーム: AzureSqlDatabase、AzureSqlManagedInstance、AzureSqlVirtualMachine、または Any。 [任意] が選択されている場合は、3 つのターゲット プラットフォームすべてについて SKU の推奨事項が評価され、最適な適合が返されます。 (既定値: 任意)
  • targetSqlInstance (省略 可能): SKU SQL対象とするインスタンスの名前。 (既定値: outputFolder は PerfDataCollection アクションによって作成されたファイルに対してスキャンされ、検出されたインスタンスごとに推奨事項が提供されます)
  • targetPercentile (省略可能): パフォーマンス データの集計中に使用されるデータ ポイントのパーセンタイル。 ベースライン (非エラスティック) 戦略にのみ使用されます。ベースライン (非エラスティック) 戦略にのみ使用されます。 (既定値: 95)
  • scalingFactor (省略可能): SKU の推奨事項の間に使用されるスケーリング ("快適性") 係数。 たとえば、スケーリング 係数が 150% の仮想コア CPU 要件が 4 つあると判断された場合、真の CPU 要件は 6 仮想コアになります。 (既定値: 100)
  • startTime (省略可能): 集計中に考慮するパフォーマンス データ ポイントの UTC 開始時刻 ("YYYY-MM-DD HH:MM" 形式)。 ベースライン (非エラスティック) 戦略にのみ使用されます。 (既定値: 収集されたデータ ポイントはすべて考慮されます)
  • endTime (省略可能): 集計中に考慮するパフォーマンス データ ポイントの UTC 終了時刻 ("YYYY-MM-DD HH:MM" 形式)。 ベースライン (非エラスティック) 戦略にのみ使用されます。 (既定値: 収集されたデータ ポイントはすべて考慮されます)
  • elasticStrategy (省略 可能): リソース使用状況プロファイルとコスト パフォーマンス分析に基づいて SKU の推奨事項に対してエラスティック戦略を使用するかどうか。 エラスティック戦略は現在、Azure SQL データベースと SQL Managed Instanceで使用できます。Azure VM SQL Serverでは使用できません。 (既定値: false)
  • databaseAllowList (省略可能): SKU の推奨事項に関する考慮事項を考慮しながら、他のすべてのデータベースを除外するデータベースの名前のスペース区切りリスト。 databaseAllowList、databaseDenyList のいずれかを設定するか、どちらも設定しない。 (既定値: null)
  • databaseDenyList (省略可能): SKU の推奨事項に対して除外するデータベースの名前のスペース区切りリスト。 databaseAllowList、databaseDenyList のいずれかを設定するか、どちらも設定しない。 (既定値: null)
  • overwrite (省略可能): 既存の SKU 推奨レポートを上書きするかどうか。 (既定値: true)
  • displayResult (省略可能): SKU の推奨事項の結果をコンソールに出力するかどうか。 (既定値: true)
  • outputFolder (省略可能): パフォーマンス データ、レポート、およびログの書き込み/読み取りを行うフォルダー。 (既定値:%LocalAppData%/Microsoft/SqlAssessmentConsole)

SKU の推奨事項の詳細設定は、ルート ディレクトリ Console.Settings.json の ファイルにあります。 現時点では、次のカスタマイズ可能なパラメーターが含まれています。

CommandTimeoutGroupSetting: クエリ コマンドが実行されるのSQL待機する時間 (秒)。

  • PerfCollectionCommandTimeout: パフォーマンス データ収集に関連する実行時間の長いクエリのコマンド タイムアウト (既定値: 300)
  • DefaultCollectionCommandTimeout:他のすべてのクエリのコマンド タイムアウト (既定値: 120)

ThrottlingGroupSetting: マシン上のコア数に基づいて作成する並列タスクの数

  • ServerInstancesParallelCount: 並列で評価するサーバー インスタンスの数 (既定値: 2)
  • DatabasesParallelCount: 並列で評価するデータベースの数 (既定値: 4)
  • UserDefinedObjectsParallelCountPerDb: データベースごとに並列で評価するユーザー定義オブジェクト (ストアド プロシージャ、ビュー、トリガーなど) の数 (既定値: 4)

AllowTelemetry: 匿名機能の使用状況と診断データの収集と Microsoft への送信を許可するかどうか。 (既定値: true)

または、次のように、JSON 構成ファイルに適切な引数を指定し、アクションなしで実行可能ファイルを実行して構成ファイルをツールに渡して、SKU の推奨プロセスを呼び出すことができます。


 .\SqlAssessment.exe --configFile C:\path\to\config.json

上で説明した SKU の推奨事項アクションと同等のサンプル ConfigFile を次に示します。

{
    "action": "GetSkuRecommendation",
    "outputFolder": "C:\\Output",
    "targetPlatform": "AzureSqlDatabase",
    "targetSqlInstance": "Server1",
    "targetPercentile": 95,
    "scalingFactor": 100,
    "startTime": "2020-01-01 00:00",
    "endTime": "2022-01-01 00:00",
    "perfQueryIntervalInSec": 30,
    "overwrite": "true"
}

自動的に選択するのではなく、特定の Azure SQL プラットフォームに対する SKU の推奨事項を取得するには、次のように --targetPlatform オプションの値を指定します。

サンプル 1: データの SKU に関する推奨事項Azure SQL Database。

.\SqlAssessment.exe GetSkuRecommendation 
--outputFolder C:\Output 
--targetPlatform AzureSqlDatabase

サンプル 2: Azure SQL Managed Instance のエラスティック戦略を使用して SKU の推奨事項を取得する。

.\SqlAssessment.exe GetSkuRecommendation 
--outputFolder C:\Output 
--targetPlatform AzureSqlManagedInstance
--elasticStrategy true

サンプル 3: Azure 仮想マシンの SKU SQL取得する。

.\SqlAssessment.exe GetSkuRecommendation 
--outputFolder C:\Output 
--targetPlatform AzureSqlVirtualMachine

推奨設定の出力例を次にAzure SQL Databaseします。

SQLAssessment コンソールAzure SQL Database SKU レベルとサイズ設定に関する推奨事項のスクリーンショット。

Azure の推奨事項の出力例を次SQL Managed Instanceします。

コンソールに表示される Azure SQL Managed Instance SKU レベルとサイズの推奨事項のスクリーンショット。

Azure VM の推奨事項に基SQL Server出力の例を次に示します。

コンソールにSQL Server Azure VM SKU レベルとサイズに関する推奨事項の出力に関するページのスクリーンショット。

SKU の推奨事項の出力では、次のセクションについて説明します。

  • インスタンス名: オンプレミスのインスタンスSQL Serverの名前
  • データベース名: オンプレミスのデータベースSQL Server名
  • SKU の推奨事項: ワークロードに対応できるすべてのパフォーマンス対象 SKU の中で、コスト効率に優れた最小 SKU オファリング。
  • 推奨事項の 理由: 推奨されるレベルごとに、推奨事項を推進する理由と収集されたデータ値を提供します。

そのレベルの最終的な推奨レベルと構成値には、オンプレミスのデータベースと同様の成功率で Azure でクエリを実行するために必要な最小 SKU が反映されます。 たとえば、推奨される最小 SKU が S4 Standard レベルの場合、S3 以下を選択すると、クエリがタイム アウトしたり、実行に失敗したりすることがあります。

次のステップ

  • CLI から DMA を実行するコマンドの完全な一覧については、「コマンド ラインからデータ を実行Migration Assistantを参照してください