mongodb安装配置及副本集的操作

一、Mongdb3.0安装

官网下载最新稳定版本的mongodb软体

https://www.mongodb.org/downloads

解压软体

[[email protected] service]# tar zxvf mongodb-linux-x86_64-rhel62-3.0.3.tgz 
mongodb-linux-x86_64-rhel62-3.0.3/README
mongodb-linux-x86_64-rhel62-3.0.3/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-rhel62-3.0.3/GNU-AGPL-3.0
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongodump
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongorestore
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongoexport
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongoimport
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongostat
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongotop
mongodb-linux-x86_64-rhel62-3.0.3/bin/bsondump
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongofiles
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongooplog
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongoperf
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongod
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongos
mongodb-linux-x86_64-rhel62-3.0.3/bin/mongo

创建mongdb数据存放路径及日志存放路径

[[email protected] service]# mkdir -p /date/{mongodbdata,mongodb_logs}

建立mongod账号,授权数据目录

[[email protected] date]# useradd mongod
[[email protected] date]# chown -R mongod.mongod /date/mongodbdata/

创建mongod.conf配置文件,只需要以下几个选项即可

[[email protected] date]#cat /etc/mongod.conf 
dbpath = /data/mongodata                           #mongodb数据存放路径
logpath = /data/mongodb_logs/mongodb.log           #mongodb日志存放路径
httpinterface = true                               #mongodb管理端口默认+1000:280
fork = true                                        #后台启动

二、启动Mongodb初始化数据

(1)第一种直接在命令行中指定路径和日志

/usr/local/service/mongodb-linux-x86_64-rhel62-3.0.3/bin/mongod --dbpath=/date/mongodbdate/ --logpath=/date/mongodb_logs/mongodb.log --fork
about to fork child process, waiting until server is ready for connections.
forked process: 5238
child process started successfully, parent exiting
端口已经起来了:
[[email protected] mongodb_logs]# lsof -i :27017
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mongod  5238 root    6u  IPv4  41939      0t0  TCP *:27017 (LISTEN)
初始化由于要同步数据,建立本地的一些数据文件。会启动比较慢。

(2)第二种方式启动:通过加载配置文件启动(推荐)

[[email protected] mongodbdate]# /usr/local/service/mongodb-linux-x86_64-rhel62-3.0.3/bin/mongod -f /etc/mongod.conf 
about to fork child process, waiting until server is ready for connections.
forked process: 5382
child process started successfully, parent exiting

进入终端查看数据库

[[email protected] mongodb_logs]# /usr/local/service/mongodb-linux-x86_64-rhel62-3.0.3/bin/mongo
MongoDB shell version: 3.0.3
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	http://docs.mongodb.org/
Questions? Try the support group
	http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2015-06-30T17:37:53.882+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2015-06-30T17:37:53.882+0800 I CONTROL  [initandlisten] 
2015-06-30T17:37:53.905+0800 I CONTROL  [initandlisten] 
2015-06-30T17:37:53.905+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always‘.
2015-06-30T17:37:53.905+0800 I CONTROL  [initandlisten] **        We suggest setting it to ‘never‘
2015-06-30T17:37:53.905+0800 I CONTROL  [initandlisten] 
2015-06-30T17:37:53.905+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is ‘always‘.
2015-06-30T17:37:53.906+0800 I CONTROL  [initandlisten] **        We suggest setting it to ‘never‘
2015-06-30T17:37:53.906+0800 I CONTROL  [initandlisten] 
> show dbs;
local  0.078GB

启动报错会出现以下:

[[email protected] mongodbdate]# /usr/local/service/mongodb-linux-x86_64-rhel62-3.0.3/bin/mongod -f /etc/mongod.conf 
about to fork child process, waiting until server is ready for connections.
forked process: 5298

检查原因:

第一:由于之前没有正常的退出Mongodb服务,需要删除mongod.lock文件,再次启动恢复正常。

第二:配置文件有问题,需要检查配置文件是否有特殊字符,导致无法解析

三、mongodb副本集配置

配置mongodb的副本集务必要做好以下几点:

1、各个节点能够正常访问mongodb的socket端口,iptables要放行

2、SELINUX必须要关闭掉,以免禁止端口复制

3、各个服务器节点要做好解析/etc/hosts

4、由于副本集是通过Heartbeat心跳线连接到,务必同步好各个节点的时间

小注:本人由于之前没有注意到这些,被坑了好久。哈哈!!!

mongodb复制过程及概念

(1)主节点将数据修改操作保存至oplog,oplog:大小固定的文件,存储在local数据库

(2)初始同步(inital sync)

节点没有任何数据

节点丢失副本复制历史

:克隆所有的数据库

:应用数据集的所有改变:复制oplog并应用于本地

:为所有collection的构建索引

(3)回滚后追赶(post-rollback catch-up)

(4)切分块迁移(shareding chunk migrations)

local:存放了副本集的所有元素和oplog;用于存储oplog的是一个名为oplog.rs的collection;

