In the MySQL world, I am surrounded by some of the best database consultant, it brings them immense joy about having a “Friday”, so much so that they cannot believe that it actually is a Friday. Regardless of what they see on their watches and calendars, it becomes a crucial task of the day to prove it. Prove it technically that it actually is a Friday. This blog post is my attempt to share the proofs of existence of a “Friday”. Using MySQL datetime function: dayname Running system command from MySQL prompt Using ntpd service with shell script and cowsay...
From MySQL 5.7, we had a Multi-threaded Slave (MTS) Applier
LOGICAL_CLOCK to overcome the
problems of parallel replication within a database.
To further improve the parallelisation mechanism, from MySQL 8 (5.7.22) we have write-set replication, so before going further , lets look at the difference between Logical clock (LC) and Writeset.
Transactions that are part of the same binary log group commit on a master are applied in parallel on a slave. The dependencies between transactions are tracked based on their timestamps to provide additional parallelisation where possible.
Write-set is a mechanism to track independent
transactions that can be executed in parallel in the slave.
Parallelising on write sets has potentially much more parallelism
logical_clock ,since it does not depend …
We have many ways to install MySQL on linux machines such as source, binary and so on. But most of the Engineers always prefer default package managers (yum for RPM-Based distributions and apt for DPKG-Based distributions) for its ease of use and it can resolve all dependencies on its own. And of course, it is not possible to use package managers in environments where the internet is not allowed, but this is a different case.
At some point, we need to install exactly specific version of MySQL for the following cases
- To create Production Replicas
- To simulate an Production Issue on similar kind of environment
- To configure Disaster Recovery(DR)/UAT Setup
- Compatibility with opensource tools ( Eg , …
We will have a look at a new feature in MySQL 8.0 called binlog encryption. This feature is available from the MySQL version 8.0.14 or above.
The binary log records changes made to the databases so that it can be used to replicate the same to the slaves and also for the point in time recovery (PITR). So, it means that if someone has access to the binary logs, they can reproduce our entire database in many forms. As a DBA, we need to make sure that the binary log files are protected from users who are having access to the file system and also, log files need …[Read more]
In my previous blog, I have explained how the MySQL clone plugin works internally. In this blog, I am going to do a comparison of Backup and Recovery speed of MySQL clone plugin with other available mysql open source backup tools.
Below tools are used for speed comparison of Backup and Recovery,
Test …[Read more]
… or what I should keep in mind in case of disaster
To retrieve and maintain in SQL format the definition of all tables in a database, is a best practice that we all should adopt. To have that under version control is also another best practice to keep in mind.
While doing that may seem redundant, it can become a life saver in several situations. From the need to review what has historically changed in a table, to knowing who changed what and why… to when you need to recover your data and have your beloved MySQL instance not start…
But let’s be honest, only a few do the right thing, and even fewer keep that information up to date. Given that’s the case, what can we do when we have the need to discover/recover the table structure?
From the beginning, MySQL has used some external files to describe its internal structure.
For instance, if I have a schema named windmills and a table …[Read more]
With the next version of MySQL that is MySQL 8, there is a very
nice feature of creating "roles" which can be assigned
certain privileges and then these roles can be assigned to users,
thus helping us in maintaining the principle of least
It makes our life as developers and DBAs easier as we do not have to remember what are the specific privileges assigned to different users. These "roles" can simply be assigned or de-assigned from users as necessary.
The setup process is pretty easy and intuitive.
1. Create Role:
CREATE ROLE 'read', 'write', 'read_write';
Which essentially creates a set of named roles which do not have any privileges assigned to them, as yet. …
Friday afternoon is always ideal for a quick look at the early quality of MySQL 8.0! Last Friday, I did just that.
If you haven’t heard the news yet, MySQL 8.0 DMR is available for download on mysql.com!
Tools to the ready: pquery2, updated 8.0 compatible scripts in Percona-qa and some advanced regex to wade through the many cores generated by the test run. For those of you who know and use pquery-run.sh, this should mean a lot!
[09:41:50]  ====== TRIAL …[Read more]
If you haven’t heard the news yet, MySQL 8.0 is apparently the next release of the world-famous database server.
Obviously abandoning plans to name the next release 5.8, Percona Server’s upstream provider relabelled all 5.8-related bugs to 8.0 as follows:
Reported version value updated to reflect release name change
from 5.8 to 8.0
What will MySQL 8.0 bring to the world?
While lossless RBR has been suggested by Simon Mudd (for example), the actual feature list (except a Boost 1.60.0 upgrade!) remains a secret.
As far as bug and feature requests go, a smart google query revealed which bugs are likely …[Read more]