您的位置:首页 > 数据库 > Mongodb

mongodb副本集搭建

2016-12-05 19:15 295 查看
mongodb副本集搭建

mongodb副本集介绍

mongodb副本集的意思就是mongodb的备份数据库,他的作用是当主数据库挂掉的时候,备份数据库就会自动被当做主数据库进行使用。这样做的好处就是不会因为某一台服务器挂掉,导致整个程序无法运行。副本集可以有多个,以防止备份数据库也挂掉的时候,还有另外的备份数据库可以使用。

mongodb副本集的搭建

首先,要安装好mongodb,下面放个传送门,安装mongodb的方法。 http://blog.csdn.net/blog_user_zk/article/details/53325705
安装好mongodb之后,就要进行搭建。我们本次在一台服务器上开启多个mongod 服务,让mongod服务的端口不同,用来模拟多个mongodb服务器。

一. 首先开启多个 mongod 服务(本次实验为3个)

     在开启服务之前,首先穿件3个用来存放 mongodb 数据的文件夹
     #因为三个 mongod 服务必须要三个存储 data 的文件夹。如果两个服务占用一个 data 文件夹,会报错。mongod 服务在开启的时候,就会锁定开启时所使用的 data文件夹,别的 mongod 服务就不能再这个文件夹中进行写数据。
mkdir /data/mongodb/data1
mkdir /data/mongodb/data2
mkdir /data/mongodb/data3
    创建好存储 mongodb data 用的文件夹之后,现在可以开始开启 mongod 服务了。
    
/usr/mongodb3.2.10/bin/mongod --fork --logpath /data/mongodb/logs/mongodb1.log --dbpath /data/mongodb/data1 --port 12333 --replSet "shard1"

/usr/mongodb3.2.10/bin/mongod --fork --logpath /data/mongodb/logs/mongodb2.log --dbpath /data/mongodb/data2 --port 12334 --replSet "shard1"

/usr/mongodb3.2.10/bin/mongod --fork --logpath /data/mongodb/logs/mongodb3.log --dbpath /data/mongodb/data3 --port 12335 --replSet "shard1"

     # --fork 
     //后台运行 mongod 服务
     # --logpath
     //存储 log 日志的绝对路径
     # --dbpath
     //存储 data 的绝对 路径
     #红色字体为3次开启服务时候的不同之处,存放 log 的文件名不相同,存放 data 的文件夹不相同,端口号也不相同
     # --replSet 后面跟的是副本集的名字。我们要让三台服务器的名字相同,这样的话才能证明这三台服务器是相同的副本集。

二. 服务开启之后要初始化副本集

     首先,我们要进入到进入到mongo shell模式下
/usr/mongodb3.2.10/bin/mongo --port 12333
#连接 mongodb 。


      在 mongo shell 模式下
cfg = {
"_id": "shard1",
members: [
{"_id": 0,
"host": "127.0.0.1:12333"
},
{"_id": 1,
"host": "127.0.0.1:12334"
},
{"_id": 2,
"host": "127.0.0.1:12335"
}
]
}
      
     # "_id"="shard1" 指定了要操作的副本集的名字。
     # member 列表里添加每一个节点的信息。
     # "host" 指定了要添加的副本集的地址和端口号。

     
rs.initiate(cfg)

     #初始化副本集

rs.status()


     #查看副本集信息

现在你就可以看到我们副本集的基本信息了。
我们可以测试一下。
先在数据库里插入数据
use test
db.user.insert({"name":"lily","age":11})

别问我为什么用lily,因为我上初中那时候,只有Lily,Lucy,Jim Green,韩梅梅,李雷。
数据插入之后,就可以将当前的服务关掉。
use admin
db.shutdownServer()
     #use admin 进入管理员模式,这样才能在命令行里关闭服务。
现在可以进入另外一个开启服务的数据库
/usr/mongodb3.2.10/bin/mongo --port 12334
     现在可以再查看一下副本集的信息
rs.status()
     可以查看到之前的12333端口的数据库状态变成了0
     表示已经不在工作了。再看一下"stateStr":"PRIMARY"这个服务的端口号。然后就进入到这个端口号的数据库。
     现在可以在当前的数据库进行查询。
     会出现刚才你在主数据库里插入的那条数据。
     这就说明我们搭建已经成功了。如果有疑问可以留言或私信我。
     本着开源的精神,我会尽我最大的努力去帮助你,帮助更多的人。

     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: