MySQL数据库备份

前言:

数据备份的目的——恢复数据

在数据库保存数据时,有时候不可避免会出现数据丢失或者被破坏,这样情况下,我们必须保证数据的安全性和完整性

目录

一、备份类型

二、备份内容

三、备份工具

1、MySQL自带的备份工具——mysqldump、mysqlhotcopy

2、文件系统备份工具

3、其它工具


一、备份类型

【1】根据服务器状态,可以分为热备份、温备份、冷备份

  • 热备份:读、写不受影响;

  • 温备份:仅可以执行读操作;

  • 冷备份:离线备份;读、写操作均中止;

【2】从对象来分,可以分为物理备份与逻辑备份

  • 物理备份:复制数据文件;

  • 逻辑备份:将数据导出至文本文件中;


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

  • 因为是直接复制文件系统上面的数据,因此备份文件和数据文件完全一致
  • 物理备份比逻辑备份速度要快
  • 数据还原后不保证table层面的一致性(不同存储引擎行为不一样)
  • 除了数据外,物理备份也同时备份了一些其他文件,例如日志文件
  • 物理备份最好在服务器停止的情况下备份,确保数据一致性,否则需要在锁表的前提下进行备份
  • 无法备份内存表,因为内存表没有写入硬盘
  • 物理备份可移植性较低,例如在Linux下备份的文件还原到windows下是就可能会有问题
  • 物理备份则对版本要求非常高

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

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

  • 逻辑备份只能在服务器online的情况下备份,因为需要运行sql语句
  • 逻辑备份速度比物理备份慢
  • 不管数据库是什么引擎,保证数据在database层面和table层面的一致性
  • 只能备份数据,不能备份配置文件或者日志文件
  • 备份文件可能会比物理备份的大
  • 逻辑备份可以在不锁表的情况下进行备份(针对innoDB引擎)
  • 逻辑备份可移植性比物理备份高 (逻辑备份有非常强的兼容性)
  • 可能会丢失浮点数的精度信息

【3】从数据收集来分,可以完全备份、增量备份、差异备份

  • 完全备份:备份全部数据;

  • 增量备份:仅备份上次完全备份或增量备份以后变化的数据;

  • 差异备份:仅备份上次完全备份以来变化的数据;

二、备份内容

        数据文件

        日志文件(比如事务日志,二进制日志)

        存储过程,存储函数,触发器

        配置文件(十分重要,各个配置文件都要备份)

        用于实现数据库备份的脚本,数据库自身清理的Crontab等……

三、备份工具

1、MySQL自带的备份工具——mysqldump、mysqlhotcopy

mysqldump,是mysql数据库管理系统,自带的逻辑备份工具,支持所有引擎,MyISAM引擎是温备,InnoDB引擎是热备,备份速度中速,还原速度非常非常慢。但是在实现还原的时候,具有很大的操作余地。具有很好的弹性。

mysqlhotcopy 物理备份工具,但只支持MyISAM引擎,基本上属于冷备的范畴,物理备份,速度比较快。mysqlhotcopy使用lock tables、flush tables和cp或scp来快速备份数据库或单个表,属于裸文件备份(物理备份),只能用于MyISAM引擎的数据库。本质是使用锁表语句,然后cp或scp。

2、文件系统备份工具

cp命令, 冷备份,支持所有引擎,复制命令,只能实现冷备,物理备份。使用归档工具,cp命令,对其进行备份的,备份速度快,还原速度几乎最快,但是灵活度很低,可以跨系统,但是跨平台能力很差。

lvm 几乎是热备份,支持所有引擎,基于快照(LVM,ZFS)的物理备份,速度非常快,几乎是热备。只影响数据几秒钟而已。但是创建快照的过程本身就影响到了数据库在线的使用,所以备份速度比较快,恢复速度比较快,没有什么弹性空间,而且LVM的限制:不能对多个逻辑卷同一时间进行备份,所以数据文件和事务日志等各种文件必须放在同一个LVM上。而ZFS则非常好的可以在多逻辑卷之间备份。

3、其它工具

ibbackup

xtrabackup

mysqlbackup

你可能感兴趣的:(DateBase,数据库,mysql)