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

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

軟件下載吧

當前位置:軟件下載吧 > 數據庫 > DB2 > MongoDB入門到進階筆記:07-Mongo 副本集的搭建 添加 刪除 延時 仲裁 rs.status replSetName

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

時間:2024-02-08 11:17作者:下載吧人氣:18

mongodb單臺服務器
數據會有丟失的風險
單臺服務器無法做高可用性
mongodb副本集能夠預防數據丟失,多臺mongodb數據一致
mongodb副本集能夠在有問題的時候自動切換

實戰說明
使用三臺服務器實戰mongodb副本集,生產環境中建議至少三臺服務器,本次使用三個容器
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

三臺服務器的ip為:
172.18.0.10
172.18.0.11
172.18.0.12
集群搭建實戰
172.18.0.10:27117
172.18.0.11:27217
172.18.0.12:27317

主節點模擬數據
for(i=1; i<=10000;i++){
db.myuser.insert( {name:’mytest’+i, age:i} )
}

解壓 mongodb
【mongo1、mongo2、mongo3】
創建 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

啟動三個mongodb服務器
需要對應更改端口、數據目錄、日志路徑
【mongo1、mongo2、mongo3】
mongod -f mongod.cnf

mongodb副本集的初始化及其狀態查看
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 )#副本集初始化,需要一定時間
rs.initiate(config)
{ “ok” : 1 }

rs.status()#副本集狀態,一個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)
}

測試副本集的數據同步
mongo mongo1
use wyzgs
db.myuser.remove({age:{$lt:1000}})
主庫執行刪除:
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 })
備庫檢查數據同步
rs.slaveOk()#SECONDARY需要聲明是slave才能查看數據
從庫無法插入數據, 會提示
“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的延時情況
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

主庫模擬批量插入數據,備庫會出現演示
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入門到進階筆記:07-Mongo 副本集的搭建 添加 刪除 延時 仲裁 rs.status replSetName
標簽MongoDB,學習筆記,技術文檔,數據庫,MongoDB

相關下載

查看所有評論+

網友評論

網友
您的評論需要經過審核才能顯示

熱門閱覽

最新排行

公眾號

主站蜘蛛池模板: 国产精品视频免费观看调教网 | 欧美另类 videos黑人极品 | 亚洲精品亚洲人成毛片不卡 | 欧美国产一区二区三区 | 成人观看网站a | 成人男女网18免费91 | 日本欧美在线视频 | 中文字幕国产一区 | 国产成人av在线 | 99草精品视频 | 玖玖玖视频在线观看视频6 玖玖影院在线观看 | 精品在线99 | 五月天婷婷伊人 | 国产色手机在线观看播放 | 黄色网址视频在线观看 | 国产精品久久久精品视频 | 午夜精品一区二区三区在线观看 | 美女被男人桶到嗷嗷叫爽网站 | 俄罗斯美女毛片 | 一区二区在线欧美日韩中文 | 久草在线视频免费 | 久久久久久国产精品免费免费 | 国产一级视频久久 | 免费看男女做好爽好硬视频 | 日产乱码精品一二三区 | 国产真实乱系列2孕妇 | aaa级毛片 | 欧美亚洲综合另类在线观看 | 欧美高清免费精品国产自 | 成人性视频免费网站 | 国产精品视频永久免费播放 | 日韩在线一区二区三区 | 国产日韩精品一区在线不卡 | 中文字幕 亚洲一区 | 欧美日韩看看2015永久免费 | 欧美男女网站 | 国产中文久久精品 | 亚洲成人在线播放视频 | 乱子伦农村xxxx视频 | 欧美成人精品欧美一级乱黄 | 免费看日韩欧美一级毛片 |