何小伟向Mongodb集群添加新的成员节点.docx

上传人:b****6 文档编号:6259817 上传时间:2023-01-04 格式:DOCX 页数:9 大小:17.32KB
下载 相关 举报
何小伟向Mongodb集群添加新的成员节点.docx_第1页
第1页 / 共9页
何小伟向Mongodb集群添加新的成员节点.docx_第2页
第2页 / 共9页
何小伟向Mongodb集群添加新的成员节点.docx_第3页
第3页 / 共9页
何小伟向Mongodb集群添加新的成员节点.docx_第4页
第4页 / 共9页
何小伟向Mongodb集群添加新的成员节点.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

何小伟向Mongodb集群添加新的成员节点.docx

《何小伟向Mongodb集群添加新的成员节点.docx》由会员分享,可在线阅读,更多相关《何小伟向Mongodb集群添加新的成员节点.docx(9页珍藏版)》请在冰豆网上搜索。

何小伟向Mongodb集群添加新的成员节点.docx

何小伟向Mongodb集群添加新的成员节点

向Mongodb集群添加新的成员节点

向集群添加新节点有两种方法:

方法

第一种方法

拷贝其他节点的数据文件到新的节点

第二种方法

向已有的replicaset添加新成员

一.第一种方法(拷贝其他节点的数据文件到新的节点)

我们在启动mongod服务之前一定要拷贝数据文件到本机。

下面是空库添加到一个replicaset中的日志记录:

第一步:

####连接Primary库

TueNov114:

22:

57[initandlisten]connectionacceptedfrom10.250.7.220:

54235#2

TueNov114:

22:

57[initandlisten]connectionacceptedfrom10.250.7.220:

54236#3

TueNov114:

22:

57[initandlisten]connectionacceptedfrom10.250.7.220:

54237#4

TueNov114:

22:

57[rsStart]tryingtocontact10.250.7.220:

27018

TueNov114:

22:

57[rsStart]tryingtocontact10.250.7.220:

27019

TueNov114:

22:

57[rsStart]tryingtocontact10.250.7.220:

27020

第二步:

####从primary库复制replicaset的配置信息,并保存到本地-dbpath指定的文件目录####

TueNov114:

22:

57[rsStart]replSetgotconfigversion2fromaremote,savinglocally

TueNov114:

22:

57[rsStart]replSetinfosavinganewerconfigversiontolocal.system.replset

TueNov114:

22:

57[FileAllocator]allocatingnewdatafile/opt/mongodata/r1/local.ns,fillingwithzeroes...

TueNov114:

22:

57[FileAllocator]creatingdirectory/opt/mongodata/r1/_tmp

TueNov114:

22:

57[FileAllocator]doneallocatingdatafile/opt/mongodata/r1/local.ns,size:

16MB,took0.118secs

TueNov114:

22:

57[FileAllocator]allocatingnewdatafile/opt/mongodata/r1/local.0,fillingwithzeroes...

TueNov114:

23:

01[FileAllocator]doneallocatingdatafile/opt/mongodata/r1/local.0,size:

64MB,took3.807secs

TueNov114:

23:

01[FileAllocator]allocatingnewdatafile/opt/mongodata/r1/local.1,fillingwithzeroes...

TueNov114:

23:

02[rsStart]replSetsaveConfigLocallydone

TueNov114:

23:

02[FileAllocator]doneallocatingdatafile/opt/mongodata/r1/local.1,size:

128MB,took1.068secs

TueNov114:

23:

02[rsStart]replSetSTARTUP2

TueNov114:

23:

02[rsMgr]replSettotalnumberofvotesiseven-addarbiterorgiveonememberanextravote

TueNov114:

23:

02[rsSync]******

第三步:

####创建oplog日志文件####

TueNov114:

23:

02[rsSync]creatingreplicationoplogofsize:

944MB...

TueNov114:

23:

02[FileAllocator]allocatingnewdatafile/opt/mongodata/r1/local.2,fillingwithzeroes...

TueNov114:

23:

04[rsHealthPoll]replSetinfomember10.250.7.220:

27018isup

TueNov114:

23:

04[rsHealthPoll]replSetmember10.250.7.220:

27018isnowinstateSECONDARY

TueNov114:

23:

04[rsHealthPoll]replSetinfomember10.250.7.220:

27019isup

TueNov114:

23:

04[rsHealthPoll]replSetmember10.250.7.220:

27019isnowinstateSECONDARY

TueNov114:

23:

04[rsHealthPoll]replSetinfomember10.250.7.220:

27020isup

TueNov114:

23:

04[rsHealthPoll]replSetmember10.250.7.220:

27020isnowinstatePRIMARY

TueNov114:

23:

49[FileAllocator]doneallocatingdatafile/opt/mongodata/r1/local.2,size:

1024MB,took46.28secs

TueNov114:

23:

50[rsSync]******

第四步:

####应用主库的日志,复制数据文件####

TueNov114:

23:

