面向 Ubuntu Server 的 MySQL 版 Zmanda Recovery Manager 3.0

简介

为了响应对专业级备份和恢复解决方案日益增长的需求,开源备份解决方案的领先供应商 Zmanda 推出了面向 Ubuntu Server 的 Zmanda Recovery Manager (ZRM) for MySQL 版本。

在旧金山举行的 2008 年 LinuxWorld 大会上,451 Group 分析师 Jay Lyman 观察到,随着组织越来越多地使用免费的、社区驱动的 Linux 发行版并培养自己的内部 Linux 专业知识,Ubuntu 将继续在企业中获得认可。作为一个风向标示例,维基百科已将其 400 台服务器切换到 Ubuntu。

MySQL 在企业中的重要性也在日益增加。 同一个维基百科也是由 MySQL 提供支持。 MySQL 于 2007 年末被 Sun 收购,已被进一步推向更重要的地位。 随着大型企业将 Ubuntu 与 MySQL 一起采用,对强大、良好集成的数据库备份解决方案的需求只会增长。

为了满足最广泛的备份解决方案需求,Zmanda 提供了三个版本的面向 Ubuntu 的 MySQL 版 ZRM:ZRM 企业版、ZRM 集群版和 ZRM 社区版。 在本文中,我们将参观最新发布的 Ubuntu Server 版 ZRM 企业版 3.0 的功能。 我们将重点关注该产品用于数据库备份和恢复的核心功能,然后我们将了解一些新功能——应用程序配置备份、ZRM 管理控制台 (ZMC) 中的全文搜索以及对 64 位平台的支持。

什么是 Zmanda Recovery Manager (ZRM)

ZRM 企业版 3.0 为 Ubuntu Server 带来了功能齐全的 MySQL 数据库备份和恢复解决方案。 在本节中,我们将了解 ZRM 的主要组件,然后调查最重要的产品功能。 我们还将描述 ZRM 的可用支持选项。

ZRM 企业版 3.0 包括以下三个组件:Zmanda 管理控制台、命令行界面和插件框架。


图 1:ZMC 登录屏幕

Zmanda 管理控制台 (ZMC) --
ZMC 是一个基于 Web 的控制台,为基本的备份和恢复任务提供易于使用的 GUI 向导。 ZMC 控制 ZRM 中所有任务的报告和监控。 与 Zmanda Network 的接口可以轻松访问最新的产品文档和上下文相关的帮助。

“备份”、“监控”、“报告”、“管理”和“恢复”等核心功能在 ZMC 中以选项卡式界面呈现。 “备份”和“恢复”选项卡将各自的流程分解为单独的屏幕。 例如,在“备份”选项卡中,您将看到标记为“什么”、“哪里”、“何时”、“如何”、“摘要”的备份过程的每个步骤的链接。 当用户浏览每个屏幕时,他们填写必要的信息并继续安排或运行备份。 同样,在“恢复”选项卡中,“什么”、“哪里”、“如何”和“恢复”的链接显示在顶部。 用户浏览每个屏幕以完成恢复过程。 其他选项卡——“监控”、“报告”、“管理”——遵循相同的模式,每个选项卡下都有相关任务的链接。

通过单击每个屏幕左上角的问号图标,可以在整个 ZMC 中获得上下文相关的帮助。 此外,常见的错误消息已超链接到 Zmanda Network 知识库,您可以在其中找到有关错误消息以及如何解决的详细信息。

命令行界面 (CLI) --
CLI 为 ZRM 的主要功能提供了备用的可脚本化界面。 使用 CLI 工具,ZRM 可以与现有的备份和恢复系统集成。
插件框架 --
ZRM 的功能可以通过插件进行扩展。 预备份和后备份插件在备份作业之前或之后执行自定义任务。 复制插件用于指定 ZRM 备份服务器和远程 MySQL 服务器之间的数据传输机制(例如,ssh、套接字)。 文件系统快照插件支持 NetApp SnapManager、Solaris ZFS 和 Veritas VxFS。 此外,存储卷快照插件支持 Linux LVM、Windows VSS 和 EMC CLARiiON SnapView。 请注意,NetApp SnapManager、Veritas VxFS 和 EMC CLARiiON SnapView 的插件必须单独购买。 其他插件可用于动态重新安排备份和二进制日志解析。

核心功能

ZRM 的核心功能是数据库备份和恢复、监控以及运行预定义和自定义报告。

