生产环境下搭建mongodb复制集高可用环境,单机复
分类:会员中心

情形描述:有三台ubuntu服务器,,每台服务器桐月经有mongodb实例。创制3个mongo2.4的新实例,分别作为四个复制集节点,同时保险了日前单节点情状的安居

规划:

3台服务器都早就有单个mongo实例运转

replSet 复制集名称: rs1

步骤

MongoDB数据库安装安装路线为:/usr/local/mongodb/

1.创办mongo新实例要求的目录财富   主倘若数据库寄存目录、日志文件、配置文件、key文件(保证节点通信)  

  文件能够在别的地点创立,作者在/usr/local下的创设mongodb_rs作为新实例的目录,在该目录下开创财富目录

  1.数据库  mkdir db

  2.日志文件  mkdir log 

  3.计划文件  touch rs.conf  能够cat /etc/mongodb.conf>rs.conf初阶化,增添或退换下边几项

port = 29010             #更正端口 先lsof -i:29010查看是还是不是被占用

fork=true                   #后台demon进度运转

journal=true              #启用可靠性日志

oplogSize=2048  

smallfiles=true

replSet=test_rs         #复制集名称

keyFile=/usr/local/mongodb_rs/key.key   #复制集通讯key

4.key文书  touch key.key  生成秘钥 openssl rand 888 -base64>key.key  用888决不太长 key的尺寸是有约束的

好了  目前目录能源都早已创办,先不运维。在其他2个节点重复以上进程,当然第4步用重新,把第意气风发台上的key.key文件内容复制到每叁个节点的key.key文件下

在每风流洒脱台服务节点运维mongo的新实例(mongodb_rs目录下)  mongod -f rs.conf 稍等说话会提示successful  假使不成事查看rs.log日志文件查找原因,可能更动一下端口号

复制集成员IP与端口:

2.陈设复制集 

    选豆蔻梢头台服务节点作为primary库192.168.1.132,在服务器上三翻七次mongod实例mongo --port=29010

    1.开首化复制集  rs.initiate()  查看rs.conf()  符合规律意况下生成了三个节点hostname:29010

       这么些hostname是主机名,把这一个主机名加多到别的2台节点的/etc/hosts文件之中

    2.增添节点  

      rs.add("192.168.1.133:29010")

      rs.add("192.168.1.134:29010")

生产环境下搭建mongodb复制集高可用环境,单机复制集安装。   3.安装优先级,当主节点当机之后重启的时候任然能形成primary节点,贰个节点为0  不会成为主节点

    cfg = rs.conf()

    cfg.members[0].priority=3

    cfg.members[1].priority=1

    cfg.members[0].priority=0

      重新加载

     rs.reconfg(cfg)

   4.翻看各种节点的情形 (当然你能够先退出 在签到查看景况)

     health:1  #好端端境况

    "stateStr" : "PRIMARY"   #标志主节点

STARTUP:刚踏入到复制聚集,配置还没加载

STARTUP2:配置已加载完,开端化状态

 RECOVEPRADOING:正在苏醒,不适用读

ARBITER: 仲裁者

DOWN:节点不可到达

UNKNOWN:未获得此外节点状态而不知是什么样状态,平日发生在独有三个成员的架构,脑裂

REMOVED:移除复制集

ROLLBACK:数据回滚,在回滚甘休时,转移到RECOVE凯雷德ING或SECONDA瑞鹰Y状态

FATAL:出错。查看日志grep “replSet FATAL”搜索错原因,重新做少年老成道

PRIMARY:主节点

SECONDARAV4Y:备份节点

   5.为数据库创制客商名和密码  有限扶持程序任何情状下(主库挂了)访谈叁个保障的库  如为app库创制贰个账号

     use app

    db.addUser("test","123")

   

节点1: localhost:28010   (默认的primary节点)

3.测量试验数据同步  主从切换

     1.做到了布置之后  先看看secondary是不是同步了主库的数量   可能kill主库的mongo进度  等待弹指探视是还是不是主库发生了切换   然后重启看主库是还是不是再次成为了主库

节点2: localhost:20811

4.使用pymongo连接mongodb数据库 

import pymongo

client=pymongo.MongoClient("192.168.1.132:29010",replicaSet="test_rs")

db = client["app"]

