使用 Azure Arc 管理 SQL Server 资源的清单

适用范围:SQL Server

当 Azure Arc 启用 SQL Server 引擎实例或关联服务时,可以使用 Azure 来管理清单。

先决条件

验证 SQL Server 服务的状态是否为...

  • 版本 SQL Server 2014 (12.x) 或更高版本。
  • 在运行 Windows 操作系统的物理或虚拟机上。
  • 连接到 Azure Arc。请参阅 将 SQL Server 连接到 Azure Arc
  • 直接或通过代理服务器连接到 Internet。

清单数据库

若要清点 SQL Server 数据库,请确保数据库名称遵循命名约定,并且不包含保留字。 有关保留字的列表,请参阅 解决保留资源名称的错误。 有关命名规则和限制的完整列表,请查看 命名规则和限制

列出数据库清单:

  1. 在 Azure 门户中找到 Azure Arc 启用的 SQL Server 实例。
  2. 选择 SQL Server 资源。
  3. 数据管理下,选择数据库
  4. 使用 SQL Server 数据库 - Azure Arc 区域查看属于实例的数据库。

若要查看数据库大小和可用空间,请确保内置 SQL Server 登录名 NT AUTHORITY\SYSTEM 是计算机上运行的所有 SQL Server 实例的 SQL Server sysadmin 服务器角色的成员。

查看数据库属性

若要查看特定数据库的属性,请在门户中选择该数据库。

创建、修改或删除数据库后,更改将在一小时内显示在 Azure 门户中。

Azure 门户中 SQL Server 数据库属性的屏幕截图。

数据库 ”窗格显示以下信息:

  • 有关数据收集和上传的信息:
    • 上次收集的时间
    • 上传状态
  • 有关每个数据库的信息:
    • Name
    • 状态
    • 创建时间
    • 最早的还原点

选择特定数据库时,将显示该数据库的所有属性。 这些属性在 SQL Server Management Studio 中也可见。

完整数据库属性列表的屏幕截图。

使用 Azure Resource Graph 查询数据

下面是一些示例方案,演示如何使用 Azure Resource Graph 查询启用了 Azure Arc 的 SQL Server 数据库时可用的数据。

方案 1:获取 10 个数据库

获取 10 个数据库并返回可用于查询的属性:

resources
| where type == 'microsoft.azurearcdata/sqlserverinstances/databases'
| limit 10

要查询的许多最有趣的属性都位于该属性中 properties 。 若要浏览可用属性,请运行以下查询,然后选择“查看有关行 的详细信息 ”。 此操作将在右侧的 JSON 视图中显示这些属性。

resources
| where type == 'microsoft.azurearcdata/sqlserverinstances/databases'
| project properties

可以在属性 JSON 的每个层级之间使用句点来导航其层次结构。

方案 2:获取数据库选项AUTO_CLOSE设置为 ON 的所有数据库

| where (type == 'microsoft.azurearcdata/sqlserverinstances/databases' and properties.databaseOptions.isAutoCloseOn == true)
| extend isAutoCloseOn = properties.databaseOptions.isAutoCloseOn
| project name, isAutoCloseOn

方案 3:获取加密与未加密数据库的计数

resources
| where type == 'microsoft.azurearcdata/sqlserverinstances/databases'
| extend isEncrypted = properties.databaseOptions.isEncrypted
| summarize count() by tostring(isEncrypted)
| order by ['isEncrypted'] asc

方案 4:显示未加密的所有数据库

resources
| where (type == 'microsoft.azurearcdata/sqlserverinstances/databases' and properties.databaseOptions.isEncrypted == false)
| extend isEncrypted = properties.databaseOptions.isEncrypted
| project name, isEncrypted

方案 5:按区域和兼容性级别获取所有数据库

此示例返回位置中 westus3 兼容级别为 160 的所有数据库:

resources
| where type == 'microsoft.azurearcdata/sqlserverinstances/databases'
| where location == "westus3"
| where properties.compatibilityLevel == "160"

方案 6:显示 SQL Server 版本分发

resources
| where type == 'microsoft.azurearcdata/sqlserverinstances'
| extend SQLversion = properties.version
| summarize count() by tostring(SQLversion)

场景 7:按兼容性显示数据库数量

此示例返回按兼容级别排序的数据库数:

resources
| where type == 'microsoft.azurearcdata/sqlserverinstances/databases'
| summarize count() by tostring(properties.compatibilityLevel)
| order by properties_compatibilityLevel asc

库存关联的服务

SQL Server 关联服务包括:

  • SQL Server 数据库引擎
  • SQL Server Analysis Services (SSAS)
  • SQL Server Integration Services (SSIS)
  • SQL Server Reporting Services (SSRS)
  • Power BI 报表服务器 (PBIRS)

关联的服务的每个安装都以 SQL Server 实例的形式表示,其中 serviceType 显示了特定服务的属性。 该属性的定义如下:

"serviceType":  {
         "type": "string",
         "enum": [ "Engine", "SSAS", "SSIS", "SSRS", "PBIRS" ],
         "default": "Engine"
     }

创建清单仪表板

还可以 创建图表并将其固定到仪表板

饼图的示意图,该图表按兼容级别显示数据库计数的查询结果。

已知问题

本地删除的资源可能不会立即在 Azure 中删除。 例如,如果删除数据库,Azure 上的数据库映像将一直保留,直到服务器资源同步。