General questions and troubleshooting


What is the binlogic cloudbackup agent?

In order to automate your backups, we need to install a small binary in your servers that communicates with our frontend tool. This way you can manage all your tasks in one simple to use webpage. You can see more in the About page.

Why do I need to install the agent in my database server?

While not strictly necessary, we recommend installing our agent in the same server where your database runs. It’s true that the agent can connect to a remote database, but some backup methods require local filesystem access, and if you run them, they won’t function properly.

Can I install the agent in a dedicated server?

Related to the question above, you can install the agent in a dedicated server with the sole purpose of running the agent. However, we recommend this only for very advanced users that know each backup method extensively and have a good reason to do this.

If the agent loses connection to binlogic servers, do my backups keep running?

If, for any reason, the agent can’t connect to our servers, it will still function. Backups will still execute at the same scheduled times. However, you won’t see those backups in our frontend panel and won’t be able to launch restores to that server. All pending operations will be written to a local file, so when the connection is reestablished, the agent will inform our servers of all pending operations.

How can I use my backups in the case binlogic servers are down?

Since we don’t store your backups (you must choose your own S3 bucket, or a local directory), you can download them anytime and use them as you please. However, you’ll need to decompress and decrypt those files so they are usable. For that, we have an open source project called cloudbackup-prepare that you can freely download and use to prepare your backups.

If I stop paying for the service, do I lose my backups?

It’s important to remember that we don’t store your backups, you are responsible for storing them either in local or cloud storage. If you stop paying (or your trial expires), we don’t delete any of your files.

You’ll still be able to log in to our tool but won’t be able to run any more backups or restores. During this time, you should download and backup all the encryption keys necessary to decrypt your backups with cloudbackup-prepare.

After 30 days, if you still haven’t renewed your subscription, we will delete all your information from our databases (but not the files in your storages), so we won’t be able to recover your encryption keys.

Can I receive success/failure notifications?

Yes! We send email and Slack notifications after each backup/restore. You can also toggle whether to send or not any of these notifications from our control panel.


What databases can be backed up with the agent?

We support all major forks of MySQL, including MariaDB and Percona Server. Even though we specialize in MySQL, we also support MongoDB and PostgreSQL. We always test compatibility with the latest versions of all of these, so any recent version should work.

What backup methods are supported?

For MySQL and its forks: mysqldump, mysqlpump, mydumper and xtrabackup. For mongo it’s mongodump and for postgres it’s pg_dumpall. We also have plans to support LVM snapshots in the future, that work for all databases.

What backup method do you recommend?

That largely depends on your specific use case, the database size, the load on the server and whether you need to support different versions of the database. If unsure about which method to choose, don’t hesitate to contact support or your sales representative.

Can I do incremental backups?

Yes! For now, we only support them for xtrabackup, every 1, 3, 6 or 12 hours.

Are my backups encrypted?

Yes, by default we encrypt all your backups with AES-256, using a secure random key unique per backup, for maximum security.

These keys can only be obtained by logging in to our tool, going to “Backups list” and clicking in “Show Encryption Key”. We recommend copying these keys and saving them somewhere safe, as you might need them to use the cloudbackup-prepare binary.

Can I restore backups to another server?

Yes, you can take backups from one server and restore them into any another, with just a few clicks. However, keep in mind that both servers need to have our agent installed. Also, if you have saved your backups to disk instead of S3, that disk location must be visible/accessible to both servers (for example a shared network disk). Otherwise, attempting to restore a local file will result in “file not found” error.

Where should I take backups from, a master or a slave?

If your budget allows for it, avoid taking backups from a master server, as taking a backup generates quite an extra load on your server. We recommend having a slave or replica dedicated only to backups (so it has no read operations other than the backup progress).

Can I run custom code before and after each backup?

Yes! We allow several hook points to allow you to run your custom scripts:

  • Before a backup/restore runs
  • After a backup/restore succeeds
  • After a backup/restore fails

With this you can implement custom functionality, like removing a slave from a loadbalancer group, send your custom notifications, etc

About the Agent

Can I run the agent in Windows?

We are planning to add Windows support in the near future. We still have to port some functionality that is Linux only.

Where does the agent store backups?

You are free to choose where the backups are stored, either locally or in the cloud. The agent might need to write small files to /tmp depending on the backup method.

How can I see the logs of the backups?

Unless you configure it otherwise, the logs are normally found in /var/log/binlogic/binlogic-agent.log.

If the agent crashes unexpectedly for any reason (for example out of memory errors), it will leave a crash error log in /tmp/binlogic-agent.err.

How can I check that the agent is running?

First, you can check in the control panel, in the servers page. You’ll see all your and its status.

You can also ssh into your server and run service binlogic-agent status if running Linux. Checking the log files should also give you a hint whether the agent is running or not.

Why does the agent need to run as root?

Some backup/restore methods require more privileges than others. Particularly xtrabackup requires to delete files from your datadir and replace them with new ones. It also needs to stop and start your mysql instance when doing restores. In order to simplify privileges management for end users, we opted to require the agent to run as root.

If you have a special requirement or require advanced user management, please contact support or your sales representative.

What external dependencies does the agent need?

Our agent binary is a self-contained executable file, so it doesn’t need any dependency to run.

However, to do the actual database backups and restores, the agent will need the binaries of the backup method you want to use. For example, if you plan to do a plain sql dump of your MySQL instance, the agent needs mysqldump to be present in your $PATH.

Can the agent install missing dependencies?

We opted for not installing any external dependency, as it could mess up your repositories or other libraries used in your system.

You are in charge of installing and configuring the backup methods. If you choose a backup method in our control panel that is not installed in your system, the backup will notify you of the error.

If you need help installing a dependency, please contact support or your sales representative.

What linux versions does the agent support?

Our agent supports and is tested in the followed distributions:

  • Ubuntu 14.04
  • Ubuntu 16.04
  • RedHat / CentOS 6
  • RedHat / CentOS 7
  • Amazon Linux

The agent should work in newer versions of these distributions, just like in recent distributions based on any of these families. If in doubt, please contact support.

Where does the agent read its configuration from?

By default, our agent installer stores the configuration in /etc/binlogic/binlogic-agent.toml. If you change that path, you need to pass your non standard path via command line argument when you start the agent service.

Can I reload the agent configuration?

You can send a SIGHUP kill signal to the agent to re-read its configuration. Not all configuration values are hot-swappable, for example credentials and server connection url. If you change them, they will be re-read only if the connection fails.

Can I run several agents in the same server?

We don’t provide such functionality out of the box. There are workarounds to do it, but are hard to maintain and thus we don’t recommend them. If your specific use case requires several instances of the agent in the same server, please contact the sales team.

Can I share the same credentials among several agents?

Credentials uniquely identify one of your servers, so you can’t reuse them among several agents. You’ll receive an error if you are using duplicate credentials.

How can I uninstall the agent?

You should use you package manager to remove it. For example, if you are running ubuntu, you should run: sudo apt-get remove binlogic-agent

How do backups and restores perform?

Just to give you a performance baseline, to estimate timings, we backed up a ~880GB database to S3 and it took 1 hour and 30 minutes. The resulting file in S3 (encrypted and compressed) was 310GB.

Restoring this file took 3 hours and 36 minutes, downloading, decrypting and decompressing from S3 on the fly.

We repeated the test doing the backup and restore manually (without the agent), and the backup & restore times were the same, within the margin of error.

All these tests were run in a r4.2xlarge instance with 64GB of RAM and GP2 disks.