centos安装xtrabackup centos7.6安装教程
本篇文章给大家谈谈centos安装xtrabackup,以及centos7.6安装教程对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
XtraBackup工具详解 Part 2 xtrabackup安装
此次实验的环境如下
实验环境包括了所需的软件与硬件配置,以确保实验的顺利进行。
在官方网站可以看到xtrabackup有多个版本
官方网站显示了xtrabackup的不同版本,供用户根据需求选择。
其中8.0只支持MySQL 8.0的版本
特定版本的xtrabackup仅与MySQL 8.0兼容。
2.4版本支持MySQL 5.11, 5.5, 5.6和5.7的版本
2.4版本的xtrabackup支持MySQL的多个版本。
所以这里我们使用2.4的版本
根据需求,选择2.4版本进行实验。
这里我们使用rpm包的形式安装
采用rpm包安装xtrabackup,简化了安装流程。
下载地址
通过官方网站提供的链接下载xtrabackup 2.4.14的rpm包。
链接: pan.baidu.com/s/12TScnb...提取码: mhgx
下载链接提供了方便的下载途径,确保用户能够获取所需文件。
这里我们要先安装依赖包,否则会报错缺少依赖包
安装前需确认所有依赖包已安装,避免因缺少依赖导致的安装错误。
其中libev需要单独下载,注意需要下载2.4.15版本。也可以点击下面百度云链接下载
libev依赖包需单独下载,并确保版本符合要求,以确保xtrabackup的正常运行。
centos.pkgs.org/6/repof...
centos.pkgs.org/6/repof...
链接: pan.baidu.com/s/12TScnb...提取码: mhgx
提供libev的下载链接,保证了安装过程的便捷性。
最后安装xtrabackup
完成依赖包安装后,即可进行xtrabackup的最终安装。
最后我们验证下安装是否成功
通过特定的验证步骤,确认xtrabackup已成功安装。
Percona XtraBackup工具包含如下两个命令
Percona XtraBackup包含了innobackupex与xtrabackup命令,用于数据库备份。
二者都可用来进行数据库的备份,都支持innodb和非innodb
innobackupex与xtrabackup命令均可完成数据库备份任务,支持多种数据库类型。
早期版本中innobackup为xtrabackup的perl实现,现在是xtrabackup的一个符号链接
innobackup在早期版本中作为xtrabackup的实现,现已通过符号链接与xtrabackup关联。
innobackupex在后续版本中会被废除
随着技术的发展,innobackupex将在后续版本中不再使用。
其有如下用法上的区别
对比innobackupex与xtrabackup的使用区别,了解更优的选择。
这些后续内容详细介绍
后续内容将详细解释innobackupex与xtrabackup的区别与用法。
由于现在innobackupex用的比较多,这期用innobackupex做讲解
鉴于innobackupex的广泛应用,本部分将重点讲解其用法与优势。
本专题所有内容翻译自Percona XtraBackup的官方文档
提供的内容基于官方文档翻译,确保信息的准确与可靠性。
可通过如下链接下载
提供官方文档的下载链接,方便用户获取详细资料。
可以看到已经安装完成,下节我们继续
确认安装过程无误后,准备进行下一部分的深入探讨。
Xtrabackup 能不能做单库的备份恢复
大数据量备份与还原,始终是个难点。当MYSQL超10G,用mysqldump来导出就比较慢了。在这里推荐xtrabackup,这个工具比mysqldump要快很多。一、Xtrabackup介绍 1、Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。 Xtrabackup有两个主要的工具:xtrabackup、innobackupex 1、xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表 2、 innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的.innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁。并且加入了一些使用的选项。如slave-info可以记录备份恢复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。 2、Xtrabackup可以做什么:在线(热)备份整个库的InnoDB、 XtraDB表在xtrabackup的上一次整库备份基础上做增量备份(innodb only)以流的形式产生备份,可以直接保存到远程机器上(本机硬盘空间不足时很有用) MySQL数据库本身提供的工具并不支持真正的增量备份,二进制日志恢复是point-in-time(时间点)的恢复而不是增量备份。 Xtrabackup工具支持对InnoDB存储引擎的增量备份,工作原理如下:(1)首先完成一个完全备份,并记录下此时检查点的LSN(Log Sequence Number)。(2)在进程增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是,则备份该页,同时记录当前检查点的LSN。首先,在logfile中找到并记录最后一个checkpoint(“last checkpoint LSN”),然后开始从LSN的位置开始拷贝InnoDB的logfile到xtrabackup_logfile;接着,开始拷贝全部的数据文件.ibd;在拷贝全部数据文件结束之后,才停止拷贝logfile。因为logfile里面记录全部的数据修改情况,所以,即时在备份过程中数据文件被修改过了,恢复时仍然能够通过解析xtrabackup_logfile保持数据的一致。因为innobackupex支持innodb,myisam,所以本文说一下,怎么使用innobackupex。二,安装xtrabackup 1、下载地址/downloads/XtraBackup/ 2、安装根据需求,选择不同的版本,我选择的是rpm安装包,如果报以下错误复制代码代码如下: [root@localhost xtrabackup]# rpm-ivh percona-xtrabackup-2.2.4-5004.el6.x86_64.rpm warning: percona-xtrabackup-2.2.4-5004.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY error: Failed dependencies: perl(Time::HiRes) is needed by percona-xtrabackup-2.2.4-5004.el6.x86_64解决办法:复制代码代码如下: [root@localhost xtrabackup]# yum-y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL//安装依赖包 [root@localhost xtrabackup]# rpm-ivh percona-xtrabackup-2.2.4-5004.el6.x86_64.rpm//重新安装 warning: percona-xtrabackup-2.2.4-5004.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY Preparing...########################################### [100%] 1:percona-xtrabackup########################################### [100%]
使用Mysqldump和Xtrabackup两种方式并发备份数据库
参考链接如下:
(1) xtrabackup下载参考链接
(2) Mysql5.7安装参考链接
(3) Mysql5.7版本下载参考链接
主要以Shell方式在Centos7.9操作系统上编写脚本。脚本大概思路是分别采用mysqldump和xtrabackup方式进行并发数据库备份,其中xtrabackup方式备份相对于mysqldump备份快一些。其中因环境差异问题,这里Mysqldump并发备份环境为mysql5.6;Xtrabackup并发备份环境为mysql5.7,这里可以选择mysql5.7作为通用环境。
二、脚本思路2.1 Mysqldump并发备份
1.定义登录用户、密码、备份目录为相关变量
2.提取所有库,并使用for循环语句结合Mysqldump进行备份
3.把临时备份文件压缩成tar.gz结尾的文件
4.删除临时备份文件
2.2 Xtrabackup并发备份
1.定义登录用户、密码、备份目录为相关变量
2.提取所有库,并使用for循环语句结合Xtrabackup进行备份
3.把备份情况及备份时间输出到一个指定文件
三、准备工作3.1安装mysql5.7
1.卸载mariadb
(1)检查系统是否已安装Mysql。返回值为空,代表没有安装Mysql。
(2)执行rpm-qa| grep mariadb命令查看Centos7默认安装数据库mariadb。
(3)执行rpm-e--nodeps mariadb-libs-5.5.68-1.el7.x86_64命令卸载默认数据库mariadb
(4)再次执行rpm-qa| grep mariadb命令查看Centos7默认安装数据库mariadb是否卸载掉,这里观察到卸载完成。
2.检查系统是否安装过mysql
(1)检查系统是否安装过mysql
(2)检查安装mysql路径
(3)删除mysql路径
3.检查有无创建mysql用户组
(1)查看有无创建mysql用户组
(2)若没创建,进行创建
4.下载5.7.24压缩包
5.解压5.7.24压缩包
6.为了方便输入,将解压后的包名修改为mysql5.7
7.更改mysql5.7目录下所有文件夹所属的用户组、用户以及权限
8.编译安装并初始化mysql,此时会产生一个初始登录密码,这里为DuXLp5N=;3D?
9.编写etc目录下的my.cnf配置文件,并添加配置。默认是不存在的。
10.修改/opt/mysql5.7/support-files/mysql.server为/opt/mysql5.7安装目录
11.启动mysql
(1)启动mysql
(2)添加软链接
(3)重启mysql
12.mysql操作
(1)登录mysql,这里的密码就是上面初始mysql产生的密码
(2)设置登录密码
13.开放远程连接
(1)切换mysql库
(2)授予 MySQL数据库的 root用户远程访问权限的情况下非常有用。默认情况下,MySQL仅允许来自本地主机的连接,因此将 Host值更改为'%'允许 root用户从任何位置连接。
(3)刷新权限
14.设置开机自启
(1)拷贝服务文件到/etc/init.d/下,并重命名为mysqld
(2)赋予可执行权限
(3)添加服务
(4)显示服务列表
15.安装完成后,创建库test
3.2二进制安装Xtrabackup
1.下载压缩包
2.在/opt目录下解压压缩包
3.将上面解压的目录移动到/usr/local/下,并更名为xtrabackup
4.添加环境变量
5.重新加载/etc/profile
6.安装验证
3.3安装依赖
1.安装perl-Digest-MD5依赖
如果不安装以上依赖,会发生以下报错
四、脚本编写4.1 Shell脚本4.1.1 Mysqldump并发备份
1.编写shell脚本
上面mysqldump参数说明如下:
上面split参数说明如下:
上面tar参数说明如下:
上面代码详细分析:
(1)定义备份文件名前缀,并将当前工作目录切换到备份目录。这段代码使用date命令生成一个以当前时间为前缀的备份文件名,并将备份目录切换为/data/mysql,如果该目录不存在则创建。
(2)获取需要备份的数据库列表。
(3)遍历数据库列表,使用mysqldump备份并分片。使用for循环遍历所有需要备份的数据库,使用mysqldump命令备份数据库,并通过split命令将备份结果分片,并以数据库名作为备份文件名的一部分。备份过程中使用&将任务放到后台并发执行。
(4)等待所有备份任务完成。
(5)打包备份文件并清理临时文件。使用tar命令将所有备份文件打包成一个压缩文件,并通过rm命令清理所有临时备份文件。
2.添加定时任务,每天凌晨1点定时执行脚本
3.结果验证
4.结果解压再次验证
4.1.2 Xtrabackup并发备份
1.编写shell脚本
上面xtrabackup参数说明如下:
上面代码详细分析:
(1)指定设置备份参数的变量。其中,MYSQL_USER和 MYSQL_PASSWORD是用于连接到 MySQL服务器的凭据。BACKUP_DIR是备份文件存储目录,THREADS是用于备份的线程数。
(2)使用mysql命令连接到 MySQL服务器,并运行 SHOW DATABASES;命令来获取所有数据库的列表。然后,使用 grep命令过滤掉系统数据库,如 Database、information_schema和 performance_schema。最后,将结果赋值给 DATABASES变量。
(3)遍历所有数据库,对每个数据库进行备份。在循环内部,首先根据数据库名称创建备份目录。然后,使用xtrabackup命令进行备份。该命令将备份所有数据库,并将备份文件存储在 TARGET_DIR目录中。备份过程中会使用 MYSQL_USER和 MYSQL_PASSWORD变量来连接到 MySQL服务器。--parallel=$THREADS参数指定备份使用的线程数。最后,将备份完成的消息写入 description.txt文件中。
2.添加定时任务,每天凌晨1点定时执行脚本
3.结果验证,这里只拿test1,其他类似。
上面文件说明如下:
五、排错总结5.1报错一
1.执行service mysql restart命令报错
2.报错处理