![](/img/trans.png)
[英]Mongodb see previous database queries which removed any document from my database
[英]Which is my database in mongodb?
與上一個參考的下一個問題mongodb在ubuntu中將databse存儲在哪里?
$ cd /var/lib/mongodb/
$ ls
ihtx.0 ihtx.1 ihtx.ns journal local.0 local.ns mongod.lock
在這里,我可以看到ihtx.0 ihtx.1 ihtx.ns
三個名稱相同的文件。 這是我通常在mongo shell中看到的mydatabase之一? 我應該丟哪一個?
嘗試每個,得到以下錯誤:
$ mongodump --dbpath /var/lib/mongodb/ihtx.XX --out /home/user/Desktop/
If you are running a mongod on the same path you should connect to that instead of direct data file access
Thu Mar 13 11:17:21.123 dbexit:
Thu Mar 13 11:17:21.123 [tools] shutdown: going to close listening sockets...
Thu Mar 13 11:17:21.123 [tools] shutdown: going to flush diaglog...
Thu Mar 13 11:17:21.123 [tools] shutdown: going to close sockets...
Thu Mar 13 11:17:21.123 [tools] shutdown: waiting for fs preallocator...
Thu Mar 13 11:17:21.123 [tools] shutdown: closing all files...
Thu Mar 13 11:17:21.123 [tools] closeAllFiles() finished
Thu Mar 13 11:17:21.123 [tools] shutdown: removing fs lock...
Thu Mar 13 11:17:21.123 [tools] couldn't remove fs lock errno:9 Bad file descriptor
Thu Mar 13 11:17:21.123 dbexit: really exiting now
如果設置了dbpath或mongoDB服務正在運行,則此命令將為您服務ihtx表示您的dbname
$ mongodump -d ihtx --out /home/user/Desktop/intxDB
ihtx.0,ihtx.1,ihtx,ns代表數據庫ihtx
。
.0 .1等文件本身就是數據文件。 MongoDB將第一個數據文件命名為.0,然后命名為.1,依此類推。mongod分配的第一個文件為64兆字節,接下來的128兆字節,依此類推,最高為2 GB,此時所有后續文件均為2 GB。
“ .ns”文件是名稱空間文件。 每個集合和索引都將視為一個名稱空間。 每個命名空間為628個字節,.ns文件默認為16MB。
現在,在您的問題中,mongod實例無法刪除fs鎖(如錯誤所示)。
Thu Mar 13 11:17:21.123 [tools] closeAllFiles() finished
Thu Mar 13 11:17:21.123 [tools] shutdown: removing fs lock...
Thu Mar 13 11:17:21.123 [tools] couldn't remove fs lock errno:9 Bad file descriptor
Thu Mar 13 11:17:21.123 dbexit: really exiting now
就像您的代碼中一樣, dbpath是/ var / lib / mongodb ,因此,當您啟動mongo實例時,請使用--dbpath參數,如下所示:
mongod --dbpath=/var/lib/mongodb
因此,首先運行以下命令:
mongod --dbpath=/var/lib/mongodb --repair
之后運行以下命令:
mongodump --dbpath /var/lib/mongodb -d ihtx --out /home/user/Desktop/intxDB
對於第一個問題“我的數據庫文件是哪個?”,請參閱鏈接http://docs.mongodb.org/manual/faq/storage/
它清楚地提到:“ MongoDB將數據文件預先分配為特定大小,部分是為了防止文件系統碎片化。MongoDB將第一個數據文件命名為.0,將下一個.1命名為等等。”
對於轉儲時遇到的錯誤,請刪除--dbpath選項,然后嘗試。
您要么從運行中的服務器導出,要么從文件(如果服務器未運行或鎖定)中導出,則不能同時導出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.