最近需要监控数据库每个表的增长量,其实在mysql中的information_schema.TABLES表中有记录表的大小,但是不准,要是计算每天每个表大小的话不是很准确,刚好我的mysql是独享表空间,所以只要计算出数据目录中的表文件大小即可实现这个目的。以下代码实现了计算在独享表空间下,计算数据库中所有表的物理大小,并计算整个mysql数据库目录的大小和数据库目录所在分区的剩余空间。以下是代码:
#!/usr/bin/env python # -*- coding: utf-8 -*- import os,time,MySQLdb '' 'CREATE TABLE DBA.datasize ( `id` int(11) NOT NULL AUTO_INCREMENT, `host` varchar(20) NOT NULL COMMENT '服务器IP' , `dataname` varchar(100) NOT NULL COMMENT '数据库名字' , `tablename` varchar(100) NOT NULL COMMENT '表名字' , `datasize` double NOT NULL COMMENT '表大小,单位:M' , `uptime` datetime NOT NULL COMMENT '更新时间' , PRIMARY KEY (`id`,`host`,`dataname`,`tablename`,`datasize`,`uptime`), KEY `index_uptime` (`uptime`), KEY `index_tablename` (`tablename`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 '' ' #表结构 def log_w(text):#写日志 logfile = "datasize.txt" f = open(logfile, 'a+' ) def log2db(size_log):#把结果写入数据库 log_host = '192.168.100.100' log_user = 'wangwei' log_pass = 'wangwei' conn = MySQLdb.connect(host = log_host,port = 3306,user = log_user,passwd = log_pass,charset= 'utf8' ,connect_timeout=20) cursor = conn.cursor() cursor.executemany( "insert into DBA.datasize (`host`,`dataname`,`tablename`,`datasize`,`uptime`) VALUES(%s,%s,%s,%s,%s)" ,tuple(size_log)) except Exception,e: uptime = time. strftime ( "%Y-%m-%d %H:%M:%S" ) text = "======================== %s ======================" % uptime mysqldir = "/home/mysql/" host = '192.168.100.10' #数据库本地IP conm = 'du -sh %s' % mysqldir datasize = os.popen(conm).readlines()[0].split( '\t' )[0] dir_list = os.listdir(mysqldir) for i in dir_list: dirname = os.path.join(mysqldir,i) if os.path.isdir(dirname): tb_list = os.listdir(dirname) table_list = list(set([os.path.splitext(ii)[0] for ii in tb_list])) for t_name in table_list: f_size = os.path.getsize(os.path.join(dirname,t)) t_size = t_size/1024/1024 tables[os.path.join(i,t_name)]=t_size tables = sorted(tables.iteritems(),key = lambda asd:asd[1],reverse = True) text = str(i[0]).ljust(70)+str(i[1])+ 'M' aa = i[0].split( "/" ) res = [host,aa[0],aa[1],i[1],uptime] size_log.append(res) text = "All DataSize :" .ljust(70)+str(datasize) size_log.append([host, "all" , "all" ,int(datasize.split( 'G' )[0])*1024,uptime]) IBM-P510主板故障处理方案 阅读原文»
用户名:WS小壮 文章数:109 评论数:182 IBM-P510主板故障处理方案
通过HMC收集ASM的故障现象,有错误指向主板微码版本。 通过OS中的errpt显示,有以下几次报错,错误位置指向主板(U788C.001.AAC4488-P1)。 BFE4C025 0211063913 P Hsysplanar0 UNDETERMINED ERROR BFE4C025 0207205513 P Hsysplanar0 UNDETERMINED ERROR BFE4C025 0203023113 P Hsysplanar0 UNDETERMINED ERROR SRC: B151E40F Description: CEC hardware Unrecovered Error, general. Refer to the system
订阅:
博文评论 (Atom)
|
没有评论:
发表评论