我不想租另一台服务器…
但维基百科说:
MongoDB不应该部署在less于两台服务器上[需要的引证]:一个主机和一个从机。 主人可以执行读取和写入。 从设备从主设备复制数据,只能用于读取或备份(不能写入)。
这已经过时了。 在1.8版本中,您拥有单节点耐用性,请参阅–journal。
在目前的版本中,由于日志function,您确实可以使用单个服务器。 从技术上讲,你总是只能使用一台服务器,但是,由于缺less日志,你的数据库可能会损坏。
一个build议的话。 用你的单个服务器创build一个副本集。 您可以在一台机器上创build多个mongo实例。 您可以创build一个主(主),次(从)和一个仲裁器。 这样,您可以closures从属服务器并复制数据库文件进行备份,如果由于某种原因其他进程中的其中一个被closures,您的应用程序仍然可以连接到数据库。
我认为在生产中mongo的新推荐环境涉及“副本集”,实际上它至less是三台服务器。 如果主服务器发生故障,另外两台服务器select其中一台服务器来接pipe。 当原来的小学回到网上时,再举行一次选举,选出一个新的小学。
我不确定主从是否被弃用,但我认为如果你正在build造新鲜的芒果,你应该考虑build立一个副本。
如果你真的不想要更多的服务器,那么你可以考虑在主服务器上(而不是在不同的端口上)并行运行所有的辅助服务器。 但是,这不是很多余。
我认为这取决于你需要做的mongodb的使用…
维基百科build议的原因是,使用mongoDb(直到版本1.3.1),如果不先切入数据库,就无法进行备份。
从1.3.1开始,你可以做一个备份locking写道:
MongoDB v1.3.1及更高版本支持fsync和lock命令,通过该命令可以刷新写入,locking数据库以防止写入,然后备份数据文件。
在这种locking模式下,所有的写操作都会被阻塞。 如果这是一个问题,请考虑下面的其他方法之一。
如果您的应用程序的使用率很高,而在两台服务器上部署的许多访问,则这是更好的方法,而您只有在白天才能使用的应用程序,则可以停止或locking数据库,进行备份,然后重新启动或解锁在夜间…