TwinDB is online service that backups MySQL databases. It is a distributed system and it’s always a good idea to get familiar with a system before using it.

Architecture overview

TwinDB web console

The “web console” is a website where a user can manage MySQL servers, schedules, retention policies, storage etc.
It runs on our premises and accessible on https://console.twindb.com/

TwinDB agent

The “agent” is a small script that performs backup related tasks:

  1. Take a backup from the database
  2. Restore a database from the backup

It runs on your MySQL server. You should install it from our RPM or DEB repository.

TwinDB dispatcher

The “dispatcher” is the master of TwinDB agent. It keeps database of all configurations and instructs agents what they must do.

The dispatcher runs on our premises (on dispatcher.twindb.com).

TwinDB storage

This is where TwinDB stores all backup copies. It is hosted on TwinDB’s premises . You can add your storage servers too. The agents upload the backups here, and respectively download them when they need to restore it.

The TwinDB storage provides chrooted SSH access so you can download the backups manually.

Supported platforms

TwinDB agent is installed on your MySQL server. We support following linuxes:

Support of other platforms is under development. Let us know if your platform is missing. The TwinDB agent is distributed via package repositories.

Security

We don’t tolerate any compromises when it comes to security. In short, we treat us as untrusted party. Your data is transferred and stored encrypted and only you can decrypt it.

Communication between a DBA and TwinDB web console goes over HTTPS.

When TwinDB agent registers it generates two pairs of keys. One for SSH access to TwinDB storage, second – for encrypting the backup copies and secure communication between the agent and TwinDB dispatcher.

The private keys are stored on the MySQL server. The SSH key is saved in

The GPG key is saved in the GPG key ring. You can see it with gpg -K command:

!!!PLEASE!!! Backup the private keys. We can’t restore the MySQL backup without them.
Save the SSH key /root/.ssh/twindb.key and the GPG key (use the command below to export it) on a USB stick and put it in safe deposit box

How TwinDB takes backup

The TwinDB agent uses  XtraBackup to take non-blocking backups from InnoDB tables.

XtraBackup is efficient, quick and non-blocking backup tool. It supports incremental backups, so you can save storage.

It is good for big databases and it’s free. So, it was the obvious choice.

Have a question? Ask the experts!