备份

ZRM 是一个灵活的平台,可让您备份来自一个或多个 MySQL 服务器的多个数据库和表。

ZRM 为计划备份提供了多种选项。 您可以在计划的停机期间安排备份,或者运行即时热备份,而无需使 MySQL 服务器脱机。 您可以从 ZMC 的“备份/何时”屏幕下的“备份计划”面板请求每日、每周和每月备份。 也可以通过定义多个每日作业来安排每小时备份。 一旦定义,备份计划可以根据需要进行修改,例如,通过使用预计划程序插件推迟备份作业来避免数据库高峰使用时段。

ZRM 处理包括 MyISAM、InnoDB、NDB、Archive 和 Falcon 在内的多种存储引擎。 根据数据库表使用的存储引擎,ZRM 会自动选择适当的备份方法。 如果您正在使用 Oracle 的 InnoDB hotbackup 工具,ZRM 提供与该工具的管理控制台的无缝集成。 ZRM 已经过 MySQL 4.1.x 和 5.x 版本的测试。 为了支持旧的数据库安装,ZRM 也可以与 MySQL 4.0 一起使用。

对于大型数据库,您可能需要使用 ZRM 的原始备份功能。 原始备份或物理备份是数据的精确副本。 这缩短了备份和恢复所需的时间。 提前计算存储需求更容易,因为原始备份只是数据库文件的副本。 但是,原始备份的主要缺点是它们只能恢复到用于生成原始备份的相同的 MySQL 服务器版本和机器架构。

ZRM 在执行原始备份时利用文件系统和存储卷快照。 快照捕获给定时间点的数据更改,而无需复制整个文件系统或卷。 如上面的插件框架部分所述,ZRM 支持 NetApp SnapManager、Solaris ZFS、Veritas VxFS 的文件系统快照,以及 Linux LVM、Windows VSS 和 EMC CLARiiON SnapView 的存储卷快照。

如果您需要支持多种机器架构并且您的数据必须具有高度可移植性,则应考虑逻辑备份。 逻辑备份提供表级粒度,并且可以在不使 MySQL 服务器脱机的情况下执行。 但是,逻辑备份速度较慢,因为 MySQL 服务器必须获取数据库结构和内容,然后将数据转换为逻辑格式,通常是带有 SQL 语句的文本文件。 由于转换,逻辑备份的存储需求可能大于原始数据源的大小。 为了抵消转换开销,可以将 ZRM 配置为使用 gzip 或其他压缩工具来压缩生成的备份映像。

ZRM 支持完全备份和增量备份。 完全备份保存数据库或表的完整副本,而增量备份仅保存自上次完全备份或增量备份以来的更改。

许多基于 MySQL 的应用程序依赖于自定义配置文件。 ZRM 可以备份这些文件以及存储在数据库中的应用程序数据,以便快速恢复整个应用程序。 此类应用程序的示例包括 Wordpress、SugarCRM 和 MediaWiki。 在 ZRM 3.0 中,此功能通过手动编辑 ZRM 备份集配置文件 mysql-zrm.conf 提供。

为了保护敏感数据,ZRM 可以通过使用标准 SSL 有线加密以及磁盘上的 GPG 加密对远程 MySQL 服务器执行安全备份。 ZRM 使用备份映像的校验和来确保备份完整性。

恢复

ZRM 通过集成文件系统快照以及跟踪 MySQL 数据库二进制日志来提供持续数据保护 (CDP)。 CDP 备份捕获对数据的全部更改,以实现快速、时间点数据恢复。 ZMC 使用从 MySQL 二进制日志位置导出的选择性增量恢复来执行时间点恢复。 或者,用户可以通过 ZMC 的“恢复”选项卡指定恢复点(例如,2008-12-23 11:15:32)。

ZRM 提供对数据恢复的精细粒度控制,范围从整个 MySQL 服务器、数据库、表到单个事务。

ZMC 可视日志分析器(DB 事件查看器)解析 MySQL 二进制日志,以驱动易于使用的 GUI,用于浏览增量备份的内容、识别恢复点(例如,特定事务)以及监控数据库的操作和安全方面。 从 ZRM 3.0 开始,可视日志分析器中的关键字搜索功能利用 MySQL 全文搜索来更快地提供准确的结果。

报告

