xtrabackup2.4 增量备份

创建备份用户

mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
mysql> FLUSH PRIVILEGES;

创建测试数据

创建数据

mysql> CREATE DATABASE test;
mysql> CREATE TABLE test.messages (message VARCHAR(250));
mysql> INSERT INTO test.messages VALUES ('hello');

查询数据

mysql> select * from messages;
+---------+
| message |
+---------+
| hello   |
+---------+
1 row in set (0.00 sec)

mysql数据库目录

# ls -l /data/mysql/data/
total 110668
-rw-r----- 1 mysql mysql       56 Jan 12 13:40 auto.cnf
-rw------- 1 mysql mysql     1680 Jan 12 13:40 ca-key.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 ca.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 client-cert.pem
-rw------- 1 mysql mysql     1680 Jan 12 13:40 client-key.pem
-rw-r----- 1 mysql mysql      436 Jan 13 16:37 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Jan 13 16:37 ibdata1
-rw-r----- 1 mysql mysql 50331648 Jan 13 16:36 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Jan 12 19:22 ib_logfile1
drwxr-x--- 2 mysql mysql     4096 Jan 13 16:37 mysql
drwxr-x--- 2 mysql mysql     4096 Jan 13 16:37 performance_schema
-rw------- 1 mysql mysql     1680 Jan 12 13:40 private_key.pem
-rw-r--r-- 1 mysql mysql      452 Jan 12 13:40 public_key.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 server-cert.pem
-rw------- 1 mysql mysql     1680 Jan 12 13:40 server-key.pem
drwxr-x--- 2 mysql mysql    12288 Jan 13 16:37 sys
drwxr-x--- 2 mysql mysql     4096 Jan 13 16:37 test

全量备份数据

备份数据

# xtrabackup  --backup  --slave-info  --host="localhost"  --port=3306 --user="bkpuser" --password="s3cret" --socket="/data/mysql/mysql.sock"  --parallel=2 --target-dir="/data/xtrabackup/base"

查看备份信息

# ls -l /data/xtrabackup/base
total 12336
-rw-r----- 1 root root      487 Jan 12 18:29 backup-my.cnf
-rw-r----- 1 root root      436 Jan 12 18:29 ib_buffer_pool
-rw-r----- 1 root root 12582912 Jan 12 18:29 ibdata1
drwxr-x--- 2 root root     4096 Jan 12 18:29 mysql
drwxr-x--- 2 root root     4096 Jan 12 18:29 performance_schema
drwxr-x--- 2 root root    12288 Jan 12 18:29 sys
drwxr-x--- 2 root root     4096 Jan 12 18:29 test
-rw-r----- 1 root root       21 Jan 12 18:29 xtrabackup_binlog_info
-rw-r----- 1 root root      135 Jan 12 18:29 xtrabackup_checkpoints
-rw-r----- 1 root root      589 Jan 12 18:29 xtrabackup_info
-rw-r----- 1 root root     2560 Jan 12 18:29 xtrabackup_logfile
-rw-r----- 1 root root        0 Jan 12 18:29 xtrabackup_slave_info

查看xtrabackup_checkpoints

# cat /data/xtrabackup/base/xtrabackup_checkpoints 
backup_type = full-backuped
from_lsn = 0
to_lsn = 2768955
last_lsn = 2768964
compact = 0
recover_binlog_info = 0
flushed_lsn = 2768964

增量备份数据

新增数据inc1

mysql> INSERT INTO test.messages VALUES ('inc1');
Query OK, 1 row affected (0.00 sec)

mysql> select * from messages;
+---------+
| message |
+---------+
| hello   |
| inc1    |
+---------+
2 rows in set (0.00 sec)

增量备份一

备份数据inc1

