Group replication is a fault-tolerant/highly available replication topology that ensures if the primary node goes down, one of the other candidates or secondary members takes over so write and read operations can continue without any interruptions. However, there are some scenarios where, due to outages, network partitions, or database crashes, the group membership could be broken, or we end […]
Flow control is not a new term, and we have already heard it a lot of times in Percona XtraDB Cluster/Galera-based environments. In very simple terms, it means the cluster node can’t keep up with the cluster write pace. The write rate is too high, or the nodes are oversaturated. Flow control helps avoid excessive […]
TL;DR: Make sure to run “SET persist_only disabled_storage_engines=’MyISAM’, persist sql_generate_invisible_primary_key=ON;” on all instances and restart each one in your MySQL InnoDB Cluster.
Ok, what does “safe from naughtiness” mean?:
– Anyone creating tables that aren’t InnoDB, as this doesn’t make
sense, after all, it is an “InnoDB” cluster.
– Making sure all tables have a Primary Key (invisible or
not).
– Making sure that my (invisible) primary keys are visible to the
cluster as it will rightfully complain if they aren’t!
This basically means that once you’ve got it all up and running you won’t run into those horrible situations whereby someone, somewhere, creates a MyISAM table that didn’t have a Primary Key and thus leave you with a broken cluster.
Eg.
MySQL rtnode-01:3306 ssl JS > vlc.status()
{
"clusterName": "VLC",
"clusterRole": "PRIMARY", …
[Read more]
Maintaining a production dataset at a manageable size can present a considerable challenge during the administration of a MySQL InnoDB Cluster.
Old Days
Back in the day when we only had one main copy of our data (the
source), and one read copy (the replica) that we used to look at
current and old data from our main system, we used a special
trick to remove data without affecting the replica. The trick was
to turn off writes to the binary log for our removal commands in
the main system. External tools like pt-archiver were also able to use that trick. To
stop bypass writing into the binary log, we used the command:
SET SQL_LOG_BIN=0
.
This mean that on the main production server (replication source), we were purging the data without writing the delete operation into the binary logs:
Current Days
These …
[Read more]When working with group replication, MySQL router would be the obvious choice for the connection layer. It is tightly coupled with the rest of the technologies since it is part of the InnoDB cluster stack.The problem is that except for simple workloads, MySQL router’s performance is still not on par with other proxies like Haproxy […]
Many of us, old MySQL DBAs used
Seconds_Behind_Source
from SHOW REPLICA
STATUS
to find out the status and correct execution of
(asynchronous) replication.
Please pay attention of the new terminology. I’m sure we’ve all used the old terminology.
However, MySQL replication has evolved a lot and the replication team has worked to include a lot of useful information about all the replication flavors available with MySQL.
For example, we’ve added parallel replication, group replication,
… all that information is missing from the the good old
SHOW REPLICA STATUS
result.
There much better ways to monitoring and observing the
replication process(es) using Performance_Schema
.
Currently in Performance_Schema
, there are 15 tables
relating to replication instrumentation:
+------------------------------------------------------+
| …
[Read more]
To continue our journey to Moodle on Oracle Cloud Infrastructure using Ampere compute instances and MySQL HeatWave Database Service [1] [2], in this article we will see how to scale our architecture using multiple Moodle instances, High Availability for the Database and Read Scale-Out.
This is the architecture we will deploy:
The same principles can be applied to other projects, not just Moodle.
Multiple Compute Instances & MySQL HeatWave High Availability
The first step is to use again the Stack to deploy the initial resources. We must insure that we use a MySQL Shape that has at least 4 OCPUs …
[Read more]In the previous post, we saw how to quickly deploy Moodle to Oracle Cloud Infrastructure on Ampere compute instances and using MySQL HeatWave.
In this post, we will explore some other features and the benefits of running on OCI and MySQL HeatWave to extend our architecture dedicated to Moodle in the Cloud.
Read Replicas
Moodle natively offers the possibility of distributing the load between reads and writes. When using MySQL HeatWave Database Service, adding read replicas is also a very easy task. Let’s see how we can benefit from it.
To be able to use MySQL HeatWave Read Replicas, the MySQL shape must have at least 4 OCPUs.
Let’s modify the moodle stack and deploy it again but this time we choose a bigger shape for MySQL:
When everything is ready, …
[Read more]Learn how to seamlessly add a new node to MySQL Group Replication from a backup. Scale your cluster, save time, and efficiently manage data updates and recoveries.
We highly recommend checking out our previous blog post on …
[Read more]Update June 12, 2023: This component has been deprecated in v17 and will be removed in v18! We recommend that you instead use VTOrc with the semi_sync durability policy. Introduction # MySQL group replication is a new replication mechanism that was released in 2016. Group replication involves establishing a group of nodes that are coordinated automatically via Group Communication System (GCS) protocols, an implementation of Paxos. For a transaction to commit, a majority of the group has to agree on the order of a given transaction in the global sequence of transactions.