MongoDB 3.0副本集配置

請先閱讀我之前的文章《MongoDB 3.0的在CentOS6.5上的安裝
 
 一、創建副本集須知:
      1、存在一臺有超級管理員的mongod服務器,可以有數據庫,其他所有的服務器都必須是全新安裝,
           且每一臺上都要創建超級管理員和數據庫管理員,且賬號、密碼必須一致
      2、副本集或分片中的所有mongod服務器都必須持有同樣的mongodb-keyfile,才能通訊成功。
      3、一旦創建成功後,任意一臺哪怕是主服務器奔潰了都沒有問題,會自動選舉出一個主服務器,繼續爲用戶服務。
          如果服務器資源比較緊張,可以一臺Master,一臺salver,一臺仲裁服務器(與Salver部署在一起),注意必須至少有3臺服務器,
          如果只是一臺Master,一臺Slaver,假Master掛了,此時Salver不會主動成爲Master,此時MongoDB對外只能提供read服務。
      4、可以啓動一臺延遲備份節點,指定主機同步N時間後,才同步,比如主機同步一個月後同步,如果主機版本出現重大問題,導致其他正常的備機
           也出現問題,此時至少可以恢復到一個月以前,當然也可以定期凌晨備份主節點。
      5、可以將備節點依次停機,以單機模式mongod&方式啓動,進行維護,比如給某個集合創建索引,然後重新以mongod副本集方式啓動。
           這意味着:
           1、通過維護,副本的數據實際上可以和主節點不一致.
           2、insert的時候因爲索引導致速度變慢,這樣實現讀寫分離,讀有索引的備節點快,插沒有索引的主節點也快。
       6、副本集成員除了主服務器外,其他的都不能讀寫,除非設置db.setSlaveOk()纔可以讀,但依然不可以寫。
       7、[拓展閱讀,寫得很好!]:http://snoopyxdy.blog.163.com/blog/static/60117440201241694254441/   (寫得很好)
          
二、副本集創建步驟:
      1、準備3臺全新MongoDB服務器(MongoDB3.0最多支持50臺slaver),1臺爲Master,2個爲salver(或者1臺salver,一臺仲裁服務器):
      2、爲每一臺服務器創建超級管理員,並創建數據庫hezx的管理員(賬號、密碼、對應的數據庫必須保持一致)
          一、預先創建mongodb超級管理員,該賬號可以關閉mongod進程
               1)、#mongod&,此時直接啓動mongo後臺服務
               2)、#mongo  
               3)、#use admin  連接到admin數據庫
                #db.createUser({user: "superAdmin",pwd: "admin123",roles: [ "root" ]})
 
          二、預先創建指定的數據庫管理員:use 
               1)、#mongod&,此時直接啓動mongo後臺服務
               2) #mongo
                     #use hezx
               3)、如下語句爲hezx數據庫創建了一個管理員。
                    #db.createUser({user: "admin",pwd: "admin123",roles: [{ role: "readWrite", db: "hezx" },{ role: "readWrite", db: "admin" },{ role: "readWrite", db: "local" }]})
            用戶可以use admin 使用 超級管理員刪除該用戶db.system.users.remove({"user":"賬號名稱"})
  
 
      3、正式啓動副本集服務,依次在3臺MongoDB的服務器上執行如下命令:
           啓動副本集命令,副本集名稱fubenji必須一致。
            mongod --auth --replSet fubenji --config /etc/mongodb.conf
 
      
 
  4、在其中一臺Mongo服務器的shell上執行,這臺機器將成爲Master,其他機器則成爲了salver:
   >use admin
   > db.auth("superAdmin","admin123")   使用超級管理員登陸
   > config={"_id" : "fubenji","version" : 1,"members" : [{ "_id" : 1,"host":"192.168.62.152:17018"},{ "_id" : 2,"host":"192.168.62.153:17018"},{ "_id" : 
   3,"host":"192.168.62.154:17018"}]}
   > rs.initiate(config)
 
   如果提示:"errmsg" : "'192.168.62.153:17018' has data already, cannot initiate set."  說明,153機器不是全新的Mongo服務器,請重新安裝後啓動。
   如果提示:{ "ok" : 1 } 說明副本集配置成功。
 
   4、rs.status() 可以查看副本集中成員的狀態:哪個salver已經掛了。
        health:1 活着  0 掛了     stateStr:"PRIMARY" 主  "SECONDARY" 從
   5、rs.add("192.168.62.155:17018") 可以添加新的salver,最好是全新的mongodb服務,否則新加入的服務上的數據庫會被清除掉。
        rs.add({"_id":4,"host":"192.168.62.155:17018","priority":0,"hidden":true,“votes”:0}) //可以傳遞複雜的參數進行加入,如沒有投票權,且不能成爲主節點
        rs.remove("192.168.62.155:17018")可以刪除salver。
        rs.reconfig()可以重新配置副本集。
        rs.isMaster()查看誰主從關係
        rs.stepDown()把主節點降級爲備節點.
        rs.freeze(100000)對主節點維護100秒,且其他節點不能成爲主節點
        rs.freeze(0)可以把退位的主節點重新變爲主節點。
        db.setSlaveOk(),通過這個命令後,非主服務器可以進行查詢的操作,但不能進行寫操作。該命令退出shell後就失效
 
   6、此時通過mongo shell連接mongod服務,可執行任何mongod操作
        fubenji:PRIMARY>use admin
