日韩小视频-日韩久久一区二区三区-日韩久久一级毛片-日韩久久久精品中文字幕-国产精品亚洲精品影院-国产精品亚洲欧美云霸高清

下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當(dāng)前位置:軟件下載吧 > 數(shù)據(jù)庫(kù) > DB2 > MongoDB入門到進(jìn)階筆記:07-Mongo 副本集的搭建 添加 刪除 延時(shí) 仲裁 rs.status replSetName

MongoDB入門到進(jìn)階筆記:07-Mongo 副本集的搭建 添加 刪除 延時(shí) 仲裁 rs.status replSetName

時(shí)間:2024-02-08 11:17作者:下載吧人氣:30

mongodb單臺(tái)服務(wù)器
數(shù)據(jù)會(huì)有丟失的風(fēng)險(xiǎn)
單臺(tái)服務(wù)器無法做高可用性
mongodb副本集能夠預(yù)防數(shù)據(jù)丟失,多臺(tái)mongodb數(shù)據(jù)一致
mongodb副本集能夠在有問題的時(shí)候自動(dòng)切換

實(shí)戰(zhàn)說明
使用三臺(tái)服務(wù)器實(shí)戰(zhàn)mongodb副本集,生產(chǎn)環(huán)境中建議至少三臺(tái)服務(wù)器,本次使用三個(gè)容器
docker run –name mongo1 –privileged –ip 172.18.0.10 -p 30122:22 -p 27117:27117 -v /data/docker_data/Mongo1:/data –network=n-mongo -itd centos7 /usr/sbin/init
docker run –name mongo2 –privileged –ip 172.18.0.11 -p 30222:22 -p 27217:27217 -v /data/docker_data/Mongo2:/data –network=n-mongo -itd centos7 /usr/sbin/init
docker run –name mongo3 –privileged –ip 172.18.0.12 -p 30322:22 -p 27317:27317 -v /data/docker_data/Mongo3:/data –network=n-mongo -itd centos7 /usr/sbin/init

