次の方法で共有


移行ダッシュボードを使用して移行体験を追跡する - Azure Arc で有効になっている SQL Server

適用対象:SQL Server

移行ダッシュボードは、Azure Arc によって有効になっている SQL Server のすべてのインスタンスとその移行準備状況を示す便利なビューです。 Azure Arc によって有効になっている SQL Server では、Azure への移行の評価が自動的に生成されます。 この評価は、クラウド移行とモダン化の過程を成功させる上で重要な役割を果たします。 このダッシュボードを使用すると、移行の過程を大規模に追跡できます。 準備は Azure 管理プレーンにプロパティとして投影されるため、Azure にネイティブな組織、タグ付け、クエリ機能を使用できます。

ダッシュボードには次のものが用意されています。

  • 検出された SQL Server インスタンスとデータベースの概要。
  • 生成された評価を含む SQL Server インスタンスの概要。
  • 各 Azure SQL オファリングの移行準備状況の概要。
  • ニーズに合わせてビューを調整できる豊富なフィルター機能。

移行評価を確認する

移行ダッシュボードには、次のようにアクセスできます。

  • Azure portal で Azure Arc を検索し、 Arc Center に移動します。
  • 左側のリボンで、[データ サービス] を展開し、SQL Server インスタンスに移動します。
  • 次に、[ 移行ダッシュボード ] タブに移動します

Azure Arc で有効になっている SQL Server の移行ダッシュボードのスクリーンショット。

検出された SQL Server インスタンスとデータベースの概要

ダッシュボードの最初のセクションでは、アクセス可能なすべての SQL Server インスタンスとデータベースの概要を示します。 バージョンとエディション別にインスタンスの分布を確認することもできます。 Azure Arc で有効になっている SQL Server の移行ダッシュボードの最初のセクションのスクリーンショット。SQL Server インスタンスとデータベースのインベントリと、バージョンとエディション別の配布が表示されます。

SQL Server 移行評価の概要

ダッシュボードのこのセクションでは、Azure Arc によって有効になっている SQL Server のインスタンスの移行評価と移行準備の概要について説明します。評価が利用可能なインスタンスの数を確認できます。 各 Azure SQL オファリングの移行準備状況が個別に表示されます。

Azure Arc で有効になっている SQL Server の移行ダッシュボードの 2 番目のセクションのスクリーンショット。各 Azure SQL オファリングのインスタンスとデータベースの移行評価と移行準備の概要を示します。

Azure Resource Graph クエリ

Azure Resource Graph は、Azure Arc によって有効になっている SQL Server インスタンスの準備プロパティに対してクエリを実行するための効率的でパフォーマンスの高い手段を提供します。いくつかのサンプル クエリを次に示します。

resources
 | where type == 'microsoft.azurearcdata/sqlserverinstances'
 | where properties.migration.assessment.assessmentUploadTime > ago(14d) and properties.migration.assessment.enabled == true and isnotnull(parse_json(properties.migration.assessment.skuRecommendationResults))
 | extend azureSqlDatabaseRecommendationStatus = tostring(properties.migration.assessment.skuRecommendationResults.azureSqlDatabase.recommendationStatus)
 | extend azureSqlManagedInstanceRecommendationStatus = tostring(properties.migration.assessment.skuRecommendationResults.azureSqlManagedInstance.recommendationStatus)
 | extend azureSqlVirtualMachineRecommendationStatus = tostring(properties.migration.assessment.skuRecommendationResults.azureSqlVirtualMachine.recommendationStatus)
 | extend serverAssessments = tostring(properties.migration.assessment.serverAssessments)
 | extend subscriptionId = extract(@"/subscriptions/([^/]+)", 1, id)
 | extend resourceGroup = extract(@"/resource[g/G]roups/([^/]+)", 1, id)
 | mv-expand platformStatus = pack_array(
     pack("platform", "Azure SQL Database", "status", azureSqlDatabaseRecommendationStatus),
     pack("platform", "Azure SQL Managed Instance", "status", azureSqlManagedInstanceRecommendationStatus),
     pack("platform", "Azure SQL Virtual Machine", "status", azureSqlVirtualMachineRecommendationStatus)
   )
 | extend platformIncludedString = strcat('"AppliesToMigrationTargetPlatform":', strcat('"', replace(" ", "", tolower(tostring(platformStatus["platform"]))), '"'))
 | extend platformHasIssues = tolower(serverAssessments) has tolower(platformIncludedString)
 | project Platform = tostring(platformStatus["platform"]), status = tostring(platformStatus["status"]), tostring(serverAssessments), id, platformHasIssues
 | extend finalStatus = case(
     status == "Ready" and platformHasIssues, "Ready with Conditions",
     status == "Ready", "Ready",
     status == "NotReady", "NotReady",
     isnull(status) or status !in ("Ready", "NotReady", "Ready with Conditions"), "Unknown",
     "Unknown")
 | summarize TotalAssessed = count(), Ready = countif(finalStatus == "Ready"), NotReady = countif(finalStatus == "NotReady"),
     ReadyWithConditions = countif(finalStatus == "Ready with Conditions"), Unknown = countif(finalStatus == "Unknown")
     by Platform
az graph query -q "resources | where type =~ 'microsoft.hybridcompute/machines' | extend machineId = tolower(tostring(id)), datacenter = iif(isnull(tags.Datacenter), '', tags.Datacenter), status = tostring(properties.status) | extend mssqlinstalled = coalesce(tobool(properties.detectedProperties.mssqldiscovered),false) | extend pgsqlinstalled = coalesce(tobool(properties.detectedProperties.pgsqldiscovered),false) | extend mysqlinstalled = coalesce(tobool(properties.detectedProperties.mysqldiscovered),false) | extend osSku = properties.osSku, osName = properties.osName, osVersion = properties.osVersion | extend coreCount = tostring(properties.detectedProperties.logicalCoreCount), totalPhysicalMemoryinGB = tostring(properties.detectedProperties.totalPhysicalMemoryInGigabytes)  | extend operatingSystem = iif(isnotnull(osSku), osSku, osName) | where mssqlinstalled or mysqlinstalled or pgsqlinstalled | project id ,name, type, resourceGroup, subscriptionId, ___location, kind, osVersion, status, osSku,coreCount,totalPhysicalMemoryinGB,tags, mssqlinstalled, mysqlinstalled, pgsqlinstalled | sort by (tolower(tostring(name))) asc"