mongoDB 的复制集 replication的搭建
来源:互联网 发布:cn域名好不好 编辑:程序博客网 时间:2024/06/05 00:35
一.作用
mongodb replication(复制集) 的主要功能是把一个数据库上的数据同步的备份到其它几个数据库上,当其中primary服务器挂机的时候,可以自动选举其它的secondry服务器做为primary,不影响数据的正常工作,保证了程序的高可用性
二.拓补规化
1.三台服务器,分别是(127.0.0.1:27017,127.0.0.1:27018 , 127.0.0.1:27019)
三.实现步骤
1.启动三台服务器,并把这三台服务器指定到同一个复制集(名称自定义,这里就叫rep0)
>mongod --dbpath '/home/mongo/m17' --logpath '/home/mongo/mlog/m17.log' --fork --port 27017 --replSet rep0
>mongod --dbpath '/home/mongo/m18' --logpath '/home/mongo/mlog/m18.log' --fork --port 27018--replSet rep0
>mongod --dbpath '/home/mongo/m19' --logpath '/home/mongo/mlog/m19.log' --fork --port 27019--replSet rep0
命令中相应的目录要提前手动创建,从上面的命令可以看到 这三台服务器都有相同的复制集群名称(rep0)
2.任选一台服务器,登录客户端,创建一个replconfig变量
>mongo 127.0.0.1:27018
>var replconfig ={"_id" : "rep0",
"members" : [
{"_id" : 0,"host" : "127.0.0.1:27017"},
{"_id" : 1,"host" : "127.0.0.1:27018"},
{"_id" : 2,"host" : "127.0.0.1:27019"}
]
}
把上面的json变量 replconfig 作为rs集(replSet)的配置文件进行初始化
>rs.initiate(replconfig)//如果命令不清楚可以使用 rs.help()
等30秒左右,让服务器部署,然后使用命令
>rs.status() //查看一个服务部署状态如下
rep0:PRIMARY> rs.status()
{
"set" : "rep0",
"date" : ISODate("2017-05-10T08:04:13Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "127.0.0.1:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 28,
"optime" : Timestamp(1494403415, 1),
"optimeDate" : ISODate("2017-05-10T08:03:35Z"),
"lastHeartbeat" : ISODate("2017-05-10T08:04:13Z"),
"lastHeartbeatRecv" : ISODate("2017-05-10T08:04:13Z"),
"pingMs" : 0,
"syncingTo" : "127.0.0.1:27018"
},
{
"_id" : 1,
"name" : "127.0.0.1:27018",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 418,
"optime" : Timestamp(1494403415, 1),
"optimeDate" : ISODate("2017-05-10T08:03:35Z"),
"self" : true
},
{
"_id" : 2,
"name" : "127.0.0.1:27019",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 28,
"optime" : Timestamp(1494403415, 1),
"optimeDate" : ISODate("2017-05-10T08:03:35Z"),
"lastHeartbeat" : ISODate("2017-05-10T08:04:13Z"),
"lastHeartbeatRecv" : ISODate("2017-05-10T08:04:11Z"),
"pingMs" : 0,
"syncingTo" : "127.0.0.1:27018"
}
],
"ok" : 1
}
这样子一个rep0的复制集群就建好了,从上面的信息可以看到 127.0.0.1:27018是primary ,其它两个是secondry
在primary上面是可读可写的,写入的数据会自动同步到 两个secondary服务器上
连接其中一个secondary服务器,用show dbs可以看到数据库 show tables时会出现错误,这是因为在secondary
服务器上默认的是只和primary交互的,如果要查看的话可以使用命令
rep0:SECONDARY> rs.slaveOk()
从服务是不能写入的,只可读
当primary服务器挂机时,两个从服务器会自动选出一个来充当primary,此时被选出的那个服务器就可读可写了
(完)
- mongoDB 的复制集 replication的搭建
- Mongodb replication复制集的配置
- mongodb复制集的搭建
- Mongodb replication set 复制集
- mongodb的复制集及搭建
- MongoDB复制集(Replication Sets)简介
- mongodb 学习笔记 08 -- replication复制集
- MongoDB的Replication简单介绍
- mongoDB的复制集1----复制集的特点、快速搭建复制集
- MongoDB学习十--MongoDB的Replication Introduction
- MongoDB学习十一 --MongoDB的Replication实践
- MongoDB的复制集
- MongoDB的复制集
- 第六章:MongoDB Replica Sets复制集的搭建
- mongodb复制集搭建
- 搭建mongodb复制集
- mongodb复制集搭建
- MongoDB -- 复制集搭建
- myeclipse+pydev+django环境搭建要点
- VC控件自动排列位置显示
- jsp数据交互(II)
- java获取文件的类型MagicMatch.getMimeType()报错 java.lang.NoClassDefFoundError: org/apache/oro/text/perl/Perl5
- JavaScript如何将多个数据放入一个数组
- mongoDB 的复制集 replication的搭建
- APP测试要点
- frame与bounds的区别比较
- MyEclipse2017下载
- HBase 高性能获取数据(多线程批量式解决办法) + MySQL和HBase性能测试比较
- flv知识整理
- 汽车开源
- 一个HR如何正确区分前端还是H5
- 同源策略与跨域