257_Mongodb_集合_副本集
環境搭建測試

a. 規劃
多實例:
(1)多個端口:28017、28018、28019、28020
(2)多套目錄
su - mongod mkdir -p /MongoDB/28017/conf /MongoDB/28017/data/mongodb/28017/log mkdir -p /mongodb/28018/conf /mongodb/28018/data/mongodb/28018/log mkdir -p /mongodb/28019/conf /mongodb/28019/data/mongodb/28019/log mkdir -p /mongodb/28020/conf /mongodb/28020/data/mongodb/28020/log
(3)配置文件內容準備
cat > /mongodb/28017/conf/mongod.conf < (4)啟動多個實例備用 mongod -f /mongodb/28017/conf/mongod.conf mongod -f /mongodb/28018/conf/mongod.conf mongod -f /mongodb/28019/conf/mongod.conf mongod -f /mongodb/28020/conf/mongod.conf b. 配置/設置復制集: (1)1主2從,從庫普通從庫(PSS) config = {_id: 'my_repl', members: [ {_id: 0, host:'10.0.0.51:28017'}, {_id: 1, host:'10.0.0.51:28018'}, {_id: 2, host:'10.0.0.51:28019'}] } rs.add({"_id":3,"host":"192.168.163.134:27019","priority":0,"hidden":true}) rs.initiate(config) # 文檔格式 config ={ _id: "my_repl", #副本集的名稱 version:1, members:[ #副本集的服務器列表 { _id: (2)1主1從1個arbiter(PSA) config = {_id: 'my_repl', members: [ {_id: 0, host:'10.0.0.51:28017'}, {_id: 1, host:'10.0.0.51:28018'}, {_id: 2, host:'10.0.0.51:28019',"arbiterOnly":true}] } rs.initiate(config) c ?復制集管理操作 (1)查看復制集狀態: rs.status(); //查看整體復制集狀態 rs.isMaster(); // 查看當前是否是主節點 (2)添加刪除節點 rs.add("ip:port"); // 新增從節點 rs.addArb("ip:port"); // 新增仲裁節點 rs.remove("ip:port"); // 刪除一個節點 (3)特殊從節點的配置 ? 優先級(priority 參數:0-1000): 優先級越高的節點越優先成為主節點。 優先級為0的節點無法成為主節點; ? 隱藏(hidden 參數):復制數據,但對應用不可見。隱藏節點可以具有投票僅,但優先級必須為0; ? 延遲(slaveDelay 參數):復制 n 秒之前的數據,保持與主節點的時間差 配置延時節點(一般延時節點也配置成hidden) cfg=rs.conf() cfg.members[1].priority=0 cfg.members[1].slaveDelay=120 cfg.members[1].hidden=true rs.reconfig(cfg) 改回來: cfg=rs.conf() cfg.members[2].priority=1 cfg.members[2].slaveDelay=0 cfg.members[2].hidden=0 cfg.members[2].votes=0 rs.reconfig(cfg) 配置成功后,通過以下命令查詢配置后的屬性 rs.conf(); 副本集其他操作命令 --查看副本集的配置信息 admin> rs.config() --查看副本集各成員的狀態 admin> rs.status() --副本集角色切換(不要人為順便操作,有風險) admin> rs.stepDown() 注: admin> rs.freeze(300) //鎖定從,使其不會轉變成主庫 freeze()和stepDown單位都是秒。 --設置副本節點可讀:在副本節點執行 admin> rs.slaveOk() replica_alex:PRIMARY> rs.config() { "_id" : "replica_alex", "version" : 1, "protocolVersion" : NumberLong(1), "writeConcernMajorityJournalDefault" : true, "members" : [ { "_id" : 0, "host" : "25.213.20.110:8635", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 1, "host" : "25.213.20.111:8635", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 2, "host" : "25.213.20.112:8635", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : true, "priority" : 0, "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("6198a39baf56065a6f73fa18") } } MongoDB
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。