MongoDB Replica Set & Sharding

?????????????????????????????記得風吹起的零散記憶 ,堆砌著巧克力般的幸福甜蜜,那時一起走過的青草綠地 ,留下了錦瑟音里的萬千思緒

  • 搜狗截圖20180410222542
  • MongoDB Replica Set

    • 準備服務器:172.16.8.91,172.16.8.92,172.16.8.93
    • # mongod –config=/usr/local/mongodb/mongodb.conf :啟動,啟動前需要在每臺服務器上的配置文件中加入replSet=SET01
    • 配置主從節點:

      • 方式一:

        • # mongo 172.16.8.91:27017
        • > rs.initiate() :初始化副本集,登入任意一臺機器的MongoDB執行,因為是全新的副本集所以可以任意進入一臺執行;要是有一臺有數據,則需要在有數據上執行;要多臺有數據則不能初始化,輸入的此命令只是將當前機器設置為primary,到primary狀態有一個等待時間
        • > rs.status():查看副本集的狀態

          • {
  • "set" : "testRS",

    "date" : ISODate("2018-04-10T13:21:42.192Z"), 當前日期

    "myState" : 1,

    "members" : [ 顯示當前副本集成員的屬性

    {

    "_id" : 0, 節點加入副本集后的唯一ID

    "name" : "centos7-5:27017",

    "health" : 1, 節點的健康狀態

    "state" : 1,

    "stateStr" : "PRIMARY", 該節點

    "uptime" : 507, 運行時長

    "optime" : Timestamp(1544534491, 1), optime:指某成員節點最后一次應用本地oplog日志中事件條目的時間戳,時間戳即是一串數字,和時間有所區別

    "optimeDate" : ISODate("2018-04-10T13:21:31Z"), 最后一次oplog操作的時間

    "electionTime" : Timestamp(1544534491, 2), 選舉時間戳

    "electionDate" : ISODate("2018-04-10T13:21:31Z"), 選舉時間

    "configVersion" : 1,

    "self" : true

    }

    ],

    "ok" : 1

    }

  • testRS:PRIMARY> rs.add(“172.16.8.92”):添加從節點到副本集,指定IP和PORT,PORT默認27017,剛開是從節點的狀態STARTUP,是因為在進行數據同步的初始化階段,如果數據同步完成變成SECONDARY
  • testRS:PRIMARY> rs.add(“172.16.8.93”)
  • 方式二:

    • # mongo 172.16.8.91:27017
    • > cfg={ _id:"RSet01", members:[ {_id:0,host:’172.16.8.91:27017′,priority:2}, {_id:1,host:’172.16.8.92:27017′,priority:1}, {_id:2,host:’172.16.8.93:27017′,arbiterOnly:true}] };

      • cfg:設置一個cfg的變量,是可以任意的名字,當然最好不要是mongodb的關鍵字,conf,config都可以
      • _id : 副本集的名稱
      • members :副本集的服務器列表
      •  _id : 服務器加入副本集后的唯一ID
      • priority:表示優先級,優先級最高的成為primary,默認為1,優先級0為被動節點,不能成為活躍節點。優先級不位0則按照有大到小選出活躍節點。
      • arbiterOnly:true :表示仲裁節點,只參與投票,不接收數據,也不能成為活躍節點。
    • > rs.initiate(cfg) 使cfg配置生效
  • MongoDB副本集相關的指令:

    • rs.help() 副本集命令的幫助
    • rs.status()    查看副本集中成員的運行狀態等信息
    • rs.config()     查看配置信息,即各成員信息
    • rs.slaveOk()   允許在SECONDARY節點上進行查詢操作,默認從節點不具有查詢功能
    • rs.isMaster()   查詢該節點是否是主節點
    • rs.add(“IP”)    添加新的節點到該副本集中
    • rs.remove()    從副本集中刪除節點,如:rs.remove(“IP:PORT”),必須加端口
    • rs.conf() 打印副本集的成員配置信息到熒幕
    • rs.stepDown([#]) 指定#秒后讓自己離線,不指定#表示立即
    • rs.addArb(”IP”) 添加一個節點為arbiter
  • MongoDB Sharding的搭建

    • 先啟動若干 shard 節點: # mongod –shardsvr
    • 啟動 3 個 config 節點: # mongod –configsvr
    • 啟動 mongos :# mongos –configdb=192.168.1.100, 192.168.1.101, 192.168.1.102

      • –shardsvr 參數只起到修改默認端口為 27018 作用,–configsvr 則修改默認端口為 27019 以及默認路徑為 /data/configdb。此外并沒有什么直接作用。實際使用時,也可以自己指定端口和數據路徑。此外,這兩個參數的另一個作用就是對進程進行標記,這樣在 ps aux 的進程列表里,就很容易確定進程的身份。–configdb 參數就是 config 節點的地址。如果更改了默認端口,則需要在這里加上。
    • 然后我們把數據節點加入集群:

      • # mongo連接到mongos節點
      • > use admin
      • > sh.addShard(’ [hostname]:[port]’)
      • 如果使用的是 replicaSet,則是

        • > use admin
        • > sh.addShard(’replicaSetName/,,’)
      • 接著就是啟用 sharding 了。

        • > sh.enableSharding(dbname)
        • > sh.shardCollection(fullName, key, unique)
    • 這樣就可以了。還是很簡單的吧。如果 collection 里有數據,則會自動進行數據平衡

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95667

(0)
DPingDPing
上一篇 2018-04-10 21:28
下一篇 2018-04-11 14:05

相關推薦

  • 權限

    chmod 更改權限 語法 1 who 對誰操作 opt做什么操作 per 跟什么權限 跟文件 who u g o a opt +增加 -減掉 =覆蓋 per rwx reset 重復系統 文本文件 r 讀 打開 w 改 x 執行程序 chown 更改所有者 chgrp 更改所屬組 chmod who (u) opt (g)per(o) file文件 綠色有…

    Linux筆記 2018-04-08
  • 磁盤管理知識

    磁盤管理知識 1.tune2fs(調整文件系統參數) ???? [root@centos6 ~]#tune2fs -i 3 /dev/sdb (interval 間隔,即3天檢查一次) ???? tune2fs 1.41.12 (17-May-2010) ???? Setting interval between checks to 259200 secon…

    Linux筆記 2018-04-24
  • 學習筆記(4)

    學習筆記(4)

    Linux筆記 2018-04-22
  • 網絡管理基礎

    1.PDU: Protocol Data Unit,協議數據單元是指對等層次之間傳遞的數據單位 ?物理層的 PDU是數據位 bit ?數據鏈路層的 PDU是數據幀 frame ?網絡層的PDU是數據包 packet ?傳輸層的 PDU是數據段 segment ?其他更高層次的PDU是消息 message 2.TCP特性工作在傳輸層 ?面向連接協議 ?全雙工協…

    Linux筆記 2018-05-02
  • 計算機原理與Linux基礎

    計算機的組成及功能 1、其實計算機的組織分為內部設備和外部設備, 內部設備: ? ? ? ? CPU:運算器、寄存器、緩存 ? ? ? ? 存儲器:內存,RAM(Random Access Memory) ? ? ? ? 控制器:控制器是整個計算機系統的控制中心,它指揮計算機各部分協調地工作,保證計算機按照預先規定的目標和步驟有條不紊地進行操作及處理。 外部…

    Linux筆記 2018-05-13
欧美性久久久久