搭建mongodb副本集

[root@ mongodb]#  cd /u02

[root@ u02]# mkdir -p mongodb/data_2777

[root@ u02]# mkdir -p mongodb/data_3777

[root@ u02]# mkdir -p mongodb/data_4777

[root@ mongodb]# tar mongodb-linux-x86_64-3.2..tgz

[root@ mongodb]# mv mongodb-linux-x86_64-3.2. mongodb

[root@ mongodb]# mkdir -p   

[root@ ]# mkdir {conf,log,keys,pid} 

[root@ ]# mkdir {conf,log,keys,pid} 

[root@ ]# mkdir {conf,log,keys,pid} 

创建配置文件

[root@ conf]#  vi mongodb_2777.conf

systemLog:
destination: file
logAppend: true
path: /u02/mongodb/mongodb//log/shard1.log
storage:
dbPath: /u02/mongodb/data_2777
journal:
enabled: true
directoryPerDB: true
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: # the maximum of half of physical RAM or gigabyte
directoryForIndexes: true # mongod stores indexes and collections in separate subdirectories under the data (i.e. storage.dbPath) directory
collectionConfig:
blockCompressor: snappy # The default type of compression to use to compress collection data
processManagement:
fork: true # fork and run in background
pidFilePath: /u02/mongodb/mongodb//pid/mongodb_2777.pid # location of pidfile
net:
bindIp: 0.0.0.0
port:
operationProfiling:
slowOpThresholdMs:
mode: slowOp
replication:
replSetName: shard1 #副本集的名称,副本集以此名称来识别是否属于同一个集群中
oplogSizeMB:
#auditLog:
# destination: file
# format: JSON
# path: /u02/mongodb/mongodb//log/audit_log/audit.json
#

启动mongodb

/u02/mongodb/mongodb/bin/mongod -f /u02/mongodb/mongodb//conf/mongodb_2777.conf
/u02/mongodb/mongodb/bin/mongod -f /u02/mongodb/mongodb//conf/mongodb_3777.conf
/u02/mongodb/mongodb/bin/mongod -f /u02/mongodb/mongodb//conf/mongodb_4777.conf

登录2777端口mongodb

[root@ conf]# /u02/mongodb/mongodb/bin/mongo --port
MongoDB shell version: 3.2.
connecting to: 127.0.0.1:/test
Server has startup warnings:
--08T19::35.621+ I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
--08T19::35.621+ I CONTROL [initandlisten]
--08T19::35.622+ I CONTROL [initandlisten]
--08T19::35.622+ I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.
--08T19::35.622+ I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:
--08T19::35.622+ I CONTROL [initandlisten] ** numactl --interleave=all mongod [other options]
--08T19::35.622+ I CONTROL [initandlisten]
--08T19::35.622+ I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
--08T19::35.622+ I CONTROL [initandlisten] ** We suggest setting it to 'never'
--08T19::35.622+ I CONTROL [initandlisten]
--08T19::35.622+ I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
--08T19::35.622+ I CONTROL [initandlisten] ** We suggest setting it to 'never'
--08T19::35.622+ I CONTROL [initandlisten]
shard1:PRIMARY>
shard1:PRIMARY>conf = {_id:"shard1",members:[{_id:,host:"127.0.0.1:2777"}]};

shard1:PRIMARY>rs.initiate(conf) ;

会显示出你的当前数据库服务实例已经加到副本集中,并且是master

shard1:PRIMARY> db.isMaster()
{
"hosts" : [
"127.0.0.1:2777",
"127.0.0.1:3777",
"127.0.0.1:4777"
],
"setName" : "shard1",
"setVersion" : ,
"ismaster" : true,
"secondary" : false,
"primary" : "127.0.0.1:2777",
"me" : "127.0.0.1:2777",
"electionId" : ObjectId("7fffffff0000000000000001"),
"maxBsonObjectSize" : ,
"maxMessageSizeBytes" : ,
"maxWriteBatchSize" : ,
"localTime" : ISODate("2019-10-08T12:12:35.869Z"),
"maxWireVersion" : ,
"minWireVersion" : ,
"ok" :
}

接着添加刚刚那2个服务实例到副本集中

shard1:PRIMARY>rs.add("127.0.0.1:3777");

shard1:PRIMARY>rs.add("127.0.0.1:4777");

查看副本集:

