安装XtraBackup

Xtrabackup 是由 Percona 公司开源的一款 MySQL 物理热备份工具,以实现对 MySQL 或 MariaDB这类数据库的数据库进行物理备份。

官网: https://www.percona.com/mysql/software/percona-xtrabackup

xtrabackup特点

1、属于物理备份工具,备份过程中是直接拷贝的数据库的物理文件,而不是像逻辑备份工具一样,要连接到MySQL服务端后通过执行大量的读操作,从而将对应的sql语句写入备份文件,所以xtrabackup备份过程中不会增加MySQL服务端的负载;
2、属于多线程备份工具,备份速度和数据恢复速度都很快;不像逻辑备份数据一样,恢复数据的时候只能单线程按顺序读取sql语句,然后再执行;
3、版本兼容性较差,不同版本的 XtraBackup 可能只能与特定版本的 MySQL 或 MariaDB 兼容。需要确保使用与数据库版本相匹配的 XtraBackup 版本。
4、一般用于全备份场景,排除指定数据不备份,恢复时比较繁琐。
5、支持innodb、mysaim等存储引擎的备份,备份速度受到服务器性能(IO等)影响;
xtrabackup支持流式输出、压缩、增量备份、加密,是目前各个备份厂商普遍使用的MySQL备份工具。

二、Xtrabackup备份原理

1、xtrabackup开始,记录lsn ,同时启动后台进程监控redo日志的变化,且将变化实时记录到xtrabackup_logfile中;
2、复制ibdata1,.ibd数据文件;
3、全局读锁,执行LOCK INSTANCE FOR BACKUP(8.0取代了 FLUSH TABLES WITH READ LOCK);
4、复制非InnoDB的表和文件;
5、获取binlog位置信息;
6、停止复制redo log,即停止记录xtrabackup_logfile;
7、执行UNLOCK INSTANCE释放锁;
8、复制buffer pool;
9、备份完成。

三、安装

1、yum方式安装

官方下载地址:https://www.percona.com/downloads

到官网地址上下载适配当前MySQL数据库版本的软件
不同版本的 XtraBackup 可能只能与特定版本的 MySQL 或 MariaDB 兼容。需要确保使用与数据库版本相匹配的 XtraBackup 版本。

Percona XtraBackup 8.0 只支持MySQL 8.0的版本
Percona XtraBackup 2.4 支持MySQL 5.11 , 5.5, 5.6 和5.7的版本

yum install -y libev libgcrypt openssl zlib libaio

yum localinstall -y percona-xtrabackup-80-8.0.35-31.1.el7.x86_64.rpm

xtrabackup --version

2、tar.gz方式安装

yum install -y perl-Digest-MD5 perl-DBD-MySQL libev
tar -xvf percona-xtrabackup-8.0.35-31-Linux-x86_64.glibc2.17.tar.gz
mv percona-xtrabackup-8.0.35-31-Linux-x86_64.glibc2.17 xtrabackup
echo "export PATH=\$PATH:/usr/local/xtrabackup/bin" >>/etc/profile
source /etc/profile
which xtrabackup
xtrabackup --version

四、xtrabackup常用参数

--user:指定连接数据库的用户名。
--password:指定连接数据库的密码。
--backup:执行备份操作。
--prepare:执行备份准备操作。
--copy-back:将备份恢复到原来的数据目录。
--datadir:指定数据目录的路径。
--target-dir:指定备份文件存储目录。
--incremental:执行增量备份操作。
--incremental-lsn:指定增量备份的LSN号。
--tables:仅备份特定的表。
--databases:仅备份特定的数据库。
--compress:压缩备份文件。#开启备份压缩,根据数据内容不同,压缩比可以在50%~60%
--stream=xbstream #开启流式备份,备份出来的数据输出到stdout
--remote-host=user@ip DST_DIR #备份到远程主机
posted @   哈喽哈喽111111  阅读(166)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2022-01-13 现有rabbitmq集群添加新节点,移除旧节点(可以作为rabbitmq集群迁移使用)
2022-01-13 使用docker-compose.yml安装rabbitmq集群
2022-01-13 MySQL配置不当导致Sonarqube出错的一次经历:Packet for query is too large (16990374 > 13421568)
2021-01-13 告警图片-搞笑的
2021-01-13 rsync实现windows和windows之间的数据同步
2021-01-13 《对财富说是》创造由内而外的富足
2021-01-13 Logstash:为 Logstash 日志启动索引生命周期管理
点击右上角即可分享
微信分享提示