`
TimerBin
  • 浏览: 360960 次
  • 性别: 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 主从复制,副本集分布式存储 #### 一、MongoDB 主从复制与副本集的概念 MongoDB 是一种非常流行的非关系型数据库系统,它采用面向文档的数据模型,能够高效地处理大量的非结构化数据。为了提高系统的...

    MongoDB主从复制.pdf

    实施MongoDB主从复制的过程如下: 1. **配置主节点**:首先,启动一个MongoDB实例作为主节点,例如在D盘,通过命令`mongod --dbpath='XXX' --master`启动,使用默认的27017端口。 2. **配置从节点**:然后启动另一...

    Python-MongoMultiMaster一个帮助你搭建MongoDB主从复制的工具

    MongoMultiMaster是一个基于Python编写的工具,专门用于简化MongoDB主从复制(也称为分片集群)的配置过程。在大型分布式系统中,数据的可靠性和可用性是至关重要的,而MongoDB的主从复制机制正好能提供这样的功能。...

    详解mongoDB主从复制搭建详细过程

    然而,从版本3.2开始,MongoDB引入了复制集(Replica Sets),它比主从复制更强大,能提供自动故障切换、更多的副本以及更好的选举机制。尽管如此,对于小型部署或测试环境,主从复制仍是一种简单有效的解决方案。

    单台windows搭建mongoDb主从集群

    总之,搭建MongoDB主从集群涉及多个步骤,包括安装、配置、初始化、加入节点和监控。在Windows环境中,这可以通过虚拟化技术实现,但生产环境中应考虑物理分离以提高稳定性。理解并掌握这些知识点,对于管理和维护高...

    MongoDB主从环境搭建

    以下是对MongoDB主从环境搭建的详细步骤: 1. **安装MongoDB**: 首先,你需要在所有参与复制的服务器上安装MongoDB。根据你的操作系统(如Ubuntu、CentOS或Windows)下载并安装相应的MongoDB二进制包。 2. **...

    mongodb linux 搭建mongo 主从配置安装手册

    - 查看复制集的状态: ```bash rs.status() ``` 通过以上步骤,您可以成功地在Linux环境下搭建MongoDB主从集群,并实现基本的数据管理和维护功能。这样的配置能够有效地提高数据处理能力和系统可用性,特别是在...

    mongodb主从复制_动力节点Java学院整理

    4. **动态添加从节点**:后期可以将新的MongoDB实例加入到复制集,通过修改`sources`集合,添加主机地址。 对于更高级的部署模式,MongoDB提供了副本集(Replica Set)。副本集是主从复制的增强版,它没有固定的主...

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

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

    mongodb主从结构的配置

    标题“mongodb主从结构的配置”指的是在MongoDB环境中设置主从复制的过程。这一过程包括以下几个关键步骤: 1. **环境准备**:首先,你需要在至少两台服务器上安装MongoDB。一台作为主节点,另一台或多台作为从节点...

    MongoDB 主从复制实例讲解

    虽然现在MongoDB推荐使用副本集(Replica Sets)代替主从复制,因为副本集提供了更高级别的自动化故障转移和更丰富的功能,但了解主从复制仍然是理解MongoDB基础架构的重要部分。 主从复制的基本原理是将一个...

    详解mongodb 主从配置

    与 Memcached 和 Redis 类似,MongoDB 也支持分布式部署,包括主从配置(也称为副本集),以实现数据冗余和高可用性。主从配置在 MongoDB 中是一个重要的概念,它允许一个主节点接收所有写操作,而从节点则复制主...

    mongodb主从备份

    1. **主从复制集** MongoDB 还支持更为复杂的复制集架构,可以通过增加更多的从节点形成复制集,进一步提升系统的可靠性和性能。 2. **故障转移** 当主节点出现故障时,复制集中的从节点之一可以自动晋升为主...

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

    k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set) k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set)是结合 Kubernetes(k8s)和 MongoDB 实现高可用性和高性能的解决方案。本解决方案通过使用 ...

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

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

    mongodb安装详解

    ### MongoDB 安装与配置详解 #### 一、前言 ...此外,我们还简要介绍了 MongoDB 的主从复制集和分片机制,这对于构建高可用和高性能的 MongoDB 系统非常有用。希望本文能够帮助您更好地理解和使用 MongoDB。

Global site tag (gtag.js) - Google Analytics