# xtrabackup  --backup  --slave-info  --host="localhost"  --port=3306 --user="bkpuser" --password="s3cret" --socket="/data/mysql/mysql.sock"  --parallel=2  --target-dir=/data/xtrabackup/inc1 --incremental-basedir=/data/xtrabackup/base
xtrabackup: recognized server arguments: --parallel=2 
xtrabackup: recognized client arguments: --backup=1 --slave-info=1 --host=localhost --port=3306 --user=bkpuser --password=* --socket=/data/mysql/mysql.sock --target-dir=/data/xtrabackup/inc1 --incremental-basedir=/data/xtrabackup/base 
230112 18:36:00  version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;host=localhost;port=3306;mysql_socket=/data/mysql/mysql.sock' as 'bkpuser'  (using password: YES).
Failed to connect to MySQL server as DBD::mysql module is not installed at - line 1327.
230112 18:36:00 Connecting to MySQL server host: localhost, user: bkpuser, password: set, port: 3306, socket: /data/mysql/mysql.sock
Using server version 5.7.40-log
xtrabackup version 2.4.27 based on MySQL server 5.7.40 Linux (x86_64) (revision id: aae8e82)
incremental backup from 2768955 is enabled.
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /data/mysql/data/
xtrabackup: open files limit requested 0, set to 100000
xtrabackup: using the following InnoDB configuration:
xtrabackup:   innodb_data_home_dir = .
xtrabackup:   innodb_data_file_path = ibdata1:12M:autoextend
xtrabackup:   innodb_log_group_home_dir = ./
xtrabackup:   innodb_log_files_in_group = 2
xtrabackup:   innodb_log_file_size = 50331648
InnoDB: Number of pools: 1
230112 18:36:00 >> log scanned up to (2769355)
xtrabackup: Generating a list of tablespaces
InnoDB: Allocated tablespace ID 24 for test/messages, old maximum was 0
xtrabackup: using the full scan for incremental backup
xtrabackup: Starting 2 threads for parallel data files transfer
230112 18:36:00 [02] Copying ./test/messages.ibd to /data/xtrabackup/inc1/test/messages.ibd.delta
230112 18:36:00 [02]        ...done
230112 18:36:00 [01] Copying ./ibdata1 to /data/xtrabackup/inc1/ibdata1.delta
230112 18:36:00 [01]        ...done
230112 18:36:00 [02] Copying ./mysql/time_zone_transition_type.ibd to /data/xtrabackup/inc1/mysql/time_zone_transition_type.ibd.delta
230112 18:36:00 [02]        ...done
....
230112 18:36:01 [01] Copying ./sys/x@0024ps_digest_95th_percentile_by_avg_us.frm to /data/xtrabackup/inc1/sys/x@0024ps_digest_95th_percentile_by_avg_us.frm
230112 18:36:01 [01]        ...done
230112 18:36:01 Finished backing up non-InnoDB tables and files
230112 18:36:01 [00] Writing /data/xtrabackup/inc1/xtrabackup_slave_info
230112 18:36:01 [00]        ...done
230112 18:36:01 [00] Writing /data/xtrabackup/inc1/xtrabackup_binlog_info
230112 18:36:01 [00]        ...done
230112 18:36:01 Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...
xtrabackup: The latest check point (for incremental): '2769346'
xtrabackup: Stopping log copying thread.
.230112 18:36:01 >> log scanned up to (2769355)

230112 18:36:01 Executing UNLOCK TABLES
230112 18:36:01 All tables unlocked
230112 18:36:01 [00] Copying ib_buffer_pool to /data/xtrabackup/inc1/ib_buffer_pool
230112 18:36:01 [00]        ...done
230112 18:36:01 Backup created in directory '/data/xtrabackup/inc1/'
MySQL binlog position: filename 'mysql-bin.000005', position '416'
230112 18:36:01 [00] Writing /data/xtrabackup/inc1/backup-my.cnf
230112 18:36:01 [00]        ...done
230112 18:36:01 [00] Writing /data/xtrabackup/inc1/xtrabackup_info
230112 18:36:01 [00]        ...done
xtrabackup: Transaction log of lsn (2769346) to (2769355) was copied.
230112 18:36:02 completed OK!

查看inc1 xtrabackup_checkpoints

# cat /data/xtrabackup/inc1/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 2768955
to_lsn = 2769346
last_lsn = 2769355
compact = 0
recover_binlog_info = 0
flushed_lsn = 2769355

新增数据inc2

mysql> INSERT INTO test.messages VALUES ('inc2');
Query OK, 1 row affected (0.00 sec)

mysql> select * from messages;
+---------+
| message |
+---------+
| hello   |
| inc1    |
| inc2    |
+---------+
3 rows in set (0.00 sec)

增量备份二

备份数据inc2

