Board logo

标题: 使用 IBM Spectrum Protect for Linux on Power 备份和还原 MongoDB 数据的方法-1 [打印本页]

作者: look_w    时间: 2017-12-19 19:53     标题: 使用 IBM Spectrum Protect for Linux on Power 备份和还原 MongoDB 数据的方法-1

本文将重点介绍如何备份非常大的 MongoDB 实例。我们可以使用 IBM®Spectrum Protect™                完成此任务,该产品以前称为 IBM Tivoli® Storage Manager (TSM),可在所有 MongoDB                服务器上作为备份和管理代理运行。本文将展示如何将 MongoDB 与 IBM Spectrum Protect                等传统或现有备份工具相集成,甚至在生产级规模上进行集成。
此任务可使用为 IBM Power Systems™构建的 MongoDB 版本(例如 MongoDB Enterprise v3.4                for ppc64le)完成。MongoDB 中直接嵌入了许多工具和特性,它们有助于完成集成过程并为 MongoDB                的备份能力提供补充,以下各节将介绍这些工具和特性。
IBM Spectrum Protect 背景知识 IBM Spectrum Protect                为多供应商计算机环境提供存储管理解决方案。它为文件服务器、工作站、虚拟机和应用程序提供了自动化的、集中调度的、通过策略管理的备份、存档和空间管理功能。此外,IBM                Spectrum Protect 支持所有规模的系统[包括虚拟机、文件服务器、电子邮件、数据库、企业资源规划 (ERP)                系统、大型机和台式机]。IBM Spectrum Protect 在一个随数据增长而扩展的环境中完成所有这些工作。
本文将介绍 IBM Spectrum Protect 的备份和恢复功能,描述如何使用它来保护 MongoDB 数据。此外,选择 IBM                Spectrum Protect                还有一些特定的原因。首先,作为大型企业系统的可靠备份管理器,它取得了值得信赖的优秀成绩。许多大型客户多年来一直非常信任它,而且可能已将它集成到自己的企业系统中。即使尚未使用                IBM Spectrum Protect 的客户,也无需制定需要使用特定于每个计划的单独备份软件的单独备份计划。
使用 IBM Spectrum Protect 作为备份解决方案还有其他重要原因。IBM Spectrum Protect                有一个管理备份数据的稳固平台。一些应用程序将数据堆积在其他某个服务器的硬盘上,而且需要手动还原这些数据。或者,必须手动管理数据存储位置和不断对它执行的操作。可为                IBM Spectrum Protect 配置一些自动程序,比如将数据写入磁盘和磁带,而且 IBM Spectrum Protect                拥有大量存档特性。还原数据时,IBM Spectrum Protect                代理可以轻松地找到特定系统的最新备份,并执行将数据放回所属位置的过程。
MongoDB                背景知识MongoDB 是一个开源数据库,被视为最流行且增长最快的 NoSQL 数据库,这主要由于它能很好地处理传统 SQL                数据库无法处理的问题。它非常善于处理大型非结构化数据集,而且读取存储数据的速度非常快。再结合用 JavaScript 编写的强大查询,这些使得                MongoDB 成为了适合现代应用程序(比如需要频繁读取和使用数据的移动和分析应用程序)的强大工具。虽然 MongoDB                不会取代所有存储结构化数据的 SQL 应用程序,但它为大量非结构化数据和移动流量提供了一个现代解决方案。
此外,MongoDB 的设计目标是高度可扩展且高度可用。这些特性已内置于 MongoDB 环境的设计和结构中。生产环境中的 MongoDB                是一个运行不同任务的流程集群,这些任务通常在不同系统上运行。它包含 3 种不同类型的服务器:
图 1. MongoDB 结构图
如图 1 所示,在生产环境中,数据库的每个分片也是一个副本集。所以,始终存在内置的数据冗余性。MongoDB 集群中任何地方的数据都不只存在一次。
事实是,MongoDB                的构建目的是获得持久且可靠的数据,这也是它拥有原生的分片和副本集的原因。分片主要专注于数据的可扩展性,在数据超出一个分片的能力范围后,将数据库拆分到多个服务器中。正如上面提到的,与                x86 服务器相比,Power                服务器支持更大的分片。副本集中包含多组相同的分片,这些分片位于不同服务器上,用于实现冗余和提高速度。
还有一个称为日志记录的特性,在将数据写入磁盘之前,数据库会将待处理的写入操作存储在一个日志文件中。这些文件的大小可增长到 1                GB,仅在日志中的所有操作都已完成或正常关闭服务器时才会删除。在异常关闭时,只要服务器恢复运行,就会读取并回放日志文件,以确保所有操作都已落实,还会落实尚未落实的操作。同样,此过程可在服务器上的                MongoDB 实例恢复在线后自动完成。如果发生写入错误,MongoDB 将重新启动来修复问题。MongoDB                会重新启动,读取日志,删除旧日志文件,然后创建新的日志文件。
在日志、分片和副本集中,有大量针对细微问题(比如主要分片失去连接和离线)的自动故障转移功能。系统可以继续顺利运行,故障分片会在重新启动后自动恢复运行。但是,在存储需要保留的重要数据的更大文件系统上,备份至关重要。在本文中,我们使用                IBM Spectrum Protect 作为解决方案,不仅支持对 MongoDB                执行有计划的完全备份操作,还支持对整个企业生态系统执行该操作。
在企业系统中,需要拥有所有数据的完整备份,以实现记录维护、审计和灾难恢复等操作。MongoDB 通过其 Ops Manager                进程提供备份,该进程通常由数据库管理员管理。Ops Manager 的使用不在本文的讨论范围。通过使用 IBM Spectrum                Protect,可以将 MongoDB 与已有适当备份策略的现有企业基础架构合并。
在我们的备份过程中,IBM Spectrum Protect 使用一个称为Logical Volume Manager (LVM)                    快照的内置 Red Hat 操作系统特性(其他大多数主要 Linux®                发行版也提供了该特性),在一个复制的服务器上对我们的 MongoDB                文件执行文件系统复制。此过程包含一系列步骤,以下各节将全面介绍它们。此刻应该指出的是,所有日志和数据库文件都需要位于同一个逻辑卷中,以避免存储不必要数据的快照。最后,IBM                Spectrum Protect 会依据自己的存储过程对快照进行压缩和存储。
MongoDB                备份流程依靠一个专门的副本集成员来处理严格用于备份的每个分片。为了可用于生产环境,一个服务器应有多个副本。为了实现备份,我们想要一个预定义为备份实例的副本。这意味着它不能是主服务器,MongoDB                提供了实现此目标的配置选项。在备份期间,仍继续将其作为正常运行的副本集成员进行操作。但是,我们知道备份过程将占用备份服务器上的一些资源,而且我们不想减慢集群运行速度。在设计生产环境和备份计划时应考虑到这一点。
这个备份过程显示了 MongoDB 集群的一些最低要求。这与 MongoDB 文档中描述的生产环境最低要求一致。
优势作为一个备份和还原工具,IBM Spectrum Protect 提供了以下优势来增强 MongoDB 的功能:
以下各节将介绍如何利用其中一些特性将 MongoDB 打造为更健壮的数据库。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0