mongoDB分片示例
在windows上使用mongo 2.0.1 32位的新手尝试测试碎片,如下所示: (4) 进程:2个碎片+配置srver+mongos w微小的块大小mongoDB分片示例,mongodb,Mongodb,在windows上使用mongo 2.0.1 32位的新手尝试测试碎片,如下所示: (4) 进程:2个碎片+配置srver+mongos w微小的块大小 mongod.exe --shardsvr --port 10001 --dbpath <folder1> > shard1.log mongod.exe --shardsvr --port 10002 --dbpath <folder2> > shard2.log mongo
mongod.exe --shardsvr --port 10001 --dbpath <folder1> > shard1.log
mongod.exe --shardsvr --port 10002 --dbpath <folder2> > shard2.log
mongod.exe --configsvr --port 20000 --dbpath <configfolder> > config.log
mongos.exe --configdb localhost:20000 --chunkSize 1 > mongos.log
然后,我为测试数据库(dbTest)和集合(cTest)启用了分片:
最后,我用100005条样本记录填充了cTest集合(按名称索引):
mongos> use dbTest
switched to db dbTest
db.cTest.drop();
db.cTest.ensureIndex({ Name : 1 });
db.cTest.save({Name: "Frank", Age:56, Job: "Accountant", State: "NY"});
db.cTest.save({Name: "Bill" , Age:23, State: "CA"});
db.cTest.save({Name: "Janet", Age:34, Job: "Dancer" });
db.cTest.save({Name: "Andy", Age:44 });
db.cTest.save({Name: "Zach", Age:23, Job: "Fireman", State: "CA"});
i=1;
while(i<=1000)
{
j=1;
while (j<=1000)
{
db.cTest.save({Name:"Person("+i+","+j+")", Age:i+j});
j = j+1
};
i=i+1;
};
mongos>使用dbTest
切换到dbTest
db.cTest.drop();
db.cTest.ensureIndex({Name:1});
db.cTest.save({姓名:“弗兰克”,年龄:56岁,职务:“会计”,州:“纽约”});
db.cTest.save({姓名:“比尔”,年龄:23岁,州:“CA”});
db.cTest.save({姓名:“珍妮特”,年龄:34岁,职务:“舞者”});
db.cTest.save({姓名:“安迪”,年龄:44});
db.cTest.save({姓名:“扎克”,年龄:23岁,职务:“消防员”,州:“CA”});
i=1;
虽然(我一旦你“shardcollection”,不要放弃它。它将删除关于shardcollection的元数据。谢谢,Nat就是这样。(我可以连续几天盯着它看而不注意!)
mongos> db.runCommand( { enablesharding : "dbTest" } );
{ "ok" : 1 }
mongos> db.runCommand( { shardcollection : "dbTest.cTest", key : { Name : 1 } } );
{ "collectionssharded" : "dbTest.cTest", "ok" : 1 }
mongos> use dbTest
switched to db dbTest
db.cTest.drop();
db.cTest.ensureIndex({ Name : 1 });
db.cTest.save({Name: "Frank", Age:56, Job: "Accountant", State: "NY"});
db.cTest.save({Name: "Bill" , Age:23, State: "CA"});
db.cTest.save({Name: "Janet", Age:34, Job: "Dancer" });
db.cTest.save({Name: "Andy", Age:44 });
db.cTest.save({Name: "Zach", Age:23, Job: "Fireman", State: "CA"});
i=1;
while(i<=1000)
{
j=1;
while (j<=1000)
{
db.cTest.save({Name:"Person("+i+","+j+")", Age:i+j});
j = j+1
};
i=i+1;
};