`
TimerBin
  • 浏览: 355574 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MongoDB安装、主从、复制集

阅读更多

一、安装

1、Window环境下:

 

下载地址:http://www.mongodb.org/downloads     本人安装:2.4.6版本64位(mongodb-win32-x86_64-2.4.6.zip),将ZIP包解压后放到任意盘符下,本人解压到D:盘下一个新建的一个MongoDB的文件夹下(以下配置都以D盘目录来进行配置)。

 

1)准备工作:

 

      在任意目录下新建一个文件夹用以存放MongoDB的数据库安装目录,本人安装在了D下新建的一个data的文件下(此data文件大概要3个G左右)。。

 

       在任意目录下新建一个文件夹用以存放MongoDB的数据库服务器日志文件,并且要在文件夹下新建一个日志文件,本人在D:/MongoDB/目录下新建了log文件夹,并在此文件夹下新建了mongodb.log文件。

 

2) 安装

a)命令安装 (数据库服务会随着命令窗体的关闭而关闭):

       在相应文件下新建一个任意名称的.bat文件,在.bat文件中写入下命令(当然此处不创建.bat在CMD中直接输入此命令也是即可的):

 

   D:\MongoDB\bin\mongod.exe --dbpath=D:\data     --logpath= D:\MongoDB/log/mongodb.log

 

运行此.bat文件就可以打开MongoDB数据库服务了。

常用指令说明:

 

--dbpath:用以指定数据库的安装目录,此目录随意设置

--port:可以在命令中加入--port=xxxxx指令用以指定mongoDB数据库服务所使用的端口,如果不指定默认为27017端口

--logpath:用以指定数据库的日志文件,此目录可随意设置,但前提mongodb.log日志文件要提前设置完成

--fork=true:可以在命令中加入此命令用以指定此数据库服务从后台执行(也就是说数据库服务不会随着.bat窗口的关闭而停止,需要自己手动杀进程来完成,一般本地自己Hellow world不推荐),如果指定了想关闭数据库只有自己找到相应的MongoDB进程杀掉即可。

 

b)配置文件安装(由于MongoDB启动命令过长,读写不方便可以使用命令指定配置文件形式安装)

 

准备工作:在任意目录下新建xxxx.config的配置文件,在配置文件中写上如下指示:

##安装目录

dbpath=D:\data

##日志目录
logpath=D:\MongoDB/log/mongodb.log

##是否后台运行 此时是注释掉的
##fork=true

##端口 不写默认为27017端口
port=27017

(本人将自己的配置文件新建在了D:/MongoDB/mongodb.config中)

 在相应文件下新建一个任意名称的.bat文件,在.bat文件中写入下命令(当然此处不创建.bat在CMD中直接输入此命令也是即可的):

     D:\MongoDB\bin\mongod.exe  -f   D:/MongoDB/mongodb.config

 

运行此.bat文件就可以打开MongoDB数据库服务了。

 

3)检测安装是否完成可以在IE地址中输入:http://localhost:27017/  或者 http://127.0.0.1:27017/ 来检测是否安装成功,如果成功可以正确看到此信息:

You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number

也可以输入:http://localhost:28017/ 此地址进入到MongoDB数据库管理页面(此端口28017实际就是比您设置的端口+1000,比如您设置的是7777那此端口就为8777)

 

4)客户端使用(使用客户端连接MongoDB数据库服务器简单测试,但前提条件是数据库服务已经开启):

 在相应文件下新建一个任意名称的.bat文件,在.bat文件中写入下命令(当然此处不创建.bat在CMD中直接输入此命令也是即可的):

   D:\MongoDB\bin\mongod.exe     localhost:27017

运行此.bat文件就可以打开MongoDB客户端服务了,看到以下信息表示连接完成,可以输入简单命令测试下了:

MongoDB shell version: 2.4.6
connecting to: localhost:27017/test

 

2、linux环境下安装

 

 下载地址:http://www.mongodb.org/downloads     本人安装:2.4.7版本64位(mongodb-linux-x86_64-2.4.7.tar),将tar包解压后放到任意盘符下,本人解压到/opt/目录下一个新建的一个MongoDB的文件夹下(以下配置都以/opt/目录来进行配置),命令如下所示:

tar -xvf mongodb-linux-x86_64-2.4.7.tar   解压

mv  mongodb-linux-x86_64-2.4.7   mongodb-2.4.7 重命名

 

1)准备工作:

 

      在任意目录下新建一个文件夹用以存放MongoDB的数据库安装目录,本人安装在了/home/${userName}/目录下新建的一个data的文件下(此data文件大概要3个G左右),命令如下所示(${userName}表示你的用户名)。

mkdir data 新建data 文件件

 

       在任意目录下新建一个文件夹用以存放MongoDB的数据库服务器日志文件,并且要在文件夹下新建一个日志文件,本人在/home/${userName}/MongoDB/目录下新建了log文件夹,并在此文件夹下新建了mongodb.log文件,命令如下所示(${userName}表示你的用户名。

 mkdir MongoDB

touch mongodb.log

2) 安装

a)命令安装 (数据库服务会随着命令窗体的关闭而关闭):

       在相应文件下新建一个任意名称的.sh文件,在.sh文件中写入下命令(${userName}表示你的用户名:

 

   /opt/mongodb-2.4.7/bin/mongod --dbpath=/home/${userName}/data     --logpath= /home/${userName}/log/mongodb.log

 

运行此.sh文件就可以打开MongoDB数据库服务了。

sh xxxx.sh

常用指令说明:

 

--dbpath:用以指定数据库的安装目录,此目录随意设置

--port:可以在命令中加入--port=xxxxx指令用以指定mongoDB数据库服务所使用的端口,如果不指定默认为27017端口

--logpath:用以指定数据库的日志文件,此目录可随意设置,但前提mongodb.log日志文件要提前设置完成

--fork=true:可以在命令中加入此命令用以指定此数据库服务从后台执行(也就是说数据库服务不会随着.bat窗口的关闭而停止,需要自己手动杀进程来完成,一般本地自己Hellow world不推荐),如果指定了想关闭数据库只有自己找到相应的MongoDB进程杀掉即可。

 

b)配置文件安装(由于MongoDB启动命令过长,读写不方便可以使用命令指定配置文件形式安装)

 

准备工作:在任意目录下新建xxxx.config的配置文件,在配置文件中写上如下指示:

touch xxxx.config

 

##安装目录

dbpath=/home/${userName}/data

##日志目录
logpath=/home/${userName}//log/mongodb.log

##是否后台运行 此时是注释掉的
##fork=true

##端口 不写默认为27017端口
port=27017

##用于指定访问的IP地址

bind_ip=192.168.0.183

 

(本人将自己的配置文件新建在了/opt/mongodb-2.4.7/mongodb.config中)

 在相应文件下新建一个任意名称的.sh文件,在.sh文件中写入下命令:

     /opt/mongodb-2.4.7/bin/mongod   -f   /opt/mongodb-2.4.7/mongodb.config

 

运行此.sh文件就可以打开MongoDB数据库服务了。

sh xxx.sh

 

3)检测安装是否完成可以在IE地址中输入:http://192.168.0.183:27017/ 来检测是否安装成功,如果成功可以正确看到此信息:

You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number

也可以输入:http://192.168.0.183:28017/ 此地址进入到MongoDB数据库管理页面(此端口28017实际就是比您设置的端口+1000,比如您设置的是7777那此端口就为8777)

 

4)linux 中mongoDB数据库服务在后台启动时该如何关闭呢?关闭命令如下所以:

ps aux | grep mongod       可以查到mongoDB 的进程信息

##查询结果例子:
${username}   7516  0.7  1.5 354372 32748 ?        Sl   14:05   0:00 /opt/mongodb-2.4.7/bin/mongod -f /opt/mongodb-2.4.7/mongo.config
##停止mongoDB 命令kill -2 使用-2 不要使用-9
kill -2 7516

 

二、可视话的MongoDB客户端安装

Window系统下使用的话:推荐使用Robomongo工具

下载地址: http://www.robomongo.org

操作比较容易非常简单,不做多解释。

 

三、MongoDB配置复制集合

1、Master-slave(主从复制):从机会定时访问主机的oplog.js日志而实现与主机数据信息实时同步,用以主机损坏数据丢失。但主服务当机时,从机服务无法继续使用,系统会抛出错误信息

其中主机启动命令如下所示(window环境):

 

 D:\mongoDB\bin\mongod.exe --dbpath=D:\mongoDB\data --logpath= D:\mongoDB\log\mongodb.log --port=7777 --master

 

--master  用以表明是主机

 

其中从机启动命令如下所示:

 

E:\mongoDB\bin\mongod.exe --dbpath=E:\mongoDB\data --port=8888 --slave  --source=localhost:7777 

 

--slave 用以表明是从机 

--source=localhost:7777  用以表明是那台主机的从机,localhost可以指定为IP地址

此时请注意从机放在了E盘下(可包含多个从机配置信息)。

 

中从关系测试:可以使用以下向主机中插入数据,在从机中查看数据来进行对主从关系的测试。

 

   D:\mongoDB\bin\mongod.exe     localhost:7777

 

连接客户端连接到主机,在主机中对数据库执行插入数据操作

 

use test

db.user.insert({"name":"test1","age":17})

db.user.find()

 

此时可以查到刚插入的数据

 

然后继续使用

 

 E:\mongoDB\bin\mongod.exe     localhost:8888

 

连接从机

 

use test

db.user.find()  

 

此时就可以看到您刚刚在主机中插入的数据 已经同步到了从机数据库中。

 

2、Replica Sets(复制集):数据库集群中并没有强制的主从关系,主服务器是从多个服务器中投票选举出来的,每个服务器都有可能担当主服务器,如果主服务器当机,会从其他服务器中重新投票选举出一台服务器来担当主服务器。

以下三台服务器的启动名领如下所示:

 

D:\mongoDB\bin\mongod.exe --dbpath D:\mongoDB\data --port 7777 --replSet     rs1

E:\mongoDB\bin\mongod.exe --dbpath D:\mongoDB\data --port 8888 --replSet     rs1

 F:\mongoDB\bin\mongod.exe --dbpath D:\mongoDB\data --port 9999--replSet     rs1

 

--replSet:用以指明复制集的名称

rs1:为此次复制集合的名称,此名称自己随意定义

 

*初始化复制集合环境信息

config_rs1={_id:'rs1',members:[{_id:1,host:'localhost:7777'},{_id:2,host:'localhost:8888'},{_id:3,host:'localhost:9999'}]}
rs.initiate(config_rs1)

或者

db.runCommand({"replSetInitiate":{"_id":"rs1","members":[{"_id":1,"host":"localhost:7777"},{"_id":2,"host":"localhost:8888"},{"_id":3,"host":"localhost:9999"}]}})

这两种方式用以初始化复制集合信息

 

 

 

在复制集合使用测试时我们打出如下命令:

 E:\mongoDB\bin\mongod.exe     localhost:7777

如果我们看到的是:
connecting to: localhost:7777/test
rs1:SECONDARY>

这种信息,这表示此事 localhost:7777数据库是从机服务,此时localhost:7777客户端对存储的数据进行任何操作,连简单的查询都会提示出"not master and slaveOk=false"错误,此错误表示该服务器不可以对存储的数据进行读操作。但它具有rs.status()指令执行权限,用以查询当前复制集的状态信息。如果你想在这个服务器中具有读操作时需要执行以下命令:

db.getMongo().setSlaveOk()   或者rs.slaveOK() 都可以从而让这台服务器对存储的数据具有了读的权限(只有读的权限)

 

如果我们看到的是:

connecting to: localhost:7777/test
rs1:PRIMARY>

此时表示当前7777这台服务器为主服务器,它具有可操作的任何权限

 

常见的命令有:

rs.status() 这个命令不管是服务是PRIMARY,还是SECONDARY都可以执行此命令来查询当前复制集状态

rs.add("localhost:9899") 此命令可以向复制集中新增端口为9899的从机

rs.remove("localhost:9899")此命令可以删除复制集中端口为9899的从机

rs.freeze(30) 此命令可以让一台从机停止30秒不参加选举,处于冰冻状态。需要在Secondary从机中执行,不可以在主机中PRIMARY中执行
rs.stepDown(30)此命令可以让主机在30秒后降级为从机,只能在主机中PRIMARY中执行

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    MongoDB 主从复制,副本集分布式存储

    MongoDB 主从复制,副本集分布式存储(OSX为例 其他的都一样)

    MongoDB的主从复制及副本集的replSet配置教程

    MongoDB可以在以一个主节点处理客户端请求的情况下以其他节点服务器负责映射主节点上的数据,即为我们通常所说的主从复制功能,这里我们就来共同总结MongoDB的主从复制及副本集的replSet配置教程:

    linux mongodb副本集负载均衡部署完成

    linux mongodb分布式负载... MongoDB集群主从复制部署帮助文档 MongoDB集群主从复制使用帮助文档 MongoDB集群主从复制遇到问题解决文档 mongodb网页资料 linux内网生产环境使用;文档比较清晰,按照步骤安装即可;

    k8s 安装 mongodb 分片(Sharding)+ 副本集(Replica Set)

    k8s 安装 mongodb 分片(Sharding)+ 副本集(Replica Set)

    MongoDB副本集配置和数据迁移实战

    由于 MongoDB 的主从复制功能不支持高可用,所以从 3.2 版本开始已经被废弃了,转而用副本集来代替实现数据复制的功能。一个副本集总会有一个活跃节点(Primary)和若干个备份节点(Secondary),还有一个可选的一个...

    真实可用的mongodb下周地址.txt

    视频目录: 01-mongodb文档型数据库特点介绍 01-NoSQL简介 02-mongodb安装过程 02-mongodb操作1 03-mongodb操作2 ...10-replication复制集 10-主从复制 11-shard分片 11-分片 12-使用java操作mongodb

    Mongo复制集仲裁主从

    Mongo复制集仲裁主从

    《10天掌握MongoDB》2012完整版.pdf[带书签]

    MONGODB的下载与安装 MONGODB SHELL MONGODB的数据类型 MONGODB的基本数据类型 MONGODB的数组 MONGODB的文档嵌套 MONGODB的OBJECTID 结束语 第二天:初识增删改 添加文档 删除文档 更新文档-文档更换1 更新文档-文档...

    java中间件学习笔记

    java中间件学习笔记1 Mongodb安装1.1 单机安装1.2 主从复制架构原理和缺陷1.3 复制集Replica Sets1.3.1 复制集是什么1.3.2 使用复制集的优势1.3.3 复制集集群架构原理1.3.4 复制集搭建1.3.4.1 节点的动态增删1.3.4.2...

    详解MongoDB中用sharding将副本集分配至服务器集群的方法

    副本集是MongoDB的主从复制中的重要功能,经常被用来作额外的备份,这里我们就来详解MongoDB中用sharding将副本集分配至服务器集群的方法,首先还是来回顾一下MongoDB中副本集的基本知识:

    mongodb 常用指令 搭建集群 备份恢复

    mongodb 复制 分片 恢复 认证,教你如何搭建 主从复制 副本集 集群分片

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    11.1 主从复制 11.1.1 选项 11.1.2 添加及删除源 11.2 复制集 11.2.1 部署复制集 11.2.2 初始化复制集 11.2.3 复制集中的节点 11.2.4 故障切换和活跃节点选举 11.3 主从配置信息 11.4 管理...

    mongoDB基础架构简析

    mongoDB基础架构简析,详细阐述了mongo主从复制、副本集、分片环境搭建以及相关注意事项。

    深入云计算 MongoDB管理与开发实战详解pdf.part2

    11.1 主从复制 11.1.1 选项 11.1.2 添加及删除源 11.2 复制集 11.2.1 部署复制集 11.2.2 初始化复制集 11.2.3 复制集中的节点 11.2.4 故障切换和活跃节点选举 11.3 主从配置信息 11.4 管理...

    mongodb笔记

    此笔记是我个人通过自学整理出来的。希望看到的人有什么建议告诉我。也可以共同去学习!里面内容包括:安装配置、增删改查、用户管理、主从复制、分片、副本集以及和JAVA的结合案例等等!

    MongoDB权威指南(中文版)高清

    1168.4 备份和修复 1168.4.1 数据文件备份 1178.4.2 mongodump和mongorestore 1178.4.3 fsync和锁 1188.4.4 从属备份 1198.4.5 修复 119第9章 复制 1219.1 主从复制 1219.1.1 选项 1229.1.2 添加...

    电子书:MongoDB权威指南(中文版)

    1158.3.3 其他安全考虑 1168.4 备份和修复 1168.4.1 数据文件备份 1178.4.2 mongodump 和mongorestore 1178.4.3 fsync 和锁 1188.4.4 从属备份 1198.4.5 修复 119第9 章 复制 1219.1 主从复制 ...

    PHP特级课:LVS负载均衡:搜索引擎.docx

    第12集 Mysql bin-log日志和主从复制 54分钟 第13集 Mysql分区理论 50分钟 第14集 Mysql分区实验 65分钟 第 5 章: Mysql性能优化 第15集 Mysql基础操作-1 48分钟 第16集 Mysql基础操作-2 49分钟 第17集 Mysql Sql...

    mongodb-java:模仿monogdb写一个数据库

    主从复制 副本集(复制) 分片 学习MongoDB 练习环境 MongoDB v3.6.2 简介: MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系...

Global site tag (gtag.js) - Google Analytics