【Paddy】数据库监控系列(一)

很多时候,都和身边朋友聊两个问题,DBA的日常工作都是哪些?什么才是数据库方面最重要的?

我相信这两个问题的答案每个人都不会完全一样,我也是,所以这里只代表我的个人观点,并且以下的内容将围绕我的思路展开,希望对大家有或多或少的帮助。 

Q1:DBA的日常工作都是哪些?

A:

  1. 数据库的安装部署
  2. 数据库监控
  3. 数据库优化
  4. 数据库故障处理
  5. 其他

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的时候都不会问你如何使用第三方工具,而作为企业招聘者,更愿意招聘那些懂得如何收集基础数据,如何计算基础数据,如何展示计算后数据的人。

  换言之,如何计算、如何展示,只要你有基础数据,那么一切将不在话下。

  简单归纳下我的监控列表,在后面的文章里,我会分享下每一个是如何实现的。

一、功能监控

  1. 连接数监控
  2. 数据库状态监控
  3. 对象使用空间监控
  4. 数据库镜像状态
  5. 数据库作业监控
  6. 数据库错误日志监控
  7. 数据库使用空间监控
  8. 数据库阻塞监控
  9. 数据库索引使用监控
  10. 数据库统计信息监控
  11. 数据库虚拟日志文件监控

二、性能监控

  1. 多台数据库性能计数器如何统一收集。
  2. 如何利用SQL Server生成你需要的数据。

三、如何利用SQL CLR+WMI进行Windows监控

四、报警:如何用SQL Server,达到短信报警和邮件报警的实现

通宵加班中,本次只能说到这里,以上只代表本人的想法,如果有不同意见,非常欢迎发来探讨。

原文地址:https://www.cnblogs.com/SQLServer2012/p/3991729.html