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. 其他

https://www.digitalocean.com/community/tutorials/how-to-create-hot-backups-of-mysql-databases-with-percona-xtrabackup-on-centos-7

https://www.digitalocean.com/community/tutorials/how-to-configure-mysql-backups-with-percona-xtrabackup-on-ubuntu-16-04

https://severalnines.com/blog/mysqldump-or-percona-xtrabackup-backup-strategies-mysql-galera-cluster/

posted @ 2023-01-29 16:09  白马黑衣  阅读(598)  评论(0编辑  收藏  举报