备份可以分为热备、温备和冷备。
热备、温备和冷备的特点有很多不同。
热备是在数据库正常读取和修改数据时进行,几乎不会中断客户与数据交互或操作数据的
能力。对于读取和修改数据的操作仍可访问系统。通过以下方式锁定数据:使用 MVCC(Multiversion concurrency control ),低级别锁(例如行级别),根本不锁定,以便应用程序可以继续访问数据。
冷备是执行备份时,用户无法访问数据,通常,冷备期间服务器处于不可访问模式或完全关闭,备份时,无法读取数据或对数据进行任何修改。阻止对数据执行的任何活动。在系统启动和运行时不干扰系统的性能,但是,对于某些应用程序来说,必须长时间锁定或完全阻止用户访问数据是不可接受的。
温备是可以在访问数据时执行温备,在大多数情况下,在进行备份时无法修改数据。具有不必完全锁定终端用户的优势,但是,在进行备份时无法修改数据集的缺点可能会使这种类型的备份不适合某些应用程序。可能会导致性能问题,因为无法在备份期间修改数据,更新数据的用户可能会被长时间阻塞。
在 MySQL 中支持的备份类型有逻辑备份,物理备份,基于快照的备份,基于复制的备份和增量备份。
逻辑备份:文本表示:SQL 语句,生成包含用于重建数据库的 SQL 语句的文本文件。
创建逻辑备份时,MySQL 服务器必须处于运行状态
其他应用程序可以在逻辑备份期间执行读取操作
服务器通过读取正在备份的表的结构和内容来创建备份文件
然后将表结构和数据转换为 SQL 语句
使用逻辑备份,可以备份本地和远程 MySQL 服务器,原始备份只能在服务器主机上执行。
优点是:该过程会创建一个 SQL 脚本,可以在 MySQL服务器上执行该脚本。可以使用该脚本在另一台运行不同架构的主机上重新加载数据库。
缺点是:默认情况下(始终对于非 InnoDB 表),mysqldump 和 mysqlpump 在转储期间会锁定表,以防止用户在备份期间修改数据。
物理备份:MySQL 数据库文件的二进制副本。
物理备份一般是服务器在备份期间不得修改数据文件,如果复制实时数据文件,那么就要防止对这些文件的写入:对于InnoDB:需要关闭MySQL服务器,对于 MyISAM:锁定表以允许读取但不允许更改。还可以通过使用将要备份的数据文件与 MySQL 服务器分离开的技术来最大限度地减少对MySQL 和应用程序的影响:快照,复制,DRBD 或其他复制整个文件系统的方法。
增量备份:通过复制和刷新 MySQL 二进制日志创建。
制定备份策略时的决策路径和方法。首先分析是否停机,如果停机的话则选择冷备份即选择OS复制命令。如果没有停机的话就检查,需要备份的数据规模,如果数据规模小在几个GB时可以使用mysqldump或者mysqlpump.当数据规模大于几个GB时可以采用复制,快照,MySQL企业备份来恢复。