原文地址http://dev.mysql.com/doc/refman/8.0/en/backup-types.html
物理(磁盘)和逻辑备份
物理备份包含了数份数据库的内容和目录结构的拷贝,这种备份类型适合大型的,重要的且在发生宕机故障时需要快速恢复的数据库。
逻辑备份则保存了数据库重要信息,表现在数据库创建的逻辑结构((CREATE DATABASE, CREATE TABLE 等语句)和数据内容(insert 语句或是带分隔符的文本文件等)。这种类型的备份适合于少量的数据变化如在数据更新或者表结构发生变化时,也适用于不同机器间数据库的重建工作。
物理备份有如下特征:
● 备份精确的包含了数据库的目录和文件信息,最典型的就是复制整个Mysql 的data目录。
● 物理备份方法比逻辑备份更快,原因是物理备份仅需要文件复制,不需要经过内部的转换工作。
● 相对于逻辑备份输出物压缩比更高。
● 因为备份速度和压缩比对于繁忙,重要的数据库来说非常重要,mysql企业级产品建议执行物理备份。想要更详尽的mysql 企业级备份产品信息,详见27.2章Mysql 企业备份概述。
● 备份和恢复颗粒范围从整个数据字典到单个数据文件。对于表级的数据的是否可以恢复,暂时需要根据数据库引擎来确定,如使用InnoDB
引擎存储的表可以被存储在多个文件或者和其他InnoDB 表共用共享存储。但是每个ISAM
table 只存储在一些列文件中。
● 对数据库来说,备份还需要包含相关的日志文件和配置文件。
● 这种备份对于内存中的表数据来说比较难以处理,因为这些数据内容并没有存储到磁盘。(不过mysql 企业级备份工具有一个特性能支持在物理备份期间恢复内存里数据表的数据)
● 对于和服务器有相同或者相似的物理配置机器来说,这种备份非常轻便。
● 在数据库服务端非运行状态可以执行物理备份。如果服务端还在运行,那么在备份期间适当的锁就相当有必要了,防止备份期间数据变化。MySQL Enterprise Backup在备份起见可以自动创建表级锁。
● mysql 企业级物理备份工具包括了mysqlbackup 命令备份,基于InnoDB
引擎的表和其它类型的表的备份,或者直接使用操作系统命令(如cp, scp, tar,rsync)备份MyISAM
类型的表。
● 恢复方法
● mysql 企业级物理备份工具可以恢复使用企业管理工具备份的表。
● ndb_restore恢复 NDB
类型的表。
● 系统级别的备份使用命令将文件放到原有的位置即可完成恢复。
逻辑备份有如下特性
● 备份是基于查询 MySQL server 服务端获取的数据库结构和内容信息。
● 备份比物理备份慢是因为必须进入数据库将信息转换成逻辑格式,如果是在客户端执行的备份,服务端也需要现将备份命令执行在返回给客户端。
● 输出物比物理备份要大,特别是存储成TEXT格式文件。
● 备份和恢复颗粒包含了服务器级别(所有库)、数据库级别(单个库)、表级。可以正真忽视数据库引擎。
● 备份可以不用包含日志、配置信息或者其他和数据库相关文件。
● 备份成逻辑格式不依赖机器,非常轻便。
● 备份时不需要停服务,不需要关应用。
● 逻辑备份工具有 mysqldump 程序和SELECT ... INTO OUTFILE 语句。逻辑备份不用考虑存储引擎,存在内存数据也可以备份。
● 恢复逻辑备份 SQL格式的转储文件可以在mysql客户端导入。带分隔符的文件可以用 LOAD DATA INFILE
语句或者 mysqlimport 客户端导入。
在线和离线备份
在线备份发生在MySql服务器正在运行的时候因此可以从服务器端获取数据库信息。离线备份需要在数据库关闭的情况下。两者的区别也被称之为“热备”和“冷备”。一个“温和” 是服务端正在运行但是会有一个锁,锁住外部访问数据文件期间数据的更改操作。
在线备份方法有如下特征:
● 备份时很少影响其他客户端,在备份期间其他客户端可以连接MYSQL服务器并且能更具他们的操作决定访问的数据。
● 为保证备份完整性必须小心施加适当的锁以便在备份期间不会发生数据修改。MySQL企业级备份产皮可以自动产生这些锁。
离线备份方法有如下特征:
● 备份期间服务端需要停止,客户端无法访问服务端。因此这类备份经常发生在主从复制时的备库,数据库关停不会对数据库可用性产生有害影响。
● 备份过程简单因为不会有接口从客户端访问。
在恢复时在线和离线过程差不多。然而在线恢复的情况下客户端会被更加强大的锁限制,在线备份期间客户端也许可以读取数据,但是在恢复期间可能连读数据都无法进行。因此在线回复期间需要更加严格的锁来限制数据的修改。