How to speed-up builds with Omnibus caching
To build a package, Omnibus compiles dependencies. If it’s a Python project, Omnibus will compile python each time it packages the project. If the project depends on a library – it will have to be recompiled every time. That’s suboptimal, let’s see what we can do to reduce the build time. I was inspecting omnibus/omnibus.rb when […]
Omnibus as a Solution for Python Dependency Hell
Python has always been an exemplar of good coding style for me. It’s impressive how concise unit tests can be, how flexible mocks are. Really, it’s a great pleasure to write Python code. Up until the point when you need to deploy it. From then on you embark on a rollercoaster to go through a […]
Managing GitHub with Terraform
If a service can be managed with API most probably you will find it in an impressive list of Terraform providers. Yes, GitHub is there, too. TwinDB hosts software in GitHub, it felt wrong I don’t manage it with Terraform yet, so I decided to give it a go. Prerequisites Directory layout I keep all […]
How to Backup MySQL Binary logs
MySQL binary logs make possible to implement point-in-time recovery and greatly reduce Recovery Point Objective. In this post I will show how to copy MySQL binary logs with TwinDB Backup.
Simple shell script is bad idea
Internet is full of simple shell backup scripts. Every DBA and system administrators (including myself) has written one. Bash is a bad tool for this job and in this post I will explain why.
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.