oplog.rs的大小依赖于OS及文件系统;但可以自定义其大小oplogsize

环境试验

时间: 2024-10-13 00:02:47

mongodb安装配置及副本集的操作的相关文章

mongodb主从配置:副本集replica set

1. 副本集 mongodb的主从部署,常用方式为副本集(replica set)方式. replica set为多个mongod实例,组成一组group,包括一个主primary,多个从secondary. 这种一主多从的方式的好处是,mongodb自运维,如果主服务器挂了,会通过心跳自动检测,选举出一个新的主来.不需要人工处理. 2. 主-从 三台机器做例子,一主俩从. 主和从之间有心跳,来检测是否都处于激活状态. 每2s互相发一次心跳,如果10秒内没有返回状态,则把这个服务标记为丢弃,不可

MongoDB 3.2.8 副本集搭建

记录一下,MongoDB的角色创建及配置,以便以后使用 简介 Replica Set,中文翻译叫做副本集,不过我并不喜欢把英文翻译成中文,总是感觉怪怪的.其实简单来说就是集群当中包含了多份数据,保证主节点挂掉了,备节点能继续提供数据服务,提供的前提就是数据需要和主节点一致 Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点.主备节点存储数据,仲裁节点不存储数据.客户端同时连接主节点与备节点,不连接仲裁节点. 默认设置下,主节点提供所有增删查改服务,备

MongoDB的主从复制和副本集

mongoDB的两个特性主从复制和副本集,实现了数据的同步备份 一.主从复制 主从复制是一个简单的数据库同步备份的集群技术.例如主服务器宕机了,可以直接使用从服务器,主服务器恢复后在进行同步,保证了业务的连续性 注意点: 主服务器只有一台 从服务器需要知道自己的数据源,也就是对应的主服务器 --master确定主服务器,--slave和--source来控制从服务器 1.举例: 1).主服务器的端口是60000 2).从服务器的端口是60001 如何配置主从复制? 主服务器的配置: dbpath

架构(三)MongoDB安装配置以及集群搭建

一 安装 1.1 下载MongoDB 我个人不太喜欢用wget url, 之前出现过wget下载的包有问题的情况 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.7.tgz 1.2 上传服务器并解压 tar -zxvf mongodb-linux-x86_64-3.4.7.tgz 1.3 移动到/data/program/software/mongodb mv mongodb-linux-x86_64-3.4.7/ /data/

Mongodb 4.2版本副本集配置

常见的复制集 线上环境常见的架构为副本集,可以理解为一主多从. 下图:1主2从 下图:一主一从一仲裁 服务器信息: 三台机器一样配置2核16G内存 存储盘100G "host" : "10.1.1.159:27020""host" : "10.1.1.77:27020""host" : "10.1.1.178:27020 1.我们在其中一台机器配置: [[email protected] ~]#

Mongodb的Replica Set 副本集集群搭建

实验性的搭建一个集群做练手. 配置和环境: win10(本机)和linux(CentOs7)内网服务器各一台. Mongodb3.07 目标:Replica set 副本集结构,一个primary一个slave,实现读写分离的同步数据集群. 一.本机和内网服务器安装mongo 可参考我的另外两篇文章: Mongodb在windows和linux平台的安装配置(http://fykknd.blog.51cto.com/3175618/1716343) Mongodb权限管理(http://fykk

MongoDB安装配置

一.什么是MongoDB? MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统,属于NoSQL 在高负载的情况下,可以添加更多的节点,来保证服务器性能 MongoDB旨在为WEB应用提供可扩展的高性能数据 存储解决方案,不能完全取代MySQL. MongoDB将数据存储为一个文档,数据结构由键值(Key=>value)对组成.MongoDB文档类似于JSON对象.字段值可以包含其他文档,数组及文档数组. 二.和关系型数据库比较 SQL术语/概念 MongoDB术语/概念

mongodb学习之:副本集

前面一张介绍了主从模式,现在mongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式.副本集不能在一台电脑上操作.需要准备3台电脑进行搭建.副本集就是mongoDB副本所组成的一个集群. 同步原理是,写操作发生在主库,从库同步主库的OpLog日志. 集群中没有特定的主库,主库是选举产生,如果主库down了,会再选举出一台主库. 下面来看具体的搭建.使用三台电脑进行搭建,分别是 192.168.0.12:27017   zhf-maple 192.168.0.11:27017   z

mongodb运维之副本集实践

忽然发现芋头好鸡贼 正式环境,4台机器+一台定时任务的机器.服务器是阿里云的ECS,负载均衡用的是阿里云的SLB,mysql用阿里云的RDS,缓存用阿里云的OCS,运维基本上是都不需要担心了,现在的云服务已经非常完善了,其实我们用阿里云的服务非常多,大概有20多个类型的服务,感谢阿里云. 而我的技术栈是nodejs + mongodb,而阿里云有k-v兼容redis协议的nosql,无mongodb,所以就要悲剧的自己运维mongodb了. 阿里的ots是非结构化存储,没有nodejs的sdk,