Backup & Recovery备份和恢复
1.类型
物理备份
物理备份包含原始目录的副本 文件存储数据库的内容。 这种类型的备份 适用于大型、重要的数据库需要恢复 很快当问题发生。
逻辑备份保存信息表示为逻辑数据库 结构(CREATE DATABASE
,CREATE TABLE
语句)和 内容(INSERT
语句或 分割文本文件)。 这种类型的备份是适合小 大量的数据,你可以编辑数据值或表 结构,或重新创建数据在不同的机器上 体系结构。
物理备份方法有这些特点:
-
备份的数据库目录的精确副本 和文件。 通常这是一个复制的全部或部分 MySQL数据目录。
-
物理备份方法比逻辑,因为它们 只涉及文件复制没有转换。
-
输出比逻辑备份更紧凑。
-
因为忙,备份速度和紧性是很重要的 重要的数据库,备份MySQL企业产品 执行物理备份。
-
备份和恢复粒度范围的水平 整个数据目录级别的单个文件。 这可能会或可能不会提供表级粒度, 这取决于存储引擎。 例如,
InnoDB
每一个可以在一个单独的表 文件,或者与其他共享文件存储InnoDB
表; 每一个MyISAM
表对应唯一一组 的文件。 -
除了数据库,备份可以包括任何相关 如日志文件或配置文件。
-
数据从
MEMORY
表是一个棘手的问题 这种方式因为其内容并不存储在磁盘上。 (MySQL企业备份产品有一个功能,你 可以检索的数据MEMORY
表在 一个备份)。 -
备份是便携式其他机器 相同或相似的硬件特性。
-
备份可以同时执行MySQL服务器 运行。 如果服务器正在运行,必须执行 适当的锁定,以便服务器不会改变 在备份数据库内容。 MySQL企业备份 这对表自动锁定,需要它。
-
物理备份工具包括mysqlbackupMySQL企业备份
InnoDB
或任何其他表或文件 系统级的命令(如cp,scp,焦油,rsync)MyISAM
表。 -
恢复:
-
MySQL企业备份恢复
InnoDB
和其他表备份。 -
ndb_restore恢复
NDB
表。 -
文件复制在文件系统级别可以复制回来 与文件系统命令他们原来的位置。
-
逻辑备份方法有这些特点:
-
备份是通过查询获得MySQL服务器 数据库结构和内容信息。
-
备份是比物理方法,因为服务器必须慢 访问数据库信息,将它转换成逻辑格式。 如果输出是写在客户端,服务器必须 也把它备份程序。
-
输出大于物理备份,尤其是当 以文本格式保存。
-
备份和恢复粒度在服务器上可用 级别(所有数据库)、数据库级别(所有表 特定的数据库),或表级。 这是真的不管 存储引擎。
-
备份不包括日志或配置文件,或 其他不属于数据库的数据库相关文件。
-
备份存储在机器独立和逻辑格式 具有高度的可移植性。
-
逻辑备份执行与MySQL服务器运行。 服务器不是离线。
-
逻辑备份工具包括,mysqldump程序和
SELECT ... INTO OUTFILE
声明。 这些工作对于任何 存储引擎,甚至MEMORY
。 -
逻辑备份恢复,sql格式转储文件 加工使用mysql客户端。 加载 分割文本文件,使用
LOAD DATA
声明或mysqlimport客户端。
在线和离线备份
在线备份MySQL服务器运行时发生 数据库可以从服务器获得信息。 离线备份在服务器停止举行。 这 区别也可以被描述为"热”与"冷”备份; 一个"温暖的”备份是一个 服务器仍然运行但锁反对修改数据 当你访问数据库文件外部。
在线备份方法有这些特点:
-
备份更少侵入其他客户,可以 连接到MySQL服务器备份和可能 访问数据取决于他们需要操作 执行。
-
必须注意实施适当的锁定,以便数据 修改不妥协备份发生 的完整性。 MySQL企业备份产品等 自动锁定。
脱机备份方法有这些特点:
-
客户可以产生不利影响,因为服务器 备份期间不可用。 出于这个原因,这些备份 经常从一个复制从属服务器,可以采取 离线没有伤害的可用性。
-
备份过程更简单,因为没有 客户活动干扰的可能性。
类似的在线和离线申请之间的区别 恢复操作,应用相似的特征。 然而, 这是更有可能将受到影响,客户在线 复苏比在线备份,因为经济复苏需要更强 锁定。 在备份期间,客户可以读取数据 它被备份。 修改数据,不仅复苏 读,因此客户必须阻止访问数据时 正在恢复。
本地和远程备份
在同一个主机上执行本地备份MySQL 远程备份服务器运行,而从不同的完成 主机。 对于某些类型的备份,备份可以启动 远程主机,即使输出是在本地服务器上的写的。 主机。
-
,mysqldump可以连接到本地或远程吗 服务器。 对于SQL输出(
CREATE
和INSERT
语句),本地或 可以做远程转储并生成输出端。 (为分割文本输出--tab
选项),数据文件 是在服务器主机上创建的。 -
SELECT ... INTO OUTFILE
可以从本地或远程启动 客户端主机,但是在服务器上创建的输出文件 主机。 -
物理备份方法通常在本地启动 MySQL服务器主机,服务器可以离线, 虽然目的地可能是远程复制文件。
快照备份
使一些文件系统实现"快照”。 这些提供逻辑文件系统的一个副本 给定的时间点上,而不需要一个物理的副本 整个文件系统。 (例如,实现可以使用 即写即拷技术,因此只有部分的文件系统 修改后的快照时间需要被复制。) MySQL本身 没有提供的功能在文件系统的快照。 可以通过第三方解决方案如真理, LVM或ZFS。
完整和增量备份
一个完整的备份包括所有数据由一个MySQL服务器管理 给定的时间点上。 增量备份的变化 在给定的时间段内的数据(从一个时间点 到另一个)。 MySQL有不同的方法来执行一次完整备份, 如前面所述的那些在这一节中。 增量 备份是通过使服务器的二进制日志, 服务器使用记录数据的变化。
完整的和时间点(增量)的复苏
完全康复恢复所有的数据从一个完整的备份。 这 恢复服务器实例的状态时 备份。 如果状态不是足够的电流,一个完整的 恢复可以恢复增量备份的紧随其后 完全备份以来,服务器更新更及时 状态。
2.数据备份方法
做一个热备份与MySQL企业备份
MySQL的客户企业版可以使用MySQL企业 备份产品要做物理备份整个 选择实例或数据库、表、或两者兼而有之。 这个产品 包括功能增量和压缩备份。 物理备份数据库文件可以更快地恢复 比逻辑技术等mysqldump
命令。InnoDB
表复制使用热备份机制。 (理想情况下,InnoDB
表应该代表一个 绝大多数的数据)。 从其他存储表 引擎被复制使用温暖的 备份机制。
用mysqldump做备份
的mysqldump程序可以做备份。 它可以 各种各样的表。
为InnoDB
表,可以执行 在线备份,没有锁表使用--single-transaction
选项,mysqldump。
通过复制表文件做备份
MyISAM表可以通过复制备份表文件 (*.MYD
,*.MYI
文件, 相关的*.sdi
文件)。 得到一个一致的 备份,停止服务器或锁和刷新相关表:
FLUSH TABLES tbl_list WITH READ LOCK;
你只需要读锁; 这使其他客户继续 查询时表文件的一个副本 数据库目录。 需要确保所有冲洗 活跃的索引页写到磁盘之前 备份。 看到锁表和打开表的语法,冲洗语法。
您还可以创建一个二进制备份只需复制表 文件,只要服务器不更新任何东西。 (但注意 那张桌子不工作如果您的数据库文件复制方法 包含InnoDB
表。 另外,即使 服务器不积极更新数据,InnoDB
可能还有修改的数据缓存在内存中,而不是刷新到 磁盘)。
使用分割文本文件备份
创建一个文本文件,其中包含一个表的数据,您可以使用SELECT * INTO OUTFILE '
。 创建文件 在MySQL服务器主机,而不是客户端主机。 对于这种说法, 输出文件不能已经存在,因为允许文件 被覆盖构成安全风险。 看到选择语法。 这个方法适用于任何类型的数据 文件,但只保存表数据,而不是表结构。file_name
' FROM tbl_name
另一种方法来创建文本文件(连同文件包含的数据CREATE TABLE
语句的 备份表)是使用,mysqldump与--tab
选择。
重新加载一个分割文本文件数据、使用LOAD DATA
或mysqlimport。
通过启用二进制日志做增量备份
MySQL支持增量备份:您必须启动服务器 的--log-bin
选项来启用 二进制日志; 看到二进制日志。 二进制日志 文件为您提供您需要的信息复制 更改数据库,随后点 你执行备份。 现在你想做一个 增量备份(包含以来发生的所有更改 最后一次完整或增量备份),你应该旋转二进制日志 通过使用FLUSH LOGS
。 这个做的,你 需要复制的所有二进制日志备份位置范围 的一个时刻的最后一次完整或增量备份 倒数第二个。 下次你做一个 完全备份,您还应该旋转使用二进制日志FLUSH LOGS
或,mysqldump ——flush-logs。 看到,mysqldump——一个数据库备份程序。
Making Backups Using Replication Slaves
如果你有与你的主服务器的性能问题 做备份,一个策略可以帮助是建立 复制和对奴隶而不是执行备份 的主人。 看到第二章,使用复制备份。
如果你复制服务器备份一个奴隶,你应该回来 其主信息和中继日志信息存储库(见复制日志继电器和状态)当你奴隶的 数据库,不管你选择的备份方法。 这 总是需要的简历复制在您的信息 恢复奴隶的数据。 如果你的奴隶是复制LOAD DATA
语句,你应该 也支持任何SQL_LOAD-*
文件存在 在目录中,奴隶使用。 奴隶 这些文件需要恢复复制任何中断LOAD DATA
操作。 的位置 这个目录的价值--slave-load-tmpdir
选择。 如果 服务器没有启动选项,目录位置 的值tmpdir
系统 变量。
Recovering Corrupt Tables
如果你要恢复MyISAM
表, 成为腐败,试图恢复使用REPAIR TABLE
或myisamchk - r。 在99.9%的情况下,应该工作。
使用文件系统快照备份
如果您使用的是真实文件系统,你可以做一个备份 这样的:
-
从一个客户端程序,执行
FLUSH TABLES WITH READ LOCK
。 -
从另一个壳,执行
mount vxfs snapshot
。 -
从第一个客户,执行
UNLOCK TABLES
。 -
复制文件的快照。
-
卸载快照。
类似的快照功能可以在其他文件中 系统,如LVM或ZFS。