ZRM 提供各种报告,以帮助您随时了解备份和恢复作业的状态。 每次备份作业后生成的自动报告总结了作业的状态,其中包含有用的信息,例如备份类型(例如,逻辑或原始)、备份级别(例如,完全或增量)、性能统计信息和备份映像位置。 如果配置了,ZRM 将通过电子邮件以 HTML 或文本格式发送备份报告。 通过 RSS 提供的备份报告可用于在其他应用程序中显示备份状态。 除了自动备份摘要报告外,多个预定义报告还提供了有关备份作业的常用信息。 每个预定义报告都可以使用 30 多个备份和 MySQL 数据字段进行自定义,以显示特定于您需求的信息。

产品支持选项

Zmanda 为 ZRM 企业版客户提供三个级别的支持(基本、标准和高级)。 所有支持级别都提供对 Zmanda Network 资源、安全更新和功能升级的访问,以及基于 Web 的技术支持。 标准和高级支持级别提供电话技术支持,支持事件数量不限。 高级支持增加了 24x7 技术支持,并保证 3 小时的事件支持响应时间。 年度支持定价基于 ZRM 处理的 MySQL 服务器实例的数量。

结论

面向 Ubuntu 的 MySQL 版 ZRM 3.0 为当今最流行的 Linux 发行版 Ubuntu 带来了完善、易于使用且功能齐全的专业备份和恢复解决方案。

基于 Web 的管理控制台让您可以从您最喜欢的浏览器舒适地安排和控制备份和恢复任务。 如果您需要,还可以使用命令行。 插件让您可以扩展 ZRM。 支持所有主要的 MySQL 存储引擎。 还有可用的高性能选项,例如原始备份和文件系统快照。 其他功能让您可以备份应用程序的配置文件以及它使用的数据库。

更高级的恢复功能包括 CDP 和精细的事务级数据恢复,可以通过易于使用的 GUI 日志分析器和事件查看器启动。 有关备份和恢复作业的详细信息可以通过预定义和临时报告轻松跟踪。 最后,ZRM 捆绑了各种客户协助选项,范围从 Web 支持到电子邮件支持再到电话支持。

随着 ZRM 3.0 的发布,Zmanda 提供的功能和支持满足了企业对 Ubuntu 上 MySQL 的专业备份和恢复日益增长的需求。

评测:在 Ubuntu Server 上试用 ZRM 3.0

在本节中,我们将介绍在 Ubuntu 上 ZRM 3.0 的最重要功能的实践试用。 我们使用流行的多用户 WordPress 博客的 MySQL 数据库运行了一系列备份和恢复。 主数据库表 (wp_posts) 包含大约 50 万行,平均每行 2Kb。 为了运行 WordPress 数据库的备份,我们首先设置了一个 ZRM 备份服务器,并在我们的 MySQL 服务器主机上创建了一个 MySQL 用户帐户。 我们使用的硬件和软件配置如表 1 所示。

表 1:ZRM 3.0 试驾的硬件/软件配置


tahoe:ZRM 备份服务器(带
本地 MySQL 实例)
bigsky:ZRM 备份客户端(远程 MySQL
实例)
主机名 tahoe bigsky
MySQL 服务器 社区版
v5.0.51a
社区版
v5.0.67
操作系统 Ubuntu Server 8.04.1 Ubuntu Server 8.10
处理器 Intel Core 2 Duo 3Ghz Intel Atom N230 1.6Ghz
内存 8Gb 2Gb
存储 1Tb RAID 5 750Gb SATA

安装 Zmanda Recovery Manager

ZRM 企业版提供两个二进制安装包——ZRM 服务器快速安装程序 (ZRM-enterprise-3.0-installer.bin) 和 ZRM 客户端 (mysql-zrm-enterprise-client_3.0-1_all.deb)。 首先,我们将讨论 ZRM 服务器安装,然后描述 ZRM 客户端安装。

ZRM 服务器安装



图 2:ZMC 快速安装程序

快速安装程序是一个图形界面,它引导您完成服务器软件组件的安装:ZRM 服务器、Zmanda 管理控制台及其依赖项以及 ZRM 命令行工具。 要启动安装程序,我们在 ZRM 备份服务器主机 (tahoe) 上运行了以下命令。

root@tahoe:~# chmod +x ZRM-enterprise-3.0-installer.bin
root@tahoe:~# ./ZRM-enterprise-3.0-installer.bin

安装过程只需几分钟,在此期间,用户必须选择如何访问 Zmanda 管理控制台 Web 服务器,是通过 http 还是 https。 安装过程以一个对话框结束,提示用户启动 ZMC。

