欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 数据备份与恢复

数据备份与恢复

2025/3/10 6:23:55 来源:https://blog.csdn.net/JIUYINGQAQ/article/details/139842314  浏览:    关键词:数据备份与恢复

MySQL

  • 数据备份与恢复
    • 数据备份重要性
    • 数据库备份分类和备份策略
      • 数据库备份的分类
        • 物理备份
        • 逻辑备份
      • 数据库的备份策略
    • 常见的备份方法
      • 物理冷备: (完全备份)
      • 专用备份工具mydump或mysqlhotcopy (完全备份,逻辑备份)
      • 启用二进制日志进行增量备份 (增量备份)
      • 第三方工具备份
    • 完全备份
      • 物理冷备份与恢复
        • 操作
        • 恢复
      • mysqldump备份与恢复
        • 操作
      • 完全恢复
    • 增量备份

数据备份与恢复

数据备份重要性

  • 备份的主要目的是灾难恢复。

  • 在生产环境中,数据的安全性至关重要。

  • 任何数据的丢失都可能产生严重的后果。

  • 造成数据丢失的原因:

    • 程序错误
    • 人为操作错误
    • 运算错误
    • 磁盘故障
    • 灾难(如火灾、地震)和盗窃

数据库备份分类和备份策略

数据库备份的分类

物理备份

物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份。

物理备份方法:

  • 冷备份(脱机备份) :是在关闭数据库的时候进行的
  • 热备份(联机备份) :数据库处于运行状态,依赖于数据库的日志文件
  • 温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作
逻辑备份

逻辑备份:对数据库逻辑组件(如:表等数据库对象)的备份。

即以sql语句的形式,把库、表结构、表数据保存下来。

数据库的备份策略

  • 完全备份(全量备份):每次对数据库进行完整的备份。
  • 差异备份:备份自从上次完全备份之后被修改过的文件。
  • 增量备份:只有在上次完全备份或者增量备份后被修改的文件才会被备份。

常见的备份方法

物理冷备: (完全备份)

  • 备份时数据库处于关闭状态,直接打包数据库文件
  • 备份速度快,恢复时也是最简单的

专用备份工具mydump或mysqlhotcopy (完全备份,逻辑备份)

  • mysqldump常用的逻辑备份工具 (导出为sql脚本)
  • mysqlhotcopy仅拥有备份MyISAM和ARCHIVE表

启用二进制日志进行增量备份 (增量备份)

进行增量备份,需要刷新二进制日志

第三方工具备份

  • 免费的MySQL热备份软件Percona XtraBackup

(阿里云的工具:dts,支持热迁移)

完全备份

物理冷备份与恢复

  1. 关闭MySQL数据库
  2. 使用tar命令直接打包数据库文件夹
  3. 直接替换现有MySQL目录即可
操作
rpm -q xz#使用xz工具进行压缩,检查xz工具是否已安装yum install xz -y#如果没安装,可以先yum安装systemctl stop mysqld#关闭服务
mkdir /backup/#创建备份目录tar Jcvf /backup/mysql_all_$(date +%F).tar.xz <数据库文件存放目录>#打包数据库文件。#源码编译安装/usr/local/mysql/data #yum安装​/var/lib/mysql/cd /backup/#切换到备份目录 ls#查看目录内容tar tf mysql_all_2022-06-05.tar.xz#查看tar包内的文件 
恢复
tar Jxvf /backup/mysql_all_2024-11-22.tar.xz#解压备份的数据库文件。
mv /backup/usr/local/mysql/data/  <数据库文件存放目录>

mysqldump备份与恢复

  1. MySQL自带的备份工具,可方便实现对MySQL的备份
  2. 可以将指定的库、表导出为SQL脚本
  3. 使用命令mysq|导入备份的数据
  4. 操作
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#只备份指定库中的一个或多个指定的表(不包含库对象本身)

完全恢复

#PALY1
先登录数据库,再执行 source sql文件路径  (如果sql文件里只备份了表,需要先 use 切换库再执行 source)#PLAY2
mysql -u root -p密码 < sql文件路径           cat sql文件路径 | mysql -u root -p密码                #恢复库mysql -u root -p密码 库名 < sql文件路径      cat sql文件路径 | mysql -u root -p密码 库名           #恢复表

增量备份

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com