MongoDB副本集和分片模式安装
来源:互联网 发布:巧手十字绣软件 编辑:程序博客网 时间:2024/06/01 09:50
设备:
三个1G、20G、1核的虚拟机,系统是SentOS7 min
设置目录:
Server1:
mkdir -p /home/mongoshard/data/shard11 /home/mongoshard/data/shard21 /home/mongoshard/data/config
Server2:
mkdir -p /home/mongoshard/data/shard12 /home/mongoshard/data/shard22 /home/mongoshard/data/config
Server3:
mkdir -p /home/mongoshard/data/shard13 /home/mongoshard/data/shard23 /home/mongoshard/data/config
1、配置副本集和分片
Server1:
/usr/local/mongoshard/bin/mongod --shardsvr --replSet shard1 --port 27017 --dbpath /home/mongoshard/data/shard11 --logpath /home/mongoshard/data/shard11.log --logappend --fork --nojournal --oplogSize 10
Server2:
/usr/local/mongoshard/bin/mongod --shardsvr --replSet shard1 --port 27017 --dbpath /home/mongoshard/data/shard12 --logpath /home/mongoshard/data/shard12.log --logappend --fork --nojournal --oplogSize 10
Server3:
/usr/local/mongoshard/bin/mongod --shardsvr --replSet shard1 --port 27017 --dbpath /home/mongoshard/data/shard13 --logpath /home/mongoshard/data/shard13.log --logappend --fork --nojournal --oplogSize 10
config = { _id:"shard1", members:[
{_id:0,host:"192.168.229.129:27017 "},
{_id:1,host:"192.168.229.130:27017 "},
{_id:2,host:"192.168.229.131:27017 "}
]
}
rs.initiate(config);
Server1:
/usr/local/mongoshard/bin/mongod --shardsvr --replSet shard2 --port 27018 --dbpath /home/mongoshard/data/shard21 --logpath /home/mongoshard/data/shard21.log --logappend --fork --nojournal --oplogSize 10
Server2:
/usr/local/mongoshard/bin/mongod --shardsvr --replSet shard2 --port 27018 --dbpath /home/mongoshard/data/shard22 --logpath /home/mongoshard/data/shard22.log --logappend --fork --nojournal --oplogSize 10
Server3:
/usr/local/mongoshard/bin/mongod --shardsvr --replSet shard2 --port 27018 --dbpath /home/mongoshard/data/shard23 --logpath /home/mongoshard/data/shard23.log --logappend --fork --nojournal --oplogSize 10
config = { _id:"shard2", members:[
{_id:0,host:"192.168.229.129:27018 "},
{_id:1,host:"192.168.229.130:27018"},
{_id:2,host:"192.168.229.131:27018 "}
]
}
rs.initiate(config);
2、启动配置服务器
Server1:
/usr/local/mongoshard/bin/mongod --configsvr --replSet shard3 --dbpath /home/mongoshard/data/config --port 20000 --logpath /home/mongoshard/data/config.log --logappend --fork
Server2:
/usr/local/mongoshard/bin/mongod --configsvr --replSet shard3 --dbpath /home/mongoshard/data/config --port 20000 --logpath /home/mongoshard/data/config.log --logappend --fork
Server3:
/usr/local/mongoshard/bin/mongod --configsvr --replSet shard3 --dbpath /home/mongoshard/data/config --port 20000 --logpath /home/mongoshard/data/config.log --logappend --fork
config = { _id:"shard3", members:[
{_id:0,host:"192.168.229.129:20000 "},
{_id:1,host:"192.168.229.130:20000"},
{_id:2,host:"192.168.229.131:20000 "}
]
}
rs.initiate(config);
3、启动mongos
/usr/local/mongodb/bin/mongos --configdb --port 30000 192.168.229.129:20000,192.168.229.130:20000,192.168.229.131:20000 --logpath /home/mongoshard/data/mongos.log --logappend --fork
在任意节点链接mongos
/usr/local/mongoshard/bin/mongo 127.0.0.1:30000/admin
4. 加入shards
如里shard是单台服务器,用>db.runCommand( { addshard : “<serverhostname>[:<port>]” } )这样的命令加入,如果shard是replica sets,用replicaSetName/<serverhostname>[:port][,serverhostname2[:port],…]这样的格式表示,例如本例执行:
>db.runCommand( { addshard : "shard1/192.168.229.129:27017,192.168.229.130:27017,192.168.229.131:27017",name:"s1",maxsize:20480} );
>db.runCommand( { addshard : "shard2/192.168.229.129:27018,192.168.229.130:27018,192.168.229.131:27018",name:"s2",maxsize:20480} );
注意:在添加第二个shard时,出现error:test database 已经存在的错误,这里用mongo命令连接到第二个replica set,用db.dropDatabase()命令把test数据库给删除然后就可加入
5. Listing shards
>db.runCommand( { listshards : 1 } )
如果列出了以上二个你加的shards,表示shards已经配置成功
6. 激活数据库分片
命令:
> db.runCommand( { enablesharding : "testdb "} );
通过执行以上命令,可以让数据库跨shard,如果不执行这步,数据库只会存放在一个shard,一旦激活数据库分片,数据库中不同的collection将被存放在不同的shard上,但一个collection仍旧存放在同一个shard上,要使单个collection也分片,还需单独对collection作些操作
我们设置testdb的 table1 表需要分片,根据 id 自动分片到 shard1 ,shard2,shard3 上面去。要这样设置是因为不是所有mongodb 的数据库和表 都需要分片!
use testdb
for (var i = 1; i <= 100000; i++)db.table1.save({id:i,"test1":"testval1"});
for(var i=0;i<100000;i++)db.table1.save({"name" : "kk", "value" : "0", "myid" : i});
#查看分片情况如下,部分无关信息省掉了
db.table1.stats();
查看mongodb数据分布情况:
db.printShardingStatus(); 或者sh.status()
阅读全文
0 0
- MongoDB副本集和分片模式安装
- MongoDB的安装(单机,副本集,分片)
- mongodb 副本集+分片
- mongodb 副本集+分片
- Mongodb的分片和副本集
- mongodb副本集和分片部署
- mongodb副本集和分片部署命令
- MongoDB副本集复制和分片
- 安装mongodb副本分片集群
- CentOS mongodb 副本集分片
- Mongodb分片+副本集配置
- mongodb 分片 副本集 集群
- mongoDB副本集与分片
- mongodb 分片与副本集
- mongodb集群分片+副本模式操作+javaCode
- window下MongoDB副本集和分片高可靠性部署
- MongoDB副本集分片集搭建记录
- Mongodb的副本集+分片部署
- [笔记]《操作系统精髓与设计原理》---(3)线程
- CAS单点登录-基础搭建HelloWorld(二)
- Ubuntu mail命令发送邮件
- 金蝶用友对比图
- tomcat核心组件及server.xml配置讲解
- MongoDB副本集和分片模式安装
- CodeForces 489E Hiking
- 静态成员、静态方法、静态类、实例成员及区别
- Gson转换的一些方式
- drbd详解
- git使用命令
- C++ 声明整型变量,输入字符常量
- 关于mybatis “org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)” 错误的问题
- hdu5001-概率dp&经典&tooyoung-Walk