你的位置:
问答吧
-> MySQL
-> 问题详情
mysql 如何察看数据库空间及日志空间使用情况
如题,谢谢
作者: zxyding
发布时间: 2009-06-18
监控磁盘
作者: hjwb1216
发布时间: 2009-06-18
???
不能像oracle那么监控表空间的使用率吗?
作者: zxyding
发布时间: 2009-06-18
不同的存储引擎不一样的。MyISAM直接监控文件大小即可。Innodb可以show table status
作者: NinGoo
发布时间: 2009-06-18
不管啥存储引擎,都可以监控磁盘文件大小,不过需要注意的是如果是使用统一tablespace的话注意ibdata使用,如果使用独立tablespace的话注意单个数据文件的使用扩展
作者: hjwb1216
发布时间: 2009-06-19
QUOTE:原帖由 hjwb1216 于 2009-6-19 09:02 发表
不管啥存储引擎,都可以监控磁盘文件大小,不过需要注意的是如果是使用统一tablespace的话注意ibdata使用,如果使用独立tablespace的话注意单个数据文件的使用扩展
假设你一开始给了100G的空间,磁盘还剩100G的空间,那么一开始,表空间只用了10G,随着数据量的增长,你如何判断什么时候该停机加数据文件?如果没有好的监控,万一在某天业务高峰期innodb表空间耗尽,就只能在业务高峰期加数据文件了。而如果能提前监控表空间本身的使用量,则可以提前规划在业务低谷时间端来做。
当然,os层面监控文件系统的大小也是必须的,不管这台机器是不是用于数据库,都有必要监控
作者: NinGoo
发布时间: 2009-06-19
QUOTE:原帖由 NinGoo 于 2009-6-19 09:15 发表
假设你一开始给了100G的空间,磁盘还剩100G的空间,那么一开始,表空间只用了10G,随着数据量的增长,你如何判断什么时候该停机加数据文件?如果没有好的监控,万一在某天业务高峰期innodb表空间耗尽,就只能在业务高峰期加数据文件了。而如果能提前监控表空间本身的使用量,则可以提前规划在业务低谷时间端来做。
当然,os层面监控文件系统的大小也是必须的,不管这台机器是不是用于数据库,都有必要监控
你说的100G是给的这个tablespace?那为什么不自动分配呢?
对于5.1以上的版本Max_data_length可以达到256T,当然这个是对于DB的存储,这些还要限于os层面的东西。
如果说对于单个tablespace达到256T的话,可想而知这个系统的容量,如果是非独立tablespace的db的话,在这个时候也应该分tablespace了,并非添加数据文件能够解决IO存在的问题了。
[ 本帖最后由 hjwb1216 于 2009-6-19 11:41 编辑 ]
作者: hjwb1216
发布时间: 2009-06-19
监控空间并不是说是用来解决IO问题的
不用自动扩展是不希望单个文件涨的太大
作者: NinGoo
发布时间: 2009-06-19
兄弟,你理解我的话,理解错了,我并不是说监控空间的目的是解决IO问题,我的意思是说如果单个tablespace特别的大的时候,而且这个tablespace里面存在的对象比较多的时候,会出现IO争用。
如果你不希望单个文件太大的时候,建议使用独立tablespace
作者: hjwb1216
发布时间: 2009-06-22
如果使用innodb的engine且使用ibdata的形式,预先应该估计最大量的空间值,然后平均的创建ibdata,10G左右一个较好。
innodb的空间是一定要监控的,建议记录下来,做成折线图。这样可以预见到空间的走势。
如果打开了logbin,对日志也要做定时清理。
磁盘空间是一定要监控的
作者: hebe139
发布时间: 2009-06-22
提供一种思路.
用SHELL脚本去定期(比如说一周)获得数据文件大小,数据文件所在分区大小,把得到的结果插入库里面,做一个页面查询。
作者: zeromyth
发布时间: 2009-06-23
给的解答很精彩。
作者: zxyding
发布时间: 2009-06-25