我正在使用MongoDB的一個實例只有一個節點。我想編寫一個web服務,將數據文件fsyncs並將它們壓縮到備份文件夾中。MongoDB如何使用Java驅動程序查找數據目錄
理想情況下,我將以編程方式獲取數據目錄的位置(而不是讀取配置文件),以便我可以輕鬆地將此從開發移植到安裝路徑不同的生產計算機。有沒有辦法使用Java驅動程序來做到這一點?
我正在使用MongoDB的一個實例只有一個節點。我想編寫一個web服務,將數據文件fsyncs並將它們壓縮到備份文件夾中。MongoDB如何使用Java驅動程序查找數據目錄
理想情況下,我將以編程方式獲取數據目錄的位置(而不是讀取配置文件),以便我可以輕鬆地將此從開發移植到安裝路徑不同的生產計算機。有沒有辦法使用Java驅動程序來做到這一點?
嘗試使用管理員 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
}
您可以使用mongoexport來獲取數據;從生產機器運行它並指定開發機器的主機/端口/集合。可以使用mongoimport將數據導入生產機器。
開發和主機不在同一個網絡上。我不需要將數據從一個傳輸到另一個。這是我的應用程序將觸發備份。我寧願fsync和壓縮(不知道mongoexport +壓縮將採取多快)。我看了很多,似乎沒有辦法以編程方式獲取數據目錄的位置。我想我必須通過配置來完成它 – Eduardo 2012-02-27 21:05:15
你找麻煩試圖備份的MongoDB的方式。很可能你會損壞文件。這就是爲什麼'mongoexport'工具存在的原因。 – 2012-04-23 04:05:37
即使我停止數據庫?我覺得只是複製文件可能會更快? – Eduardo 2012-04-23 07:04:00
那麼,使用['mongodump'](http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongodump)。複製文件可能會更快,也可能會更慢,因爲它可能包括複製文件中的大量可用空間。但是從文件備份恢復只能讓您選擇稍後重新創建您的配置(配置和全部)。通過備份到數據庫的可移植表示,可以實現稍後合併數據或僅備份數據庫的某些部分。 – 2012-04-23 07:12:20