What happens when your application cannot open yet another connection to MySQL
Have you ever experienced a situation where one moment you can connect to the MySQL database and the next moment you cannot, only to be able to connect again a second later? As you may know one cannot...
View ArticleMySQL 5.6 Transportable Tablespaces best practices
In MySQL 5.6 Oracle introduced a Transportable Tablespace feature (copying tablespaces to another server) and Percona Server adopted it for partial backups which means you can now take individual...
View ArticleRecover MySQL root password without restarting MySQL (no downtime!)
Disclaimer: Do this at your own risk! It doesn’t apply if you’re using Pluggable authentication and certainly won’t be usable if/when MySQL system tables are stored on InnoDBRecover your root password...
View ArticleInnoDB’s multi-versioning handling can be Achilles’ heel
I believe InnoDB storage engine architecture is great for a lot of online workloads, however, there are no silver bullets in technology and all design choices have their trade offs. In this blog post...
View ArticleMaking HAProxy 1.5 replication lag aware in MySQL
HAProxy is frequently used as a software load balancer in the MySQL world. Peter Boros, in a past post, explained how to set it up with Percona XtraDB Cluster (PXC) so that it only sends queries to...
View ArticleFile carving methods for the MySQL DBA
This is a long overdue blog post from London’s 44con Cyber Security conference back in September. A lot of old memories were brought to the front as it were; the one I’m going to cover in this blog...
View ArticleInnoDB crash recovery speed in MySQL 5.6
It has been a while since I have looked at InnoDB crash recovery. A lot has change in the last few years – we have serious crash recovery performance improvements in MySQL 5.5 and MySQL 5.6, we have...
View ArticleHow well does your table fit in the InnoDB buffer pool in MySQL 5.6+?
Some time ago, Peter Zaitsev posted a blog titled “How well does your table fits in innodb buffer pool?” He used some special INFORMATION_SCHEMA tables developed for Percona Server 5.1 to report how...
View ArticleUsing YUM to install specific MySQL/Percona Server versions
Sometimes it is desired to use particular software versions in production, and not necessary the latest ones. There may be several reasons for that, where I think the most common is when a new version...
View ArticleGetting mutex information from MySQL’s performance_schema
We have been using SHOW ENGINE INNODB MUTEX command for years. It shows us mutex and rw-lock information that could be useful during service troubleshooting in case of performance problems. As Morgan...
View ArticleHyper-threading – how does it double CPU throughput?
The other day a customer asked me to do capacity planning for their web server farm. I was looking at the CPU graph for one of the web servers that had Hyper-threading switched ON and thought to...
View ArticleIdentifying useful info from MySQL row-based binary logs
As a MySQL DBA/consultant, it is part of my job to decode the MySQL binary logs – and there are a number of reasons for doing that. In this post, I’ll explain how you can get the important information...
View ArticleImporting big tables with large indexes with Myloader MySQL tool
Mydumper is known as the faster (much faster) mysqldump alternative. So, if you take a logical backup you will choose Mydumper instead of mysqldump. But what about the restore? Well, who needs to...
View ArticlePercona University: Back to school Feb. 12 in Raleigh, N.C.
Percona CEO Peter Zaitsev leads a track at the inaugural Percona University event in Raleigh, N.C. on Jan. 29, 2013.About two years ago we held our first-ever Percona University event in Raleigh, N.C....
View ArticleMulti-threaded replication with MySQL 5.6: Use GTIDs!
MySQL 5.6 allows you to execute replicated events in parallel as long as data is split across several databases. This feature is named “Multi-Threaded Slave” (MTS) and it is easy to enable by setting...
View ArticleThe future of MySQL quality assurance: Introducing pquery
Being a QA Engineer, how would you feel if you had access to a framework which can generate 80+ crashes – a mix of hitting developer introduced assertions (situations that should not happen), and...
View ArticleOnline GTID rollout now available in Percona Server 5.6
Global Transaction IDs (GTIDs) are one of my favorite features of MySQL 5.6. The main limitation is that you must stop all the servers at the same time to allow GTID-replication. Not everyone can...
View ArticleUsing MySQL Event Scheduler and how to prevent contention
MySQL introduced the Event Scheduler in version 5.1.6. The Event Scheduler is a MySQL-level “cron job”, which will run events inside MySQL. Up until now, this was not a very popular feature, however,...
View ArticleWorrying about the ‘InnoDB: detected cycle in LRU for buffer pool (…)’ message?
If you use Percona Server 5.5 and you have configured it to use multiple buffer pool instances than sooner or later you’ll see the following lines on the server’s error log and chances are you’ll be...
View Article3 handy tools to remove problematic MySQL processes
DBAs often encounter situations where they need to kill queries to ensure there are no long-running queries on a MySQL server that would impact performance. Long-running queries can be the result of...
View Article