【Mongo】 环境搭建部署
来源:互联网 发布:淘宝达人申请步骤 编辑:程序博客网 时间:2024/06/06 00:20
下载安装
机器环境:redhat linux
安装方式:yum
安装版本:3.4
- Configure repository.
创建文件 /etc/yum.repos.d/mongodb-enterprise.repo
[mongodb-enterprise] name=MongoDB Enterprise Repository baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.4/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
- Install the MongoDB Enterprise packages and associated tools.
sudo yum install -y mongodb-enterprise
- default file path
/etc/mongod.conf 配置文件 /var/log/mongodb 日志路径 /var/lib/mongo 默认的数据文件 /usr/bin/mongo 二进制文件 /var/run/mongodb 进程文件
- run MongoDB
sudo service mongod start sudo service mongod stop sudo service mongod restart 指定配置文件启动 mongod -f /etc/mongod.conf mongod --config /etc/mongod.conf
- Shell
mongo 127.0.0.1:27017
- Official reference
https://docs.mongodb.com/manual/tutorial/install-mongodb-enterprise-on-red-hat/
官方推荐yum安装,但是yum不可用或者使用不便时也可tar包安装,方式如下:
机器环境:redhat 7.3
安装方式:tar包
Install any missing dependencies.
RedHat Version 7
yum install cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-plain krb5-libs libcurl libpcap lm_sensors-libs net-snmp net-snmp-agent-libs openldap openssl rpm-libs tcp_wrappers-libs
- Download
官网下载中心
tar -zxvf mongodb-linux-s390x-enterprise-rhel72-3.4.5.tgz 下载后解压缩tar包
- Path
cp ~/mongodb-linux-s390x-enterprise-rhel72-3.4.5/bin/* /bin/
- Official reference
https://docs.mongodb.com/manual/tutorial/install-mongodb-enterprise-on-linux/
复制集(三个节点)
搭建三个节点的最简复制集,一个primary节点,两个secondary节点
- 配置文件
# mongod.conf# for documentation of all options, see:# http://docs.mongodb.org/manual/reference/configuration-options/# where to write logging data.systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log# Where and how to store data.storage: dbPath: /opt/media/data/mongo directoryPerDB: true journal: enabled: true# how the process runsprocessManagement: fork: true # fork and run in background pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile# network interfacesnet: port: 27017# bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.replication: replSetName: rs0
- 启动实例
按照配置文件配置primary.conf以及secondary.conf并启动三个实例
mongod -f /opt/conf/mongo/primary.conf mongod -f /opt/conf/mongo/secondary.conf`
- 初始化复制集
在预定的primary节点上打开mongo shell
mongo 127.0.0.1:27017
- rs.initiate()初始化
rs.initiate( { _id : "rs0", members: [ { _id : 0, host : "实例的主机ip:27017" } ]})host:实例的ip和端口,注意:这里不能直接使用rs.initiate(),这样会采用默认的复制集配置,机器名字和端口,复制集连接会出错你也可以使用下面的方式,shell的本质是js脚本config={_id : "rs0",members : [{_id : 0, host : “实例的主机ip:27017”}]} 回车后再输入 rs.initiate(config);
- rs.conf() 查看初始化复制集配置
- 添加secondary节点
rs.add("secondary_1_ip:port") rs.add("secondary_2_ip:port")
- 查看复制集的状态
rs.status()
分片部署
部署简单的分片集群,包括两个数据复制集(rs0,rs1)、一个配置复制集(rsc),两个mongos
复制集转化为分片集群
1、查看复制集primary与secondaryrs.status()
2、分别重启secondary节点使用 –shardsvr选项
mongod --replSet "rs0" --shardsvr --port 27017
或者
db.shutdownServer() 停止服务
修改配置文件secondary.conf 增加配置sharding: clusterRole: shardsvr
重启服务
mongod -f /opt/conf/mongo/secondary.conf3、降级主节点后重启如2步骤重启
rs.stepDown()
4、可以强制某个节点为主节点
通过设置优先级或者暂时冻结其他节点的方式
https://docs.mongodb.com/manual/tutorial/force-member-to-be-primary/Create the Config Server Replica Set
配置文件增加sharding: clusterRole: configsvrreplication: replSetName: <setname>
启动服务
mongod -f /opt/conf/mongo/config.conf
初始化复制集(3.4版本以后config Server必须配置成复制集)
rs.initiate( { _id: "<replSetName>", configsvr: true, members: [ { _id : 0, host : "ip1:27018" }, { _id : 1, host : "ip2:27018" }, { _id : 2, host : "ip3:27018" } ] })
Connect a mongos to the Sharded Cluster
配置文件删掉无用的storage相关,增加
sharding: configDB: <configReplSetName>/cfg1.example.net:27018,cfg2.example.net:27018,...
启动服务注意mongos启动
mongos --config <path-to-config>
mongo shell 连接mongos
mongo --host <hostname> --port <port> //mongos的ip和端口
分片加入集群
连接mongos的mongo shell中执行sh.addShard( "<replSetName>/s1-mongo1.example.net:27017") //选择复制集中的一个即可
Enable Sharding
sh.enableSharding("<database>") //先给数据库打开分片sh.shardCollection("<database>.<collection>", { <key> : "hashed" } ) //这对集合打开分片
- 【Mongo】 环境搭建部署
- Mongo入门之环境搭建
- apache-php-mongo开发环境的搭建
- LAMP环境搭建(M=Mongo)
- mysql与mongo数据库---环境搭建
- spark+mongo Scala开发环境搭建
- 环境搭建、部署备忘
- spark部署,环境搭建
- svn服务器环境搭建部署
- Mondrian 3.5环境搭建部署
- Flume 搭建环境和部署
- linux中环境搭建部署
- Flume环境搭建、安装、部署
- VS2005+Xamarin 环境搭建、部署
- 环境搭建及系统部署
- [环境部署]Linux之LNMP环境搭建
- ubuntu mongo 安装部署
- mongo安装部署
- 贝叶斯统计分析中的基本概念和基本方法
- docker registry push错误“server gave HTTP response to HTTPS client”
- Android四大组件总结笔记
- Andorid 中TouchEvent理解(二) TouchEvent分发机制(onTouchEvent()回调返回值区别)
- 《现代操作系统(中文第三版)》课后习题——第十章 实例研究1:Linux
- 【Mongo】 环境搭建部署
- 程序员应该阅读的非编程类书籍有哪些?
- mysql使用记录
- git提交代码,账号信息为他人
- Android系统shell中的df命令实现
- 算法竞赛知识提要1
- 深度学习笔记——深度学习框架TensorFlow(二)
- WEB前端学习笔记-CSS基础教程
- Leetcode Remove Duplicates from Sorted Array II