1、原理:方案选型
mysqldump是逻辑备份解决方案,备份恢复速度慢,工具获取方便,数据量少推荐
主要用途是导出数据
xtrababckup是物理热备份,速度快,适合大数据量
xtrababckup支持innodb和MyISAM存储引擎,支持集成shell脚本,支持管道传输
InnoDB支持完整和增量备份,不上只读锁
MyISAM只有全量备份,会上只读锁,备份期间不可写
xtrababckup版本号:percona-xtrabackup-24对应5.*版本;percona-xtrabackup-80对应8.*版本
增量备份原理:使用page的lsn号,如图7,8是lsn变化的page
xtrabackup备份原理-时序图表示
结论:高效热备份使用xtrabackup
2、安装xtrabackup
方式一:在线安装
安装包管理器
yum install percona-xtrabackup-24
yum install -y percona-xtrabackup-24.x86_64
方式二:编译安装
创建目录 /home/xtrabackup 二进制安装包上传此目录
2.1 解压缩
tar -zxvf percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17.tar.gz
2.2 移动目录
mv percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17 /usr/local/xtrabackup-2.4.29
2.3 配置软链接
ln -sf /usr/local/xtrabackup-2.4.29/bin/* /usr/bin/
2.4 查看版本号
xtrabackup -v
3、xtrabackup命令说明
备份命令:
xbstream :流式压缩,节省IO,tar压缩要先创建文件,流式压缩可以边生成边压缩
innobackupex :总命令,包含其它命令,对MYISAM存储引擎,只能全量备份;对innodb引擎可以做增量备份,只存在于2.4版本,8版本已取消
4、xtrabackup做全量热备份
#普通热备份
innobackupex --defaults-file=/etc/my.cnf --host=*.*.*.* --user=* --password=* --port=3306 /home/mysqlbackup
#流式备份(打开流式IO)
innobackupex --defaults-file=/etc/my.cnf --host=*.*.*.* --user=* --password=* --port=3306 --no-timestamp --stream=xbstream -> /home/mysqlbackup/backup.xbstream
#带压缩流式备份
innobackupex --defaults-file=/etc/my.cnf --host=*.*.*.* --user=* --password=* --port=3306 --compress --compress-threads=10 --no-timestamp --stream=xbstream -> /home/mysqlbackup/backup.xbstream
5、使用corn表达式+shell定时备份
5.1 创建shell脚本
cd /home/mysqlbackup
touch shell/bkmysql.sh
#添加shell语句
#mysql用户名与密码
BACKUP_NAME=*
BACKUP_PW=*
#数据库服务器ip
BACKUP_HOST=*
#设置备份文件所在的目录
BACKUP_DIR=/home/mysqlbackup
#mysql配置文件路径
MYSQL_CNF=/etc/my.cnf
#备份scp远程保存ip
remote_host=*.*.*.*
#备份文件集团侧保存路径
remote_path=/home/mysql/backupfile
#全量热备,大约10秒
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "执行全量热备份" ${time}
filename="backup-$(date +%Y%m%d).xbstream"
innobackupex --defaults-file=$MYSQL_CNF --host=$BACKUP_HOST --user=$BACKUP_NAME --password=$BACKUP_PW --port=3306 --compress --compress-threads=10 --no-timestamp --stream=xbstream -> $BACKUP_DIR/$filename
#备份文件传输到文件服务器
scp -r /home/mysqlbackup/$filename root@$remote_host:$remote_path
echo "文件传输完毕"
#保留最近三天的文件,其余的将被删除
find $BACKUP_DIR -type f -name "*.xbstream" -mtime +3 -exec rm -f {} ;
echo "历史数据清理完毕"
5.2 #提升权限,授权文件可执行
chmod -R 777 bkmysql.sh
5.3 创建日志目录
mkdir /home/mysqlbackup/log
5.3 编辑crontab表达式
crontab -e
#添加定时任务,每天2点十分执行shell脚本
10 2 * * * /home/mysqlbackup/shell/bkmysql.sh > /home/mysqlbackup/log/backup.log 2>&1
6、SSH免秘登录配置
ssh localhost --产生.ssh的隐藏目录
在每台机器上执行:ssh-keygen -t rsa --产生密钥对(一路回车)
ssh-copy-id -i ~/.ssh/id_rsa.pub 远程机器ip
免秘登录测试通过
7、恢复测试(mysql只能冷还原)
7.1 停止mysql数据服务,清空数据目录包括表分区目录
systemctl stop mysqld
rm -rf /home/cnbm/mysql/data
7.2 将流式备份的压缩文件还原到临时目录
mkdir /home/temp
#还原流式文件
xbstream -x < /home/mysql/backupfile/backup-20241212.xbstream --decompress -C /home/temp
(xbstream -x < /home/cnbm/mysqlbackup/backup-20241212.xbstream -C /home/temp)
#解压缩还原文件
innobackupex --decompress /home/temp
7.3 清理redo日志并恢复
innobackupex --apply-log /home/backup/2018-09-12_10-53-51
#恢复数据库
innobackupex --copy-back --defaults-file=/etc/my.cnf /home/temp
7.4 数据目录修改所有者后重启mysql
chown -R mysql:mysql /home/cnbm/mysql/data
systeml start mysqld
8.binglog配置(在备份结束至恢复数据这段时间,可使用binlog日志恢复)
8.1.创建binglog日志目录,必须修改所有者权限,否则mysql启动会报错
mkdir /home/cnbm/mysql/binlog/
chown -R mysql.mysql /home/cnbm/mysql/binlog/
8.2./etc/my.cnf文件添加binlog参数,打开binlog开关,指定binglog文件存储路径,修改默认存储格式
binlog_format=MIXED
log_bin=mysql-bin
server-id=1
8.3 相关sql
#显示所有binlog日志名称和大小(索引文件信息)
show binary logs
#是否启用binlog
SHOW VARIABLES LIKE 'log_bin';
#binlog日志格式
show global variables like '%binlog_format%';
#查询binlog文件位置
SHOW VARIABLES LIKE 'log_bin_basename';
#查询binlog文件内容
show BINLOG EVENTS in 'mysql-bin.000001'
- Percona Xtrabackup备份mysql(转)
add by zhj:另外,参考了Xtrabackup之innobackupex备份恢复详解,我用的是Xtrabackup2.2.6版本, 可以成功备份和恢复指定的数据库. 原文:http://www ...
- Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)
原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对In ...
- Xtrabackup实现MySQL备份
一.xtrabackup介绍 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写)它由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上 ...
- Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)
Percona Xtrabackup备份mysql大数据库(完整备份与增量备份) 文章目录 [隐藏] Xtrabackup简介 Xtrabackup安装 Xtrabackup工具介绍 inno ...
- 利用xtrabackup备份mysql数据库
利用xtrabackup备份mysql数据库 一.安装1.直接下载二进制文件wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2. ...
- 使用 xtrabackup 进行MySQL数据库物理备份
0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...
- MySQL定时执行脚本(计划任务)命令实例
在mysql中我们可以直接进行一些参数设置让它成定时为我们执行一些任务了,这个虽然可以使用windows或者linux中的计划任务实现,但是mysql本身也能完成 查看event是否开启 复制代码 代 ...
- linux下mysql定时备份数据库
linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈 一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...
- mysql定时脚本(event),类似oracle的job
mysql定时脚本(event),类似oracle的job 我有2张表:tb_push_data 和 tb_push_data_log 现在需要每隔一段时间将tb_push_data 符合条件的 ...
- MySQL定时备份之使用Linux下的crontab定时备份实例
这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下 复制代码代码如下: ##################################### ...
随机推荐
- Spring —— DI入门案例
DI入门案例 思路分析: 1.基于IoC管理bean 2.Service中使用new形式创建的Dao对象是否保留(否) 3.Service中需要的Dao对象如何进入Serv ...
- SuperMap流数据应用技术方案
流数据应用技术方案针对流数据应用场景,针对流数据的海量.多源.持续等特征,进行持续地获取相关的动态位置,以及持续地分析.处理和挖掘. 本章沿用基于单机SuperMap iServer环境,介绍流数据处 ...
- Spirng Aop 实现自定义注解及实现
需求:日志记录 需要记录当前用户访问的每个接口对应的前端页面功能信息 声明一个注解 @Documented @Retention(RetentionPolicy.RUNTIME) @Target({E ...
- Nacos2.3.2在ubuntu中的部署
Nacos2.3.2 在ubuntu下的部署 下载地址 发布历史 | Nacos 官网 https://download.nacos.io/nacos-server/nacos-server-2.3. ...
- 关于git的安装
window平台下面: 步骤一: 首先去官网下载安装包: 官方链接:https://git-scm.com/download/win 至于选择32位还是64为的,各位就见仁见智了(根据自己的系统). ...
- 最新Sql语句来啦
创建数据库 CREATE DATABASE 数据库名称; 删除数据库 DROP DATABASE 数据库名称; 创建新表 create table 表名(列 类型 ,列 类型 ,..); 根据已有的表 ...
- LiveData
ViewModel 添加依赖 implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' activity_main.xml < ...
- Web渗透09_文件包含漏洞
1 文件包含漏洞描述 开发人员编写代码时独立性好是一个很重要的要求,这边一个数据库类,那边一个模型类.几百行的整体代码,在整合时两行行代码就可以包含进来使用.文件包含有助于独立的代码之间的配合!有时引 ...
- 微信H5分享外部链接,缩略图不显示
可关注微信公众号酒酒酒酒查看原文: 前言:最近做了一款推广茶的APP软件,展厅.产品需要分享功能:从APP内分享到H5网页:微信内打开H5网页,点击微信内右上角三个点,可再次分享: 注意:大多数情况下 ...
- css动画效果(边框流光闪烁阴影效果)
1.整体效果 https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa7odDQYuaatklJUMc5anU10PWLAt14rNnNUD6oHJG9U63fc0y ...