SQL Server データベースを移行するための Azure の推奨事項を取得する

Azure Data Studio 用の Azure SQL Migration 拡張機能は、データベース要件の評価、Azure リソースに対する適切なサイズの SKU の推奨事項の取得、SQL Server データベースの Azure への移行に役立ちます。

この統合エクスペリエンスを使用して、ソース SQL Server インスタンスからパフォーマンス データを収集し、Azure SQL ターゲットに適したサイズの Azure の推奨事項を取得する方法について説明します。

概要

Azure SQL に移行する前に、Azure Data Studio の SQL Migration 拡張機能を使用して、Azure SQL Database、Azure SQL Managed Instance、および Azure Virtual Machines ターゲット上の SQL Server に対して適切なサイズの推奨事項を生成できます。 このツールは、ソース SQL インスタンス (オンプレミスまたは他のクラウドを実行している) からパフォーマンス データを収集し、ワークロードのニーズを満たすためにコンピューティングとストレージの構成を推奨するのに役立ちます。

この図は、Azure Data Studio の Azure SQL Migration 拡張機能における Azure の推奨事項のワークフローを示しています。

Diagram that shows the workflow of the SKU recommendation process.

Note

Azure Data Studio 用の Azure SQL 移行拡張機能の評価および Azure レコメンデーション機能では、Windows または Linux 上で実行されているソース SQL Server インスタンスもサポートします。

前提条件

SQL Server データベースの移行に関する Azure の推奨事項を開始するには、次の前提条件を満たす必要があります。

サポートされているソースとターゲット

Azure の推奨事項は、次の SQL Server バージョンに対して生成できます。

  • Windows または Linux では SQL Server 2008 以降のバージョンがサポートされています。
  • 他のクラウドで実行されている SQL Server がサポートされている場合がありますが、結果の精度は異なる場合があります

Azure の推奨事項は、次の Azure SQL ターゲットに対して生成できます。

  • Azure SQL Database
    • ハードウェア ファミリ: Standard シリーズ (Gen5)
    • サービス レベル: General Purpose、Business Critical、Hyperscale
  • Azure SQL Managed Instance
    • ハードウェア ファミリ: Standard シリーズ (Gen5)、プレミアム シリーズ、プレミアム シリーズメモリ最適化
    • サービス レベル: General Purpose、Business Critical
  • Azure 仮想マシン上の SQL Server
    • VM ファミリ: 汎用、メモリ最適化
    • ストレージ ファミリ: プレミアム SSD

パフォーマンス データの収集

推奨事項を生成する前に、ソース SQL Server インスタンスからパフォーマンス データを収集する必要があります。 このデータ収集手順では、ワークロードのパフォーマンス特性をキャプチャするために、SQL Server インスタンスから複数 の動的システム ビュー (DMV) が照会されます。 このツールは、CPU、メモリ、ストレージ、IO 使用率などのメトリックを 30 秒ごとにキャプチャし、パフォーマンス カウンターを CSV ファイルのセットとしてコンピューターにローカルに保存します。

インスタンス レベル

このパフォーマンス データは、SQL Server インスタンスごとに 1 回収集されます。

パフォーマンス ディメンション 説明 動的管理ビュー (DMV)
SqlInstanceCpuPercent SQL Server プロセスで使用されていた CPU の量 (パーセンテージ) sys.dm_os_ring_buffers
PhysicalMemoryInUse SQL Server プロセスの全体的なメモリ占有領域 sys.dm_os_process_memory
MemoryUtilizationPercentage SQL Server のメモリ使用率 sys.dm_os_process_memory

データベース レベル

パフォーマンス ディメンション 説明 動的管理ビュー (DMV)
DatabaseCpuPercent データベースによって使用される CPU の合計割合 sys.dm_exec_query_stats
CachedSizeInMb データベースで使用されるキャッシュの合計サイズ (メガバイト単位) sys.dm_os_buffer_descriptors

ファイル レベル

パフォーマンス ディメンション 説明 動的管理ビュー (DMV)
ReadIOInMb このファイルから読み取られたメガバイトの合計数 sys.dm_io_virtual_file_stats
WriteIOInMb このファイルに書き込まれたメガバイトの合計数 sys.dm_io_virtual_file_stats
NumOfReads このファイルに対して発行された読み取りの合計数 sys.dm_io_virtual_file_stats
NumOfWrites このファイルに対して発行された書き込みの合計数 sys.dm_io_virtual_file_stats
ReadLatency このファイルの IO 読み取り待機時間 sys.dm_io_virtual_file_stats
WriteLatency このファイルの IO 書き込み待機時間 sys.dm_io_virtual_file_stats

