Skip to content
Starting November 2023 Percona XtraBackup 2.4 has reached EOL status. If you have 5.7 databases, we encourage you to upgrade to 8.0 and then install Percona XtraBackup 8.0. Learn more

logo
Percona XtraBackup
Make an incremental backup
Initializing search
    percona/pxb-docs
    percona/pxb-docs
    • Home
      • About Percona XtraBackup
      • How Percona XtraBackup Works
      • Understand version numbers
      • Installing Percona XtraBackup 2.4
      • Installing Percona XtraBackup on Debian and Ubuntu
      • Installing Percona XtraBackup on Red Hat Enterprise Linux and CentOS
      • Installing Percona XtraBackup from a Binary Tarball
      • Compiling and Installing from Source Code
      • Running Percona XtraBackup in a Docker container
      • Connection and Privileges Needed
      • Configuring xtrabackup
      • The Backup Cycle - Full Backups
      • Incremental Backup
      • Compressed Backup
      • Encrypted Backup
      • Percona XtraBackup User Manual
      • Throttling Backups
      • Lockless binary log information
      • Encrypted InnoDB Tablespace Backups
      • lock-ddl-per-table Option Improvements
      • How-tos and Recipes
        • Release notes index
        • Percona XtraBackup 2.4.29 (2023-12-18)
        • Percona XtraBackup 2.4.28 (2023-04-04)
        • Percona XtraBackup 2.4.27 (2022-12-06)
        • Percona XtraBackup 2.4.26
        • Percona XtraBackup 2.4.25
        • Percona XtraBackup 2.4.24
        • Percona XtraBackup 2.4.23
        • Percona XtraBackup 2.4.22
        • Percona XtraBackup 2.4.21
        • Percona XtraBackup 2.4.20
        • Percona XtraBackup 2.4.19
        • Percona XtraBackup 2.4.18
        • Percona XtraBackup 2.4.17
        • Percona XtraBackup 2.4.16
        • Percona XtraBackup 2.4.15
        • Percona XtraBackup 2.4.14
        • Percona XtraBackup 2.4.13
        • Percona XtraBackup 2.4.12
        • Percona XtraBackup 2.4.11
        • Percona XtraBackup 2.4.10
        • Percona XtraBackup 2.4.9
        • Percona XtraBackup 2.4.8
        • Percona XtraBackup 2.4.7-2
        • Percona XtraBackup 2.4.7
        • Percona XtraBackup 2.4.6
        • Percona XtraBackup 2.4.5
        • Percona XtraBackup 2.4.4
        • Percona XtraBackup 2.4.3
        • Percona XtraBackup 2.4.2
        • Percona XtraBackup 2.4.1
      • The xtrabackup Option Reference
      • The innobackupex Option Reference
      • The xbcloud Binary
      • Exponential Backoff
      • Using the xbcloud binary with Microsoft Azure Cloud Storage
      • The xbcrypt binary
      • The xbstream binary
      • Known issues and limitations
      • Frequently Asked Questions
      • Glossary
      • Index of files created by Percona XtraBackup
      • Trademark policy
      • Copyright and licensing information
      • Version Checking

    • Create one full backup
    • Create two incremental backups
    • Prepare the base backup
    • Roll forward the base data to the first increment
    • Roll forward again to the second increment
    • Notes

    Make an incremental backup¶

    Backup all the InnoDB data and log files - located in /var/lib/mysql/ - once, then make two daily incremental backups in /data/backups/mysql/ (destination). Finally, prepare the backup files to be ready to restore or use.

    Create one full backup¶

    Making an incremental backup requires a full backup as a base:

    $ xtrabackup --backup --target-dir=/data/backups/mysql/
    

    It is important that you do not run the xtrabackup --prepare command yet.

    Create two incremental backups¶

    Suppose the full backup is on Monday, and you will create an incremental one on Tuesday:

    $ xtrabackup --backup --target-dir=/data/backups/inc/tue/ \
          --incremental-basedir=/data/backups/mysql/
    

    and the same policy is applied on Wednesday:

    $ xtrabackup --backup --target-dir=/data/backups/inc/wed/ \
           --incremental-basedir=/data/backups/inc/tue/
    

    Prepare the base backup¶

    Prepare the base backup (Monday’s backup):

    $ xtrabackup --prepare --apply-log-only --target-dir=/data/backups/mysql/
    

    Roll forward the base data to the first increment¶

    Roll Monday’s data forward to the state on Tuesday:

    $ xtrabackup --prepare --apply-log-only --target-dir=/data/backups/mysql/ \
       --incremental-dir=/data/backups/inc/tue/
    

    Roll forward again to the second increment¶

    Roll forward again to the state on Wednesday (without –apply-log-only):

    $ xtrabackup --prepare --target-dir=/data/backups/mysql/ \
       --incremental-dir=/data/backups/inc/wed/
    

    Notes¶

    • You might want to set the xtrabackup --use-memory to speed up the process if you are on a dedicated server that has enough free memory. More details here.

    • A more detailed explanation is here.

    Contact us

    For free technical help, visit the Percona Community Forum.

    To report bugs or submit feature requests, open a JIRA ticket.

    For paid support and managed or consulting services , contact Percona Sales.

    2023-03-13
    Percona LLC and/or its affiliates, © 2024 Cookie Preferences
    Made with Material for MkDocs