mongodb安装和副本集的搭建

CentOS 编译安装 Mongodb Centos 7.0 + Mongodb 2.6.6 (实测 笔记 )

环境:

系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡)

系统版本:CentOS-7.0-1406-x86_64-DVD.iso
安装步骤:

1.安装基本软件包

[[email protected] ~]# yum install vim wget lsof gcc gcc-c++ bzip2 -y

[[email protected] ~]# yum install net-tools bind-utils -y
1.3 显示IP地址 (centos7需要先安装 net-tools bind-utils包)

[[email protected] ~]# ifconfig|grep inet

inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255

2.编译安装mongodb

2.1 下载包
[[email protected] ~]# cd /usr/local/src/

[[email protected] ~]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.6.tgz

[[email protected] ~]# tar -zvxf mongodb-linux-x86_64-2.6.6.tgz

[[email protected] ~]# mv mongodb-linux-x86_64-2.6.6 /opt/mongodb/

2.2 配置path环境变量,确保mongodb的bin目录包含在path环境变量中。

[[email protected] ~]# vim /etc/profile

找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL,在这行上面添加以下内容:

#set for mongodb
export MONGODB_HOME=/opt/mongodb
export PATH=$MONGODB_HOME/bin:$PATH

保存退出
[[email protected] ~]# echo $PATH

[[email protected] ~]# source /etc/profile

[[email protected] ~]# echo $PATH

[[email protected] ~]# mongod -version

显示以下内容,则表示安装成功
db version v2.6.6
2014-12-18T11:02:15.100+0800 git version: 608e8bc319627693b04cc7da29ecc300a5f45a1f
2.3 建立存储数据及日志的目录:

[[email protected] ~]# mkdir -p /data/mongodb/journal

[[email protected] ~]# mkdir -p /data/mongodb/log

[[email protected] ~]# touch /data/mongodb/log/mongodb.log
2.4 增加mongodb用户及设置权限

[[email protected] ~]# useradd mongodb -M -s /sbin/nologin

[[email protected] ~]# chown -R mongodb.mongodb /data/mongodb
2.5 建立配置文件

[[email protected] ~]# vim /etc/mongodb.conf

输入以下内容

dbpath=/data/mongodb
logpath=/data/mongodb/log/mongodb.log
logappend=true
port=27017
fork=true
noauth=true
nojournal = true
smallfiles = true
noprealloc = true

httpinterface = true

replSet=rs                ==========设置副本集群的时候的集群名称

bind_ip=172.16.2.117     =========== 不同的机器绑定本机ip 不同

保存,退出

# **********************************************
#  mongodb的参数说明:
#
#  --dbpath 数据库路径(数据文件)
#  --logpath 日志文件路径
#  --master 指定为主机器
#  --slave 指定为从机器
#  --source 指定主机器的IP地址
#  --pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,

#    最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
#  --logappend 日志文件末尾添加
#  --port 启用端口号
#  --fork 在后台运行
#  --only 指定只复制哪一个数据库
#  --slavedelay 指从复制检测的时间间隔
#  --auth 是否需要验证权限登录(用户名和密码)
2.6 将mongod服务加到开机启动服务

[[email protected] ~]# vim /lib/systemd/system/mongodb.service

输入以下内容

[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/data/mongodb/mongod.lock
ExecStart=/opt/mongodb/bin/mongod -f /etc/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
保存,退出
[[email protected] ~]# systemctl enable mongodb.service

[[email protected] ~]# systemctl list-unit-files|grep enabled|grep mongodb

[[email protected] ~]# systemctl daemon-reload

[[email protected] ~]# systemctl start mongodb.service

[[email protected] ~]# systemctl status mongodb.service -l
3 测试数据库是否正常

[[email protected] ~]# ps -ef|grep mongod

[[email protected] ~]# mongo admin

添加admin用户名密码,使用创建的用户登录MongoDB:

> show dbs

> use admin

> db.addUser('admin','manager')

> db.auth('admin','manager')

> show collections

> db.system.users.find()

> exit
4 防火墙添加27017端口

[[email protected] ~]# iptables -L|grep ACCEPT

[[email protected] ~]# firewall-cmd --zone=public --add-port=27017/tcp --permanent

[[email protected] ~]# firewall-cmd --reload

[[email protected] ~]# iptables -L|grep ACCEPT

5)配置服务器的副本集群

