2012-02-21 171 views
2

我正在使用MongoDB的一個實例只有一個節點。我想編寫一個web服務,將數據文件fsyncs並將它們壓縮到備份文件夾中。MongoDB如何使用Java驅動程序查找數據目錄

理想情況下,我將以編程方式獲取數據目錄的位置(而不是讀取配置文件),以便我可以輕鬆地將此從開發移植到安裝路徑不同的生產計算機。有沒有辦法使用Java驅動程序來做到這一點?

+0

你找麻煩試圖備份的MongoDB的方式。很可能你會損壞文件。這就是爲什麼'mongoexport'工具存在的原因。 – 2012-04-23 04:05:37

+0

即使我停止數據庫?我覺得只是複製文件可能會更快? – Eduardo 2012-04-23 07:04:00

+0

那麼,使用['mongodump'](http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongodump)。複製文件可能會更快,也可能會更慢,因爲它可能包括複製文件中的大量可用空間。但是從文件備份恢復只能讓您選擇稍後重新創建您的配置(配置和全部)。通過備份到數據庫的可移植表示,可以實現稍後合併數據或僅備份數據庫的某些部分。 – 2012-04-23 07:12:20

回答

3

嘗試使用管理員 db.runCommand({getCmdLineOpts:1}),如here所述,然後使用返回的數據進行播放。

實例返回數據是

{ 
     "argv" : [ 
       "mongod", 
       "--port", 
       "6669", 
       "--dbpath=c:\\data\\mongo2", 
       "--rest" 
     ], 
     "parsed" : { 
       "dbpath" : "c:\\data\\mongo2", 
       "port" : 6669, 
       "rest" : true 
     }, 
     "ok" : 1 
} 
0

您可以使用mongoexport來獲取數據;從生產機器運行它並指定開發機器的主機/端口/集合。可以使用mongoimport將數據導入生產機器。

+0

開發和主機不在同一個網絡上。我不需要將數據從一個傳輸到另一個。這是我的應用程序將觸發備份。我寧願fsync和壓縮(不知道mongoexport +壓縮將採取多快)。我看了很多,似乎沒有辦法以編程方式獲取數據目錄的位置。我想我必須通過配置來完成它 – Eduardo 2012-02-27 21:05:15

相關問題