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
方式二:编译安装
https://www.percona.com/downloads下载二进制安装包percona-xtrabackup-2.4.29-Linux-x86_64.glibc2.17.tar.gz,龙蜥操作系统选择generic

创建目录 /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'
 
 
 

使用xtrabackup实现mysql定时热备份的更多相关文章

  1. Percona Xtrabackup备份mysql(转)

    add by zhj:另外,参考了Xtrabackup之innobackupex备份恢复详解,我用的是Xtrabackup2.2.6版本, 可以成功备份和恢复指定的数据库. 原文:http://www ...

  2. Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)

    原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对In ...

  3. Xtrabackup实现MySQL备份

    一.xtrabackup介绍 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写)它由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上 ...

  4. Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)

    Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)     文章目录 [隐藏] Xtrabackup简介 Xtrabackup安装 Xtrabackup工具介绍 inno ...

  5. 利用xtrabackup备份mysql数据库

    利用xtrabackup备份mysql数据库 一.安装1.直接下载二进制文件wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2. ...

  6. 使用 xtrabackup 进行MySQL数据库物理备份

    0. xtrabackup的功能 能实现的功能: 非阻塞备份innodb等事务引擎数据库. 备份myisam表会阻塞(需要锁). 支持全备.增量备份.压缩备份. 快速增量备份(xtradb,原理类似于 ...

  7. MySQL定时执行脚本(计划任务)命令实例

    在mysql中我们可以直接进行一些参数设置让它成定时为我们执行一些任务了,这个虽然可以使用windows或者linux中的计划任务实现,但是mysql本身也能完成 查看event是否开启 复制代码 代 ...

  8. linux下mysql定时备份数据库

    linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈   一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...

  9. mysql定时脚本(event),类似oracle的job

    mysql定时脚本(event),类似oracle的job   我有2张表:tb_push_data 和 tb_push_data_log 现在需要每隔一段时间将tb_push_data 符合条件的 ...

  10. MySQL定时备份之使用Linux下的crontab定时备份实例

    这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下   复制代码代码如下: ##################################### ...

随机推荐

  1. 编写自己的简易版网络协议栈(1)--arp协议,使用wireshark抓包分析

    实验环境: 略. 实验背景:已编写好基于以太网接口的输入处理,能够解析到以太网数据包内的帧类型. 1. 协议栈底层采用轮询方式,即轮询以太网数据包. 2. 若收到数据,则交由以太网输入处理模块进行解析 ...

  2. Java序列化、反序列化、反序列化漏洞

    目录 1 序列化和反序列化 1.1 概念 1.2 序列化可以做什么? 3 实现方式 3.1 Java 原生方式 3.2 第三方方式 4 反序列化漏洞 1 序列化和反序列化 1.1 概念 Java 中序 ...

  3. duxui:基于Taro,兼容React Native、小程序、H5的多端UI库

    duxui是duxapp官方开发的一款兼容多端的UI组件库,兼容小程序.H5.React Native,库中提供了60+的组件,覆盖大部分使用场景 它能帮助你通过统一的组件样式,快速完成多端应用的开发 ...

  4. kotlin协程——>异常处理

    异常处理 本节内容涵盖了异常处理与在异常上取消.我们已经知道取消协程会在挂起点抛出 CancellationException 并且它会被协程的机制所忽略.在这⾥我们会看看在取消过程中抛出异常或同 ⼀ ...

  5. 在 KubeSphere 中部署高可用 Redis 集群

    作者:余生大大,大数据开发工程师,云原生爱好者,KubeSphere 社区用户. 前言 Redis 是在开发过程中经常用到的缓存中间件,在生产环境中为了考虑稳定性和高可用一般为集群模式的部署. 常规部 ...

  6. Visual Studio登录页面打不开无法登录的解决

    我也是折腾了好久-- 1. 打开Visual Studio-->工具-->选项-->账户,找到了登录配置 2. 将嵌入式Web浏览器改为"Windows身份认证中转站&qu ...

  7. 终于注册成功了 Web of Science 账号

    地址: https://www.webofscience.com/wos/op/publications/add 个人主页: https://www.webofscience.com/wos/auth ...

  8. Mysql数据类型面试题15连问

    整数类型的 UNSIGNED 属性有什么用? MySQL 中的整数类型可以使用可选的 UNSIGNED 属性来表示不允许负值的无符号整数.使用 UNSIGNED 属性可以将正整数的上限提高一倍,因为它 ...

  9. 基于.NET开源、功能强大且灵活的工作流引擎框架

    前言 工作流引擎框架在需要自动化处理复杂业务流程.提高工作效率和确保流程顺畅执行的场景中得到了广泛应用.今天大姚给大家推荐一款基于.NET开源.功能强大且灵活的工作流引擎框架:elsa-core. 框 ...

  10. 盘点Air780E的FTP应用,你了解吗?

    ​ 一.FTP 概述 FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一. FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端. ...