我不想租用另一台服务器...
但维基百科说:
MongoDB 部署在两台以下的服务器上[需要引证]:一台主服务器和一台从服务器。主服务器可以执行读取和写入操作。从服务器从主服务器复制数据,只能用于读取或备份(不能用于写入)。
答案1
这已经过时了。使用 1.8 版本,您拥有单节点持久性,请参阅 --journal。
答案2
使用当前版本,借助日志功能,您确实可以使用单个服务器。从技术上讲,您始终可以只使用一台服务器,但是,由于缺少日志功能,您的数据库可能会损坏。
一句忠告。在您的单台服务器上创建一个副本集。您可以在一台机器上创建多个 mongo 实例。您可以创建一个主服务器 (master)、辅助服务器 (slave) 和一个仲裁服务器。这样,您可以偶尔关闭从服务器并复制数据库文件进行备份,并且如果由于某种原因其他进程之一被关闭,您的应用程序仍然能够连接到数据库。
答案3
我认为,mongo 在生产环境中的新推荐环境涉及“副本集”,实际上至少有三台服务器。如果主服务器发生故障,其他两台服务器将选举其中一台来接管。当原始主服务器重新上线时,将举行另一次选举,并选出新的主服务器。
我不确定主从是否已被弃用,但我认为如果您正在构建 mongo fresh,那么您应该考虑构建一个副本集。
如果你真的不想有更多服务器,那么你可以考虑在与主服务器相同的服务器上并行运行所有辅助服务器(但在不同的端口上)。但是,这并不是很冗余。
答案4
我认为这取决于您需要对 mongodb 的用途......
维基百科建议的原因是,使用 mongoDb(直到 1.3.1 版本)时,如果不先保存数据库,则无法进行备份。
从 1.3.1 开始,您可以进行备份锁定写入:
MongoDB v1.3.1 及更高版本支持 fsync 和 lock 命令,我们可以使用该命令刷新写入、锁定数据库以防止写入,然后备份数据文件。
在此锁定模式下,所有写入都将被阻止。如果这是一个问题,请考虑以下其他方法之一。
如果您的应用程序使用率很高,并且有很多访问,那么部署在两台服务器上是更好的方法,而如果您有一个只在白天使用的应用程序,您可以停止或锁定数据库,进行备份,然后在夜间重新启动或解锁...