MongoDB分片集群_windows示例

来源:互联网 发布:淘宝详情图怎么上传 编辑:程序博客网 时间:2024/06/08 08:33

最近学习了下MongoDB,也在网上看了别人的博客,也买了书看了下,自己只有windows系统,就在自己的电脑上玩了下,现在把过程写下来记录下,当然也希望能帮到他人。

一、下载安装就不用说了吧,从官网下载下来直接解压出来就可以用了。

二、分片集群说明:

1、在一台电脑上模拟集群,就无所谓用哪个盘了,我全部用的E盘

2、一个mongos这个是入口,所以一般是默认的端口:27017

      一个config服务器:端口也用默认的:27019

      2个分片,每个分片3个备份:shard1/127.0.0.1:27018,127.0.0.1:27028,127.0.0.1:27038  和  shard2/127.0.0.1:27020,127.0.0.1:27030,127.0.0.1:27040

      备份要用奇数个数的服务器,所以最少要弄3个备份服务器。用两个的话跟一个一样,只要挂掉一个这个分片就不能用了

三、进入正题

1、按上面说明创建mongo日志目录,在e:/data/db/下依次创建27018,27028,27038,27020,27030,27040,27019文件夹

2、启动,依次执行下面命令,启动分片、备份、config、mongos,命令行shell启动方法:打开mongodb的安装解压目录,按住左shift键点击鼠标右键,选择“在此处打开命令窗口”,就可以直接运行下面的命令了,下面每条命令都需要一个新的命令窗口

mongod.exe --port 27018 --dbpath e:/data/db/27018 --replSet shard1 --shardsvrmongod.exe --port 27028 --dbpath e:/data/db/27028 --replSet shard1 --shardsvrmongod.exe --port 27038 --dbpath e:/data/db/27038 --replSet shard1 --shardsvrmongod.exe --port 27020 --dbpath e:/data/db/27020 --replSet shard2 --shardsvrmongod.exe --port 27030 --dbpath e:/data/db/27030 --replSet shard2 --shardsvrmongod.exe --port 27040 --dbpath e:/data/db/27040 --replSet shard2 --shardsvrmongod.exe --port 27019 --dbpath e:/data/db/27019 --configsvrmongos.exe --port 27017 --configdb 127.0.0.1:27019

3、上面只是创建了mongodb实例,分配备份集群

1)打开新的命令窗口执行命令:

mongo.exe 127.0.0.1:27018/admin
进入到分片1某一个实例的admin数据库,进到一个实例就好,随便找一个就行,不用每个都进,然后执行命令:

config = {_id:"shard1",members:[{_id:0,host:"127.0.0.1:27018"},{_id:1,host:"127.0.0.1:27028"},{_id:2,host:"127.0.0.1:27038"}]}
接着执行:

rs.initiate(config)

上面这个命令执行时间可能会久一点,要耐心等待下,执行完会有{"ok":1}出现

2)打开新的命令窗口执行命令:

mongo.exe 127.0.0.1:27020/admin
进入到分片2某一个实例的admin数据库,进到一个实例就好,随便找一个就行,不用每个都进,然后执行命令:

config = {_id:"shard2",members:[{_id:0,host:"127.0.0.1:27020"},{_id:1,host:"127.0.0.1:27030"},{_id:2,host:"127.0.0.1:27040"}]}
接着执行:

rs.initiate(config)

上面这个命令执行时间可能会久一点,要耐心等待下,执行完会有{"ok":1}出现

4、备份集群搞好后,在mongos执行命令确定分片实例及分片的数据库及集合

打开新的命令窗口执行命令:

mongo.exe 127.0.0.1:27017/admin
进入到mongos,然后执行命令确定要分片的mongodb实例

db.runCommand({addShard:"shard1/127.0.0.1:27018,127.0.0.1:27028,127.0.0.1:27038"})db.runCommand({addShard:"shard2/127.0.0.1:27020,127.0.0.1:27030,127.0.0.1:27040"})

确定启用分片的数据库为jason及集合为jason库中的user集合,以及分用分片的字段为name:

db.runCommand({"enableSharding":"jason"})db.runCommand({"shardCollection":"jason.user","key":{"name":1}})

注意:命令中使用了”数据库名.集合名“,而非直接”集合名“

5、已经完成,可以使用了,启用新窗口,执行命令:mongo.exe 127.0.0.1:27017/jason,可以在user集合中进行增删查改操作了


四、关于备份

要删除或者增加备份服务器,只需要连接备份服务器的master服务器(备份服务器中的一个,非mongos服务器),并用命令rs.add()或者rs.remove()操作即可


0 0
原创粉丝点击