Home > holland-delphini

holland-delphini

Holland-delphini is a project mainly written in Python, based on the View license.

MySQL Cluster Backup Plugin for Holland

Introduction

Delphini is a plugin for the Holland backup framework to generate backups of a MySQL cluster.

Backups are generated by the following procedure:

  • Connect to the management node specified by connect-string and run START BACKUP WAIT COMPLETED
  • Lookup ndbd nodes from the configuration with ndb_config
  • Copy the completed backup files from the BackupDataDir on each node
  • Ensure backups are available from at least one node per node-group
  • Purge old cluster backups on each node

ssh is used for connect to the data node servers and a tar stream is piped to the backup-directory on the backup server where holland is running.

Delphini currently requires access via ssh using ssh keys to do the following:

  • Read the BackupDataDir files for the backup id initiated by the START BACKUP command
  • Remove the files in the BackupDataDir for the appropriate backup id

Configuration

::

[mysql-cluster] connect-string = hostname # default: localhost default-ssh-user = username # default: root default-ssh-keyfile = keyfile # default: no keyfile used

[compression] method = gzip | bzip2 | lzop | pigz | pbzip2 | xz | lzma level = 0..9 inline = yes | no

The main section is the [mysql-cluster] section which defines basic parameters for the cluster backups.

TODO

  • Make the archival method configurable instead of hardcoding rsync
  • Allow sudo execution of commands on remote server (probably by just making those command invocations configurable) - this will lift the restriction on direct ssh access to BackupDataDir
  • Backup mysql schema via mysqldump (triggers, stored routines, etc.)