文章目录
副本集在实际操作中,存在许多问题,最主要的问题是如何配置路径。在命令提示符里,总是由于没有空格、缺少字符或路径不匹配等小问题导致无法运行出结果。我们在初学阶段,在服务器上安装Mongod实例来尽可能多地保持成员之间的分离,就可以通过一台计算机来模拟副本集。以下为副本集管理操作的四个过程,希望能对大家提供帮助。
运行环境准备
一、安装MongDB
1.此处使用的MongoDB 3.4.4版本(可以降低错误,适合的版本比最新版本更优);
下载地址: https://www.mongodb.com/try
2.在D盘建立安装路径D:\MongoDB\data,在data下创建db和log子文件夹,分别用于存放数据库文件和日志;
3.安装过程
(1)打开MongDB 3.4.4 2008R2Plus SSL(64 bit) Setup安装包,单击next;
(2)选择I accept the terms in the License Agreement;
(3)先选择Custom再选Browse,选择安装路径为D:\MongoDB\data,单击next;
(4)单击install,开始安装,最后单击finish完成安装。
基于此,MongDB安装完成,接下来设置MongDB自启动,一共有两种方法。
二、自启动MongoDB(以管理员身份运行命令提示符)
1.一次性
C:\Windows\system32>cd /d d:\mongodb\data\bin
d:\mongodb\data\bin>mongod -dbpath "d:\mongodb\data\db"
2.永久性
C:\Windows\system32>cd /d d:\mongodb\data\bin
d:\mongodb\data\bin>mongod --dbpath "d:\mongoDB\db" --logpath "d:\mongodb\log\MongoDB.log" --install --serviceName "MongoDB"
d:\mongodb\bin>net start MongoDB
设置后,打开MongoDB,会出现如下界面:
主从节点的建立
在单机环境下,需要建立一个主节点和两个从节点,将MongDB里面的bin文件夹复制到MongoDB1和MongoDB2里面,分别在MongoDB1和MongoDB2里建立db、log文件夹。如下:
1.三个文件夹部署清单
节点 | IP地址 |
主节点 | 127.0.0.1:27017 |
存放路径 | d:\mongodb\data\db\ d:\mongodb\data\log\mongod.log |
从节点 | 127.0.0.1:27018 |
存放路径 | d:\mongodb1\db\ d:\mongodb1\log\mongod.log |
从节点 | 127.0.0.1:27019 |
存放路径 | d:\mongodb2\db\ d:\mongodb2\log\mongod.log |
2.配置mongod.yaml
(1)将mongod.yaml置于三个文件夹的bin文件夹下,以下为MongDB的mongod.yaml文件。
systemLog:
quiet: false
path: /MongoDB/data/log/mongod.log #修改的地方,注意每个同学不一样
logAppend: false
destination: file
#processManagement:
#fork: true #修改的地方 #是守护进程在后台运行。
#pidFilePath: /mongodb/mongod.pid #修改的地方 #指定进程的ID,与--fork配合使用,不指定则不会创建。
net:
bindIp: 127.0.0.1
port: 27017
maxIncomingConnections: 65536
wireObjectCheck: true
ipv6: false
storage:
dbPath: /MongoDB/data/db #修改的地方
indexBuildRetry: true
journal:
enabled: true
commitIntervalMs: 100 #修改的地方
directoryPerDB: false
engine: mmapv1
syncPeriodSecs: 60
mmapv1:
quota:
enforced: false
maxFilesPerDB: 8
smallFiles: true
# journal:
# commitIntervalMs: 100 #修改的地方
wiredTiger:
engineConfig:
cacheSizeGB: 8
journalCompressor: snappy
directoryForIndexes: false
collectionConfig:
blockCompressor: snappy
indexConfig:
prefixCompression: true
operationProfiling:
slowOpThresholdMs: 100
mode: off
replication: #放开注释
oplogSizeMB: 10240
replSetName: rs0
secondaryIndexPrefetch: all
#sharding:
# clusterRole: shardsvr
# archiveMovedChunks: true
(2)MongoDB1和MongoDB2的mongod.yaml与MongoDB类似,可直接复制,但需要修改路径(用Notepad3打开mongod.yaml并修改,可在官网自行安装),修改成如下所示:
(3)启用mongod.yaml文件
mongod -config mongod.yaml //mongod.yaml一定要在bin文件路径下
安装从节点集群
1.关闭服务
d:\mongodb\data\bin>NET stop MongoDB //若无运行实例,无需执行该命令
2.MongoDB(以管理员身份运行命令提示符)
C:\Windows\system32>cd /d D:\MongoDB\data\bin
D:\MongoDB\data\bin>mongod --port 27017 -dbpath "D:\MongoDB\data\db" -logpath "D:\MongoDB\data\log\MongoDB.log" -replSet rs0
结果:
C:\Windows\system32>cd /d D:\MongoDB1\bin
D:\MongoDB1\bin>mongod --port 27018 -dbpath "D:\MongoDB1\db" -logpath "D:\MongoDB1\log\MongoDB.log" -replSet rs0
结果:
4.MongoDB2(以管理员身份运行命令提示符)
C:\Windows\system32>cd /d D:\MongoDB2\bin
D:\MongoDB2\bin>mongod --port 27019 -dbpath "D:\MongoDB2\db" -logpath "D:\MongoDB2\log\MongoDB.log" -replSet rs0
结果:
注意:到此为止,节点集群配置完毕,在三个命令提示符打开的情况下,就可以开始下一步了。不过由于每个人的路径防止可能不同,所以在写法上也会有细小差别。以我的MongoDB路径为例,我的路径存放位置如下:
所以我的写法为:
以此类推可以得到MongoDB1和MongoDB2的安装路径,这一步非常重要,如果出错,后续内容将无法进行。所以应该看清楚自己的路径,不可盲目复制。
设置集群配置文件
打开MongoDB,依次输入以下内容:
use admin
结果:
config = { _id:"rs0" , members: [
{ _id:0,host:"localhost:27017","priority":3},
{ _id:1,host:"localhost:27018","priority":2},
{ _id:2,host:"localhost:27019","priority":1}
]
}
结果:
rs.initiate(config)
结果:
rs.status()
结果:
到此为止,副本集管理操作的全部过程演示完毕。总结一点就是一定要细心,路径配置是最麻烦的,如果出错,会得不到结果..... 再一个就是命令提示符,需要以管理员身份运行。由于本人也是初次接触,所以以上内容均为个人学习经验,希望能对你有所帮助。