Content Notice!

This post is really old, and no longer reflect my skill level, views or opinions, it is made available here for archival purposes (it was originally on my old WordPress blog).

Keep that in mind when you read the contents within.

How I use Ottomatik for MySQL Backups

If you found this post via google, congratulations you've actually found a SANE way of doing what you want to accomplish, this is the guide that will save you from the night terrors of failing servers and no backups.

My Scenario

I have a DigitalOcean droplet that's running a web application, which uses a MySQL database.

The web application code itself is already backed up and deployed from Git, so I don't so much worry about any of the actual code files.

All file uploads (PDF's and images) are uploaded to Amazon S3 and Cloudinary respectively, so I don't really care about having another backup for those either, the only thing that really REALLY matters for me, is the database entries.

When you run a business-oriented web application, the data that's generated in your application and ultimately stored in a database is the actual value you are giving your customers, if you run an image hosting site (imgur or similar) the uploaded files are the most important, however if you are running a table booking application for restaurants, the most important thing is the information on when customers are expected to arrive into the restaurant so the staff can plan accordingly.

So therefore I set out to learn about the mystical process of doing database backups, on a limited budget and preferably as automated as possible without having to write a million bash scripts and installing python to parse the database into a CSV file and upload it to some shady pdf generation website, which then is downloaded in an excel file... or something silly like that...

I battled the search engines and alas I found what I was looking for, Ottomatik!

You know it's going to be good beacuse it has a .io domain ;)

Ottomatik to the rescue

Ottomatik is a web service that connects to your linux server via SSH, you enter your database credentials and Ottomatik runs database and file backups that you've scheduled in their dashboard, it also provides you with a history and status of each backup job as well as email notifications if a backup were to fail for whatever reason.

The concept is similar to how ServerPilot works.

Ottomatik can backup your data to their own private S3 "cloud", their free plan has a 1 GB storage limit, you can also pick how many backups you want to keep, if you set it to 3 it will save the 3 backups and roll over the the oldest one each time, similar to a rolling log file.

You can also connect ottomatik to your own S3 account, which is what I recommend, you provide your S3 Credentials (access key, secret key, AWS region, Bucket name/path), and Ottomatik will upload the generated backups to the S3 bucket you've specified.

Simply awesome.

You can also connect to several servers and create several backup jobs, you can also configure the backups to run in a queued mode(one after the other) or concurrent (at the same time).

So you if want to check out Ottomatik, they offer a free trial that allows you to evaluate any of their plans for 14 days.

You can see their price overview here