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 a Local Full Backup (Create, Prepare and Restore)
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 the Backup
    • Prepare the Backup
    • Restore the Backup

    Make a Local Full Backup (Create, Prepare and Restore)¶

    Create the Backup¶

    This is the simplest use case. It copies all your MySQL data into the specified directory. Here is how to make a backup of all the databases in the datadir specified in your my.cnf. It will put the backup in a time stamped subdirectory of /data/backups/, in this case, /data/backups/2010-03-13_02-42-44,

    $ innobackupex /data/backups
    

    There is a lot of output, but you need to make sure you see this at the end of the backup. If you don’t see this output, then your backup failed:

    100313 02:43:07  innobackupex: completed OK!
    

    Prepare the Backup¶

    To prepare the backup use the innobackupex --apply-log option and specify the timestamped subdirectory of the backup. To speed up the apply-log process, use the innobackupex --use-memory:

    $ innobackupex --use-memory=4G --apply-log /data/backups/2010-03-13_02-42-44/
    

    You should check for a confirmation message:

    100313 02:51:02  innobackupex: completed OK!
    

    Now the files in /data/backups/2010-03-13_02-42-44 is ready to be used by the server.

    Restore the Backup¶

    To restore the already-prepared backup, first stop the server and then use the innobackupex --copy-back function of innobackupex:

    $ innobackupex --copy-back /data/backups/2010-03-13_02-42-44/
    ## Use chmod to correct the permissions, if necessary!
    

    This will copy the prepared data back to its original location as defined by the datadir in your my.cnf.

    Note

    The datadir must be empty; Percona XtraBackup innobackupex --copy-back option will not copy over existing files unless innobackupex --force-non-empty-directories option is specified. Also it’s important to note that MySQL server needs to be shut down before restore is performed. You can’t restore to a datadir of a running mysqld instance (except when importing a partial backup).

    After the confirmation message:

    100313 02:58:44  innobackupex: completed OK!
    

    you should check the file permissions after copying the data back. You may need to adjust them with something like:

    $ chown -R mysql:mysql /var/lib/mysql
    

    Now the datadir contains the restored data. You are ready to start the server.

    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.

    2022-11-10
    Percona LLC and/or its affiliates, © 2024 Cookie Preferences
    Made with Material for MkDocs