# xtrabackup  --backup  --slave-info  --host="localhost"  --port=3306 --user="bkpuser" --password="s3cret" --socket="/data/mysql/mysql.sock"  --parallel=2  --target-dir=/data/xtrabackup/inc2 --incremental-basedir=/data/xtrabackup/inc1
xtrabackup: recognized server arguments: --parallel=2 
xtrabackup: recognized client arguments: --backup=1 --slave-info=1 --host=localhost --port=3306 --user=bkpuser --password=* --socket=/data/mysql/mysql.sock --target-dir=/data/xtrabackup/inc2 --incremental-basedir=/data/xtrabackup/inc1 
230112 18:39:39  version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;host=localhost;port=3306;mysql_socket=/data/mysql/mysql.sock' as 'bkpuser'  (using password: YES).
Failed to connect to MySQL server as DBD::mysql module is not installed at - line 1327.
230112 18:39:39 Connecting to MySQL server host: localhost, user: bkpuser, password: set, port: 3306, socket: /data/mysql/mysql.sock
Using server version 5.7.40-log
xtrabackup version 2.4.27 based on MySQL server 5.7.40 Linux (x86_64) (revision id: aae8e82)
incremental backup from 2769346 is enabled.
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /data/mysql/data/
xtrabackup: open files limit requested 0, set to 100000
xtrabackup: using the following InnoDB configuration:
xtrabackup:   innodb_data_home_dir = .
xtrabackup:   innodb_data_file_path = ibdata1:12M:autoextend
xtrabackup:   innodb_log_group_home_dir = ./
xtrabackup:   innodb_log_files_in_group = 2
xtrabackup:   innodb_log_file_size = 50331648
InnoDB: Number of pools: 1
230112 18:39:39 >> log scanned up to (2769713)
xtrabackup: Generating a list of tablespaces
InnoDB: Allocated tablespace ID 24 for test/messages, old maximum was 0
xtrabackup: using the full scan for incremental backup
xtrabackup: Starting 2 threads for parallel data files transfer
230112 18:39:40 [01] Copying ./ibdata1 to /data/xtrabackup/inc2/ibdata1.delta
230112 18:39:40 [02] Copying ./test/messages.ibd to /data/xtrabackup/inc2/test/messages.ibd.delta
230112 18:39:40 [02]        ...done
230112 18:39:40 [01]        ...done
....
230112 18:39:41 [01] Copying ./sys/x@0024ps_digest_95th_percentile_by_avg_us.frm to /data/xtrabackup/inc2/sys/x@0024ps_digest_95th_percentile_by_avg_us.frm
230112 18:39:41 [01]        ...done
230112 18:39:41 Finished backing up non-InnoDB tables and files
230112 18:39:41 [00] Writing /data/xtrabackup/inc2/xtrabackup_slave_info
230112 18:39:41 [00]        ...done
230112 18:39:41 [00] Writing /data/xtrabackup/inc2/xtrabackup_binlog_info
230112 18:39:41 [00]        ...done
230112 18:39:41 Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...
xtrabackup: The latest check point (for incremental): '2769704'
xtrabackup: Stopping log copying thread.
.230112 18:39:41 >> log scanned up to (2769713)

230112 18:39:41 Executing UNLOCK TABLES
230112 18:39:41 All tables unlocked
230112 18:39:41 [00] Copying ib_buffer_pool to /data/xtrabackup/inc2/ib_buffer_pool
230112 18:39:41 [00]        ...done
230112 18:39:41 Backup created in directory '/data/xtrabackup/inc2/'
MySQL binlog position: filename 'mysql-bin.000005', position '678'
230112 18:39:41 [00] Writing /data/xtrabackup/inc2/backup-my.cnf
230112 18:39:41 [00]        ...done
230112 18:39:41 [00] Writing /data/xtrabackup/inc2/xtrabackup_info
230112 18:39:41 [00]        ...done
xtrabackup: Transaction log of lsn (2769704) to (2769713) was copied.
230112 18:39:41 completed OK!

查看inc2 xtrabackup_checkpoints

# cat /data/xtrabackup/inc2/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 2769346
to_lsn = 2769704
last_lsn = 2769713
compact = 0
recover_binlog_info = 0
flushed_lsn = 2769713

清除测试数据

查看数据

mysql> select * from messages;
+---------+
| message |
+---------+
| hello   |
| inc1    |
| inc2    |
+---------+
3 rows in set (0.00 sec)

删除测试数据

mysql> drop table messages;
Query OK, 0 rows affected (0.00 sec)

停止mysql服务

# systemctl stop mysqld

还原全量数据

Preparing base

