使用 Zmanda Recovery Manager 简化备份

作者:Alolita Sharma

大多数现代企业在日常运营中处理大量数据。按需访问这些数据至关重要,大多数企业都在关系数据库技术上投入巨资来管理他们的数据。具有成本效益的尖端技术已促使许多企业采用 MySQL 等开源数据库。因此,MySQL 已成为许多数据管理解决方案的核心组件。

传统上,备份存储在 MySQL 等关系数据库中的数据一直是一门艺术,由数据库管理员实践,他们依赖于命令行技巧、自定义脚本,有时甚至是纯粹的运气。成功的数据恢复通常被视为黑魔法,或者几乎如此。毫不奇怪,大多数备份和恢复策略都强调备份阶段,但它们实际上并没有测试数据在需要时是否可以成功恢复。

Zmanda 公司是一家位于加利福尼亚州森尼维尔的初创公司,旨在通过在其产品 Zmanda Recovery Manager (ZRM) for MySQL 中融入行业最佳实践,使 MySQL 数据库的备份和恢复过程变得合理化。Zmanda 在开源备份和恢复软件方面的强大专业知识来自于公司核心工程师多年来在屡获殊荣的 Amanda 开源备份系统上的工作,该项目于 1991 年在马里兰大学启动。

什么是 Zmanda Recovery Manager (ZRM)?

ZRM 为 MySQL 数据库的备份和恢复提供了一个全面的开源解决方案。ZRM 通过其基于 Web 的 Zmanda Management Console (ZMC) 简化了日常备份和恢复任务。管理控制台与 Zmanda Network 集成,为 ZRM 提供在线文档和其他支持服务。由于它是开源的,并且支持通用标准以及用于备份的开放数据格式,ZRM 使您摆脱了供应商锁定。ZRM 的命令行界面 (CLI) 可以很好地集成到现有的备份和恢复流程中。

Simplifying Backups with Zmanda Recovery Manager

图 1. Zmanda Management Console 中的备份参数摘要

为了实现高级备份和恢复实践,ZRM 通过结合文件系统级快照以及来自 MySQL 二进制日志的数据,为 MySQL 提供了持续数据保护 (CDP)。文件系统快照有助于减少数据库服务器停机时间,尤其是在处理大型数据库时。ZRM 使用灵活的插件框架来快照 LVM、NetApp SnapManager、Windows VSS、Veritas VxFS 和 Solaris ZFS。NetApp SnapManager 和 Veritas VxFS 的插件单独出售。

Zmanda 为 MySQL 提供三个版本的 ZRM:ZRM 企业版、ZRM 集群版和 ZRM 社区版。企业版包括图形安装程序、Zmanda Management Console、命令行界面和插件框架。企业版客户可获得三个级别的支持(基本、标准和高级)。包含基本支持的年度订阅起价为 300 美元(美国)。将 NDB 存储引擎与 MySQL Cluster 结合使用的客户可以利用 ZRM 集群版。社区版是企业版的可免费下载的子集,根据 GNU GPLv2 许可,它支持 LVM 快照,但不包括 ZMC 和图形安装程序。

Simplifying Backups with Zmanda Recovery Manager

图 2. 图形安装程序使 ZRM 的设置变得轻而易举。

评测环境

我评测了 Zmanda Recovery Manager for MySQL 企业版 2.2 版本。测试平台(ZRM 服务器)是在一台 PC 上安装的 Red Hat Enterprise Linux 5.1,该 PC 配备了 Intel 双核 3GHz 处理器、4GB 系统内存和 750GB SATA 硬盘。我在 ZRM 服务器以及另一台安装了 Ubuntu 7.10 服务器的 PC 上本地安装了 MySQL Community Server 5.0.51a-0 版本。通过此配置,我能够测试 ZRM 从本地和远程 MySQL 服务器备份和恢复的能力。请注意,ZRM 也支持 MySQL 4.1.x 版本。最后,我在 50GB LVM(逻辑卷管理器)分区上设置了我的测试数据库,以测试 ZRM 的热备份功能。

安装 ZRM

