C# 设置mongodb副本集

C# 设置mongodb副本集,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我是mongo db的新手,希望建立一个复制集。我很困惑,我如何才能做到这一点 我想有一个主要的,次要的和仲裁的3个不同的机器,每个运行mongo 我一直在尝试设置它,但我认为它已经搞砸了!如何删除现有的任何副本集/配置 我安装了mongo,并将mongo的每个实例指向如下配置文件: logpath=D:\mongodb\log\mongo.log logappend=true dbpath=D:\mongodb\data directoryperdb=true port = 27017 re

我是mongo db的新手,希望建立一个复制集。我很困惑,我如何才能做到这一点

我想有一个主要的,次要的和仲裁的3个不同的机器,每个运行mongo

我一直在尝试设置它,但我认为它已经搞砸了!如何删除现有的任何副本集/配置

我安装了mongo,并将mongo的每个实例指向如下配置文件:

logpath=D:\mongodb\log\mongo.log 
logappend=true
dbpath=D:\mongodb\data
directoryperdb=true
port = 27017
replSet = rsMySet
从这里开始,我不知道该怎么办。我读过许多文章、例子等,但都令人困惑

是否有人能提供一步一步的指导,说明如何做到这一点

另外,我想从C#web应用程序连接到此副本集。我的连接字符串应该指向什么?主要、次要或如何工作?另外,应该使用哪个用户访问mongo?我在访问sql server时使用集成安全性,这里是否也可以使用相同的安全性

谢谢,
Niall

按照此处概述的步骤进行操作:

删除任何错误配置的方法是删除“本地”数据库

> use local
> db.dropDatabase()

这里有许多如何连接到副本集的示例:

遵循此处概述的步骤:

删除任何错误配置的方法是删除“本地”数据库

> use local
> db.dropDatabase()

这里有许多如何连接到副本集的示例:

这里是我在本地计算机中创建副本集所遵循的基本步骤

Step 1 : 

Start all mongods with replSet argument 

mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/1 --port 27001 --logpath /Volumes/Data/Replica-DBS/log/log.1 --logappend --fork
mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/2 --port 27002 --logpath /Volumes/Data/Replica-DBS/log/log.2 --logappend --fork
mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/3 --port 27003 --logpath /Volumes/Data/Replica-DBS/log/log.3 --logappend --fork
Step 2 : 
>x={
    _id :"SriReplSet",
     members : [
         {_id : 0, host :"localhost:27001"},
         {_id : 1, host :"localhost:27002"},
         {_id : 2, host :"localhost:27003"},
     ]
}

> rs.initiate(x)
{
    "info" : "Config now saved locally.  Should come online in about a minute.",
    "ok" : 1
}
“SriReplSet”是副本集的名称。显然,dbpath和port将根据您的配置而改变

我计划将第一个(端口号27001)作为主端口。因此,请登录first mongod并按如下所示设置我的配置。 请注意,我使用localhost,因为所有内容都在本地计算机中

Step 1 : 

Start all mongods with replSet argument 

mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/1 --port 27001 --logpath /Volumes/Data/Replica-DBS/log/log.1 --logappend --fork
mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/2 --port 27002 --logpath /Volumes/Data/Replica-DBS/log/log.2 --logappend --fork
mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/3 --port 27003 --logpath /Volumes/Data/Replica-DBS/log/log.3 --logappend --fork
Step 2 : 
>x={
    _id :"SriReplSet",
     members : [
         {_id : 0, host :"localhost:27001"},
         {_id : 1, host :"localhost:27002"},
         {_id : 2, host :"localhost:27003"},
     ]
}

> rs.initiate(x)
{
    "info" : "Config now saved locally.  Should come online in about a minute.",
    "ok" : 1
}
上面的命令将启动副本集,并显示一条消息:“Config now saved Local.大约一分钟后将联机。” 你完成了:)

请注意,第一个是主要的

我不是C#guy,但在Java中,我们可以通过向Mongo构造函数传递几个ServerAddress列表,使用Java驱动程序(我猜C#的情况基本相同)连接到副本集。驱动程序是副本感知的,如果主驱动程序发生更改,它们将相应地更改


默认情况下,所有读写操作都将在主服务器上进行。希望这有帮助:)

以下是我在本地计算机中创建副本集所遵循的基本步骤

Step 1 : 

Start all mongods with replSet argument 

mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/1 --port 27001 --logpath /Volumes/Data/Replica-DBS/log/log.1 --logappend --fork
mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/2 --port 27002 --logpath /Volumes/Data/Replica-DBS/log/log.2 --logappend --fork
mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/3 --port 27003 --logpath /Volumes/Data/Replica-DBS/log/log.3 --logappend --fork
Step 2 : 
>x={
    _id :"SriReplSet",
     members : [
         {_id : 0, host :"localhost:27001"},
         {_id : 1, host :"localhost:27002"},
         {_id : 2, host :"localhost:27003"},
     ]
}

> rs.initiate(x)
{
    "info" : "Config now saved locally.  Should come online in about a minute.",
    "ok" : 1
}
“SriReplSet”是副本集的名称。显然,dbpath和port将根据您的配置而改变

我计划将第一个(端口号27001)作为主端口。因此,请登录first mongod并按如下所示设置我的配置。 请注意,我使用localhost,因为所有内容都在本地计算机中

Step 1 : 

Start all mongods with replSet argument 

mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/1 --port 27001 --logpath /Volumes/Data/Replica-DBS/log/log.1 --logappend --fork
mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/2 --port 27002 --logpath /Volumes/Data/Replica-DBS/log/log.2 --logappend --fork
mongod --replSet SriReplSet  --dbpath /Volumes/Data/Replica-DBS/3 --port 27003 --logpath /Volumes/Data/Replica-DBS/log/log.3 --logappend --fork
Step 2 : 
>x={
    _id :"SriReplSet",
     members : [
         {_id : 0, host :"localhost:27001"},
         {_id : 1, host :"localhost:27002"},
         {_id : 2, host :"localhost:27003"},
     ]
}

> rs.initiate(x)
{
    "info" : "Config now saved locally.  Should come online in about a minute.",
    "ok" : 1
}
上面的命令将启动副本集,并显示一条消息:“Config now saved Local.大约一分钟后将联机。” 你完成了:)

请注意,第一个是主要的

我不是C#guy,但在Java中,我们可以通过向Mongo构造函数传递几个ServerAddress列表,使用Java驱动程序(我猜C#的情况基本相同)连接到副本集。驱动程序是副本感知的,如果主驱动程序发生更改,它们将相应地更改

默认情况下,所有读写操作都将在主服务器上进行。希望这有帮助:)