安装Percona XtraBackup
RHEL/Centos 5 不支持直接从远程位置安装软件包,因此需要先下载软件包并使用 rpm 手动安装:一下介绍的是yum安装方法
1、安装配置工具percona-release
为 percona-release 安装 yum 存储库 :注意(通过root身份)
$ yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
安装percona-release 工具
出现一下提示为安装成功
Retrieving https://repo.percona.com/yum/percona-release-latest.noarch.rpm
Preparing... ########################################### [100%]
1:percona-release ########################################### [100%]
2、测试存储库
$ yum list | grep percona
...
percona-xtrabackup-20.x86_64 2.0.8-587.rhel5 percona-release-x86_64
percona-xtrabackup-20-debuginfo.x86_64 2.0.8-587.rhel5 percona-release-x86_64
percona-xtrabackup-20-test.x86_64 2.0.8-587.rhel5 percona-release-x86_64
percona-xtrabackup-21.x86_64 2.1.9-746.rhel5 percona-release-x86_64
percona-xtrabackup-21-debuginfo.x86_64 2.1.9-746.rhel5 percona-release-x86_64
percona-xtrabackup-22.x86_64 2.2.13-1.el5 percona-release-x86_64
percona-xtrabackup-22-debuginfo.x86_64 2.2.13-1.el5 percona-release-x86_64
percona-xtrabackup-debuginfo.x86_64 2.3.5-1.el5 percona-release-x86_64
percona-xtrabackup-test.x86_64 2.3.5-1.el5 percona-release-x86_64
percona-xtrabackup-test-21.x86_64 2.1.9-746.rhel5 percona-release-x86_64
percona-xtrabackup-test-22.x86_64 2.2.13-1.el5 percona-release-x86_64
...
3、启用存储库:
如果 Percona XtraBackup 打算与 上游MySQL服务器,你只需要启用存储库:。toolspercona-release enable-only tools
$ percona-release enable-only tools release
4、安装percona-xtrabackup-24
通过运行以下命令安装 Percona XtraBackup:
$ yum install percona-xtrabackup-24
如果可以用tab自动补全 xtrabackup 命令,则说明安装成功
如何使用Percona XtraBackup进行完全备份
完全备份,也称为全量备份,是指对某一个时间点上的所有数据或应用进行的一个完全拷贝。命令如下
$ xtrabackup --backup --target-dir=/root/mysql_backup -uroot -p你的密码
--backup 表示备份
--target-dir 表示要备份到哪个目录
备份后可查看目录
[root@localhost mysql_backup]# ls -l
total 131120
-rw-r-----. 1 root root 487 Mar 13 09:10 backup-my.cnf
-rw-r-----. 1 root root 325 Mar 13 09:10 ib_buffer_pool
-rw-r-----. 1 root root 12582912 Mar 13 09:23 ibdata1
-rw-r-----. 1 root root 50331648 Mar 13 09:23 ib_logfile0
-rw-r-----. 1 root root 50331648 Mar 13 09:21 ib_logfile1
-rw-r-----. 1 root root 12582912 Mar 13 09:23 ibtmp1
drwxr-x---. 2 root root 4096 Mar 13 09:10 mysql
drwxr-x---. 2 root root 8192 Mar 13 09:10 performance_schema
drwxr-x---. 2 root root 60 Mar 13 09:10 student_db
drwxr-x---. 2 root root 8192 Mar 13 09:10 sys
drwxr-x---. 2 root root 50 Mar 13 09:10 test
-rw-r-----. 1 root root 135 Mar 13 09:23 xtrabackup_checkpoints
-rw-r-----. 1 root root 436 Mar 13 09:10 xtrabackup_info
-rw-r-----. 1 root root 8388608 Mar 13 09:21 xtrabackup_logfile
-rw-r--r--. 1 root root 1 Mar 13 09:23 xtrabackup_master_key_id
恢复备份
使用该选项创建备份后,您需要准备备份,然后还原它。数据文件不是时间点 在它们准备好之前是一致的,因为它们是在程序运行的不同时间复制的,并且它们可能在发生这种情况时被更改。
恢复备份前,可以先删掉一个数据库,以此作为验证
准备备份
$ xtrabackup --prepare --target-dir=/root/mysql_backup -uroot -p你的密码
$ service mysqld stop #先关闭数据库
恢复备份 利用rsync,将备份的文件mysql_backup/ 恢复到/var/lib/mysql/
$ rsync -avrP /root/mysql_backup/ /var/lib/mysql/
$ service mysqld start #开启数据库
增量备份
xtrabackup 支持增量备份,这意味着它们只能复制自上次备份以来更改的所有数据。
注意
MyRocks 存储引擎上的增量备份无法确定早期的完整备份或增量备份是否包含相同的文件。Percona XtraBackup 每次备份时都会复制所有 MyRocks 文件。
您可以在每个全量备份之间执行多个增量备份,因此您可以设置一个备份过程,例如每周一次全量备份和每天增量备份,或者每天全量备份和每小时增量备份。
删除之前的备份
$ rm -rf /root/mysql_backup/*
创建一个完全备份
$ innobackupex --user=root xtrabackup --password=000000
在数据库中添加一个新库wwww
[root@localhost mysql_backup]# innobackupex --user=root --incremental xtrabackup/ --incremental-basedir=xtrabackup/2024-03-14_05-04-00/ --password=000000
--incremental xtrabackup/ 创建到xtrabackup下
--incremental-basedir=xtrabackup/2024-03-14_05-04-00/ 基于这个完全备份
[root@localhost mysql_backup]# ls xtrabackup/
2024-03-14_05-04-00 2024-03-14_05-17-09
备份恢复
[root@localhost mysql_backup]#systemctl stop mariadb 停止MySQL
[root@localhost mysql_backup]# rm -rf /var/lib/mysql/* 删除便于测试
[root@localhost mysql_backup]# innobackupex --copy-back xtrabackup/2024-03-14_05-04-00/ 恢复数据
[root@localhost mysql_backup]# chown -R mysql.mysql /var/lib/mysql 修改文件属性
[root@localhost mysql_backup]# systemctl start mysqld 启动查看MySQL