shard1:PRIMARY> rs.status()
{
"set" : "shard1",
"date" : ISODate("2019-10-08T12:14:04.786Z"),
"myState" : ,
"term" : NumberLong(),
"heartbeatIntervalMillis" : NumberLong(),
"members" : [
{
"_id" : ,
"name" : "127.0.0.1:2777",
"health" : ,
"state" : ,
"stateStr" : "PRIMARY",
"uptime" : ,
"optime" : {
"ts" : Timestamp(, ),
"t" : NumberLong()
},
"optimeDate" : ISODate("2019-10-08T12:02:26Z"),
"electionTime" : Timestamp(, ),
"electionDate" : ISODate("2019-10-08T12:01:02Z"),
"configVersion" : ,
"self" : true
},
{
"_id" : ,
"name" : "127.0.0.1:3777",
"health" : ,
"state" : ,
"stateStr" : "SECONDARY",
"uptime" : ,
"optime" : {
"ts" : Timestamp(, ),
"t" : NumberLong()
},
"optimeDate" : ISODate("2019-10-08T12:02:26Z"),
"lastHeartbeat" : ISODate("2019-10-08T12:14:04.654Z"),
"lastHeartbeatRecv" : ISODate("2019-10-08T12:14:03.533Z"),
"pingMs" : NumberLong(),
"syncingTo" : "127.0.0.1:2777",
"configVersion" :
},
{
"_id" : ,
"name" : "127.0.0.1:4777",
"health" : ,
"state" : ,
"stateStr" : "SECONDARY",
"uptime" : ,
"optime" : {
"ts" : Timestamp(, ),
"t" : NumberLong()
},
"optimeDate" : ISODate("2019-10-08T12:02:26Z"),
"lastHeartbeat" : ISODate("2019-10-08T12:14:04.654Z"),
"lastHeartbeatRecv" : ISODate("2019-10-08T12:14:03.414Z"),
"pingMs" : NumberLong(),
"configVersion" :
}
],
"ok" :
}

rs.status()
"health" : 1, #代表机器正常
"stateStr" : "PRIMARY", #代表是主节点,可读写,其中有以下几下状态
1. STARTUP:刚加入到复制集中,配置还未加载
2. STARTUP2:配置已加载完,初始化;
3. RECOVERING:正在恢复,不适用读
4. ARBITER: 仲裁者
5. DOWN:节点不可到达
6. UNKNOWN:未获取其他节点状态而不知是什么状态,一般发生在只有两个成员的架构
7. REMOVED:移除复制集
8. ROLLBACK:数据回滚,在回滚结束时,转移到RECOVERING或SECONDARY状态
9. FATAL:出错。查看日志grep “replSet FATAL”找出错原因,重新做同步
10. PRIMARY:主节点
11. SECONDARY:备份节点

创建数据库:

shard1:PRIMARY> use yoon

查看当前数据库:

shard1:PRIMARY> db
yoon

插入数据:

shard1:PRIMARY> db.movie.insert({"name":"hank"});
WriteResult({ "nInserted" : })

查看当前库下的表:

shard1:PRIMARY> show collections
movie

查看表中数据:

shard1:PRIMARY> db.movie.find()
{ "_id" : ObjectId("5d9c7ee9d7a8df8fd023d6ed"), "name" : "hank" }

登录3777端口查看表movie:

[root@ conf]# /u02/mongodb/mongodb/bin/mongo --port
注意:新建的slave是不能读和写的,当在从服务器上读时会出现errmsg:not master and slaveOk=flase code: 错误,需要执行:rs.slaveOk()来开启读功能
shard1:SECONDARY> rs.slaveOk()

shard1:SECONDARY> show dbs
local .000GB
yoon .000GB
shard1:SECONDARY> use yoon
switched to db yoon
shard1:SECONDARY> show collections
movie
shard1:SECONDARY> db.movie.find()
{ "_id" : ObjectId("5d9c7ee9d7a8df8fd023d6ed"), "name" : "hank" }

