mongod.linux创建conf文件件为什么找不到

MongoDB配置文件说明
管理员和用户可以控制mongod或实例在运行时可以直接从或使用配置文件修改。
虽然这两种方法在功能上等同,且所有设置均类似的,配置文件的方法是可取的。如果您从包中,并已开始安装MongoDB的使用系统的
,你已经在使用一个配置文件。
要启动mongod或使用一个配置文件,请使用下列形式之一:
mongod --config /etc/mongodb.conf
mongod -f /etc/mongodb.conf
mongos --config /srv/mongodb/mongos.conf
mongos -f /srv/mongodb/mongos.conf
在这个文件中声明的所有设置,使用下面的表格:
新的2.0版本中: 在版本2.0 之前 ,布尔值(如TRUE |
FALSE)或“标志”参数,注册为true,如果它们出现在配置文件,不论其价值。
默认值:false
增加了大量的内部报告返回标准输出或日志文件中所产生的
默认值:false
另一种形式。
默认值:false
额外增加的输出和日志记录的详细程度。
默认值:false
额外增加的输出和日志记录的详细程度。
默认值:false
额外增加的输出和日志记录的详细程度。
默认值:false
额外增加的输出和日志记录的详细程度。
默认值:false
在一个安静的运行的mongod或实例模式,试图限制输出量。此选项抑制:
输出,包括的
,dropIndex,
复制活动。
连接接受事件。
连接关闭的事件。
默认值:27017
为mongod或指定的TCP端口&监听客户端连接的实例。UNIX-like系统号低于1000的端口需要root权限。
Default: All interfaces.
将此选项设置为配置mongod进程绑定和监听连接从这个地址上的应用程序。您可以连接mongod&或情况下,以任何接口,但是,如果你附加的过程中可公开访问的接口,实现正确的身份验证或防火墙的限制,以保护你的数据库的完整性。
您可以连接一个逗号分隔的值列表绑定mongod多个IP地址。
默认值:取决于系统(即的ulimit和文件描述符)限制除非设定的MongoDB不会限制其自己的连接。
指定一个值来设置最大数量的同时mongod或连接在环境法院听证会期间,法官和环境委员会在之前证据基础上,完全重新考虑整个申请。此设置没有任何影响,如果是高于你的操作系统的配置的最大连接跟踪.threshold
为这是特别有用的,如果你有一个客户端创建一个集合,但允许他们超时,而不是关闭的藏品。当您设定
,确保该值是略高于连接池的大小,或总的连接数从传播的成员来防止错误连接尖峰的群集中。
默认值:false
设置为true,强制mongod来验证所有的请求从客户端,以确保在收到无效的&对象永远不会插入到数据库中。mongod&不启用此默认情况下,因为所需要的开销。
默认值:无。 (即为/ dev / stdout中 )
指定的日志文件,该文件将保存所有的文件名的路径诊断日志记录信息。
除非另有规定,mongod将所有的日志信息输出输出到标准输出。除非是真实的,日志文件将被覆盖时重新启动的过程。
目前,MongoDB中的日志文件的内容将覆盖如果不使用
。这种行为可能改变的结果取决于在未来
默认值:false
如果设置为true,则添加新条目的日志文件,而不是覆盖日志的过程重新启动时,内容的。
如果未指定此设置,然后MongoDB的覆盖现有的日志文件在启动时。
在不久的将来可能会改变的行为记录系统未来的情况下。
所有的日志输出发送到主机的系统,而而不是标准输出或日志文件和
您不能使用与
pidfilepath
默认值:无。
指定文件的位置举行的“
“或进程IDmongod进程。有用跟踪mongod过程中的结合的设置。
如果没有这个选项,mongod创建PID文件。
默认值:无。
指定的密钥文件的路径存储身份验证的信息。此选项只适用于之间的连接副本集的成员。
nounixsocket
默认值:false
设置为true,禁用侦听的UNIX插座上。除非设定为false,mongod和提供Unix套接字。
unixSocketPrefix
默认值 :/ tmp目录
指定的UNIX套接字的路径。除非此选项的值,mongod
,创建一个套接字/ tmp作为前缀。
默认值:false
如果设置为true,则启用模式mongod,运行过程中的背景。
默认值:false
如果设置为true,则启用数据库用户身份验证来自远程主机的连接。配置用户通过Shell如果没有用户,本地主机接口将继续对数据库的访问,直到你创建的第一个用户。
默认值:false
设置为true,强制mongod提交一次报告4秒的CPU使用率和的时间量,所述处理器等待I /
O操作完成(即I / O等待。)MongoDB中写道:如果使用的数据输出到标准输出或日志文件选择。
Default: /data/db/
将此值设置为指定的一个目录的mongod&实例来存储其数据。典型的地区包括:的/ srv /
mongodb的的/ var / lib中/ mongodb的或者/ opt / mongodb的
除非另有规定,mongod将寻找数据文件中的默认的/数据/ db目录中。(Windows系统下使用\
DATA \ db目录中。)如果您已安装包中输入SQL查询。检查的/ ETC /
mongodb.conf中提供的文件你的包看的的配置。
创建一个非常详细的故障排除和记录各种错误。在MongoDB中写入这些日志文件目录中的字符串开头的一系列文件,diaglog启动的时间记录追加为十六进制string.
此设置的值配置水平详细度可能的值,其影响如下:
折!没有记录。
日志写操作。
日志读取操作。
日志读取和写入操作。
日志写入和一些读操作。
重播输出,您可以使用mongosniff的工具进行调查。一个典型的diaglog文件,位于/
data/db/diaglog.4f76a58c,你可以使用一个命令,在以下表格来读取这些文件:
mongosniff --source DIAGLOG
/data/db/diaglog.4f76a58c
是供内部使用,不用于最用户。
的诊断级别设置为0,将导致mongod&停止的文件写入数据。但是,该的mongod实例将继续保持打开该文件,即使它不再将数据写入到该文件。如果你想重命名,移动或删除诊断日志,你必须完全关闭在这样做之前下来的mongod实例。
directoryperdb
默认值:false
设置为true,修改的数据目录中的存储模式每个数据库的文件存储在不同的文件夹中。此选项在命名为每个创建目录
directory.
在您的文件系统和设备的结合使用此选项MongoDB的配置,以便将数据存储在若干不同的磁盘设备的写入吞吐量增加或磁盘容量。
Default: (on 64-bit systems) true
Default: (on 32-bit systems) false
如果设置为true,则启用操作日志,以确保写耐用性和数据的一致性。
设置为false,以防止日志的情况下的开销在耐用性不是必需的。为了减少影响,日志的磁盘使用情况,您可以将&启用,并设置为true,以降低的大小数据和日志文件。
journalCommitInterval
默认值:100
将此值设置为指定的时间上限mongod之间所允许的日志操作。默认的值是100毫秒。值越低,增加耐用性杂志上,在尽可能低的代价的磁盘性能。
此选项接受2和300毫秒之间的值。
要强制mongod更频繁地提交到日志,您可以指定“J:”真实的“。当J:真正的写操作,&待决,,mongod将减少定值的三分之一。
默认值:false
设置为true,对IPv6的支持,允许客户端连接到mongod
mongod禁止使用IPv6的网络。mongod和所有的工具在默认情况下的IPv6的支持。
默认值:false
如果设置为true,则允许通过HTTP访问界面考虑安全问题,使这活动设置此选项之前。
默认值:true
禁用身份验证。目前默认值。为未来而存在兼容性和清晰度。
为了保持一致性,使用的选项。
nohttpinterface
默认值:false
设置为true,禁用HTTP接口。此命令将覆盖
,禁用HTTP接口,如果你同时指定。
在2.1.2版更改: 选项是不可用情况下才2.1.2
默认值:(64位系统)假
默认值:(32位系统)的真实
设置带有nojournal =
true来禁用持久性日志。通过默认情况下,mongod可以在64位版本的日记后2.0。
noprealloc
默认值:false
设置noprealloc = true来禁用预分配的数据它的格式与 shell 的路径设置一样:
冒号分割多个路径名(windows环境使用分号分割).这将缩短启动时间在某些情况下,但可以在正常操作过程中,会导致显着的性能损失。
noscripting
默认值:false
设置noscripting = true来禁用脚本引擎。
notablescan
默认值:false
设置notablescan = true来禁止操作需要表扫描。
默认值:16
指定此值(以MB为单位)。
使用此设置来控制所有新创建的默认大小命名空间的文件(即NS)。此选项有没有影响现有的命名空间的文件的大小。
默认值是16兆字节,这提供了有效的12000可能的命名空间。的最大大小为2 GB。
修改此值水平的数据库分析,经营业绩的信息插入到输出mongod或指定的日志文件,如果
。以下级别可供选择:
关。无分析。
开仅包括较慢的操作。
开包括所有的操作。
默认情况下的mongod禁用分析。数据库分析可能会影响数据库的性能,因为探查器必须记录并处理所有的数据库操作。启用此选项后,才慎重考虑。
默认值:false
设置为true,
以使最高限额为数字数据文件每个数据库都可以有。默认的配额是8个数据文件,当配额是真实的。调整配额大小的设置。
quotaFiles
修改限制每个数据库的数据文件的数量。此选项需要设置。
默认值:false
如果设置为true, 以使一个简单的接口。
默认值:false
设置为true,执行修复程序后对所有数据库起动一般来说,你应该在命令行上设置此选项而不是在或在
使用选项来访问功能。
因为mongod重写所有的数据库文件在维修过程中程序,如果你不运行&mongod通常运行在相同的用户帐户,您的数据库文件,您将需要运行
chown纠正的权限,然后再次启动mongod。
repairpath
指定的路径MongoDB的数据文件所在的目录,使用与设置一起或操作。默认的价值指定
默认值:100
指定以毫秒为单位的值。
设置的门槛mongod考虑查询的“慢”数据库中探查。该数据库记录了所有的查询速度慢日志,即使当探查未启用。当数据库分析器是,mongod分析器写入system.profile集合。
smallfiles
默认值:false
设置为true,修改MongoDB的使用较小的默认数据{0}file{/0}{1}.size(){/1}具体来说, 降低了初始用于数据文件和它们限制到512的大小兆字节设置也降低每个的大小
1千兆字节到128兆字节的文件。
如果你有大量的数据库,使用设置各自持有少量的数据。设置导致mongod创建很多文件,这可能会影响更大的数据库的性能。
预设值:60
此设置控制之间的最大秒数刷新待写入到磁盘中。而mongod总是将数据写入磁盘,该设置控制了最大的保证一个成功的写操作和下一次之间的间隔数据库刷新数据到磁盘上。
在许多情况下,实际的时间间隔之间的写操作和磁盘刷新比的值是更短的
如果设置为0,mongod刷新到磁盘上的所有操作立即,可以具有显着的性能的影响。IF是真实的,所有的写操作将是持久的,通过该杂志由指定的时间内
默认值:false
当设置为true,mongod返回诊断系统关于页面大小的信息,物理页的数目,可用的物理页面输出到标准输出。
更典型地,执行此操作的方式的&当运行的
,mongod只输出的页面信息,没有数据库过程将开始。
默认值:false
当此选项设置为 true升级磁盘上的数据格式由到最新指定的文件版本,如果需要的话。
此选项仅影响操作的mongod数据文件是在一个旧的格式。
指定的实例时,该选项将更新使用元数据格式。
在大多数情况下,你不应该设置这个值,这样你就可以行使最大程度地控制您的升级过程。请参阅MongoDB的
(下载页面)有关升级过程的更多信息。
traceExceptions
默认值:false
对于使用内部诊断。
默认值:&&/EM&无&
使用此设置来配置复制的副本sets指定副本组的名称作为参数,这一套。所有主机必须具有相同的组名称。
复制操作指定的最大大小(以兆字节为单位)日志(例如
)。mongod创建一个oplog的基础上的最大可用空间量。对于64位系统,oplog一般是5%的可用磁盘空间。
一旦mongod已为先创建的oplog时间,改变不会影响的大小oplog。
默认值:false
在复制的情况下,设置此选项为true,如果你已经接种了该副本的快照的另一名成员的集合。否则,mongod将尝试执行完全同步。
如果数据还没有完美的同步和&mongod与开始,然后中学或从站将永久不同步小学,这可能会导致显着的一致性问题。
replIndexPrefetch
新的2.2版本中。
默认值: 所有
值: 所有 , 没有,_id_only
您,必须使用在配合
默认情况下, 的成员加载到内存中的所有相关指标的操作前应用的oplog操作。您可以修改此行为,以便辅助将只加载的_id指数。指定_id_only或没有
,以防止mongod任何索引加载到内存中。
默认值:false
设置为 true配置作为当前实例复制配置中的实例中。
默认值:false
设置为 true配置作为当前实例例如,在复制配置。
Default: &&
的设置指定实例,
实例将复制
Default: &&
选项, 只设置与使用仅指定一个单一的进行复制。
slavedelay
的设置与使用,slavedelay设置在几秒钟内配置一个“延迟”,该从站等待申请从实例操作。
autoresync
默认值:false
使用的设置,设置autoresync如果真给力的
,自动重新同步超过10秒,后面的主。该设置可能问题,如果&太小“(控制的选项。)如果并不大足够的存储高手之间的差异目前的状况和状态的奴隶,这种情况下会强制重新同步本身是不必要的。当你设置&选项,从站将不会尝试自动重新同步多一旦在10分钟内。
分片群集选项
默认值:false
将此值设置为true,配置mongod&实例操作的的碎片n.束,组;n.组,簇mongod使用此选项的默认端口27019
mongod写的所有的数据文件/ configdb的子目录的目录的。
默认值:false
将此值设置为true,配置mongod&例如在一个分区的簇的碎片。的默认端口这种情况下是27018。
noMoveParanoia
默认值:false
当设置为true, 禁用“偏执模式”的数据块迁移操作中写道。請參閱和命令的文档了解更多信息。
默认情况下,,mongod将节省迁移数据块的副本“从”服务器迁移过程中的“偏执模式”。设置此选项禁用此偏执狂。
默认值:无。
格式 :, &:端口&,
设置此选项来指定配置数据库(即
。你开始了调查分析仪,必须指定配置服务器或3配置服务器,以逗号分隔的列表。
此设置只影响过程。
默认值:false
只有运行单元测试不会启动的实例。
此设置只影响进程,并为只使用内部测试。
默认值:64
此选项的值的大小决定了每&各地的分布的数据。默认的值是64兆字节。较大的块可能会导致不均匀的分布的数据,而较小的数据块可能会导致频繁和不必要的迁移。然而,在某些情况下,它可能是需要设置不同的块大小。
此设置只影响过程。除此之外,在初始化时,
只设置块大小为第一次的群集。如果你修改了运行时选项后,新的值将没有任何效果。请参阅“
“的过程,如果你需要改变的块大小,在现有的片式集群。
localThreshold
新的2.2版本中。
影响程序的逻辑:Mongos的&使用时,选择成员通过读取操作从客户端。指定一个值以毫秒为单位。默认值是15,其对应于所有的客户端中的默认值。
此设置只影响过程。
当接收到一个请求,允许读取会员,
找到最近的合适的设置,成员的ping时间。
构建副本集成员的列表,是在平最近的合适成员,时间为15毫秒S
如果你指定值
,将构建的副
本成员名单此值所允许的延迟内。
会选择一个成员,从在读从这个名单中随机。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
mongodb是通过brew下载的,在/usr/local/etc下有个mongod.conf配置文件。
现在我想通过命令mongod --config /usr/local/etc/mongod.conf 来启动mongod 。
提示错误Error reading config file: No such file or directory
找不到文件。
新手刚刚学习mongodb希望能有人帮忙解决问题。
来源: MongoDB 技术问答
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
题主貌似写错了文件名了。是 mongod.conf,不是mongodb.conf。mongod --config /usr/local/etc/mongod.conf
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
--config 没有这个参数啊
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
mongod.conf文件格式应该是conf文件,你是不是创建的txt格式文件
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
参考:/usr/local/etc/mongod.conf 中的内容是可以自己定义这些路径的
该答案已被忽略,原因:
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:博客分类:
Mongodb配置文件配置:
第一步:在“D:\Mongodb”目录下新建一个文件,命令方式不限,例如新建一个mongodb.conf
第二步:在mongodb.conf中配置我们需要的配置项
关于具体的配置项,我们可以通过bin\mongod --help命令来确定我们需要配置的配置项
在配置文件中采取key=value的格式,key代表需要配置的options,value代表对应的参数,如果没有参数的则对应的value为空
例如我们在mongodb.conf中配置如下:
dbpath=D:\Mongodb\data
logpath=D:\Mongodb\log\Mongodb.log
logappend=
详细说明:
dbpath代表Mongodb数据库对应的目录,参数对应值为D:\Mongodb\data
logpath代表日志文件的文件路径,参数值就是文件路径的值
logappend代表Mongodb的日志信息在日志文件中累加而不是覆盖,没有参数值,所以value为空
journal代表启动日志,没有参数值,所以value为空
jsonp代表允许通过http方式来访问jsonp格式数据,没有参数值,所以value为空
通过配置文件来启动服务 :
第一步:首先通过命令行进入Mongodb\bin目录
C:\Documents and Settings\chenzhou&D:
D:\&cd D:\Mongodb\bin
第二步:通过mongod -f arg命令启动服务,arg就是代表该配置文件所在的路径
由于我们把配置文件定义在Mongodb目录下,所以arg值为D:\Mongodb\mongodb.conf
D:\Mongodb\bin&mongod -f D:\Mongodb\mongodb.conf
all output going to: D:\Mongodb\log\Mongodb.log
日志文件的配置:
第一步:首先指定日志文件的目录,例如我们在“D:\Mongodb”目录下新建一个log文件夹,当做日志文件的存放目录
第二步:在“D:\Mongodb\log”下新建一个日志文件,文件名任意取,例如我们定义为Mongodb.log
第三步:日志文件的配置
使用命令配置logpath:mongod --logpath D:\Mongodb\log\Mongodb.log
使用配置文件来配置:在mongodb.conf添加logpath=D:\Mongodb\log\Mongodb.log
浏览 12399
chenzhou123520
浏览: 2888572 次
来自: 北京
update t_goods set status=2 whe ...
问下大神,我想做版本控制,但是为了数据一致性,我想2个修改过来 ...
这算是mybatis的奇巧淫技吗?哈哈哈
虽然已经找到 原因了,但是楼主写的还是很清楚 的
关于主键和索引采用行锁还是表锁,与条件是否等值查询没有绝对关系 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'博客分类:
Mongodb配置文件配置:
第一步:在&D:\Mongodb&目录下新建一个文件,命令方式不限,例如新建一个mongodb.conf
第二步:在mongodb.conf中配置我们需要的配置项
关于具体的配置项,我们可以通过bin\mongod --help命令来确定我们需要配置的配置项
在配置文件中采取key=value的格式,key代表需要配置的options,value代表对应的参数,如果没有参数的则对应的value为空
例如我们在mongodb.conf中配置如下:
dbpath=D:\Mongodb\data&&
logpath=D:\Mongodb\log\Mongodb.log&&
logappend=&&
journal=&&
详细说明:
dbpath代表Mongodb数据库对应的目录,参数对应值为D:\Mongodb\data
logpath代表日志文件的文件路径,参数值就是文件路径的值
logappend代表Mongodb的日志信息在日志文件中累加而不是覆盖,没有参数值,所以value为空
journal代表启动日志,没有参数值,所以value为空
jsonp代表允许通过http方式来访问jsonp格式数据,没有参数值,所以value为空
通过配置文件来启动服务&:
第一步:首先通过命令行进入Mongodb\bin目录
C:\Documents&and&Settings\chenzhou&D:&&
D:\&cd&D:\Mongodb\bin&&
第二步:通过mongod -f arg命令启动服务,arg就是代表该配置文件所在的路径
由于我们把配置文件定义在Mongodb目录下,所以arg值为D:\Mongodb\mongodb.conf
D:\Mongodb\bin&mongod&-f&D:\Mongodb\mongodb.conf&&
all&output&going&to:&D:\Mongodb\log\Mongodb.log&&
日志文件的配置:
第一步:首先指定日志文件的目录,例如我们在&D:\Mongodb&目录下新建一个log文件夹,当做日志文件的存放目录
第二步:在&D:\Mongodb\log&下新建一个日志文件,文件名任意取,例如我们定义为Mongodb.log
第三步:日志文件的配置
使用命令配置logpath:mongod --logpath D:\Mongodb\log\Mongodb.log
使用配置文件来配置:在mongodb.conf添加logpath=D:\Mongodb\log\Mongodb.log&&&
阅读(...) 评论()博客分类:
网上已经有一大堆的设置步骤的了,根据我遇到的问题,整理一下,如下:
首先先去下载一个mongodb最新版,目前最新版应该是2.6
cd /usr/local/bin
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.0.tgz
mongodb-linux-x86_64-2.6.0.tar
mv mongodb-linux-x86_64-2.6.0/ mongodb2.6
先切换到安装目录,再下载,然后解压,最后改名!
mkdir -p /mnt/mongodb/rs/data
mkdir -p /mnt/mongodb/rs/logs
mkdir -p /mnt/mongodb/rs/config
然后再进入/mnt/mongodb/rs/config目录,新建mongod.conf文件,用来启动mongodb,内容如下:
dbpath=/mnt/mongodb/rs/data
#数据存放目录
logpath=/mnt/mongodb/rs/logs/mongod.log
#日志文件目录
pidfilepath=/mnt/mongodb/rs/mongod.pid
#pid端口文件
port=12345
#mongodb端口
logappend=true
#追加方式写日志文件
journal=true
#启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
oplogSize=2048
#同步操作记录文件大小(MB)
smallfiles=true
#使用较小的默认文件
replSet=dbset
#副本集名称,同一个副本集,名称必须一致
保存退出后,再进入到bin目录下执行:
./mongod -f ../mongod.conf
"info" : "Config now saved locally.
Should come online in about a minute.",
即运行mongodb成功。
如果有多台机器的话,只需重复以上步骤。
如果同一个机器的话,则仅需要将mongod.conf文件作出相应的更改,如更改数据,日志,pid文件,端口等,但replSet的名称必须一致。
创建集合
登录到其中一台已经成功运行mongodb的机器,
cd /usr/local/bin/mongodb2.6/bin
./mongo 127.0.0.1:12345/admin
登录进去,输入以下命令:
config={_id : 'dbset',members : [{_id : 1, host : '192.168.0.1:12345'},{_id : 2, host : '192.168.0.2:12345'},{_id : 3, host : '192.168.0.3:12345'}]}
回车后再输入
rs.initiate(config); #初始化副本集
以上例子,说明一共有三台机器做副本集,并可以用rs.help()来查看rs下有什么命令可以用。
退出,再重新登录,发现提示符已经发生变化,再输入rs.status()可以查看当前的状态。
其中:
"health" : 1, #代表机器正常
"stateStr" : "PRIMARY",& #代表是主节点,可读写,其中有以下几下状态
1. STARTUP:刚加入到复制集中,配置还未加载
2. STARTUP2:配置已加载完,初始化状态
3. RECOVERING:正在恢复,不适用读
4. ARBITER: 仲裁者
5. DOWN:节点不可到达
6. UNKNOWN:未获取其他节点状态而不知是什么状态,一般发生在只有两个成员的架构,脑裂
7. REMOVED:移除复制集
8. ROLLBACK:数据回滚,在回滚结束时,转移到RECOVERING或SECONDARY状态
9. FATAL:出错。查看日志grep “replSet FATAL”找出错原因,重新做同步
10. PRIMARY:主节点
11. SECONDARY:备份节点
至此你应该可以看到一台机为primary,二台机器的状态为secondary, 即完成副本集设置
维护:
添加副本,在登录到主节点下输入:
rs.add("ip:port");
rs.remove("ip:port");
前提是这个ip:port必须是使用了同一个relpSet名称的mongodb实例即可
db.addUser("username","password");
需要在主节点和从节点上的local数据库下,建个相同的用户名和密码的用户,可读写。 从节点连接主节点时,会用存储在local.system.users中的用户进行认证,最先尝试用repl用户,若没有,则用local.system.users中的第一个可用用户。(但网上有些人说会对效率产生影响,这个待验证。知道的朋友请跟帖说一下。谢谢!)
问题:
按以上完成后,导入原有数据后,导入命令
mongorestore -h 127.0.0.1:12345 -d syt --directoryperdb /mnt/mongo_data/
其中/mnt/mongo_data为要导入的json文件,后发现从节点都变成recovering状态。
问题原因
出现这个问题的原因主要是secondary节点同步oplog的速度追不上primary几点的速度,造成一直处于recovering状态。
解决办法:
&&& 首先停掉从节点mongod进程,然后删除目录(rs)下面所有的数据,然后重启mongod进程,这里有一点需要注意,如果有arbiter的mongod进程也需要停掉,启动的时候,先启动replSet的mongod进程,再启动arbiter的mongod进程,启动之后,会自动由recovering状态切换为startup2状态,最后切换为secondary状态
第二种办法就是先将recovering节点下的data目录删除,再将primary里的data都拷贝到该节点下,再重启就好了!操作前,务必要停止所有的mongodb数据库!
当正在startup2状态时,可以查看mongodb.log文件,发现正在不断地导入数据。当出现
[rsHealthPoll] replSet member 192.168.0.2:12345 is now in state SECONDARY
时,说明已经完成导入,状态也变为secondary了。
另一个解决办法是:
&&& 先对主节点机器完成数据导入,再设置为副本集的节点,即上述的步骤不需要重复操作。待数据完成导入,再操作
replica set权限认证
权限认证搞了一天,搞书本上说的须在每个节点上的local数据库里加入repl这个用户,然后在启动的时候加入 --auth参数,开启权限认证,如果经过测试,是不行的。不知道是那里出问题,具体情况是:当启动一个是时候,另外的节点就会全部变成"stateStr" : "(not reachable/healthy)"这样的状态。
后来经过长时间的百度,google,还是google给力,说要用到keyFile这个参数,于是上官网那里看,要生一个keyfile文件,用于节点之间权限认证的。按官网的提示作以下操作:
mkdir -p /mnt/mongodb/rs/config
cd /mnt/mongodb/rs/config
openssl rand -base64 741 & mongodb-keyfile
chmod 300 mongodb-keyfile
官网上的是600的,必须要改为300,如果不是的话, 会在启动的时候mongodb.log里写权限太开放的原因导致启动mongodb失败!切记切记!这里也花了不少时间...
这里先确保你已经安装了openssl,如果没有装,yum install openssl
将mongodb-keyfile 个问题复制到每一个节点对应的目录下,如果之前已经启动的mongodb的话,用mongo进入到终端后,先查看那个节点是主节点,rs.status(); 去到主节点下执行:
#选择需要认证的数据
db.addUser('name','password');
当然,也可以某一个自建的库进行权限认证
db.addUser('test','123456');
提示添加成功后,全部停止,每一节点执行db.shutdownServer();然后对mongod.conf文件添加以下两行:
keyFile=/mnt/mongodb/rs/confile/mongodb-keyfile
最后全部重启即可!
进入主节点终端,输入
db.runCommand({getLastError:1, w: N});
如果没有N,或者小于2,命令就会立刻返回,如果N等于2,主节点要等到至少一个从节点复制了上个操作都会响应命令(主节点本身也包括在N里面)。主节点使用local.slaves中存放的"syncedTo"信息来跟踪从节点的更新情况。
当指定"w"选项后,还可以使用"wtimeout"选项,表示以毫秒为单位的超时。getLastError就能在上一个操作复制到N个节点超时时返回错误(默认情况下命令是没有超时的)。
阻塞复制会导致写操作明显变慢,尤其是"w"的值比较大时。实际上,对于重要的操作将其值设置为2或者3就能效率与安全兼备了。
mongod的主要参数有:
------------------------------------基本配置----------------------
# 安静输出
--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)
# 以守护进程的方式运行MongoDB,创建服务器进程
# 启用验证
# 定期显示CPU的CPU利用率和iowait
--dbpath arg
# 指定数据库路径
--diaglog arg
# diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads
--directoryperdb
# 设置每个数据库将被保存在一个单独的目录
# 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
--journalOptions arg
# 启用日志诊断选项
# 启用IPv6选项
# 允许JSONP形式通过HTTP访问(有安全影响)
--maxConns arg
# 最大同时连接数 默认2000
# 不启用验证
--nohttpinterface
# 关闭http接口,默认关闭27018端口访问
--noprealloc
# 禁用数据文件预分配(往往影响性能)
--noscripting
# 禁用脚本引擎
--notablescan
# 不允许表扫描
--nounixsocket
# 禁用Unix套接字监听
--nssize arg (=16)
# 设置信数据库.ns文件大小(MB)
--objcheck
# 在收到客户数据,检查的有效性,
--profile arg
# 档案参数 0=off 1=slow, 2=all
# 限制每个数据库的文件数,设置默认为8
--quotaFiles arg
# number of files allower per db, requires --quota
# 开启简单的rest API
# 修复所有数据库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,不推荐)
# 打印一些诊断系统信息
# 如果需要升级数据库
-----------------------------------Replicaton 参数--------------------
--fastsync
# 从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快照,可用于快速启用同步
--autoresync
# 如果从库与主库同步数据差得多,自动重新同步,
--oplogSize arg
# 设置oplog的大小(MB)
---------------------------------* 主/从参数-------------------------
# 主库模式
# 从库模式
--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
下载次数: 25
浏览 26265
看着挺有技术。可这段,您这文章是自己写的?不懂Linux?文件权限,你一点不了解?官网上的是600的,必须要改为300,如果不是的话, 会在启动的时候mongodb.log里写权限太开放的原因导致启动mongodb失败!切记切记!这里也花了不少时间... 600是对的。 读写权限。其实那文件只读就可以了。可是这300,写跟执行?没用处吧。如果我没记错的话,log里的确是报这个异常的,你可以试试
浏览: 754646 次
来自: 被遗忘的角落...
今天刚遇到这个问题,正好解决了,谢谢!
你的问题怎么解决的,我的是出现了部分回滚的情况。我这边的情况是 ...
最后一句话救了 我
DEFAULT_ERROR(10000, & ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 conf文件怎么打开 的文章

 

随机推荐