A Useful GTID Feature for Migrating to MySQL GTID Replication –...
In managed services, we get requests to migrate from traditional to GTID-based replication. However, the customer does not want to first enable the GTID on the source node (production). Before MySQL...
View ArticleMissing Library: A pg_upgrade History
While working as a DBA, we perform many regular tasks, and one of them is upgrading our database systems. There are some techniques to perform a PostgreSQL database upgrade, such as data dump and...
View ArticleTable Doesn’t Exist: MySQL lower_case_table_names Problems
In Managed Services, we have many customers, and as each has a different kind of config and environment, working on their environment is always fun and interesting. In this blog post, I will showcase...
View ArticleDeep Dive into MySQL’s Performance Schema
Recently I was working with a customer wherein our focus was to carry out a performance audit of their multiple MySQL database nodes. We started looking into the stats of the performance schema. While...
View ArticleSpeed Up of the WAL Archiving in PostgreSQL 15
Last time I blogged about the New WAL Archive Module/Library feature available in PostgreSQL 15, which is quite transformative in how WALs are archived today in PostgreSQL. PostgreSQL 15 has many more...
View ArticleDuplicate, Redundant, and Invisible Indexes
MySQL index is a data structure used to optimize the performance of database queries at the expense of additional writes and storage space to keep the index data structure up to date. It is used to...
View ArticleTale of a MySQL 8 Upgrade and Implications on Backup
Recently, we performed a database engine major version upgrade in one of our customers’ environments from MySQL 5.7.26 to 8.0.27. After this version upgrade, we experienced issues with backups and...
View ArticlePostgreSQL Vacuuming to Optimize Database Performance and Reclaim Space
In PostgreSQL, vacuuming is a maintenance task that helps to optimize database performance and reclaim space. It involves removing deleted or outdated rows from tables and indexes and updating...
View ArticleQuick Data Archival in MySQL Using Partitions
Space constraint has been an endless and painstaking process for many of us, especially in systems that have a high number of transactions and data growth exceeding hundreds of GBs in a matter of days....
View ArticleCOUNT(*) vs COUNT(col) in MySQL
Looking at how people are using COUNT(*) and COUNT(col), it looks like most of them think they are synonyms and just use what they happen to like, while there is a substantial difference in performance...
View ArticleUpgrading PostgreSQL Extensions
PostgreSQL is a powerful and flexible open-source database management system that allows users to install and use extensions to add additional functionality to their databases. In this tutorial, we...
View ArticleFaster, Cheaper, and More Reliable Incremental Backups for MongoDB
MongoDB is a great database that provides outstanding high availability solutions out of the box. For most Database Administrators (DBAs) we talk with, though, the awesome safety features we came to...
View ArticleThe Ultimate Guide to Database Corruption: Part 2 – B-Tree Index Corruption
This blog is in continuation of my previous blog on the basic understanding of corruption with the subject line The Ultimate Guide to Database Corruption: Part 1 – An Overview. If you have not already...
View ArticleWhy MySQL Could Be Slow With Large Tables
16 years ago, our founder Peter Zaitsev covered this topic and some of the points described there are still valid, and we will cover more on this blog. While the technologies have evolved and matured...
View ArticleA Quick Peek at MySQL 8.0.32
Recently Oracle released new versions of their software and there are some things of note. MySQL 8.032 is not a major change but you do need to be aware of some changes just in case they have the...
View ArticleHelp! I Am Out of Disk Space!
How can we fix a nasty out-of-space issue leveraging the flexibility of Percona Operator for MySQL? When planning a database deployment, one of the most challenging factors to consider is the amount of...
View Article[BUG] Stopping Purge/Resuming Purge in Error Logs After Upgrade to MySQL 5.7.40
We had a couple of cases where clients reported that the MySQL error log was flooded with the below note:2023-01-18T13:07:56.946323Z 2 [Note] InnoDB: Stopping purge 2023-01-18T13:07:56.948621Z 2 [Note]...
View ArticleWorking of MySQL Replication Filters When Using Statement-based and Row-based...
A couple of days ago I was creating an index on the source and when I checked the replica side it was not replicated, so I just wanted to explain how the replication filter may increase the complexity...
View ArticleWAL Compression in PostgreSQL and Recent Improvements in Version 15
Attempts to compress PostgreSQL WAL at different levels have always been around since the beginning. Some of the built-in features (wal_compression) have been there since 2016, and almost all backup...
View ArticleIdentify Active Databases and Users in MySQL
Database administrators often need to identify inactive databases and users to save resources. This can be done using various methods to determine which databases and users are frequently accessed. We...
View Article