mongodb的mongod.lock文件及oplog文件
在mongodb的启动时,在数据目录下,会生成一个mongod.lock文件。如果在正常退出时,会清除这个mongod.lock文件,若要是异常退出,在下次启动的时候,会禁止启动,从而保留一份干净的一份副本数据。有人可能会想到删除这个文件,
建议请不要这么做。如果这么做,我们也不知道数据文件是否会损坏,如果mongod.lock文件阻止mongod的启动,请对数据文件进行修复,而不是简单的删除该文件。而这里的mongod.lock文件存放的是:启动mongod的进程号.
这里提到了"正常退出",详细介绍如下:
MongoDB 提供几种关闭服务的命令,具体为以下:
一 使用 Crtl+C 关闭
| [mongo@redhatB data]$ mongod --dbpath=/database/mongodb/data/ --logpath=/var/applog/mongo_log/mongo.log --logappend --port=27017 --journal > start_mongo.log 2>&1 光标:键入 Crtl+C 关闭 |
备注:如果以前台方式启动 MongoDB 服务,使用“Crtl+C” 服务会关闭,这种关闭方式会等待
当前进行中的的操作完成,所以依然是干净的关闭方式。
二 使用数据库命令关闭
--2.1 开启服务
| [mongo@redhatB data]$ mongod -f /database/mongodb/data/mongodb_27017.conf forked process: 18155 all output going to: /var/applog/mongo_log/mongo.log child process started successfully, parent exiting |
--2.2 登陆数据库
| [mongo@redhatB data]$ mongo MongoDB shell version: 2.2.1 connecting to: test |
--2.3 关闭 MongoDB 服务
| > use admin; switched to db admin > db.shutdownServer(); |
三 使用 mongod 命令关闭
| [mongo@redhatB data]$ mongod --shutdown --dbpath /database/mongodb/data/ killing process with pid: 17747 |
备注:mongod 命令的 shutdown 选项能干净的关闭 MongoDB 服务。
四 使用 kill 命令
--4.1 查看 mongo 相关进程
| [mongo@redhatB data]$ ps -ef | grep mongo root 17573 14213 0 05:10 pts/1 00:00:00 su - mongo mongo 17574 17573 0 05:10 pts/1 00:00:00 -bash mongo 18288 1 0 06:12 ? 00:00:00 mongod -f /database/mongodb/data/mongodb_27017.conf mongo 18300 17574 6 06:13 pts/1 00:00:00 ps -ef mongo 18301 17574 0 06:13 pts/1 00:00:00 grep mongo |
--4.2 kill mongo 服务进程
| [mongo@redhatB data]$ kill 18288
[mongo@redhatB data]$ ps -ef | grep pmon |
备注:可以使用操作系统的 kill 命令,给 mongod 进程发送 SIGINT 或 SIGTERM 信号,
即 "kill -2 PID," 或者 “kill -15 PID“。
建议不要使用 ”kill -9 pid“,因为如果 MongoDB 运行在没开启日志(--journal)的情况下,
可能会造成数据损失。
在mongo库中,oplog是数据存放和数据主从同步的,而在本地库local中,$ show collections 下,有个oplog.rs 的collection,解释下其中的字段:
上面就是一条oplog信息,复制机制就是通过这些信息来进行节点间的数据同步并维护数据一致性的,其中:
ts:8字节的时间戳,由4字节unix timestamp + 4字节自增计数表示。
这个值很重要,在选举(如master宕机时)新primary时,会选择ts最大的那个secondary作为新primary。
op:1字节的操作类型,例如i表示insert,d表示delete。
ns:操作所在的namespace。
o:操作所对应的document,即当前操作的内容(比如更新操作时要更新的的字段和值)
o2: 在执行更新操作时的where条件,仅限于update时才有该属性
其中op,可以是如下几种情形之一:
"i": insert
"u": update
"d": delete
"c": db cmd
"db":声明当前数据库 (其中ns 被设置成为=>数据库名称+ '.')
"n": no op,即空操作,其会定期执行以确保时效性
mongodb的mongod.lock文件及oplog文件的更多相关文章
- mongodb mongod.lock文件及oplog文件
在mongodb的启动时,在数据目录下,会生成一个mongod.lock文件.如果在正常退出时,会清除这个mongod.lock文件,若要是异常退出,在下次启动的时候,会禁止启动,从而保留一份干净的一 ...
- Mongodb 启动时 lock文件访问没有权限处理
mongodb 第二次启动时候异常信息: lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance ...
- 源码 mongod.lock shutdown
https://github.com/mongodb/mongo/blob/master/src/mongo/db/db.cpp 1. 退出原理 /proc/" << pid 判 ...
- 解决mongodb设备mongod命令不是内部或外部的命令
1:安装 去mongodb的官网http://www.mongodb.org/downloads下载32bit的包 解压后会出现下面文件 在安装的盘C:下建立mongodb目录,拷贝bin目录到该目录 ...
- [问题解决] initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock
错误: 在linux下开启mongoDB的 $ >bin: ./mongod 时报错:initAndListen: 10309 Unable to create/open lock file: ...
- 深入理解linux关闭文件和删除文件
背景介绍 最近看了linux系统编程(linux system programming)一书,结合深入理解linux内核(understanding the linux kernel)一书,深入理解了 ...
- pyx文件 生成pyd 文件用于 cython调用
转于:https://www.2cto.com/kf/201405/304168.html 1. 初衷 最近学用python,python不愧是为程序员考虑的编程语言,写起来很快很方便,大大节省开发效 ...
- Linux文件系统简介一(磁盘分区、开机过程、目录结构、文件权限、文件扩展名、目录管理)
Linux:就是一组软件,一套操作系统=核心+系统呼叫接口层. 1.操作系统 操作系统 = 核心(内核) + 系统呼叫(接口) 操作系统其实也是一组程序,重点在于管理计算机的所有活动以及驱动系统中的所 ...
- UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)
前面[UWP开发之Mvvmlight实践五:SuspensionManager中断挂起以及复原处理]章节已经提到过Template10,为了认识MvvmLight的区别特做了此实例. 原代码地址:ht ...
随机推荐
- webservice测试工具
webservice测试工具 web service exprlorer
- JavaScript 之类型转换
数值转换成字符串类型 1.利用 “+” 将数值加上一个长度为零的空字符串. 2.通过toString()方法.加入参数可以直接进行进制的转换. <script language="ja ...
- Ubuntu备份设置与恢复
打开家目录,按CTRL+H,显示所有隐藏文件,把所有文件名前面带点的文件(比如 .config).目录备份即可下次有问题就覆盖它
- hdu3715 2-sat+二分
Go Deeper 题意:确定一个0/1数组(size:n)使得满足最多的条件数.条件在数组a,b,c给出. 吐槽:哎,一水提,还搞了很久!关键是抽象出题目模型(如上的一句话).以后做二sat:有哪些 ...
- 修正MYSQL错误数据的一个存储过程
-- 添加索引 CREATE INDEX idx_STRUCTURE_ID ON t_resource_info(STRUCTURE_ID); DROP PROCEDURE IF EXISTS `P_ ...
- C# 数组与 list 互相转换案例
在项目中用到了 随手分享下 记得点赞呦! 1,从System.String[]转到List<System.String>System.String[] str={"str&quo ...
- ViewAnimator实现复杂的动画效果
咱们先看个原生的 AnimatorSet animatorSet = new AnimatorSet(); animatorSet.playTogether( ObjectAnimator.ofFlo ...
- (4)django mtv模式
mtv模式 http://blog.csdn.net/dbanote/article/details/11338953 models 官方介绍 https://docs.djangoproject.c ...
- github如何实现fork的项目与原项目同步
refer to https://www.jianshu.com/p/fede3333205f 作者:hitchc 链接:https://www.jianshu.com/p/fede3333205f ...
- 剖析ifstream打开含中文路径名文件失败的原因
http://blog.csdn.net/yukin_xue/article/details/7543423 最近写程序的时候遇到了使用ifstream打开含中文路径文件时失败的问题,在网上翻了一下, ...