数据库备份和恢复

 前期准备

  至少准备两台虚拟机完成Mysql的相关操作!

在生产环境中,数据的安全性至关重要,任何数据的丢失都可能产生严重的后果。

  造成数据丢失的原因:

  • 程序错误
  • 人为操作错误
  • 运算错误
  • 磁盘故障
    • 解决措施:raid5、raid10,上传云,复制备份
  • 灾难和盗窃
    • 容灾(了解):是一个旨在确保业务连续性的系统工程,它涉及IT系统的设计和实施,以防止用户业务系统受到各种灾难的影响和破坏。

一、数据库备份的分类

  1.1 从物理和逻辑上来划分

  • 物理备份:数据库操作系统的物理文件(如数据文件、日志文件等)的备份
    • 物理备份方法:
      • 冷备份(脱机备份):是在关闭数据库时进行操作的
      • 热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件
      • 温备份:数据库锁定表格(可读不可写)的状态下进行备份操作
  • 逻辑备份:对数据库逻辑组件的备份

  1.1.1 逻辑备份的格式

mysqldump -u -p --databases 库1 库2 > xxx.sql

mysqldump -u -p --all-databases > xxx.sql

mysqldump -u -p 库1 表1 标2 > xxx.sql


  1.2 数据库备份策略划分

  • 完全备份:每次对数据库进行完整的备份
    • 完全备份过程:每次都进行完全备份,会导致备份文件占用巨大的空间,并且有大量的重复数据;恢复时,直接把文件导入进去即可。
  • 差异备份:每次自从上次完全备份之后被修改过的文件
    • 差异备份过程:上一次差异备份都会备份上一次完全备份之后的数据,可能会出现备份重复数据,也会导致占用额外的磁盘空间;恢复时,先恢复完全备份,之后再导入差异备份的数据
  • 增量备份:只有在上次完全备份或者增量备份后被修改的文件才会被备份
    • 增量备份过程:每次增量备份的数据都是备份在上一次完全备份或者增量备份之后的数据,不会出现重复数据,也不会占用额外的磁盘空间;恢复时,需要完全恢复然后再做增量恢复

  1.3 常见的备份方法

  • 物理冷备

    • 备份时数据库处于关闭状态,直接打包数据库文件

    • 备份速度开,恢复时也是最简单的

  • 专用备份工具mydump或mysqlhotcopy

    • mysqldump常用的逻辑备份工具

    • mysqlhotcopy仅拥有备份MyISAM和ARCHIVE表

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

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

  • 第三方工具备份

    • 免费的MySQL热备份软件

二、MySQL完全备份与恢复

  格式:

mysql -u -p < xxx.sql 恢复库

mysql -u -p 库名 < xxx.sql 恢复表

  2.1 数据库完全备份分类

  2.1.1 物理冷备份与恢复

  • 关闭mysql数据库

  • 使用tar命令直接打包数据库文件夹

  • 直接替换现有mysql目录即可

  2.1.2 mysqldump备份与恢复

  • mysql自带的备份工具,可方便实现对mysql的备份

  • 可以将指定的库、表导出为SQL脚本

  • 可以命令mysql导入备份的数据

  2.1.2.1 完全备份 MySQL 服务器中所有的库

   2.1.2.2 完全备份一个或多个完整的库

  2.1.2.3 完全备份指定库中的部分表

  2.1.2.4 查看备份文件

  2.2  使用mysqldump导出的文件,可使用导入的方法

  • source命令
  • mysql命令

 

三、mysql增量备份与恢复

  3.1 MySQL数据库增量恢复

  1. 一般恢复
  2. 基于位置恢复
  3. 基于时间点恢复

  3.2 实际操作

  二进制日志(binlog)有3种不同的记录格式: STATEMENT (基于SQL语句)、ROW(基于行)、MIXED(混合模式),默认格式是STATEMENT

 

   

  3.3 二进制日志中需要关注的部分

  1. at :开始的位置点 
  2. end_log_pos:结束的位置
  3. 时间戳
  4. SQL语句

  生成新的二进制日志文件 

相关推荐

  1. 数据备份恢复

    2024-03-26 02:22:04       44 阅读
  2. 数据库备份恢复

    2024-03-26 02:22:04       24 阅读
  3. mongodb-数据备份恢复

    2024-03-26 02:22:04       25 阅读
  4. 数据库(MySQL的备份恢复

    2024-03-26 02:22:04       47 阅读
  5. mysql数据库备份恢复

    2024-03-26 02:22:04       54 阅读
  6. PostgreSQL 数据库备份恢复

    2024-03-26 02:22:04       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 02:22:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 02:22:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 02:22:04       82 阅读
  4. Python语言-面向对象

    2024-03-26 02:22:04       91 阅读

热门阅读

  1. 微信小程序如何实现扫码一键连WiFi功能

    2024-03-26 02:22:04       39 阅读
  2. 绘制多个box箱型图

    2024-03-26 02:22:04       40 阅读
  3. 在 Vue.js 3 中封装全屏功能工具类

    2024-03-26 02:22:04       44 阅读
  4. matplotlib使用总结1

    2024-03-26 02:22:04       29 阅读
  5. 小程序网络视频组件video经常出现的错误解决

    2024-03-26 02:22:04       77 阅读
  6. Vue【七】实现图片上传与预览

    2024-03-26 02:22:04       37 阅读
  7. ubuntu20.04\22.04 + GTX3060(直接硬盘安装)

    2024-03-26 02:22:04       44 阅读
  8. 小程序设置图片高度自适应

    2024-03-26 02:22:04       35 阅读
  9. 【P4924】[1007] 魔法少女小Scarlet

    2024-03-26 02:22:04       44 阅读
  10. c语言函数大全(C开头)

    2024-03-26 02:22:04       31 阅读