文档库 最新最全的文档下载
当前位置:文档库 › mongo副本集群启动顺序

mongo副本集群启动顺序

1分别启动配置服务器
/data/mongodbtest/mongodb-linux-x86_64-3.2.6/bin/mongod --configsvr --dbpath /data/mongodbtest/config/data --port 21000 --logpath /data/mongodbtest/config/log/config.log --fork

2在每一台服务器分别启动mongos服务器
/data/mongodbtest/mongodb-linux-x86_64-3.2.6/bin/mongos --configdb 192.168.6.158:21000,192.168.6.222:21000,192.168.6.211:21000 --port 20000 --logpath /data/mongodbtest/mongos/log/mongos.log --fork

3在每个机器里分别设置分片1服务器及副本集shard1
为了快速启动并节约测试环境存储空间,这里加上 nojournal 是为了关闭日志信息,在我们的测试环境不需要初始化这么大的redo日志。同样设置 oplogsize是为了降低 local 文件的大小,oplog是一个固定长度的 capped collection,它存在于”local”数据库中,用于记录Replica Sets操作日志。注意,这里的设置是为了测试!
/data/mongodbtest/mongodb-linux-x86_64-3.2.6/bin/mongod --shardsvr --replSet shard1 --port 22001 --dbpath /data/mongodbtest/shard1/data --logpath /data/mongodbtest/shard1/log/shard1.log --fork --nojournal --oplogSize 10

/data/mongodbtest/mongodb-linux-x86_64-3.2.6/bin/mongod --shardsvr --replSet shard2 --port 22002 --dbpath /data/mongodbtest/shard2/data --logpath /data/mongodbtest/shard2/log/shard2.log --fork --nojournal --oplogSize 10

/data/mongodbtest/mongodb-linux-x86_64-3.2.6/bin/mongod --shardsvr --replSet shard3 --port 22003 --dbpath /data/mongodbtest/shard3/data --logpath /data/mongodbtest/shard3/log/shard3.log --fork --nojournal --oplogSize 10

4任意登陆一个机器,比如登陆192.168.0.136,连接MongoDB
/data/mongodbtest/mongodb-linux-x86_64-3.2.6/bin/mongo 127.0.0.1:22001


以下配置无需再次重启
#使用admin数据库
use admin

#定义副本集配置 (注意三个分片都要配置)
config = { _id:"shard1", members:[
{_id:0,host:"192.168.0.136:22001",arbiterOnly:true},
{_id:1,host:"192.168.0.137:22001"},
{_id:2,host:"192.168.0.138:22001"}
]
}
rs.initiate(config);
5 目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到 mongos 路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效。
#连接到mongos /data/mongodbtest/mongodb-linux-x86_64-3.2.6/bin/mongo 127.0.0.1:20000

#使用admin数据库 user admin
#串联路由服务器与分配副本集1
db.runCommand( { addshard : "shard1/192.168.0.136:22001,192.168.0.137:22001,192.168.0.138:22001"});


#查看分片服务器的配置
db.runCommand( { listshards : 1 } );
因为192.168.0.138是每个分片副本集的仲裁节点,所以在上面结果没有列出来。

6?目前配置服务、路由服务、分片服务、副本集服务都已经串联起来了,但我们的目的是希望插入数据,数据能够自动分

片,就差那么一点点,一点点。。。
连接在mongos上,准备让指定的数据库、指定的集合分片生效。
#指定testdb分片生效
db.runCommand( { enablesharding :"testdb"});
?
#指定数据库里需要分片的集合和片键
db.runCommand( { shardcollection : "testdb.table1",key : {id: 1} } )

我们设置testdb的 table1 表需要分片,根据 id 自动分片到 shard1 ,shard2,shard3 上面去。要这样设置是因为不是所有mongodb 的数据库和表 都需要分片!
?
?11. 测试分片配置结果。
#连接mongos服务器
/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongo 127.0.0.1:20000
?
#使用testdb use testdb;
?

#插入测试数据
for (var i = 1; i <= 100000; i++)
db.table1.save({id:i,"test1":"testval1"});

for (var i = 1; i <= 100000; i++) db.table1.save({id:i,"test1":"testval1"});



#查看分片情况如下,部分无关信息省掉了
db.table1.stats();

相关文档