Zmanda 为 Red Hat Enterprise Linux、SUSE Linux Enterprise、Fedora、CentOS、Solaris 和 OpenSolaris 上的 ZRM 提供安装包。要安装 ZRM,请从 Zmanda Network 站点下载 ZRM 图形安装程序二进制可执行文件和 ZRM 许可证密钥文件。许可证密钥文件必须放置在 /etc/zmanda/zmanda_license 中。ZRM 企业版的完整安装包括命令行工具、供 ZRM 使用的 MySQL 服务器实例、供 ZMC 使用的 Apache Web 服务器实例以及 PHP 5.2.x 和 Perl 5.8.x 环境。

如果您熟悉 Linux 上的 MySQL 环境,则可以轻松启动并运行 ZRM。几个次要但必要的安装后任务包括为 mysql 系统用户设置 sudo 权限,以及创建一个具有执行备份和恢复的正确权限的 MySQL 服务器用户帐户。

Zmanda Management Console

ZMC 是一个基于 Web 的界面,充当端到端管理备份和恢复过程的控制面板。每个主要功能(例如,备份、监控、报告、管理和恢复)都由 ZMC 界面中的选项卡和相应的面板表示。使用 ZMC 时要理解的关键概念是“备份集”。备份集定义了 MySQL 服务器上数据库中的一组数据库或表。一旦定义了备份集,ZMC 用户就可以为该备份集配置各种操作。为了帮助您了解 ZRM,以下部分重点介绍了通过 ZMC 访问的 ZRM 功能。

备份

ZRM 提供了几种备份 MySQL 的方法。选择备份 MySQL 数据库的最佳方法时,需要考虑的重要因素包括备份期间数据库的可用性和数据库的大小。

如果您追求灵活性,则应考虑逻辑备份。逻辑备份捕获 mysqldump 实用程序的输出,并支持除 NDB 之外的所有 MySQL 存储引擎。您可以将逻辑备份恢复到与原始平台不同的平台。例如,在 RHEL x86 系统上运行的 MySQL 数据库的备份可以恢复到在 Solaris Sparc 系统上运行的 MySQL 数据库。但是,逻辑备份的灵活性是有代价的。MySQL 表在备份期间被读取锁定。此外,恢复大型数据库可能很慢,因为使用 SQL 语句重新创建数据库。而且,备份的大小可能大于实际备份的数据库或表。

如果您希望数据库停机时间最短或数据库大小非常大,则应考虑原始备份。原始备份可以利用文件系统级快照来缩短备份时间。此外,原始备份的备份大小与备份数据的大小相同,但原始备份具有限制性,因为它只能恢复到同一类型平台上的完全相同的 MySQL 服务器版本。如果您有大型数据库和/或高事务量,则应考虑使用快速快照选项进一步减少备份时间,因为文件系统快照将成为备份,并且不会复制到 ZRM 服务器。请注意,在 Linux 上,LVM 快照仅支持本地 MySQL 备份。

ZRM 可以轻松运行完整或增量备份的组合。完整备份包括数据库中的所有数据,而增量备份捕获自上次成功备份以来的更改。增量备份需要 MySQL 服务器上启用二进制日志记录。

如果数据安全是要求,ZRM 可以利用 SSL 进行远程备份,并且可以使用标准加密工具(如 GnuPG)加密备份映像。

我通过运行完整和增量、逻辑和原始(使用快速快照选项)备份一百万条记录的数据库表的各种变体来测试 ZRM 的备份功能。备份完成没有任何问题,我能够使用 ZMC 中“报告”选项卡下的摘要报告页面来验证这一点。

监控

ZRM 的监控功能提供了有关最近运行的备份作业以及当前正在运行的作业的宝贵信息。信息包括备份花费的时间、备份大小以及任何警告或错误消息。在跟踪长时间运行的备份作业的进度时,此功能非常有用。

报告

ZRM 提供出色的报告,分析有关备份和恢复作业的详细信息,包括摘要报告、自定义报告、预定义报告和数据完整性报告。ZRM 企业版提供九个预定义报告,并允许使用 30 个预设数据字段进行自定义报告。您可以通过 RSS 源在其他应用程序中使用 ZRM 的报告数据。您还可以配置 ZRM 发送有关备份作业状态的电子邮件警报。

