2012-04-23 149 views
1

我有一个要求,当主数据库和索引存储磁盘已满时,请保持RavenDB数据库运行。我知道我可以配置提供一个驱动器的存储与配置选项 - 乌鸦/ IndexStoragePathRavenDB磁盘存储

但我需要设计的时候这个磁盘已满的角落情况。在这种情况下使用的通常模式是什么。一种方法是停止所有访问,同时关闭服务并以编程方式更新配置文件,然后启动服务 - 但这有点危险。

我知道分片和这个问题是不相关的,假设分片是启用,我有多个分片,我想增加每个分片的存储增加一个新的驱动器。有没有一个优雅的解决方案呢?

回答

0

user544550, 在磁盘已满的情况下,RavenDB将继续运行,但会拒绝接受进一步的写入。 索引也会失败,并最终将索引标记为永久失败。

你的实际情况是什么? 请注意,在RavenDB中,索引往往比实际数据大小要小得多,所以磁盘空间利用的主要原因实际上是主数据库,而不是索引。

+0

对不起,我的问题是针对主数据库和索引存储。只是为了澄清实际情况 - 我有一台带有N的设备(我们希望减少由于许可成本)ravenDB虚拟机的实例,不再有(由于Virtual Server Constraint)。所有虚拟机存储(VHD)都使用NAS进行配置,因此我可以对存储扩展很多,与扩展RavenDB实例的数量以扩展存储空间不同。 – NiladriBose 2012-04-23 14:28:29

+0

我以前的评论的编辑版本 - 很抱歉,我的问题是针对主数据库和索引存储。只是为了澄清实际情况 - 我有一台带有N的设备(我们希望减少由于许可成本)ravenDB虚拟机的实例,不再有(由于Virtual Server Constraint)。所有VM存储(VHD)都使用NAS进行配置,因此我可以轻松便宜地扩展存储,而不是扩大RavenDB实例的数量以扩展存储。所以在这一点上,我想垂直缩放每个RavenDb。 – NiladriBose 2012-04-23 14:39:06

+0

换句话说,我知道最好的做法是水平加载(分片)而不是垂直加载数据。 – NiladriBose 2012-04-23 14:39:43