Skip to main content

Posts

Don't forget to check your partitions!

As it's the end of the year it might be time to check your partition definitions. If you forget to add a new partition in time partitions with no MAXVALUE might start to throw errors: mysql> create table nye (`event_id` int not null auto_increment,`edate` year(4) not null, description varchar(200),  -> primary key(`event_id`,`edate`))  -> partition by range( edate ) ( -> partition p2010 VALUES LESS THAN (2011),  -> partition p2011 VALUES LESS THAN (2012),  -> partition p2012 VALUES LESS THAN (2013) ); Query OK, 0 rows affected (0.04 sec) mysql> INSERT INTO nye(edate,description) VALUES('2010','twenty ten');  Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO nye(edate,description) VALUES('2011','twenty eleven'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO nye(edate,description) VALUES('2012','twenty twelve'); Query OK, 1 row affected (0.00 sec) mysql> INSE...

A difficult XtraBackup restore

There was one MySQL server with a Adaptec Raid controller and 4 disks. One of the disks was having media errors and caused the whole SCSI bus to become unavailable. This resulted in a corrupted InnoDB table. Luckily we did have backups. A full backup and incrementals. So to restore the backups I installed XtraBackup and MySQL 5.5 on another server. Then the first step was to 'prepare' the backup. This worked okay for the full backup (redo only). The second step to add the incremantals failed for the first incremental. This was easily resolved by specifying the full paths instead of relative paths. Then the backup was fully prepared using the redo logs and undo logs. As XtraBackup doesn't backup your my.cnf we copied the my.cnf from another server and adjusted it for this server. The my.cnf in your backup only contains everything needed for a restore, and some of those settings are Percona Server specific and will result in an error when used with MySQL. So f...

MySQL Zeroday's

SANS ISC reported a number of zeroday's for MySQL today. * CVE-2012-5611 MySQL (Linux) Stack based buffer overrun PoC Zeroday http://seclists.org/fulldisclosure/2012/Dec/4 https://bugzilla.redhat.com/show_bug.cgi?id=882599 * CVE-2012-5612 MySQL (Linux) Heap Based Overrun PoC Zeroday http://seclists.org/fulldisclosure/2012/Dec/5 https://bugzilla.redhat.com/show_bug.cgi?id=882600 * CVE-2012-5613 MySQL (Linux) Database Privilege Elevation Zeroday Exploit http://seclists.org/fulldisclosure/2012/Dec/6 https://bugzilla.redhat.com/show_bug.cgi?id=882606 * CVE-2012-5614 MySQL Denial of Service Zeroday PoC http://seclists.org/fulldisclosure/2012/Dec/7 https://bugzilla.redhat.com/show_bug.cgi?id=882607 * CVE-2012-5615 MySQL Remote Preauth User Enumeration Zeroday http://seclists.org/fulldisclosure/2012/Dec/9 https://bugzilla.redhat.com/show_bug.cgi?id=882608   Source: http://seclists.org/oss-sec/2012/q4/387

Scale with MySQL

Today there was the ' Scale with MySQL ' event in the new Oracle building in Utrecht. There were sessions about the MySQL 5.6 RC and about MySQL Cluster. It was nice to meet so many other MySQL users. It was interesting too hear about what MySQL is used for and in which kind of environments. Visit the MySQL Events page to see all other location for the 'Scale with MySQL' sessions. And there are more options for meeting other MySQL users in the Netherlands: The first meetup for the MySQL User Group NL is on Friday November 16th.

First meeting for MySQL User Group NL announced

  With almost 40 member the MySQL User Group NL is already a success. I've now scheduled the first meeting. It will be on Friday November 16th in Amsterdam . Please signup using the meetup.com page . Agenda (See meetup.com for latest updates) 18:00 Welcome 18:30 First presentation 19:30 Food 20:00 Second presentation I'm looking for speakers, so feel free to suggest a speaker or to volunteer to speak. More resources for this user group: LinkedIn Google+ Twitter Facebook

MySQL AutoTuner

After reading a blog post about MySQL Tuning scripts I thought about the possibility of a fully Automatic MySQL Tuner. This is how it would work: A daemon which would connect to your database server and then fetch status variables, just like mysqltuner and such. Then the daemon could decide that a parameter would need to be adjusted and then run "SET GLOBAL …" and write a /etc/mysql/autotuner.cf file which should be included in your my.cnf. It should have a min/max setting for each option and some thresholds. Why? Not everyone is a DBA It's could better than the default settings is most cases. Luckily many defaults are updated in 5.6. You're not using my-huge.cf, are you? It could help when there are changing workloads It might be sufficient for a developer environment MySQL might be embedded in a 'virtual appliance' which can be deployed on may different kinds of hardware. Why not? The risk of it taking a wrong decision is too high It migh...

Automated MySQL Master Failover

After the GitHub MySQL Failover incident a lot of blogs/people have explained that fully automated failover might not be the most optimal solution. Fully automated failover is indeed dangerous, and should  be avoided if possible. But a complete manual failover is also dangerous. A fully automated manually triggered failover is probably a better solution. A synchronous replication solution is also not a complete solution. A split-brain situation is a good example of a failure which could happen. Of course most clusters have all kinds of safe guard to prevent that, but unfortunately also safe guards can fail. Every failover/cluster should be considered broken unless: You've tested the failover scripts and procedures You've tested the failover scripts and procedures under normal load You've tested the failover scripts and procedures under high load You've tested it since the last change in the setup and/or application Someone else tested the failover scripts an...