# xtrabackup --prepare --apply-log-only --target-dir=/data/xtrabackup/base/
xtrabackup: recognized server arguments: --innodb_checksum_algorithm=crc32 --innodb_log_checksum_algorithm=strict_crc32 --innodb_data_file_path=ibdata1:12M:autoextend --innodb_log_files_in_group=2 --innodb_log_file_size=50331648 --innodb_fast_checksum=0 --innodb_page_size=16384 --innodb_log_block_size=512 --innodb_undo_directory=./ --innodb_undo_tablespaces=0 --server-id=0 --redo-log-version=1 
xtrabackup: recognized client arguments: --prepare=1 --apply-log-only=1 --target-dir=/data/xtrabackup/base/ 
xtrabackup version 2.4.27 based on MySQL server 5.7.40 Linux (x86_64) (revision id: aae8e82)
xtrabackup: cd to /data/xtrabackup/base/
xtrabackup: This target seems to be not prepared yet.
InnoDB: Number of pools: 1
xtrabackup: xtrabackup_logfile detected: size=8388608, start_lsn=(2768955)
xtrabackup: using the following InnoDB configuration for recovery:
xtrabackup:   innodb_data_home_dir = .
xtrabackup:   innodb_data_file_path = ibdata1:12M:autoextend
xtrabackup:   innodb_log_group_home_dir = .
xtrabackup:   innodb_log_files_in_group = 1
xtrabackup:   innodb_log_file_size = 8388608
xtrabackup: using the following InnoDB configuration for recovery:
xtrabackup:   innodb_data_home_dir = .
xtrabackup:   innodb_data_file_path = ibdata1:12M:autoextend
xtrabackup:   innodb_log_group_home_dir = .
xtrabackup:   innodb_log_files_in_group = 1
xtrabackup:   innodb_log_file_size = 8388608
xtrabackup: Starting InnoDB instance for recovery.
xtrabackup: Using 104857600 bytes for buffer pool (set by --use-memory parameter)
InnoDB: PUNCH HOLE support available
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Uses event mutexes
InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
InnoDB: Compressed tables use zlib 1.2.12
InnoDB: Number of pools: 1
InnoDB: Using CPU crc32 instructions
InnoDB: Initializing buffer pool, total size = 100M, instances = 1, chunk size = 100M
InnoDB: Completed initialization of buffer pool
InnoDB: page_cleaner coordinator priority: -20
InnoDB: Highest supported file format is Barracuda.
InnoDB: Log scan progressed past the checkpoint lsn 2768955
InnoDB: Doing recovery: scanned up to log sequence number 2768964 (0%)
InnoDB: Database was not shutdown normally!
InnoDB: Starting crash recovery.
InnoDB: xtrabackup: Last MySQL binlog file position 2875, file name mysql-bin.000003
InnoDB: xtrabackup: Last MySQL binlog file position 2875, file name mysql-bin.000003

xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 2768973
InnoDB: Number of pools: 1
230112 18:46:55 completed OK!

copy-back base

# xtrabackup --copy-back --target-dir=/data/xtrabackup/base/ --datadir=/data/xtrabackup/base-copy-back
xtrabackup: recognized server arguments: --datadir=/data/xtrabackup/base-copy-back 
xtrabackup: recognized client arguments: --copy-back=1 --target-dir=/data/xtrabackup/base/ 
xtrabackup version 2.4.27 based on MySQL server 5.7.40 Linux (x86_64) (revision id: aae8e82)
230112 18:58:21 [01] Copying ibdata1 to /data/xtrabackup/base-copy-back/ibdata1
230112 18:58:21 [01]        ...done
230112 18:58:21 [01] Copying ./xtrabackup_info to /data/xtrabackup/base-copy-back/xtrabackup_info
230112 18:58:21 [01]        ...done
230112 18:58:21 [01] Copying ./test/messages.ibd to /data/xtrabackup/base-copy-back/test/messages.ibd
230112 18:58:21 [01]        ...done
230112 18:58:21 [01] Copying ./test/messages.frm to /data/xtrabackup/base-copy-back/test/messages.frm
230112 18:58:21 [01]        ...done
230112 18:58:21 [01] Copying ./test/db.opt to /data/xtrabackup/base-copy-back/test/db.opt
230112 18:58:21 [01]        ...done
230112 18:58:21 [01] Copying ./mysql/user.MYI to /data/xtrabackup/base-copy-back/mysql/user.MYI
230112 18:58:21 [01]        ...done
230112 18:58:21 [01] Copying ./mysql/user.frm to /data/xtrabackup/base-copy-back/mysql/user.frm
230112 18:58:21 [01]        ...done
.....
230112 18:58:21 [01] Copying ./sys/x@0024ps_digest_95th_percentile_by_avg_us.frm to /data/xtrabackup/base-copy-back/sys/x@0024ps_digest_95th_percentile_by_avg_us.frm
230112 18:58:21 [01]        ...done
230112 18:58:21 [01] Copying ./xtrabackup_binlog_pos_innodb to /data/xtrabackup/base-copy-back/xtrabackup_binlog_pos_innodb
230112 18:58:21 [01]        ...done
230112 18:58:21 completed OK!

同步数据

# rsync -avrP /data/xtrabackup/base-copy-back/ /data/mysql/data/

mysql数据库目录

