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"})
下面以分两个分片进行说明,如果要进行分两片,那么必须要有四个目录,每个目录都要有
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"})
相关文章推荐
- 在C#中实现Python的分片技术
- Zilliqa 主网上线延期,分片技术实现度低|标准共识评级调整
- 乱弹运用direct技术进行图像裁减的实现之二
- Java技术积累——用最原始的代码见证分页查询实现原理
- Windows平台下C++插件系统实现的几个关键技术问题及其解决思路
- HTTP Live Streaming直播(iOS直播)技术分析与实现
- Android实现数据存储技术
- 数据库通用基础实现技术---多进程共享信息
- 不懂技术的人不要对懂技术的人说这很容易实现
- 转 .Net/C#/VB/T-SQL/Java/Script 实现: 将天文数字转换成中文大写 (2000 年前的思路,打劫的,一点儿技术含量都没有)
- WINCE应用的UI实现方案 —— 中篇:GWES方案上几技术难点的解决
- C#实现DirectShow技术开发准备
- Windows软件防火墙实现技术简述
- [导入]用SVG技术实现基于Web的GIS
- 溢出漏洞扫描技术方法与实现
- 基于web的全景漫游自动生成加编辑平台的技术实现(三)----krpano主XML文件
- CSS滑动门技术实现TAB标签切换效果实例,支持各种浏览器
- 基于PNP自动映射分区的安全USB技术研究与实现
- JAVA使用jsoup技术实现网站URL解析爬取|爬取网站登陆后页面动态数据
- 实现智能家居必不可少的五种无线通讯技术