为了完成 ZRM 服务器安装,我们下载了 Zmanda 许可证密钥文件 (zmanda_license) 并将其放置在“/etc/zmanda/zmanda_license”中。 我们将文件权限设置为 644 (chmod 644 /etc/zmanda/zmanda_license) 并将文件所有权更改为“root” (chown root /etc/zmanda/zmanda_license)。

ZRM 客户端安装

Ubuntu 的 ZRM 客户端是一个 Debian 软件包,您可以使用标准软件包管理工具(如 dpkg)安装它。 如果要备份的 MySQL 服务器(ZRM 备份客户端)在与 ZRM 备份服务器不同的机器上运行,并且您想要运行原始备份,则应安装 ZRM 客户端。 要安装 ZRM 客户端,我们在 MySQL 服务器主机 (bigsky) 上执行了以下命令。

root@bigsky:~# dpkg -i mysql-zrm-enterprise-client_3.0-1_all.deb 

请注意,我们通过编辑“/etc/sudoers”文件并添加行“mysql: ALL=(ALL) NOPASSWD: ALL”在我们的 MySQL 服务器主机 (bigsky) 上为“mysql”系统用户配置了 sudo 权限。 这授予“mysql”用户帐户执行 LVM 系统命令的权限,这对于基于 Linux LVM 的文件系统快照是必需的。

然后,我们创建了一个 MySQL 数据库用户,ZRM 在我们的 MySQL 服务器主机 (bigsky) 上使用该用户进行备份和恢复。 列表 2 显示了我们用于创建用户帐户和授予权限的 SQL 语句。

列表 2:用于创建用户帐户和设置权限的 SQL 语句

mysql> GRANT LOCK TABLES, SELECT, FILE, CREATE, DROP, INDEX, SHUTDOWN, ALTER, INSERT, ALTER ROUTINE, CREATE ROUTINE, SUPER, RELOAD ON *.* TO 'zrmbackup'@'tahoe.local.pri' IDENTIFIED BY 'somepassword';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT LOCK TABLES, SELECT, FILE, CREATE, DROP, INDEX, SHUTDOWN, ALTER, INSERT, ALTER ROUTINE, CREATE ROUTINE, SUPER, RELOAD ON *.* TO 'zrmbackup'@'bigsky.local.pri' IDENTIFIED BY 'somepassword';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

我们通过为 MySQL 服务器主机 (bigsky) 上的“mysql”系统用户使用公钥来设置无密码登录的 SSH。 这使得 ZRM 备份服务器 (tahoe) 和我们的 MySQL 服务器主机 (bigsky) 之间的默认 SSH 复制插件可以使用 SSH 连接进行备份和恢复任务。

执行备份和恢复

下面列出了详细步骤,作为如何在 Ubuntu 上使用 ZRM 执行备份和恢复的示例。

备份 --
备份级别:完全,备份模式:原始
  1. 创建备份集 -- 我们使用“管理”选项卡中的“集”屏幕创建了一个新的备份集。 在“创建备份集”面板中,我们从“备份集所有者”下拉列表中选择了一个 ZRM 用户 ID (admin)。 然后,我们输入了一个“备份集名称”以标识此备份集 (wordpress_backup)。 最后,我们单击“添加”按钮保存备份集配置。
  2. 配置备份集 -- 我们单击“备份”选项卡。 这样做会将我们带到标记为“什么”的屏幕。
    1. 什么 -- 我们填写了每个面板的值——“MySQL 服务器参数”、“MySQL 用户参数”和“要备份的内容”。 然后单击“保存”按钮。
      1. MySQL 服务器参数 -- 选择“服务器类型” (MySQL 服务器)、“连接类型” (端口)、“端口号” (3306)、“主机” (bigsky.local.pri)、“MySQL 客户端实用程序路径” (/usr/bin)
      2. MySQL 用户参数 -- “用户名” (zrmbackup)、“密码” (somepassword)、“SSL 选项” (留空)
      3. 要备份的内容 -- “备份源类型” (特定数据库)、“选择数据库” (标记 wordpress_db 旁边的复选框)。
    2. 哪里 -- 在“备份位置参数”面板中,我们填写了“目标目录” (/var/lib/mysql-zrm)、“临时目录” (/tmp) 和“保留策略” (2 周) 的值。 然后单击“保存”按钮。
    3. 何时 -- 在“备份计划”面板中,我们填写了“备份级别” (完全)、“时间范围” (每天) 和“备份时间” (10 小时 15 分钟) 的值。 然后单击“添加计划”按钮以保存这些设置。
    4. 如何 -- 虽然我们没有修改此屏幕上的默认值,但您应仔细检查“备份模式”、“SSH 用户”和“电子邮件地址”(如果您使用电子邮件通知)的值。
  3. 应用程序配置文件备份 -- 作为此备份集的一部分,我们想要保留 WordPress 配置文件“wp-config.php”。 ZRM 需要一个中间文本文件,其中列出要备份的每个配置文件的完整路径,以换行符分隔。 因此,我们创建了“/etc/mysql-zrm/wordpress_backup/app_conf_files_list”,第一行包含 wp-config.php 的完整路径。 接下来,我们编辑了 ZRM 备份集配置文件“/etc/mysql-zrm/wordpress_backup/mysql-zrm.conf”(在 tahoe 上)并添加了行“config-file-list="/etc/mysql-zrm/wordpress_backup/app_conf_files_list"”。 请注意,您还可以使用 Zmanda 网络提供的预备份插件脚本动态生成应用程序配置文件的列表。
  4. 通过上述步骤,我们现在已计划每天早上 10:15 对“wordpress_db”数据库中的所有表进行每日完全原始备份。


