Based on MySQL 5.7.17, including all the bug fixes in it, Percona Server for MySQL 5.7.17-11 is the current GA release in the Percona Server for MySQL 5.7 series. Percona’s provides completely open-source and free software. Find release details in the …[Read more]
10 Older Entries »
In my previous post, we saw the usage of MySQL Group Replication (MGR) in single-primary mode. We know that Oracle does not recommends using MGR in multi-primary mode, but there is so much in the documentation and in presentations about MGR behavior in multi-primary, that I feel I should really give it a try, and especially compare this technology with the already existing multiple master solution introduced in 5.7: multi-source replication.
To this extent, I will set up two clusters using MySQL-Sandbox. The instructions for MGR in …[Read more]
MySQL Group Replication was released as GA with MySQL 5.7.17. It is essentially a plugin that, when enabled, allows users to set replication with this new way.
There has been some confusion about the stability and usability of this release. Until recently, MySQL Group Replication (MGR) was only available in the Labs, which traditionally denotes a preview or an use-at-your-own-risk feature. Several months ago we saw the release of Group Replication as a Docker image, which allowed users to deploy a peer-to-peer cluster (every node is a master.) However, about one month after such release, word came from Oracle discouraging this setup, and inviting users to use Group Replicator in …[Read more]
Up to version 5.7, MySQL had a limitation that made it impossible to directly exchange partitions between partitioned tables. Now and then, we get questions about how to import an .ibd for use as a partition in a table, as well as how to exchange partitions with another partitioned table. Below is step-by-step instructions on how to move a partition from one table to another.
In this example, one of our customers had two tables with the following structures:
CREATE TABLE live_tbl ( some_id bigint(20) NOT NULL DEFAULT '0', summary_date date NOT NULL, PRIMARY KEY (some_id,summary_date) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci /*!50500 PARTITION BY RANGE …[Read more]
Today’s blog post is related again to MySQL Group Replication.
By default MySQL Group Replication runs in Single-Primary mode. And it’s the best option and the option you should use.
But sometimes it might happen that in very specific cases you would like to run you MGR Cluster in Multi-Primary mode: writing simultaneously on all the nodes member of the Group.
It’s of course feasible but you need to make some extra verification as not all workload are compatible with this behavior of the cluster.
The requirements are the same as those for using MGR in Single-Primary mode:
- InnoDB Storage Engine
- Primary Keys
- IPv4 Network
- Binary Log Active
- Slave Updates Logged
- Binary …
It's time to summarize the year of 2016. As a kind of a weird
summary, in this post I'd like to share a list of MySQL bug
reports I've created in 2016 that are still remaining "Verified"
- Bug #79831 - "Unexpected error message on crash-safe slave with max_relay_log_size set". According to Umesh this is not repeatable with 5.7. The fact that I've reported the bug on January 4 probably means I was working at that time. I should not repeat this mistake again next year.
- Bug #80067 - "Index on BIT column is NOT used when column name only is used in WHERE clause". People say the same problem happens with INT and, what may be even less expected, BOOLEAN columns.
In a previous article, Ovais demonstrated how a DDL can render a table blocked from new queries. In another article, Valerii introduced performance_schema.metadata_locks, which is available in MySQL 5.7 and exposes metadata lock details. Given this information, here’s a quick way to troubleshoot metadata locks by creating a stored procedure that can:
- Find out which thread(s) have the metadata lock
- Determine which thread has been waiting for it the longest
- Find other threads waiting for the metadata lock
Setting up …[Read more]
Today in our series of articles related to MySQL Group Replication’s limitations, let’s have a quick look at Savepoints.
The manual is clear about this: Transaction savepoints are not supported.
The first thing to check then is if the application that will use our MySQL Group Replication Cluster is currently using savepoints.
We have two ways to find this, the first is using STATUS variables:
mysql> show global status like '%save%'; +----------------------------+-------+ | Variable_name | Value | +----------------------------+-------+ | Com_release_savepoint | 2 | | Com_rollback_to_savepoint | 0 | | Com_savepoint | 4 | | Handler_savepoint | 0 | | Handler_savepoint_rollback | 0 | +----------------------------+-------+…[Read more]
Today’s article is about the first two restrictions in the requirements page of the manual:
- InnoDB Storage Engine: data must be stored in the InnoDB transactional storage engine.
- Primary Keys: every table that is to be replicated by the group must have an explicit primary key defined.
So the first requirement is easy to check by a simple query that list all the non InnoDB tables:
SELECT table_schema, table_name, engine, table_rows, (index_length+data_length)/1024/1024 AS sizeMB FROM information_schema.tables WHERE engine != 'innodb' AND table_schema NOT IN ('information_schema', 'mysql', 'performance_schema');
The second one is a bit more tricky. Let me show you first how Group Replication behaves:
Case 1: no keys
Let’s create a table with no …[Read more]
In this article, I will show you how it’s possible to perform an online migration from a 3 members Galera cluster setup (in this case I’m using PXC 5.7.14) to a 3 members MySQL Group Replication cluster setup (MySQL Community 5.7.17).
Don’t forget that before adopting Group Replication as database backend, you should validate that your application do match GR requirements and limitations. When this is validated, you can start !
So first, let’s have a look at the current situation:
We have an application (sysbench 0.5), reading and writing to a Galera Cluster ( …[Read more]
10 Older Entries »