[root@localhost ~]# yum install glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel zlib cmake gcc-c++ gcc
[root@localhost soft]# gunzip mydumper-0.6.2.tar.gz
[root@localhost soft]# tar -xvf mydumper-0.6.2.tar
[root@localhost ~]# cd /u01/mydumper-0.6.2/
[root@localhost mydumper-0.6.2]# cmake .
[root@localhost mydumper-0.6.2]# make
[root@localhost mydumper-0.6.2]# make install
[root@localhost ~]# vi /etc/profile
--添加:
export PATH=$PATH:/usr/local/mysql/bin:/u01/mydumper/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib
[root@localhost ~]# source /etc/profile
[root@localhost ~]# mydumper --help
[root@localhost ~]# mydumper -B test -T sbtest -o /u01/databak/mydumper/ -u root -p root -h 192.168.100.111 -P 3306
[root@localhost mydumper]# ls -l
total 7076
-rw-r--r--. 1 root root 129 Apr 26 17:19 metadata
-rw-r--r--. 1 root root 358 Apr 26 17:19 test.sbtest-schema.sql
-rw-r--r--. 1 root root 7235617 Apr 26 17:19 test.sbtest.sql
[root@localhost ~]# mydumper -B test -o /u01/databak/mydumper/ -u root -p root -h 192.168.100.111 -P 3306
--如果不指定备份哪个表,就会备份所有的表
[root@localhost mydumper]# ll
total 7092
-rw-r--r--. 1 root root 129 Apr 26 17:22 metadata
-rw-r--r--. 1 root root 358 Apr 26 17:22 test.sbtest-schema.sql
-rw-r--r--. 1 root root 7235617 Apr 26 17:22 test.sbtest.sql
-rw-r--r--. 1 root root 153 Apr 26 17:22 test.t1-schema.sql
-rw-r--r--. 1 root root 156 Apr 26 17:22 test.t1.sql
-rw-r--r--. 1 root root 272 Apr 26 17:22 test.t-schema.sql
-rw-r--r--. 1 root root 145 Apr 26 17:22 test.t.sql
mysql> drop table sbtest;
Query OK, 0 rows affected (0.11 sec)
[root@localhost ~]# myloader -d /u01/databak/mydumper/ -B test -u root -p root -h 192.168.100.111 -P 3306
** (myloader:8060): CRITICAL **: Error restoring test.t from file test.t-schema.sql: Table ‘t‘ already exists
** (myloader:8060): CRITICAL **: Error restoring test.t1 from file test.t1-schema.sql: Table ‘t1‘ already exists
** (myloader:8060): CRITICAL **: Error restoring test.t from file test.t.sql: Duplicate entry ‘2‘ for key ‘PRIMARY‘
mysql> select count(*) from sbtest;
+----------+
| count(*) |
+----------+
| 100018 |
+----------+
1 row in set (0.01 sec)
[root@localhost soft]# ls -l
-rw-r--r--. 1 root root 64880640 Apr 26 20:14 Percona-XtraBackup-2.4.22-rc99a781-el7-x86_64-bundle.tar
-rw-rw-r--. 1 root root 7992904 Mar 10 17:56 percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm
-rw-rw-r--. 1 root root 39827664 Mar 10 17:56 percona-xtrabackup-24-debuginfo-2.4.22-1.el7.x86_64.rpm
-rw-rw-r--. 1 root root 17055664 Mar 10 17:56 percona-xtrabackup-test-24-2.4.22-1.el7.x86_64.rpm
[root@localhost ~]# yum install perl-DBD-mysql
[root@localhost ~]# yum install libev*
--http://rpmfind.net/linux/rpm2html/search.php?query=libev&submit=Search+...&system=&arch=
[root@localhost soft]# wget http://rpmfind.net/linux/centos/7.9.2009/extras/x86_64/Packages/libev-4.15-7.el7.x86_64.rpm
[root@localhost soft]# rpm -ivh libev-4.15-7.el7.x86_64.rpm
[root@localhost soft]# rpm -ivh percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm
[root@localhost soft]# rpm -ivh percona-xtrabackup-24-debuginfo-2.4.22-1.el7.x86_64.rpm
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --no-timestamp --user root --password root --socket=/tmp/mysql.sock /u01/databak/xtrabackup/full_20210426_bak
--参数:--no-timestamp,不使用默认的时间格式
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --no-timestamp -u root -p root -H 192.168.100.111 -P 3306 /u01/bakdata/xtrabackup/full_20210629
[root@localhost ~]# ls -l /u01/databak/xtrabackup/
total 0
drwxr-x---. 5 root root 202 Apr 26 20:52 full_20210426_bak
[root@localhost ~]# cd /u01/databak/xtrabackup/full_20210426_bak
[root@localhost full_20210426_bak]# ls -l
total 1048604
-rw-r-----. 1 root root 484 Apr 26 20:52 backup-my.cnf
-rw-r-----. 1 root root 1073741824 Apr 26 20:52 ibdata1
drwxr-x---. 2 root root 4096 Apr 26 20:52 mysql
drwxr-x---. 2 root root 4096 Apr 26 20:52 performance_schema
drwxr-x---. 2 root root 124 Apr 26 20:52 test
-rw-r-----. 1 root root 22 Apr 26 20:52 xtrabackup_binlog_info
-rw-r-----. 1 root root 141 Apr 26 20:52 xtrabackup_checkpoints
-rw-r-----. 1 root root 575 Apr 26 20:52 xtrabackup_info
-rw-r-----. 1 root root 2560 Apr 26 20:52 xtrabackup_logfile
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/tmp/mysql.sock /u01/databak/xtrabackup/
[root@localhost xtrabackup]# pwd
/u01/databak/xtrabackup
[root@localhost xtrabackup]# ls -l
total 0
drwxr-x---. 5 root root 202 Apr 26 21:00 2021-04-26_21-00-53
drwxr-x---. 5 root root 202 Apr 26 20:52 full_20210426_bak
--就会产生一个默认格式的文件夹,所以建议使用--no-timestamp参数,自己定义备份目录的名称格式
mysql> drop database test;
Query OK, 4 rows affected (0.09 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/tmp/mysql.sock --apply-log /u01/databak/xtrabackup/full_20210426_bak/
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
--并没有恢复
[root@localhost ~]# pkill mysql
[root@localhost ~]# ps -ef|grep mysql
root 9026 2144 0 21:17 pts/1 00:00:00 grep --color=auto mysql
[root@localhost ~]# cd /u01/data
[root@localhost data]# mv mysql mysql_old
[root@localhost data]# mkdir mysql
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/tmp/mysq.sock --copy-back /u01/databak/xtrabackup/full_20210427/
--或者更直接的方式:
[root@localhost data]# cp -r /u01/databak/xtrabackup/full_20210426_bak /u01/data/mysql
[root@localhost data]# chown mysql:mysql -R /u01/data/mysql
[root@localhost ~]# mysqld_safe --defaults-file=/etc/my.cnf &
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> use test;
mysql> select count(*) from sbtest;
+----------+
| count(*) |
+----------+
| 100018 |
+----------+
1 row in set (0.06 sec)
--数据已恢复
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/tmp/mysql.sock --no-timestamp /u01/databak/xtrabackup/full_all_20210426
mysql> insert into t select 4;
Query OK, 1 row affected (0.02 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> insert into t select 5;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from t;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+------+
5 rows in set (0.00 sec)
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/tmp/mysql.sock --no-timestamp --incremental --incremental-basedir=/u01/databak/xtrabackup/full_all_20210426 /u01/databak/xtrabackup/full_incr_20210426
--增量备份需要指明参数,指明在哪个全备的基础上进行增备
mysql> delete from t where id<=3;
Query OK, 3 rows affected (0.01 sec)
mysql> select * from t;
+------+
| id |
+------+
| 4 |
| 5 |
+------+
2 rows in set (0.00 sec)
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/tmp/mysql.sock --no-timestamp --incremental --incremental-basedir=/u01/databak/xtrabackup/full_incr_20210426 /u01/databak/xtrabackup/full_incr_20210427
--需要添加参数指明增量备份,并且在增量备份的基础上再进行增量备份(根据备份目录指明)。
[root@localhost xtrabackup]# ls -l
total 0
drwxr-x---. 5 root root 202 Apr 26 21:55 full_all_20210426
drwxr-x---. 5 root root 228 Apr 26 22:00 full_incr_20210426
drwxr-x---. 5 root root 228 Apr 26 22:07 full_incr_20210427
[root@localhost xtrabackup]# cd full_all_20210426
[root@localhost full_all_20210426]# ls
backup-my.cnf mysql test xtrabackup_checkpoints xtrabackup_logfile
ibdata1 performance_schema xtrabackup_binlog_info xtrabackup_info
[root@localhost full_all_20210426]# cat xtrabackup_checkpoints
backup_type = full-backuped --指出了备份类型是全库备份
from_lsn = 0
to_lsn = 123881427
last_lsn = 123881427
compact = 0
recover_binlog_info = 0
flushed_lsn = 123881427
mysql> insert into t select 6;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> select * from t;
+------+
| id |
+------+
| 4 |
| 5 |
| 6 |
+------+
3 rows in set (0.00 sec)
mysql> drop table t;
Query OK, 0 rows affected (0.02 sec)
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --scoket=/tmp/mysql.sock --apply-log --redo-only /u01/databak/xtrabackup/full_all_20210426/
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/tmp/mysql.sock --apply-log --redo-only /u01/databak/xtrabackup/full_all_20210426 --incremental-dir=/u01/databak/xtrabackup/full_incr_20210426
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/tmp/mysql.sock --apply-log /u01/databak/xtrabackup/full_all_20210426 --incremental-dir=/u01/databak/xtrabackup/full_incr_20210427
[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/tmp/mysql.sock --apply-log /u01/databak/xtrabackup/full_all_20210426/
[root@localhost ~]# pkill mysql
[root@localhost ~]# mv /u01/data/mysql /u01/data/mysql_old1
[root@localhost ~]# cp -r /u01/databak/xtrabackup/full_all_20210426/ /u01/data/mysql
[root@localhost ~]# chown mysql:mysql -R /u01/data/mysql
[root@localhost ~]# mysqld_safe --defaults-file=/etc/my.cnf &
mysql> use test
mysql> select * from t;
+------+
| id |
+------+
| 4 |
| 5 |
+------+
2 rows in set (0.00 sec)
--可以看到,部分业务数据已恢复
[root@localhost ~]# mysqlbinlog --start-position=120 /u01/data/mysql/mysql-bin.000001 | mysql -uroot -proot
[root@localhost ~]# cat /u01/databak/xtrabackup/full_20210427/xtrabackup_binlog_info
mysql-bin.000001 120
原文:https://www.cnblogs.com/youdiancaidaren/p/14950221.html