Automation 如何将DocumentDatabase.StartBackup()与RavenDB EmbeddedBledDocumentStore结合使用?

Automation 如何将DocumentDatabase.StartBackup()与RavenDB EmbeddedBledDocumentStore结合使用?,automation,backup,ravendb,embedded-database,document-store,Automation,Backup,Ravendb,Embedded Database,Document Store,我在RavenDB网站上阅读了该文档,并在我的代码中进行了尝试 在文件中,我们有: 启动备份 在嵌入式模式下运行时,只需调用该方法 DocumentDatabase.StartBackup() 以上代码行不会编译,但有错误: An object reference is required for the non-static field, method, or property 'Raven.Database.DocumentDatabase.StartBackup(string, bool)'

我在RavenDB网站上阅读了该文档,并在我的代码中进行了尝试

在文件中,我们有:

启动备份

在嵌入式模式下运行时,只需调用该方法 DocumentDatabase.StartBackup()

以上代码行不会编译,但有错误:

An object reference is required for the non-static field, method, or property
'Raven.Database.DocumentDatabase.StartBackup(string, bool)'
所以我试着这样做只是为了测试:

new DocumentDatabase(_documentStore.Configuration).
                                               StartBackup(@"~\App_Data\Backup", true);
代码已编译,但当应用程序启动时,我收到以下错误:

Could not open transactional storage: C:\Project\trunk\MyApp\App_Data\Database\Data
有人能分享一些关于如何对在线嵌入式文档库进行完整备份的工作代码吗?甚至不使用RavenDB服务器也可以吗

我唯一的选择是手动备份数据库文件夹?

Leniel, 您需要在正在运行的实际实例上使用StartBackup方法。 如果您正在使用EmbeddedBledDocumentStore,则需要执行以下操作:

 embeddableDocumentStore.DocumentDatabase.StartBackup(...);

哦,我明白了。现在我知道我做错了什么。我将嵌入的文档存储变量声明为
private static IDocumentStore\u documentStore。然后我尝试查找DocumentDatabase成员,但找不到它。我很害怕。。。呵呵,改为
私有静态嵌入式文档库\u documentStore后呵呵它就在那里。再次感谢Ayende。。。你就是那个人!:-)只是一个后续Ayende:我应该在哪里调用StartBackup()?我把它放在
\u documentStore.Initialize()之后只是为了测试,它创建了备份文件夹,但它只包含两个文件夹:IndexDefinitions和Index。数据没有被备份…有趣的是,过了一段时间,我看到它又创建了一个名为new的文件夹,其中包含3个文件:data、data.pat和RVN00002.log。如果数据库出现故障,我需要的一切都恢复了吗?:)