2014-12-29 11 views
0

我試圖更改oplog大小。所以,我是按照http://docs.mongodb.org/v2.4/tutorial/change-oplog-size/說明然而,當我運行更改oplog大小時在錯誤的目錄中創建的MongoDB數據文件

db.runCommand({ create: "oplog.rs", capped: true, size: (20 * 1024 * 1024 * 1024) }) 

它創造下的/data/db代替/data/db/local

你有任何想法可以在數據文件(local.0local.[1-20]local.ns)命令失蹤?

編輯︰它實際上創建local.0local.ns當我在獨立模式下啓動mongodb。

mongod --port 37017 & 

回答

0

在MongoDB的2.4文件的位置將由directoryperdb設置在MongoDB中的配置文件會受到影響:

運行下面的命令來查看您是否在您的配置文件中設置的標誌directoryperdb。

mongo --port 27017 admin

db.adminCommand({getCmdLineOpts:1});

但是,要小心,你不能,你已經加載系統中的客戶數據後更改此設置。

MongoDB有數據後更改此設置會給你「印象」,你的數據已經丟失。 MongoDB不會在「預期」路徑中找到文件,並且您的查詢將無法按預期工作。

底線:

  • 如果你開始的MongoDB沒有directoryperdb設置,你不能 後來添加。
  • 如果您使用directoryperdb設置啓動MongoDB,您必須稍後再刪除它。
+0

directoryperdb在我的配置文件中設置爲true。實際上,以前創建的dbs有自己的目錄,當我將mongo實例作爲副本啓動時,它不會在/ data/db目錄中創建文件。它只在我嘗試以獨立模式啓動服務器時創建。 –

+0

你有2個配置文件嗎?或者,您是否通過在命令行中傳遞參數來啓動MongoDB作爲獨立應用程序?根據你的描述,當你作爲一個獨立的目錄開始時,perdb沒有被設置。運行db.adminCommand({getCmdLineOpts:1});將確認 – BigDataKid

+0

你是對的,我假設服務器獲取配置文件。現在我提供配置文件,一切都很好。謝謝! –

相關問題