2011-08-22 4 views
2

샤딩을 실험하고 샘플 구성을 시도합니다 : 두 개의 샤드 중 가장 간단한 방법입니다.C# 드라이버를 사용하여 MongoDB에서 샤딩하기

나는이 DB에 간단한 삽입 코드를 실행하려고
cd c:\mongodb-win32-x86_64-1.8.3-rc1\bin 
call mongod --shardsvr --dbpath /data/db/Shard--port 10000 
cd c:\mongodb-win32-x86_64-1.8.3-rc1\bin 
call mongod --shardsvr --dbpath /data/db/Shard2 --port 10001 
cd c:\mongodb-win32-x86_64-1.8.3-rc1\bin 
mongod --configsvr --dbpath /data/db/config --port 20000 
cd c:\mongodb-win32-x86_64-1.8.3-rc1\bin 
mongos --configdb 192.168.0.23:20000 
cd c:\mongodb-win32-x86_64-1.8.3-rc1\bin 
mongo 
use admin 
db.runCommand({ addshard : "192.168.0.23:10000" }) 
db.runCommand({ addshard : "192.168.0.23:10001" }) 
db.runCommand({ enablesharding : "Shard" }) 
db.runCommand({ shardcollection : "Shard.Customers", key : 
{LocalIdentifier : 1} }) 

, 그것은 실행하지만 모두 파편이 비어 : 여기 박쥐 파일에서 코드입니다.

public void SaveBatch(IEnumerable<object> entities) 
{ 
    MongoCollection.InsertBatch(typeof(object), entities, SafeMode.True); 
} 

은 또한이 연결에서 실행되는 코드입니다 :

string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
mongoServer = mongoServer.Create(connectionString); 
mongoDatabase = mongoServer.GetDatabase("Shard"); 
mongoCollection = mongoDatabase.GetCollection<Customer>("Customers"); 
mongoCollection.EnsureIndex( 
    IndexKeys.Ascending(new[] {"CampaignId", "LocalIdentifier", "ProjectIdentifier", "FirstName", "LastName"})); 

그래서 내가 파편 작동하도록 관리하지 않은 여기에 삽입 코드입니다. 내가 무엇인지 알 수 있습니까 : 구성, 연결 또는 삽입 중 무엇입니까? 그리고 무엇을 할 권리가 입니까?

+0

케이스 코드 –

답변

1

질문에 게시 된이 솔루션은 잘

0

당신은 샤드를 샤딩하고 있습니다. 고객. 그러나 리버 데일에 삽입합니다. 고객. 내가 놓친 게 있니?

+0

를 호출에 실수가 있었다 폐쇄 작동 아니오를 잘하지만 난 그냥 샘플에 대한 DB 이름을 변경하지 않았다, 그래서 이것은 진짜 문제가되지 않습니다 –

+0

Using (mongoDatabase.RequestStart())에 SaveBatch 호출을 래핑 했습니까? –

+0

기독교인, 고맙습니다. 문제가 해결되었습니다. 해결 방법으로 표시하는 방법을 모르겠습니다. 다른 코드 조각에 또 다른 문제가 있습니다. –

관련 문제