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 服务就不能再这个文件夹中进行写数据。
# --fork
//后台运行 mongod 服务
# --logpath
//存储 log 日志的绝对路径
# --dbpath
//存储 data 的绝对 路径
#红色字体为3次开启服务时候的不同之处,存放 log 的文件名不相同,存放 data 的文件夹不相同,端口号也不相同
# --replSet 后面跟的是副本集的名字。我们要让三台服务器的名字相同,这样的话才能证明这三台服务器是相同的副本集。
二. 服务开启之后要初始化副本集
首先,我们要进入到进入到mongo shell模式下
在 mongo shell 模式下
# "_id"="shard1" 指定了要操作的副本集的名字。
# member 列表里添加每一个节点的信息。
# "host" 指定了要添加的副本集的地址和端口号。
#初始化副本集
#查看副本集信息
现在你就可以看到我们副本集的基本信息了。
我们可以测试一下。
先在数据库里插入数据
别问我为什么用lily,因为我上初中那时候,只有Lily,Lucy,Jim Green,韩梅梅,李雷。
数据插入之后,就可以将当前的服务关掉。
现在可以进入另外一个开启服务的数据库
表示已经不在工作了。再看一下"stateStr":"PRIMARY"这个服务的端口号。然后就进入到这个端口号的数据库。
现在可以在当前的数据库进行查询。
会出现刚才你在主数据库里插入的那条数据。
这就说明我们搭建已经成功了。如果有疑问可以留言或私信我。
本着开源的精神,我会尽我最大的努力去帮助你,帮助更多的人。
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"这个服务的端口号。然后就进入到这个端口号的数据库。
现在可以在当前的数据库进行查询。
会出现刚才你在主数据库里插入的那条数据。
这就说明我们搭建已经成功了。如果有疑问可以留言或私信我。
本着开源的精神,我会尽我最大的努力去帮助你,帮助更多的人。
相关文章推荐
- MongoDB副本集的快速搭建
- MongoDB副本集的搭建
- 一边搭建一边理解MongoDB副本集(副本集中的角色-上)
- 一边搭建一边理解MongoDB副本集(副本集回滚)
- 一边搭建一边理解MongoDB副本集(副本集选举)
- 一边搭建一边理解MongoDB副本集(副本集中数据同步)
- mongodb副本集,分片搭建,与spring整合
- 一边搭建一边理解MongoDB副本集(副本集协议版本)
- 一边搭建一边理解MongoDB副本集(副本集中的角色-中)
- 高可用mongodb集群的学习记录(三搭建mongodb副本集)
- 一边搭建一边理解MongoDB副本集(副本集读写语义)
- 一边搭建一边理解MongoDB副本集(副本集部署架构)
- mongoDB副本集的搭建
- 一边搭建一边理解MongoDB副本集(三个成员的副本集)
- Mongodb副本集搭建经验
- MongoDB副本集的搭建
- 一边搭建一边理解MongoDB副本集(写偏好)
- 一边搭建一边理解MongoDB副本集(分布于两个或多个数据中心的副本集)
- MongoDB副本集(Replica Set)搭建
- mongodb副本集搭建过程中的问题和解决技巧