MongoDB之主從複製和複本集(四)

來源:互聯網
上載者:User

標籤:客戶   journal   模式   www   init   ODB   登入   slave   href   

簡單主從複製
  • 採用一主一從或一主多從的布署模式,可以將讀寫分離開來,提高資料庫的可用性,不過mongodb的主從模式並不能在主節點崩潰後,從節點替換主節點的工作,一般可以在開發階段使用。
實現步驟
  • 設定設定檔
# mongodb.conf1 # 主節點dbpath=/var/lib/mongodb1 # 設定資料檔案#where to loglogpath=/var/log/mongodb/mongodb1.log # 設定記錄檔logappend=truebind_ip = 127.0.0.1,192.168.1.21 # 設定ipport = 27018 # 設定portjournal=truemaster = true # 設定主節點# mongodb.conf2 # 從節點dbpath=/var/lib/mongodb2 # 設定資料檔案#where to loglogpath=/var/log/mongodb/mongodb2.log # 設定記錄檔logappend=truebind_ip = 127.0.0.1,192.168.1.21 # 設定ipport = 27019 # 設定portjournal=trueslave = true # 設定從節點source = 192.168.1.21:27018 # 指定主節點
  • 使用設定檔啟動
# 啟動主節點mongod -f /etc/mongodb.conf1 &# 啟動從節點mongod -f /etc/mongodb.conf2 &
  • 測試發現,從節點可讀不可寫,主節點殺死後,從節點不能代替主節點。
複本集
  • 定義:複製提供了資料的冗餘備份,並在多個伺服器上儲存資料副本,提高了資料的可用性,並可以保證資料的安全性。

  • 特點:

  1. 主備節點儲存資料,仲裁節點不儲存資料。用戶端同時串連主節點與備節點,不串連仲裁節點。

  2. 所有節點分成3類,主節點,從節點和仲裁節點。

  3. 預設設定下,主節點提供所有增刪查改服務,備節點不提供任何服務。但是可以通過設定使備節點提供查詢服務;

  4. 自動容錯移轉

  5. 自動回復

實現步驟
  • 設定三份設定檔,分別為主節點、從節點、仲裁節點配置
# mongodb.confdbpath=/var/lib/mongodb # 資料檔案logpath=/var/log/mongodb/mongodb.log  # 記錄檔pidfilepath=/var/lib/mongodb/mongodb.pid  # 進程檔案logappend=true  # 添加方式replSet=name # 設定複本集名稱bind_ip=192.168.1.21  # 綁定ipport=27017  # portfork=true  # 後台運行noprealloc=true# mongodb.conf1dbpath=/var/lib/mongodb1 # 資料檔案logpath=/var/log/mongodb/mongodb1.log  # 記錄檔pidfilepath=/var/lib/mongodb/mongodb1.pid  # 進程檔案logappend=true  # 添加方式replSet=name # 設定複本集名稱bind_ip=192.168.1.21  # 綁定ipport=27018  # portfork=true  # 後台運行noprealloc=true# mongodb.conf2dbpath=/var/lib/mongodb2 # 資料檔案logpath=/var/log/mongodb/mongodb2.log  # 記錄檔pidfilepath=/var/lib/mongodb/mongodb2.pid  # 進程檔案logappend=true  # 添加方式replSet=name # 設定複本集名稱bind_ip=192.168.1.21  # 綁定ipport=27019  # portfork=true  # 後台運行noprealloc=true
  • 啟動節點
mongo -f /etc/mongodb.confmongo -f /etc/mongodb1.confmongo -f /etc/mongodb2.conf
  • 配置節點
mongo ip:portuse admin  fuben={ _id:"name", members:[ {_id:0,host:‘192.168.1.21:27017‘,priority:2}, {_id:1,host:‘192.168.1.21:27018‘,priority:1},   {_id:2,host:‘192.168.1.21:27019‘,arbiterOnly:true}] };  rs.initiate(fuben)   

參數:
priority:優先順序
arbiterOnly:仲裁節點

  • 有時報錯
"errmsg" : "couldn‘t initiate : member 192.168.1.21:27018 has data already, cannot initiate set.  All members except initiator must be empty."# 需要清空資料庫,將資料庫檔案都刪除
  • 生效後,從節點目前是不允許讀寫的,設定:
# 登入從節點rs.slaveOk();
  • 殺死主節點,可以看到從節點變為主節點,重新啟動主節點後,主節點還是主節點,不會變為從節點(老大永遠是老大);
參考:
  • https://www.cnblogs.com/hadoop-dev/p/6069780.html

  • https://docs.mongodb.com/manual/introduction/

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.