[root@node01 ~]# wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm
[root@node01 ~]# rpm -ivh percona-release-latest.noarch.rpm 
[root@node01 ~]# yum install -y percona-xtrabackup-24

[mysql@node01 ~]$ mysql -uroot -pabcd.1234 -hnode01
(root@node01) > create user xtrabackup@'localhost' identified by 'xtrabackup';  
Query OK, 0 rows affected (0.01 

(root@node01) > grant reload,lock tables,replication client,process on *.* to xtrabackup@'localhost'; 
Query OK, 0 rows affected (0.00 sec)

(root@node01) > flush privileges;
Query OK, 0 rows affected (0.01 sec)

(root@node01) > show grants for 'xtrabackup'@'localhost';
+-------------------------------------------------------------------------------------------+
| Grants for xtrabackup@localhost                                                           |
+-------------------------------------------------------------------------------------------+
| GRANT RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'xtrabackup'@'localhost' |
+-------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

[mysql@node01 ~]$ xtrabackup --backup --user=xtrabackup --password=xtrabackup --target-dir=/home/mysql/backup  

[mysql@node01 ~]$ ssh-keygen
[mysql@node01 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub mysql@node02
[mysql@node01 ~]$ ssh node02 date
Sun Apr  9 15:12:54 CST 2023

[mysql@node01 ~]$ scp -r backup/* node02:/home/mysql/backup/  

[mysql@node01 ~]# tpcc-mysql/tpcc_start -h 192.168.1.101 -P 3306 -d tpcc10 -u tpcc -p tpcc -w 10 -c 10 -l 300
[root@node02 ~]# wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm
[root@node02 ~]# rpm -ivh percona-release-latest.noarch.rpm 
[root@node02 ~]# yum install -y percona-xtrabackup-24

[mysql@node02 ~]$ xtrabackup --prepare --target-dir=/home/mysql/backup
[mysql@node02 ~]$ xtrabackup --copy-back --target-dir=/home/mysql/backup

[mysql@node02 ~]$ /etc/init.d/mysql.server start
[mysql@node02 ~]$ /etc/init.d/mysql.server status

[mysql@node02 ~]$ cat backup/xtrabackup_binlog_info
mysql-bin.000016        95923365

[mysql@node02 ~]$ cd binlog
[mysql@node02 binlog]$ mysqlbinlog --start-position=95923365 mysql-bin.000016 mysql-bin.000017 | mysql -uroot -pabcd.1234
[mysql@node01 ~]$ vim full_backup.sh 
#!/bin/bash
user='root'
passwd='abcd.1234'
backup_dir='/home/mysql/backup'
/bin/xtrabackup --backup --user=$user --password=$passwd --target-dir=$backup_dir/`date '+%Y-%m-%d_%H-%M-%S'`
last_day=$(date -d "7 days ago" +%Y-%m-%d)
filename=$(find $backup_dir -name "$last_day*" -print|awk -F / '{print $NF}')
if [ ! -n "$filename" ]; then
  echo "null"
else
rm -rf $backup_dir/$filename
fi

[mysql@node01 ~]$ chmod a+x *.sh  
[mysql@node01 ~]$ crontab -e
0 2 * * * /home/mysql/full_backup.sh > /home/mysql/backup/full_backup.log 2>&1
[mysql@node01 ~]$ xtrabackup --backup --user=xtrabackup --password=xtrabackup \
--stream=tar | ssh mysql@node02 \ "gzip >/home/mysql/backup/`date '+%Y-%m-%d_%H-%M-%S'`.tar.gz"

[mysql@node02 ~]# cd /home/mysql/backup
[mysql@node02 backup]$ tar izxvf 2019-02-18_10-42-09.tar.gz