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

本博文中部分内容根据《Microsoft sql server》翻译再加上自己的理解而来。
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中的每一个错误都有一个关联的严重级别,通过这个级别可以指示错误的挺严重性,可以按照不同的级别产生不同的警报。(这个道理很好懂的,拿原子弹炸老鼠(小题大做)的事情咱不干)
数据库用户可以从性能计数器中产生的相对应的警报,这些计数器对于用户数据库的各种性能具有良好的效果。

要创建不同级别的警报,就必须得将错误写到Windows时间日志中。这个不难理解。因为在警报概念部分我们已经说了,SQL SERVER代理是从事件日志上读取错误信息。当SQL SERVER代理读取了事件日志并在此发现了新错误时,就会搜索整个数据库来寻找相应的警报。一旦SQL SERVER代理发现了Match的警报,将立即激活该警报,从而通知相关人员或者根据Job的设定来做出相应的反应。
下面我们就依次创建事件警报/性能警报/WMI警报
① 打开Sql Server Management Studio窗口,找到警报节点,如图
② 点击New Alert(创建警报)
③ 选择[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警报可以完成以下任务:
- 在[Object]下拉框中可以设置性能警报针对的对象,like: 选择[Sql Server Database]选项设定性能警报针对的数据库
- 远程启动计算机或在远程计算机上启动一个进程
- 设定在特定日期和时间运行的进程
- 获得本地或远程计算机已安装的程序列表
- 查询本地或远程计算机的Windsows事件日志
WMI警报的创建和事件警报/性能警报创建类似,在[New Alert]窗口的[Type]下拉列表中选择[WMI event alert]选项,如下图所示
使用[Namespace]文本框的默认值\\.\root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER,在[Query]文本框中输入如下语句:
SELECT * FROM
DDL_DATABASE_LEVEL_EVENT
WHERE Database='Test'
到此,Sql Server警报管理就介绍完毕了。
在此,借助博客园这个平台,向那些奋斗在7*24的前线程序猿们献上最崇高的敬意。
作 者:请叫我头头哥
出 处:http://www.cnblogs.com/toutou/
关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
sql server 警报管理,实时监听数据库动向,运筹帷幄之中的更多相关文章
- Web重温系列(三):OracleDependency实现监听数据库变化
有个小项目(后来由另一个小组以Java开发了),内容是监控一个Oracle数据库.如果其中一个表A有数据变动,则需要将相关内容重组后通过接口发送给B. 通常的解决办法是定时查询,时间间隔可以小一点,还 ...
- 人人都是 DBA(IV)SQL Server 内存管理
SQL Server 的内存管理是一个庞大的主题,涉及特别多的概念和技术,例如常见的 Plan Cache.Buffer Pool.Memory Clerks 等.本文仅是管中窥豹,描述常见的内存管理 ...
- SQL Server代理(4/12):配置数据库邮件
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在以前的文章里我们看到,SQL Serve ...
- 配置SQL Server 2008管理器
SQl Server 配置管理器(简称为配置管理器)包含了SQL Server 2008服务.SQL Server 2008网络配置和SQL Native Client配置3个工具,供数据库管理人员做 ...
- 20180530利用Maxwell组件实时监听Mysql的binlog日志
转自:https://blog.csdn.net/qq_30921461/article/details/78320750 http://kafka.apache.org/quickstart htt ...
- SqlDependency C#代码监听数据库表的变化
SqlDependency提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的. ...
- SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database)
原文:SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容 ...
- Echarts图标宽度变成100px,让图表宽度随着父元素自动适应,Vue实时监听宽度的变化,这可能是史上最好的解决方案!
最近工作中element后台管理使用Echarts图表,本后台项目分图表模式和列表模式,使用display控制显示隐藏,这样就引出了本文的问题. 问题1:Echarts图标宽度变成100px? 问题2 ...
- Android实时监听网络状态
Android实时监听网络状态(1) 其实手机在网络方面的的监听也比较重要,有时候我们必须实时监控这个程序的实时网络状态,android在网络断开与连接的时候都会发出广播,我们通过接收系统的广播就 ...
随机推荐
- Cygwin的安装
Android开发要用到NDK,装了一个虚拟机,老是不行. 后来安装了一个cygwin,安装完毕后unset home,再export NDK,就可以使用了,非常方便,不用像虚拟机那样经常切换.
- PHP和Apache的安装
http://jingyan.baidu.com/article/154b46315242b328ca8f4101.html
- Elasticsearch5.0 BreakChange摘要
Lucene版本 6.2.1 常用API变化重点关注 Java api 1 client create方式变更: 2 count api removed; 3 suggest api removed; ...
- 「Ionic」創建新項目
1.創建新項目 创建一个名为myApp的还有tabs的项目(ionic start <project-name> <optional-template>) 可选模板为sidem ...
- Java数组排序和查找
Java 1.2 添加了自己的一套实用工具,可用来对数组或列表进行排列和搜索.这些工具都属于两个新类的"静态"方法.这两个类分别是用于排序和搜索数组的Arrays,以及用于排序和搜 ...
- css布局模式
css布局模型在网页中,元素有三种布局模型: 流动模型(Flow) 浮动模型 (Float) 层模型(Layer) 流动Flow模型(一): 流动(Flow)是默认的网页布局模式.也就是说网页在默认状 ...
- 【初探Underscore】再说模版引擎
前言 Underscore 是一个JavaScript实用库,提供了类似Prototype.js (或 Ruby)的一些功能,但是没有扩展任何JavaScript内置对象. 它弥补了部分jQuery没 ...
- mysql服务突然丢失解决方案
mysql服务突然丢失解决方案 今天系统从win7更新到win10之后,mysql突然没了,使用navicat连接提示如下: 看到这个,以为自己的mysql服务没启动,于是打开服务找mysql服务,发 ...
- 通过GP加载卫星云图-雷达图-降雨预报图
# ---------------------------------------------------------------------------# MeteorologicalImageLo ...
- N900快捷键
Ctrl + C 复制文本 Ctrl + V 粘贴文本 Ctrl + X 剪切文本 Ctrl + A 全部选择 Ctrl + O 打开 Ctrl + N 新建 Ctrl + S 保存 Ctrl + Z ...