MySQL 备份和恢复

1、备份恢复概述

1.1、为什么要备份

在遇到硬件故障、软件故障、自然灾害、黑客攻击、误操作测试等场景,很有可能丢失数据,如果没有备份,那丢失的数据就永远无法恢复,对业务造成很大的影响。

1.2、备份类型

  • 完全备份,部分备份
    • 完全备份:整个数据集
    • 部分备份:只备份数据子集,如部分库或表
  • 完全备份、增量备份、差异备份
    • 增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂
    • 差异备份:仅备份最近一次完全备份以来变化的数据,备份较慢,还原简单
  • 冷、温、热备份
    • 冷备:读、写操作均不可进行,数据库停止服务
    • 温备:读操作可执行;但写操作不可执行
    • 热备:读、写操作均可执行
      • MyISAM:温备,不支持热备
      • InnoDB:都支持
  • 物理和逻辑备份
    • 物理备份:直接复制数据文件进行备份,与存储引擎有关,占用较多的空间,速度快
    • 逻辑备份:从数据库中”导出”数据另存而进行的备份,与存储引擎无关,占用空间少,速度慢,可能丢失精度

1.3、备份什么

  • 数据
  • 二进制日志、InnoDB的事务日志
  • 用户帐号,权限设置,程序代码(存储过程、函数、触发器、事件调度器)
  • 服务器的配置文件

1.4、备份注意要点

  • 能容忍最多丢失多少数据
  • 备份产生的负载
  • 备份过程的时长
  • 温备的持锁多久
  • 恢复数据需要在多长时间内完成
  • 需要备份和恢复哪些数据

1.5、还原要点

  • 做还原测试,用于测试备份的可用性
  • 还原演练,写成规范的技术文档

1.6、备份工具

  • cp, tar等复制归档工具:物理备份工具,适用所有存储引擎;只支持冷备;完全和部分备份
  • LVM的快照:先加读锁,做快照后解锁,几乎热备;借助文件系统工具进行备份
  • mysqldump:逻辑备份工具,适用所有存储引擎,对MyISAM存储引擎进行温备;支持完全或部分备份;对InnoDB存储引擎支持热备,结合binlog的增量备份
  • xtrabackup:由Percona提供支持对InnoDB做热备(物理备份)的工具,支持完全备份、增量备份
  • MariaDB Backup: 从MariaDB 10.1.26开始集成,基于Percona XtraBackup 2.3.8实现
  • mysqlbackup:热备份, MySQL Enterprise Edition 组件
  • mysqlhotcopy:PERL 语言实现,几乎冷备,仅适用于MyISAM存储引擎,使用LOCK TABLES、FLUSH TABLES和cp或scp来快速备份数据库

1.7、数据库冷备份和还原

# 备份
[root@centos79-mysql01 ~]# service mysqld stop
[root@centos79-mysql01 ~]# rsync -a /data/mysql/ 192.168.1.22:/backup/
# 如果有配置存放在其他目录的日志文件等,也需要备份



# 模拟数据丢失
[root@centos79-mysql01 ~]# rm -rf /data/mysql/*

# 还原
[root@centos79-mysql02 backup]# rsync -a /backup/* 192.168.1.21:/data/mysql/
[root@centos79-mysql01 ~]# service mysqld start
# 如果有权限不一致,还原后修改权限

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享