网站建设服务器域名,广西柳州模板价格表,网站开发培训费多少钱,丝印网版制作一、数据库备份的分类
1.按不同维度分类
从物理与逻辑的角度#xff0c;备份可分为
物理备份#xff1a;对数据库操作系统的物理文件#xff08;如数据文件、日志文件等#xff09;的备份
物理备份方法
冷备份#xff08;脱机备份#xff09;#xff1a;是在关闭数…一、数据库备份的分类
1.按不同维度分类
从物理与逻辑的角度备份可分为
物理备份对数据库操作系统的物理文件如数据文件、日志文件等的备份
物理备份方法
冷备份脱机备份是在关闭数据库的时候进行的热备份联机备份数据库处于运行状态依赖于数据库的日志文件温备份数据库锁定表格不可写入但可读的状态下进行备份操作逻辑备份对数据库逻辑组件如表等数据库对象的备份
2.从数据库的备份策略角度备份可分为
完全备份每次对数据库进行完整的备份
差异备份备份自从上次完全备份之后被修改过的文件
增量备份只有在上次完全备份或者增量备份后被修改的文件才会被备份
二.常见的备份方法
1.物理冷备
备份时数据库处于关闭状态直接打包数据库文件
备份速度快恢复时也是最简单的
2.专用备份工具mydump或mysqlhotcopy
mysqldump常用的逻辑备份工具
mysqlhotcopy仅拥有备份MyISAM和ARCHIVE表
3.启用二进制日志进行增量备份
进行增量备份需要刷新二进制日志
4.第三方工具备份
1.概述
是对整个数据库、数据库结构和文件结构的备份保存的是备份完成时刻的数据库是差异备份与增量备份的基础
2.优缺点
1.优点
备份与恢复操作简单方便
2.缺点
数据存在大量的重复
占用大量的备份空间
备份与恢复时间长
3.数据库完全备份分类
MySQL物理冷备份及恢复
关闭MySQL数据库
使用tar命令直接打包数据库文件夹
直接替换现有MySQL目录即可
1物理冷备份
systemctl stop mysqld //关闭数据库
mkdir /backup //打包备份
tar zcf /backup/mysql_all-$(date%F).tar.gz /usrlocal/mysql/data/
2恢复数据库
mkdir bak
mv /usr/local/mysql/data//bak/
mkdir restore
tar zxf/backup/mysql_all-2020-01-02.tar.gz-C restore //恢复数据库采用将备份数据mv成线上库文件夹的方式
mv restore/usr/local/mysql/data/ /usr/local/mysql/
systemctl start mysqld
4.mysqldump备份与恢复
MySQL自带的备份工具可实现对Msal的备份
可以将指定的库表导出为SQL脚本
使用命令mysql导入备份的数据
mysqldump备份数据库
三、恢复数据库
1.使用mysqldump导出的脚本可使用导入的方法
source命令
mysql命令
2.使用source恢复数据库的步骤
登录到MySQL数据库
执行source备份sql脚本的路径
3.source恢复的示例
MySQL[(none)]source /backup/all-data.sql //source
4.使用mysql命令恢复数据
mysql -u root -p /backup/all-data.sql
四、MySQL增量备份
1.使用mysqldump进行完全备份存在的问题
备份数据中有重复数据
备份时间与恢复时间过长
2.自上一次备份后增加/变化的文件或者内容
特点
没有重复数据备份量不大时间短
恢复需要上次完全备份及完全备份之后所有的增量备份才能恢复而且要对所有增量备份进行逐个反推恢复
3.MySQL没有提供直接的增量备份方法
4.通过MySQL提供的二进制日志间接实现增量备份
5.MySQL二进制日志对备份的意义
二进制日志保存了所有更新或者可能更新数据库的操作
二进制日志在启动MySQL服务器后开始记录并在文件达到max_binlog_size所设置的大小或者接收到flush logs命令后重新创建新的日志文件
只需定时执行fush logs方法重新创建新的日志生成进制文件序列并及时把这些日志保存到安全的地方就完成了一个时间段的增量备份
五、MySQL数据库增量恢复
1.分类
1.一般恢复
将所有备份的二进制日志内容全部恢复
2.基于位置恢复
数据库在某一时间点可能既有错误的操作也有正确的操作
可以基于精准的位置跳过错误的操作
3.基于时间点恢复
跳过某个发生错误的时间点实现数据恢复
2.增量恢复的方法
1一般恢复
mysqlbinlog [--no-defaults]增量备份文件 mysql -uroot -p
2基于位置的恢复
恢复数据到指定位置
mysqlbinlog [--no-defaults] --stop-datetime年-月-日 小时:分钟:秒二进制日志 | mysql-u用户名-p密码
从某个时间点到日志结尾的恢复
mysqlbinlog [--no-defaults] --stop-datetime年-月-日 小时:分钟:秒二进制日志 | mysql-u用户名-p密码
从某个时间点到某个时间点的恢复
mysqlbinlog [-no-defaults] --start-datetime年-月-日 小时:分钟:秒--stop-datetime年-月-日小时:分钟:秒二进制日志 | mysql-u用户名-p密码