# ls -l /data/mysql/data/
total 110668
-rw-r----- 1 mysql mysql       56 Jan 12 13:40 auto.cnf
-rw------- 1 mysql mysql     1680 Jan 12 13:40 ca-key.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 ca.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 client-cert.pem
-rw------- 1 mysql mysql     1680 Jan 12 13:40 client-key.pem
-rw-r----- 1 mysql mysql      436 Jan 13 16:37 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Jan 13 16:37 ibdata1
-rw-r----- 1 mysql mysql 50331648 Jan 13 16:36 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Jan 12 19:22 ib_logfile1
drwxr-x--- 2 mysql mysql     4096 Jan 13 16:37 mysql
drwxr-x--- 2 mysql mysql     4096 Jan 13 16:37 performance_schema
-rw------- 1 mysql mysql     1680 Jan 12 13:40 private_key.pem
-rw-r--r-- 1 mysql mysql      452 Jan 12 13:40 public_key.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 server-cert.pem
-rw------- 1 mysql mysql     1680 Jan 12 13:40 server-key.pem
drwxr-x--- 2 mysql mysql    12288 Jan 13 16:37 sys
drwxr-x--- 2 mysql mysql     4096 Jan 13 16:37 test

修改属组

# chown -R mysql:mysql /data/mysql/data/

启动mysql

# systemctl restart mysqld

查询数据

mysql> select * from messages;
+---------+
| message |
+---------+
| hello   |
+---------+
1 row in set (0.01 sec)

还原增量1数据

Preparing 增量1

# xtrabackup --prepare --apply-log-only --target-dir=/data/xtrabackup/base --incremental-dir=/data/xtrabackup/inc1
xtrabackup: recognized server arguments: --innodb_checksum_algorithm=crc32 --innodb_log_checksum_algorithm=strict_crc32 --innodb_data_file_path=ibdata1:12M:autoextend --innodb_log_files_in_group=2 --innodb_log_file_size=50331648 --innodb_fast_checksum=0 --innodb_page_size=16384 --innodb_log_block_size=512 --innodb_undo_directory=./ --innodb_undo_tablespaces=0 --server-id=0 --redo-log-version=1 
xtrabackup: recognized client arguments: --prepare=1 --apply-log-only=1 --target-dir=/data/xtrabackup/base --incremental-dir=/data/xtrabackup/inc1 
xtrabackup version 2.4.27 based on MySQL server 5.7.40 Linux (x86_64) (revision id: aae8e82)
incremental backup from 2768955 is enabled.
xtrabackup: cd to /data/xtrabackup/base/
xtrabackup: This target seems to be already prepared with --apply-log-only.
InnoDB: Number of pools: 1
xtrabackup: xtrabackup_logfile detected: size=8388608, start_lsn=(2769346)
xtrabackup: using the following InnoDB configuration for recovery:
xtrabackup:   innodb_data_home_dir = .
xtrabackup:   innodb_data_file_path = ibdata1:12M:autoextend
xtrabackup:   innodb_log_group_home_dir = /data/xtrabackup/inc1/
xtrabackup:   innodb_log_files_in_group = 1
xtrabackup:   innodb_log_file_size = 8388608
xtrabackup: Generating a list of tablespaces
InnoDB: Allocated tablespace ID 24 for test/messages, old maximum was 0
xtrabackup: page size for /data/xtrabackup/inc1//ibdata1.delta is 16384 bytes space id is 0
Applying /data/xtrabackup/inc1//ibdata1.delta to ./ibdata1...
xtrabackup: page size for /data/xtrabackup/inc1//test/messages.ibd.delta is 16384 bytes space id is 24
Applying /data/xtrabackup/inc1//test/messages.ibd.delta to ./test/messages.ibd...
xtrabackup: page size for /data/xtrabackup/inc1//mysql/innodb_table_stats.ibd.delta is 16384 bytes space id is 13
Applying /data/xtrabackup/inc1//mysql/innodb_table_stats.ibd.delta to ./mysql/innodb_table_stats.ibd...
xtrabackup: page size for /data/xtrabackup/inc1//mysql/time_zone_name.ibd.delta is 16384 bytes space id is 8
Applying /data/xtrabackup/inc1//mysql/time_zone_name.ibd.delta to ./mysql/time_zone_name.ibd...
xtrabackup: page size for /data/xtrabackup/inc1//mysql/help_category.ibd.delta is 16384 bytes space id is 5
...
230112 18:49:24 [01] Copying /data/xtrabackup/inc1/sys/x@0024ps_digest_95th_percentile_by_avg_us.frm to ./sys/x@0024ps_digest_95th_percentile_by_avg_us.frm
230112 18:49:24 [01]        ...done
230112 18:49:24 [00] Copying /data/xtrabackup/inc1//xtrabackup_binlog_info to ./xtrabackup_binlog_info
230112 18:49:24 [00]        ...done
230112 18:49:24 [00] Copying /data/xtrabackup/inc1//xtrabackup_slave_info to ./xtrabackup_slave_info
230112 18:49:24 [00]        ...done
230112 18:49:24 [00] Copying /data/xtrabackup/inc1//xtrabackup_info to ./xtrabackup_info
230112 18:49:24 [00]        ...done
230112 18:49:24 completed OK!

