锁住写操作

> 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. [Java]通过java获取计算机名

    通过java获取计算机名 String hostname = "Unknown"; try { InetAddress addr; addr = InetAddress.getLo ...

  2. Gym 101201J Shopping (线段树+取模)

    题意:给定 n 个物品,然后有 m 个人买东西,他们有 x 元钱,然后从 l - r 这个区间内买东西,对于每个物品都尽可能多的买,问你最少剩下多少钱. 析:对于物品,尽可能多的买的意思就是对这个物品 ...

  3. console.dir(someObject);

    <script type="text/javascript"> function test(){ var array = [{"id":1},{&q ...

  4. .NET基础 (12)时间的操作System.DateTime

    时间的操作System.DateTime1 DateTime如何存储时间2 如何在DateTime对象和字符串对象之间进行转换3 什么是UTC时间,如何转换到UTC时间 时间的操作System.Dat ...

  5. 为方便二层升三层新增的远程方法QuerySql6()

    为了方便原来D6,D7开发的二层老程序升级为三层,新增了远程方法QuerySql6().充分地兼容原来二层SQL的写法. 1)公共方法ParamsToStr() function ParamsToSt ...

  6. MSP430G2553 模数转换器 ADC10

    一.ADC10组成 ADC10模块是MSP430 MCU内部的一个高性能.10位的模数转换器,包含了SAR(Successive-Approximation-Register) core.采样选择控制 ...

  7. .NET框架源码解读之启动CLR

    前面提到在SSCLI环境里运行.NET程序的时候,执行的命令类似java程序的执行过程,即通过clix程序解释执行.net程序.这个过程看起来跟在windows环境下执行.net程序表面上看起来不一样 ...

  8. Tomcat不自动解压问题

    问题: 版本迭代上线,需要更换新的war包, 1.先将老的war和文件夹删除掉,再放入新的war到webapps中, 2.发现启动Tomcat后没有解压该war包, 3.需要先将server.xml中 ...

  9. ASP.NET RouteModule相关的一些东西

    Asp.NET中的路由配置,首先要提到的几个相关类型,Route ,RouteBase,RouteData,RouteTable,RouteCollection 这几个.下面我一次回忆一下,有需要的朋 ...

  10. JAVA的学习内容

    http://www.weixueyuan.net/java/rumen/ 安卓学习文档 http://www.runoob.com/w3cnote/android-tutorial-linearla ...