搭建高可用mongodb集群(二)――副本(三)

2014-11-24 07:50:36 ? 作者: ? 浏览: 18
data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongo 192.168.1.136:27017

#使用test 数据库

repset:SECONDARY> use test;

repset:SECONDARY> show tables;

Sun Dec 29 21:50:48.590 error: { "$err" : "not master and slaveOk=false", "code" : 13435 } at src/mongo/shell/query.js:128

#mongodb默认是从主节点读写数据的,副本节点上不允许读,需要设置副本节点可以读。

repset:SECONDARY> db.getMongo().setSlaveOk();

#可以看到数据已经复制到了副本集。

repset:SECONDARY> db.testdb.find();

{ "_id" : ObjectId("52c028460c7505626a93944f"), "test1" : "testval1" }

7、测试副本集故障转移功能

先停掉主节点mongodb 138,查看136、137的日志可以看到经过一系列的投票选择操作,137 当选主节点,136从137同步数据过来。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Sun Dec 29 22:03:05.351 [rsBackgroundSync] replSet sync source problem: 10278 dbclient error communicating with server: 192.168.1.138:27017

Sun Dec 29 22:03:05.354 [rsBackgroundSync] replSet syncing to: 192.168.1.138:27017

Sun Dec 29 22:03:05.356 [rsBackgroundSync] repl: couldn't connect to server 192.168.1.138:27017

Sun Dec 29 22:03:05.356 [rsBackgroundSync] replSet not trying to sync from 192.168.1.138:27017, it is vetoed for 10 more seconds

Sun Dec 29 22:03:05.499 [rsHealthPoll] DBClientCursor::init call() failed

Sun Dec 29 22:03:05.499 [rsHealthPoll] replset info 192.168.1.138:27017 heartbeat failed, retrying

Sun Dec 29 22:03:05.501 [rsHealthPoll] replSet info 192.168.1.138:27017 is down (or slow to respond):

Sun Dec 29 22:03:05.501 [rsHealthPoll] replSet member 192.168.1.138:27017 is now in state DOWN

Sun Dec 29 22:03:05.511 [rsMgr] not electing self, 192.168.1.137:27017 would veto with '192.168.1.136:27017 is trying to elect itself but 192.168.1.138:27017 is already primary and more up-to-date'

Sun Dec 29 22:03:07.330 [conn393] replSet info voting yea for 192.168.1.137:27017 (1)

Sun Dec 29 22:03:07.503 [rsHealthPoll] replset info 192.168.1.138:27017 heartbeat failed, retrying

Sun Dec 29 22:03:08.462 [rsHealthPoll] replSet member 192.168.1.137:27017 is now in state PRIMARY

Sun Dec 29 22:03:09.359 [rsBackgroundSync] replSet syncing to: 192.168.1.137:27017

Sun Dec 29 22:03:09.507 [rsHealthPoll] replset info 192.168.1.138:27017 heartbeat failed, retrying

查看整个集群的状态,可以看到138为状态不可达。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

/data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongo 192.168.1.136:27017

repset:SECONDARY> rs.status();

#输出

{

"set" : "repset",

"date" : ISODate("2013-12-29T14:28:35Z"),

"myState" : 2,

"syncingTo" : "192.168.1.137:27017",

"members" : [

{

"_id" : 0,

"name" : "192.168.1.136:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 9072,

"optime" : Timestamp(1388324934, 1),

"optimeDate" : ISODate("2013-12-29T13:48:54Z"),

"self" : true

},

{

"_id" : 1,

"name" : "192.168.1.137:27017",

"health" : 1,

"state" : 1,

"stateStr" : "PRIMARY",

"uptime" : 7329,

"optime" : Timestamp(1388324934, 1),

"optimeDate" : ISODate("2013-12-29T13:48:54Z"),

"lastHeartbeat" : ISODate("2013-12-29T14:28:34Z"),

"lastHeartbeatRecv" : ISODate("2013-12-29T14:28:34Z"),

"pingMs" : 1,

"syncingTo" : "192.168.1.138:27017"

},

{

"_id" : 2,

"name" : "192.168.1.138:27017",

"health" : 0,

"state" : 8,

"stateStr" : "(not reachable/healthy)",

"uptime" : 0,

"optime" : Timestamp(1388324934, 1),

"optimeDate" : ISODate("2013-12-29T13:48:54Z"),

"lastHeartbeat" : ISODate("2013-12-29T14:28:35Z"),

"lastHeartbeatRecv" : ISODate("2013-12-29T14:28:23Z"),

"pingMs" : 0

-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: