我正在为我的Sitecore CD服务器使用副本集(2个mongo,1个仲裁器)。假设所有mongo DB数据都被刷新到Reporting SQL DB;我们需要备份生产CD上的MongoDB数据库吗?如果是,那么最好的方法和频率是什么;考虑到我的应用程序适度地使用了分析功能(个性化,活动等)。
发布于 2017-01-03 11:12:30
不幸的是,您的假设是错误的- MongoDB是分析数据的最终来源,而不是报告数据库。报告数据库仅包含生成报告所需的汇总信息(主要)。实际上,如果(当) SQL DB出现问题时,想法是从源MongoDB重新构建它。记住:你不能在两个数字相加后取消它们的相加!
Backup vs Replication备份是数据库的时间点视图,其中复制是当前数据库的多个活动拷贝。我主张对这种类型的数据进行复制而不是备份。为什么?很高兴你这么问!
中发生损坏的可能性就越大
业务运行
在生产MongoDB环境中,确实应该有2-3个副本。如果其中一个盒子死了,这将会救你的命,他们有时会这样做-- MongoDB对磁盘的工作非常努力。
这些副本是自我修复的,并且总是最新的(相当多),所以它们比备份要好得多。你一次丢失所有副本的可能性非常低,除了一个特殊的边缘情况...升级。因此,备份实际上只是针对硬件故障或数据损坏的保护,而在多实例副本集中,这些问题已经得到了非常有效的处理。除非你是偏执狂,否则你永远不会使用备份,而且拥有它会花费你很多钱。
Sitecore升级
这是杀手级的边缘案例-在运行升级之前始终进行备份(请参阅Back Up and Restore with MongoDB Tools),因为您可以在一个动作中损坏所有副本,并且您将希望能够回滚。
数据修剪(附注)
你没有问过这个问题,但在某一时刻,你会想“我怎么能每天备份这个170 db的怪物数据库呢?这太荒谬了”--你肯定是对的。
关于这些数据应该保存多长时间,有各种不同的观点--这个问题只有你或你的客户才能回答。我建议把它保留到有太多的时候,然后决定你要去掉多少。尽可能多的保留你能容忍的。
https://stackoverflow.com/questions/41425591
复制相似问题