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

ERROR 1235 (42000): Cannot call SHOW INNODB STATUS because skip-innodb is defined

以上这个醒目错误提示,如果你是一个细心专业的DBA的话,可能这辈子你也遇到这样的问题,而我不是,毛躁马虎加上不专业,已经成了我的标签,所以,“幸运的”本人才遭遇到这个Error。究竟怎么一个动作导致出现这样的错误呢,下面简单描述下。
      » 继续阅读 “ERROR 1235 (42000): skip-innodb is defined”的误导

Innodb Crash Recovery恢复时间的飞跃

之前没经历过漫长的crash recovery恢复过程,一是本身库中的数据量就不大,平时的业务量就不是很高,二是innodb_buffer_pool_size和innodb_log_file_size的大小平时设置的也不大。所以,对于意外导致innodb自动恢复时,经历的等待时间的长短没有什么深刻的体会。在浏览peter很早以前的文章时,看到当时大家是多么的无奈和痛苦,同时,在InnoDB没有对其作出改进之前,大家都在开动脑筋,配合各种参数尽可能的缩短故障恢复的时间。先来了解下,什么是Crash Recovery,它究竟都帮我们做了什么。
      » 继续阅读 Innodb Crash Recovery恢复时间的飞跃

动态加载Innodb Plugin

曾经写过一篇关于XtraDB的体验篇的文章,里面曾提到我们可以动态将XtraDB加载到运行的MySQL中;MySQL中引擎我们都可以把它看作是一个个功能各异的插件(plugin),可以根据需要来加载卸载禁用启用,相当的方便灵活,只要你想你也可以写自己的ENGINE,然后把它加载进来,而这个plugin也是正是MySQL独特的地方所在。当初也就是那么一提,并没有具体操作怎么就动态把一个plugin加进来。而这次也是工作中碰到了,必须要这么做,其实,就是一句命令的事情,但是还有些细小的东西需要注意一下,下面说两句。

故事是这样的,这周的一天早,照例打开cacti扫一眼数据的负载以及运行情况。当我打开评论的那组的监控时,发现主库的mysql模板,清一色的nan,不出图了,乖乖之前不是好好的吗,谁动了,没改什么呀,我的脑子飞速回忆,同时,查看cacti的配置和主库上snmp.conf以及cacti用户权限,没有什么不对的地方,也通过手动执行命令去获取相应数据,测试了几个图,结果返回值都是-1,看log,求助大侠们,忙乎半天还是没有找到原因。一个有4也图,我无间点了后两页,咦!!有图呀,并不是全都没有图,发现和Innodb相关的都不出图,可能是….我查看了那个库的表结构发现,都是MyISAM的表,无语了~~但是从库相关innodb的都有图,又发现从库有一些列的表是innodb的,主从怎么会不一样呢(不许手动改从库),后来show plugins发现,主库没有编译innobase引擎,也就不支持InnoDB的表类型,即便你的sql语句engine=innodb,mysql还是会将其改成默认的myisam,而这样的语句复制到从库后就是正常所要设置的innodb的表。要知道,我们的主库是做了DRBD的,而这个架构建议数据库的引擎最好要选InnoDB,因为如有异常发生当数据库重启时innodb会自动修复,回滚失败操作。虽然一直也没有什么问题出现,但是还是需要将其调整至更加安全可靠。

动态加载Innodb Plugin,执行命令:

mysql>INSTALL PLUGIN INNODB SONAME ‘ha_innodb_plugin.so’;
      » 继续阅读 动态加载Innodb Plugin

InnoDB的”替代品”:Percona XtraDB

关于

XtraDBPercona TeamInnoDB的基础上开发出来的一个更加强大的存储引擎,它百分百的兼容InnoDB,我们可以用XtraDB来替代为MySQL的发展做出历史性贡献的InnoDB,新的XtraDB引擎将具有更加强大的性能优势,以及良好的扩展性和一些新特性。

Percona20081216日正式对外公布Percona XtraDB存储引擎,当时版本为1.0.2-1。在09年有相继发布了release 3/4/5/8,目前最新的版本为Percona-XtraDB 1.0.4-8

安装XtraDB存储引擎

XtraDB的安装有这么几种:一是现成的RPMS包安装,不过这些包仅限于x86_64RedHat/CentOS 4/5系统下,而且MySQL的版本为5.1.30;还有就是通过整体编译MySQL源码包的安装,即将新的XtraDB引擎的代码整合到MySQL的源码中,进行重新编译。前面这两种都需要重新搭建MySQL数据库,例外还有一种,就是动态的将XtraDB加载进正在运行MySQL中,这个看上去很符合生产的要求。
      » 继续阅读 InnoDB的”替代品”:Percona XtraDB