Backing up tsuru database

In the tsuru repository, you will find two useful scripts in the directory misc/mongodb: backup.bash and healer.bash. In this page you will learn the purpose of these scripts and how to use them.

Dependencies

The script backup.bash uses S3 to store archives, and healer.bash downloads archives from S3 buckets. In order to communicate with S3 API, both scripts use s3cmd.

So, before running those scripts, make sure you have installed s3cmd. You can install it using your preferred package manager. For more details, refer to its download documentation.

After installing s3cmd, you will need to configure it, by running the command:

$ s3cmd --configure

Saving data

The script backup.bash runs mongodump, creates a tar archive and send the archive to S3. Here is how you use it:

$ ./misc/mongodb/backup.bash s3://mybucket localhost database

The first parameter is the S3 bucket. The second parameter is the database host. You can provide just the hostname, or the host:port (for example, 127.0.0.1:27018). The third parameter is the name of the database.

Automatically restoring on data loss

The other script in the misc/mongodb directory is healer.bash. This script checks a list of collections and if any of them is gone, download the last three backup archives and fix all gone collections.

This is how you should use it:

$ ./misc/mongodb/healer.bash s3://mybucket localhost mongodb repositories users

The first three parameters mean the same as in the backup script. From the fourth parameter onwards, you should list the collections. In the example above, we provided two collections: “repositories” and “users”.