copy-back base-inc1

# xtrabackup --copy-back --target-dir=/data/xtrabackup/base/ --datadir=/data/xtrabackup/base-copy-back-inc1
xtrabackup: recognized server arguments: --datadir=/data/xtrabackup/base-copy-back-inc1 
xtrabackup: recognized client arguments: --copy-back=1 --target-dir=/data/xtrabackup/base/ 
xtrabackup version 2.4.27 based on MySQL server 5.7.40 Linux (x86_64) (revision id: aae8e82)
230112 19:18:13 [01] Copying ibdata1 to /data/xtrabackup/base-copy-back-inc1/ibdata1
230112 19:18:13 [01]        ...done
230112 19:18:13 [01] Copying ./xtrabackup_info to /data/xtrabackup/base-copy-back-inc1/xtrabackup_info
230112 19:18:13 [01]        ...done
230112 19:18:13 [01] Copying ./test/messages.ibd to /data/xtrabackup/base-copy-back-inc1/test/messages.ibd
230112 19:18:13 [01]        ...done
230112 19:18:13 [01] Copying ./test/messages.frm to /data/xtrabackup/base-copy-back-inc1/test/messages.frm
230112 19:18:13 [01]        ...done
230112 19:18:13 [01] Copying ./test/db.opt to /data/xtrabackup/base-copy-back-inc1/test/db.opt
230112 19:18:13 [01]        ...done
230112 19:18:13 [01] Copying ./mysql/user.MYI to /data/xtrabackup/base-copy-back-inc1/mysql/user.MYI
230112 19:18:13 [01]        ...done
230112 19:18:13 [01] Copying ./mysql/user.frm to /data/xtrabackup/base-copy-back-inc1/mysql/user.frm
230112 19:18:13 [01]        ...done
230112 19:18:13 [01] Copying ./mysql/time_zone_transition_type.ibd to /data/xtrabackup/base-copy-back-inc1/mysql/time_zone_transition_type.ibd
230112 19:18:13 [01]        ...done
...
230112 19:18:13 [01] Copying ./sys/x@0024ps_digest_95th_percentile_by_avg_us.frm to /data/xtrabackup/base-copy-back-inc1/sys/x@0024ps_digest_95th_percentile_by_avg_us.frm
230112 19:18:13 [01]        ...done
230112 19:18:13 [01] Copying ./xtrabackup_binlog_pos_innodb to /data/xtrabackup/base-copy-back-inc1/xtrabackup_binlog_pos_innodb
230112 19:18:13 [01]        ...done
230112 19:18:13 completed OK!

停止mysql

# systemctl stop mysqld

同步数据

# rsync -avrP /data/xtrabackup/base-copy-back-inc1/ /data/mysql/data/

mysql数据库目录

# ls -l /data/mysql/data/
total 110668
-rw-r----- 1 mysql mysql       56 Jan 12 13:40 auto.cnf
-rw------- 1 mysql mysql     1680 Jan 12 13:40 ca-key.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 ca.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 client-cert.pem
-rw------- 1 mysql mysql     1680 Jan 12 13:40 client-key.pem
-rw-r----- 1 mysql mysql      436 Jan 13 16:37 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Jan 13 16:37 ibdata1
-rw-r----- 1 mysql mysql 50331648 Jan 13 16:36 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Jan 12 19:22 ib_logfile1
drwxr-x--- 2 mysql mysql     4096 Jan 13 16:37 mysql
drwxr-x--- 2 mysql mysql     4096 Jan 13 16:37 performance_schema
-rw------- 1 mysql mysql     1680 Jan 12 13:40 private_key.pem
-rw-r--r-- 1 mysql mysql      452 Jan 12 13:40 public_key.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 server-cert.pem
-rw------- 1 mysql mysql     1680 Jan 12 13:40 server-key.pem
drwxr-x--- 2 mysql mysql    12288 Jan 13 16:37 sys
drwxr-x--- 2 mysql mysql     4096 Jan 13 16:37 test

修改属组

# chown -R mysql:mysql /data/mysql/data/

重启mysql

# systemctl restart mysqld

查询数据