推奨事項を生成するには、少なくとも 10 分間のデータ収集が必要ですが、ワークロードを正確に評価するには、ピーク時とピーク時以外の両方の使用状況をキャプチャするために十分な期間、データ収集を実行することをお勧めします。

データ収集プロセスを開始するには、まず Azure Data Studio でソース SQL インスタンスに接続してから、SQL 移行ウィザードを起動します。 手順 2 で、[Azure の推奨事項の取得] を選択します。 [今すぐパフォーマンス データを収集する] を選択し、収集したデータが保存されるコンピューター上のフォルダーを選択します。

Screenshot that shows the wizard pane to collect performance data for SKU recommendations.

重要

データ収集プロセスは10分間実行され、最初のレコメンデーションが生成されます。 アクティブなデータベース ワークロードが本番シナリオに類似した使用状況を反映しているときに、データ収集プロセスを開始することが重要です。

最初のレコメンデーションが生成された後、データ収集プロセスを継続的に実行してレコメンデーションを調整できます。 このオプションは、使用パターンが時間の経過とともに変化する場合に特に便利です。

[開始] を選択 すると、データ収集プロセスが開始されます。 10 分ごとに収集されたデータ ポイントが集計され、各カウンターの最大、平均、分散が 3 つの CSV ファイルのセットにディスクに書き込まれます。

通常、選択したフォルダーには、次のサフィックスを持つ一連の CSV ファイルが表示されます。

  • SQLServerInstance_CommonDbLevel_Counters.csv: データベース ファイルのレイアウトとメタデータに関する静的な構成データが含まれています。
  • SQLServerInstance_CommonInstanceLevel_Counters.csv: サーバー インスタンスのハードウェア構成に関する静的データが含まれています。
  • SQLServerInstance_PerformanceAggregated_Counters.csv: 頻繁に更新される集計されたパフォーマンス データが含まれます。

この間、Azure Data Studio は開いたままにしておきますが、他の操作を続行できます。 このページに戻り、[データ収集の停止] を選択 すると、いつでもデータ収集プロセスを停止できます。

適切なサイズの推奨事項の生成

以前のセッションからパフォーマンス データを既に収集している場合、または別のツール (Database Migration Assistant など) を使用している場合は、パフォーマンス データが既にあるオプション を選択して、既存のパフォーマンス データをインポートできます。 パフォーマンス データ (3 つの .csv ファイル) が保存されているフォルダーを選択し、[開始] を選択して推奨プロセスを開始します。

Screenshot that shows the pane to import performance data for a SKU recommendation.

Note

SQL 移行ウィザードの手順 1 で、評価するデータベースのセットを選択するように求められます。これらは、推奨プロセス中に考慮される唯一のデータベースです。

ただし、パフォーマンス データ収集プロセスでは、選択されたデータベースだけでなく、ソース SQL Server インスタンスからすべてのデータベースのパフォーマンス カウンターが収集されます。

つまり、以前に収集したパフォーマンス データを使用して、手順 1 で別のリストを指定することで、データベースの異なるサブセットに対する推奨事項を繰り返し再生成できます。

推奨事項のパラメーター

推奨事項に影響する可能性のある構成可能な設定が複数あります。

Screenshot that shows the recommendation parameters section.

必要に 応じてこれらのパラメーターを調整するには、[パラメーター の編集] オプションを選択します。

Screenshot that shows the different recommendation parameters.

  • スケール ファクター:
    このオプションを使用すると、各パフォーマンス ディメンションに適用するバッファーを指定できます。 このオプションでは、季節的な使用状況、短いパフォーマンス履歴、将来の使用状況の増加などの問題が考慮されます。 たとえば、4 仮想コア CPU 要件のスケール ファクターが 150% であると判断した場合、実際の CPU 要件は 6 個の仮想コアです。

    既定のスケール ファクター ボリュームは 100% です。

  • 使用率:
    パフォーマンス データとして使用されるデータ ポイントのパーセンタイルが集計されます。

    既定値は 95 パーセンタイルです。

  • プレビュー機能を有効にする:
    このオプションを使用すると、すべてのリージョンのすべてのユーザーがまだ一般公開されていない可能性がある構成を推奨できます。

    このオプションは既定ではオフになっています。

  • エラスティックレコメンデーションを有効にする:

    このオプションでは、既存のクラウド上のお客様に対してパーソナライズされた価格パフォーマンス プロファイリングを利用する代替推奨モデルを使用します。

    このオプションは既定ではオフになっています。

重要

Azure Data Studio を終了すると、データ収集プロセスも終了します。 その時点まで収集されたデータは、フォルダーに保存されます。

