【问题标题】:Best way to make hot backup MongoDB(TokuMX) database instance制作热备份MongoDB(TokuMX)数据库实例的最佳方法
【发布时间】:2014-03-21 09:48:53
【问题描述】:

我有几个关于备份我在生产中运行的 TokuMX 服务器的远程数据库的问题(没有分片和复制)。单个子句是不要停止运行 Tokumx 实例。

  1. 对正在运行的 TokuMX 服务器进行热备份的最佳方法是什么(企业版中的 TokuMX 热备份除外)。

  2. 关于MongoDB备份方式建议的问题:

    [backup-host]# mongodump --host mongodb-host --port 27017 --db mongodevdb --username mongouser --password mongopwd
    
    • 此命令是否更喜欢进行热备份的方式?
    • 发出此命令时应该使用哪个端口?
    • 通过 cron 使用此命令并每天运行它是一种好方法吗?
    • 这个命令有什么陷阱吗?

【问题讨论】:

    标签: database-backups tokumx


    【解决方案1】:

    免责声明:我在 Tokutek 工作,我是一名在 TokuMX 工作的工程师。

    备份 TokuMX 没有“最佳”方式,每个应用程序都不同,最好了解所有选项并做出自己的决定。

    TokuMX 的备份选项如下:

    1. 企业热备份。
    2. 文件系统级快照(LVM、EBS、xfs_freeze)复制出 dbpath 和 logDir 中的所有内容。
    3. 使用 mongodump。

    请注意 fsyncLock 起作用,因为即使客户端线程没有做任何事情,后台线程仍会写入文件系统。仅使用 fsyncLock 会给您一个损坏的备份。

    文件系统快照和企业热备份都具有复制序列化压缩数据的优势,因此您可以避免查询所有集合和通过网络传输未压缩 BSON 数据的成本。此外,这些选项不会破坏缓存表中关于哪些数据最重要的信息,而 mongodump 会导致所有内容都被分页,可能会驱逐对您的应用程序有用的数据。

    企业热备份与文件系统级快照相比具有额外的优势,即它更便宜(您不需要像为快照那样保留额外空间),它可以被限制以满足 I/O 配额,并且备份的结果状态是备份完成时的状态,而不是备份开始时的状态。因此,如果需要 12 小时将数据复制出来进行备份,则文件系统级快照备份将比使用热备份插件进行的等效备份晚 12 小时。

    对于简单用途,如果您不关心性能、缓存失效、网络带宽或新近度,mongodump 可能是最佳选择。它也是唯一支持备份单个数据库或集合的选项。

    对于 mongodump,其用法与 MongoDB 相同。您需要使用服务器运行的主机和端口,默认为 27017。如果是默认值,则无需指定任何 --port 选项。

    你绝对可以每天用 cron 运行它,我建议这样:

    SHELL=/bin/bash
    0 0 * * * /usr/bin/mongodump --host <host> -o "/var/lib/backup/tokumx-backup-$(date +%Y%m%d)"
    

    mongodump 的主要缺陷在于它更昂贵,并且它破坏了缓存表中说明哪些数据重要的信息。它也不会像热备份和文件系统级快照备份那样跨多个集合获得完全一致的快照。一个 mongodump 可能在一个集合中包含一些写入的效果,而不包含在不同集合中的早期写入的效果。

    我预计,您还需要定义一个使旧备份过期的方案。

    【讨论】:

    • 感谢您的回复。你很难过“请注意 fsyncLock 不起作用,因为即使客户端线程没有做任何事情,后台线程仍会写入文件系统。仅使用 fsyncLock 会给你一个损坏的备份”。但在下面的帖子中,他们建议使用 fsyncLock codeproject.com/Tips/547759/…
    • 我说 fsyncLock 不起作用,因为这是 MongoDB 和 TokuMX 之间非常重要的区别。该链接不适用于 TokuMX。我没有仔细阅读那个 sn-p 但如果它以一种理智的方式调用 mongodump 可能没问题。
    • 再次感谢您的回复。所以我看到唯一的方法是停止 tokumx 服务,制作 mongodump 并重新开始。最后一个问题是我可以在非商业项目中免费使用 Hot Tokumx Backup 吗?
    • 您可以在正在运行的服务器上运行 mongodump,您无需将其关闭。热备份仅限企业,您需要超过 30 天评估期的许可证。
    猜你喜欢
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 2010-09-26
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多