Mat*_*n L 3 linux azure mongodb
我有一个在 windows azure linux vm 上运行的 mongodb,
数据库位于系统驱动器上,我希望将其移动到另一个硬盘驱动器,因为那里没有足够的空间。
我发现了这篇文章: 更改 MongoDB 数据存储目录
这些似乎是那里建议的一个很好的解决方案,但是还有另一个人提到了有关复制文件的内容,
我的数据库是实时的并且一直在获取数据,我怎样才能在丢失最少数据的情况下进行这个过程?
谢谢,
首先,如果这是一个生产系统,您确实需要将其作为副本集运行。在单例 mongodb 实例上运行生产数据库不是最佳实践。我认为 2 名正式成员加 1 名仲裁员是最低生产设置。
如果要走副本集路线,可以先把这个实例转成副本集:
http://docs.mongodb.org/manual/tutorial/convert-standalone-to-replica-set/
这应该有最少的停机时间。
然后添加 2 个具有正确存储设置的新实例。同步后,您将拥有完整的 3 个成员集。然后,您可以故障转移到新实例之一。从副本集中删除这个坏实例。最后,我会添加一个仲裁器实例,让您在降低成本的同时最多备份副本集的 3 个成员。
另一方面,如果您不想作为副本集运行,我会在此实例上关闭 mongod,将文件复制到另一个适当卷上的新目录结构,更改配置以指向它(更改 dbpath或使用符号链接),然后再次启动。停机时间将在很大程度上影响您现有数据库的大小,因此您越早这样做越好。
但是 - 我将再次强调这一点 - 如果您希望使用 mongoDB 几乎没有停机时间,则需要使用副本集。
| 归档时间: |
|
| 查看次数: |
2829 次 |
| 最近记录: |