12-数据库备份与恢复

nobility 发布于 2020-06-19 2504 次阅读


数据库备份与恢复

理论

  • 故障

    • 事务内部故障:数据库管理系统强行回滚事务
    • 系统故障(断电,操作系统崩溃等):数据库管理系统重做提交事务,回滚未提交事务,将数据库恢复到一致状态
    • 介质故障(磁盘损坏):无法恢复
    • 计算机病毒
  • 备份:定期对数据库中数据转存成副本

    • 备份规模分类
      • 完全备份:备份全部信息
      • 差异备份:完全备份后,对数据库修改操作备份
      • 部分备份:备份部分信息
    • 备份状态分类
      • 连接备份(在线备份):数据库正常使用时对数据库备份
      • 脱机备份(离线备份):没有用户连接时对数据库备份
    • 备份方式分类
      • 物理备份:直接拷贝数据库的物理文件
      • 逻辑备份:数据导出操作
  • 恢复:数据库故障后,用副本恢复数据库

    • 恢复程度分类
      • 完全恢复:恢复到出现故障时刻
      • 不完全恢复:恢复到出现故障时刻之前
    • 恢复方式分类
      • 物理恢复:直接拷贝数据库的物理文件
      • 逻辑恢复:数据导入操作
  • 日志文件(重做日志文件)

    • 记录事务对数据库进行的更新操作
    • 数据库故障后根据日志文件可完全恢复数据库
    • 先写日志文件,后写数据文件

MySQL中的备份和恢复

物理备份:将表结构以及表数据都保存在文件中

mysqldump -u 用户名 -p 数据库 > 要保存的文件路径
//备份整个数据库
mysqldump -u 用户名 -p 数据库 表名1 表名2 ...> 要保存的备份文件路径
//备份数据库下的某张表
mysqldump -u 用户名 -p 数据库 < 数据库备份文件路径
//恢复整个数据库
//当然也可以手动创建数据库后使用source命令执行备份数据库脚本文件

逻辑备份:只将数据备份

select * from 表名 into outfilr '数据文件路径';
-- 将查询结果输出到文件中
load data infile '数据文件路径' into table 表名;
-- 装载数据文件到表中
此作者没有提供个人介绍
最后更新于 2020-06-19