资料下载网
首页 计算机 考试教辅
mongoDB主从仲裁集群安装部署技术文档 pdf电子书免费下载,百度云
首页 > 计算机 > 数据库技术 > mongoDB主从仲裁集群安装部署技术文档 pdf电子书免费下载,百度云

《mongoDB主从仲裁集群安装部署技术文档》pdf电子书免费下载


下载方式一:

百度网盘下载地址:https://pan.baidu.com/s/15jQ96KafNLH_NVU6g-2tXQ
百度网盘密码:1111

下载方式二:

http://ziliaoshare.cn/Download/ae_123538_do_mongoDBZCZCJQAZBSJSWD.zip

 


mongoDB主从仲裁集群安装部署技术文档

作者:empty

出版社:empty

《mongoDB主从仲裁集群安装部署技术文档》介绍

mongo安装配置

一、主、从、仲裁环境搭建

1.环境

系统版本:

#cat /etc/issue

CentOS release 6.5 (Final)

系统位数

#uname –a

Linux server142 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

IP和端口:

192.168.192.142:27018

192.168.192.143:27018

192.168.192.144:27018仲裁

2.下载并创建文件夹

下载mongodb-linux-x86_64-2.4.6.tgz,在每台机器上加压,并且

#mkdir data

#mkdir logs

#cd logs

#touch mongodb.log

3.在每台机器解压后的bin下执行命令

142:

./mongod --dbpath=/home/mongodb/mongo/data

--logpath=/home/mongodb/mongo/logs/mongodb.log --port 27018 --replSet

test/192.168.192.143:27018 --maxConns=200 --fork --logappend --nojournal

143:

./mongod --dbpath=/home/mongodb/mongo/data

--logpath=/home/mongodb/mongo/logs/mongodb.log --port 27018 --replSet

test/192.168.192.142:27018 --maxConns=200 --fork --logappend --nojournal

144:

./mongod --dbpath=/home/mongodb/mongo/data

--logpath=/home/mongodb/mongo/logs/mongodb.log --port 27018 --replSet

test/192.168.192.142:27018,192.168.192.143:27018 --fork --logappend --nojuornal

最开始在142执行命令的时候,没有加--nojournal,结果报错:

about to fork child process, waiting until server is ready for connections.

forked process: 5428

all output going to: /home/mongodb/mongo/logs/mongodb.log

ERROR: child process failed, exited with error number 100

解决:

查看日志logs/mongodb.log,发现

步骤:先找到/data下,发现,存在一个mongod.lock文件

#rm –f mongod.lock

删掉lock文件,然后在命令行后面加上—nojournal,重新启动,OK!

4.配置

在143服务器下的../bin下,运行mongodb数据库,注意安装的时候,我们用的不是默认的27017端口,一次,如果直接运行

#./mongo

会提示

看来mongo命令已经默认的连接了27017端口,怎么修改连接的端口呢?

#./mongo –help

懂了!使用

#./mongo -port 27018

就可以连上了。

首先执行

> db.runCommand({ replSetInitiate :{

... _id : test ,

... members :[

... {

... _id :0,

... host : 192.168.192.142:27018

... },

... { _id :1,

... host : 192.168.192.143:27018

... }

... ]}})

或者:

> db.runCommand({ replSetInitiate :{ _id : test , members :[ { _id :0, host : 59.108.137.55:27017 }, { _id :1, host : 59.108.137.56:27017 } ]}});

{ ok : 0, errmsg : access denied; use admin db }

此处提示“使用admin db”,执行一下:

#use admin

再执行上述命令就可以了。此时输出:

{

info : Config now saved locally. Should come online in about a minute. ,

ok : 1

}

然后:

> rs.initiate();

提示输出:

{

info : try querying local.system.replset to see current configuration ,

ok : 0,

errmsg : already initialized

}

是由于之前可能已经执行了

#rs.initiate();

变成:

然后执行下面命令,为集群添加仲裁节点:

> rs.addArb( 192.168.192.144:27018 );

有时会提示:

{

ok : 0,

errmsg : replSetReconfig command must be sent to the current replica set primary.

}

此时提示://非PRIMARY不能动态添加节点,但是此时,提示名已经发生变化:

继续执行:

test:PRIMARY> rs.status()

{

set : test ,

date : ISODate( 2014-10-28T02:47:40Z ),

myState : 1,

members : [

{

_id : 0,

name : server143:27018 ,

health : 1,

state : 1,

stateStr : PRIMARY ,

uptime : 3995,

optime : Timestamp(1414461593, 1),

optimeDate : ISODate( 2014-10-28T01:59:53Z ),

self : true

},

{

_id : 1,

name : 192.168.192.142:27018 ,

health : 1,

state : 2,

stateStr : SECONDARY ,

uptime : 2865,

optime : Timestamp(1414461593, 1),

optimeDate : ISODate( 2014-10-28T01:59:53Z ),

lastHeartbeat : ISODate( 2014-10-28T02:47:39Z ),

lastHeartbeatRecv : ISODate( 2014-10-28T02:47:40Z ),

pingMs : 0,

syncingTo : server143:27018

}

],

ok : 1

}

Server143是什么?不应该是IP吗?

查看一下:/etc/hosts

也就是当前及其就是PRIMARY了,

再执行:

test:PRIMARY> rs.addArb( 192.168.192.144:27018 );

{ ok : 1 }

就OK了。查看一下:

5.测试

此时可以在143上创建一个数据库:

在142上查看:

仲裁节点不存储数据,只是负责故障转移的群体投票。

6.扩展

如果应用的连接数疯狂的增长,mongodb集群马上就扛不住了,怎么扩展呢?并且在不停掉整个集群的基础上扩展?很简单!

Mongodb集群是安装在Linux下的,我本地(192.268.190.50:27017)也有一个mongodb数据库(单点的),怎么才能加入到集群中呢?

第一步:在primary节点下执行

test:PRIMARY> rs.add( 192.168.190.50:27017 );

第二步:启动我本地的mongodb

C: mongodb bin mongod –dbpath=C: mongodb data –port 27017 –replSet test/192.168.192.143:27018 –maxConns=200

关键词是:replSet

第三步:查看dos下的控制台:

第四步:查看143:

可以看到最后一个就是新添加的节点

第五步:测试

在本机192.168.190.50:27017上:

删除节点:

PRIMARY> rs.remove( ip:port )

显示当前谁是primay

PRIMARY> rs.isMaster()

7.读写分离

很重要一点,副本节点默认是不能读的,我们想从副本节点读取数据,需要设置一下。

常规写操作来说并没有读操作多,所以一台主节点负责写,两台副本节点负责读。

8.优化

查看连接数:

chinatetrs:PRIMARY> db.serverStatus().connections()

Wed Oct 29 16:28:35.660 TypeError: Property 'connections' of object [object Object] is not a function

chinatetrs:PRIMARY> db.serverStatus().connections

{ current : 20, available : 799, totalCreated : NumberLong(7776) }

默认是819。

在启动的参数上加一个

--maxConns=3000

可以修改最大连接数。

另外这个连接数还受Linux系统的影响,Linux每个进程的最大连接数:

[root@server142 bin]# ulimit -n

1024

可以修改一下:

[root@server142 bin]# ulimit -n 10000

[root@server142 bin]# ulimit -n

10000


《mongoDB主从仲裁集群安装部署技术文档》目录

计算机


python
AI人工智能
javascript
计算机网络/服务器
数据库技术
计算机F

考试教辅


考研考博
英语四六级

沪ICP备18046276号-5
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:15618918379