mysql> select * from messages;
+---------+
| message |
+---------+
| hello   |
| inc1    |
+---------+
2 rows in set (0.00 sec)

还原增量2数据

Preparing 增量2

注意: 最后一次增量preparing 不加--apply-log-only参数

# xtrabackup --prepare  --target-dir=/data/xtrabackup/base --incremental-dir=/data/xtrabackup/inc2
xtrabackup: recognized server arguments: --innodb_checksum_algorithm=crc32 --innodb_log_checksum_algorithm=strict_crc32 --innodb_data_file_path=ibdata1:12M:autoextend --innodb_log_files_in_group=2 --innodb_log_file_size=50331648 --innodb_fast_checksum=0 --innodb_page_size=16384 --innodb_log_block_size=512 --innodb_undo_directory=./ --innodb_undo_tablespaces=0 --server-id=0 --redo-log-version=1 
xtrabackup: recognized client arguments: --prepare=1 --apply-log-only=1 --target-dir=/data/xtrabackup/base --incremental-dir=/data/xtrabackup/inc2 
xtrabackup version 2.4.27 based on MySQL server 5.7.40 Linux (x86_64) (revision id: aae8e82)
incremental backup from 2769346 is enabled.
xtrabackup: cd to /data/xtrabackup/base/
xtrabackup: This target seems to be already prepared with --apply-log-only.
InnoDB: Number of pools: 1
xtrabackup: xtrabackup_logfile detected: size=8388608, start_lsn=(2769704)
xtrabackup: using the following InnoDB configuration for recovery:
xtrabackup:   innodb_data_home_dir = .
xtrabackup:   innodb_data_file_path = ibdata1:12M:autoextend
xtrabackup:   innodb_log_group_home_dir = /data/xtrabackup/inc2/
xtrabackup:   innodb_log_files_in_group = 1
xtrabackup:   innodb_log_file_size = 8388608
xtrabackup: Generating a list of tablespaces
InnoDB: Allocated tablespace ID 24 for test/messages, old maximum was 0
xtrabackup: page size for /data/xtrabackup/inc2//ibdata1.delta is 16384 bytes space id is 0
Applying /data/xtrabackup/inc2//ibdata1.delta to ./ibdata1...
xtrabackup: page size for /data/xtrabackup/inc2//test/messages.ibd.delta is 16384 bytes space id is 24
.....
230112 18:52:35 [01] Copying /data/xtrabackup/inc2/sys/waits_by_host_by_latency.frm to ./sys/waits_by_host_by_latency.frm
230112 18:52:35 [01]        ...done
230112 18:52:35 [01] Copying /data/xtrabackup/inc2/sys/x@0024ps_digest_95th_percentile_by_avg_us.frm to ./sys/x@0024ps_digest_95th_percentile_by_avg_us.frm
230112 18:52:35 [01]        ...done
230112 18:52:35 [00] Copying /data/xtrabackup/inc2//xtrabackup_binlog_info to ./xtrabackup_binlog_info
230112 18:52:35 [00]        ...done
230112 18:52:35 [00] Copying /data/xtrabackup/inc2//xtrabackup_slave_info to ./xtrabackup_slave_info
230112 18:52:35 [00]        ...done
230112 18:52:35 [00] Copying /data/xtrabackup/inc2//xtrabackup_info to ./xtrabackup_info
230112 18:52:35 [00]        ...done
230112 18:52:35 completed OK!

copy-back base-inc2

