一、材料
mongodb:6.0.13
mongosh:2.1.5
openssl-1.1.1w
系統:redhat4.8
二、模式
PDA: 一個主節點(Primary)、 一個延遲副節點(SEcondary)、一個仲裁節點(arbiter)
PDA | 主節點 | 延遲副節點 | 仲裁節點 |
名稱 | Primary | Secondary | Arbiter |
埠 | 27017 | 27018 | 27019 |
三、安裝步驟
工具自己的系統下載對應的安裝包並解壓的
根據自己的系統下載對應的安裝包 mongodb: https://www.mongodb.com/try/download/community mongosh: https://www.mongodb.com/try/download/shell 建立安裝目錄 mkdir -m 755 /usr/local/mongodb/ 解壓 tar -zxvf mongodb-linux-x86_64-rhel70-6.0.13.tgz tar -zxvf mongosh-1.10.6-linux-x64-openssl11.tgz 將軟體移動到安裝目錄 mv ./mongodb-linux-x86_64-rhel70-6.0.13/bin /usr/local/mongodb/ mv ./mongosh-1.10.6-linux-x64-openssl11/bin/* /usr/local/mongodb/bin 建立資料資料日誌目錄 主節點: mkdri -m 755 /data/mongodb/27017/data mkdri -m 755 /data/mongodb/27017/log 延遲副節點: mkdri -m 755 /data/mongodb/27018/data mkdri -m 755 /data/mongodb/27018/log 仲裁節點: mkdri -m 755 /data/mongodb/27019/data mkdri -m 755 /data/mongodb/27019/log
四、配置檔案
建立三個配置檔案,每個配置檔案的內容著需要修改相對硬的埠 即可
/usr/local/mongodb/mongodb27017.conf
/usr/local/mongodb/mongodb27018.conf
/usr/local/mongodb/mongodb27019.conf
systemLog: #MongoDB傳送所有日誌輸出的目標指定為檔案 destination: file #mongod或mongos應向其傳送所有診斷日誌記錄資訊的日誌檔案的路徑 path: "/data/mongodb/27017/data/log/mongod.log" #當mongos或mongod例項重新啟動時,mongos或mongod會將新條目附加到現有日誌檔案的末尾。 logAppend: true storage: #每個資料庫建立單獨目錄 directoryPerDB: true #mongod例項儲存其資料的目錄。storage.dbPath設定僅適用於mongod。 dbPath: "/data/mongodb/27017/data/data/" journal: #啟用或禁用永續性日誌以確保資料檔案保持有效和可恢復。 enabled: true wiredTiger: engineConfig: directoryForIndex: true processManagement: #啟用在後臺執行mongos或mongod程序的守護程序模式。 fork: true #指定用於儲存mongos或mongod程序的程序ID的檔案位置,其中mongos或mongod將寫入其PID pidFilePath: "/data/mongodb/27017/data/log/mongod.pid" net: #服務例項繫結所有IP,有副作用,副本集初始化的時候,節點名字會自動設定為本地域名,而不是ip #bindIpAll: true #服務例項繫結的IP bindIp: localhost,192.168.142.12 #繫結的埠 port: 27017 replication: #副本集的名稱 replSetName: jxkshu oplogSizeMN: 1024 #Security: # authorization: disabled #disabled 關閉認證 enabled 開啟認證 # clusterAuthMode: keyFile # keyFile: "/usr/local/mongodb/mongodb.keyfile"
五、啟動
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb27017.conf /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb27018.conf /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb27019.conf tips: /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb27019.conf --shutdown #關閉
六、配置複製集
任意登入一個例項(推薦你登陸希望它成為主節點的哪個例項) /usr/local/mongodb/mongosh/bin/mongosh --host 172.0.0.1 -port 27017 切換到admin use admin 例項化複製集讓該節點變成主節點 rs.initiate({ _id:"jxkshu", #複製集名稱就是 replSetName members:[ { _id:0, host:"192.168.142.12:27017" } ] }) 繼續新增副本集 rs.add("192.168.142.12:27018") 可以使用rs.status() 檢視情況 新增仲裁節點 rs.addArb("192.168.142.12:27019") 配置完成 使用rs.status() 檢視情況,如果一切實力 表示搭建完成
七、延遲副節點
主要未來防止誤操作 比如刪庫什麼的 將27018 例項 變更成延遲節點
use admin #將複製集配置資訊複製到變數cfg中 cfg = rs.conf() #檢視cfg.members 列表資訊 發現 27018 的_id是 1 #修改 cfg.members[1].hidden = true #隱藏該節點 不然客戶端讀取 cfg.members[1].priority = 0 #設定被選舉權 不讓起成為主節點 cfg.members[1].secondaryDelaySecs = 3600 # 副節點延遲3600秒 在同步 cfg.members[1].votes = 0 #設定退票數 不讓它成為主節點 #重新就在複製集配置 rs.reconfig(cfg) #或者 rs.reconfigForPSASet(1, cfg) #1 是27018 的_id是 1 #然複製集重新選舉
Note:建議操作之前先透過 rs.help() 看看 其內部函式作用及引數詳解
可惡的csdn 不要再來偷我的部落格了 太噁心啦