Mysql监控快速指南
[
2009/02/15 09:20 | by askwan ]
2009/02/15 09:20 | by askwan ]
Mysql作为广泛应用的数据库系统,平时运维工作中对她的监控必不可少,现在把我对Mysql数据库的监控体会写成下文,欢迎拍砖。
无论是DBA或是SA,监控的目标都很明确,无外乎
1.快速的得到Mysql过去一段时间或者当前运行的状态
2.因硬件升级或者系统配置的改变而诊断对Mysql数据库性能影响
3.在Mysql数据库系统出现故障要能够及时收到告警
4.为日后编写运维报告提供各项数据指标供分析
5.……
想到了再做补充。而所有以上这些目的,通过各种方法和手段都可以做到。
自从Mysql数据库系统启动并且提供服务,Mysql内部自身的一套“计数器”就开始工作,可以通过
Show Global Status , Show global variables ,Show full processlist
得到Mysql数据库系统当前各种系统变量和状态 ,并且后文介绍个各种监控工具几乎都是对这三个指令的输出
进行数据的计算和统计分析。
无论是DBA或是SA,监控的目标都很明确,无外乎
1.快速的得到Mysql过去一段时间或者当前运行的状态
2.因硬件升级或者系统配置的改变而诊断对Mysql数据库性能影响
3.在Mysql数据库系统出现故障要能够及时收到告警
4.为日后编写运维报告提供各项数据指标供分析
5.……
想到了再做补充。而所有以上这些目的,通过各种方法和手段都可以做到。
自从Mysql数据库系统启动并且提供服务,Mysql内部自身的一套“计数器”就开始工作,可以通过
Show Global Status , Show global variables ,Show full processlist
得到Mysql数据库系统当前各种系统变量和状态 ,并且后文介绍个各种监控工具几乎都是对这三个指令的输出
进行数据的计算和统计分析。
分析Mysql慢查询日志的几把瑞士军刀
[
2009/02/13 11:37 | by askwan ]
2009/02/13 11:37 | by askwan ]
第一把 mysqldumpslow
属于Mysql嫡系血统,Mysql自带,可以统计各个SQL慢查询 出现次数 执行的最长时间 累计总消耗时间 等待锁的时间 返回行数和返回总行数等
第二把 mysqlsla
官方网站:http://hackmysql.com
这网站除了这个, 还share了不少其他mysql 相关的武器 ,个个强悍!
统计出来的信息非常全面 ,就不依依表述了 ,能快速定位主要问题, 强烈推荐.
第三把 mysql-explain-slow-log
一个perl写的脚本 ;
下载:http://www.willamowius.de/mysql-tools.html
用后感觉功能就一般般.
第四把 mysql-log-filter
与mysqldumpslow类似 ,功能相当.
第五把 myprofi
一个php脚本
下载地址http://myprofi.sourceforge.net/
分析结果比较简洁试用.
ps:记录mysql满查询,在配置文件my.cnf中修改
long_query_time = 1
log-slow-queries = /usr/local/mysql/data/slow.log
log-queries-not-using-indexes
功能最强大还算mysqlsla, 如果再搭配其他几把刀, SQL 写的有问题的或者需要优化的语句 ,几乎可以一网打尽了 !
mysql的ibdata1
[
2008/11/23 08:57 | by askwan ]
2008/11/23 08:57 | by askwan ]
myisam和innodb类型,用这两种存储引擎的都有不少,这次我将公司一库所有表由innodb转为myisam,很顺利,有个问题就生存了,库的体积增大了几乎一倍,原来主要是ibdata1超大,每天几十几百M的增加,现在转为myisam了,数据又重新存储了,备份和维护都挺麻烦,既然已经转为myisam了,这个文件ibdata1 和日志文件ib_logfile0 ib_logfile1都是检查文件一致性的,关闭库,删之,重启库,库体积减少一倍多,搞掂。
总结:
删除ibdata文件大致有两种方法
1.将表类型转为myisam后(其实数据已经转为文件方式存储了,数据不会丢失,不过有时候需要重新建立索引。)
删除ibdata1 ,ib_logfile0, ib_logfile1,重新启动,重建这三个文件,默认新建一个10M和2个5M大小文件,这比直接动辄10G的ibdata文件可让人轻松多了。
2.将数据库用mysqldump导出后,重新部署mysql或者删除数据库,停止库,删除三个大文件,重新启动库,在导入,耗费时间比较长。
这两种方法都需要停止数据库,大库可能需要较长时间,操作都需慎重。
总结:
删除ibdata文件大致有两种方法
1.将表类型转为myisam后(其实数据已经转为文件方式存储了,数据不会丢失,不过有时候需要重新建立索引。)
删除ibdata1 ,ib_logfile0, ib_logfile1,重新启动,重建这三个文件,默认新建一个10M和2个5M大小文件,这比直接动辄10G的ibdata文件可让人轻松多了。
2.将数据库用mysqldump导出后,重新部署mysql或者删除数据库,停止库,删除三个大文件,重新启动库,在导入,耗费时间比较长。
这两种方法都需要停止数据库,大库可能需要较长时间,操作都需慎重。
让php支持oracle 10g 数据库
[
2008/11/04 17:46 | by askwan ]
2008/11/04 17:46 | by askwan ]
Oracle对php的支持或者说php对Oracle的支持从Oracle8就开始了,本文主题是记录我在linux系统下编译php以让它可以支持连接Oracle数据库的技术细节。
本文环境为 CentOS4.4 Oracle10gR2 For Linux
假设apache和Oracle已经安装好,且假设Oracle主要的系统环境变量如下:
本文环境为 CentOS4.4 Oracle10gR2 For Linux
假设apache和Oracle已经安装好,且假设Oracle主要的系统环境变量如下:





