随着IT技术的发展,企业的应用系统越来越复杂,数据库作为应用系统基础的组成部分,其重要性不言而喻。
对于企业而言,一旦数据库崩溃或者数据库的性能降低,那么会直接导致依赖于数据库的应用系统运行速度缓慢或者根本无法使用,其最终结果不仅仅是会影响应用系统的使用效率,甚至会造成企业客户和利润的流失。因此,合理、安全、完善的数据库监控工作是至关重要的。要做好监控,使监控真正有效,我们需要遵守必要的指导原则。有些人疲于奔命地花了很多时间做监控,但结果还是漏洞百出,不如人意,原因就在于他们忽视了监控的基本原则。根据我的经验,监控工作中我们应该遵守以下原则:
1)坚持预防为主的原则。很多人往往等到业务部门报告出问题,或者系统已经出现严重事故(比如宕机)时,才想到要事先做好监控,而这时已经造成了损失。要知道,一个好的DBA是能够在出现问题时快速解决问题,而一个优秀的DBA是要在问题出现之前避免问题的发生,保证系统无故障运行。
2)运维人员要充分了解数据库系统的原理、架构等。如果不懂得原理、架构,在面对以前没有遇到过的问题时,只能通过盲目“试”的方法来解决问题,这样做是非常低效和危险的。只有理解了内在原理、架构,才可能准确分析监控时遇到的各种现象,并作出正确的决策。
3)要做好应急预案,切忌盲目自信。在IT系统中,没有完全可靠的硬件,也没有完全可靠的软件。小心使得万年船,运维人员应该时刻准备好备用方案,并通过定期检查(比如进行启用备用系统的演练),确保备用方案可用。
4)在系统上线和新老系统割接等重要时段要做好有针对性的重点监控。在系统上线时,因为系统的参数设置、应用程序设计等还没有经过实际业务负载的充分检验,所以要关注系统资源(如CPU、I/O、内存等)和数据库状态(如缓冲池、锁等),分析其中暴露的问题;在老系统扩容时,需要进行割接上线,这时要重点监控系统状态随业务量改变的变化趋势,分析上线后的系统能否满足业务需求。
5)在系统有任何环境上的变化时,比如软件升级、硬件升级、新功能启用(例如启用DB2的数据压缩、MDC等功能)以及参数重新设定等,都要比平时更加密切地监控系统。
6)监控过程中不能只关注数据库。数据库是运行在存储、主机和操作系统基础上,而为业务系统服务的。整个系统中的任何一部分出问题都可能波及数据库的运行。在数据库中表现出来的问题,其根源也许在系统的其他层次上。所以数据库的运维人员应该对存储、主机、操作系统以及上层应用程序的架构有所了解,而且当怀疑问题跟这些层次有关时,能够及时找到相关负责人员解决问题。
7)监控流程的设计和执行也是体现运维人员能力的一个很重要的方面。我们应该对各种可能出现的情况制定具体的监控和问题应对流程,这样才不会有病乱投医。一个合格的运维人员,不但要关注每天做了哪些监控,更要关注监控的流程是否得到很好的贯彻执行。
8)熟练使用各种监控工具,是运维人员顺利完成监控工作的保证。无论是DB2的自有监控工具还是第三方监控工具,均各有所长,我们要根据具体的监控任务和工具本身的特性进行选择。