MySQL实现全量、增量备份与恢复方法
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,下文主要给大家带来MySQL实现全量、增量备份与恢复方法,希望这些内容能够带给大家实际用处,这也是我编辑MySQL实现全量、增量备份与恢复方法这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。数
千家信息网最后更新 2025年01月23日MySQL实现全量、增量备份与恢复方法
下文主要给大家带来MySQL实现全量、增量备份与恢复方法,希望这些内容能够带给大家实际用处,这也是我编辑MySQL实现全量、增量备份与恢复方法这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。
数据备份的重要性
1、在生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果2、造成数据丢失的原因程序错误人为错误计算机失败磁盘失败灾难(如地震等)和偷窃
数据库备份的分类
一、从物理与逻辑的角度,备份可分为:
1、物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份物理备份又可以分为脱机备份(冷备份)和联机备份(热备份):-冷备份:是在关闭数据库的时候进行的-热备份:数据库处于运行状态,这种备份方法依赖于数据库的日志文件2、逻辑备份:对数据库逻辑组件(如表等数据库对象)的备份
二、从数据库的备份策略角度, 备份可分为:
1、完全备份:每次对数据进行完整的备份2、差异备份:备份那些自从上次完全备份之后被修改过的文件3、增量备份:只有那些在.上次完全备份或者增量备份后被修改的文件才会被备份注意点:差异备份与增量备份相辅相成
MySQL完全备份(全量备份)
1、完全备份是对整个数据库的备份、数据库结构和文件结构的备份2、完全备份保存的是备份完成时刻的数据库3、完全备份是增量备份的基础
完全备份的优点
备份与恢复操作简单方便
完全备份的缺点
1.数据存在大量的重复2.占用大量的备份空间3.备份与恢复时间长
mysqldump备份库
一、MySQL数据库的备份可以采用用多种方式
1.直接打包数据库文件夹,如/usr/local/mysql/data2.使用专用备份工具mysqldump
二、mysqldump命令
1.MySQL自带的备份工具,相当方便对MySQL进行备份2.通过该命令工具可以将指定的库、表或全部的库导出为SQL脚本,在需要恢复时可进行数据恢复
三、使用mysqldump命令对单个数据库进行完全备份
mysqldump -u用户名-p [密码] [选项] [数据库名] > /备份路径/备份文件名
四、使用mysqldump命令对多个库进行完全备份
mysqldump -u 用户名 -p [密码] [选项] --databases 库名1 [库名2]... >/备份路径/备份文件名
五、使用mysqldump命令对所有库进行完全备份
mysqldump -u用户名-p [密码] [选项] --all-databases > /备份路径/备份文件名
mysqldump备份表
在实际生产环境中,存在对某个特定表的维护操作,此时mysqldump同样发挥重大作用
1.使用mysqldump备份表的操作
mysqldump -u 用户名 -p [密码] [选项] 数据库名 表名 > /备份路径/备份文件名
2.使用mysqldump备份表结构的操作
mysqldump -u 用户名 -p [密码] [选项] -d 数据库名 表名 > /备份路径/备份文件名
恢复数据库
一、使用mysqldump命令导出的SQL备份脚本,在进行数据恢复时可使用以下方法导入
source命令 #数据库模式中运行mysql命令 #Linux模式中运行
1、使用source恢复数据库的步骤
●登录到MySQL数据库●执行source备份sq|脚本的路径(绝对路径)
MySQL [(none)] > source /backup/all-data.sql#source命令恢复
2.使用mysql命令恢复数据
mysql -u用户名-p [密码] <库备份脚本的路径
mysql -u root -p < /backup/all-data.sql#mysql命令恢复
二、使用mysqldump进行完全备份的存在的问题
●备份数据中有重复数据●备份时间与恢复时间长
恢复数据表操作
1、恢复表时同样可以使用source或者mysql命令进行2、source恢复表的操作与恢复库的操作相同3、当备份文件中只包含表的备份,而不包括创建库的语句时,必须指定库名,且目标库必须存在.生产环境中,可以使用shell脚本自动实现定期备份mysql -u用户名-p [密码] < 表备份脚本的路径
mysql -u root -p mysql < /backup/mysql-user.sql#mysql命令恢复表
MySQL备份思路
1、定期实施备份,制定备份计划或者策略,并严格遵守2、除了进行完全备份,开启MySQL云服务器的日志功能是很重要的●完全备份加上日志,可以对MySQL进行最大化还原MySQL-bin:MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句((除了数据查询语句)信息。可以使用mysqlbin命令查看二进制日志的内容3、使用统一的和易理解的备份文件名称●不要使用backup1、backup2等这样没有意义的名字●推荐使用库名或者表名加上时间的命名规则
MySQL增量备份
增量备份就是备份自上一次备份之后增加或变化的文件或者内容
增量备份的特点
●没有重复数据,备份量不大,时间短●恢复麻烦:需要上次完全备份及完全备份之后所有的增量备份才能恢复,而且要对所有增量备份进行逐个反推恢复
MySQL没有提供直接的增量备份方法
可以通过MySQL提供的二进制日志(binary logs)间接实现增量备份
MySQL二进制日志对备份的意义
●二进制日志保存了所有更新或者可能更新数据库的操作●二进制日志在启动MySQL云服务器后开始记录,并在文件达到max_ binlog_size所设置的大小或者接收到flush logs命令后重新创建新的日志文件●只需定时执行flush logs方法重新创建新的日志,生成二进制文件序列,并及时把这些旧的日志保存到安全的地方就完成了一个时间段的增量备份
查看二进制日志文件(解码)
mysqlbinlog --no-defaults --base64-output=decode-rows -V mysql-bin.000002 > /opt/ bak. txt
MySQL数据库增量恢复概述
一般恢复
基于位置回复
就是将某个起始时间的二进制日志导入数据库中,从而跳过某个发生错误的时间点实现数据的恢复
基于时间点恢复
使用基于时间点的恢复,可能会出现在一个时间点里既同时存在正确的操作又存在错误的操作,所以我们需要一种更为精确的恢复方式
增量恢复的方法
1.一般恢复
mysqlbinlog [--no-defaults]增量备份文件 | mysql -u用户名 -p
2.基于位置的恢复
恢复数据到指定位置
mysqlbinlog --stop-position=操作'id' 1进制日志 | mysql -u用户名 -p 密码
从指定的位置开始恢复数据
mysqlbinlog --start-position=操作'id'二进制日志 | mysql -u用户名 -p 密码
3.基于时间点的恢复
从日志开头截止到某个时间点的恢复
mysqlbinlog [--no-defaults] --stop-datetime='年-月-日 小时:分钟:秒'二进制日志 | mysql -u用户名 -p 密码
从某个时间点到日志结尾的恢复
mysqlbinlog [--no defaults] --start-datetime='年-月-日 小时:分钟:秒'二进制日志 | mysql -u用户名 -p 密码
从某个时间点到某个时间点的恢复
mysqlbinlog [--no defaults] --start-datetime='年-月-日 小时:分钟:秒' --stop-datetime='年-月-日 小时:分钟:秒'二进制日志 | mysql -u用户名 -p 密码
对于以上关于MySQL实现全量、增量备份与恢复方法,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。
备份
数据
数据库
日志
文件
增量
时间
命令
用户
二进制
用户名
密码
路径
方法
脚本
内容
文件名
位置
小时
物理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
mtdio是什么数据库
中国移动网络技术客服
小程序修改数据库域名
网络安全斩首行动
数据库工程师考试科目
pi数据库安全基线
为什么要加网络安全锁
举例说明对数据库应用的理解
云网络技术
安徽电大试卷数据库
evernote国际版服务器
奥迪服务器连不上网
php 数据库读取
企业管理器怎么附加数据库
网络安全古诗词
芒果数据库迁移
剑网三和服务器
方舟服务器怎么改mod
青海红十字医院服务器地址
糖果主机将域名解析到服务器
网络安全到2025年还会缺人吗
芜湖安卓软件开发定制
2016年武汉网络安全
高考网络软件开发方向专业
网络安全大会江苏
研究生管理系统数据库设计
网络安全飞塔
sql数据库无法开始
数据库和库是一个意思吗
购置网络安全软件的请示