更新 RavenDB 时出现问题
Problems Updating RavenDB
我们在 NServiceBus 内部使用 RavenDB。
我尝试将 RavenDB 从 2.0 更新到 3.0。按照文档,应该很容易:
1.停止服务
2.复制二进制文件
3. 启动服务。
我都做到了。我将二进制文件(Raven.Database.Dll、Raven.Abstractions.dll、Raven.server.exe)从服务器文件夹复制到“\C:\Program Files\NServiceBus.Persistence.v4”。
当我尝试再次启动该服务时,它立即停止。文件权限似乎没问题。是否有任何日志文件可以让我获得更多信息?
[更新]
事件日志显示:
Application: Raven.Server.exe Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileLoadException Stack: at
Raven.Server.Program.Main(System.String[])
奇怪的是,因为安装了 Framework 4.5(并被其他应用程序使用)
好的。第一个事件日志导致完全错误的方向。 :) 似乎是后续错误。事件日志还有一条较旧的错误消息:
RavenDB service failed to start because of an error
System.InvalidOperationException: Could not open transactional storage: C:\Program Files\NServiceBus.Persistence.v4\Database\System\Data ---> System.InvalidOperationException: Could not read db details from disk. It is likely that there is a version difference between the library and the db on the disk.
You need to migrate the disk version to the library version, alternatively, if the data isn't important, you can delete the file and it will be re-created (with no data) with the library version. ---> System.InvalidOperationException: The version on disk (5.1) is different that the version supported by this library: 4.5
很清楚要做什么。谢谢
注意 - 我的以下解决方案不适用于您的主要 NServiceBus 数据库。不要删除您的数据。此解决方案适用于存储的数据不太重要的 ServiceControl。
我最近在使用 ServiceControl(NServiceBus 附带的监控工具之一)时遇到了这个问题。它将消息保存在位于 C:\ProgramData\Particular\ServiceControl%-33333\Data
的本地数据库中
原来是硬盘满了。不得不删除包含异常中提到的数据文件的文件夹以腾出空间(它是 11GB)。然后我将以下应用程序设置添加到 ServiceControl.exe.config 以限制它保留的消息数量:
<add key="ServiceControl/ExpirationProcessTimerInSeconds" value="900" />
<add key="ServiceControl/HoursToKeepMessagesBeforeExpiring" value="168" />
见http://docs.particular.net/servicecontrol/how-purge-expired-data
ServiceControl 将在启动时重新创建该文件夹。
我们在 NServiceBus 内部使用 RavenDB。 我尝试将 RavenDB 从 2.0 更新到 3.0。按照文档,应该很容易: 1.停止服务 2.复制二进制文件 3. 启动服务。
我都做到了。我将二进制文件(Raven.Database.Dll、Raven.Abstractions.dll、Raven.server.exe)从服务器文件夹复制到“\C:\Program Files\NServiceBus.Persistence.v4”。
当我尝试再次启动该服务时,它立即停止。文件权限似乎没问题。是否有任何日志文件可以让我获得更多信息?
[更新] 事件日志显示:
Application: Raven.Server.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.IO.FileLoadException Stack: at Raven.Server.Program.Main(System.String[])
奇怪的是,因为安装了 Framework 4.5(并被其他应用程序使用)
好的。第一个事件日志导致完全错误的方向。 :) 似乎是后续错误。事件日志还有一条较旧的错误消息:
RavenDB service failed to start because of an error
System.InvalidOperationException: Could not open transactional storage: C:\Program Files\NServiceBus.Persistence.v4\Database\System\Data ---> System.InvalidOperationException: Could not read db details from disk. It is likely that there is a version difference between the library and the db on the disk.
You need to migrate the disk version to the library version, alternatively, if the data isn't important, you can delete the file and it will be re-created (with no data) with the library version. ---> System.InvalidOperationException: The version on disk (5.1) is different that the version supported by this library: 4.5
很清楚要做什么。谢谢
注意 - 我的以下解决方案不适用于您的主要 NServiceBus 数据库。不要删除您的数据。此解决方案适用于存储的数据不太重要的 ServiceControl。
我最近在使用 ServiceControl(NServiceBus 附带的监控工具之一)时遇到了这个问题。它将消息保存在位于 C:\ProgramData\Particular\ServiceControl%-33333\Data
的本地数据库中原来是硬盘满了。不得不删除包含异常中提到的数据文件的文件夹以腾出空间(它是 11GB)。然后我将以下应用程序设置添加到 ServiceControl.exe.config 以限制它保留的消息数量:
<add key="ServiceControl/ExpirationProcessTimerInSeconds" value="900" />
<add key="ServiceControl/HoursToKeepMessagesBeforeExpiring" value="168" />
见http://docs.particular.net/servicecontrol/how-purge-expired-data
ServiceControl 将在启动时重新创建该文件夹。