SQL Server データベースを移行するための Azure の推奨事項を取得する (プレビュー)
Azure Data Studio のAzure SQL移行拡張機能は、データベース要件の評価、Azure リソースの適切なサイズの SKU 推奨事項の取得、SQL Server データベースの Azure への移行に役立ちます。
この統合エクスペリエンスを使用して、ソース SQL Server インスタンスからパフォーマンス データを収集し、Azure SQL ターゲットに適したサイズの Azure 推奨事項を取得する方法について説明します。
概要
Azure SQLに移行する前に、Azure Data Studio の SQL Migration 拡張機能を使用して、Azure Virtual Machines ターゲットに対するAzure SQL Database、Azure SQL Managed Instance、SQL Serverの適切なサイズの推奨事項 (プレビュー) を生成できます。 このツールは、ソース SQL インスタンス (オンプレミスまたはその他のクラウドを実行している) からパフォーマンス データを収集し、ワークロードのニーズを満たすためにコンピューティングとストレージの構成を推奨するのに役立ちます。
この図は、Azure Data Studio の Azure SQL Migration 拡張機能での Azure の推奨事項のワークフローを示しています。
Note
Azure Data Studio 用の Azure SQL 移行拡張機能の評価および Azure レコメンデーション機能では、Windows または Linux 上で実行されているソース SQL Server インスタンスもサポートします。
前提条件
SQL Server データベースの移行に関する Azure の推奨事項 (プレビュー) を開始するには、次の前提条件を満たしている必要があります。
- Azure Data Studio をダウンロードしてインストールします。
- Azure Data Studio マーケットプレースから Azure SQL Migration 拡張機能をインストールします。
- ソース SQL Server インスタンスの接続に使用するログインに、最小限のアクセス許可があることを確認します。
サポートされているソースとターゲット
Azure の推奨事項は、次のSQL Serverバージョンに対して生成できます。
- Windows または Linux では SQL Server 2008 以降のバージョンがサポートされています。
- 他のクラウドで実行されているSQL Serverはサポートされている可能性がありますが、結果の精度は異なる場合があります
Azure の推奨事項は、次のAzure SQLターゲットに対して生成できます。
- Azure SQL データベース
- ハードウェア ファミリ: Standard シリーズ (Gen5)
- サービス レベル: General Purpose、Business Critical、Hyperscale
- Azure SQL Managed Instance
- ハードウェア ファミリ: Standard シリーズ (Gen5)、Premium シリーズ、Premium シリーズのメモリ最適化
- サービス レベル: General Purpose、Business Critical
- Azure Virtual Machine 上の SQL Server
- VM ファミリ: 汎用、メモリ最適化
- ストレージ ファミリ: Premium 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 の推奨事項を取得する] を選択します。 [今すぐパフォーマンス データを収集する] を選択し、収集したデータが保存されるマシン上のフォルダーを選択します。
重要
データ収集プロセスは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 ファイル) が保存されているフォルダーを選択し、[ 開始 ] を選択して推奨プロセスを開始します。
Note
SQL 移行ウィザードの手順 1 では、評価するデータベースのセットを選択するように求められます。これらは、推奨プロセス中に考慮される唯一のデータベースです。
ただし、パフォーマンス データ収集プロセスでは、選択されたデータベースだけでなく、ソース SQL Server インスタンスからすべてのデータベースのパフォーマンス カウンターが収集されます。
つまり、以前に収集したパフォーマンス データを使用して、手順 1 で別のリストを指定することで、データベースの異なるサブセットに対する推奨事項を繰り返し再生成できます。
推奨事項パラメーター
推奨事項に影響を与える可能性のある構成可能な設定が複数あります。
[ パラメーターの編集] オプションを選択して、必要に応じてこれらのパラメーターを調整します。
スケール係数:
このオプションを使用すると、各パフォーマンス ディメンションに適用するバッファーを指定できます。 このオプションは、季節的な使用状況、短いパフォーマンス履歴、将来の使用量の増加などの問題を考慮します。 たとえば、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 評価 を作成します。
- DTU ベースの購入モデルを使用した Azure SQL Database の推奨事項はサポートされていません。
- 現時点では、Azure SQL Database サーバーレス コンピューティング レベルとエラスティック プールに関する Azure の推奨事項はサポートされていません。
- 現時点では、Premium SSD v2 を使用した Azure Virtual Machine でのSQL Serverに関する Azure の推奨事項はサポートされていません。
トラブルシューティング
- 推奨事項が生成されない
- 推奨事項が生成されなかった場合、この状況は、ソース インスタンスのパフォーマンス要件を完全に満たすことができる構成が特定されなかったことを意味する可能性があります。 特定のサイズ、サービス レベル、またはハードウェア ファミリが失格になった理由を確認するには、次の手順を実行します。
- [ヘルプ > ] [すべてのコマンド > を表示] [拡張機能ログ フォルダーを開く] の順に移動して、Azure Data Studio からログにアクセスします
- Microsoft.mssql > SqlAssessmentLogs > open SkuRecommendationEvent.log に移動します
- ログには、評価されたすべての潜在的な構成のトレースと、それが適格な構成であると見なされた理由が含まれています。
- エラスティックレコメンデーションを有効にして推奨事項を再生成してみてください。 このオプションでは、既存のクラウド上のお客様に対してパーソナライズされた価格パフォーマンス プロファイリングを利用する代替レコメンデーション モデルを使用します。
- 推奨事項が生成されなかった場合、この状況は、ソース インスタンスのパフォーマンス要件を完全に満たすことができる構成が特定されなかったことを意味する可能性があります。 特定のサイズ、サービス レベル、またはハードウェア ファミリが失格になった理由を確認するには、次の手順を実行します。