Mongodb複製集

來源:互聯網
上載者:User

標籤:設定檔   touch   ini   roc   連接埠   初始化   init   教程   mkdir   

  • Mongodb複製集簡介
    Mongodb複製集由一組Mongod執行個體(進程)組成,包含一個Primary節點和多個Secondary節點,Mongodb Driver(用戶端)的所有資料都寫入Primary,Secondary從Primary同步寫入的資料,以保持複製集內所有成員儲存相同的資料集,提供資料的高可用。
    用戶端在主節點寫入資料,在從節點讀取資料,主節點和從節點進行資料互動保證資料一致性,如果其中一個節點出了故障,其他發節點馬上將業務接過來無需停機操作
  • 複製集的優勢

    讓資料更安全
    搞資料可用性
    災難恢複
    無停機維護(如備份,重建索引,容錯移轉)
    讀縮放(額外的副本讀取)
    複本集對應用程式是透明的

  • 複製集的特點

    N個幾點的群集
    任何節點可作為主節點
    所有寫入操作都在主節點上
    自動容錯移轉
    自動回復

  • 複製集部署
  • 安裝好的MongoDB
  • 添加配置4個執行個體
  • 點擊:安裝及執行個體添加教程

    # mkdir -p /data/mongodb/mongodb{2,3,4}     //建立資料目錄# mkdir /data/mongodb/logs# touch /data/mongodb/logs/mongodb{2,3,4}.log    //建立記錄檔# cd /data/mongodb/logs/# chmod 777 *.log     //賦予許可權
  • 編輯4個執行個體的記錄檔

    # cp -p /etc/mongod.conf /etc/mongod2.conf# vim /etc/mongod2.conf     path: /data/mongodb/logs/mongodb2.log               //每個執行個體指定自己日誌目錄     dbPath: /data/mongodb/mongodb2                        //每個執行個體指定自己的資料目錄     port: 27018                                                          //指定連接埠分別為27017、 27018、 27019 、 27020        .......     replication:                                           //開啟所有執行個體的複製參數:定義一個 replSetName: kgcrs                replSetName: kgcrs
  • 啟動所有執行個體

    # mongod -f /etc/mongod.conf# mongo --port 27017# mongod -f /etc/mongod2.conf# mongo --port 27018# mongod -f /etc/mongod3.conf# mongo --port 27019# mongod -f /etc/mongod4.conf# mongo --port 27020# netstat -ntap | grep mongod

  • 初始化配置複製集
  • 確定節點上沒有資料

        # mongo   //進入執行個體    > show dbs    > rs.status()  //查看複製集狀態    > cfg={"_id":"kgcrs","members":[{"_id":0,"host":"192.168.233.128:27017"},{"_id":1,"host":"192.168.233.128:27018"},{"_id":2,"host":"192.168.233.128:27019"}]}     // 定義cfg初始化參數  id 是之前設定檔裡定義的,成員(3個  id分別定義 0 1 2   IP連接埠號碼27017、27018、27019)     >  rs.initiate(cfg)     //啟動複製集     >  rs.status()  //查看此時可以查看到複製狀態了

  • 增加和刪除節點
  • 配置啟動複製集後可以通過 rs.add() 和rs.remove() 來增加和刪除節點

    rs.add("192.168.233.128:27020") //增加節點
    rs.status()

    rs.remove("192.168.233.128:27020") //刪除節點

    • MongoDB複製集的切換
    • 當節點出現故障會自動切換到其他節點,管理員也可以手動切換

      # ps aux | grep  mongod
  •         # kill -9 61070    //關閉主節點    複製集會自動切換        > rs.status()   //查看
    • 手動切換

      kgcrs:PRIMARY> rs.freeze(30)      //PRIMARY暫停30s不參與選舉kgcrs:PRIMARY> rs.stepDown(60,30)   //交出主節點位置,維持從節點狀態不少於60秒,等待30秒使主節點和從節點日誌同步

    Mongodb複製集

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.