我发现“备份应用程序性能报告”非常有用,因为它提供了有关表被读取锁定的时间和总备份时间的统计信息。此信息可以帮助 DBA 安排备份以避免数据库使用高峰期。

管理

ZMC 的管理功能允许您定义和管理用户、管理备份集、设置 ZRM 站点默认值以及自定义 ZMC 首选项。ZMC 实施基于角色的访问控制,用户可以定义为操作员或管理员。管理员可以管理 ZRM 服务器上的所有备份集;但是,操作员只能管理他们拥有的备份集。

恢复

ZRM 简化了丢失数据的完整或增量恢复。使用 ZMC,您选择要恢复的备份集,并指定要恢复到的 MySQL 服务器。如果您想在恢复后手动验证数据,ZMC 提供了一个选项,可以在恢复完成后关闭 MySQL 服务器。

另一个选项是时间点恢复,它允许您有选择地恢复数据。使用 ZMC 中的 Visual Log Analyzer,您可以通过指定给定的时间点或您想要恢复到的二进制日志位置来执行增量恢复。

为了测试 ZRM 的恢复功能,我成功恢复了从早期测试创建的备份。我还成功地将一百万条记录表的快速快照原始备份映像恢复到我的远程 MySQL 服务器。

帮助

即使 ZMC 界面相对容易理解,您可能仍需要有关特定 ZRM 功能的更多信息。幸运的是,ZMC 通过 Zmanda Network 提供上下文相关的在线文档。其他有用的资源包括 Zmanda Wiki、论坛和博客。Zmanda 活跃的在线社区非常乐于助人和响应迅速。

冉冉升起的新星

Zmanda Recovery Manager 为依赖 MySQL 处理关键数据的组织提供了一个强大、开放且经济高效的备份和恢复解决方案。ZRM 通过其基于 Web 的控制台管理复杂的开源实用程序,从而简化了原本复杂繁琐的备份和恢复过程。

与任何不断发展的产品一样,总有改进的空间。以下是一些我的建议:一个更智能的图形安装程序,可以自动执行今天手动完成的安装后任务;一个更复杂的管理控制台,可以增强用户体验;更时髦的图形报告(想想 Google Analytics);以及一个 ZRM 虚拟设备(VM 映像),以便在虚拟化环境中更轻松地部署。

立即试用 ZRM 的开源社区版。您将看到 MySQL 备份和恢复可以多么轻松。

与 Zmanda 的问答

我们与 Zmanda 的 CEO 兼联合创始人 Chander Kant 以及 Zmanda 的工程副总裁兼联合创始人 Paddy Sreenivasan 讨论了 ZRM、开源备份和发展开源社区。

AS: 为什么客户应该关注 Zmanda Recovery Manager 和开源?

CK: 虽然基于开源和开放标准的产品几乎总是具有较低的初始购置成本,但更大的好处是在部署的生命周期内实现的。开放产品提供的固有自由使 IT 管理员能够显着降低持续维护的成本。假设您的组织正在使用当今流行的操作系统,但在几年后变得不受欢迎。专有备份供应商很可能会撤回对这种无利可图的操作系统的支持,这实际上是可能的。这将迫使您在选择使用某种临时机制来备份该系统或用不同的操作系统替换该系统之间做出选择——这两种选择都很昂贵。众所周知,开源社区为较旧(有时是晦涩难懂的)平台提供支持。此外,源代码可用于编译或重新编译特定操作系统的软件。

专有软件供应商未来的盈利能力取决于将客户锁定在他们的专有格式和组件中。例如,如果您使用专有备份产品写入磁带,则从该磁带恢复数据的唯一方法是使用相同的产品(在大多数情况下,是完全相同的版本)。如果您在七年后从磁带恢复数据,您最好手头有特定版本的具有有效许可证的产品,或者准备支付高价来恢复您自己的数据。相比之下,使用 Zmanda 产品备份的数据始终采用开放格式。即使不使用我们的产品,客户也可以恢复他们的数据(当然,如果他们使用我们的产品,则更容易恢复)。此外,数据可以重新用于其他应用程序(例如电子取证)。

AS: 您是如何想到构建开源数据库备份解决方案的想法的?

