电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Mysql sql慢查詢監(jiān)控腳本代碼實(shí)例

瀏覽:10日期:2023-10-08 17:00:02

1、修改my.cnf

#整體的效果,全局開(kāi)啟表和日志文件都寫,但是對(duì)于general_log只寫表,對(duì)于slow_query_log,表和日志文件都記錄。general_log=1#開(kāi)啟mysql執(zhí)行sql的日志 slow_query_log=1#開(kāi)啟mysql慢sql的日志#設(shè)置之后會(huì)影響general_log和slow_query_log,log_output=table,File#日志輸出會(huì)寫表,也會(huì)寫日志文件,為了便于程序去統(tǒng)計(jì),所以最好寫表#這里沒(méi)配置general_log_file,那么general_log就只會(huì)寫表了#在mysql5.1.29以上,設(shè)置以下即可打開(kāi)mysql將執(zhí)行的sql記錄在文件中#general_log_file=/log/general.log#5.1.29以以前為:#log=/var/lib/mysql/sql_row.loglong_query_time=1#設(shè)置mysql的慢查詢?yōu)槌^(guò)1s的查詢 slow_query_log_file=/log/slow.log

2、修改mysql的日志表(在mysql庫(kù)中)的格式

#默認(rèn)general_log是csv的格式,修改為MyISAM格式查詢效率會(huì)高很多

set global general_log = off;

alter table general_log engine = MyISAM;

set global general_log = on;

#默認(rèn)slow_query_log是csv的格式,修改為MyISAM格式查詢效率會(huì)高很多

set global slow_query_log = off;等于0效果一樣

alter table slow_log engine = MyISAM;

set global slow_query_log = on;等于1效果一樣

3、因?yàn)閙ysql的日志表:general_log和slow_query_log不允許修改,所以需要新建出一個(gè)便于刪除修改的表(這個(gè)日志表太大,需要定期清理n天前得數(shù)據(jù))

建立slow_log_dba的表

CREATE TABLE `slow_log_dba` ( `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `user_host` mediumtext NOT NULL, `query_time` time NOT NULL, `lock_time` time NOT NULL, `rows_sent` int(11) NOT NULL, `rows_examined` int(11) NOT NULL, `db` varchar(512) NOT NULL, `last_insert_id` int(11) NOT NULL, `insert_id` int(11) NOT NULL, `server_id` int(10) unsigned NOT NULL, `sql_text` mediumtext NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’Slow log for dba’;

建立general_log_dba的表

CREATE TABLE `general_log_dba` ( `event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `user_host` mediumtext NOT NULL, `thread_id` int(11) NOT NULL, `server_id` int(10) unsigned NOT NULL, `command_type` varchar(64) NOT NULL, `argument` mediumtext NOT NULL, KEY `user_host` (`user_host`(200)), KEY `event_time` (`event_time`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’general log for dba op’;

4、因?yàn)槌绦蜃罱K使用的general_log_dba和slow_log_dba的表,所以需要定時(shí)的將general_log和slow_query_log的數(shù)據(jù)拷貝到general_log_dba和slow_log_dba之中

因?yàn)閳?bào)告是每天生成一次,所以這個(gè)動(dòng)作只要每天操作一次即可

#腳本是保存10天得數(shù)據(jù),每天將general_log和slow_query_log的數(shù)據(jù)拷貝到general_log_dba和slow_log_dba之中

#做定時(shí)任務(wù)每天執(zhí)行一次 mysqllogtable.sh

#!/bin/sh

NDaysAgo=$(date -d ’-10 days’ '+%F %H:%M:%S')

/usr/local/mysql/bin/mysql -uXXXX -p’xxxxxxxx’ -D’mysql’ -e 'insert general_log_dba select * from general_log;

truncate general_log;

delete from general_log_dba where event_time < '$NDaysAgo';

insert slow_log_dba select * from slow_log;

truncate slow_log;

delete from slow_log_dba where start_time < '$NDaysAgo''

5、python腳本寫統(tǒng)計(jì)每天sql操作和每天的mysql的慢查詢(腳本中有部分是可以抽象的方法,請(qǐng)自己酌情處理)

統(tǒng)計(jì)mysql每日?qǐng)?zhí)行記錄的腳本

