ITPub博客

首页 > 数据库 > NoSQL > mongodb 分片集群设置

mongodb 分片集群设置

原创 NoSQL 作者:kunlunzhiying 时间:2018-08-30 11:47:39 0 删除 编辑

########对某个集合数据做分片#############

1、先enable sharding,开启数据库的分片功能

mongos> use admin

mongos> db.runCommand({"enablesharding":"test1"})

2、对具体collection做分片, 选择片键为"_id"

mongos> db.runCommand({"shardcollection":"test1.test1","key":{"_id":1}})

{ "collectionsharded" : "test1.test1", "ok" : 1 }


3、观察2个分片 shard_01  shard_02 tunks 数量


###########删除分片##################

1、保证均衡器是开启的

mongos> use admin

mongos> sh.setBalancerState(true);

或者mongos> sh.startBalancer();


2、将已分片的集合全部迁移到其他分片


use admin

db.adminCommand({"removeShard":"shard_name"})


3、检查数据块迁移的状态 ,remaining 字段表示剩余数据块的数量


use admin


db.runCommand( { removeShard: "shard_name" } )


===============#####删除未分片的数据库#######============


1、查看未分片的数据库


use config


db.databases.find({$or:[{"partitioned":false},{"primary":"shard_name"}]})


2、修改数据库的主分片


db.runCommand( { movePrimary: "db_name", to: "new_shard" })



=========##########刷新mongos的配置缓存###########==========


强制mongos从config server同步配置信息,并刷新缓存


use admin

db.adminCommand({ flushRouterConfig: 1})



===============oplog 做每天自动日志轮动========================


1、在配置文件中添加参数

logpath=/data/shard_01/mongodb.log 

logappend=true


2、设置定时任务

0 0 * * * /bin/kill -SIGUSR1 `cat /data/shard_01/mongodb.log`


mongodb 3.6 以上版本 可以在线修改oplog大小

use local

db.adminCommand({replSetResizeOplog: 1, size: 100000})


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28211342/viewspace-2213174/,如需转载,请注明出处,否则将追究法律责任。

上一篇: mongodb慢查询分析
请登录后发表评论 登录
全部评论
IT搬砖

注册时间:2014-07-28

  • 博文量
    665
  • 访问量
    333636