Mongo帮助文档

来自:http://xiaoshan5634.iteye.com/blog/1117702

Mongo

适合场景:

网站数据:适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制 及高度伸缩性。

缓存:适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可 以避免下层的数据源过载。

大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵。

高伸缩性的场景:适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含 对MapReduce引擎的内置支持。

用于对象及JSON数据的存储:Mongo的BSON数据格式非常适合文档化格式的存储及查询。

启动参数

  1. 使用下面命令可以查看服务的启动参数
 mongod --help  或者mongod -h 
  1. 其他命令参数
 * 基本配置 

 --quiet                          # 安静输出 --port arg                       # 指定服务端口号,默认端口27017 --bind_ip arg                    # 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP --logpath arg                    # 指定MongoDB日志文件,注意是指定文件不是目录 --logappend                      # 使用追加的方式写日志 --pidfilepath arg                # PID File 的完整路径,如果没有设置,则没有PID文件 --keyFile arg                    # 集群的私钥的完整路径,只对于Replica Set 架构有效 --unixSocketPrefix arg           # UNIX域套接字替代目录,(默认为 /tmp) --fork                           # 以守护进程的方式运行MongoDB,创建服务器进程 --auth                           # 启用验证 --cpu                            # 定期显示CPU的CPU利用率和iowait --dbpath arg                     # 指定数据库路径 --diaglog arg                    # diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads --directoryperdb                 # 设置每个数据库将被保存在一个单独的目录 --journal                        # 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里 --journalOptions arg             # 启用日志诊断选项 --ipv6                           # 启用IPv6选项 --jsonp                          # 允许JSONP形式通过HTTP访问(有安全影响) --maxConns arg                   # 最大同时连接数 默认2000 --noauth                         # 不启用验证 --nohttpinterface                # 关闭http接口,默认关闭27018端口访问 --noprealloc                     # 禁用数据文件预分配(往往影响性能) --noscripting                    # 禁用脚本引擎 --notablescan                    # 不允许表扫描 --nounixsocket               	   # 禁用Unix套接字监听 --nssize arg (=16)               # 设置信数据库.ns文件大小(MB) --objcheck                       # 在收到客户数据,检查的有效性, --profile arg                    # 档案参数 0=off 1=slow, 2=all --quota                          # 限制每个数据库的文件数,设置默认为8 --quotaFiles arg                 #  number of files allower per db, requires --quota --rest                           # 开启简单的rest API --repair                         # 修复所有数据库run repair on all dbs --repairpath arg                 # 修复库生成的文件的目录,默认为目录名称dbpath --slowms arg (=100)              # value of slow for profile and console log --smallfiles                     # 使用较小的默认文件 --syncdelay arg (=60)            # 数据写入磁盘的时间秒数(0=never,不推荐) --sysinfo                        # 打印一些诊断系统信息 --upgrade                        # 如果需要升级数据库 
 * Replicaton 参数 

 --fastsync                      # 从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快照,可用于快速启用同步 --autoresync                    # 如果从库与主库同步数据差得多,自动重新同步, --oplogSize arg                 # 设置oplog的大小(MB) 
 * 主/从参数 

 --master                        # 主库模式 --slave                         # 从库模式 --source arg                    # 从库 端口号 --only arg                      # 指定单一的数据库复制 --slavedelay arg                # 设置从库同步主库的延迟时间 * Replica set(副本集)选项: 

 --replSet arg                   # 设置副本集名称 
 * Sharding(分片)选项 

 --configsvr                    # 声明这是一个集群的config服务,默认端口27019,默认目录/data/configdb --shardsvr                     # 声明这是一个集群的分片,默认端口27018 --noMoveParanoia               # 关闭偏执为moveChunk数据保存? 

 

#上述参数都可以写入mongod.conf配置文档里例如:

dbpath = /data/mongodb

logpath = /data/mongodb/mongodb.log

logappend = true

port = 27017

fork = true

auth = true

 

监控(mongostat)

Use the mongostat utility to quickly view statistics on a running mongod instance.

Run mongostat --help for help.

