Performing Incremental Backup and Restoration
- Create a backup directory on the primary database.
mkdir -p /data/xbackup/full/ mkdir -p /data/xbackup/inc1/ mkdir -p /data/xbackup/inc2/ ll /data/xbackup/ ll /data/xbackup/full/ ll /data/xbackup/inc1/ ll /data/xbackup/inc2/ rm -rf /data/xbackup/full/* rm -rf /data/xbackup/inc1/* rm -rf /data/xbackup/inc2/*
- Back up the data of the primary database (incremental backup).
- Go to the bin directory of XtraBackup.
- XtraBackup 8.0.13:
cd /usr/local/xtrabackup-8.0.13/bin/
- XtraBackup 2.4.20:
cd /usr/local/xtrabackup-2.4.20/bin/
- XtraBackup 8.0.13:
- Create full backup.
./xtrabackup --user=root --password=123456 --port=3306 --host=192.168.220.58 --socket=/data/mysql/run/mysql.sock --parallel=16 --backup --target-dir=/data/xbackup/full/
- Create the first incremental backup.
./xtrabackup --backup --user=root --password=123456 --port=3306 --socket=/data/mysql/run/mysql.sock --host=192.168.220.58 --target-dir=/data/xbackup/inc1/ --incremental-basedir=/data/xbackup/full/
- Create the second incremental backup.
./xtrabackup --backup --user=root --password=123456 --port=3306 --socket=/data/mysql/run/mysql.sock --host=192.168.220.58 --target-dir=/data/xbackup/inc2/ --incremental-basedir=/data/xbackup/inc1/
- Query the LSN in the xtrabackup_checkpoints file in the full backup directory.
cat /data/xbackup/full/xtrabackup_checkpoints
- Query the binlog position in xtrabackup_binlog_info file in the full backup directory.
cat /data/xbackup/full/xtrabackup_binlog_info
- Query the LSN in the xtrabackup_checkpoints file in the incremental backup directory.
cat /data/xbackup/inc1/xtrabackup_checkpoints cat /data/xbackup/inc2/xtrabackup_checkpoints
- Query the binlog position in xtrabackup_binlog_info file in the incremental backup directory.
cat /data/xbackup/inc1/xtrabackup_binlog_info cat /data/xbackup/inc2/xtrabackup_binlog_info
- Go to the bin directory of XtraBackup.
- Query backup data on the primary database.
ll /data/xbackup/ ll /data/xbackup/full/ ll /data/xbackup/inc1/ ll /data/xbackup/inc2/ du -sh /data/xbackup/ du -sh /data/xbackup/full/ du -sh /data/xbackup/inc1/ du -sh /data/xbackup/inc2/
- Copy the backup data from the primary database to the secondary databases.
- Create a backup directory on the secondary databases.
mkdir -p /data/xbackup/full/ mkdir -p /data/xbackup/inc1/ mkdir -p /data/xbackup/inc2/ ll /data/xbackup/ ll /data/xbackup/full/ ll /data/xbackup/inc1/ ll /data/xbackup/inc2/ rm -rf /data/xbackup/full/* rm -rf /data/xbackup/inc1/* rm -rf /data/xbackup/inc2/*
- Copy the backup data from the primary database to the secondary databases.
scp -r /data/xbackup/full/* root@192.168.220.152:/data/xbackup/full/ scp -r /data/xbackup/inc1/* root@192.168.220.152:/data/xbackup/inc1/ scp -r /data/xbackup/inc2/* root@192.168.220.152:/data/xbackup/inc2/
- Query backup data on the secondary databases.
ll /data/xbackup/ ll /data/xbackup/full/ ll /data/xbackup/inc1/ ll /data/xbackup/inc2/ du -sh /data/xbackup/ du -sh /data/xbackup/full/ du -sh /data/xbackup/inc1/ du -sh /data/xbackup/inc2/
- Create a backup directory on the secondary databases.
- Stop the MySQL process on the secondary databases.
ps -ef | grep mysql /usr/local/mysql/bin/mysqladmin -uroot -p123456 shutdown -S /data/mysql/run/mysql.sock ps -ef | grep mysql
- Perform the following operations on the secondary databases to restore the backup data of the primary database to the secondary databases (restoration of incremental backup):
- Go to the bin directory of XtraBackup.
- XtraBackup 8.0.13:
cd /usr/local/xtrabackup-8.0.13/bin/
- XtraBackup 2.4.20:
cd /usr/local/xtrabackup-2.4.20/bin/
- XtraBackup 8.0.13:
- Prepare for full backup.
./xtrabackup --prepare --apply-log-only --target-dir=/data/xbackup/full/ ll /data/xbackup/full/
If "completed OK" is displayed, the preparation is complete.
- Merge the first incremental backup into the full backup.
./xtrabackup --prepare --apply-log-only --target-dir=/data/xbackup/full/ --incremental-dir=/data/xbackup/inc1/ ll /data/xbackup/full/
- Merge the second incremental backup into the full backup.
./xtrabackup --prepare --target-dir=/data/xbackup/full/ --incremental-dir=/data/xbackup/inc2/ ll /data/xbackup/full/
- Restore data.
rsync -avrP /data/xbackup/full/ /data/mysql/data/
- Go to the bin directory of XtraBackup.
- Start the databases.
ps -ef | grep mysql /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
- Log in to the databases to query data.
/usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock show databases;
Parent topic: Adding a Secondary Database