db.authenticate('test','123')

db.user.find()

db.connection.host  #打字与印刷当前三番两次服务器

行使pymongo连接数据库之后能够测量检验   ,当kill主库之后  再一次打字与印刷db.connection.host看看是否还是上次那多少个host   假设不一致表明故障转移了

节点3: localhost:28012

5.如若要做读写分离,设置从库可读,pymongo也进步了如此的api,大家有意思味能够看看

复制集各节点的数据文件,日志文件,私钥文件路线:

节点1: /data/data/r0  , /data/log/r0.log , /data/key/r0

节点2: /data/data/r1  , /data/log/r1.log , /data/key/r1

节点3: /data/data/r2  , /data/log/r2.log , /data/key/r2

 

$ wget

--2016-07-22 11:17:12-- 

Resolving fastdl.mongodb.org (fastdl.mongodb.org)... 54.182.5.247, 54.182.5.9, 54.182.5.45, ...

Connecting to fastdl.mongodb.org (fastdl.mongodb.org)|54.182.5.247|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 71943658 (69M) [application/x-gzip]

Saving to: ‘mongodb-linux-x86_64-rhel70-3.2.8.tgz’

 

100%[===============================================================================>] 71,943,658   116KB/s   in 16m 37s

 

2016-07-22 11:33:51 (70.5 KB/s) - ‘mongodb-linux-x86_64-rhel70-3.2.8.tgz’ saved [71943658/71943658]

 

$tar zxvf mongodb-linux-x86_64-rhel70-3.2.8.tgz -C /usr/local/

$mv mongodb-linux-x86_64-rhel70-3.2.8 mongodb

1卡塔 尔(英语:State of Qatar) 创设数据文件存款和储蓄路线

[root@node222 mongodb]# mkdir -p /data02/mongors/data/r0

[root@node222 mongodb]# mkdir -p /data02/mongors/data/r1

[root@node222 mongodb]# mkdir -p /data02/mongors/data/r2

 

 

2)创造日志文件路线

[root@node222 mongodb]# mkdir -p /data02/mongors/log

 

3)创制主从key文件

用以标记集群的私钥的欧洲经济共同体路径,假诺每种实例的key file内容不平等,程序将不能够健康使用

[root@node222 mongodb]# mkdir -p /data02/mongors/key

[root@node222 mongodb]# echo "this is rs1  key" > /data02/mongors/key/r0

[root@node222 mongodb]# echo "this is rs1  key" > /data02/mongors/key/r1

[root@node222 mongodb]# echo "this is rs1  key" > /data02/mongors/key/r2

[root@node222 mongodb]# chmod 600 /data02/mongors/key/r*

 

4)启动3个实例

逐一增加运转参数,在那之中多个MongoDB实例:

[root@node222 mongodb]# /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r0 --fork --port 28010 --dbpath /data02/mongors/data/r0 --logpath=/data02/mongors/log/r0.log --logappend

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

forked process: 16629

child process started successfully, parent exiting

[root@node222 mongodb]# /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r1 --fork --port 28011 --dbpath /data02/mongors/data/r1 --logpath=/data02/mongors/log/r1.log --logappend

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

forked process: 16666

child process started successfully, parent exiting

[root@node222 mongodb]# /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r2 --fork --port 28012 --dbpath /data02/mongors/data/r2 --logpath=/data02/mongors/log/r2.log --logappend

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

forked process: 16703

child process started successfully, parent exiting

[root@node222 mongodb]#

 

注:运维命令的参数分别为,mongod为主运维命令, replSet内定复制集名为rs1,keyfile钦定公钥文件 ,fork钦定运转情势为deamo后台运转;port内定端口号,dbpath钦命数据文件目录,logpath钦点日志文件,logappend钦点错误日志为日志追加方式;

 

通过进程和端口,验证运行状态

[root@node222 mongodb]# ps -ef|grep mongo

root     16629     1  0 17:36 ?        00:00:00 /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r0 --fork --port 28010 --dbpath /data02/mongors/data/r0 --logpath=/data02/mongors/log/r0.log --logappend

root     16666     1  0 17:36 ?        00:00:00 /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r1 --fork --port 28011 --dbpath /data02/mongors/data/r1 --logpath=/data02/mongors/log/r1.log --logappend