一、創建副本集須知:
      1、存在一臺有超級管理員的mongod服務器,可以有數據庫,其他所有的服務器都必須是全新安裝,
           且每一臺上都要創建超級管理員和數據庫管理員,且賬號、密碼必須一致
      2、副本集或分片中的所有mongod服務器都必須持有同樣的mongodb-keyfile,才能通訊成功。
      3、一旦創建成功後,任意一臺哪怕是主服務器奔潰了都沒有問題,會自動選舉出一個主服務器,繼續爲用戶服務。
          如果服務器資源比較緊張,可以一臺Master,一臺salver,一臺仲裁服務器(與Salver部署在一起),注意必須至少有3臺服務器,
          如果只是一臺Master,一臺Slaver,假Master掛了,此時Salver不會主動成爲Master,此時MongoDB對外只能提供read服務。
      4、可以啓動一臺延遲備份節點,指定主機同步N時間後,才同步,比如主機同步一個月後同步,如果主機版本出現重大問題,導致其他正常的備機
           也出現問題,此時至少可以恢復到一個月以前,當然也可以定期凌晨備份主節點。
      5、可以將備節點依次停機,以單機模式mongod&方式啓動,進行維護,比如給某個集合創建索引,然後重新以mongod副本集方式啓動。
           這意味着:
           1、通過維護,副本的數據實際上可以和主節點不一致.
           2、insert的時候因爲索引導致速度變慢,這樣實現讀寫分離,讀有索引的備節點快,插沒有索引的主節點也快。
       6、副本集成員除了主服務器外,其他的都不能讀寫,除非設置db.setSlaveOk()纔可以讀,但依然不可以寫。
       7、[拓展閱讀,寫得很好!]:http://snoopyxdy.blog.163.com/blog/static/60117440201241694254441/   (寫得很好)
          
二、副本集創建步驟:
      1、準備3臺全新MongoDB服務器(MongoDB3.0最多支持50臺slaver),1臺爲Master,2個爲salver(或者1臺salver,一臺仲裁服務器):
      2、爲每一臺服務器創建超級管理員,並創建數據庫hezx的管理員(賬號、密碼、對應的數據庫必須保持一致)
          一、預先創建mongodb超級管理員,該賬號可以關閉mongod進程
               1)、#mongod&,此時直接啓動mongo後臺服務
               2)、#mongo  
               3)、#use admin  連接到admin數據庫
                #db.createUser({user: "superAdmin",pwd: "admin123",roles: [ "root" ]})
 
          二、預先創建指定的數據庫管理員:use 
               1)、#mongod&,此時直接啓動mongo後臺服務
               2) #mongo
                     #use hezx
               3)、如下語句爲hezx數據庫創建了一個管理員。
                    #db.createUser({user: "admin",pwd: "admin123",roles: [{ role: "readWrite", db: "hezx" },{ role: "readWrite", db: "admin" },{ role: "readWrite", db: "local" }]})
            用戶可以use admin 使用 超級管理員刪除該用戶db.system.users.remove({"user":"賬號名稱"})
  
      3、正式啓動副本集服務,依次在3臺MongoDB的服務器上執行如下命令:
           啓動副本集命令,副本集名稱fubenji必須一致。
            mongod --auth --replSet fubenji --config /etc/mongodb.conf
 
  4、在其中一臺Mongo服務器的shell上執行,這臺機器將成爲Master,其他機器則成爲了salver:
   >use admin
   > db.auth("superAdmin","admin123")   使用超級管理員登陸
   > config={"_id" : "fubenji","version" : 1,"members" : [{ "_id" : 1,"host":"192.168.62.152:17018"},{ "_id" : 2,"host":"192.168.62.153:17018"},{ "_id" : 
   3,"host":"192.168.62.154:17018"}]}
   > rs.initiate(config)
 
   如果提示:"errmsg" : "'192.168.62.153:17018' has data already, cannot initiate set."  說明,153機器不是全新的Mongo服務器,請重新安裝後啓動。
   如果提示:{ "ok" : 1 } 說明副本集配置成功。
 
   4、rs.status() 可以查看副本集中成員的狀態:哪個salver已經掛了。
        health:1 活着  0 掛了     stateStr:"PRIMARY" 主  "SECONDARY" 從
   5、rs.add("192.168.62.155:17018") 可以添加新的salver,最好是全新的mongodb服務,否則新加入的服務上的數據庫會被清除掉。
        rs.add({"_id":4,"host":"192.168.62.155:17018","priority":0,"hidden":true,“votes”:0}) //可以傳遞複雜的參數進行加入,如沒有投票權,且不能成爲主節點
        rs.remove("192.168.62.155:17018")可以刪除salver。
        rs.reconfig()可以重新配置副本集。
        rs.isMaster()查看誰主從關係
        rs.stepDown()把主節點降級爲備節點.
        rs.freeze(100000)對主節點維護100秒,且其他節點不能成爲主節點
        rs.freeze(0)可以把退位的主節點重新變爲主節點。
        db.setSlaveOk(),通過這個命令後,非主服務器可以進行查詢的操作,但不能進行寫操作。該命令退出shell後就失效
 
   6、此時通過mongo shell連接mongod服務,可執行任何mongod操作
        fubenji:PRIMARY>use admin
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章