在MongoDB的配置文件中,我们会指定相关的路径:
[dave@www.cndba.cn ~]# cat /etc/mongo.conf
#数据库数据存放目录
dbpath=/mongodb/data
#数据库日志存放目录
logpath=/mongodb/logs/mongodb.log
直接使用tree 目录查看data 目录的层次结构:
[dave@www.cndba.cn data]# tree .
.
├── collection-0-6283992699196298408.wt
├── collection-2-6283992699196298408.wt
├── collection-4-6283992699196298408.wt
├── collection-7-6283992699196298408.wt
├── diagnostic.data
│ ├── metrics.2022-04-27T11-41-22Z-00000
│ ├── metrics.2022-04-28T01-09-02Z-00000
│ ├── metrics.2022-04-28T01-13-42Z-00000
│ └── metrics.interim
├── index-1-6283992699196298408.wt
├── index-3-6283992699196298408.wt
├── index-5-6283992699196298408.wt
├── index-6-6283992699196298408.wt
├── index-8-6283992699196298408.wt
├── index-9-6283992699196298408.wt
├── journal
│ ├── WiredTigerLog.0000000003
│ ├── WiredTigerPreplog.0000000001
│ └── WiredTigerPreplog.0000000002
├── _mdb_catalog.wt
├── mongod.lock
├── sizeStorer.wt
├── storage.bson
├── WiredTiger
├── WiredTigerHS.wt
├── WiredTiger.lock
├── WiredTiger.turtle
└── WiredTiger.wt
2 directories, 26 files
[dave@www.cndba.cn data]#
[dave@www.cndba.cn journal]# pwd
/mongodb/data/journal
[dave@www.cndba.cn journal]# ll -lh
total 300M
-rw------- 1 root root 100M Apr 28 09:33 WiredTigerLog.0000000003
-rw------- 1 root root 100M Apr 28 09:13 WiredTigerPreplog.0000000001
-rw------- 1 root root 100M Apr 28 09:13 WiredTigerPreplog.0000000002
[dave@www.cndba.cn journal]#
相关说明如下:
_mdb_catalog.wt : 里存储了所有集合的元数据,包括集合对应的WT table名字,集合的创建选项,集合的索引信息等,WT存储引擎初始化时,会从_mdb_catalog.wt里读取所有的集合信息,并加载元信息到内存。
sizeStorer.wt : 里存储所有集合的容量信息,如文档数、文档总大小等,当插入、删除、更新文档时,这些信息会先cache到内存,每操作1000次会刷盘一次;mongod进程crash可能导致sizeStorer.wt里的数据与实际信息不匹配,可通过validate()命令来重新扫描集合以订正统计信
journal, MongoDB 的日志文件,类似于Oracle的redo log。
如果开启了journal日志功能,MongoDB先在内存保存写操作,并记录journal日志到磁盘,然后才会把数据改变刷入到磁盘上的数据文件。MongoDB的日志文件只是用来在系统出现宕机时候恢复尚未来得及同步到硬盘的内存数据。
WiredTiger 引擎的journal 日志单个文件最大约为100MB。 当达到这个限制时,会自动创建新的journal 日志你文件。 WiredTiger 会自动删除旧的journal 日志文件,仅保留从最后一次checkpoint 之后recover 恢复需要的文件。WiredTiger*, MongDB存储引擎配置文件。
diagnostic.data 目录下存放的是诊断数据,每次重启MongoDB 实例都会重新生成一个文件。
index: 索引的存储文件。
collections:集合的存储文件。
查看集合时,我们可以看到集合数据和索引存储的对应位置。
> use ustc
switched to db ustc
> db.comment.stats({indexDetails:true})
{
"ns" : "ustc.comment",
"size" : 1015,
"count" : 5,
"avgObjSize" : 203,
"storageSize" : 20480,
"freeStorageSize" : 0,
"capped" : false,
"wiredTiger" : {
"metadata" : {
"formatVersion" : 1
},
……
"type" : "file",
"uri" : "statistics:table:collection-7-6283992699196298408",
……
"indexDetails" : {
"_id_" : {
……
"type" : "file",
"uri" : "statistics:table:index-8-6283992699196298408",
……
"userid_1" : {
……
"type" : "file",
"uri" : "statistics:table:index-9-6283992699196298408",
版权声明:本文为博主原创文章,未经博主允许不得转载。



