首頁 >資料庫 >mysql教程 >MongoDB 副本集自动复制 Replica Set

MongoDB 副本集自动复制 Replica Set

WBOY
WBOY原創
2016-06-07 16:47:17783瀏覽

MongoDB部署实验系列文章,MongoDB做为NoSQL数据库,最近几年持续升温,越来越多的企业都开始尝试用MongoDB代替原有Database做一

MongoDB部署实验系列文章,MongoDB做为NoSQL数据库,最近几年持续升温,越来越多的企业都开始尝试用MongoDB代替原有Database做一些事情。MongoDB也在集群,分片,复制上也有相当不错的的表现。我通过将做各种MongoDB的部署实验进行介绍。

第二篇 MongoDB 副本集自动复制 Replica Set,分为7个部分
 1.初始化文件目录
 2.启动副本集 Replica Set
 3.模拟 PRIMARY失败,SECONDARY自动切换
 4.修复失败节点
 5.恢复失败节点,补充到SECONDARY
 6.删除一个Replica Set节点
 7.新增加一个Replica Set节点


 
系统环境介绍:
 
Ubuntu 12.04. LTS 64bit Server 
 
初始化文件目录
 
~ pwd
 /home/conan/dbs
 
~ mkdir node1 node2 node3
 ~ ls -l
 drwxrwxr-x 2 conan conan 4096 May 31 14:21 node1
 drwxrwxr-x 2 conan conan 4096 May 31 14:21 node2
 drwxrwxr-x 2 conan conan 4096 May 31 14:21 node3
 

 
 
启动副本集 Replica Set
 
启动node1,node2,node3
 
mongod --dbpath /home/conan/dbs/node1 --port 10001 --replSet blort --nojournal --fork --logpath /home/conan/dbs/node1.log
 mongod --dbpath /home/conan/dbs/node2 --port 10002 --replSet blort --nojournal --fork --logpath /home/conan/dbs/node2.log
 mongod --dbpath /home/conan/dbs/node3 --port 10003 --replSet blort --nojournal --fork --logpath /home/conan/dbs/node3.log
 

副本集初始化
 
~ mongo localhost:10001
 MongoDB shell version: 2.4.3
 connecting to: localhost:10001/test
 > rs.initiate({_id:"blort",members:[
 {_id:1,host:"localhost:10001"},
 {_id:2,host:"localhost:10002"},
 {_id:3,host:"localhost:10003"},
 ]})
 {
 "info" : "Config now saved locally. Should come online in about a minute.",
 "ok" : 1
 }
 
查看日志信息:node1变选为PRIMARY,node2,node3分别是2个SECONDARY
 
Fri May 31 14:26:44.728 [conn2] ******
 Fri May 31 14:26:44.728 [conn2] replSet info saving a newer config version to local.system.replset
 Fri May 31 14:26:44.741 [conn2] replSet saveConfigLocally done
 Fri May 31 14:26:44.741 [conn2] replSet replSetInitiate config now saved locally. Should come online in about a minute.
 Fri May 31 14:26:44.741 [conn2] command admin.$cmd command: { replSetInitiate: { _id: "blort", members: [ { _id: 1.0, host: "localhost:10001" }, { _id: 2.0, host: "localhost:10002" }, { _id: 3.0, host: "localhost:10003" } ] } } ntoreturn:1 keyUpdates:0 locks(micros) W:646741 reslen:112 652ms
 Fri May 31 14:26:53.682 [rsStart] replSet I am localhost:10001
 Fri May 31 14:26:53.682 [rsStart] replSet STARTUP2
 Fri May 31 14:26:53.683 [rsHealthPoll] replSet member localhost:10002 is up
 Fri May 31 14:26:53.684 [rsHealthPoll] replSet member localhost:10003 is up
 Fri May 31 14:26:54.285 [initandlisten] connection accepted from 127.0.0.1:46469 #3 (3 connections now open)
 Fri May 31 14:26:54.683 [rsSync] replSet SECONDARY
 

用mongo客户端查看设置
 node1连接
 
~ mongo localhost:10001
 MongoDB shell version: 2.4.3
 connecting to: localhost:10001/test
 blort:PRIMARY> rs.status()
 {
 "set" : "blort",
 "date" : ISODate("2013-05-31T06:34:12Z"),
 "myState" : 1,
 "members" : [
 {
 "_id" : 1,
 "name" : "localhost:10001",
 "health" : 1,
 "state" : 1,
 "stateStr" : "PRIMARY",
 "uptime" : 659,
 "optime" : {
 "t" : 1369981604,
 "i" : 1
 },
 "optimeDate" : ISODate("2013-05-31T06:26:44Z"),
 "self" : true
 },
 {
 "_id" : 2,
 "name" : "localhost:10002",
 "health" : 1,
 "state" : 2,
 "stateStr" : "SECONDARY",
 "uptime" : 439,
 "optime" : {
 "t" : 1369981604,
 "i" : 1
 },
 "optimeDate" : ISODate("2013-05-31T06:26:44Z"),
 "lastHeartbeat" : ISODate("2013-05-31T06:34:11Z"),
 "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
 "pingMs" : 0,
 "syncingTo" : "localhost:10001"
 },
 {
 "_id" : 3,
 "name" : "localhost:10003",
 "health" : 1,
 "state" : 2,
 "stateStr" : "SECONDARY",
 "uptime" : 439,
 "optime" : {
 "t" : 1369981604,
 "i" : 1
 },
 "optimeDate" : ISODate("2013-05-31T06:26:44Z"),
 "lastHeartbeat" : ISODate("2013-05-31T06:34:11Z"),
 "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
 "pingMs" : 0,
 "syncingTo" : "localhost:10001"
 }
 ],
 "ok" : 1
 }
 

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn