SQL监控:mysql及mssql数据库SQL执行过程监控审计

转载 Seay_法师

最近生活有很大的一个变动,所以博客也搁置了很长一段时间没写,好像写博客已经成了习惯,搁置一段时间就有那么点危机感,心里总觉得不自在。所以从今天起还是要继续拾起墨笔(键盘),继续好好维护这个博客,写出心里最真实的想法,写出平时接触到的一些人和事以及一些新的技术。当然写博客也不是单纯的为了记录,也想通过博客来结交更多的朋友,今天在公司图书馆看到一句话大致说的是"在今天这个年代,已经很难等到三顾茅庐,诸葛亮也需要博客、微博和影响力",在一年前就曾想过写一篇关于怎样通过博客来提高个人影响力的文章,我会尽快在这个月抽时间写出来,另外最近也看了几本书,过些时候给大家推荐。

今天写书的内容写到数据库监控,这里就大致把内容摘一些到博客,数据库SQL执行过程的监控有很多的场景可以用得到,比如我书里面说的代码审计的场景,除此还有一些故障排除的场景,通过实时审计数据库,可以很快定位到问题。

这里主要说说mysql和mssql的执行监控。

mysql中监控的主要原理是开启mysql的general_log来记录mysql的历史执行语句,它有两种记录方式,默认是通过记录到文件方式,另外一种是通过直接记录到mysql库的general_log表中,为了更方便的查询,我选择的是记录到mysql数据库的方式。另外这个功能的开启方式也有两种,一种是直接用mysql的sql语句开启,sql语句如下

set global general_log=on;

SET GLOBAL log_output='table';

SQL监控:mysql及mssql数据库SQL执行过程监控审计

不过这些步骤在博主的代码审计系统中都自动完成了,同时它还支持快速过滤实时预览。只要点击下断,操作完之后点击更新即可看到这段时间内在mysql执行过的所有sql语句,主界面图如下

SQL监控:mysql及mssql数据库SQL执行过程监控审计

Mssql执行监控,在sqlserver 上自带有一个性能监控的工具SQL Server Profiler,在开始菜单里可以找到它,使用SQL Server Profiler可以将SQL执行过程保存到文件和数据库表,同时它还支持实时查看和搜索。

下面我们来看看怎么使用它,打开 SQL Server Profiler后,在左上角的菜单栏里选择"文件"->"新建跟踪",在常规栏输入跟踪名(随意)后,可以额外选择记录到文件和记录到数据库表中两种记录方式,根据需要选择好之后,点击"事件选择"标签,根据需要选择要记录的事件,我这里在事件选择里只保留TSQL下面的SQL:BatchCompleted事件,然后点击"运行"

SQL监控:mysql及mssql数据库SQL执行过程监控审计

运行后监控的到sql语句如下图所示:

SQL监控:mysql及mssql数据库SQL执行过程监控审计

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱

上一篇:数据库级别DML操作监控审计、表触发器/对象触发器


下一篇:eclipse使用maven install 命令,生成war包中没有jsp/js/css的解决方法