MySQL备份与恢复

数据备份的重要性

数据库备份的分类

物理备份:直接对数据库的物理文件(数据文件、日志文件等)进行备份

逻辑备份:对数据库对象(库、表)的数据以SQL语句的形式导出进行备份

备份策略

完全备份:每次备份都备份完整的库或表数据

差异备份:只备份上一次完全备份后的更新数据

增量备份:备份备份只备份上一次完全备份或增量备份后的更新数据

主要是完全备份增量备份配合使用

常见的备份方法

MySQL完全备份

优点:备份与恢复操作简单方便

缺点:数据存在大量重复

占用大量的备份空间

备份与恢复时间长

操作很简单,关闭mysql,tar打包data,数据被删除时,解压data重启mysql即可。

mysqldump完全备份

mysqldump 逻辑热备

mysqldump -u root -p密码 --databases 库1 库2 .... > XXX.sql #备份一个或多个指定的库及库中所有的表

mysqldump -u root -p密码 --all-databases > XXX.sql #备份所有库

mysqldump -u root -p密码 库名 > XXX.sql #只备份指定库中的所有表(不包含库对象本身)

mysqldump -u root -p密码 库名 表1 表2 .... > XXX.sql #只备份指定库中的一个或多个指定的表(不包含库对象本身)

完全恢复

1)先登录数据库,再执行 source sql文件路径 (如何sql文件里只备份了表,需要先 use 切换库再执行 source)

2)mysql -u root -p密码 < sql文件路径 cat sql文件路径 | mysql -u root -p密码 #恢复库

mysql -u root -p密码 库名 < sql文件路径 cat sql文件路径 | mysql -u root -p密码 库名 #恢复表

在命令控制行执行mysql命令

增量备份

增量备份相关的文件配置

在配置文件vim /etc/my.cnf配置

通过刷新二进制日志实现增量备份

mysqladmin -u root -p密码 flush-logs

查看二进制日志内容

mysqlbinlog --no-defaults --base64-output=decode-rows -v 二进制文件路径

使用二进制日志增量恢复

mysqlbinlog --no-defaults 二进制文件路径 | mysql -u root -p密码

断点恢复

基于位置点恢复

mysqlbinlog --no-defaults --start-position='开始位置点' --stop-position='结束位置点' 二进制文件路径 | mysql -u root -p密码

基于时间点恢复

mysqlbinlog --no-defaults --start-datetime='YYYY-mm-dd HH:MM:SS' --stop-datetime='YYYY-mm-dd HH:MM:SS' 二进制文件路径 | mysql -u root -p密码

断点恢复的原则:

如果要恢复到某条sql语句之前的所有数据,就stop在这个语句的位置点或时间点之前

如果要恢复某条sql语句及其之后的所有数据,就从这个语句的位置点或时间点开始start

脚本实现备份二进制日志

相关推荐
C语言Plus10 分钟前
C++ SqlBuilder一个简单、灵活且类型安全的 C++ SQL 构建器库
数据库·sql·安全·c++20
喝茶与编码14 分钟前
真实业务场景:高并发 Upsert 死锁频发?InnoDB 锁机制与重试机制深度解析
数据库·python
BreezeJiang19 分钟前
做完 AI 日记本后,我终于理解了:向量数据库不是用来替代 MySQL 的
数据库
VALENIAN瓦伦尼安教学设备23 分钟前
转子/行星/平行轴齿轮箱综合故障模拟实验台可复现常见机械问题
大数据·数据库·人工智能·嵌入式硬件·算法
不好听61327 分钟前
向量数据库:Milvus 与 MySQL 的本质差异
数据库
用户0942485680339 分钟前
第18章:Mongo复制集运维——故障切换、节点扩容与数据重同步
数据库·mongodb
Bug收容所1 小时前
12305项目学习day5
java·spring boot·redis·mysql·spring·rocketmq
智码看视界1 小时前
Day33-数据层 × 中间件AI化篇:Redis缓存经典问题-击穿、穿透、雪崩的终极解决方案
数据库·redis·缓存·中间件·穿透·雪崩·击穿
会编程的土豆1 小时前
功能详解 01 · 用户注册:从表单到数据库一行
开发语言·数据库·后端·mysql·golang
夏贰四1 小时前
数据资产平台如何落地企业数据分级合规管控?数据资产平台怎样满足行业数据监管审查要求?
大数据·数据库·人工智能