Mongodb添加数据后在分片数据失去平衡解决方案和原因

Mongodb添加数据后在分片数据失去平衡解决方案和原因,第1张

1.先在路由添加5W填数据

2.开启分片

查看B片数据

查看A片数据

问题:在路由中添加5W数据,然后分片,但是呢数据现在竟然不平衡啦,查看一下原因

解决:在路由执行sh.isBalancerRunning() 返回啦false,证明平衡器没有开启

现在刚刚分片的集合开启平衡器sh.enableBalancing("user")

在查看A片数据

在查看B片数据

这时数据就恢复成正常现象啦

由于Mongodb不是关系型数据库文件,实际上,它并不存在传统关系型数据库中的所谓“数据库”的概念,但不用担心,当你第一次新增数据时,mongodb就会以collection集合的形式进行保存和新建,而不需要你手工去新建立。下面是例子:

1)列出当前的数据库

MongoDB shell version: 1.8.1

connecting to: test

>show dbs -www.linuxidc.com-

admin 0.03125GB

local (empty)

可以使用show dbs来列出当前有多少个数据库,上面看到的是有两个,分别是admin和local。

2) 定义新的数据库名

我们通过使用“use new-databasename”的语法去使用一个新的数据库,注意,即使你的数据库还没建立起来,依然可以这样使用,因为mongodb会在真正插入了数据后,才会真正建立起来。

>use mkyongdb

switched to db mkyongdb

>show dbs

admin 0.03125GB

local (empty)

注意,在use mkyongdb后,mkyongdb实际上还没真正建立起来,只是表明目前是在使用mkyongdb了。

3)保存数据

定义一个collection,名为“users”,然后插入数据,如下:

>db.users.save( {username:"mkyong"} )

>db.users.find()

{ "_id" : ObjectId("4dbac7bfea37068bd0987573"), "username" : "mkyong" }

>

>show dbs -www.linuxidc.com-

admin 0.03125GB

local (empty)

mkyongdb0.03125GB

可以看到,用db.users.find()可以找出已插入的数据。这个时候,名为“users”的collection已经建立起来了,同时,数据库mkyongdb也建立起来了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7997729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存