锁住写操作

> db.fsyncLock();
{
"info" : "now locked against writes, use db.fsyncUnlock() to unlock",
"lockCount" : NumberLong(1),
"seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
"ok" : 1
}
> db.currentOp()
{
"inprog" : [
{
"desc" : "conn10",
"threadId" : "140688623027968",
"connectionId" : 10,
"client" : "127.0.0.1:40943",
"appName" : "MongoDB Shell",
"active" : true,
"opid" : 6757,
"secs_running" : 0,
"microsecs_running" : NumberLong(27),
"op" : "command",
"ns" : "admin.$cmd",
"query" : {
"currentOp" : 1
},
"numYields" : 0,
"locks" : { },
"waitingForLock" : false,
"lockStats" : { }
},
{
"desc" : "conn8",
"threadId" : "140688851060480",
"connectionId" : 8,
"client" : "172.16.160.92:39130",
"active" : true,
"opid" : 6755,
"secs_running" : 0,
"microsecs_running" : NumberLong(867788),
"op" : "getmore",
"ns" : "local.oplog.$main",
"query" : {
"ts" : {
"$gte" : Timestamp(1512120014, 1)
}
},
"planSummary" : "COLLSCAN",
"numYields" : 0,
"locks" : { },
"waitingForLock" : false,
"lockStats" : {
"Global" : {
"acquireCount" : {
"r" : NumberLong(2)
}
},
"Database" : {
"acquireCount" : {
"r" : NumberLong(1)
}
},
"Collection" : {
"acquireCount" : {
"r" : NumberLong(1)
}
}
}
},
{
"desc" : "fsyncLockWorker",
"threadId" : "140688631420672",
"active" : true,
"opid" : 6719,
"op" : "none",
"ns" : "",
"query" : { },
"numYields" : 0,
"locks" : {
"Global" : "R"
},
"waitingForLock" : false,
"lockStats" : {
"Global" : {
"acquireCount" : {
"r" : NumberLong(1),
"R" : NumberLong(1),
"W" : NumberLong(1)
}
}
}
},
{
"desc" : "WT RecordStoreThread: local.oplog.$main",
"threadId" : "140688725845760",
"active" : true,
"opid" : 5,
"secs_running" : 2910,
"microsecs_running" : NumberLong("2910134851"),
"op" : "none",
"ns" : "local.oplog.$main",
"query" : { },
"numYields" : 0,
"locks" : { },
"waitingForLock" : false,
"lockStats" : {
"Global" : {
"acquireCount" : {
"r" : NumberLong(1),
"w" : NumberLong(1)
}
},
"Database" : {
"acquireCount" : {
"w" : NumberLong(1)
}
},
"Collection" : {
"acquireCount" : {
"w" : NumberLong(1)
}
}
}
},
{
"desc" : "replslave",
"threadId" : "140688683882240",
"active" : true,
"opid" : 6,
"secs_running" : 2910,
"microsecs_running" : NumberLong("2910094579"),
"op" : "none",
"ns" : "local.me",
"query" : { },
"numYields" : 0,
"locks" : {
"Global" : "W"
},
"waitingForLock" : true,
"lockStats" : {
"Global" : {
"acquireCount" : {
"r" : NumberLong(18788),
"W" : NumberLong(9344)
},
"acquireWaitCount" : {
"W" : NumberLong(3)
},
"timeAcquiringMicros" : {
"W" : NumberLong(92534923)
}
},
"Database" : {
"acquireCount" : {
"r" : NumberLong(4722)
}
},
"Collection" : {
"acquireCount" : {
"r" : NumberLong(4722)
}
}
}
}
],
"fsyncLock" : true,
"info" : "use db.fsyncUnlock() to terminate the fsync write/snapshot lock",
"ok" : 1
}

  

解锁

> db.fsyncUnlock()db.fsyncUnlock()
{ "info" : "fsyncUnlock completed", "lockCount" : NumberLong(0), "ok" : 1 }
>

  

从库上操作

这个命令用于,先同步完数据,再锁住写操作,只能在从库上操作,在主库上会提示如下:
> db.runCommand({fsync:1,lock:1})
{
"ok" : 0,
"errmsg" : "fsync may only be run against the admin database.",
"code" : 13,
"codeName" : "Unauthorized"
}
>

  