CK: 我们是领先的开源备份公司。对于任何备份公司而言,要想对客户有吸引力,您都需要一个好的数据库备份故事。对我们来说,这是一个明确的选择:MySQL 是领先的开源数据库——我们必须成为 MySQL 的核心备份解决方案提供商。

AS: 您为什么创立 Zmanda?您是如何想到这个名字的?

CK: 公司围绕 Amanda 开源备份社区成立。但我们一直想做更多的事情,而不仅仅是 Amanda(例如我们的 ZRM 产品线)。所以,我们把 A 翻转成 Z,就想出了 Zmanda。我们的口号是我们是“备份的 A 到 Z”。

AS: 您有什么计划提供 ZRM 的 VMware 虚拟机镜像吗?

CK: 我们将开始为 ZRM 社区版提供虚拟机,看看采用情况如何。我们确实认为将 ZRM 作为虚拟设备交付非常有意义。

AS: 您能告诉我们 ZRM 的路线图上有什么吗?

CK: ZRM 正在朝着多个方向发展。在即将发布的版本中,ZRM 将在 Windows 上获得本机支持。今天,您可以备份在 Windows 上运行的 MySQL;但是,您需要一台 Linux 服务器来运行 ZRM 核心引擎。此外,ZRM 将扩展以支持基于 MySQL 的应用程序,例如 SugarCRM、MediaWiki 等等。因此,ZRM 不仅能够备份底层 MySQL 数据库,而且还能够备份周围的环境——例如,SugarCRM 管理员只需按一下按钮即可进行整体备份和恢复。

AS: 今天 ZRM 支持哪些 Linux 发行版?

PS: ZRM 实际上支持所有基于 RPM 的发行版。在我们的社区版中,我们还支持其他平台,如 Mandriva 和 FreeBSD。虽然我们没有针对这些平台的图形用户界面和安装程序,但我们确实提供了默认配置,使您可以立即进行备份。

AS: ZRM 的社区有多大,活跃度如何?

PS: ZRM 社区由成千上万的开发人员和最终用户组成。ZRM 是用 Perl 编写的,其架构是基于插件的。这鼓励了 MySQL DBA 更多的贡献。我们的工程师积极监控论坛,通常您可以在一天内得到回复。我们每个月看到数千次下载,社区积极提出功能建议和回答问题。我们收到了来自 ZRM 用户/开发人员的大量贡献。

来自社区的用户或开发人员可以通过多种方式参与 Zmanda。他们可以为 wiki 做出贡献,在我们的在线论坛上发布或回答问题,当然,还可以通过试用产品、提供 QA 反馈和补丁做出贡献。

AS: 用户可以多久期待一次 ZRM 企业版或 ZRM 社区版的发布?

PS: 我们每 3-4 个月发布一次企业版。通常,一个版本包含新功能、支持的新平台和错误修复的组合。另一方面,社区版没有固定的发布时间表。我们在大约 24 个月内完成了 13 个(主要和次要)版本。关键安全漏洞在 24 小时内修复。

AS: Zmanda 希望通过免费提供 ZRM 的开源社区版获得什么?

PS: 我们是一家开源公司。我们相信将开源的精华带给企业,并为开源做出贡献,使其为企业做好准备。我们对 MySQL DBA 工作流程和所需功能有了很好的了解。当然,社区版是我们功能的试验场。而且,它有助于我们招募优秀的工程师。

我们为开源做出了重大贡献。我们的贡献不仅仅在开发方面。我们维护源代码树、错误跟踪系统和文档,并且我们通过网络研讨会、演示文稿、白皮书和为书籍做出贡献来帮助宣传 ZRM。

资源

Zmanda Recovery Manager: www.zmanda.com/backup-mysql.html

Zmanda Network: network.zmanda.com

ZRM Wiki: mysqlbackup.zmanda.com

ZRM Forums: forums.zmanda.com

Alolita Sharma 自 Linux 早期就参与了开源。作为一名软件工程师和行业顾问,她通过开源促进创新。她是 Technetra 的联合创始人兼 CEO,也是 OSI 董事会成员。可以通过 alolita.sharma@gmail.com 联系她。

加载 Disqus 评论