Fields:insert       - # of inserts per second (* means replicated op)query        - # of queries per secondupdate       - # of updates per seconddelete       - # of deletes per secondgetmore      - # of get mores (cursor batch) per secondcommand      - # of commands per second (on a slave, it's local|replicated)flushes      - # of fsync flushes per secondmapped       - amount of data mmaped (total data size) megabytesvsize        - virtual size of process in megabytesres          - resident size of process in megabytesfaults       - # of pages faults/sec (linux only)locked       - percent of time in global write lockidx miss     - percent of btree page misses (sampled)qr | qw      - queue lengths forclients waiting (read|write)ar | aw      - active clients (read|write)netIn        - network traffic in - bits netOut       - network traffic out - bitsconn         - number of open connectionsset          - replica set name repl         - replication type M    - masterSEC  - secondary REC  - recoveringUNK  - unknownSLV  - slave

multiple servers:

mongostat --host a,b,c

find all connected servers (added in 1.7.2):

mongostat --discover (--host optional)

 

 

备份(mongodump

 用法 :

[root@web3 3]# mongodump --help

options:

--help produce help message

-v [ --verbose ] be more verbose (include multiple times for more

verbosity e.g. -vvvvv)

-h [ --host ] arg mongo host to connect to ("left,right" for pairs)

-d [ --db ] arg database to use

-c [ --collection ] arg collection to use (some commands)

-u [ --username ] arg username

-p [ --password ] arg password

--dbpath arg directly access mongod data files in the given path,

instead of connecting to a mongod instance - needs

to lock the data directory, so cannot be used if a

mongod is currently accessing the same path

--directoryperdb if dbpath specified, each db is in a separate

directory

-o [ --out ] arg (=dump) output directory

 


例子:

[root@web3 ~]# mongodump -h 192.168.1.103 -d citys -o /backup/mongobak/3

connected to: 192.168.1.103

DATABASE: citys to /backup/mongobak/3/citys

citys.building to /backup/mongobak/3/citys/building.bson

13650 objects

citys.system.indexes to /backup/mongobak/3/citys/system.indexes.bson

1 objects

 

备份出来的数据是二进制的,已经经过压缩。

 

恢复(mongorestore

[root@web3 3]# mongorestore --help

usage: mongorestore [options] [directory or filename to restore from]

options:

--help produce help message

-v [ --verbose ] be more verbose (include multiple times for more

verbosity e.g. -vvvvv)

-h [ --host ] arg mongo host to connect to ("left,right" for pairs)

-d [ --db ] arg database to use

-c [ --collection ] arg collection to use (some commands)

-u [ --username ] arg username

-p [ --password ] arg password

--dbpath arg directly access mongod data files in the given path,

instead of connecting to a mongod instance - needs to

lock the data directory, so cannot be used if a

mongod is currently accessing the same path

--directoryperdb if dbpath specified, each db is in a separate

directory

--drop drop each collection before import

--objcheck validate object before inserting

 

--drop参数可以在导入之前把collection先删掉。


例子:

[root@web3 3]# mongorestore -h 127.0.0.1 --directoryperdb /backup/mongobak/3/

connected to: 127.0.0.1

/backup/mongobak/3/citys/building.bson

going into namespace [citys.building]

13667 objects

/backup/mongobak/3/citys/system.indexes.bson

going into namespace [citys.system.indexes]

1 objects

 

另外mongodb还提供了mongoexportmongoimport这两个命令来导出或导入数据,导出的数据是json格式的。也可以实现备份和恢复的功能。

例:

mongoexport -d mixi_top_city_prod -c building_45 -q '{ "uid" : "10832545" }' > mongo_10832545.bson

mongoimport -d mixi_top_city -c building_45 --file mongo_10832545.bson

 

关闭

kill -9可能导致瘫痪

建议killall mongod

 

修复
首先停止mongod服务,删除mongodb.log,也可以备份一下
# rm -rf /data/mongodb/mongodb.log

删除mongodb进程文件
# rm -rf /mongodb/mongod.lock

进行修复
# mongod --repair --dbpath /data/mongodb --repairpath /data/mongodb_repair --port=27017

这时mongodb进程会在/mongodb/repair/目录下储存临时的修复数据库文件,文件目录为“$tmp_repairDatabase_0”所以此目录空间要足够大。
生产环境数据库为100G,修复进行了大约3个半小时,在“/mongodb/repair /$tmp_repairDatabase_0"目录下产生了近30G的数据库临时文件,修复完成后数据库临时文件自动清除。

主从同步

启动主服务器(192.168.61.200

./mongod -dbpath /data/jobcnresume -port 5555 -master

 

启动从服务器

./mongod -slave -source=192.168.61.200:5555 -dbpath=/data/db2 -port 6666 -slavedelay 5

./mongod -slave -source=192.168.61.200:5555 -dbpath=/data/db3 -port 7777 -slavedelay 5

参数:

--source主服务器ip和端口

--autoresync当发现从服务器的数据不是最新时,开始从主服务器请求同步数据

--slavedelay同步延迟,单位:秒


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/255358.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Erlang/OTP设计原则(文档翻译)

http://erlang.org/doc/design_principles/des_princ.html 图和代码皆源自以上链接中Erlang官方文档,翻译时的版本为20.1。 这个设计原则,其实是说用户在设计系统的时候应遵循的标准和规范。阅读前我一直以为写的是作者在设计 Erlang/OTP 框架时的一些原…

Spring Cloud Alibaba 参考文档-2021.0.4.0

Spring Cloud Alibaba 简介依赖管理Spring Cloud Alibaba Nacos Discovery3.1 服务注册/发现:Nacos Discovery3.2 如何引入Nacos Discovery进行服务注册/发现3.3 使用Nacos Discovery进行服务注册/发现和调用的示例3.3.1 Nacos 服务器启动3.3.2. 启动供应商申请3.3.…

autojs 开发文档集合

加入我们的QQ群553908361,和各作者同群交流 教程会优先发布于收费脚本v群。 该代码选自于aj开发者的文档,群里有人反馈开发文档打开慢.所以做了这个.方便搜索.如有侵权,请私信我进行删除 同时也上传了一份源码到点击网站,供大家更快的查询代码 Auto.js Pro-8.1.0 文档 索引 | …

云网络安全与数据中心安全

近年来,许多云架构师宣称随着公共云的采用,网络安全性将消亡。然而,网络安全仍然是最大的安全市场之一,并且是每个主要云服务提供商 (CSP) 在过去几年中推出重要新产品的领域。 网络对安全仍然至关重要,即使在云中也是…

Python中的导入模块

1,导入模块的的几种方式 模块是什么? 模块实际上就是 以.py为结尾的文件 注意点:自定义的模块尽量不要和系统模块重名 模块内部封装了很多实用的功能,有时在模块外部调用就需要将其导入,导入模块简单划分&#xff…

python导入模块错误-No module named XXX-图文解决方案

问题描述: 使用python ide执行脚本正常,使用python直接执行报错,报错“不存在对应模块” 问题原因分析: Q1: 等同于python脚本在ide和console中执行的区别 Q2: 因为在ide里执行脚本的时候,不仅会导入path环境变量中的…

python中导入模块使用哪个关键字_关于python导入模块的关键字介绍

关于python导入模块的关键字介绍 发布时间:2020-04-17 10:13:26 来源:亿速云 阅读:101 作者:小新 今天小编给大家分享的是关于python导入模块的关键字介绍,很多人都不太了解,今天小编为了让大家更加了解pyt…

【Python问题】Python 导入模块的三种方式ModuleNotFoundError: No module named ‘模块名‘

Python 导入模块的三种方式ModuleNotFoundError: No module named 模块名 问题一、Python解释器查找模块文件的过程。二、解决方法记录一下 大家可以参考这个文档的解释很清楚:python导入模块的三种方式超详细http://c.biancheng.net/view/4645.html 问题 写程序i…

python怎么导入数学模块_python怎么导入模块

python中的模块即.py文件,模块的导入方式通常有两种:1是直接使用import语句导入;2是使用from..import..结构引入。 使用 import 导入模块的语法,但实际上 import 还有更多详细的用法,主要有以下两种:import 模块名1 [as 别名1], 模块名2 [as 别名2],…: 导入整个模块。…

python如何导入模块中的类_python导入模块中类的方法

自定义标题 python导入模块中类的方法 1、导入模块中的单类 2、一个模块中存储多个类时导入的方法 3、导入模块中所有类的方法 4、导入模块中的类时把类使用as取一个别名 python导入模块中类的方法 1、导入模块中的单类 》创建模块 #file:person.py class Person(): def __init…

python之模块导入及模块导入路径

一、从模块导入对象 1、import 模块名 [as 别名]。 也可以一次导入多个模块,多个模块之间用逗号隔开 (1)导入格式: import 模块名 [as 别名] (2)使用方法:使用时要在对象前面加上模块名作为前…

python无法导入模块_python导入模块失败的原因是什么

py执行文件和模块同属于同个目录(父级目录),才能直接import模块:如果不在同一目录,可以在python环境下使用sys.path.append(path)添加相关的路径,但在退出python环境后自己添加的路径就会自动消失! 模块 1、模块的定义: 为了编写可维护的代码,我们把很多函数分组,…

测绘——AutoCAD教育版打印戳去除

我们在使用CAD和Cass进行画图的时候,有时会参照一些老图,一些老图数据是使用教育版CAD绘制的,复制或插入均会导致我们的数据在每次打开是都会提醒检测到教育版打印戳记 (Fig. 1),以及在打印时也会看到。当我…

AutoCAD LT 2022下载及教程

资源地址:AutoCAD LT 2022 Autodesk AutoCAD LT 2022是一款功能强大的专业计算机辅助软件,有了该软件用户可以更快更精准的创建2D模型,该软件拥有完整的2D命令并允许用户创建工程图,对其进行修改并发布项目的工作文件。同时还提供…

教育版AutoCAD下载开启,你知道吗?

你知道,学生和教师可以免费获取AutoCAD吗?只要符合条件,学生和教师就可免费获得 Autodesk 产品和服务的一年期教育版访问权限。那你知道该如何获取和下载吗? 以下就是教育版AutoCAD下载需要注意的事项,本篇将会从安装…

国产在线三维云CAD:CrownCAD (在线建模CAD软件)

云CAD就是在线建模CAD软件,即打开浏览器就可以进行建模的软件。云CAD可以部署在公有云,也可以部署在私有云。 尤其是可以在国产芯片和国产操作系统上运行,所以非常适合于自主可控要求高的领域。具备云存储、云计算、多终端、多人协同设计等优…

【去除教育】去除打印教育戳记插件

添加公众号:“第一设计群” 去教育打印戳记插件 去除教育版戳记插件,可以避免在打印时候图纸出现这个戳记,对图纸造成一些美观的影响。相信很多朋友都遇到过这个问题: 使用方法 1、下载插件到电脑任意位置 2、打开CAD、新建空白文…

【Windows驱动篇】解决Windows驱动更新导致AMD Software软件无法正常启动问题

【Windows驱动篇】解决Windows驱动更新导致AMD Software软件无法正常启动问题 【操作前先备份好电脑数据!!!设置系统还原点等,防止系统出现问题!!!谨慎请操作!】 【操作前先备份好…

原创:CAD批量去除教育版戳记

批量去教育版戳记网上给出的方法及搜索到的软件基本都不能用,最好的方法是,把 DWG 文件转换为 DXF 文件,后再转换回来。所以首先我们需要把 DWG 文件转换为 DWF 文件,步骤如下 1.下载Acme CAD Converter,完成后打开&am…

CAD插件学习系列教程(七) 去除CAD教育版戳记 (两种方法)

AutoCAD分为商业版和教育版两个版本,教育版为防止图纸作作商业用途,在打印CAD图纸的时候,会添加教育版戳记。 打开有CAD教育版戳记的图纸,打开的时候会出现“此图形将显示一则消息‘由Autodesk教育版产品生成’。是否继续&#x…