MySQL备份与恢复
1.1. 备份基础知识mysql
为何要备份 ?sql
² 完整系统恢复须要 :若是系统发生故障,则拥有系统的备份相当重要,由于能够恢复系统。实施怎样的备份和恢复策略取决于被恢复数据要达到的完整性和时效性。数据库
² 审计功能须要 :对于某些系统及关联的流程,可能须要审计或分析独立于主生产环境的环境中的数据。可使用备份建立这样一个独立的环境。编程
² 常规 DBA 任务 :在须要执行常见的 DBA 任务时使用备份。例如,将数据从一个系统传输到另外一个系统,根据特定的生产服务器状态建立开发服务器,或者将系统的特定部分恢复到用户出错前的某个状态。服务器
备份类型一:网络
热备份 :备份在读取或修改数据的过程当中进行,不多中断或者不中断传输或处理数据的功能。使用热备份时,系统仍可供读取和修改数据的操做访问。异步
冷备份 :备份在用户不能访问数据时进行,所以没法读取或修改数据。脱机备份会阻止执行任何使用数据的活动。这类型的备份不会干扰正常运行的系统的性能。可是,对于某些应用程序,会没法接受在一段较长的时间里锁定或彻底阻止用户访问数据。ide
温备份 :备份在读取数据时进行,但在多数状况下,在进行备份时不能修改数据自己。这种中途备份类型的优势是没必要彻底锁定最终用户。可是,其不足之处在于没法在进行备份时修改数据集,这可能使这种类型的备份不适用于某些应用程序。在备份过程当中没法修改数据可能产生性能问题。性能
备份类型二:学习
磁盘备份: 可使用复制或 RAID 镜像之类流程,或者使用 DRBD 之类的外部应用程序,将数据直接备份到其余磁盘。这些技术提供实时(或几乎实时)备份,以及快速恢复数据的方法。
二进制日志备份: 二进制日志记录对数据的修改。所以,二进制日志对恢复自上次完整备份以来发生的事件颇有用。备份二进制日志的优势是其中包含了各个时间对数据所作的全部更改的记录,而不是数据的快照。能够按顺序建立多个二进制日志备份。根据修改的数据量以及完成完整备份的频率,决定要在备份之间建立的二进制日志备份的数量。二进制日志的不足之处是必须恢复自序列中最后一次完整备份以来建立的全部按顺序的二进制日志。此外,从系统故障中恢复的速度可能会很慢,具体取决于必须恢复的二进制日志的数量。
逻辑 / 文本备份 :可使用 mysqldump 进行完整数据转储。这些数据转储基于特定的时间点,可是是全部备份副本中速度最慢的。使用 mysqldump 的优势是所建立的文件是简单的 SQL 脚本,其中包含可在 MySQL 服务器上运行的语句。不足之处在于 mysqldump 会在转储过程当中锁定表,这会阻止用户在备份过程当中读写文件。
备份类型三:
Ø 逻辑备份
Ø 物理备份
Ø 基于快照的备份
Ø 基于复制的备份
Ø 增量备份
下面分别详细介绍备份类型三种的 5 中备份方式;
1.1.1. 逻辑备份
逻辑备份将数据库的内容转储到文本文件中。这些文本文件包含 SQL 语句,所以可移植性很好。这些 SQL 语句包含重建MySQL 数据库和表所需的所有信息。可使用该文本文件在运行不一样体系结构的其余主机上从新装入数据库。
在建立逻辑备份时, MySQL 服务器必须处于运行状态,由于服务器在建立文件时要读备份的表的结构和内容,而后将结构和数据转换为 SQL 语句。其余应用程序能够在逻备份过程当中执行读取操做。
采用逻辑备份时,能够备份本地和远程的 SQL 服务器。只能在本地 MySQL 服务器上执行其余类型的备份(物理备份)。
逻辑备份的速度一般比物理备份慢。这是由于 MySQL 服务器必须读取表并解释其内容。而后,将表内容转换成磁盘文件,或者将语句发送给客户机程序,由客户机程序将语句写出。在恢复过程当中,逻辑备份速度比物理备份慢。这是由于恢复的方法执行单个 CREATE 和 INSERT 语句来从新建立每一个备份表和行。
1.1.2. 物理备份
物理备份生成数据库文件的完整副本,可使用标准命令进行备份,如 tar 、 cp 、 cpio 、 rsync 或 xcopy ;恢复时能够在不一样的计算机体系结构间恢复,但必须恢复到同一个数据库引擎;比逻辑备份和恢复的速度快;物理备份是 MySQL 数据库文件的二进制副本。这些副本以彻底相同的格式保留数据库, MySQL 自己就采用这种格式将这些副本存储在磁盘上。 推荐一个大数据学习扣裙606数字859数字705天天晚上20:10都有一节【免费的】大数据直播课程,专一大数据分析方法,大数据编程,大数据仓库,大数据案例,人工智能,数据挖掘都是纯干货分享由于是原始数据库文件的完整副本,所以物理备份的大小与原始数据库文件彻底相同。原始二进制备份的速度比逻辑备份快,由于该过程是简单的文件复制,不须要了解文件的内部结构。可是,若是使用物理备份将数据库传输到采用不一样体系结构的其余计算机,则文件必须是二进制可移植文件。由于物理备份是数据库文件位的完整表现形式,所以必须将其恢复到使用相同数据库引擎的 MySQL 服务器。在从 InnoDB 表恢复原始 MySQL 备份时,会在目标服务器上保留一个 InnoDB 表。
数据库文件在备份期间不能有更改,要实现这一点的方法取决于存储引擎,对于 InnoDB 须要关闭 MySQL 服务器,对于MyISAM 锁定表以容许读取,但不容许更改;也可使用快照、复制或专有方法实现;采用二进制备份方法时,必须确保在备份进行期间服务器不修改文件。能够经过各类方法作到这一点。有一种方法是关闭 MySQL 服务器,而后再进行备份。这种方法有明显的不足之处。对于某些存储引擎,更好的办法是暂时锁定数据库,进行备份,而后再将数据库解锁。也可使用快照、复制或专有方法,最大限度地减少对 MySQL 和应用程序的影响。
1.1.3. 基于快照的备份
基于快照的备份使用 MySQL 外部的快照功能。例如,若是 MySQL 数据库和二进制日志在具备相应文件系统的 LVM2 逻辑卷上,则可建立快照副本。基于快照的备份最适合 InnoDB 之类的事务引擎。能够为 InnoDB 表执行热备份;对于其余引擎,能够执行温备份。
快照备份是可伸缩的,由于执行快照所需的时间不会随数据库大小的增加而增长。事实上,从应用程序的角度来看,备份期限几乎是零。可是,建立快照后,基于快照的备份几乎老是包括一个物理备份。
1.1.4. 基于复制的备份
MySQL 能够支持单向异步复制,即一台服务器做为 master ,而一台或多台其余服务器做为 slave 。经过使用副本或slave 而不是 master ,可使用复制来执行备份。这样作的优点是备份操做不会影响 master 的性能。缺点是成本较高,由于必须购买额外的硬件和网络带宽。此外,因为复制固有的延迟特性, slave 的数据库副本包含一个相对于 master 延迟的数据版本。
1.1.5. 增量备份
备份只是在损失或损坏后进行数据恢复所需的组件之一。另外一个组件是二进制日志,其中包含了数据更改的记录。要恢复数据库,可以使用备份将数据恢复到其在备份时的状态。在恢复了备份以后,需应用二进制日志的内容以应用自备份建立以来的全部数据更改。要确保为全部 MySQL 服务器启用二进制日志记录。必须拥有 SUPER 权限才能设置此变量。若是在没有SUPER 权限的状况下尝试设置此变量,将出现如下错误:ERROR 1227 (42000): Access denied; you need the SUPER privilege for this operation