# -*- coding: utf-8 -*-__author__ = ’river’import MySQLdb as mysqlimport refrom datetime import datetime, timedeltaimport smtplibfrom email.mime.text import MIMETextdef sendHtmlMail(mailcontent,myip): try: yestoday=(datetime.now()-timedelta(days=1)).strftime('%Y-%m-%d') sender = ’xxx@xxx.com’ receiver = [’xxx@xxx.com’] subject = myip+’ mysql operation report ’+yestoday smtpserver = ’smtp.exmail.xx.com’ username = ’xxx@xxx.com’ password = ’xxxxx’ msg = MIMEText(mailcontent,’html’,’utf-8’)#’你好’,’text’,’utf-8’ msg[’Subject’] = subject msg[’From’] = sender msg[’To’] = ’xxx@xxxxxxxx.com’ smtp = smtplib.SMTP() smtp.connect(smtpserver) smtp.login(username, password) smtp.sendmail(sender, receiver, msg.as_string()) smtp.quit() except Exception, e: print e,’send mail error’if __name__==’__main__’: result=None htmlfile=’mysqlLogMon.html’ myiplist=[’192.168.10.10’,’192.168.10.19’] yestoday=(datetime.now()-timedelta(days=1)).strftime('%Y-%m-%d 00:00:00') today=datetime.now().strftime('%Y-%m-%d 00:00:00') for myip in myiplist: sql='select user_host,argument from general_log_dba where event_time >=’%s’ and event_time <=’%s’' %(yestoday,today) try: dbcon = mysql.connect(host=myip, user=’xxxxx’, passwd=’xxxxx’, db=’mysql’, port=3306,charset=’utf8’) cur = dbcon.cursor() print 'step 1,'+myip+’,’+datetime.now().strftime('%Y-%m-%d %H:%M:%S') cur.execute(sql) result = cur.fetchall() cur.close() dbcon.close() except Exception, e: print e,’conn mysql error’ user_host_set=set() print 'step 2,'+myip+’,’+datetime.now().strftime('%Y-%m-%d %H:%M:%S') allhash={} if result: for user_host,argument in result:argument_delcom=re.compile(r’(/*(s|.)*?*/)’).sub('',argument).strip().replace(u'x00',’’).lower()if re.compile(r’^access.*’).match(argument_delcom) or re.compile(r’^.*@.*on.*’).match(argument_delcom) or re.compile(r’^grant.*’).match(argument_delcom): tmpargument=argument_delcom.strip()else: tmpargument=argument_delcom.split(’ ’)[0].strip() if len(tmpargument)>30: #有些sql是u’selectntttttcount(m.enquirymainid)’,可以使用print repr(tmpargument) tmpargument=argument_delcom.split(’n’)[0].strip()#如果全是注釋,那么就不統(tǒng)計(jì)這條目了if not tmpargument or tmpargument.strip()==’’ or tmpargument.strip()==’ ’: continueif allhash.has_key(user_host): allhash[user_host][tmpargument]=allhash[user_host].get(tmpargument,0)+1else: allhash[user_host]={tmpargument:1} print 'step 3,'+myip+’,’+datetime.now().strftime('%Y-%m-%d %H:%M:%S') headhtml=’’’ ’’’ print 'step 4,'+myip+’,’+datetime.now().strftime('%Y-%m-%d %H:%M:%S') with open(htmlfile,’w’) as htmlfileobj:htmlfileobj.write(headhtml)htmlfileobj.flush() print 'step 5,'+myip+’,’+datetime.now().strftime('%Y-%m-%d %H:%M:%S') with open(htmlfile,’a’) as htmlfileobj:for hostkey in allhash.keys(): listtmp=sorted(allhash[hostkey].iteritems(),key=lambda labkey:labkey[1],reverse=True) rowspan=len(allhash[hostkey]) #htmlfileobj.write() tmpline=’’ %(rowspan,hostkey.encode(’utf-8’)) htmlfileobj.write(tmpline) countn=0 for runsql,count in listtmp: if countn==0: tmpline=’’ %(runsql.encode(’utf-8’),count) else: tmpline=’’ %(runsql.encode(’utf-8’),count) countn+=1 htmlfileobj.write(tmpline)tmpline=’’’用戶 執(zhí)行sql 執(zhí)行次數(shù)%s %s %s%s %s’’’htmlfileobj.write(tmpline) with open(htmlfile,’r’) as htmlfileobj:mailcontent=htmlfileobj.read() sendHtmlMail(mailcontent,myip) else: print ’sql result is None,exit ing’ print 'step 6,'+myip+’,’+datetime.now().strftime('%Y-%m-%d %H:%M:%S')

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
主站蜘蛛池模板: 定制异形重型钢格栅板/钢格板_定做踏步板/排水沟盖板_钢格栅板批发厂家-河北圣墨金属制品有限公司 | 房车价格_依维柯/大通/东风御风/福特全顺/江铃图片_云梯搬家车厂家-程力专用汽车股份有限公司 | 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 金属切削液-脱水防锈油-电火花机油-抗磨液压油-深圳市雨辰宏业科技发展有限公司 | 管理会计网-PCMA初级管理会计,中级管理会计考试网站 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 光纤测温-荧光光纤测温系统-福州华光天锐光电科技有限公司 | 照相馆预约系统,微信公众号摄影门店系统,影楼管理软件-盟百网络 | 上海瑶恒实业有限公司|消防泵泵|离心泵|官网 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 泰国专线_泰国物流专线_广州到泰国物流公司-泰廊曼国际 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 电动不锈钢套筒阀-球面偏置气动钟阀-三通换向阀止回阀-永嘉鸿宇阀门有限公司 | 电缆隧道在线监测-智慧配电站房-升压站在线监测-江苏久创电气科技有限公司 | 小青瓦丨古建筑瓦丨青瓦厂家-宜兴市徽派古典建筑材料有限公司 | 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 【黄页88网】-B2B电子商务平台,b2b平台免费发布信息网 | 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为| 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 中视电广_短视频拍摄_短视频推广_短视频代运营_宣传片拍摄_影视广告制作_中视电广 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 哈尔滨治「失眠/抑郁/焦虑症/精神心理」专科医院排行榜-京科脑康免费咨询 一对一诊疗 | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 | 都江堰招聘网-都江堰人才网 都江堰人事人才网 都江堰人才招聘网 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 次氯酸钠厂家,涉水级次氯酸钠,三氯化铁生产厂家-淄博吉灿化工 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 气象监测系统_气象传感器_微型气象仪_气象环境监测仪-山东风途物联网 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 钢化玻璃膜|手机钢化膜|钢化膜厂家|手机保护膜-【东莞市大象电子科技有限公司】 | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 青岛球场围网,青岛车间隔离网,青岛机器人围栏,青岛水源地围网,青岛围网,青岛隔离栅-青岛晟腾金属制品有限公司 |