如何在MySql中记录SQL日志(例如SqlServerProfiler)
这个是一个典型的SQL on Hadoop使用场景,我在PPT里面也提到了解决方案。一般来说就是通过Sqoop任务把MySQL里面的表格导入HDFS上,然后在HDFS上和log进行各种查询操作。可以使用mapreduce也可以使用Hive,推荐使用Hive,因为你从MySQL里面导入的数据是结构化的。
mysql主从日志格式
statement:历史比较悠久。会记录完整的sql语句。binlog空间比较小,跨库操作丢失数据。针对一些函数uuid,rand() 不安全性 (SBR,statement based replication)
row:安全性很高,不会出现丢失数据的情况。binlog空间占用比较大,会记录每行操作的语句。mysql5.6 binlog_rows_query_log_events 开启也可以看到完整sql语句了。在生产中建议使用row这种binlog记录格式 (RBR,row based replication)
对MySQL慢查询日志进行分析的基本教程
开启慢查询日志
mysql>setglobalslow_query_log=1;
定义时间SQL查询的超时时间
mysql>setgloballong_query_time=0.005;
查看慢查询日志的保存路径
mysql>showglobalvariableslike'slow_query_log_file';
查看慢查询
cat/var/log/mysql/slow.log
如何将syslogng的日志写入MySQL数据库
我在使用syslog-ng搭建日志服务器中已经讲了如何将syslog-ng配置为中心日志服务器,下面介绍如何将syslogng的日志写入mysql数据库系统:Gentoo-20071、修改/etc/syslog-ng/syslog-ng.conf,添加CODE:source s_remote {udp(ip(0.0.0.0) port(514));}
;destination r_mysql {program("/usr/bin/mysql -usyslogadmin -psyslogadmin syslog
还没有评论,来说两句吧...