最新消息:

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

MySQL数据库 admin 6320浏览 0评论

一、mysql日志

mysql日志主要有三种日志:General Log(普通日志)、Slow  Log(慢查询日志)、Error Log(错误日志)。其中General Log就是查询日志,要对sql执行语句进行监控就是设置General Log。
Geleral log记录了服务器接收到的每一个查询或是命令,无论这些查询或是命令是否正确甚至是否包含语法错误,general log 都会将其记录下来 ,记录的格式为 {Time ,Id ,Command,Argument }。也正因为mysql服务器需要不断地记录日志,开启General log会产生不小的系统开销。 因此,Mysql默认是把General log关闭的。 我们可以通过修改Mysql全局变量来开启General log功能或是更改日志存放路径。
从MySQL5.1.6版开始,general query log和slow query log开始支持写到文件或者数据库表两种方式,并且日志的开启,输出方式的修改,都可以在Global级别动态修改。

(1)查看普通查询日志状态的命令是:

 show global variables like '%general%';

QQ截图20141119151759

如果general_log的值为OFF,那么说明查询日志没有开启。

(2)开启查询日志的命令是:

set global general_log=on;

(3)普通查询日志支持写到文件或者数据库表两种方式。查看日志保存方式的命令是:

show variables like 'log_output';

QQ截图20141119154008

如果是TABLE,那么是日志保存在mysql库的general_log表中。如果是FILE,那么就保存在日志文件中。

————————————————————————————————————————-

1、将查询日志保存到数据库中的设置命令是:

set global general_log=on;
SET GLOBAL log_output='table';

这样设置后,直接去mysql库的general_log查看查询日志即可。

2、将查询日志保存到日志文件中的设置命令是:

set global general_log=on;
SET GLOBAL log_output='file';

这样设置后查询记录就会保存在文件中,日志文件的保存路径可以在my.ini配置文件中使用log参数进行设置,如果不在配置文件中设置mysql会自动生成一个文件保存查询日志。

查看日志文件保存路径的命令:

 show global variables like '%general%';

QQ截图20141119155801

 

二、MSSQL日志

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

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

jinglingshu_2014-11-19_08-19-58

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

jinglingshu_2014-11-19_08-19-59

 

参考资料:

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

2、Mysq性能分析 —— Genral log(普通日志)与 Slow log(慢速日式)

转载请注明:jinglingshu的博客 » SQL监控:mysql及mssql数据库SQL执行过程监控

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址