天天看點

Windows平台下安裝MongoDB(叢集)

  1. ​官網地​​址https://www.mongodb.com/  
  2. ​下載下傳位址https://www.mongodb.com/try/download/enterprise 這裡我們下載下傳Windows版本的4.4.3版本,壓縮包位址為:https://downloads.mongodb.com/windows/mongodb-windows-x86_64-enterprise-4.4.3.zip​ 具體如下圖所示:
    Windows平台下安裝MongoDB(叢集)
    Windows平台下安裝MongoDB(叢集)
  3. ​安裝資料庫

    由于我們安裝的是MongoDB叢集,是以這裡我們以安裝3套MongoDB在同一台機子上為例子進行講解。

    在講解之前,我們首先需要了解MongoDB叢集的幾個概念:​主節點、副節點和仲裁節點​:

            其中的主節點和副節點是用來​存儲資料​的,預設情況下主節點提供所有的增删改查服務,但是也可以設定通過副節點來提供查詢服務,這樣就可以減少對主節點服務的一些壓力,當用戶端請求查詢服務時,自動轉到副節點進行查詢;

            其中的仲裁節點是​不提供資料存儲​服務的,它是一個特殊的節點,該節點扮演者一個重要的角色,其作用就是:​當主節點挂掉後,能迅速決定将哪一個副節點提升為主節點進行使用​。在下面的講解中DB1(​主節點​)、DB2(​備用節點​)和DB3(​仲裁節點​)雖然隻有一個副節點,但還是要有一個仲裁節點的存在。

    3.1、我們在D:\Net_Program\Net_MongoDB下建立DB1(​主節點​)、DB2(​副節點​)和DB3(​仲裁節點​)檔案夾分别用來安裝MongoDB資料庫,如下圖所示:

    Windows平台下安裝MongoDB(叢集)
    3.2、我們将下載下傳下來的壓縮包mongodb-windows-x86_64-4.4.3.zip解壓到DB1(​主節點​)檔案夾内,如下圖所示:
    Windows平台下安裝MongoDB(叢集)
    Windows平台下安裝MongoDB(叢集)
    3.3、在DB1(​主節點​)檔案夾内建立data和log檔案夾,data的作用是存儲資料、log的作用是存儲資料的相關日志,如下圖所示:
    Windows平台下安裝MongoDB(叢集)
  4. ​安裝配置

    在DB1(​主節點​)檔案夾内建立config.cfg配置檔案(檔案的字尾名不限制),配置檔案的具體内容如下所示(DB1(​主節點​)中配置MongoDB的端口号為1666,根據自己的實際情況修改即可,更多配置參見官網:https://docs.mongodb.com/manual/reference/configuration-options/):

    Windows平台下安裝MongoDB(叢集)
  5. # mongod.conf
    
    # for documentation of all options, see:
    #   http://docs.mongodb.org/manual/reference/configuration-options/
    
    # Where and how to store data.
    storage:
      dbPath: D:\Net_Program\Net_MongoDB\DB1\data #資料庫資料的存放位置
      directoryPerDB: true #是否分别為每個資料庫建立相應的檔案夾
      journal: #是否打開journal
        enabled: true
    #  engine:
    #  mmapv1:
    #  wiredTiger:
    
    # where to write logging data.
    systemLog: #系統日志項
      destination: file
      logAppend: true #是否開啟日志追加模式
      path:  D:\Net_Program\Net_MongoDB\DB1\log\mongod.log #資料庫日志的存放位置
    
    # network interfaces
    net: #網絡相關
      port: 1666 #指定端口,預設端口為27017(不建議使用預設端口)
      bindIp: 192.168.2.200
    
    # 叢集名稱
    replication:
      replSetName: RsQuberPC #叢集名稱
    
    #processManagement:
    
    #security:
      #authorization: enabled
    
    #operationProfiling:
    
    #replication:
    
    #sharding:
    
    ## Enterprise-Only Options:
    
    #auditLog:
    
    #snmp:      
  6. ​安裝服務

    以管理者身份運作CMD并定位到DB1(​主節點​)的bin目錄内,然後運作如下字元将MongoDB的服務安裝到Windows服務中:

  7. mongod -f "D:\Net_Program\Net_MongoDB\DB1\config.cfg" --serviceName "MongoDB4.4.3-1" --serviceDisplayName "MongoDB4.4.3-1" --install      
  8. 此時我們在Windows服務清單中就可以看到多了一個名叫“MongoDB4.4.3-1”的服務了:
    Windows平台下安裝MongoDB(叢集)
  9. ​配置叢集 6.1、任意連接配接上一台MongoDB,比如這裡我們使用DB1(​主節點​),以管理者身份運作CMD并定位到bin檔案夾,然後輸入如下指令:
  10. mongo --host 192.168.2.200 --port 1666      
    use admin      
  11. Windows平台下安裝MongoDB(叢集)
    6.2、然後輸入如下指令初始化叢集(​指令中的RsQuberPC為配置檔案config.cfg中的叢集名稱​):
  12. rs.initiate({_id:"RsQuberPC",members:[{_id:0,host:"192.168.2.200:1666"},{_id:1,host:"192.168.2.200:1667"}]})      
  13. Windows平台下安裝MongoDB(叢集)
    6.3、然後輸入如下指令添加​仲裁​:
  14. rs.addArb("192.168.2.200:1668")      
  15. Windows平台下安裝MongoDB(叢集)
    6.4、輸入如下指令檢視叢集狀态:
  16. rs.status()      
  17. Windows平台下安裝MongoDB(叢集)
    Windows平台下安裝MongoDB(叢集)
    Windows平台下安裝MongoDB(叢集)
  18. ​測試

    7.1、測試前,我們先将服務MongoDB4.4.3-1啟動起來

    7.2、連接配接到1666端口的資料庫服務,以管理者身份運作CMD并定位到DB1(​主節點​)的bin目錄下,然後輸入如下字元回車即可:

  19. mongo -port 1666      
  20. Windows平台下安裝MongoDB(叢集)
    7.3、輸入如下指令分别來測試“檢視資料庫”、“使用(切換、指定)資料庫”和“檢視指定資料庫下的集合”:
  21. show dbs  #檢視資料庫
    use admin #使用(切換、指定)資料庫
    show collections #檢視指定資料庫下的集合      
    Windows平台下安裝MongoDB(叢集)
  22. ​安裝完成

    至此,MongoDB的安裝就完成了,至于DB2(​副節點​)和DB3(​仲裁節點​)的安裝,和DB1(​主節點​)的安裝配置基本一緻的,最大的差別在于需要将DB2和DB3的配置端口号和存儲的目錄進行修改,如DB2的配置端口為1667、DB3的配置端口為1668,按照安裝配置DB1的思路我們就可以将DB2、DB3或者更多的服務進行安裝和配置,如下圖所示:

    # mongod.conf
    
    # for documentation of all options, see:
    #   http://docs.mongodb.org/manual/reference/configuration-options/
    
    # Where and how to store data.
    storage:
      dbPath: D:\Net_Program\Net_MongoDB\DB2\data #資料庫資料的存放位置
      directoryPerDB: true #是否分别為每個資料庫建立相應的檔案夾
      journal: #是否打開journal
        enabled: true
    #  engine:
    #  mmapv1:
    #  wiredTiger:
    
    # where to write logging data.
    systemLog: #系統日志項
      destination: file
      logAppend: true #是否開啟日志追加模式
      path:  D:\Net_Program\Net_MongoDB\DB2\log\mongod.log #資料庫日志的存放位置
    
    # network interfaces
    net: #網絡相關
      port: 1667 #指定端口,預設端口為27017(不建議使用預設端口)
      bindIp: 192.168.2.200
    
    # 叢集名稱
    replication:
      replSetName: RsQuberPC #叢集名稱
    
    #processManagement:
    
    #security:
      #authorization: enabled
    
    #operationProfiling:
    
    #replication:
    
    #sharding:
    
    ## Enterprise-Only Options:
    
    #auditLog:
    
    #snmp:      
    # mongod.conf
    
    # for documentation of all options, see:
    #   http://docs.mongodb.org/manual/reference/configuration-options/
    
    # Where and how to store data.
    storage:
      dbPath: D:\Net_Program\Net_MongoDB\DB3\data #資料庫資料的存放位置
      directoryPerDB: true #是否分别為每個資料庫建立相應的檔案夾
      journal: #是否打開journal
        enabled: true
    #  engine:
    #  mmapv1:
    #  wiredTiger:
    
    # where to write logging data.
    systemLog: #系統日志項
      destination: file
      logAppend: true #是否開啟日志追加模式
      path:  D:\Net_Program\Net_MongoDB\DB3\log\mongod.log #資料庫日志的存放位置
    
    # network interfaces
    net: #網絡相關
      port: 1668 #指定端口,預設端口為27017(不建議使用預設端口)
      bindIp: 192.168.2.200
    
    # 叢集名稱
    replication:
      replSetName: RsQuberPC #叢集名稱
    
    #processManagement:
    
    #security:
      #authorization: enabled
    
    #operationProfiling:
    
    #replication:
    
    #sharding:
    
    ## Enterprise-Only Options:
    
    #auditLog:
    
    #snmp: