一、mongoDB安装
1.安装包下载
http://dl.mongodb.org/dl/win32/x86_64
注:官方下载选择不了包,上述这个网址全面一点,选择下载了.msi
2.安装到自己的想要存放的路径
注:忘记安装好的目录下面是不是有data和log了,不过没有关系之后再创建就好了,现在看下一步操作。
3.启动服务(以下二选一)
1.命令行下运行mongoDB服务
d:\mongodb\bin\mongod --dbpath d:\mongodb\data --logpath d:\mongodb\log\mongod.log
注:本人安装在了d盘,–dbpath是指存放数据库的位置,–logpath是指存放日志文件的位置,都是可以自己指定的,没有文件可以创建。之后我们例外再开一个cmd在d:\mongodb\bin下输入mongo即可,或者输入完整的路径也是可以的。
2.配置mongoDB服务(在服务下可以看到)
1.创建配置文件或者修改配置文件
注:配置文件的存放随意,因为会在命令行下输入完整的路径。也可以用在bin目录里面的mongod.cfg。
storage:
dbPath: D:\mongoDB\data
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: D:\mongoDB\log\mongod.log
2.安装mongodb服务
d:\mongodb\bin\mongod.exe --config "d:\mongodb\bin\mongod.cfg" --install
在这之后服务里面就会出现mongodb的服务了。当然也可以添加–serviceName --serviceDisplayName
3.启动mongodb服务
net start MongoDB
二.副本集+分片的搭建
1.知识点介绍
复制是为了冗余,副本集关键在与创建服务的时候要定义–replSet以及端口 --port,一个副本集的名称都是相同的。
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"或者更改配置文件,添加副本集的名称replSet=repl再启动mongod
随后在任意一个服务器中登入shell,进行初始化配置
config={
_id : “副本集名称”,
… members : [
… {_id : 0, host : “127.0.0.1:27017” },
… {_id : 1, host : “127.0.0.1:27018” },
… {_id : 2, host : “127.0.0.1:27019” }
… ]
…}
rs.initate(config)
注:在一台电脑上搭建副本集时,本人使用的是同一个IP地址不同的端口号。查看了别人的文章,感觉在实际运用中是不同的IP地址使用同一个端口号搭建副本集。一台电脑上操作的话需要用到虚拟机。
分片是为了解决处理数据能力不足的问题,让多台机器一起工作。
注:本人在一台机器上需要准备三个分片,三个config server,一个route server。实际运用中会存在多台机器,每一台机器上是两个以上分片,一个config server,一个route service。而且现在版本要求不能是单独的一个分片服务器,需要是副本集(也就是上面的操作,不同的IP地址同一个端口号连接在一起)。
分片启动就是和普通启动是一样的,可以添加一个–shardsvr。config启动也是和普通启动一样,可以添加一个–configsvr。(同上,不管是在命令行里面添加还是在配置文件中添加都可以)
分片中最重要的是路由服务器。命令如下:
mongos --port 40000 --configdb localhost:27100,ocalhost:27101,localhost:27102 --logpath=D:/mongoDB/shard/log/route.log
mongo --port 40000
执行以下命令,添加分片到集群
>db.addShard("集群的地址+端口号")
>db.runCommand({ enablesharding:"test" }) #设置分片存储的数据库
>db.runCommand({ shardcollection: "test.log", key: { id:1,time:1}})(有文章看到id:hashed分片更均匀)。
之后就是输入数据测试了。
参考文章地址:
https://www.runoob.com/mongodb/mongodb-sharding.html
https://www.cnblogs.com/ityouknow/p/7344005.html(强烈推荐)
https://www.jianshu.com/p/d5e693f99760(推荐)