50[rsSync]replSetinitialsyncpending

TueNov114:

23:

50[rsSync]replSetsyncingto:

10.250.7.220:

27020

TueNov114:

23:

50[rsSync]buildindexlocal.me{_id:

1}

TueNov114:

23:

50[rsSync]buildindexdone0records0.003secs

TueNov114:

23:

50[rsSync]replSetinitialsyncdropalldatabases

TueNov114:

23:

50[rsSync]dropAllDatabasesExceptLocal1

TueNov114:

23:

50[rsSync]replSetinitialsyncclonealldatabases

TueNov114:

23:

50[rsSync]replSetinitialsynccloningdb:

test

TueNov114:

23:

50[FileAllocator]allocatingnewdatafile/opt/mongodata/r1/test.ns,fillingwithzeroes...

TueNov114:

23:

51[FileAllocator]doneallocatingdatafile/opt/mongodata/r1/test.ns,size:

16MB,took0.8secs

TueNov114:

23:

51[FileAllocator]allocatingnewdatafile/opt/mongodata/r1/test.0,fillingwithzeroes...

TueNov114:

23:

55[FileAllocator]doneallocatingdatafile/opt/mongodata/r1/test.0,size:

64MB,took3.643secs

TueNov114:

23:

55[FileAllocator]allocatingnewdatafile/opt/mongodata/r1/test.1,fillingwithzeroes...

TueNov114:

23:

55[rsSync]buildindextest.yql{_id:

1}

TueNov114:

23:

56[rsSync]buildindexdone1records0.006secs

TueNov114:

23:

56[rsSync]replSetinitialsyncqueryminValid

TueNov114:

23:

56[rsSync]replSetinitialoplogapplicationfrom10.250.7.220:

27020startingatNov114:

14:

05:

1toNov114:

14:

05:

1

TueNov114:

23:

57[rsSync]replSetinitialsyncfinishingup

TueNov114:

23:

57[rsSync]replSetsetminValid=4eaf8e2d:

1

TueNov114:

23:

57[rsSync]buildindexlocal.replset.minvalid{_id:

1}

TueNov114:

23:

57[rsSync]buildindexdone0records0.023secs

TueNov114:

23:

57[rsSync]replSetinitialsyncdone

TueNov114:

23:

58[rsSync]replSetsyncingto:

10.250.7.220:

27020

TueNov114:

23:

58[rsSync]replSetSECONDARY

TueNov114:

24:

02[FileAllocator]doneallocatingdatafile/opt/mongodata/r1/test.1,size:

128MB,took7.428secs

TueNov114:

24:

16[clientcursormon]mem(MB)res:

16virt:

2848mapped:

1312

TueNov114:

24:

42[initandlisten]connectionacceptedfrom127.0.0.1:

21141#5

TueNov114:

29:

16[clientcursormon]mem(MB)res:

16virt:

2849mapped:

1312

TueNov114:

34:

16[clientcursormon]mem(MB)res:

16virt:

2913mapped:

1312

TueNov114:

39:

16[clientcursormon]mem(MB)res:

16virt:

2913mapped:

1312

第五步:

===下面是删除节点以后的日志==

TueNov114:

39:

28[conn2]endconnection10.250.7.220:

54235

TueNov114:

39:

29[rsMgr]replsetmsgReceivedNewConfigversion:

version:

3

TueNov114:

39:

29[rsMgr]replSetinfosavinganewerconfigversiontolocal.system.replset

TueNov114:

39:

29[rsMgr]replSetsaveConfigLocallydone

TueNov114:

39:

29[rsMgr]replSeterrorselfnotpresentinthereplsetconfiguration:

TueNov114:

39:

