查看已启用 Azure Arc 的 SQL Server 数据库

适用范围:SQL Server

可以在 Azure 中清点和查看已启用 Azure Arc 的 SQL Server 数据库。

先决条件

  • 验证托管数据库的 SQL Server 实例是否满足以下条件:

    • 托管在运行 Windows 操作系统的物理计算机或虚拟机上。
    • 为 SQL Server 2014 (12.x) 或更高版本。
    • 已连接到 Azure Arc。请参阅将 SQL Server 连接到 Azure Arc
    • 已直接连接到或通过代理服务器连接到 Internet。
  • 确保数据库名称遵循命名约定,并且不包含保留字。 要获取保留字列表,请参阅 解决保留资源名称的错误

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

清点数据库

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

查看数据库属性

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

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

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

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

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

选择特定数据库时,将显示该数据库的所有属性。 这些属性还显示在 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 的每个级别之间使用句点来导航浏览属性 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:按区域和兼容性级别获取所有数据库

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

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

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

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

已知问题

本地删除的数据库可能不会立即在 Azure 中删除。 不会影响数据库 CRUD(创建、读取、更新、删除)操作在本地的执行方式。