MySQL 8.0.13 improves replication lag monitoring by extending the instrumentation for transaction transient errors. These temporary errors, which include lock timeouts caused by client transactions executing concurrently as the slave is replicating, do not stop the applier thread: instead, they cause a transaction to retry.…
A well-known performance booster in MySQL is to set sync_binlog to 0. However, this configuration alone comes with serious consequences on consistency and on durability (the C and D of ACID); I explore those in this series. In this post, I give some background on the sync_binlog parameter and I explain part of the problem with setting it to 0 (or to a value different from 1). The other
This will be a short rant: why is relay_log_space_limit still not dynamic ?
This is obviously a rhetorical question. I see no reason why this MySQL System Variable is not (yet) dynamic. Obviously, changing the value of this variable could need replication to be stopped (like for slave_parallel_type, slave_parallel_workers and slave_preserve_commit_order), but at least it would not need a MySQL
Parallel replication has been around for a few years now but is still not that commonly used. I had a customer where the master had a very large write workload. The slave could not keep up so I recommended to use parallel slave threads. But how can I measure if it really helps and is working?
At my customer the
slave_parallel_workers
was 0. But how big should I increase it, maybe to 1? Maybe to 10? There is a blog post about how can we see how many threads are actually used, which is a great help.
We changed the following variables on the slave:
slave_parallel_type = LOGICAL_CLOCK; slave_parallel_workers = 40; slave_preserve_commit_order = ON;
40 threads sounds a lot, right? Of course, this is workload specific: if the transactions are independent it might be …
[Read more]You all heard about that today AWS announced that RDS is started to support GTID Transactions. I’m a great fan of RDS but not for GTID. Since RDS has better settings and configurations to perform well. Many of you people read about the AWS What’s new page regarding GTID. But here we are going to talk about the actual benefits and drawbacks.
RDS supports GTID on MySQL 5.7.23 or later. But AWS released this version on Oct10 (two days before). So, for now, this is the only version which supports GTID.
NOTE: GTID supports only for RDS, its not
available for Aurora. It may support in future)
Update : 27 March 2019:
Aurora MySQL 5.7 supports GTID. Find the relavent
link below.
Before configuring the GTID, lets have a look at what is GTID?
- GTID stands for Global Transaction Identifier.
- It’ll generate a …
The traditional way to monitor replication in MySQL is the
SHOW SLAVE STATUS command. However as it will be
shown, it has its limitations and in MySQL 5.7 and 8.0 the MySQL
developers have started to implement the information as
Performance Schema tables. This has several advantages including
better monitoring of the replication delay in MySQL 8.0. This
blog discusses why SHOW SLAVE STATUS should be
replaced with the Performance Schema tables.
The Setup
The replication setup that will be used for the examples in this blog can be seen in the following figure.
…
[Read more]In our work, We used to get a lot of requirements for replicating data from one data source to another.Previously I wrote replication from MySQL to Red-shift.
In this blog I am going to explain about replicating the data from MySQL to Oracle using Tungsten replicator.
1.0. Tungsten Replicator :
It is an open source replication engine supports data extract from MySQL, MySQL Variants such as RDS, Percona Server, MariaDB and Oracle and allows the data extracted to be applied on other data sources such as Vertica, Cassandra, Redshift etc.
Tungsten Replicator includes support for parallel replication, and advanced topologies such as fan-in and multi-master, and can be used efficiently in cross-site deployments.
1.1.0. Architecture :
There are three major …
[Read more]MySQL supports replicating to a slave that is one release higher. This allows us to easily upgrade our MySQL setup to a new version, by promoting the slave and pointing the application to it. However, though unsupported, there are times when the MySQL version of slave deployed is one release lower. In this scenario, if your application has been performing much better on an older version of MySQL, you would like to have a convenient option to downgrade. You can simply promote the slave to get the old performance back.
The MySQL manual says that ROW based
replication can be used to replicate to a lower version, provided
that no DDLs replicated are incompatible with the slave. One such
incompatible command is ALTER USER which is a new
feature in MySQL 5.7 and not available on 5.6. :
ALTER USER …[Read more]
MySQL 5.7 and 8.0 have an issue of stopping replication on all slaves.
A colleague brought an article to my attention. I did not see it on Planet MySQL where I get most of the MySQL news (or it did not catch my eye there). As it is interesting replication stuff, I think it is important to bring it to the attention of the MySQL Community, so I am writing this short post.
The surprising part for me is that it uses my 4-year-old work for online migration to GTID