MongoDB 副本集搭建的更多相关文章

  1. MongoDB副本集搭建及备份恢复

    一.MongoDB副本集(repl set)介绍 早起版本使用master-slave,一主一从和MySQL类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主: 目前已经淘汰了ma ...

  2. mongodb副本集搭建过程中的问题和解决技巧

    在我以往的认知中,一个系统一旦正式上线,多半不会轻易的迁移服务器,尤其是那种涉及到多个关联应用,涉及到多台硬件服务器的系统,因为这种迁移将是牵一发而动全身的. 但是,却仍然有这种情况存在,就如我这几天 ...

  3. windows版本 MongoDB副本集搭建及开启身份验证

    ------------恢复内容开始------------ ------------恢复内容开始------------ MongoDB副本集搭建 我搭建的是一个主节点,两个副节点 构建目录结构如下 ...

  4. Mongodb副本集搭建经验

    一.环境配置经验 1.一般安装的副本集的时候,主实例可以有数据库和用户:从实例不能.仲裁机不能有任何数据库包括用户 2.搭建副本集的时候Host使用外网IP,否则使用Mongodb VUE 1.6.9 ...

  5. MongoDB 副本集搭建 & 副本集扩容

    副本集的搭建 创建多实例目录 [root@redis03 ~]# mkdir /server/mongodb/2801{7,8,9}/{conf,logs,pid,data} -p 编辑多实例配置文件 ...

  6. mongodb副本集搭建

    1.创建目录 mkdir -p /data/r1  /data/r2  /data/r3 2.启动: bin/mongod --config ../mongod.conf --replSet r1 b ...

  7. 在centos7上搭建mongodb副本集

    1.安装副本集介绍 副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成.通过Replication,将数据的 ...

  8. mongodb 4.0副本集搭建

    近期有同学问mongodb副本集难不难部署,我的回答是不难,很快,几分钟搞定,比mysql MHA简单的不止一点半点. 那么到底如何部署呢?请看下文. 1.  准备工作 1.1 下载软件 选择版本并下 ...

  9. mongo副本集搭建及服务器复用方案

    比较常见的mongodb副本集搭建是有:常规节点.数据副本.仲裁节点组成,也就是需要三台服务器组建.常规节点即数据的主存储节点,数据副本是主存储节点的从属节点,它定期去主节点获取更新日志来更新自己.仲 ...

随机推荐

  1. springboot#下载文件

    膜拜大神 这就是我要的滑板鞋! @RequestMapping(value = "/media", method = RequestMethod.GET) public Respo ...

  2. [CMake笔记] 初识CMake

    与CMake相遇 做C/C++的人都应该经历过,以往拿到一个开源代码,想自己编译出来,总会因为VS的版本不同而出现各种各样的问题,使编译过程困难重重,更多时候就会放弃使用它了.而这个过程反过来,也会使 ...

  3. ch8 基于浮动的布局(两列浮动布局、三列浮动布局)

    CSS布局技术的根本是3个基本概念:定位.浮动.外边距操纵. 只需要设置希望定位的元素的宽度,然后将它们向左或向右浮动.因为浮动的元素不再占据文档流中的任何空间,它们就不再对包围他们的块框产生任何影响 ...

  4. redis 之redis集群与集群配置

    一.为什么要用集群 redis3.0集群采用P2P模式,完全去中心化,将redis所有的key分成了16384个槽位,每个redis实例负责一部分slot,集群中的所有信息通过节点数据交换而更新. r ...

  5. 提高unigui开发效率的两个方法(02)

    1.编译时自己退出运行的程序. 在做unigui开发时,每次编译运行时,unigui的应用都会在后台运行,每次重新编译时都必须手工在任务栏里将应用退出才行,非常麻烦,可以在项目编译的参数里加上杀进程的 ...

  6. Centos7 配置subversion

    CentOS7:配置SVN服务器 Posted on 2016-11-10 15:17 eastson 阅读(4266) 评论(0) 编辑 收藏 1. 安装 CentOS通过yum安装subversi ...

  7. 本周总结(19年暑假)—— Part2

    日期:2019.7.21 博客期:108 星期日 这几天正在认真学习大数据,我是在B站上看尚老师的视频搞得.我已经配好了Hadoop的基本环境,现在学习的是HDFS的相关内容

  8. 跨服务器的SQL语句如何书写

    select  *  into  本地库名..表名  from  OPENDATASOURCE(                  'SQLOLEDB',                  'Data ...

  9. spark广播变量定时更新

    广播变量 先来简单介绍下spark中的广播变量: 广播变量允许程序员缓存一个只读的变量在每台机器上面,而不是每个任务保存一份拷贝.例如,利用广播变量,我们能够以一种更有效率的方式将一个大数据量输入集合 ...

  10. 无需密码攻击 Microsoft SQL Server

    最近的一次渗透测试里,在我们捕获的一些数据包中发现了一些未经加密的 Microsoft SQL Server(MSSQL) 流量.起初,我们认为这样就可以直接嗅探到认证凭证,然而,MSSQL 加密了认 ...