[英]setting up mongodb replica sets
我是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时使用集成安全性,在这里是否一样?
谢谢,尼尔
这是在本地计算机上创建副本集所遵循的基本步骤。
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
“ SriReplSet”是副本集的名称。 显然,dbpath和端口将根据您的配置而变化。
我打算将第一个(端口号为27001)设置为主。 因此,登录到第一个mongod并按如下所示设置我的配置。 请注意,由于本地计算机中的所有内容都在使用localhost。
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
}
上面的命令将启动副本集,并显示一条消息:“配置现在已保存在本地。应在大约一分钟内联机。” 你完成了:)
Step 3 :
SriReplSet:PRIMARY> rs.status()
{
"set" : "SriReplSet",
"date" : ISODate("2013-05-16T05:35:18Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "localhost:27001",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 370,
"optime" : Timestamp(1368682493000, 1),
"optimeDate" : ISODate("2013-05-16T05:34:53Z"),
"self" : true
},
{
"_id" : 1,
"name" : "localhost:27002",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 20,
"optime" : Timestamp(1368682493000, 1),
"optimeDate" : ISODate("2013-05-16T05:34:53Z"),
"lastHeartbeat" : ISODate("2013-05-16T05:35:18Z"),
"pingMs" : 0
},
{
"_id" : 2,
"name" : "localhost:27003",
"health" : 1,
"state" : 5,
"stateStr" : "STARTUP2",
"uptime" : 18,
"optime" : Timestamp(0, 0),
"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" : ISODate("2013-05-16T05:35:17Z"),
"pingMs" : 736
}
],
"ok" : 1
}
请注意,第一个是主要的。
不是C#的人,但是在Java中,我们可以通过将几个ServerAddress列表传递给Mongo构造函数来使用Java驱动程序连接到副本集(我猜与C#的情况大体相同)。 驱动程序知道副本,如果主要更改,它们将相应更改。
默认情况下,所有读和写操作都将在主服务器上进行。 希望这可以帮助 :)
请遵循此处概述的步骤: http : //docs.mongodb.org/manual/tutorial/deploy-replica-set/#deploy-a-development-or-test-replica-set
删除任何错误配置的方法是删除“本地”数据库。
> use local
> db.dropDatabase()
有关如何连接到副本集的许多示例,请参见此处: http : //docs.mongodb.org/manual/reference/connection-string/#standard-connection-string-format
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.