一般情况下,用db.adminCommand({logRotate : 1})命令来进行日志滚动,但在主从结构的arbiter上报如下错误
rs1:ARBITER> db.adminCommand({logRotate : 1})
{
"ok" : 0,
"errmsg" : "not authorized on admin to execute command { logRotate: 1.0 }",
"code" : 13
}
rs1:ARBITER>
并且主库上建的admin库及其用户都没有同步到arbiter,无法进行认证。暂时没有找到是什么原因。
rs1:ARBITER> use admin
switched to db admin
rs1:ARBITER> db.auth('admin','admin12345')
Error: Authentication failed.
从Mongo的官方文档来看,在Linux上还有一种强制滚动日志的方式:
kill -SIGUSR1 <mongod process id>
所以抓取Mongo进程的ID并向其发送SIGUSR1通知其
强制滚动日志的命令如下:
ps aux | grep mongo | grep -v grep | tr -s " " | cut -d" " -f2 | xargs kill -SIGUSR1