注册网站填写不了地区,百度指数平台,弹幕网站开发难么,网站如何做免费的推广副本集重命名
要重命名副本集#xff0c;您必须关闭副本集的所有成员#xff0c;然后使用新的副本集名称配置每个成员的数据库。
此过程需要停机。
先决条件
确保您的副本集未分片。重命名过程仅适用于未分片的副本集。
在重命名副本集之前#xff0c;请 对 MongoDB 部…副本集重命名
要重命名副本集您必须关闭副本集的所有成员然后使用新的副本集名称配置每个成员的数据库。
此过程需要停机。
先决条件
确保您的副本集未分片。重命名过程仅适用于未分片的副本集。
在重命名副本集之前请 对 MongoDB 部署执行完整备份。
做好备份非常重要无论如何请先在测试环境验证后再执行该操作
启用身份验证后请确保您的用户角色对每个成员数据库中的集合具有 find、insert 和 remove 权限。
db.runCommand({rolesInfo: { role: xxxxx, db: yyyyyy },showPrivileges: true}
)授权
db.getUser(admin)
{_id : admin.admin,userId : UUID(adb37ec9-89e9-464b-a241-029194bec6ef),user : admin,db : admin,roles : [{role : root,db : admin}],mechanisms : [SCRAM-SHA-1,SCRAM-SHA-256]
}db.createRole({role: collectionRole,privileges: [{ resource: { db: local, collection: system.replset }, actions: [ find, remove, insert ] }],roles: []}
)db.grantRolesToUser(admin,[{role:collectionRole,db:admin}])db.getUser(admin)
{_id : admin.admin,userId : UUID(adb37ec9-89e9-464b-a241-029194bec6ef),user : admin,db : admin,roles : [{role : root,db : admin},{role : collectionRole,db : admin}],mechanisms : [SCRAM-SHA-1,SCRAM-SHA-256]
}关闭副本集成员
此步骤需要停机因为所有副本成员都需要关闭。
当前副本集名称 “set” : “sit_rs1”
{set : sit_rs1,date : ISODate(2023-11-10T08:08:08.707Z),myState : 1,......members : [{_id : 1,name : 192.168.88.11:27018,health : 1,state : 2,stateStr : SECONDARY,......},{_id : 3,name : 192.168.88.11:27017,health : 1,state : 1,stateStr : PRIMARY,......},{_id : 4,name : 192.168.88.11:27019,health : 1,state : 2,stateStr : SECONDARY,.....}],ok : 1,$clusterTime : {clusterTime : Timestamp(1699603684, 1),signature : {hash : BinData(0,yDDKmbDiNNhNxzNxh20IjGyr3o),keyId : NumberLong(7236938018798436354)}},operationTime : Timestamp(1699603684, 1)
}关闭副本集成员三台都关闭
# shutdown 27019
su mongodb -s /bin/bash -c /usr/local/mongodb/bin/mongod --dbpath /data/mongodb27019/data --port 27019 --shutdown# shutdown 27018
su mongodb -s /bin/bash -c /usr/local/mongodb/bin/mongod --dbpath /data/mongodb27018/data --port 27018 --shutdown# shutdown 27017
su mongodb -s /bin/bash -c /usr/local/mongodb/bin/mongod --dbpath /data/mongodb/data --port 27017 --shutdown重命名副本集
对每个副本集成员执行以下步骤 以其中一台 27019 为例
在 不带 --replSet 该选项 的情况下在不同端口上启动副本集成员 如下注释掉 replication 选项。 端口改为 28019
rootubuntu-x64_01:/opt# cat /etc/mongod27019.conf
systemLog:destination: filepath: /data/mongodb27019/log/mongod.loglogAppend: true
storage:dbPath: /data/mongodb27019/datajournal:enabled: truedirectoryPerDB: true
processManagement:fork: true
net:bindIp: localhost,192.168.88.11#port: 27019port: 28019maxIncomingConnections: 65536
security:keyFile: /data/mongodb27019/data/replsetAIKclusterAuthMode: keyFileauthorization: enabled
#replication:
# replSetName: sit_rs1
# enableMajorityReadConcern: true启动副本集成员:
rootubuntu-x64_01:/opt# su mongodb -s /bin/bash -c /usr/local/mongodb/bin/mongod --config /etc/mongod27019.conf 21 /dev/null 更新副本集名称。
如果使用配置文件请设置 replication.replSetName 为新名称。replSetName: “sit_rs1” 变更为 replSetName: “local_rs1”
rootubuntu-x64_01:/opt# cat /etc/mongod27019.conf
systemLog:destination: filepath: /data/mongodb27019/log/mongod.loglogAppend: true
storage:dbPath: /data/mongodb27019/datajournal:enabled: truedirectoryPerDB: true
processManagement:fork: true
net:bindIp: localhost,192.168.88.11#port: 27019port: 28019maxIncomingConnections: 65536
security:keyFile: /data/mongodb27019/data/replsetAIKclusterAuthMode: keyFileauthorization: enabled
replication:replSetName: local_rs1enableMajorityReadConcern: true使用以下命令更新本地数据库中的副本集名称 use local
switched to db local db.system.replset.find().pretty()
{_id : sit_rs1,version : 20,term : 249,protocolVersion : NumberLong(1),writeConcernMajorityJournalDefault : true,members : [{_id : 1,host : 192.168.88.11:27018,arbiterOnly : false,buildIndexes : true,hidden : false,priority : 1,tags : {},slaveDelay : NumberLong(0),votes : 1},{_id : 3,host : 192.168.88.11:27017,arbiterOnly : false,buildIndexes : true,hidden : false,priority : 1,tags : {},slaveDelay : NumberLong(0),votes : 1},{_id : 4,host : 192.168.88.11:27019,arbiterOnly : false,buildIndexes : true,hidden : false,priority : 1,tags : {},slaveDelay : NumberLong(0),votes : 1}],settings : {chainingAllowed : true,heartbeatIntervalMillis : 2000,heartbeatTimeoutSecs : 10,electionTimeoutMillis : 10000,catchUpTimeoutMillis : -1,catchUpTakeoverDelayMillis : 30000,getLastErrorModes : {},getLastErrorDefaults : {w : 1,wtimeout : 0},replicaSetId : ObjectId(6305db8beb57aaf6f57b130e)}
} var newId local_rs1 var doc db.getSiblingDB(local).system.replset.findOne() var oldId doc._id print(oldId, newId)
sit_rs1 local_rs1 doc._id newId
local_rs1 db.getSiblingDB(local).system.replset.insertOne(doc)
{ acknowledged : true, insertedId : local_rs1 } db.getSiblingDB(local).system.replset.deleteOne({_id: oldId})
{ acknowledged : true, deletedCount : 1 } db.getSiblingDB(local).system.replset.find().pretty()
{_id : local_rs1,version : 20,term : 249,protocolVersion : NumberLong(1),writeConcernMajorityJournalDefault : true,members : [{_id : 1,host : 192.168.88.11:27018,arbiterOnly : false,buildIndexes : true,hidden : false,priority : 1,tags : {},slaveDelay : NumberLong(0),votes : 1},{_id : 3,host : 192.168.88.11:27017,arbiterOnly : false,buildIndexes : true,hidden : false,priority : 1,tags : {},slaveDelay : NumberLong(0),votes : 1},{_id : 4,host : 192.168.88.11:27019,arbiterOnly : false,buildIndexes : true,hidden : false,priority : 1,tags : {},slaveDelay : NumberLong(0),votes : 1}],settings : {chainingAllowed : true,heartbeatIntervalMillis : 2000,heartbeatTimeoutSecs : 10,electionTimeoutMillis : 10000,catchUpTimeoutMillis : -1,catchUpTakeoverDelayMillis : 30000,getLastErrorModes : {},getLastErrorDefaults : {w : 1,wtimeout : 0},replicaSetId : ObjectId(6305db8beb57aaf6f57b130e)}
}关闭副本集成员在其原始端口上启动副本集成员。如果使用配置文件请确保将其 replication.replSetName 已经设置为新的副本集名称。
replication:replSetName: local_rs1enableMajorityReadConcern: true在其原始端口上启动副本集成员。
rootubuntu-x64_01:/opt# cat /etc/mongod27019.conf
systemLog:destination: filepath: /data/mongodb27019/log/mongod.loglogAppend: true
storage:dbPath: /data/mongodb27019/datajournal:enabled: truedirectoryPerDB: true
processManagement:fork: true
net:bindIp: localhost,192.168.88.11port: 27019maxIncomingConnections: 65536
security:keyFile: /data/mongodb27019/data/replsetAIKclusterAuthMode: keyFileauthorization: enabled
replication:replSetName: local_rs1enableMajorityReadConcern: true按上面的操作在另外两个实例都执行一遍后 执行修改后整个副本集状态如下
local_rs1:PRIMARY rs.status()
{set : local_rs1,date : ISODate(2023-11-15T11:25:05.087Z),myState : 1,term : NumberLong(251),syncSourceHost : ,syncSourceId : -1,heartbeatIntervalMillis : NumberLong(2000),majorityVoteCount : 2,writeMajorityCount : 2,votingMembersCount : 3,writableVotingMembersCount : 3,optimes : {lastCommittedOpTime : {ts : Timestamp(1700047503, 1),t : NumberLong(251)},lastCommittedWallTime : ISODate(2023-11-15T11:25:03.985Z),readConcernMajorityOpTime : {ts : Timestamp(1700047503, 1),t : NumberLong(251)},readConcernMajorityWallTime : ISODate(2023-11-15T11:25:03.985Z),appliedOpTime : {ts : Timestamp(1700047503, 1),t : NumberLong(251)},durableOpTime : {ts : Timestamp(1700047503, 1),t : NumberLong(251)},lastAppliedWallTime : ISODate(2023-11-15T11:25:03.985Z),lastDurableWallTime : ISODate(2023-11-15T11:25:03.985Z)},lastStableRecoveryTimestamp : Timestamp(1700047503, 1),electionCandidateMetrics : {lastElectionReason : electionTimeout,lastElectionDate : ISODate(2023-11-15T11:16:43.867Z),electionTerm : NumberLong(251),lastCommittedOpTimeAtElection : {ts : Timestamp(0, 0),t : NumberLong(-1)},lastSeenOpTimeAtElection : {ts : Timestamp(1699610346, 1),t : NumberLong(249)},numVotesNeeded : 2,priorityAtElection : 1,electionTimeoutMillis : NumberLong(10000),numCatchUpOps : NumberLong(0),newTermStartDate : ISODate(2023-11-15T11:16:43.877Z),wMajorityWriteAvailabilityDate : ISODate(2023-11-15T11:16:44.535Z)},members : [{_id : 1,name : 192.168.88.11:27018,health : 1,state : 2,stateStr : SECONDARY,uptime : 511,optime : {ts : Timestamp(1700047503, 1),t : NumberLong(251)},optimeDurable : {ts : Timestamp(1700047503, 1),t : NumberLong(251)},optimeDate : ISODate(2023-11-15T11:25:03Z),optimeDurableDate : ISODate(2023-11-15T11:25:03Z),lastAppliedWallTime : ISODate(2023-11-15T11:25:03.985Z),lastDurableWallTime : ISODate(2023-11-15T11:25:03.985Z),lastHeartbeat : ISODate(2023-11-15T11:25:04.468Z),lastHeartbeatRecv : ISODate(2023-11-15T11:25:03.448Z),pingMs : NumberLong(0),lastHeartbeatMessage : ,syncSourceHost : 192.168.88.11:27019,syncSourceId : 4,infoMessage : ,configVersion : 20,configTerm : 251},{_id : 3,name : 192.168.88.11:27017,health : 1,state : 2,stateStr : SECONDARY,uptime : 26,optime : {ts : Timestamp(1700047503, 1),t : NumberLong(251)},optimeDurable : {ts : Timestamp(1700047503, 1),t : NumberLong(251)},optimeDate : ISODate(2023-11-15T11:25:03Z),optimeDurableDate : ISODate(2023-11-15T11:25:03Z),lastAppliedWallTime : ISODate(2023-11-15T11:25:03.985Z),lastDurableWallTime : ISODate(2023-11-15T11:25:03.985Z),lastHeartbeat : ISODate(2023-11-15T11:25:04.520Z),lastHeartbeatRecv : ISODate(2023-11-15T11:25:04.285Z),pingMs : NumberLong(0),lastHeartbeatMessage : ,syncSourceHost : 192.168.88.11:27019,syncSourceId : 4,infoMessage : ,configVersion : 20,configTerm : 251},{_id : 4,name : 192.168.88.11:27019,health : 1,state : 1,stateStr : PRIMARY,uptime : 16264,optime : {ts : Timestamp(1700047503, 1),t : NumberLong(251)},optimeDate : ISODate(2023-11-15T11:25:03Z),lastAppliedWallTime : ISODate(2023-11-15T11:25:03.985Z),lastDurableWallTime : ISODate(2023-11-15T11:25:03.985Z),syncSourceHost : ,syncSourceId : -1,infoMessage : ,electionTime : Timestamp(1700047003, 1),electionDate : ISODate(2023-11-15T11:16:43Z),configVersion : 20,configTerm : 251,self : true,lastHeartbeatMessage : }],ok : 1,$clusterTime : {clusterTime : Timestamp(1700047503, 1),signature : {hash : BinData(0,FkEFPk5B3ZB364V3c3RkkEoBChI),keyId : NumberLong(7236938018798436354)}},operationTime : Timestamp(1700047503, 1)
}回收权限由于角色是临时授权的操作结束后回收该集合的变更权限
local_rs1:PRIMARY use admin
switched to db adminlocal_rs1:PRIMARY db.getUser(admin)
{_id : admin.admin,userId : UUID(adb37ec9-89e9-464b-a241-029194bec6ef),user : admin,db : admin,roles : [{role : root,db : admin},{role : collectionRole,db : admin}],mechanisms : [SCRAM-SHA-1,SCRAM-SHA-256]
}local_rs1:PRIMARY db.revokeRolesFromUser(admin,[{role:collectionRole,db:admin}])local_rs1:PRIMARY db.getUser(admin)
{_id : admin.admin,userId : UUID(adb37ec9-89e9-464b-a241-029194bec6ef),user : admin,db : admin,roles : [{role : root,db : admin}],mechanisms : [SCRAM-SHA-1,SCRAM-SHA-256]
}