[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3dccec9ff0da centos7 “/usr/sbin/init” 4 hours ago Up 6 seconds 0.0.0.0:27317->27317/tcp, 0.0.0.0:30322->22/tcp mongo3
b48bee1209ef centos7 “/usr/sbin/init” 4 hours ago Up 3 seconds 0.0.0.0:27217->27217/tcp, 0.0.0.0:30222->22/tcp mongo2
5e7b4039fa6f centos7 “/usr/sbin/init” 4 hours ago Up 4 seconds 0.0.0.0:27117->27117/tcp, 0.0.0.0:30122->22/tcp mongo1

三臺(tái)服務(wù)器的ip為:
172.18.0.10
172.18.0.11
172.18.0.12
集群搭建實(shí)戰(zhàn)
172.18.0.10:27117
172.18.0.11:27217
172.18.0.12:27317

主節(jié)點(diǎn)模擬數(shù)據(jù)
for(i=1; i<=10000;i++){
db.myuser.insert( {name:’mytest’+i, age:i} )
}

解壓 mongodb
【mongo1、mongo2、mongo3】
創(chuàng)建 data logs 目錄

mongodb副本集配置文件
mongo1
[root@685e6baa229d mongodb]# more mongod.cnf
systemLog:
destination: file
logAppend: true
path: /data/mongodb/logs/mongodb.log
storage:
dbPath: /data/mongodb/data
journal:
enabled: true
processManagement:
fork: true
net:
port: 27117
bindIp: 0.0.0.0
replication:
replSetName: replSet
mongo2
[root@685e6baa229d mongodb]# more mongod.cnf
systemLog:
destination: file
logAppend: true
path: /data/mongodb/logs/mongodb.log
storage:
dbPath: /data/mongodb/data
journal:
enabled: true
processManagement:
fork: true
net:
port: 27217
bindIp: 0.0.0.0
replication:
replSetName: replSet

mongo3
[root@685e6baa229d mongodb]# more mongod.cnf
systemLog:
destination: file
logAppend: true
path: /data/mongodb/logs/mongodb.log
storage:
dbPath: /data/mongodb/data
journal:
enabled: true
processManagement:
fork: true
net:
port: 27317
bindIp: 0.0.0.0
replication:
replSetName: replSet

啟動(dòng)三個(gè)mongodb服務(wù)器
需要對(duì)應(yīng)更改端口、數(shù)據(jù)目錄、日志路徑
【mongo1、mongo2、mongo3】
mongod -f mongod.cnf

mongodb副本集的初始化及其狀態(tài)查看
config = { _id:”replSet”, members:[
{_id:0,host:”172.18.0.10:27117″},
{_id:1,host:”172.18.0.11:27217″},
{_id:2,host:”172.18.0.12:27317″}]
}
config = { _id:”replSet”, members:[
… {_id:0,host:”172.18.0.10:27117″},
… {_id:1,host:”172.18.0.11:27217″},
… {_id:2,host:”172.18.0.12:27317″}]
… }
{
“_id” : “replSet”,
“members” : [
{
“_id” : 0,
“host” : “172.18.0.10:27117”
},
{
“_id” : 1,
“host” : “172.18.0.11:27217”
},
{
“_id” : 2,
“host” : “172.18.0.12:27317”
}
]
}

use admin
rs.initiate( config )#副本集初始化,需要一定時(shí)間
rs.initiate(config)
{ “ok” : 1 }

rs.status()#副本集狀態(tài),一個(gè)primary,其它SECONDARY。primary是主,只有primary能寫入
replSet:SECONDARY> rs.status
function() {
return db._adminCommand(“replSetGetStatus”);
}
replSet:SECONDARY> rs.status()
{
“set” : “replSet”,
“date” : ISODate(“2022-11-02T12:22:51.726Z”),
“myState” : 1,
“term” : NumberLong(1),
“syncSourceHost” : “”,
“syncSourceId” : -1,
“heartbeatIntervalMillis” : NumberLong(2000),
“majorityVoteCount” : 2,
“writeMajorityCount” : 2,
“votingMembersCount” : 3,
“writableVotingMembersCount” : 3,
“optimes” : {
“lastCommittedOpTime” : {
“ts” : Timestamp(1667391760, 1),
“t” : NumberLong(-1)
},
“lastCommittedWallTime” : ISODate(“2022-11-02T12:22:40.450Z”),
“readConcernMajorityOpTime” : {
“ts” : Timestamp(1667391760, 1),
“t” : NumberLong(-1)
},
“appliedOpTime” : {
“ts” : Timestamp(1667391771, 8),
“t” : NumberLong(1)
},
“durableOpTime” : {
“ts” : Timestamp(1667391771, 8),
“t” : NumberLong(1)
},
“lastAppliedWallTime” : ISODate(“2022-11-02T12:22:51.602Z”),
“lastDurableWallTime” : ISODate(“2022-11-02T12:22:51.602Z”)
},
“lastStableRecoveryTimestamp” : Timestamp(1667391760, 1),
“electionCandidateMetrics” : {
“lastElectionReason” : “electionTimeout”,
“lastElectionDate” : ISODate(“2022-11-02T12:22:51.544Z”),
“electionTerm” : NumberLong(1),
“lastCommittedOpTimeAtElection” : {
“ts” : Timestamp(1667391760, 1),
“t” : NumberLong(-1)
},
“lastSeenOpTimeAtElection” : {
“ts” : Timestamp(1667391760, 1),
“t” : NumberLong(-1)
},
“numVotesNeeded” : 2,
“priorityAtElection” : 1,
“electionTimeoutMillis” : NumberLong(10000),
“numCatchUpOps” : NumberLong(0),
“newTermStartDate” : ISODate(“2022-11-02T12:22:51.580Z”)
},
“members” : [
{
“_id” : 0,
“name” : “172.18.0.10:27117”,
“health” : 1,
“state” : 1,
“stateStr” : “PRIMARY”,
“uptime” : 302,
“optime” : {
“ts” : Timestamp(1667391771, 8),
“t” : NumberLong(1)
},
“optimeDate” : ISODate(“2022-11-02T12:22:51Z”),
“lastAppliedWallTime” : ISODate(“2022-11-02T12:22:51.602Z”),
“lastDurableWallTime” : ISODate(“2022-11-02T12:22:51.602Z”),
“syncSourceHost” : “”,
“syncSourceId” : -1,
“infoMessage” : “Could not find member to sync from”,
“electionTime” : Timestamp(1667391771, 1),
“electionDate” : ISODate(“2022-11-02T12:22:51Z”),
“configVersion” : 1,
“configTerm” : 1,
“self” : true,
“lastHeartbeatMessage” : “”
},
{
“_id” : 1,
“name” : “172.18.0.11:27217”,
“health” : 1,
“state” : 2,
“stateStr” : “SECONDARY”,
“uptime” : 11,
“optime” : {
“ts” : Timestamp(1667391760, 1),
“t” : NumberLong(-1)
},
“optimeDurable” : {
“ts” : Timestamp(1667391760, 1),
“t” : NumberLong(-1)
},
“optimeDate” : ISODate(“2022-11-02T12:22:40Z”),
“optimeDurableDate” : ISODate(“2022-11-02T12:22:40Z”),
“lastAppliedWallTime” : ISODate(“2022-11-02T12:22:40.450Z”),
“lastDurableWallTime” : ISODate(“2022-11-02T12:22:40.450Z”),
“lastHeartbeat” : ISODate(“2022-11-02T12:22:51.556Z”),
“lastHeartbeatRecv” : ISODate(“2022-11-02T12:22:51.570Z”),
“pingMs” : NumberLong(0),
“lastHeartbeatMessage” : “”,
“syncSourceHost” : “”,
“syncSourceId” : -1,
“infoMessage” : “”,
“configVersion” : 1,
“configTerm” : 0
},
{
“_id” : 2,
“name” : “172.18.0.12:27317”,
“health” : 1,
“state” : 2,
“stateStr” : “SECONDARY”,
“uptime” : 11,
“optime” : {
“ts” : Timestamp(1667391760, 1),
“t” : NumberLong(-1)
},
“optimeDurable” : {
“ts” : Timestamp(1667391760, 1),
“t” : NumberLong(-1)
},
“optimeDate” : ISODate(“2022-11-02T12:22:40Z”),
“optimeDurableDate” : ISODate(“2022-11-02T12:22:40Z”),
“lastAppliedWallTime” : ISODate(“2022-11-02T12:22:40.450Z”),
“lastDurableWallTime” : ISODate(“2022-11-02T12:22:40.450Z”),
“lastHeartbeat” : ISODate(“2022-11-02T12:22:51.556Z”),
“lastHeartbeatRecv” : ISODate(“2022-11-02T12:22:51.558Z”),
“pingMs” : NumberLong(0),
“lastHeartbeatMessage” : “”,
“syncSourceHost” : “”,
“syncSourceId” : -1,
“infoMessage” : “”,
“configVersion” : 1,
“configTerm” : 0
}
],
“ok” : 1,
“$clusterTime” : {
“clusterTime” : Timestamp(1667391771, 8),
“signature” : {
“hash” : BinData(0,”AAAAAAAAAAAAAAAAAAAAAAAAAAA=”),
“keyId” : NumberLong(0)
}
},
“operationTime” : Timestamp(1667391771, 8)
}

測(cè)試副本集的數(shù)據(jù)同步
mongo mongo1
use wyzgs
db.myuser.remove({age:{$lt:1000}})
主庫(kù)執(zhí)行刪除:
replSet:PRIMARY> use wygzs
switched to db wygzs
replSet:PRIMARY> db.myuser.count()
10000
replSet:PRIMARY>
replSet:PRIMARY> db.myuser.remove({age:{$lt:1000}})
WriteResult({ “nRemoved” : 999 })
備庫(kù)檢查數(shù)據(jù)同步
rs.slaveOk()#SECONDARY需要聲明是slave才能查看數(shù)據(jù)
從庫(kù)無法插入數(shù)據(jù), 會(huì)提示
“errmsg” : “not master”
“code” : 10107,
“codeName” : “NotWritablePrimary”,
replSet:SECONDARY> use wygzs
switched to db wygzs
replSet:SECONDARY>
replSet:SECONDARY>
replSet:SECONDARY> rs.slaveOk()
WARNING: slaveOk() is deprecated and may be removed in the next major release. Please use secondaryOk() instead.
replSet:SECONDARY>
replSet:SECONDARY> db.myuser.count()
9001
replSet:SECONDARY> db.myuser.insert({name: “name1”})
WriteCommandError({
“topologyVersion” : {
“processId” : ObjectId(“63625f9ba54de6ea1ed4018c”),
“counter” : NumberLong(4)
},
“ok” : 0,
“errmsg” : “not master”,
“code” : 10107,
“codeName” : “NotWritablePrimary”,
“$clusterTime” : {
“clusterTime” : Timestamp(1667393091, 1),
“signature” : {
“hash” : BinData(0,”AAAAAAAAAAAAAAAAAAAAAAAAAAA=”),
“keyId” : NumberLong(0)
}
},
“operationTime” : Timestamp(1667393091, 1)
})

查看slave的延時(shí)情況
rs.printSlaveReplicationInfo()
rs.printSecondaryReplicationInfo()
replSet:PRIMARY> rs.printSecondaryReplicationInfo()
source: 172.18.0.11:27217
syncedTo: Wed Nov 02 2022 12:46:29 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary
source: 172.18.0.12:27317
syncedTo: Wed Nov 02 2022 12:46:29 GMT+0000 (UTC)
0 secs (0 hrs) behind the primary

主庫(kù)模擬批量插入數(shù)據(jù),備庫(kù)會(huì)出現(xiàn)演示
replSet:PRIMARY> for(i=500001; i<=1000000;i++){
… db.myuser.insert({name:’mytest’+i, age:i} )
… }

replSet:PRIMARY> rs.printSecondaryReplicationInfo()
source: 172.18.0.11:27217
syncedTo: Wed Nov 02 2022 12:49:45 GMT+0000 (UTC)
2 secs (0 hrs) behind the primary
source: 172.18.0.12:27317
syncedTo: Wed Nov 02 2022 12:49:45 GMT+0000 (UTC)
2 secs (0 hrs) behind the primary

MongoDB入門到進(jìn)階筆記:07-Mongo 副本集的搭建 添加 刪除 延時(shí) 仲裁 rs.status replSetName
標(biāo)簽MongoDB,學(xué)習(xí)筆記,技術(shù)文檔,數(shù)據(jù)庫(kù),MongoDB

相關(guān)下載

查看所有評(píng)論+

網(wǎng)友評(píng)論

網(wǎng)友
您的評(píng)論需要經(jīng)過審核才能顯示

熱門閱覽

最新排行

公眾號(hào)

主站蜘蛛池模板: 97在线观看免费视频 | 毛毛片在线 | 久久精品国产一区二区三区 | 国内精品成人女用 | 久久精品在 | 午夜欧美成人 | 成人国产精品高清在线观看 | 国产一区二区三区成人久久片 | 一区二区三区高清不卡 | 免费观看国产网址你懂的 | 欧美日韩一级黄色片 | 日韩三级免费 | 男人天堂中文字幕 | 美女黄视频在线 | 久草a在线 | 91免费看片 | 日韩欧美一级毛片精品6 | 特黄特色三级在线播放 | 国产日韩欧美视频 | 美女视频永久黄网站免费观看韩国 | 亚洲精品一区 | 久久久久女人精品毛片 | 99pao在线视频成精品 | 久久精品国产一区二区 | 99精品视频在线观看 | 不卡精品国产_亚洲人成在线 | 国产精品久久久久国产精品三级 | 国产精品1区2区3区 国产精品1区2区3区在线播放 | 国产成人精品一区二区视频 | 成人在线观看一区 | 国产精品成人免费视频 | 久久精品一级 | 91精品自在拍精选久久 | 欧美特黄高清免费观看的 | 久久香焦| 草草视频在线观看最新 | 欧美成人精品大片免费流量 | 日本午夜高清视频 | 久久国产精品久久精品国产 | 爽爽爽爽爽爽a成人免费视频 | 亚洲午夜久久久久国产 |