对于在生产中运行的TokuMX服务器的远程数据库备份(没有切分和复制),我有几个问题。单个子句是“不要停止运行Tokumx实例”。
- Is this command prefer way to make hot backups?
- What port should I use when issue this command?
- Is it good approach to use this command by cron and run it every day?
- Is there any pitfalls in this command?
发布于 2014-03-22 20:02:06
免责声明:我在Tokutek工作,我是一名在TokuMX工作的工程师。
没有“最佳”方法来备份TokuMX,每个应用程序都是不同的,最好理解所有选项并做出自己的决定。
TokuMX的备份选项如下:
请注意,fsyncLock不工作,因为即使客户端线程没有执行任何操作,后台线程仍然会写入文件系统。使用fsyncLock只会给您提供损坏的备份。
文件系统快照和企业热备份都具有复制序列化的压缩数据的优点,因此避免了查询所有集合和通过有线传输未压缩的BSON数据的成本。此外,这些选项不会破坏缓存表中关于哪些数据是最重要的信息,而mongodump将导致所有内容被分页,可能会将对您的应用程序有用的数据逐出。
与文件系统级快照相比,企业热备份具有更低的成本(您不需要像快照那样预留额外的空间),可以通过节流来满足I/O配额,备份的结果状态是备份完成时的状态,而不是启动时的状态。因此,如果为备份复制数据需要12小时,那么文件系统级的快照备份将落后于热备份插件所采取的等效备份12小时。
对于简单的用途来说,如果您不关心性能、缓存失效、网络带宽或最近的情况,那么单根节点可能是最好的选择。它也是唯一支持备份单个数据库或集合的选项。
对于蒙蒂甘来说,它的用法与MongoDB相同。您需要使用运行服务器的主机和端口,默认为27017。如果这是默认情况,则不需要指定任何-端口选项。
你可以每天用cron运行它,我建议如下:
SHELL=/bin/bash
0 0 * * * /usr/bin/mongodump --host <host> -o "/var/lib/backup/tokumx-backup-$(date +%Y%m%d)"蒙蒂甘的主要缺陷是它更昂贵,它破坏了缓存表中的信息,这些信息表明什么数据是重要的。它也不会在多个集合中获得完全一致的快照,比如热备份和文件系统级快照备份。一个单一的集合可能包含一个集合中某些写入的效果,而不是在另一个集合中包含早期写入的效果。
我想,您还需要为过期的旧备份定义一个方案。
https://stackoverflow.com/questions/22555280
复制相似问题