首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >针对多个数据库的Azure SQL Server监控/警报(v12)

针对多个数据库的Azure SQL Server监控/警报(v12)
EN

Stack Overflow用户
提问于 2018-05-29 14:49:22
回答 2查看 274关注 0票数 0

在多个数据库中监控某个指标并对其发出警报的最佳方式是什么?例如,如果数据库大小超过10 GB,我希望触发警报。

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

我的数据库是使用

资源管理

创建的

EN

回答 2

Stack Overflow用户

发布于 2018-05-31 18:55:50

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

上面的PowerShell命令示例:

代码语言:javascript
复制
C:\> Get-AzureSqlDatabaseUsages -ServerName "Server01" -DatabaseName "Database01"

这将要求您通过身份验证,但这本身也很简单。

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

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

代码语言:javascript
复制
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';
票数 1
EN

Stack Overflow用户

发布于 2018-05-31 22:18:14

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

sql

  • 转到Azure监视器Metric(preview)

  • In我的情况是我使用的是sql弹性池,所以我将其添加为资源,并使用指标"storaged_used"

  • Add拆分“
  1. Id”将为每个资源分配存储空间。

按资源Id的池中的SQL数据库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50577979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档