You might already have seen the announcement of the MySQL InnoDB Cluster Release Candidate (RC), available for download from our MySQL APT (Ubuntu, Debian) and YUM (Redhat, OEL, Fedora) repositories and from dev.mysql.com. As usual, this releases contains the following three components.…
MySQL Cluster is a highly available, distributed, shared-nothing database with very interesting performance characteristics for some workloads. Among other features, it supports automatic sharding and allows us to bypass the SQL layer if we don’t need it, via the NDB API (which in my eyes, makes it one of the few transactional nosql databases out there).
In this post, I’ll describe how we can set up replication from MySQL Cluster into a standalone MySQL server using Innodb as the storage engine.
Introduction
There are a few reasons to set up replication between MySQL Cluster and a non-NDB based MySQL server. These reasons include (but are not limited to): the need …
[Read more]UPDATE: Some of the language in the original post was considered overly-critical of Oracle by some community members. This was not my intent, and I’ve modified the language to be less so. I’ve also changed term “synchronous” (which the use of is inaccurate and misleading) to “virtually synchronous.” This term is more accurate and already used by both technologies’ founders, and should be less misleading.
I also wanted to thank Jean-François Gagné for pointing out the incorrect sentence about multi-threaded slaves in Group Replication, which I also corrected accordingly.
In today’s blog post, I will briefly compare two major virtually synchronous replication technologies available today for MySQL.
More Than Asynchronous Replication
…
[Read more]
Sometimes MySQL surprises you in ways you would have never
imagined.
Would you think that the order in which the indexes appear in a
table matters?
It does. Mind you, not the order of the columns - the order of
the indexes.
MySQL optimizer can, in specific circumstances, take different
paths, sometimes with nefarious effects.
Please consider the following table:
CREATE TABLE `mypartitionedtable ` (
`HASH_ID` char(64) NOT NULL,
`RAW_DATA` mediumblob NOT NULL,
`EXPIRE_DATE` timestamp NOT NULL DEFAULT
CURRENT_TIMESTAMP,
KEY `EXPIRE_DATE_IX` (`EXPIRE_DATE`),
KEY `HASH_ID_IX` (`HASH_ID`)
) ENGINE=TokuDB DEFAULT CHARSET=latin1
ROW_FORMAT=TOKUDB_UNCOMPRESSED
/*!50100 PARTITION BY RANGE (UNIX_TIMESTAMP(EXPIRE_DATE))
(PARTITION p2005 VALUES LESS THAN (1487847600) ENGINE = …
In this blog post, we’ll look at a workaround for MySQL bug 72804.
Recently I worked on a ticket where a customer performed a point-in-time recovery PITR using a large set of binary logs. Normally we handle this by applying the last backup, then re-applying all binary logs created since the last backup. In the middle of the procedure, their new server crashed. We identified the binary log position and tried to restart the PITR from there. However, using the option
--start-position
, the restore failed with the error “The BINLOG statement of type
Table_map
was not preceded by a format description
BINLOG statement.” This is a known bug and is reported as MySQL
…
This blog we describe an issue with MySQL 5.7’s super_read_only feature when used alongside with GTID in chained slave instances.
Background
In MySQL 5.7.5 and onward introduced the
gtid_executed
table in the MySQL database to store
every GTID. This allows slave instances to use the GTID feature
regardless whether the binlog option is set or not. Here is an
example of the rows in the gtid_executed
table:
mysql> SELECT * FROM mysql.gtid_executed; +--------------------------------------+----------------+--------------+ | source_uuid | interval_start | interval_end | …[Read more]
In this blog, we’ll discuss how to use concurrency to help with WAN latency when using synchronous clusters.
WAN Latency Problem
Our customers often ask us for help or advice with WAN clustering problems. Historically, the usual solution for MySQL WAN deployments is having the primary site in one data center, and stand-by backup site in another data center (replicating from the primary asynchronously). These days, however, there is a huge desire to employ available synchronous replication solutions for MySQL. These solutions include things like Galera (i.e., Percona XtraDB Cluster) or the recently released MySQL Group Replication. This trend is attributable to the fact that these solutions are less problematic and provide more automatic fail over and fail back procedures. But it’s also because businesses want to write in both data centers simultaneously.
Unfortunately, WAN link reliability and latency makes …
[Read more]I will be heading to Brussels on Friday for FOSDEM.
On Friday, February 3rd, I will attend the Pre-FOSDEM MySQL Day where I will give two talks:
How Booking.com avoids and deals with replication lag (at 12:05), Monitoring Booking.com without looking at MySQL (at 15:30).
(A summary of those talks can be found in Le Fred's blog.)
Then, on Saturday, February 4th, I have a talk in the MySQL
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.
Installation
To this extent, I will set up two clusters using MySQL-Sandbox. The instructions for MGR in …
[Read more]Join Percona’s Chief Evangelist Colin Charles on Wednesday, January 18, 2017, at 7:00 am (PST) / 10:00 am (EST) (UTC-8) as he presents “Lessons from Database Failures.”
MySQL failures at scale can teach a great deal. MySQL failures can lead to a discussion about such topics as high availability (HA), geographical redundancy and automatic failover. In this webinar, Colin will present case study material (how automatic failover caused Github to go offline, why Facebook uses assisted failover rather than fully automated failover, and other scenarios) to look at how the MySQL world is making things better. One way, for example, is using …
[Read more]