データ収集の進行中に Azure Data Studio を閉じる場合は、次のいずれかのオプションを使用してデータ収集を再開します。

  • Azure Data Studio を再度開き、自分のローカル フォルダーに保存されているデータ ファイルをインポートします。 次に、収集されたデータからレコメンデーションを生成します。
  • Azure Data Studio を再度開き、移行ウィザードを使用してデータ収集を再度開始します。

最小アクセス許可

パフォーマンス データ収集に必要なシステム ビューに対してクエリを実行するには、このタスクに使用される SQL Server ログインに対して特定のアクセス許可が必要です。 次のスクリプトを使用して、評価およびパフォーマンス データ収集用の最小限の特権ユーザーを作成できます。

-- Create a login to run the assessment
USE master;
GO

CREATE LOGIN [assessment] WITH PASSWORD = '<STRONG PASSWORD>';

-- Create user in every database other than TempDB and model and provide minimal read-only permissions
EXECUTE sp_MSforeachdb '
   USE [?];
   IF (''?'' NOT IN (''TempDB'',''model''))  
   BEGIN TRY
      CREATE USER [assessment] FOR LOGIN [assessment]
   END TRY
   BEGIN CATCH
      PRINT ERROR_MESSAGE()
   END CATCH'
   
EXECUTE sp_MSforeachdb '
   USE [?];
   IF (''?'' NOT IN (''tempdb'',''model''))  
   BEGIN TRY
      GRANT SELECT ON sys.sql_expression_dependencies TO [assessment]
   END TRY
   BEGIN CATCH
      PRINT ERROR_MESSAGE()
   END CATCH'
   
EXECUTE sp_MSforeachdb '
   USE [?];
   IF (''?'' NOT IN (''tempdb'',''model''))  
   BEGIN TRY
      GRANT VIEW DATABASE STATE TO [assessment]
   END TRY
   BEGIN CATCH
      PRINT ERROR_MESSAGE()
   END CATCH'

-- Provide server level read-only permissions
GRANT SELECT ON sys.sql_expression_dependencies TO [assessment];
GRANT SELECT ON sys.sql_expression_dependencies TO [assessment];
GRANT EXECUTE ON OBJECT::sys.xp_regenumkeys TO [assessment];
GRANT VIEW DATABASE STATE TO assessment;
GRANT VIEW SERVER STATE TO assessment;
GRANT VIEW ANY DEFINITION TO assessment;

-- Provide msdb specific permissions
USE msdb;
GO

GRANT EXECUTE ON [msdb].[dbo].[agent_datetime] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysjobsteps] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[syssubsystems] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysjobhistory] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[syscategories] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysjobs] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmaintplan_plans] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[syscollector_collection_sets] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmail_profile] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmail_profileaccount] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmail_account] TO [assessment];

-- USE master;
-- GO
-- EXECUTE sp_MSforeachdb 'USE [?]; BEGIN TRY DROP USER [assessment] END TRY BEGIN CATCH SELECT ERROR_MESSAGE() END CATCH';
-- DROP LOGIN [assessment];

サポートされていないシナリオと制限事項

  • Azure おすすめには価格の見積もりは含まれません。この状況は、リージョン、通貨、Azure ハイブリッド特典などの割引によって異なる場合があるためです。 価格の見積もりを取得するには、Azure 料金計算ツール使用するか、Azure Migrate で SQL 評価作成します。
  • を使用して Azure SQL Database のおすすめDTU ベースの購入モデルはサポートされていません。
  • 現時点では、Azure SQL Database のサーバーレス コンピューティング レベルとエラスティック プールに関する Azure の推奨事項はサポートされていません。

トラブルシューティング

  • 推奨事項が生成されない
    • 推奨事項が生成されなかった場合、この状況は、ソース インスタンスのパフォーマンス要件を完全に満たす構成が特定されなかったことを意味する可能性があります。 特定のサイズ、サービス レベル、またはハードウェア ファミリが失格になった理由を確認するには、次の手順を実行します。
      • 拡張機能ログ フォルダーを開くすべてのコマンド>を表示するヘルプ>に移動して、Azure Data Studio からログにアクセスする
      • Microsoft.mssql > SqlAssessmentLogs > open SkuRecommendationEvent.log に移動します
      • ログには、評価された可能性のあるすべての構成のトレースと、それが適格な構成であると見なされた/考慮されなかった理由が含まれます。 Screenshot that shows SKU recommendations log.
    • エラスティックレコメンデーションを有効にして推奨事項再生成してみてください。 このオプションでは、既存のクラウド上のお客様に対してパーソナライズされた価格パフォーマンス プロファイリングを利用する代替のレコメンデーション モデルが使用されます。

次のステップ