In this blog post, we’ll look at how to create PMM custom graphs and dashboards to track what you need to see in your database. Percona Monitoring and Management (PMM)‘s default set of graphs is pretty complete: it covers most of the stuff a DBA requires to fully visualize database servers. However, sometimes custom information […]

In this blog post, we’ll look at how to use Prometheus to check for auto_increment value exhaustion. One of the proactive tasks DBAs perform is checking if a field defined as auto_increment is about to reach the maximum allowed value of the int definition. For example, if a field is defined as smallint unsigned and […]

This post discusses enabling and disabling jemalloc on Percona Server for MySQL. The benefits of jemalloc versus glibc for use with MySQL have been widely discussed. With jemalloc (along with Transparent Huge Pages disabled) you have less memory fragmentation, and thus more efficient resource management of the available server memory. For standard installations of Percona Server 5.6+ […]

In this blog, we’ll discuss changing the tablespace directory using pt-online-schema-change. One of the most annoying situations in the life of a DBA is realizing that the disk where the datadir resides is running out of space. If you’re lucky enough to run over an LVM volume or a RAID (depending on the level, though), it […]

In this blog post, we’ll look at some of the basic housekeeping steps for MySQL indexes. We all know that indexes can be the difference between a high-performance database and a bad/slow/painful query ride. It’s a critical part that needs deserves some housekeeping once in a while. So, what should you check? In no particular order, […]

Errant transactions are a major issue when using GTID replication. Although this isn’t something new, the drawbacks are more notorious with GTID than with regular replication. The situation where errant transaction bites you is a common DBA task: Failover. Now that tools like MHA have support for GTID replication (starting from 0.56 version), this protocol […]

I love graphs. They just make things easier when it comes to finding patterns. I also love visibility. Having the ability to known what is going on inside the database is priceless. How about having visibility of the slow queries execution time on a graph? Let’s do it. We’ve already described how to get query […]

Query analysis is a fantastic path in the pursuit to achieve high performance. It’s also probably the most repeated part of a DBA’s daily adventure. For most of us, the weapon of choice is definitely pt-query-digest, which is one of the best tools for slow query analysis out there. Why not use pt-query-digest? Well, sometimes […]

Capturing data is a critical part of performing a query analysis, or even just to have an idea of what’s going on inside the database. There are several known ways to achieve this. For example: Enable the General Log Use the Slow Log with long_query_time = 0 Capture packets that go to MySQL from the network […]

Thanks to all who attended my webinar Introduction to MySQL SYS Schema. This blog is for me to address the extra questions I didn’t have time to answer on the stream. Can i have the performance_schema enabled in 5.6 and then install the sys schema? Or they are one and the same? You need to […]