Jenkins     172.16.2.117    (仲裁

Agent       172.16.2.134    (副本

Host        172.16.2.177    (主机

首先登陆host服务器

mongo --port 27017 --host 172.16.2.177

初始化副本集

rs.initiate()

rs.conf()

rs.add("172.16.2.134:27017")

rs.addArb("172.16.2.117:27017")

rs.status()

比如在主服务器上面插入10000条数据

mongo --port 27017 --host 172.16.2.177

use copp

for(var i=0;i<100000;i++){db.userInfo.insert({"userName":"user"+i,"depart":"towngas","userNo":"no."+i})}

db.userInfo.count();

在从库上面查询一下

要先执行:
rs.slaveOk();

再次查询

如果主库宕机之后那么实现从库接替主库:

从库的状态

从库会接替主库的位置

如果主库启动之后会变成从库,那么从库依然是主库

ZHUYI :arbiter 最为仲裁者,没有数据副本存储在本地,能读取复制集的信息

http://blog.csdn.net/chris_111x/article/details/52440003

可以参考

原文地址:http://blog.51cto.com/xiaorenwutest/2136423

时间: 2024-08-29 07:40:14

mongodb安装和副本集的搭建的相关文章

NoSQL -- Mongodb 安装 使用 副本集 备份恢复

Mongodb 是由c++编写的基于分布式文件存储的开源数据库系统,介于关系数据库和非关系数据库之间,支持查询语言很强大.高负载情况下,添加多个节点保证服务器性能,旨在为web应用提供可扩展的高性能存储:mongodb将数据存储为一个文档,由键值对(key=>value)组成,类似json对象. 官网:https://www.mongodb.com/ 应用: CERN,著名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用MongoDB: Craiglist,上使用MongoDB的存档数

架构(三)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/

我们的一个已投产项目的高可用数据库实战 - mongo 副本集的搭建详细过程

我们的 mongo 副本集有三台 mongo 服务器:一台主库两台从库.主库进行写操作,两台从库进行读操作(至于某次读操作究竟路由给了哪台,仲裁决定),实现了读写分离.这还不止,如果主库宕掉,还能实现不需要用户干预的情况下,将主库自动切换到另外两台从库中的某一台,真正实现了 db 的高可用. 1. 背景 1.1 环境 CPU核数:4 内存配置:8G 带宽:100MB 磁盘:系统盘 40G,数据盘 180G 操作系统版本:Ubuntu 14.04 64位 1.2 系统部署结构图 2. MongoD

【六】MongoDB管理之副本集

一.复制介绍 所谓的复制就是在多个主机之间同步数据的过程. 1.数据冗余及可用性 复制技术提供数据冗余及可用性,在不同的数据库服务器上使用多个数据副本,复制技术防止单个数据库服务器出现数据故障而出现数据丢失.通过设置从库,你能在上面进行灾难切换.数据备份.报表服务等.在某些应用场景下,你还能提高读的能力,客户端通过将读和写请求分发到不同的服务器上面. 2.MongoDB复制技术 副本集是一组共享相同数据集的mongod实例.当所有写请求发向主库,而其他从库从主库上应用这些操作,以保证所有成员数据

mongoDB主从和副本集群配置

mongoDB主从和副本集群配置 Mongodb是时下流行的NoSql数据库(MongoDB是一个基于分布式文件存储的数据库),它的存储方式是文档式存储,并不是Key-Value形式.   优势: 快速!(当然,这和具体的应用方式有关,通常来说,它比一般的关系型数据库快5位左右.) 很高的可扩展性–轻轻松松就可实现PB级的存储(但是可能我们并不需要PB级的存储,10TB可能就够了) 他有一个很好的 replication 模式 (replica sets) 有很完善的Java API 他的存储格

Docker搭建MongoDB 4.0副本集

环境: 系统版本:CentOS 7.5 内核:4.18.7-1.el7.elrepo.x86_64 Docker-ce: 18.06 MongoDB: 4.0.3 宿主机IP:192.168.1.1 MongoDB1端口:30001 MongoDB2端口:30002 MongoDB3端口:30003 一.安装docker.docker-compose wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker

mongoDB的读书笔记(04)_【Replica】(05)_初探Replica set副本集的搭建 By Test模式

Replica set Deployment On Test Mode 为啥是测试模式 实战 先絮叨絮叨操作系统 在一台机器上创建模拟5个节点 进入非db连接模式 建立5个节点的test script 启动所有的节点 配置节点 进入一个节点 配置Replica的config 进行初始化 check心跳和log 查看Replia的详细 查看Secondary Replia的详细 写数据实验 Primary写入 Secondary查看 Replica set Deployment On Test M

MongoDB副本集的搭建

参考博文:https://www.jianshu.com/p/ca620842868a 一.安装准备1.修改系统配置#关闭selinux.firewall#修改/etc/security/limits.conf添加以下内容: soft nofile 65536 hard nofile 65536 soft nproc 65536 hard nproc 65536 #修改/etc/security/limits.d/20-nproc.conf soft nproc 655363.创建账户.目录gr

MongoDB 3.0副本集搭建

环境配置 MongoDB安装 下载yum源配置 wget https://repo.mongodb.org/yum/redhat/mongodb-org-3.0.repo  mv mongodb-org-3.0.repo  /etc/yum.repos.d/ 安装mongodb yum -y install mongodb-org 修改mongodb配置文件 # 修改监听地址为0.0.0.0 net:   port: 27017   bindIp: 0.0.0.0 # 修改副本集配置 repli