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.
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/
The “agent” is a small script that performs backup related tasks:
- Take a backup from the database
- Restore a database from the backup
It runs on your MySQL server. You should install it from our RPM or DEB repository.
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).
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.
TwinDB agent is installed on your MySQL server. We support following linuxes:
- RedHat Enterprise Linux 5, 6, 7
- CentOS 5, 6, 7
- Amazon Linux AMI release 2014.* and 2015.*
- Debian wheezy, jessie
- Ubuntu LTS releases
Support of other platforms is under development. Let us know if your platform is missing. The TwinDB agent is distributed via package repositories.
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:
# gpg -K twindb
sec 1024D/DC31F091 2014-01-13
uid Backup User id 1 Server id 8 (No passphrase) <email@example.com>
ssb 1024g/6943E5E1 2014-01-13
!!!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
# gpg --armor --export-secret-key firstname.lastname@example.org
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1
-----END PGP PRIVATE KEY BLOCK-----
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.