
===================
Usage
===================

Xtrabackup allows you to backup and restore databases from full
backups or full backups and its incrementals.

Sample pillars
==============

Backup client with ssh/rsync remote host:

.. code-block:: yaml

    xtrabackup:
      client:
        enabled: true
        full_backups_to_keep: 3
        hours_before_full: 48
        hours_before_incr: 12
        database:
          user: username
          password: password
        target:
          host: cfg01

.. note:: The ``full_backups_to_keep`` parameter states how many backup will
   be stored locally on xtrabackup client. More options to relocate local
   backups can be done using ``salt-formula-backupninja``.

Backup client using DB API instead of socket (still needs to be run on the same server as DB):

.. code-block:: yaml

    xtrabackup:
      client:
        enabled: true
        full_backups_to_keep: 3
        hours_before_full: 48
        hours_before_incr: 12
        database:
          user: username
          password: password
          host: localhost
          port: 3306
        target:
          host: cfg01

.. note:: DB user ``username`` must have "RELOAD" and "REPLICATION CLIENT"
   privileges on all databases.

Backup client with local backup only:

.. code-block:: yaml

    xtrabackup:
      client:
        enabled: true
        full_backups_to_keep: 3
        hours_before_full: 48
        hours_before_incr: 12
        database:
          user: username
          password: password

.. note:: The ``full_backups_to_keep`` parameter states how many backup will
   be stored locally on xtrabackup client.

Backup client with ssh/rsync to remote host with compression, IO throttling and non-default
backup directory on server:

.. code-block:: yaml

    xtrabackup:
      client:
        enabled: true
        full_backups_to_keep: 3
        hours_before_full: 48
        hours_before_incr: 12
        compression: true
        rsync_tables: true
        compression_threads: 2
        throttle: 20
        database:
          user: username
          password: password
        target:
          host: cfg01
      server:
        enabled: false
        backup_dir: /srv/backup

.. note:: More options to relocate local backups can be done using
   ``salt-formula-backupninja``.

.. note:: If the ``server`` section is ommited, backups will be made to
   default location, same on both client and server side.

Backup client at exact times:

.. code-block:: yaml

  xtrabackup:
    client:
      enabled: true
      full_backups_to_keep: 3
      incr_before_full: 3
      backup_dir: /var/backups/mysql/xtrabackup
      backup_times:
        day_of_week: 0
        hour: 4
        minute: 52
      compression: true
      rsync_tables: true
      compression_threads: 2
      database:
        user: user
        password: password
      target:
        host: host01

.. note:: Parameters in ``backup_times`` section can be used to set up exact
   time the cron job should be executed. In this example, the backup job
   would be executed every Sunday at 4:52 AM. If any of the individual
   ``backup_times`` parameters is not defined, the defalut ``*`` value will
   be used. For example, if minute parameter is ``*``, it will run the backup
   every minute, which is ususally not desired.

   Available parameters include:

   * ``day_of_week``
   * ``day_of_month``
   * ``month``
   * ``hour``
   * ``minute``.

   See the crontab reference for further info on how to set these
   parameters.

.. note:: Please be aware that only ``backup_times`` section OR
   ``hours_before_full(incr)`` can be defined. If both are defined. The
   ``backup_times`` section will be peferred.

.. note:: New parameter ``incr_before_full`` needs to be defined. This
   number sets number of incremental backups to be run, before a full backup
   is performed.

Backup server rsync and non-default backup directory:

.. code-block:: yaml

    xtrabackup:
      server:
        enabled: true
        hours_before_full: 48
        full_backups_to_keep: 5
        key:
          xtrabackup_pub_key:
            enabled: true
            key: key
        backup_dir: /srv/backup

.. note:: The ``hours_before_full`` parameter should have the same value as
   is stated on xtrabackup client

.. note:: If the ``backup_dir`` argument is ommited backups will be made to
   default location, same on both client and server side.

Backup server without strict client restriction:

.. code-block:: yaml

    xtrabackup:
      server:
        restrict_clients: false

Backup server at exact times:

.. code-block:: yaml

  xtrabackup:
    server:
      enabled: true
      full_backups_to_keep: 3
      incr_before_full: 3
      backup_dir: /srv/backup
      backup_times:
        day_of_week: 0
        hour: 4
        minute: 52
      key:
        xtrabackup_pub_key:
          enabled: true
          key: key

.. note:: Parameters in ``backup_times`` section can be used to set up exact
   time the cron job should be executed. In this example, the backup job
   would be executed every Sunday at 4:52 AM. If any of the individual
   ``backup_times`` parameters is not defined, the defalut ``*`` value will
   be used. For example, if minute parameter is ``*``, it will run the backup
   every minute, which is ususally not desired.

   See the crontab reference for further info on how to set these parameters.

.. note:: Please be aware that only ``backup_times`` section OR
   ``hours_before_full(incr)`` can be defined. If both are defined. The
   ``backup_times`` section will be peferred.

.. note:: New parameter ``incr_before_full`` needs to be defined. This
   number sets number of incremental backups to be run, before a full backup
   is performed.

Client restore from local backups:

.. code-block:: yaml

    xtrabackup:
      client:
        enabled: true
        full_backups_to_keep: 5
        hours_before_full: 48
        hours_before_incr: 12
        restore_full_latest: 1
        restore_from: local
        compression: true
        rsync_tables: true
        compressThreads: 2
        database:
          user: username
          password: password
        target:
          host: cfg01
        qpress:
          source: tar
          name: url

.. note:: restore_full_latest param with a value of 1 means to restore
   db from the last full backup and its increments. 2 would mean to
   restore second latest full backup and its increments

Client restore from remote backups:

.. code-block:: yaml

    xtrabackup:
      client:
        enabled: true
        full_backups_to_keep: 5
        hours_before_full: 48
        hours_before_incr: 12
        restore_full_latest: 1
        restore_from: remote
        compression: true
        rsync_tables: true
        compressThreads: 2
        database:
          user: username
          password: password
        target:
          host: cfg01
        qpress:
          source: tar
          name: url

.. note:: The ``restore_full_latest`` parameter with a value of 1
   means to restore db from the last full backup and its increments.
   2 would mean to restore second latest full backup and its increments

Read more
=========

* https://labs.riseup.net/code/projects/xtrabackup/wiki/Configuration
* http://www.debian-administration.org/articles/351
* http://duncanlock.net/blog/2013/08/27/comprehensive-linux-backups-with-etckeeper-xtrabackup/
* https://github.com/riseuplabs/puppet-xtrabackup
* http://www.ushills.co.uk/2008/02/backup-with-xtrabackup.html
