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定时备份的例子,需要的朋友可以参考下 复制代码代码如下: ##################################### ...
随机推荐
- 2024 ByteCTF
ByteCTF 极限逃脱 题目描述:本题需要通过动态调试分析出要输入的内容,可能在某些地方会有提示出现. 这是一个IOS逆向,因为没有设备只能静态分析 流程和安卓逆向大概一致 解压拖进ida 提示输入 ...
- 10-30 NOIP模拟赛
10-30 NOIP模拟赛 今天分数还看的过去,只是第二题没有正解,第三题没有35我表示很伤心.必须继续努力,保持内心纯净,心无杂念,知行合一,摒除恶念. 100 + 80 + 5 = 185 芜湖! ...
- flops, params = profile(model, inputs=(x,))计算
计算量:FLOPs,FLOP时指浮点运算次数,s是指秒,即每秒浮点运算次数的意思,考量一个网络模型的计算量的标准.参数量:Params,是指网络模型中需要训练的参数总数. flops(G) = flo ...
- 更强的RAG:向量数据库和知识图谱的结合
传统 RAG 的局限性 经典的 RAG 架构以向量数据库(VectorDB)为核心来检索语义相似性上下文,让大语言模型(LLM)不需要重新训练就能够获取最新的知识,其工作流如下图所示: 这一架构目前广 ...
- C++ 第二节课 结构体, 字符串 和 C语言的区分
1 #include <iostream> 2 3 using namespace std; 4 5 6 // 结构体 7 struct Stu{ 8 string name; 9 int ...
- 什么是 websocket和signal
1. 需求,Web聊天,站内通知 2. 传统HTTP:只能客户端主动发送请求: 3. 传统方案:长轮询(long Polling):
- C# Webapi 简单的依赖注入-构造函数
控制器部分: using Microsoft.AspNetCore.Mvc; using WebApplication1.IServices; using WebApplication1.Utilit ...
- JDBC后端实现查询功能逻辑
// 包名 package com.zhulx.JDBC; // 导入实例类 import com.zhulx.pojo.Account; import java.sql.*; import java ...
- 5.flask 源码解析:请求
目录 一.flask 源码解析:请求 1.1 简介 1.2 请求 Flask 源码分析完整教程目录:https://www.cnblogs.com/nickchen121/p/14763457.htm ...
- 云原生爱好者周刊:目前 WebAssembly 的最佳应用场景有哪些?
云原生一周动态要闻: Istio 1.11 发布 Facebook.Google.Isovalent.微软和 Netflix 宣布成立 eBPF 基金会 GitHub 工程团队将开发环境迁移到 Cod ...