您的位置:首页 > 数据库

mongo数据库分片技术的实现

2012-06-28 17:17 232 查看
近期在使用mongod数据库时,由于数据量较大,每天数据量达到近亿条数据,所以采取了mongo数据库的分片技术,这里对这几天下来的开发做个总结。

下面以分两个分片进行说明,如果要进行分两片,那么必须要有四个目录,每个目录都要有

MongoDB的实例,其中两个用于存储数据,一个用于配置服务器,一个用于mongos服务器的启动,而我们(客户端)与数据库打交道即是通过mongos服务器进行的。原有配置的27017接口,即是mongos服务器配置的默认端口。

1:启动d盘的mongo数据库,这个是当做一个分片来用,保存数据,注意data后面的\不能丢,后面的都类似

d:\mongodb-27020\mongodb\bin\mongod --dbpath d:\mongodb-27020\data\ --port 27020 -shardsvr

如果想当做服务器来使用,则使用下面的代码,在这里要注意—dbpath的值,下面显示的就是红色方框中的字体

2:启动E盘的mongo数据库,这个是当做第二个分片来用,保存数据

E:\mongodb-27020\mongodb\bin\mongod --dbpath d:\mongodb-27021\data\ --port 27020 –shardsvr
–directoryperdb -install

3:启动F盘的配置服务器

F:\mongodb-27022\mongodb\bin\mongod --dbpath F:\mongodb-27022\data\ --port 27022 -configsvr

4:启动F盘的mongos服务器,注意这里的目录跟第3步的目录是一样的,这时mongos的端口即是默认的商品27017

F:\mongodb-27022\mongodb\bin\mongos --configdb 192.168.37.4:27022

5:配置mongo数据库与mongos服务器的之间的关系,注意这个也是要在第4步的目录中进行配置的。

如果在下图无法启动Mongos服务器

那么使用下图的方式启动服务器

然后,增加分片

db.runCommand( { addshard : "127.0.0.1:27020", allowLocal :
1} )

db.runCommand( { addshard : "127.0.0.1:27021", allowLocal :
1} )

6:创建数据库

1
> config = connect("192.168.37.4:27022") --登陆config

2
> config = config.getSisterDB("config") 获得config数据

3
> testDB1=db.getSisterDB("GPSTOW");创建GPSTWO数据库

7:激活数据库分片

db.runCommand({enablesharding:"GPSTWO"})

8:激活collection分片

db.runCommand( { shardcollection : "GPSTWO.GPSTB_TEST", key : {_id :
1 } , unique : true } )--激活collection分片,配置shard
key唯一

9:使用查看命令查看

db.printShardingStatus();

10:转到GPSTWO数据库

11:查看GPSTB_TEST表的情况

12:增加表数据结构

db.system.users.remove({user:"ffcs"})

db.addUser("ffcs","!ffcs@2012")

db.auth("ffcs","!ffcs@2012")

db.UserTb.insert({"PROID":"HAOJ2012","USERID":"HAOJ2012","PASSWD":"12345"})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: