MongoDB replSet

http://cn.docs.mongodb.org/manual/tutorial/convert-secondary-into-arbiter/

http://api.mongodb.org/wiki/current/Replica%20Set%20Tutorial.html

http://cn.docs.mongodb.org/manual/core/replication/

还是看官方文档吧!


新建目录
# mkdir -p /data/rs0 /data/rs1 /data/rs2

启动mongod replSet
# ./bin/mongod --port 11100 --dbpath /data/rs0 --replSet fish  --smallfiles
# ./bin/mongod --port 11101 --dbpath /data/rs1 --replSet fish  --smallfiles
# ./bin/mongod --port 11102 --dbpath /data/rs2 --replSet fish  --smallfiles

mongod replSet 报错
Fri Nov 30 16:07:27 [rsStart] warning: getaddrinfo("lenovo11") failed: Name or service not known
Fri Nov 30 16:07:27 [rsStart] getaddrinfo("lenovo11") failed: Name or service not known
Fri Nov 30 16:07:27 [rsStart] trying to contact lenovo11:11100
Fri Nov 30 16:07:27 [rsStart] getaddrinfo("lenovo11") failed: Name or service not known
Fri Nov 30 16:07:27 [rsStart] couldn't connect to lenovo11:11100: couldn't connect to server lenovo11:11100
Fri Nov 30 16:07:27 [rsStart] getaddrinfo("lenovo11") failed: Name or service not known
Fri Nov 30 16:07:27 [rsStart] replSet can't get local.system.replset config from self or any seed (yet)

# /usr/local/mongodb/bin/mongo localhost:11100
> config = { _id: 'fish' ,members: [{_id:0,host:"127.0.0.1:11100"},{_id:1,host:"127.0.0.1:11101"},{_id:2,host:"127.0.0.1:11102}]}
> rs.initiate(config)
{
	"startupStatus" : 4,
	"info" : "fish",
	"errmsg" : "all members and seeds must be reachable to initiate set",           
	"ok" : 0
}
> rs.status()
{
	"startupStatus" : 4,
	"errmsg" : "can't currently get local.system.replset config from self or any seed (EMPTYUNREACHABLE)",
	"ok" : 0
}
> rs.conf()
null
> db.getReplicationInfo()
{ "errmsg" : "neither master/slave nor replica set replication detected" }


*****************************************  解决  **********************************************
问了公司一个高手,虽然有点不屑这种小问题,不过还是指出问题所在。
“这就是DNS的问题,它找不到“lenovo11”这个机器对应的ip。”   ---> 原来是mongodb不能解析lenovo11.

在/etc/hosts 添加一行:
127.0.0.1   lenovo11

[root@lenovo11 mongodb]# ./bin/mongo localhost:11100
MongoDB shell version: 2.2.1
connecting to: localhost:11100/test
> config = { _id:'fish',members:[ {_id:0,host:'localhost:11100'}, {_id:1,host:'localhost:11101'}, {_id:2,host:'localhost:11102'}]}
{
	"_id" : "fish",
	"members" : [
		{
			"_id" : 0,
			"host" : "localhost:11100"
		},
		{
			"_id" : 1,
			"host" : "localhost:11101"
		},
		{
			"_id" : 2,
			"host" : "localhost:11102"
		}
	]
}
> rs.initiate(config)
{
	"info" : "Config now saved locally.  Should come online in about a minute.",
	"ok" : 1
}
> rs.status()
{
	"set" : "fish",
	"date" : ISODate("2012-11-30T09:41:51Z"),
	"myState" : 1,
	"members" : [
		{
			"_id" : 0,
			"name" : "localhost:11100",
			"health" : 1,
			"state" : 1,
			"stateStr" : "PRIMARY",
			"uptime" : 172,
			"optime" : Timestamp(1354268446000, 1),
			"optimeDate" : ISODate("2012-11-30T09:40:46Z"),
			"self" : true
		},
		{
			"_id" : 1,
			"name" : "localhost:11101",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 55,
			"optime" : Timestamp(1354268446000, 1),
			"optimeDate" : ISODate("2012-11-30T09:40:46Z"),
			"lastHeartbeat" : ISODate("2012-11-30T09:41:50Z"),
			"pingMs" : 1,
			"errmsg" : "syncing to: localhost:11100"
		},
		{
			"_id" : 2,
			"name" : "localhost:11102",
			"health" : 1,
			"state" : 3,
			"stateStr" : "RECOVERING",
			"uptime" : 55,
			"optime" : Timestamp(0, 0),
			"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
			"lastHeartbeat" : ISODate("2012-11-30T09:41:49Z"),
			"pingMs" : 207
		}
	],
	"ok" : 1
}
fish:PRIMARY> rs.conf
rs.conf(    rs.config(
fish:PRIMARY> rs.conf()
{
	"_id" : "fish",
	"version" : 1,
	"members" : [
		{
			"_id" : 0,
			"host" : "localhost:11100"
		},
		{
			"_id" : 1,
			"host" : "localhost:11101"
		},
		{
			"_id" : 2,
			"host" : "localhost:11102"
		}
	]
}
fish:PRIMARY> rs.
rs.add(                   rs.constructor            rs.isMaster(              rs.status(
rs.addArb(                rs.debug                  rs.propertyIsEnumerable(  rs.stepDown(
rs.apply(                 rs.freeze(                rs.prototype              rs.syncFrom(
rs.call(                  rs.hasOwnProperty(        rs.reconfig(              rs.toLocaleString(
rs.conf(                  rs.help(                  rs.remove(                rs.toString(
rs.config(                rs.initiate(              rs.slaveOk(               rs.valueOf(
fish:PRIMARY> rs.isMaster()
{
	"setName" : "fish",
	"ismaster" : true,
	"secondary" : false,
	"hosts" : [
		"localhost:11100",
		"localhost:11102",
		"localhost:11101"
	],
	"primary" : "localhost:11100",
	"me" : "localhost:11100",
	"maxBsonObjectSize" : 16777216,
	"localTime" : ISODate("2012-11-30T09:45:59.351Z"),
	"ok" : 1
}


你可能感兴趣的:(mongodb,not,replset,known)