【Paddy】数据库监控系列(一) - 监控理念
很多时候,都和身边朋友聊两个问题,DBA的日常工作都是哪些?什么才是数据库方面最重要的?
我相信这两个问题的答案每个人都不会完全一样,我也是,所以这里只代表我的个人观点,并且以下的内容将围绕我的思路展开,希望对大家有或多或少的帮助。
Q1:DBA的日常工作都是哪些?
A:
- 数据库的安装部署
- 数据库监控
- 数据库优化
- 数据库故障处理
- 其他
Q2:什么才是数据库方面最重要的?
A: 稳定性
很多公司,DBA和管理的DB数量比,1:10算少的,1:50都不算多,1:100也见过,数据库的优化、高可用、监控等等都是为了确保数据库的稳定性,稳定性如果不能保证,其他的工作都无法顺利开展,那么在保证稳定性的工作中,监控又显的格外突出。我个人的看法,DBA日常80%的工作都是在监控DB,自动化必不可少,为了节约出你的79%的监控时间,你才有去安装、优化、故障处理、配合开发人员工作的时间,那么80%中,还有1%去哪里了?答案就是人工监控将占据这1%。任何监控程序都永远不能100%代替人工,就像你妈把你放在幼儿园,还会去了解你在幼儿园的情况一样,所以你时不时需要人工看看你的DB的实际情况。
我将DB监控分为两类:一、功能监控;二、性能监控。
我主张的是先保证功能,才有资格保证性能,连功能都不能保证的监控,不是好的性能监控。
市面上,有非常多的开源软件,例如cacti、zabbix、nagios..,对于数据库或者服务器的功能监控,基本还是调用的DMV、WMI来监控的,性能监控也基本都是围绕性能计数器运行值监控,我的监控程序也一样,不过有一点不同之处,就是基础数据的收集及使用。
第三方监控程序我总结是基础数据收集+计算基础数据+计算后数据图表展示。开源程序的普遍使用造就了一些人过于依赖的现象,大多数公司在招聘DBA的时候都不会问你如何使用第三方工具,而作为企业招聘者,更愿意招聘那些懂得如何收集基础数据,如何计算基础数据,如何展示计算后数据的人。
换言之,如何计算、如何展示,只要你有基础数据,那么一切将不在话下。
简单归纳下我的监控列表,在后面的文章里,我会分享下每一个是如何实现的。
一、功能监控
- 连接数监控
- 数据库状态监控
- 对象使用空间监控
- 数据库镜像状态
- 数据库作业监控
- 数据库错误日志监控
- 数据库使用空间监控
- 数据库阻塞监控
- 数据库索引使用监控
- 数据库统计信息监控
- 数据库虚拟日志文件监控
二、性能监控
- 多台数据库性能计数器如何统一收集。
- 如何利用SQL Server生成你需要的数据。
三、如何利用SQL CLR+WMI进行Windows监控
四、报警:如何用SQL Server,达到短信报警和邮件报警的实现
通宵加班中,本次只能说到这里,以上只代表本人的想法,如果有不同意见,非常欢迎发来探讨。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战