一、Percona XtraBackup工具介绍
Percona XtraBackup是世界上唯一开源、免费的MySQL热备份软件,可为InnoDB和XtraDB数据库执行非阻塞备份。
参考官方:Percona XtraBackup
1.1、支持的存储引擎
Percona XtraBackup可与MySQL和Percona Server配合使用。它支持InnoDB、XtraDB和MyRocks存储引擎的完全非阻塞备份。启用 XtraDB更改页面跟踪的Percona Server支持快速增量备份。此外,它还可以通过在备份结束时短暂暂停写入来备份以下存储引擎:MyISAM和Merge,包括分区表、触发器和数据库选项。在复制非InnoDB数据时,InnoDB表仍然处于锁定状态。
1.2、Percona XtraBackup特点
1、在不暂停数据库的情况下创建热InnoDB备份。
2、对MySQL进行增量备份。
3、将压缩的MySQL备份流式传输到另一台服务器。
4、在线在MySQL服务器之间移动表。
5、轻松创建新的MySQL复制副本。
6、不增加服务器负载的情况下备份MySQL。
7、Percona XtraBackup 根据每秒的IO操作数进行节流。
8、Percona XtraBackup跳过二级索引页面并在准备紧凑备份时重新创建它们。
9、Percona XtraBackup甚至可以从完整备份中导出单个表,无论InnoDB版本如何。
10、FLUSH TABLES WITH READ LOCK备份锁是Percona Server中可用的轻量级替代品。Percona XtraBackup使用它们自动复制非InnoDB数据,以避免阻塞修改InnoDB表的DML查询。
1.3、Percona XtraBackup工作原理
参考官方:Percona XtraBackup如何工作
二、安装Percona XtraBackup
参考官方:使用YUM存储库安装Percona XtraBackup
2.1、使用YUM存储库安装
1、安装Percona yum存储库
[root@localhost ~]# yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
2、启用存储库
[root@localhost ~]# percona-release enable-only tools release
3、如果Percona XtraBackup打算与上游MySQL Server结合使用,你只需要启用`tools repository
[root@localhost ~]# percona-release enable-only tools
4、通过运行安装Percona XtraBackup
[root@localhost ~]# yum install percona-xtrabackup-80
2.2、使用RPM下载包安装
参考官方:使用RPM下载包安装Percona XtraBackup
参考官方:Percona XtraBackup工具RPM下载链接
如下图所示:
三、创建备份数据库用户
说明:创建具有完整备份所需的最低权限的数据库用户,如下所示:
mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Lolaage@backup2022' PASSWORD EXPIRE NEVER ;
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT BACKUP_ADMIN, PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT SELECT ON performance_schema.log_status TO 'bkpuser'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT ON performance_schema.keyring_component_status TO bkpuser@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT ON performance_schema.replication_group_members TO bkpuser@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
如下图所示:
四、创建备份数据库用户
总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:《Linux运维篇:Linux系统运维指南》