root     16703     1  0 17:36 ?        00:00:00 /usr/local/mongodb/bin/mongod --replSet rs1 --keyFile /data02/mongors/key/r2 --fork --port 28012 --dbpath /data02/mongors/data/r2 --logpath=/data02/mongors/log/r2.log --logappend

root     16739 12972  0 17:37 pts/1    00:00:00 grep --color=auto mongo

 

[root@node222 mongodb]# netstat -tunlp |grep mong

tcp        0      0 0.0.0.0:28010           0.0.0.0:*               LISTEN      16629/mongod       

tcp        0      0 0.0.0.0:28011           0.0.0.0:*               LISTEN      16666/mongod       

tcp        0      0 0.0.0.0:28012           0.0.0.0:*               LISTEN      16703/mongod       

[root@node222 mongodb]#

 

5)配置及初始化 Replica Sets

报到到primary服务器上:

# /usr/local/mongodb/bin/mongo -port 28010

配备复制集:

> config = {_id: 'rs1', members: [

                           {_id: 0, host: 'localhost:28010',priority:1},

                           {_id: 1, host: 'localhost:28011'},

                           {_id: 2, host: 'localhost:28012'}]

            }

开端化配置,使地方的配置生效:

>  rs.initiate(config);

6)查看复制集状态

> rs.status()

在primary节点上查看复制集状态:

> rs.isMaster()

 

能够再primary节点进行各个添删改查等种种数码操作,别的非master节点不可能张开各个数码操作,也不能够倡导复制集改进命令

 

进程如下:(securecrt推行时候总是会复制一下回显卡塔尔国

[root@node222 mongodb]#  /usr/local/mongodb/bin/mongo -port 28010

MongoDB shell version: 3.2.8

connecting to: 127.0.0.1:28010/test

> use adminduse admind

switched to db admind

> use adminuse admin

switched to db admin

> config = {_id: 'rs1', members: [config = {_id: 'rs1', members: [

...              {_id: 0, host: 'localhost:28010',priority:1},             {_id: 0, host: 'localhost:28010',priority:1},

...              {_id: 1, host: 'localhost:28011'},             {_id: 1, host: 'localhost:28011'},

...              {_id: 2, host: 'localhost:28012'}]             {_id: 2, host: 'localhost:28012'}]

...       }      }

{

        "_id" : "rs1",

        "members" : [

本文由亚洲城ca88com手机版发布于会员中心,转载请注明出处:生产环境下搭建mongodb复制集高可用环境,单机复

上一篇:【yzc888亚洲城】通过ProGet搭建一个内部的Nuget服务 下一篇:没有了
猜你喜欢
热门排行
精彩图文
  • 生产环境下搭建mongodb复制集高可用环境,单机复
    生产环境下搭建mongodb复制集高可用环境,单机复
    情形描述:有三台ubuntu服务器,,每台服务器桐月经有mongodb实例。创制3个mongo2.4的新实例,分别作为四个复制集节点,同时保险了日前单节点情状的安居 规划:
  • 雪域17日旅行攻略,机票最低190元
    雪域17日旅行攻略,机票最低190元
    雪域17日旅行攻略,机票最低190元。冬辰参观去何方?许六人都不会首荐江西,因为太远.因为太冷,因为开支太高.因为高原反应 喜欢 评论 浏览 天数:1
  • 严肃的谈一谈非主流与杀马特
    严肃的谈一谈非主流与杀马特
    近些日子一贯在纠缠三个小说的内容,小编不精通该用什么样的办法表明出来。于是写了删,删了改,却依然未能使和煦称心如意。想着那年就快截至了,
  • 1的单节点安装
    1的单节点安装
    Win10上利用子系统搭建hadoop当地开辟情形及常见难点一蹴而就 服务器遭遇:Ubuntu15.04、jdk1.7、Hadoop2.7.1 1的单节点安装。说明 满心激励的备选攻读hadoop,没悟
  • 集聚温商力量,第十四届全国各地温州商会年会
    集聚温商力量,第十四届全国各地温州商会年会
    ca亚洲城666最新网址,  集聚温商力量,第十四届全国各地温州商会年会郑州温商再获殊荣。商家着重报讯(新闻报道工作者朱颜北) 前不久,来自全国各