Replica sets複製集的搭建
MongoDB 高可用可用分兩種:
Master-Slave 主從複製::
只需要在某一個服務啟動時加上–master 引數,而另一個服務加上–slave 與–source 引數,
即可實現同步。 MongoDB 的最新版本已不再推薦此方案。
Replica Sets 複製集::
MongoDB 在 1.6 版本對開發了新功能 replica set,這比之前的 replication 功能要強大一
些,增加了故障自動切換和自動修復成員節點,各個 DB 之間資料完全一致,大大降低了維
護成功。 auto shard 已經明確說明不支援 replication paris,建議使用 replica set, replica set
故障切換完全自動。
1、 建立資料檔案儲存路徑
2、 建立日誌檔案路徑
3、建立主從 key 檔案,用於標識叢集的私鑰的完整路徑,如果各個例項的 key file 內容不一
致,程式將不能正常用。
4、啟動 3 個例項
5、配置及初始化 Replica Sets
6檢視複製集狀態
> rs.status()
還可以用 isMaster 檢視 Replica Sets 狀態。
rs1:PRIMARY>rs.conf()
shard1:SECONDARY> use local
switched to db local
shard1:SECONDARY> db.system.replset.find()
Master-Slave 主從複製::
只需要在某一個服務啟動時加上–master 引數,而另一個服務加上–slave 與–source 引數,
即可實現同步。 MongoDB 的最新版本已不再推薦此方案。
Replica Sets 複製集::
MongoDB 在 1.6 版本對開發了新功能 replica set,這比之前的 replication 功能要強大一
些,增加了故障自動切換和自動修復成員節點,各個 DB 之間資料完全一致,大大降低了維
護成功。 auto shard 已經明確說明不支援 replication paris,建議使用 replica set, replica set
故障切換完全自動。
1、 建立資料檔案儲存路徑
-
[root@localhost ~]# mkdir -p /data/data/r0
-
[root@localhost ~]# mkdir -p /data/data/r1
- [root@localhost ~]# mkdir -p /data/data/r2
2、 建立日誌檔案路徑
- [root@localhost ~]# mkdir -p /data/log
3、建立主從 key 檔案,用於標識叢集的私鑰的完整路徑,如果各個例項的 key file 內容不一
致,程式將不能正常用。
-
[root@localhost ~]# mkdir -p /data/key
-
[root@localhost ~]# echo "this is rs1 super secret key" > /data/key/r0
-
[root@localhost ~]# echo "this is rs1 super secret key" > /data/key/r1
-
[root@localhost ~]# echo "this is rs1 super secret key" > /data/key/r2
-
[root@localhost ~]# chmod 600 /data/key/r*
4、啟動 3 個例項
-
[root@localhost ~]# /Apps/mongo/bin/mongod --replSet rs1 --keyFile /data/key/r0 --fork --port
-
28010 --dbpath /data/data/r0 --logpath=/data/log/r0.log --logappend
-
all output going to: /data/log/r0.log
-
forked process: 6573
-
[root@localhost ~]# /Apps/mongo/bin/mongod --replSet rs1 --keyFile /data/key/r1 --fork --port
-
28011 --dbpath /data/data/r1 --logpath=/data/log/r1.log --logappend
-
all output going to: /data/log/r1.log
-
forked process: 6580
-
[root@localhost ~]# /Apps/mongo/bin/mongod --replSet rs1 --keyFile /data/key/r2 --fork --port
-
28012 --dbpath /data/data/r2 --logpath=/data/log/r2.log --logappend
-
all output going to: /data/log/r2.log
- forked process: 6585
5、配置及初始化 Replica Sets
-
[root@localhost bin]# /Apps/mongo/bin/mongo -port 28010
-
MongoDB shell version: 1.8.1
-
connecting to: 127.0.0.1:28010/test
-
> config_rs1 = {_id: 'rs1', members: [
-
... {_id: 0, host: 'localhost:28010', priority:1}, --成員 IP 及埠,最好是寫ip那樣就可以跨機器 , priority=1 指 PRIMARY
-
... {_id: 1, host: 'localhost:28011'},
-
... {_id: 2, host: 'localhost:28012'}]
-
... }
-
{
-
"_id" : "rs1",
-
"members" : [
-
{
-
-
"_id" : 0,
-
"host" : "localhost:28010"
-
},
-
{
-
"_id" : 1,
-
"host" : "localhost:28011"
-
},
-
{
-
"_id" : 2,
-
"host" : "localhost:28012"
-
}
-
]
-
}
-
> rs.initiate(config_rs1); --初始化配置
-
{
-
"info" : "Config now saved locally. Should come online in about a minute.",
-
"ok" : 1
- }
6檢視複製集狀態
> rs.status()
-
{
-
"set" : "rs1",
-
"date" : ISODate("2012-05-31T09:49:57Z"),
-
"myState" : 1,
-
"members" : [
-
{
-
"_id" : 0,
-
"name" : "localhost:28010",
-
"health" : 1, --1 表明正常; 0 表明異常
-
"state" : 1, -- 1 表明是 Primary; 2 表明是 Secondary;
-
"stateStr" : "PRIMARY", --表明此機器是主庫
-
"optime" : {
-
"t" : 1338457763000,
-
"i" : 1
-
},
-
"optimeDate" : ISODate("2012-05-31T09:49:23Z"),
-
"self" : true
-
},
-
{
-
"_id" : 1,
-
"name" : "localhost:28011",
-
"health" : 1,
-
65 / 91
-
"state" : 2,
-
"stateStr" : "SECONDARY",
-
"uptime" : 23,
-
"optime" : {
-
"t" : 1338457763000,
-
"i" : 1
-
},
-
"optimeDate" : ISODate("2012-05-31T09:49:23Z"),
-
"lastHeartbeat" : ISODate("2012-05-31T09:49:56Z")
-
},
-
{
-
"_id" : 2,
-
"name" : "localhost:28012",
-
"health" : 1,
-
"state" : 2,
-
"stateStr" : "SECONDARY",
-
"uptime" : 23,
-
"optime" : {
-
"t" : 1338457763000,
-
"i" : 1
-
},
-
"optimeDate" : ISODate("2012-05-31T09:49:23Z"),
-
"lastHeartbeat" : ISODate("2012-05-31T09:49:56Z")
-
}
-
],
-
"ok" : 1
- }
還可以用 isMaster 檢視 Replica Sets 狀態。
-
rs1:PRIMARY> rs.isMaster()
-
{
-
"setName" : "rs1",
-
"ismaster" : true,
-
"secondary" : false,
-
"hosts" : [
-
"localhost:28010",
-
"localhost:28012",
-
"localhost:28011"
-
],
-
"maxBsonObjectSize" : 16777216,
-
"ok" : 1
- }
rs1:PRIMARY>rs.conf()
shard1:SECONDARY> use local
switched to db local
shard1:SECONDARY> db.system.replset.find()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-1800171/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MongoDB 複製集模式Replica SetsMongoDB模式
- mongodb複製集(replica sets)+分片(sharding)環境搭建MongoDB
- 利用Mongodb的複製集搭建高可用分片,Replica Sets + Sharding的搭建過程MongoDB
- MongoDB搭建Replica Set複製集MongoDB
- mongodb複製集(replica set)搭建及管理MongoDB
- mongodb replica sets 測試MongoDB
- MongoDB 搭建複製集MongoDB
- mongodb複製集搭建MongoDB
- 【Mongodb】 可複製集搭建MongoDB
- mongodb叢集shard_replica的搭建方法MongoDB
- Simple Automated Backups for MongoDB Replica SetsMongoDB
- Kubernetes Replica Sets 和 Kubernetes Replica Controller的區別Controller
- MongoDB學習4:MongoDB複製集機制和原理,搭建複製集MongoDB
- MongoDB系列-解決面試中可能遇到的MongoDB複製集(replica set)問題MongoDB面試
- MongoDB系列二:Replica Sets安裝與配置MongoDB
- MySQL複製命令slave被REPLICA命令取代MySql
- Redis搭建主從複製、哨兵叢集Redis
- mongodb6.0.13 搭建複製集PSAMongoDB
- Docker Compose搭建MySQL主從複製叢集DockerMySql
- Redis複製與可擴充套件叢集搭建Redis套件
- mongodb複製集MongoDB
- 【MongoDB】windows平臺搭建Mongo資料庫複製集(相似叢集)(一)MongoDBWindows資料庫
- MongoDB複製集原理MongoDB
- MYSQL主從複製的搭建MySql
- MYSQL主主複製的搭建MySql
- 【Mongodb】往分片複製集新增複製成員MongoDB
- MongoDB系列三:Replica Sets在生產環境中安裝配置的注意事項MongoDB
- kubernetes概念之四:Replication Controller&Replica Sets&DeploymentsController
- 【Mongodb】分片加複製集MongoDB
- MySQL5.7主從複製-半同步複製搭建MySql
- mysql主從複製搭建MySql
- MongoDB 搭建可複製群集MongoDB
- MySQL 5.5 複製搭建流程MySql
- linux搭建kafka叢集,詳細到複製命令就能成功LinuxKafka
- mysql主從複製的理解和搭建MySql
- LightDB/Postgres邏輯複製的搭建
- MongoDB學習之複製集MongoDB
- MySQL 5.7搭建多源複製MySql