图 3:ZMC 备份屏幕

备份 -- 备份级别:增量,备份模式:原始

在运行增量备份之前,我们在正在运行的 WordPress 实例中添加了一些博客文章,实际上修改了底层数据库。

  1. 配置备份集 -- 使用 ZMC 左上角的“备份集”下拉列表,我们选择了“wordpress_backup”。 这样做会显示“备份”选项卡中标记为“什么”的屏幕。 接下来,我们通过标记为“何时”的屏幕安排了另一个备份作业。 在“备份计划”面板中,我们填写了“备份级别” (增量)、“时间范围” (每天) 和“备份时间” (12 小时 00 分钟) 的值。 然后我们单击“添加计划”按钮。

监控

当我们运行按需备份时,我们能够使用通过 ZMC 的“监控”选项卡提供的监控功能跟踪其进度。 “备份运行详细信息”窗格会随着备份的每个阶段完成而实时更新。

恢复

  1. 识别恢复点 -- 使用 ZMC 的“报告”选项卡中的“db 事件”(查看器),我们单击备份时间戳(时间戳:21:53:24)超链接以开始配置恢复过程的详细信息。 单击时间戳超链接会显示“恢复”选项卡中标记为“什么”的屏幕。
  2. 配置恢复设置
    1. 什么 -- 此屏幕上的信息通知我们所有数据库将从上次成功的完全备份中恢复。 我们单击底部的“下一步”按钮以继续。
    2. 哪里 -- 我们查看了数据将恢复到的 MySQL 服务器的连接和用户设置。 所有默认值都保持不变。 然后我们单击“下一步”按钮以继续。
    3. 如何 -- 此屏幕上的设置,例如“临时目录”、“MySQL 关闭选项”和“复制插件参数”,指定了数据的恢复方式。 默认值保持不变。 我们单击“下一步”按钮。
    4. 恢复 -- 在此屏幕上查看恢复设置后,我们单击“恢复”按钮以实际启动该过程。
  3. 通过几个简单的步骤,我们成功地从完全原始备份中恢复了 WordPress 数据库。


图 4:ZMC 恢复屏幕

报告

在运行了多次备份和恢复后,我们发现最有用的预定义报告包括“备份状态报告”和“应用程序影响报告”。

应用程序影响报告 -- 提供备份作业统计信息,例如“耗时”、“读取锁时间”和“刷新日志时间”——所有这些信息都让您可以调整备份计划以避免数据库高峰使用时段。

备份状态报告 -- 为您提供已运行的每个备份作业的概览状态。 这对于快速跟踪所有备份作业中的错误情况非常有用。

总结

我们对中等大小的 WordPress MySQL 数据库进行备份和恢复的练习表明,Zmanda Recovery Manager 3.0 是面向企业 Ubuntu 用户的强大的 MySQL 备份和恢复解决方案。 无论您是系统管理员还是经验丰富的 DBA,您都可以轻松使用 ZRM 友好且实用的 GUI 来安排和运行 MySQL 数据备份。

资源

加载 Disqus 评论