mongodb锁的更多相关文章

  1. MongoDB优化与一些需要注意的细节

    这里总结下这段时间使用mongo的心得,列出了几个需要注意的地方. 1. 系统参数及mongo参数设置 mongo参数主要是storageEngine和directoryperdb,这两个参数一开始不 ...

  2. MongoDB中的读写锁

    1. MongoDB 使用的锁 MongoDB 使用的是“readers-writer”锁, 可以支持并发但有很大的局限性当一个读锁存在,许多读操作可以使用这把锁,然而, 当一个写锁的存在,一个单一的 ...

  3. MongoDB 那些坑(转)

    MongoDB 是目前炙手可热的 NoSQL 文档型数据库,它提供的一些特性很棒:如自动 failover 机制,自动 sharding,无模式 schemaless,大部分情况下性能也很棒.但是薄荷 ...

  4. MongoDB中的一些坑( 2.4.10 版本)

    http://www.jb51.net/article/62654.htm 1.MongoDB 数据库级锁 MongoDB的锁机制和一般关系数据库如 MySQL(InnoDB), Oracle 有很大 ...

  5. MongoDB 那些坑

    MongoDB 是目前炙手可热的 NoSQL 文档型数据库,它提供的一些特性很棒:如自动 failover 机制,自动 sharding,无模式 schemaless,大部分情况下性能也很棒.但是薄荷 ...

  6. MongoDB中的一些坑(最好不要用)

    MongoDB 是目前炙手可热的 NoSQL 文档型数据库,它提供的一些特性很棒:如自动 failover 机制,自动 sharding,无模式 schemaless,大部分情况下性能也很棒.但是薄荷 ...

  7. MongoDB优化心得分享

    这里总结下这段时间使用mongo的心得,列出了几个需要注意的地方. 1. 系统参数及mongo参数设置 mongo参数主要是storageEngine和directoryperdb,这两个参数一开始不 ...

  8. .net core实践系列之短信服务-Sikiro.SMS.Job服务的实现

    前言 本篇会继续讲解Sikiro.SMS.Job服务的实现,在我写第一篇的时候,我就发现我当时设计的架构里Sikiro.SMS.Job这个可以选择不需要,而使用MQ代替.但是为了说明调度任务使用实现也 ...

  9. 开源基于docker的任务调度器pipeline,比`quartzs` 更强大的分布式任务调度器

    pipeline 分布式任务调度器 目标: 基于docker的布式任务调度器, 比quartzs,xxl-job 更强大的分布式任务调度器. 可以将要执行的任务打包为docker镜像,或者选择已有镜像 ...

随机推荐

  1. VMTurbo:应对散乱虚拟机的强劲工具

    随着服务器虚拟化技术越来越成熟,虚拟机散乱(VM sprawl)和主机资源管理成为了虚拟化数据中心的管理员眼里的两大问题.面对这种情形,一种可行的解决办法就是使用一款名为VMTurbo(vmturbo ...

  2. dwz监听日期变化,dwz日期控件onchange不起作用,dwz框架时间控件不支持onchange事件

    转载自:http://blog.csdn.net/sp308036654/article/details/50638348 <input type="text" class= ...

  3. CiteSpace安装使用简介

    一.简介 CiteSpaceⅡ基于JAVA平台的信息可视化软,是美国Drexel大学陈超美(Chaomei Chen)教授开发的,用于文献引文网络分析的信息,作为文献计量学方面最先进的分析工具之一,是 ...

  4. loadrunner--步长(Pacing)的设置及作用

    Pacing时间的设置需要根据使用您系统的用户的行为来决定. 如果您那边的用户在您的系统上做完一套操作后不会做下一套,则可能不需使用Pacing. 如果您那边用户在系统上需要不断地做同样的操作,比如他 ...

  5. QQ互联

    [移动应用接入概述] QQ互联开放平台为第三方移动应用提供了丰富的API.第三方移动应用接入QQ互联开放平台后,即可通过调用平台提供的API实现用户使用QQ账号登录移动应用功能,且可以获取到腾讯QQ用 ...

  6. 判断字符串是否为回文 python

    回文正序和逆序一样的字符串,例如abccba 方法一 def is_palindrome1(text): l = list(text) l.reverse() t1 = ''.join(l) if t ...

  7. 指向字符串的指针在printf与cout区别

    根据指针用法: * 定义一个指针, &取变量地址, int b = 1; int *a = &b; 则*a =1,但对于字符串而言并非如此,直接打印指向字符串的指针打印的是地址还是字符 ...

  8. input中的disabled、readonly和hidden

    最近开发项目的时候,遇到一个问题,就是我希望某个input中的值不能被修改,刚开始的时候,我想到的是disabled属性!但是,发现表单提交后,值无法传递过来! 解决方法: 可以设置其readonly ...

  9. [C#] ??雙問號的意思及用法

    int? x = null; int y = x ?? -1; 上面二行中,第一行是將x變數放入null,為什麼int能放null,可以參考另一篇文章http://charleslin74.pixne ...

  10. MSP430 G2553 低功耗模式LPMx

    MSP430除了正常运行时的active模式外,还支持五种低功耗模式(Low-power mode),分别为LPM0.LPM1.LPM2.LPM3.LPM4,由状态寄存器中的CPUOFF.OSCOFF ...