29[rsMgr]{_id:

"myset",version:

3,members:

[{_id:

0,host:

"10.250.7.220:

27018"},{_id:

1,host:

"10.250.7.220:

27019"},{_id:

2,host:

"10.

250.7.220:

27020"}]}

-------------------------------------------------------------------------

这是拷贝replicasetmyset中其他节点的数据文件!

(记住是数据文件,一定不要mongod.lock,每个mongod进程都需要自己的数据目录,如果你要运行3个mongod的实例,那么就需要3个独自的目录。

mongod启动的时候会在数据目录创建一个mongod.lock文件,阻止其他进程使用此目录.)

第六步:

####连接primary库

TueNov115:

53:

24[initandlisten]connectionacceptedfrom10.250.7.220:

54761#2

TueNov115:

53:

28[initandlisten]connectionacceptedfrom10.250.7.220:

54763#3

TueNov115:

53:

28[initandlisten]connectionacceptedfrom10.250.7.220:

54764#4

TueNov115:

53:

34[clientcursormon]mem(MB)res:

31virt:

2606mapped:

1232

TueNov115:

53:

34[rsStart]tryingtocontact10.250.7.220:

27018

TueNov115:

53:

34[rsStart]tryingtocontact10.250.7.220:

27019

TueNov115:

53:

34[rsStart]tryingtocontact10.250.7.220:

27020

第七步:

####拷贝配置文件,并保存。

TueNov115:

53:

34[rsStart]replSetgotconfigversion6fromaremote,savinglocally

TueNov115:

53:

34[rsStart]replSetinfosavinganewerconfigversiontolocal.system.replset

TueNov115:

53:

34[rsStart]replSetsaveConfigLocallydone

TueNov115:

53:

34[rsStart]replSetSTARTUP2

TueNov115:

53:

34[rsMgr]replSettotalnumberofvotesiseven-addarbiterorgiveonememberanextravote

TueNov115:

53:

34[rsSync]replSetSECONDARY

TueNov115:

53:

34[rsHealthPoll]replSetinfomember10.250.7.220:

27018isup

TueNov115:

53:

34[rsHealthPoll]replSetmember10.250.7.220:

27018isnowinstateSECONDARY

TueNov115:

53:

34[rsHealthPoll]replSetinfomember10.250.7.220:

27019isup

TueNov115:

53:

34[rsHealthPoll]replSetmember10.250.7.220:

27019isnowinstateSECONDARY

TueNov115:

53:

34[rsHealthPoll]replSetinfomember10.250.7.220:

27020isup

TueNov115:

53:

34[rsHealthPoll]replSetmember10.250.7.220:

27020isnowinstatePRIMARY

TueNov115:

53:

34[rsMgr]replSetcan'tseeamajority,willnottrytoelectself

TueNov115:

53:

38[rsSync]replSetsyncingto:

10.250.7.220:

27020

从上面的日志来看,这种方法初始化的速度比较快。

当然考虑拷贝数据文件的时间,在大量数据的时候,我们可以选择里面一种方案!

二.第二种方法(向已有的replicaset添加新成员)

向已有的replicaset添加新成员是很简单的,新加的成员可以是空的。

下面介绍一下如何添加新成员:

添加新成员时,必须在新的机器上先起来一个mongodb服务,必须指出要加入的replicaset集群的名字基本语法如下(其他是默认的),然后再在replicaset的master库上执行添加操作:

./mongod-dbpath=/opt/mongodata/r1-port27017-replSetmyset

当然也可以使用下面的命令,将输出日志记录到/opt/mongodata/r1/rac3.27017.log里面!

[mongodb@rac3bin]$./mongod-dbpath=/opt/mongodata/r1-port27017-replSetmyset-logpath=/opt/mongodata/r1/rac3.27017.log-logappend&

第一步:

在主节点上执行添加操作

[mongodb@rac4bin]$./mongo127.0.0.1:

27020

MongoDBshellversion:

2.0.1

connectingto:

127.0.0.1:

27020/test

PRIMARY>rs.status();

{

"set":

"myset",

"date":

ISODate("2011-11-01T06:

13:

01Z"),

"myState":

1,

"syncingTo":

"10.250.7.220:

27018",

"members":

[

{

"_id":

0,

"name":

"10.250.7.220:

27018",

"health":

1,

"state":

2,

"stateStr":

"SECONDARY",

"uptime":

62668,

"optime":

{

"t":

1320066230000,

"i":

1

},

"optimeDate":

ISODate("2011-10-31T13:

03:

50Z"),

"lastHeartbeat":

ISODate("2011-11-01T06:

13:

01Z"),

"pingMs":

0

},

{

"_id":

1,

"name":

"10.250.7.220:

27019",

"health":

1,

"state":

2,

"stateStr":

"SECONDARY",

"uptime":

63887,

"optime":

{

"t":

1320066230000,

"i":

1

},

"optimeDate":

ISODate("2011-10-31T13:

03:

50Z"),

"lastHeartbeat":

ISODate("2011-11-01T06:

13:

01Z"),

"pingMs":

0

},

{

"_id":

2,

"name":

"10.250.7.220:

27020",

"health":

1,

"state":

1,

"stateStr":

"PRIMARY",

"optime":

{

"t":

1320066230000,

"i":

1

},

"optimeDate":

ISODate("2011-10-31T13:

03:

50Z"),

"self":

true

}

],

"ok":

1

}

PRIMARY>rs.add("10.250.7.241:

27017");

{"ok":

1}--添加成功

添加之后,mongodb会自动执行新加节点的恢复操作,所以第一次查询rs.status()时候,新加节点的信息为空,等待恢复完成之后再次查询就有了基本信息了。

PRIMARY>rs.status();

{

....省略....

{

"_id":

2,

"name":

"10.250.7.220:

27020",

"health":

1,

"state":

1,

"stateStr":

"PRIMARY",

"optime":

{

"t":

1320128045000,

"i":

1

},

"optimeDate":

ISODate("2011-11-01T06:

14:

05Z"),

"self":

true

},

{

"_id":

3,

"name":

"10.250.7.241:

27017",

"health":

0,

"state":

8,

"stateStr":

"(notreachable/healthy)",

"uptime":

0,

"optime":

{

"t":

0,

"i":

0

},

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1