一、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%';
如果general_log的值为OFF,那么说明查询日志没有开启。
(2)开启查询日志的命令是:
set global general_log=on;
(3)普通查询日志支持写到文件或者数据库表两种方式。查看日志保存方式的命令是:
show variables like 'log_output';
如果是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%';
二、MSSQL日志
Mssql执行监控,在sqlserver 上自带有一个性能监控的工具SQL Server Profiler,在开始菜单里可以找到它,使用SQL Server Profiler可以将SQL执行过程保存到文件和数据库表,同时它还支持实时查看和搜索。
下面我们来看看怎么使用它,打开 SQL Server Profiler后,在左上角的菜单栏里选择“文件”->“新建跟踪”,在常规栏输入跟踪名(随意)后,可以额外选择记录到文件和记录到数据库表中两种记录方式,根据需要选择好之后,点击“事件选择”标签,根据需要选择要记录的事件,我这里在事件选择里只保留TSQL下面的SQL:BatchCompleted事件,然后点击”运行“。
运行后监控的到sql语句如下图所示:
参考资料:
1、SQL监控:mysql及mssql数据库SQL执行过程监控审计