2012-02-06 14 views
4

RavenDBのウェブサイトのBackup and Restore文書を読んで、自分のコードで試しました。RavenDB EmbeddableDocumentStoreと組み合わせてDocumentDatabase.StartBackup()を使用するにはどうすればよいですか?

我々が持っているドキュメントでは:

Initiating a backup

When running in embedded mode, all you need is to call the method 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サーバを使わなくても可能ですか?

私の唯一の選択肢は、データベースフォルダの手動バックアップです。

答えて

4

Leniel、 実行中の実際のインスタンスでStartBackupメソッドを使用する必要があります。 あなたがEmbeddableDocumentStoreを使用している場合は、あなたがする必要があります。

embeddableDocumentStore.DocumentDatabase.StartBackup(...); 
+1

ああ、私は参照してください。今私は間違っていることを知っている。私は 'private static IDocumentStore _documentStore;'として宣言された埋め込みドキュメント格納変数を持っていました。私はDocumentDatabaseのメンバーを見つけようとしましたが、見つけられませんでした。私は怖がっていた... heheheそれを 'private static EmbeddableDocumentStore _documentStore;に変更した後、それはちょうどそこにあった。ありがとうございましたAyendeもう一度...あなたは男です! :-) –

+0

ちょっとフォローアップAyende:どこでStartBackup()を呼びますか? '_documentStore.Initialize();'の後に配置してテストするだけで、Backupフォルダが作成されましたが、IndexDefinitionsとIndexという2つのフォルダしかありません。データはバックアップされていません... –

+0

ちょっと時間がたっても面白かったので、データ、Data.pat、RVN00002.logという3つのファイルを持つnewというフォルダがもう1つ作成されたことが分かりました。障害発生時にDBを復元するために必要なことは何ですか? :) –

関連する問題