zoukankan      html  css  js  c++  java
  • sql server 警报管理,实时监听数据库动向,运筹帷幄之中

    工作这么多年了,无论是身边的同学还是同事,发现只要搞程序员的都有一个通病---懒。懒到谁都不愿意加班,尤其是"义务"加班。即使大家都不愿意加班,但是很多时候项目赶着上线或者上线之后出错啊什么的,总得有人看着,这时候就诞生了一种新的工作制度,叫做7*24。顾名思义就是这种岗位实时都得有人看着,这确实是一件让人头疼的事情。虽然说在项目刚上线不可避免的得有7*24,但是我们可以尽量减少7*24的工作量(ps:因为7*24确实太累太苦,别问我怎么知道的)。那么我们怎么减少7*24的工作量呢?这就是我们这篇博文需要介绍到的,Sql server之警报管理。

    v写在前面

    本博文中部分内容根据《Microsoft sql server》翻译再加上自己的理解而来。

    v警报概念

    MS SQL SERVER自动将发生的事情记录在Windows的程序日志中。SQL SERVER AGENT会自动监视由SQL SERVER记录的程序执行日志,如果找到符合定义的Action发生,将拉响响应事件的警报。 SQL SERVER主要监视以下几类事情:

    • SQL SERVER事件
    • 服务器/数据库性能条件
    • Windows management instrument事件(下文中简称:WMI)

    警报对应上述3种事件,当事件发生时,将自动触发对应的事件。警报由名称、触发警报的时间或者性能条件、SQL SERVER代理响应事件或者性能条件所执行的操作这3个部分来完成。一个基本的警报包含以下内容:

    错误号

    SQL SERVER中大约有3000个可能出现的错误(SQL SERVER常见错误),每个错误都有自己的编号。在很多情况下程序开发可能产生不可预知的错误,在这些情况下,我们就需要New自定义错误号,并且针对这个事件产生一个警报

    错误级别

    程序里面,任何错误都是有Priority的,SQL SERVER中的每一个错误都有一个关联的严重级别,通过这个级别可以指示错误的挺严重性,可以按照不同的级别产生不同的警报。(这个道理很好懂的,拿原子弹炸老鼠(小题大做)的事情咱不干)

    性能计数器

    数据库用户可以从性能计数器中产生的相对应的警报,这些计数器对于用户数据库的各种性能具有良好的效果。

    v警报机制
    v创建警报

    要创建不同级别的警报,就必须得将错误写到Windows时间日志中。这个不难理解。因为在警报概念部分我们已经说了,SQL SERVER代理是从事件日志上读取错误信息。当SQL SERVER代理读取了事件日志并在此发现了新错误时,就会搜索整个数据库来寻找相应的警报。一旦SQL SERVER代理发现了Match的警报,将立即激活该警报,从而通知相关人员或者根据Job的设定来做出相应的反应。

    下面我们就依次创建事件警报/性能警报/WMI警报

    创建事件警报

    ①  打开Sql Server Management Studio窗口,找到警报节点,如图

    警报节点

    ②  点击New Alert(创建警报)

    注意:在窗口中可以对警报的基本属性进行设置。例如:在[Name]文本框中可以对警报的名称进行设置,从[Type]下拉列表框中可以对警报的类型进行设置,图中选择的Sql Server事件警报选项。在[Database Name]下拉框中可以选择执行警报的数据库(默认是所有数据库),同时可以使用[Error Number]可以指定警报对应的错误号,使用[Severity]可以选择预定义的警报。如果选择的严重级别在19~25之间,就会向Windows应用程序日志发送Sql server消息,并触发警报。

    ③  选择[Response]标签页,如下图所示,可以设定发生警报时向哪些操作员进行通知。单机[New Operator]按钮,可以完成添加警报通知的操作员

    ④  选择[Options]标签页,如下图所示,可以设定警报错误发送的方式,可以选择[E-mail]、[Pager]、[Net send]复选框(可多选),同时可以填写在发送警报的同时给出的通知消息,并能够对响应的间隔时间进行设定。

    ⑤  完成属性设置后,单机[OK]按钮完成警报的创建工作

    创建性能警报

    在性能警报创建页面,可以完成以下设置:

    • 在[Object]下拉框中可以设置性能警报针对的对象,like: 选择[Sql Server Database]选项设定性能警报针对的数据库
    • 通过[Counter]下拉框设置性能计数器的计数方式
    • 通过[Instance]下拉框设置性能计数器针对的数据库实例
    • 通过[Alert if counter]下拉框设置性能计数器触发的条件

    接下来,就如同创建事件警报的步骤一样,设置[Response]标签页和[Options]标签页,完成设置后,单机[OK]按钮完成警报的创建工作

    创建WMI警报

    WMI警报帮助用户对本地和远程计算机进行管理。WMI通过编程和脚本语言为日常管理提供了一条连续一致的途径,用户通过WMI警报可以完成以下任务:

    • 在[Object]下拉框中可以设置性能警报针对的对象,like: 选择[Sql Server Database]选项设定性能警报针对的数据库
    • 远程启动计算机或在远程计算机上启动一个进程
    • 设定在特定日期和时间运行的进程
    • 获得本地或远程计算机已安装的程序列表
    • 查询本地或远程计算机的Windsows事件日志

    WMI警报的创建和事件警报/性能警报创建类似,在[New Alert]窗口的[Type]下拉列表中选择[WMI event alert]选项,如下图所示

    使用[Namespace]文本框的默认值\. ootMicrosoftSqlServerServerEventsMSSQLSERVER,在[Query]文本框中输入如下语句:

    SELECT * FROM
    DDL_DATABASE_LEVEL_EVENT 
    WHERE Database='Test'

    v博客总结

    到此,Sql Server警报管理就介绍完毕了。

    在此,借助博客园这个平台,向那些奋斗在7*24的前线程序猿们献上最崇高的敬意。


    作  者:请叫我头头哥
    出  处:http://www.cnblogs.com/toutou/
    关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
    特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信
    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!

  • 相关阅读:
    HDU 5791 Two (DP)
    POJ 1088 滑雪 (DPor记忆化搜索)
    LightOJ 1011
    POJ 1787 Charlie's Change (多重背包 带结果组成)
    HDU 5550 Game Rooms (ccpc2015 K)(dp)
    HDU 5542 The Battle of Chibi (ccpc 南阳 C)(DP 树状数组 离散化)
    HDU 5543 Pick The Sticks (01背包)
    HDU 5546 Ancient Go (ccpc2015南阳G)
    NB-IoT的DRX、eDRX、PSM三个模式 (转载,描述的简单易懂)
    MQTT 嵌入式端通讯协议解析(转)
  • 原文地址:https://www.cnblogs.com/toutou/p/4654746.html
Copyright © 2011-2022 走看看