How we manage WordPress website with Terraform, Chef and GitHub
Our website twindb.com is built on WordPress software and has always been. A while ago we decided the website needs a better look. But not only that. Managing our old website was quite laborious and manual process which goes strongly against our culture at TwinDB to do things right. Few weeks ago we migrated to […]
Logical MySQL Backup Tool Mydumper 0.9.1 Packages
The latest Mydumper 0.9.1 version has been around for a while, but we didn’t get to build packages for it. New features and bug fixes were announced in Mydumper 0.9.1 Release Note. Briefly, the new features are: Full schema support for Mydumper/Myloader Locking reduce options GTIDs and Multisource Slave Myloader single database restore Bug fixes Good news […]
How we use ProxySQL Tools
When we started working with a customer they asked us to setup for them more reliable and performant MySQL database. At the time they were using Percona XtraDB cluster with ELB to balance read traffic between PXC nodes. There was no writer redundancy – if a writer node was down, the app was down. The […]
How to Backup MySQL 5.7
If you ever tried to backup MySQL 5.7 with Percona Xtrabackup that comes in percona-xtrabackup package most likely you got error message like this:
# innobackupex ./
170623 05:58:43 innobackupex: Starting the backup operation
IMPORTANT: Please check that the backup run completes successfully.
At the end of a successful backup run innobackupex
prints "completed OK!".
170623 05:58:44 version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup' as 'dba' (using password: YES).
170623 05:58:44 version_check Connected to MySQL server
170623 05:58:44 version_check Executing a version check against the server...
170623 05:58:44 version_check Done.
170623 05:58:44 Connecting to MySQL server host: localhost, user: dba, password: set, port: not set, socket: not set
Error: Unsupported server version: '5.7.18-15'. Please report a bug at https://bugs.launchpad.net/percona-xtrabackup
This happens because percona-xtrabackup actually installs version 2.3 that doesn’t support MySQL 5.7. To take copies from MySQL 5.7 you need to use Percona XtraBackup version 2.4 and higher. Starting from […]
RDS vs. Aurora vs. EC2 Benchmark
Originally, the goal of the benchmark is to compare performance and price/performance of Amazon RDS (Aurora) and MySQL server running on an EC2 instance.
How To Encrypt MySQL Backups on S3
TwinDB Backup supports encrypted backup copies since version 2.11.0. As usual the tool supports natively backup and restore operations, if backup copies are encrypted the tool takes care of decryption.
Building RPM On Travis-CI In Docker Containers
Travis-CI is a crucial component of Continuous Integration/Continuous Deployment. We use it a lot to run unit tests and build/upload Python modules. Recently I had to solve a problem of building RPMs on Travis-CI with Docker containers. In this post I will describe step-by-step how to do that. We distribute our backup tool as RPM packages […]
Show Differences Found by Pt-Table-Checksum
First of all,pt-table-checksum is perfect for checking if the master and its slaves are in-sync. It answers the question “Are the slaves consistent with the master?”. However, if they’re not, pt-table-checksum doesn’t actually tell you what exactly is wrong.
[root@master vagrant]# pt-table-checksum -q
TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE
09-03T22:21:10 0 1 2 1 0 0.013 mysql.proxies_priv
09-03T22:21:10 0 1 9 1 0 0.010 mysql.user
Frompt-table-checksum to pt-table-sync Nevertheless, pt-table-sync may give you a partial answer. It can print SQL statements to sync the replication […]
Working with CloudFlare DNS in python
Last week I wrote about aDNS discovery feature in Etcd. As a step in the whole process we need to create DNS records in twindb.com zone. CloudFlare provides rich API to work with it. We wrapped it into a Python module twindb_cloudflare and opensourced it: Source code: https://github.com/twindb/twindb_cloudflare Documentation: https://twindb-cloudflare.readthedocs.io PyPi package: https://pypi.python.org/pypi/twindb_cloudflare In the […]
Setting Up Etcd Cluster With DNS Discovery
Setting up an Etcd cluster with DNS discovery may be challenging. First of all, there are several building blocks: Etcd – a distributed key value store Amazon EC2 – a cloud computing provider Cloudflare – a DNS provider Chef – for configuring individual nodes Each of them has its pitfalls, but we will guide you through whole […]