17. xtrabackup安装使用¶
1. 下载rpm包¶
# 浏览器访问: https://www.percona.com/downloads/Percona-XtraBackup-LATEST/#
# 选择下载的版本
# 选择平台
# 选择好后,就会出现下载链接
1. 2.4版本下载¶
# 2.4版本的下载地址 https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/
# 选择好版本和平台后,就可以下载了
# 一共4个选项,下载第二个
percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm
2. 下载二进制包¶
# 选择目前最新版本:8.0.26-18
# 选择Linux-Generic,二进制包
# 选择第3个,558MB!点击下载
# 二进制包比较大,但是解压缩就能用,类似绿色软件!
2. 安装依赖环境¶
yum install -y perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
3. 安装rpm¶
#1.准备安装包
[root@151 ~]# ls
percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm
#2.安装2.4.22
[root@151 ~]# rpm -ivh percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm
warning: percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
error: Failed dependencies:
libev.so.4()(64bit) is needed by percona-xtrabackup-24-2.4.22-1.el7.x86_64
perl(Digest::MD5) is needed by percona-xtrabackup-24-2.4.22-1.el7.x86_64
#3.下载依赖包1
[root@151 ~]# yum install -y libev
#4.查找依赖包2
[root@151 ~]# yum list |grep perl|grep Digest
#5.下载依赖包2
[root@151 ~]# yum install -y perl-Digest-MD5.x86_64
#6.再次安装2.4.22,成功
[root@151 ~]# rpm -ivh percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm
warning: percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:percona-xtrabackup-24-2.4.22-1.el################################# [100%]
#7.查看安装的包信息
[root@151 ~]# rpm -qa |grep xtrabackup
percona-xtrabackup-24-2.4.22-1.el7.x86_64
##8.查看命令
[root@151 ~]# inno
innobackupex innochecksum
4. xbk备份实现原理¶
1.非innodb引擎,锁定表,直接复制表数据文件
2.innodb引擎
1)在备份开始时刻,立即触发checkpoint动作,将内存数据刷写到磁盘
2)拷贝此时所有的数据文件,以及在此过程中产生的日志文件(redo、undo)
数据页+日志
备份完成后:
ibd
frm
idata1
热备:备份某个时间点的数据,以及备份过程中产生的变化数据
# xbk只能实现全备和增量备份
5. 备份命令简单使用¶
mkdir /backup
#加上socket文件
innobackupex --user=root --password=123456 -S /application/mysql/tmp/mysql.sock /backup
#执行后,生成以当前时间命名的备份目录
[root@151 ~]# ls /backup/
2021-04-29_17-15-22
[root@151 ~]# ls /backup/2021-04-29_17-15-22/
backup-my.cnf ibdata1 luffy luffy2 mysql performance_schema test world xtrabackup_checkpoints xtrabackup_info xtrabackup_logfile
[root@151 ~]#
#备份目录中的文件
xtrabackup_binlog_info: #备份时间点二进制日志信息
xtrabackup_checkpoints: #
xtrabackup_info: #详细显示
xtrabackup_logfile: #备份期间产生的redo日志文件
6. 全备¶
#不加时间戳目录,自己指定目录
innobackupex --user=root --password=123456 --no-timestamp /backup/full
#加上socket文件测试
innobackupex --user=root --password=123456 -S /application/mysql/tmp/mysql.sock --no-timestamp /backup/full
[root@151 ~]# innobackupex --user=root --password=123456 -S /application/mysql/tmp/mysql.sock --no-timestamp /backup/full
[root@151 ~]# ls /backup/
2021-04-29_17-15-22 full
[root@151 ~]# ls /backup/full/
backup-my.cnf ibdata1 luffy luffy2 mysql performance_schema test world xtrabackup_checkpoints xtrabackup_info xtrabackup_logfile
7. 恢复全备¶
1.停库
pkill mysqld
netstat -tunlp|grep 330
2.删数据
ls /application/mysql/data/
rm -rf /application/mysql/data/*
ls /application/mysql/data/
[root@151 ~]# pkill mysqld
[root@151 ~]# netstat -tunlp|grep 330
[root@151 ~]#
[root@151 ~]#
[root@151 ~]# ls /application/mysql/data/
151.err auto.cnf ibdata1 ib_logfile0 ib_logfile1 luffy luffy2 mysql performance_schema test world
[root@151 ~]# rm -rf /application/mysql/data/*
[root@151 ~]# ls /application/mysql/data/
[root@151 ~]#
3.准备备份(使用redo前滚,undo回滚,保证数据一致性)
innobackupex --apply-log /backup/full/
root@151 ~]# innobackupex --apply-log /backup/full/
4.恢复数据:
#方法1
cp -a /backup/full/* /application/mysql/data/
#方法2
#加数据目录,加上测试
innobackupex --copy-back --datadir=/application/mysql/data /backup/full/
8. 改权限¶
chown -R mysql.mysql /application/mysql/data/*
9. 起数据库,验证数据¶
/etc/init.d/mysqld start
mysql -uroot -p
show databases;
#成功!
[root@151 ~]# chown -R mysql.mysql /application/mysql/data/*
[root@151 ~]#
[root@151 ~]#
[root@151 ~]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/application/mysql-5.6.36/data/151.err'.
.. SUCCESS!
[root@151 ~]#
[root@151 ~]#
[root@151 ~]#
[root@151 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.36 Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| luffy |
| luffy2 |
| mysql |
| performance_schema |
| test |
| world |
+--------------------+
7 rows in set (0.00 sec)
mysql>
最后更新:
2022-02-20 11:21:58