mongodb6.0.13 搭建複製集PSA

IT树發表於2024-03-08

一、材料

  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 不要再來偷我的部落格了 太噁心啦

相關文章