MySQL 备份工具 XtraBackup 系列1 --- 安装
一、承上启下
1. MySQL安装
https://www.cnblogs.com/eagle6688/p/8975090.html
2. 备份分类
热备:数据库在运行状态中进行备份;
温备:数据库在运行状态中加读写锁,然后进行备份;
冷备:数据库在停止状态进行备份。
3. 简介
Percona XtraBackup是一个开源的针对基于MySQL数据库的热备工具,在备份过程中XtraBackup不会锁定数据库。
Percona XtraBackup支持从MySQL 8.0的InnoDB, XtraDB和MyISAM数据引擎中备份数据。
需要注意的是,对于MyISAM数据引擎,XtraBackup在执行期间会锁库以免造成数据不一致问题,对于InnoDB数据库则不会上锁。
从8.0.5版本开始,innobackupex作为一个单独的命令被移除掉,XtraBackup包含了XtraBackup(C语言)和innobackupex(Perl语言)脚本。
二、安装与配置
1. 安装
(1) 安装Percona yum repository
sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y
(2) 启用repository
sudo percona-release enable-only tools release
(3) 安装XtraBackup
sudo yum install percona-xtrabackup-80 -y
(4) 安装qpress
sudo yum install qpress -y
(5) 安装ZSTD压缩
sudo yum install zstd -y
2. 系统用户配置
如果你不用root来运行XtraBackup命令,则需要给你指定的用户名赋予必要的权限。
(1) 将用户名添加至"mysql"用户组
sudo gpasswd -a [username] mysql
(2) 创建备份数据目录
sudo mkdir -p /data/backups/mysql sudo chown -R [username]: /data
3. MySQL用户
创建专门用于数据备份的MySQL用户。
(1) 登录MySQL
mysql -u root -p
(2) 创建用户bkpuser
CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 'bkppassword';
(3) 赋权
为执行全量备份,XtraBackup需要新用户bkpuser至少拥有backup_admin, process, reload table, lock tables和replication client权限:
GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost'; GRANT SELECT ON performance_schema.log_status TO 'bkpuser'@'localhost'; GRANT SELECT ON performance_schema.keyring_component_status TO bkpuser@'localhost'; GRANT SELECT ON performance_schema.replication_group_members TO bkpuser@'localhost'; FLUSH PRIVILEGES;
(4) 退出MySQL:
exit
4. datadir
在CentOS 7系统,MySQL的数据保存在/var/lib/mysql目录中,这个目录又被称为datadir,默认情况下该目录仅允许用户"mysql"访问,XtraBackup需要访问该数据目录来创建备份文件,所以我们需要对上面创建的新用户bkuser所在的组进行赋权。
sudo chown -R mysql: /var/lib/mysql
sudo find /var/lib/mysql -type d -exec chmod 775 "{}" \;
该命令会将会对mysql组的用户开放datadir下所有目录的访问权限。
如果你当前登录的用户属于mysql组,则需要重新登录才能有效。
5. my.cnf
有必要了解一下my.cnf,它的完整路径是/etc/my.cnf,它是MySQL的配置文件,XtraBackup程序在运行过程中会读取其中的内容(比如上面提到的datadir)。
cat /etc/my.cnf
在my.cnf中可以指定部分xtrabackup所需要的参数:
[xtrabackup]
target_dir = /data/backups/mysql/
三、参考
1. 官方
https://docs.percona.com/percona-xtrabackup/8.0/index.html
2. 其他