# xtrabackup --copy-back --target-dir=/data/xtrabackup/base/ --datadir=/data/xtrabackup/base-copy-back-inc2
xtrabackup: recognized server arguments: --datadir=/data/xtrabackup/base-copy-back-inc2 
xtrabackup: recognized client arguments: --copy-back=1 --target-dir=/data/xtrabackup/base/ 
xtrabackup version 2.4.27 based on MySQL server 5.7.40 Linux (x86_64) (revision id: aae8e82)
230112 19:22:47 [01] Copying ib_logfile0 to /data/xtrabackup/base-copy-back-inc2/ib_logfile0
230112 19:22:47 [01]        ...done
230112 19:22:47 [01] Copying ib_logfile1 to /data/xtrabackup/base-copy-back-inc2/ib_logfile1
230112 19:22:47 [01]        ...done
230112 19:22:47 [01] Copying ibdata1 to /data/xtrabackup/base-copy-back-inc2/ibdata1
230112 19:22:47 [01]        ...done
230112 19:22:47 [01] Copying ./xtrabackup_info to /data/xtrabackup/base-copy-back-inc2/xtrabackup_info
230112 19:22:47 [01]        ...done
230112 19:22:47 [01] Copying ./test/messages.ibd to /data/xtrabackup/base-copy-back-inc2/test/messages.ibd
230112 19:22:47 [01]        ...done
230112 19:22:47 [01] Copying ./test/messages.frm to /data/xtrabackup/base-copy-back-inc2/test/messages.frm
230112 19:22:47 [01]        ...done
230112 19:22:47 [01] Copying ./test/db.opt to /data/xtrabackup/base-copy-back-inc2/test/db.opt
230112 19:22:47 [01]        ...done
230112 19:18:13 [01] Copying ./mysql/user.MYI to /data/xtrabackup/base-copy-back-inc1/mysql/user.MYI
230112 19:18:13 [01]        ...done
230112 19:18:13 [01] Copying ./mysql/user.frm to /data/xtrabackup/base-copy-back-inc1/mysql/user.frm
230112 19:18:13 [01]        ...done
230112 19:18:13 [01] Copying ./mysql/time_zone_transition_type.ibd to /data/xtrabackup/base-copy-back-inc1/mysql/time_zone_transition_type.ibd
230112 19:18:13 [01]        ...done
...
230112 19:22:47 [01] Copying ./sys/x@0024io_global_by_file_by_bytes.frm to /data/xtrabackup/base-copy-back-inc2/sys/x@0024io_global_by_file_by_bytes.frm
230112 19:22:47 [01]        ...done
230112 19:22:47 [01] Copying ./sys/statement_analysis.frm to /data/xtrabackup/base-copy-back-inc2/sys/statement_analysis.frm
230112 19:22:47 [01]        ...done
230112 19:22:47 [01] Copying ./sys/waits_by_host_by_latency.frm to /data/xtrabackup/base-copy-back-inc2/sys/waits_by_host_by_latency.frm
230112 19:22:47 [01]        ...done
230112 19:22:47 [01] Copying ./sys/x@0024ps_digest_95th_percentile_by_avg_us.frm to /data/xtrabackup/base-copy-back-inc2/sys/x@0024ps_digest_95th_percentile_by_avg_us.frm
230112 19:22:47 [01]        ...done
230112 19:22:47 [01] Copying ./xtrabackup_binlog_pos_innodb to /data/xtrabackup/base-copy-back-inc2/xtrabackup_binlog_pos_innodb
230112 19:22:47 [01]        ...done
230112 19:22:47 completed OK!

停止mysql

# systemctl stop mysqld

同步数据

# rsync -avrP /data/xtrabackup/base-copy-back-inc2/ /data/mysql/data/

查看mysql数据目录

# ls -l /data/mysql/data/
total 110668
-rw-r----- 1 mysql mysql       56 Jan 12 13:40 auto.cnf
-rw------- 1 mysql mysql     1680 Jan 12 13:40 ca-key.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 ca.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 client-cert.pem
-rw------- 1 mysql mysql     1680 Jan 12 13:40 client-key.pem
-rw-r----- 1 root  root       436 Jan 13 16:37 ib_buffer_pool
-rw-r----- 1 root  root  12582912 Jan 13 16:37 ibdata1
-rw-r----- 1 mysql mysql 50331648 Jan 13 16:36 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Jan 12 19:22 ib_logfile1
drwxr-x--- 2 root  root      4096 Jan 13 16:37 mysql
drwxr-x--- 2 root  root      4096 Jan 13 16:37 performance_schema
-rw------- 1 mysql mysql     1680 Jan 12 13:40 private_key.pem
-rw-r--r-- 1 mysql mysql      452 Jan 12 13:40 public_key.pem
-rw-r--r-- 1 mysql mysql     1112 Jan 12 13:40 server-cert.pem
-rw------- 1 mysql mysql     1680 Jan 12 13:40 server-key.pem
drwxr-x--- 2 root  root     12288 Jan 13 16:37 sys
drwxr-x--- 2 root  root      4096 Jan 13 16:37 test
-rw-r----- 1 mysql mysql       22 Jan 12 19:22 xtrabackup_binlog_pos_innodb
-rw-r----- 1 root  root       633 Jan 13 16:37 xtrabackup_info
-rw-r----- 1 mysql mysql        1 Jan 12 19:22 xtrabackup_master_key_id
-rw-r----- 1 root  root         0 Jan 13 16:37 xtrabackup_slave_info

修改属组

# chown -R mysql:mysql /data/mysql/data/

重启mysql

# systemctl restart mysqld

查询数据

mysql> select * from messages;
+---------+
| message |
+---------+
| hello   |
| inc1    |
| inc2    |
+---------+
3 rows in set (0.00 sec)
posted @ 2023-01-12 19:25  小吉猫  阅读(126)  评论(0编辑  收藏  举报