zoukankan      html  css  js  c++  java
  • MYSQL Backup & Recovery

    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输出(CREATEINSERT语句),本地或 可以做远程转储并生成输出端。 (为分割文本输出--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 'file_name' FROM tbl_name。 创建文件 在MySQL服务器主机,而不是客户端主机。 对于这种说法, 输出文件不能已经存在,因为允许文件 被覆盖构成安全风险。 看到选择语法。 这个方法适用于任何类型的数据 文件,但只保存表数据,而不是表结构。

    另一种方法来创建文本文件(连同文件包含的数据CREATE TABLE语句的 备份表)是使用,mysqldump--tab选择。

    重新加载一个分割文本文件数据、使用LOAD DATAmysqlimport

    通过启用二进制日志做增量备份

    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 TABLEmyisamchk - r。 在99.9%的情况下,应该工作。

    使用文件系统快照备份

    如果您使用的是真实文件系统,你可以做一个备份 这样的:

    1. 从一个客户端程序,执行FLUSH TABLES WITH READ LOCK

    2. 从另一个壳,执行mount vxfs snapshot

    3. 从第一个客户,执行UNLOCK TABLES

    4. 复制文件的快照。

    5. 卸载快照。

    类似的快照功能可以在其他文件中 系统,如LVM或ZFS。

  • 相关阅读:
    广播接收者 BroadcastReceiver 示例-1
    内容提供者 DocumentProvider Uri工具类
    内容提供者 ContentResolver 数据库 示例 -1
    内容提供者 ContentResolver 数据库 示例 -2
    Intent MIME 打开各种类型的文件
    任务栈 启动模式 Task Flag launchMode MD
    自定义控件 横向滑动控件 总结
    Universal-Image-Loader 示例 工具
    颜色矩阵 滤镜 ColorMatrix
    图形绘制 Canvas Paint Path 详解
  • 原文地址:https://www.cnblogs.com/wudidd/p/10707323.html
Copyright © 2011-2022 走看看