Amazon EBS volumes come with a very cool feature called "lazy
loading". In a nutshell: if a volume is created from an existing
snapshot, it can become available almost immediately without
waiting for all data to be restored. This allows for extremely
fast provisioning of large data sets as long as you don't
explicitly require the entire data set to be present before you
start using it.
When an EBS volume is restored from snapshot, its blocks are
fetched from Amazon S3. It happens either lazily in the
background or explicitly on demand (think of a pagefault-like
mechanism) and of course, fetching pieces of data from Amazon S3
is going to be one-two orders of magnitude slower than reading
blocks directly from a volume.
In this short article, I will try to give you an idea of how this
may impact the crash recovery time of your MySQL databases. Why
talk about this? Depending on the workload and data set layout,
crash recovery of a MySQL …
I am always fascinated about the cleanliness of UNIX . One tool only should do one thing, but it has to be the best in that way. The operating system itself will glue all the modules together and give you a complex feel of a system, you don’t have to take care of huge, bloated software, don’t […]
The client library — libmysqlclient — is part of the same source code repository as the server. It comes both as a dynamic link library (.so), also called a shared library, and as a static link library (.a). During the 5.7 development cycle, we’ve made several improvements to the library, which has resulted in a bump from ABI version 18 to version 20.…
In this blog article we will show you how to install AutoMySQLBackup on a Linux VPS. AutoMySQLBackup is very useful utility for creating daily, weekly or monthly backups of one or more MySQL databases from one of more MySQL servers. It dumps the databases and compress them in to archives.it comes with many features such as: Email notification of backups Backup Compression and Encryption Configurable backup rotation Incremental database backups As usual, log in to your server as user root ssh root@IP and execute the following command to make sure that all services ar up to […]
It goes without saying that crash recovery of busy MySQL servers
(and many other RDBMS for that matter) is not an extremely quick
process. In MySQL context, one of the worst case scenarios is
when the server is used for multi-tenant application hosting i.e.
when the MySQL instance contains hundreds or thousands of schemas
and (tens/hundreds of) thousands of tablespaces. In such
scenario, the server may spend a considerable amount of time in
the tablespace discovery phase, during which MySQL
builds a mapping between tablespace IDs and names of actual
tablespace files on disk.
MySQL 5.7 promises to put an end to tablespace discovery. The
documentation lists the following improvements introduced in
versions 5.7.5 and up:
- Elimination of file system scans prior to redo log application. The MLOG_FILE_NAME redo log …
MySQL 5.7 is GA and has over than 150 new features. One of them is a Native JSON Data Type and JSON Functions: "Allows for efficient and flexible storage, search and manipulation of schema-less data. Enhancements include a new internal binary format, support for easy integration within SQL, and index management on the JSON Documents using generated columns".
With MySQL, it is relatively easy to create “point in time” restores. All you need is recent(ish) backup and a bunch of saved binary logs. You can restore the backup you have, and when it is completed, you can use mysqlbinlog utility to apply your saved binary logs to the desired state of your database.
I have created a simple go application to make your life easier. You can find it on my GitHub page.
The app works as reading its config file for the MySQL server connection credentials, a local directory where the binary logs will be kept, and the will path of the mysqlbinlog utility.
- It checks the binlogs on the remote server which able to streamed
- Checks the local directory where the binlogs are kept, to check which logs are already there
- The incomplete (file size differs local and on remote server) files will be …
Recently my colleague (by Percona) Yves Trudeau and
colleague (by industry) Marco Tusa
published their materials on Amazon Aurora. Indeed, Amazon
Aurora is a hot topic these days, and we have a stream of
customer inquiries regarding this technology. I’ve decided to
form my own opinion, and nothing is better than a personal,
hands-on experience, which I am going to share.
The materials I will refer to:
- [1] Presentation from Amazon Re:Invent: …
With MySQL it is relatively easy to create point in time restores. All you need is a recent(ish) backup, and a bunch of saved binary logs. You can restore the backup you have, and when it is completed, you can use mysqlbinlog utility to apply your saved binary logs to the desired state of your database. I […]
Previous episodes:
- MySQL-Docker operations. - Part 1: Getting started with MySQL in Docker.
- MySQL-Docker operations. - Part 2: Customizing MySQL in Docker.
- MySQL-Docker operations. - Part 3: MySQL replication in Docker.
We're going to explore the choices and the differences between various types of deployments. We will consider four use cases:
- [Friendly]: Testing an application on a server where a different version of the same application is already installed (examples: a Python app requiring many …