不少时候,都和身边朋友聊两个问题,DBA的平常工做都是哪些?什么才是数据库方面最重要的?ios
我相信这两个问题的答案每一个人都不会彻底同样,我也是,因此这里只表明个人我的观点,而且如下的内容将围绕个人思路展开,但愿对你们有或多或少的帮助。 数据库
A:服务器
A: 稳定性工具
不少公司,DBA和管理的DB数量比,1:10算少的,1:50都不算多,1:100也见过,数据库的优化、高可用、监控等等都是为了确保数据库的稳定性,稳定性若是不能保证,其余的工做都没法顺利开展,那么在保证稳定性的工做中,监控又显的格外突出。我我的的见解,DBA平常80%的工做都是在监控DB,自动化必不可少,为了节约出你的79%的监控时间,你才有去安装、优化、故障处理、配合开发人员工做的时间,那么80%中,还有1%去哪里了?答案就是人工监控将占据这1%。任何监控程序都永远不能100%代替人工,就像你妈把你放在幼儿园,还会去了解你在幼儿园的状况同样,因此你时不时须要人工看看你的DB的实际状况。性能
我将DB监控分为两类:1、功能监控;2、性能监控。优化
我主张的是先保证功能,才有资格保证性能,连功能都不能保证的监控,不是好的性能监控。spa
市面上,有很是多的开源软件,例如cacti、zabbix、nagios..,对于数据库或者服务器的功能监控,基本仍是调用的DMV、WMI来监控的,性能监控也基本都是围绕性能计数器运行值监控,个人监控程序也同样,不过有一点不一样之处,就是基础数据的收集及使用。日志
第三方监控程序我总结是基础数据收集+计算基础数据+计算后数据图表展现。开源程序的广泛使用造就了一些人过于依赖的现象,大多数公司在招聘DBA的时候都不会问你如何使用第三方工具,而做为企业招聘者,更愿意招聘那些懂得如何收集基础数据,如何计算基础数据,如何展现计算后数据的人。对象
换言之,如何计算、如何展现,只要你有基础数据,那么一切将不在话下。索引
简单概括下个人监控列表,在后面的文章里,我会分享下每个是如何实现的。
1、功能监控
2、性能监控
3、如何利用SQL CLR+WMI进行Windows监控
4、报警:如何用SQL Server,达到短信报警和邮件报警的实现
通宵加班中,本次只能说到这里,以上只表明本人的想法,若是有不一样意见,很是欢迎发来探讨。