繁体   English   中英

Azure SQL Server监视/警报多个数据库(v12)

[英]Azure SQL Server Monitoring/Alerting for Multiple Databases (v12)

监视某个指标并通过多个数据库发出警报的最佳方法是什么。 例如,如果数据库大小超过10 GB,我想触发警报。

我知道您可以选择一个数据库并在Azure Monitor中进行配置,但是当有数百个数据库时,这似乎不可行。

我的数据库是使用Azure资源管理创建的

我认为PowerShell(特别是Get-AzureSqlDatabaseUsages命令)是您最好的朋友。 我过去曾做过修改过的“心跳”。 因此,我们还分析了索引碎片,并在需要时触发了REBUILD

上面的PowerShell命令示例:

C:\> Get-AzureSqlDatabaseUsages -ServerName "Server01" -DatabaseName "Database01"

这将要求您进行身份验证,但是它本身也足够简单。

您可以按计划(即,作为WebJob或计划任务)执行脚本,并根据某些指标阈值进行报告/通知。

编辑:对于v12数据库,请使用以下查询(可以使用PowerShell和sqlcmd.exe以编程方式执行)

SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS bigint) * 8192.) AS DatabaseSizeInBytes,
       SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS bigint) * 8192.) / 1024 / 1024 AS DatabaseSizeInMB,
       SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS bigint) * 8192.) / 1024 / 1024 / 1024 AS DatabaseSizeInGB
FROM sys.database_files
WHERE type_desc = 'ROWS';

经过更多的研究之后,我在Azure中找到了一个令人满意的解决方案:

  1. 转到Azure Monitor Metric(预览)
  2. 在我的情况下,我使用的是sql弹性池,因此我将其添加为带有指标“ storaged_used”的资源
  3. 通过“数据库ARM资源ID”添加拆分将为您提供用于每个的存储
    您池中的SQL数据库(按资源ID)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM