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

脚本实现备份二进制日志

相关推荐
Karoku06613 分钟前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
小技与小术1 小时前
数据库表设计范式
数据库·mysql
安迁岚1 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作
运维·服务器·数据库·sql·mysql
安迁岚1 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验九 触发器
数据库·sql·mysql·oracle·实验报告
Loganer1 小时前
MongoDB分片集群搭建
数据库·mongodb
LKID体2 小时前
Python操作neo4j库py2neo使用之创建和查询(二)
数据库·python·neo4j
刘大浪2 小时前
后端数据增删改查基于Springboot+mybatis mysql 时间根据当时时间自动填充,数据库连接查询不一致,mysql数据库连接不好用
数据库·spring boot·mybatis
一只爱撸猫的程序猿2 小时前
简单实现一个系统升级过程中的数据平滑迁移的场景实例
数据库·spring boot·程序员
无敌岩雀2 小时前
MySQL中的索引
数据库·mysql
a_安徒生2 小时前
linux安装TDengine
linux·数据库·tdengine