22

“ERROR 1235 (42000): skip-innodb is defined”的误导

发现监控数据库的my.cnf中的关于Innodb的配置都保持默认状态,而之前只运行cacti倒是没有什么影响,它的表都是MyISAM的。因为前段采用了zabbix监控,而它的表都采用Innodb的表结构。其实,很多参数都可以在线调整,之后将变化的添加到my.cnf即可,无需修改my.cnf再重启mysqld,因为zabbix的信息收集量不小,导致binlog增长很快,磁盘容量报警,之前expire_log_days又设置为0。我觉得监控系统没必要开启binlog日志功能,所以想将log-bin注释掉不记录二进制日志,所以,必须要重启mysqld。在改动的这些参数里面,我调整了redo log的大小,将默认的10M增大到256M,也就是这么一改,重启后,扑哧让我惆怅了好一会。

继续阅读全文

22

Heartbeat+DRBD+MySQL Replication故障处理

不久前的一次机房网络故障,再一次对我们在Heartbeat+DRBD+MySQL数据库架构运维水平的一个考验,之前不止一次的测试与线上部署,还有之后大言不惭的关于该架构组件的所谓深入理解,在这一次不经意的意外面前又是“很囧”的收场,慌张呀!这次断网导致H-D-M全线异常,真是千载难逢,都让我们赶上啦lol: 下面就把这次的小幸运小幸福和大家分享下,以下是按照问题处理的先后顺序依次讲述。

继续阅读全文

18

DROP TABLE AND LOCK_OPEN MUTEX

在Oracle中直接删除一张大表,会导致free extent 的enqueue,会导致buffer cache 的object purge,所以我们要有很多步骤,让删表变得不影响性能。这方面MySQL目前没有好的方法。MySQL中在对表进行drop table 命令,实际上调度的是mysql_rm_table_part2(sql/sql_table.cc)函数。

继续阅读全文

18

给PYTHON的MYSQLDB模块加功能

使用Python操作MySQL数据库的时候常使用MySQLdb这个模块。今天在开发的过程发现MySQLdb.connect有些参数没法设置。通过这个页面我们可以看到在connect的时候,可以设置的option和client_flags和MySQL c api相比差不少。一个很重要的参数 MYSQL_OPT_READ_TIMEOUT没法设置,这个参数如果不设置,极致状况MySQL处于hang住,自动切换IP漂移,客户端无法重连到新MySQL。

继续阅读全文