在我们 mongodb 的最近自动更新期间PRIMARY,当它PRIMARY下台时,它永久进入了一种ROLLBACK状态。
ROLLBACK状态几小时后,mongodb数据库目录下.bson的rollback目录中仍然没有回滚文件。那,还有我们日志文件中的这一行:[rsSync] replSet syncThread: 13410 replSet too much data to roll back,似乎表明该ROLLBACK过程失败。
我需要一些帮助来分析到底出了什么问题。
rollback目录中没有出现任何内容?ROLLBACK?ROLLBACK状态”问题有没有通用的解决方案?我们最终不得不对整个数据库进行冲洗并从主数据库重新同步。相关的日志行是:
# Primary coming back after restart...
Tue May 15 19:01:01 [initandlisten] MongoDB starting : pid=3684 port=27017 dbpath=/var/lib/mongodb 64-bit host=magnesium
Tue May 15 19:01:01 [initandlisten] db version v2.0.5, pdfile version 4.5
# ... init stuff
Tue …Run Code Online (Sandbox Code Playgroud) 我最近使用以下命令压缩了我的收藏:
db.<collectionName>.runCommand( "compact" )
Run Code Online (Sandbox Code Playgroud)
现在我的收藏大小似乎大于磁盘上的大小!
SECONDARY> db.<collectionName>.stats()
{
"ns" : "<databaseName>.<collectionName>",
"count" : 2937359,
"size" : 5681676492, # 5.6 GB
"avgObjSize" : 1934.2805874256433,
"storageSize" : 4292853728, # 4.2 GB
"numExtents" : 2,
"nindexes" : 2,
"lastExtentSize" : 2146426864,
"paddingFactor" : 1.669999999836597,
"flags" : 1,
"totalIndexSize" : 220735648,
"indexSizes" : {
"_id_" : 162326304,
"e_1_" : 58409344
},
"ok" : 1
Run Code Online (Sandbox Code Playgroud)
}
我不明白这怎么可能。不是所有的 mongodb 集合都一直由磁盘支持吗?
谁能解释这些结果?
我在 mongo 集群中存储了大约 200 GB 的数据。运行 mongo 的实例之一上的物理内存为 8GB。在此实例上不会运行任何其他任何后果。根据 Mongo 的文档(例如:http : //www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage),我可以理解的尽可能接近,这意味着 mongod 进程应该使用大约 100% 的可用的物理内存。但是,如果您查看top命令的以下输出,您将看到 mongod 实例仅使用 2GB 的常驻内存,并且有完整的 2GB 可用物理内存,但根本没有使用。
有人可以向我解释这种行为吗?为什么有 2GB 的空闲内存?
top 输出:
top - 23:19:43 up 89 days, 20:05, 2 users, load average: 0.41, 0.55, 0.59
Tasks: 101 total, 1 running, 100 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.0%us, 1.3%sy, 0.0%ni, 93.9%id, 2.6%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 8163664k total, 6131764k used, 2031900k free, 54976k buffers
Swap: 16771848k total, 10604k used, …Run Code Online (Sandbox Code Playgroud) 我想使用脚本来监控 MySQL 数据库的复制状态,就像在这个 bash 脚本中一样:https : //gist.github.com/wesdeboer/1791632
我想创建一个仅用于查询复制状态的用户。所以基本上这个用户只需要运行以下命令:
"SHOW SLAVE STATUS \G"
Run Code Online (Sandbox Code Playgroud)
我需要授予用户的最低权限集是什么?
(这甚至是可以GRANT编辑的东西吗?