精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MongoDB復制集集群原理詳解及部署

數據庫 其他數據庫 MongoDB
MongoDB中的復制集(也被稱為副本)是一組維護相同數據集的mongod進程。副本集提供冗余性及和高可用,是所有生產部署的基礎。

復制集介紹

MongoDB中的復制集(也被稱為副本)是一組維護相同數據集的mongod進程。副本集提供冗余性及和高可用,是所有生產部署的基礎。簡單來說,復制集有多臺MongoDB組成的一個集群,集群中有一個主節點(Primary)和N個副本節點(Secondary)等,它們有相同的數據庫,假如主MongoDB服務器或者MongoDB實例Down機之后,其它的副本服務器可以繼續提供服務,實現數據的高可用及可靠性。

復制集群架構

術語介紹:

術語 類型 描述
Primary 主節點 負責整個集群的讀寫操作,包含了所有改變操作的日志
Secondary 備節點 同步主服務器所有的數據,負責集群的讀取請求,主服務器宕機可以稱為主節點
Arbiter 仲裁者 在主節點宕機后只進行投票,不參與選舉,不同步主節點數據


此架構由一個Primary節點和兩個Secondary節點組成

1)Primary節點為主節點,所有的寫操作或者更改操作都只能從Primary節點中操作(復制集內的所有成員都可以接收讀操作,但是,默認情況下,應用程序將其讀操作指向主成員),主節點上所有的更改及寫操作都會記錄到oplog日志中。

2)兩臺Secondary節點復制Primary節點的oplog日志,通過異步的方式去執行oplog日志中的記錄來和Primary節點達到數據一致性。

3)oplog作用主要是記錄主節點的寫入操作,充當復制源。

4)如果Primary節點無故Down機之后,復制集集群會通過投票機制在兩臺Secondary中選舉一臺升級為Primary節點。

投票選舉機制

MongoDB節點之間維護心跳檢查,主節點選舉由心跳觸發。

心跳檢查 MongoDB復制集成員會向自己之外的所有成員發送心跳并處理響應信息,因此每個節點都維護著該節點看到的其它所有節點的狀態信息,節點根據自己的集群狀態判斷是否需要更新新的Primary。在實現的時候主要由兩個異步的過程分別處理心跳響應和超時,每個復制集成員都會在后臺運行與復制集所有節點的心跳線程,在以下幾種情況下會觸發狀態檢測過程:

•Secondary節點權重(Priority)比Primary節點高時,發起替換選舉;

•Secondary節點發現集群中沒有Primary時,發起選舉;

•Primary節點不能訪問到大部分成員時主動降級,降級操作會斷開連接,終止用戶請求等;

•復制集成員心跳檢測結果發生變化,比如某個節點掛了或者新增節點,發起重新投票選舉規則;

•超過4s沒有執行狀態檢測過程,發起替換選舉;

選舉發起 發起選舉的節點首先需要做一些條件判斷,維護主節點的有N個備用節點,備用節點中的所有節點都可能被選舉成為主節點,成為主節點前每個備節點都會檢測自身以及全局條件是否滿足,檢測條件如下:

1.是否看見復制集中是否有Majority在線

2.自身Priority是否大于0

3.自身不為arbiter

4.自身opTime不能落后于最新節點10s以上

5.自身存儲的集群程序按信息為最新

如果所有條件滿足,則將自身添加到主節點的備用列表中,否則,將自身從列表中移除

自身檢測

•MongoDB選舉需要獲得大多數投票才能通過,如果沒有節點投反對票,且獲得成票數超過有權投票節點總數的1/2,則能成為Primary。否則進入下一輪選舉。為避免陷入無限重復選舉,MongoDB建議復制集的成員個數為奇數,當Secondary為雙數時,可以增加一個Arbiter節點。

•選舉過程中,復制集沒有主節點,所有成員都是只讀狀態

•選舉過程很復雜,一般情況下需要5s左右進行選主。

•如果新選擇的主節點立刻掛掉,至少需要30s時間重新選主。

大多數的定義  假設復制集內投票成員數量為N,則大多數 = N/2 + 1 ,當復制集內存活成員數量不足大多數時,整個復制集將無法選舉出Primary,復制集將無法提供寫服務,處于只讀狀態。 我們按照上面的架構來舉例,三臺MongoDB,一臺Primary,兩臺Secondary,主節點掛了之后,只有兩臺Secondary可以投票,根據公式我們來算 “2/2 + 1 = 2”,也就是算大多數等于2,但是當復制集內存活的成員數量不足大多數時,我們的大多數為2,集群成員也為2,所以這兩臺集群成員會發起選舉投票機制,如果兩臺Secondary節點自身條件都滿足的情況下,則先發起選舉節點的成員成為Primary節點  

投票成員數 大多數 容忍失效數
1 1 0
2 2 0
3 2 1
4 3 1
5 3 2
6 4 2
7 4 3

復制集群成員說明

Secondary 正常情況下,復制集的Seconary會參與Primary選舉(自身也可能會被選為Primary),并從Primary同步最新寫入的數據,以保證與Primary存儲相同的數據。Secondary可以提供讀服務,增加Secondary節點可以提供復制集的讀服務能力,同時提升復制集的可用性。另外,Mongodb支持對復制集的Secondary節點進行靈活的配置,以適應多種場景的需求。

Arbiter Arbiter節點只參與投票,不能被選為Primary,并且不從Primary同步數據。比如你部署了一個2個節點的復制集,1個Primary,1個Secondary,任意節點宕機,復制集將不能提供服務了(無法選出Primary),這時可以給復制集添加一個Arbiter節點,即使有節點宕機,仍能選出Primary。Arbiter本身不存儲數據,是非常輕量級的服務,當復制集成員為偶數時,最好加入一個Arbiter節點,以提升復制集可用性。

Priority0 Priority0節點的選舉優先級為0,不會被選舉為Primary。比如你跨機房A、B部署了一個復制集,并且想指定Primary必須在A機房,這時可以將B機房的復制集成員Priority設置為0,這樣Primary就一定會是A機房的成員。(注意:如果這樣部署,最好將『大多數』節點部署在A機房,否則網絡分區時可能無法選出Primary)

Vote0 Mongodb 3.0里,復制集成員最多50個,參與Primary選舉投票的成員最多7個,其他成員(Vote0)的vote屬性必須設置為0,即不參與投票。

Hidden Hidden節點不能被選為主(Priority為0),并且對Driver不可見。因Hidden節點不會接受Driver的請求,可使用Hidden節點做一些數據備份、離線計算的任務,不會影響復制集的服務。

Delayed Delayed節點必須是Hidden節點,并且其數據落后與Primary一段時間(可配置,比如1個小時)。因Delayed節點的數據比Primary落后一段時間,當錯誤或者無效的數據寫入Primary時,可通過Delayed節點的數據來恢復到之前的時間點。

優先級為0復制集成員

此架構由一個Primary節點和兩個Secondary節點組成

1)此架構由一臺Primary主節點和兩臺Secondary備節點組成,其原理就是主從復制架構的原理,兩臺Secondary節點同樣通過oplog日志來與Primary主節點達成數據一致

2)與其不同的是在Data Center2節點上的Secondary備用節點的實例優先級priority為0,則不參與選舉,也不可能會成為Primary節點,將其優先級配置為0,主要是防止它成為主節點,這在多數據中心的部署特別有用。

3)優先級值范圍為 0-100(0表示不參與選舉),在復制集群中,優先級高的優先成為主節點,假如我們原來集群中有三臺節點,主節點優先級為2,其它兩臺備節點優先級為1,當我們新加入到集群一臺MongoDB實例,給它優先級設置為4,則該實例在加入集群后就會自動搶奪Primary到本機。

仲裁節點架構

上圖中,三個成員組成復制集群

一個主庫:負責整個集群的所有寫、更改操作

一個從庫:通過oplog日志來與主節點數據達成一致

一個Airbiter節點,在選舉中,只進行投票,不能成為主庫,而且不復制Primary的任何數據,因此這個架構中只能提供一個完成的副本Secondary,Arbiter只需要很少的資源,代價是有限的冗余和容錯,當Primary節點故障后,Aribiter將票數頭給Secondary,使其成為Primary節點,如果Primary節點再次故障后,集群將不可用,Arbiter節點也未存儲任何數據。

集群中還有其它的節點成員,但是我們用的比較少,所以此文章中沒有提到。可以自行查閱官方文檔:https://docs.mongodb.com/manual/core/replica-set-members/

復制集集群環境部署

環境說明

本次使用一臺設備多實例進行,如果你準備在多臺設備上部署,你需要考慮的如下:1)時鐘是否一致 2)網絡是否通暢 3)SElinux是否關閉或者策略放通 4)環境是否一致 

  1. [root@MongoDB ~]# lsb_release -a  
  2. LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch 
  3. Distributor ID:    CentOS  
  4. Description:    CentOS Linux release 7.6.1810 (Core)   
  5. Release:    7.6.1810  
  6. Codename:    Core  
  7. [root@MongoDB ~]# hostname -I  
  8. 10.211.55.12 192.168.0.100 fdb2:2c26:f4e4:0:21c:42ff:fedf:4d85  

前期準備 

  1. #創建用戶組  
  2. useradd mongod  
  3. echo 'abcdef' | passwd --stdin mongod  
  4. #下載MongoDB  
  5. wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.0.tgz  
  6. #添加文件打開數和mongod用戶進程連接數  
  7. cat >> /etc/security/limits.conf << EOF  
  8. * soft nofile 65536  
  9. * hard nofile 65536  
  10. mongod soft nproc 32768  
  11. mongod hard nproc 32768  
  12. EOF   
  13. #使下面兩個文件修改為never  
  14. echo never > /sys/kernel/mm/transparent_hugepage/enabled  
  15. echo never > /sys/kernel/mm/transparent_hugepage/defrag  
  16. #開機自動修改  
  17. cat >> /etc/rc.local << EOF  
  18. if test -f /sys/kernel/mm/transparent_hugepage/enabled;then  
  19.     echo never > /sys/kernel/mm/transparent_hugepage/enabled  
  20. fi  
  21. if test -f /sys/kernel/mm/transparent_hugepage/defrag;then  
  22.     echo never > /sys/kernel/mm/transparent_hugepage/defrag  
  23. fi  
  24. EOF  
  25. 此步驟完成后  
  26. #官方給出MongoDB需要以下兩個庫的依賴  
  27. yum install libcurl openssl -y  
  28. #解壓并復制程序文件到bin目錄  
  29. mkdir /usr/local/mongodb  
  30. tar xf mongodb-linux-x86_64-rhel70-4.2.0.tgz  
  31. cp -rf mongodb-linux-x86_64-rhel70-4.2.0/bin/ /usr/local/mongodb/  
  32. chown -Rf mongod.mongod /usr/local/moongodb/  
  33. #添加程序環境  
  34. cat >> /etc/profile << EOF  
  35. export MONGODB_HOME=/usr/local/mongodb  
  36. export PATH=\$MONGODB/bin:\$PATH  
  37. EOF  
  38. source /etc/profile 

環境配置

1)接下來使用mongod用戶來操作 

  1. su mongod 

2)創建文件目錄 

  1. #!/bin/bash  
  2. for i in 27017 27018 27019  
  3.     do  
  4.     mkdir -p /usr/local/mongodb/$i/{conf,data,logs,run}  
  5. done 

配置文件

編輯一臺配置文件,然后復制到其它實例,配置文件為yaml語法 關于以下配置文件詳解,請參考:”https://abcops.cn/mongodb-conf/“ 

  1. cat > mongod.conf << EOF  
  2. systemLog:  
  3.   destination: file  
  4.   path: /usr/local/mongodb/27017/logs/mongodb.log  
  5.   logAppend: true  
  6.   verbosity: 0  
  7.   logRotate: rename 
  8. storage:  
  9.   journal:  
  10.     enabled: true  
  11.   dbPath: /usr/local/mongodb/27017/data  
  12.   directoryPerDB: true  
  13.   engine: wiredTiger  
  14.   wiredTiger:  
  15.     engineConfig:  
  16.       cacheSizeGB: 1  
  17.       directoryForIndexes: true  
  18.       journalCompressor: zlib  
  19.     collectionConfig:  
  20.       blockCompressor: zlib  
  21.     indexConfig:  
  22.       prefixCompression: true  
  23. processManagement:  
  24.   fork: true  
  25.   pidFilePath: /usr/local/mongodb/27017/run/mongod.pid  
  26. net:  
  27.   port: 27017  
  28.   bindIp: 10.211.55.12  
  29.   maxIncomingConnections: 65536  
  30.   wireObjectCheck: true  
  31.   ipv6: false  
  32. replication:  
  33.   oplogSizeMB: 4096  
  34.   replSetName: abcops_repl  
  35. setParameter:  
  36.   connPoolMaxShardedConnsPerHost: 200  
  37.   connPoolMaxConnsPerHost: 200  
  38. EOF 

復制配置文件到目錄中,并修改其端口及目錄位置 

  1. #!/bin/bash  
  2. for i in 27017 27018 27019  
  3.     do  
  4.         \cp /home/mongod/mongod.conf /usr/local/mongodb/$i/conf  
  5.         sed -i "s/27017/$i/g" /usr/local/mongodb/$i/conf/mongod.conf  
  6. done 

啟動MongoDB實例

啟動腳本如下 

  1. #!/bin/bash  
  2. for i in 27017 27018 27019  
  3.     do  
  4.         /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/$i/conf/mongod.conf  
  5. done 

關閉腳本如下 

  1. #!/bin/bash  
  2. for i in 27017 27018 27019  
  3.     do  
  4.         /usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/$i/conf/mongod.conf  
  5. done 

三個實例啟動后,不代表復制集已經搭建成功了,還需要進行復制集初始化

配置復制集

連接任何一個實例都可以進行配置 

  1. 這是我連接27017的實例  
  2. /usr/local/mongodb/bin/mongo --host 10.211.55.12 --port 27017  
  1. > use admin  
  2. > config={  
  3. _id:'abcops_repl',  
  4. members:[  
  5. {_id: 0, host: '10.211.55.12:27017',priority:2},  
  6. {_id: 1, host: '10.211.55.12:27018',priority:1},  
  7. {_id: 2, host: '10.211.55.12:27019',arbiterOnly:true},  
  8.     ]  
  9.  
  10. > rs.initiate(config)  
  11. #以上參數解析  
  12. use admin:進入admin數據庫  
  13. config:配置復制集  
  14. _id:'abcops_repl':指定復制集組名稱,與配置文件中的 replSetName 參數需要保持一致  
  15. members:規定的函數,不能更改  
  16. _id:設置組成員的ID編號,可以自定義,我這里為 0、1、2  
  17. host:指定加入復制集成員的IP地址及端口,我們在配置文件中指定了bindIp為10.211.55.12,這里就不能寫127.0.0.1,必須寫為bind_Ip指定的地址  
  18. priority:指定優先級0-100,優先級最高的成為Primary節點,優先級為可選選項,如果不指定默認都為1  
  19. arbiterOnly:是否開啟仲裁節點true/false  
  20. rs.initiate(config):初始化復制集配置 

以上參數圖示如下,給你提供下參照

圖中開始為SECONDARY,代表復制集集群正在進行選舉Primary節點,大概5s左右,根據選舉機制選舉成功后,成為主節點的SECONDARY狀態變為PRIMARY

復制集常用命令

1)查看誰是主節點 

  1. abcops_repl:PRIMARY> db.isMaster()    

2)查看當前復制集集群中成員的配置 

  1. abcops_repl:PRIMARY> rs.conf() 

3)查看復制集集群成員狀態 

  1. abcops_repl:PRIMARY> rs.status() 

4)新增節點到復制集 新增節點之前,該實例的配置中的replSetName復制集名稱,必須和集群一致 

  1. abcops_repl:PRIMARY> rs.add("10.211.55.12:27020") 

5)新增仲裁節點 

  1. abcops_repl:PRIMARY> rs.addArb("10.211.55.12:27020") 

6)從復制集內刪除節點 

  1. abcops_repl:PRIMARY> rs.remove("10.211.55.12:27020") 

7)檢查oplog日志時間和大小 

  1. abcops_repl:PRIMARY> rs.printReplicationInfo()   
  2. configured oplog size:   4096MB  
  3. log length start to end: 2422secs (0.67hrs)  
  4. oplog first event time:  Wed Sep 11 2019 12:22:13 GMT+0800 (CST)  
  5. oplog last event time:   Wed Sep 11 2019 13:02:35 GMT+0800 (CST)  
  6. now:                     Wed Sep 11 2019 13:02:37 GMT+0800 (CST) 

8)降級服務器 此操作只能在PRIMARY上操作 通過執行rs.stepDown命令將當前主服務器主動降級為備用節點,120單位為s,為120秒內這個實力不能把自己選為PRIMARY角色,120秒后由于它本身的優先級較高,所以會重新搶占PRIMARY節點。 

  1. abcops_repl:PRIMARY> rs.stepDown(120) 

9)允許在Secondary節點可以進行查詢 在副本節點上操作 

  1. rs.slaveOk() 

10)查看當前連接 

  1. db.getMongo() 

修改優先級

修改27018的優先級為3,使其優先級超過27017實例,奪得PRIMARY角色,此操作需在PRIMARY上執行 

  1. abcops_repl:PRIMARY> config=rs.conf()  
  2. abcops_repl:PRIMARY> config.members[1].priority=3  
  3.  
  4. abcops_repl:PRIMARY> rs.reconfig(config)  
  5.  
  6.     "ok" : 1,  
  7.     "$clusterTime" : {  
  8.         "clusterTime" : Timestamp(1568179129, 1),  
  9.         "signature" : {  
  10.             "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),  
  11.             "keyId" : NumberLong(0)  
  12.         }  
  13.     },  
  14.     "operationTime" : Timestamp(1568179129, 1)  
  15. abcops_repl:PRIMARY> rs.conf()  
  16. abcops_repl:SECONDARY> db.isMaster()  
  17. #以上參數解析  
  18. config=rs.conf():將現有的配置讀取到變量中進行存儲  
  19. config.members[1].priority=3:修改變量中的值,1是指執行rs.conf()中看到節點的順序,不是ID號哦,rs.conf()看到的順序是從0開始排序,三個副本集排序就是0-3  
  20. rs.reconfig(config):將修改后的數據同步到配置,使修改生效  
  21. rs.conf():查看當前配置,可以看到優先級哦  
  22. db.isMaster():查看誰是Primary節點 

復制測試

1)插入數據 

  1. #連接當前Primary節點  
  2. /usr/local/mongodb/bin/mongo --host 10.211.55.12 --port 27018  
  3. #進入abcops數據庫,在documents文檔中插入以下JSON格式的數據  
  4. abcops_repl:PRIMARY> use abcops  
  5. abcops_repl:PRIMARY> db.documents.insert(  
  6.     {name: "xuweiliang",  
  7.     age: 25,  
  8.     Job: "DevOps"}  
  9.  
  10. #查看documents文檔中的數據  
  11. abcops_repl:PRIMARY> db.documents.find()  
  12. { "_id" : ObjectId("5d78863768fbf9eac4704232"), "name" : "xuweiliang", "age" : 25, "Job" : "DevOps" }  
  13. #查看復制節點狀態  
  14. abcops_repl:PRIMARY> rs.printSlaveReplicationInfo()  
  15. source: 10.211.55.12:27017  
  16.     syncedTo: Wed Sep 11 2019 13:30:42 GMT+0800 (CST)  
  17.     0 secs (0 hrs) behind the primary 

2)登錄Secondary節點查看 

  1. /usr/local/mongodb/bin/mongo --host 10.211.55.12 --port 27017  
  2. abcops_repl:SECONDARY> rs.slaveOk()         #運行副本節點可進行查詢  
  3. abcops_repl:SECONDARY> show dbs             #查看當前節點的數據庫  
  4. abcops  0.000GB  
  5. admin   0.000GB  
  6. config  0.000GB 
  7. local   0.000GB  
  8. abcops_repl:SECONDARY> use abcops               #abcops數據庫已經從主節點同步至此  
  9. switched to db abcops  
  10. abcops_repl:SECONDARY> db.getCollectionNames()  #以下連續三個命令都是查看進入到abcops庫中的文檔命令  
  11. [ "documents" ]  
  12. abcops_repl:SECONDARY> show collections  
  13. documents  
  14. abcops_repl:SECONDARY> show tables  
  15. documents  
  16. abcops_repl:SECONDARY> db.documents.find()      #查看文檔中的內容  
  17. { "_id" : ObjectId("5d78863768fbf9eac4704232"), "name" : "xuweiliang", "age" : 25, "Job" : "DevOps" } 

創建復制集中的賬戶

1)連接到主節點,創建用戶 以下創建的用戶及權限和角色請參考下面用戶權限說明 

  1. /usr/local/mongodb/bin/mongo --host 10.211.55.12 --port 27018  
  2. abcops_repl:PRIMARY> use admin  
  3. abcops_repl:PRIMARY> db.createUser( {  
  4.         user:'abcops',  
  5.         pwd:'123456',  
  6.         roles:[ { role: "root", db: "admin" } ]  
  7.     }  
  8.  
  9. Successfully added user: {  
  10.     "user" : "abcops",  
  11.     "roles" : [  
  12.         {  
  13.             "role" : "root",  
  14.             "db" : "admin"  
  15.         }  
  16.     ]  
  17.  
  18. #查看所有創建的用戶信息  
  19. abcops_repl:PRIMARY> show users 

用戶中權限的說明

權限 說明
Read 允許用戶讀取指定數據庫
readWrite 允許用戶讀寫指定數據庫
dbAdmin 允許用戶在指定數據庫中指定管理函數,如(索引創建、刪除、查看統計訪問system.profile)
userAdmin 允許用戶向system.users集合寫入,可以找指定數據里面創建、刪除和管理用戶
clusterAdmin 只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限
readAnyDatabase 只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase 只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userWriteAnyDatabase 只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase 只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限
root 只在admin數據庫中可用,超級管理員

為復制集集群添加權限認證

復制集我們這里采用keyfile文件實現權限認證,并且副本集中的所有成員使用的keyfile必須一樣

添加安全認證配置

三臺實例必須都要配置 

  1. cat >> /usr/local/mongodb/27017/conf/mongod.conf << EOF  
  2. security:  
  3.   authorization: enabled  
  4.   clusterAuthMode: keyFile  
  5.   keyFile: /usr/local/mongodb/27017/conf/keyfile  
  6.   javascriptEnabled: true  
  7. EOF   
  8. cat >> /usr/local/mongodb/27018/conf/mongod.conf << EOF 
  9. security:  
  10.   authorization: enabled  
  11.   clusterAuthMode: keyFile  
  12.   keyFile: /usr/local/mongodb/27018/conf/keyfile  
  13.   javascriptEnabled: true  
  14. EOF  
  15. cat >> /usr/local/mongodb/27019/conf/mongod.conf << EOF  
  16. security:  
  17.   authorization: enabled  
  18.   clusterAuthMode: keyFile  
  19.   keyFile: /usr/local/mongodb/27019/conf/keyfile  
  20.   javascriptEnabled: true  
  21. EOF 

keyfile文件操作

1)生產keyfile文件 

  1. openssl rand -base64 90 > ./keyfile 

2)復制keyfile文件到其它實例中 

  1. #!/bin/bash  
  2. for i in 27017 27018 27019  
  3.     do  
  4.         \cp /home/mongod/keyfile /usr/local/mongodb/$i/conf/  
  5. done 

3)修改keyfile權限 keyfile文件權限必須為 X00 ,不能給 group 和 other 成員分配任何權限,否則實例無法啟動 

  1. #!/bin/bash  
  2. for i in 27017 27018 27019  
  3.     do  
  4.         chmod 400 /usr/local/mongodb/$i/conf/keyfile  
  5. done 

4)重啟所有實例 

  1. #!/bin/bash  
  2. for i in 27017 27018 27019  
  3.     do  
  4.         /usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/$i/conf/mongod.conf  
  5.         sleep 3s  
  6.         /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/$i/conf/mongod.conf  
  7. done 

認證驗證

登錄驗證可以在連接的時候指定用戶名和密碼,也可以先連接到數據庫后再進行認證

1)登錄指定用戶密碼 

  1. /usr/local/mongodb/bin/mongo --host 10.211.55.12 --port 27018 --username abcops -p 123456  
  2. abcops_repl:PRIMARY> show dbs  
  3. abcops  0.000GB  
  4. admin   0.000GB  
  5. config  0.000GB  
  6. local   0.000GB 

2)先登錄,后驗證 

  1. abcops_repl:PRIMARY> use admin                          #必須要先切換到admin庫中才可以進行進行驗證  
  2. switched to db admin  
  3. abcops_repl:PRIMARY> db.auth( 'abcops','123456' )       #認證用戶名及密碼,認證成功返回1,否則返回0  
  4.  
  5. abcops_repl:PRIMARY> show dbs       
  6. abcops  0.000GB  
  7. admin   0.000GB  
  8. config  0.000GB  
  9. local   0.000GB  
  10. abcops_repl:PRIMARY> db  
  11. admin 

3)在備庫進行驗證 備庫只能進行查詢,勿要在備庫上進行任何操作 

  1. /usr/local/mongodb/bin/mongo --host 10.211.55.12 --port 27017  
  2. abcops_repl:SECONDARY> rs.slaveOk()  
  3. abcops_repl:SECONDARY> use admin  
  4. switched to db admin  
  5. abcops_repl:SECONDARY> db.auth('abcops','123456')  

客戶端驗證

我們可以找一臺SQL管理工具來連接該庫

可以看到我創建的abcops庫和一個文檔及三個字段

 

 

責任編輯:龐桂玉 來源: 運維派
相關推薦

2010-08-12 15:30:10

MySQL集群

2023-01-31 08:03:32

部署mongod配置

2017-04-26 08:51:36

MongoDB集群實戰

2020-12-22 10:11:13

MySQL數據庫復制原理

2024-07-04 08:00:24

2009-09-15 16:08:00

2019-09-16 16:05:13

Redis集群模式

2020-04-21 22:59:50

Redis搭建選舉

2019-08-20 14:02:07

MongoDB數據庫恢復數據

2014-03-28 09:35:11

MongoDBSharding

2023-11-21 09:38:09

2019-07-26 14:31:43

服務器集群部署

2010-12-12 21:58:00

半靜態語言動態語言靜態語言

2019-10-11 10:52:42

Web架構MongoDB

2024-12-18 08:02:09

2009-07-10 11:08:40

2023-02-14 08:01:32

2024-01-04 08:16:34

Spring國際化標準

2019-09-02 14:53:53

JVM內存布局GC

2020-10-21 10:50:24

LVSNginxHAProxy
點贊
收藏

51CTO技術棧公眾號

一区二区久久精品| 国内精品**久久毛片app| 少妇愉情理伦三级| 精品91福利视频| 亚洲成人手机在线| 水蜜桃一区二区| а√天堂资源在线| 国产精品视频久久一区| 日韩在线视频网站| 日本不卡视频一区| 青青青国产精品| 午夜视频在线观看一区| 神马影院一区二区三区| 亚洲精品国产av| 日本不卡视频一二三区| 欧美激情在线一区| 一级性生活免费视频| 丰满肥臀噗嗤啊x99av| 亚洲女同在线| 美女少妇精品视频| www.狠狠爱| 国产福利一区二区精品秒拍| 欧美蜜桃一区二区三区 | 日韩成人激情| 亚洲国产精品字幕| 免费不卡av网站| 91亚洲精品| 日韩欧美在线观看视频| 久久艹国产精品| 成人免费在线| 国产精品成人免费在线| 久久综合九色综合久99| 狠狠综合久久av一区二区| 另类小说欧美激情| 国产精品扒开腿做爽爽爽视频 | 亚洲精品精选| 欧美激情aaaa| 国产探花在线免费观看| 欧美肉体xxxx裸体137大胆| 亚洲国产精品久久久久久| 久久人人爽人人片| 99亚洲男女激情在线观看| 欧美日韩一区二区欧美激情| 久久9精品区-无套内射无码| 成年人视频免费在线播放| 亚洲视频一二区| 在线视频精品一区| 日本精品在线| 国产精品久久久一本精品| 亚洲aⅴ天堂av在线电影软件| 国模吧精品人体gogo| 久久久99精品免费观看不卡| 欧美日本亚洲| 波多野结衣在线影院| www国产成人| 日本免费高清一区二区| 国产在线三区| 国产精品免费视频网站| 亚洲欧洲久久| 91精品专区| 亚洲欧美色图小说| 久久www视频| 国产乱妇乱子在线播视频播放网站| 一区二区三区日韩欧美| 亚洲国产精品成人天堂| 日韩在线伦理| 在线观看视频一区| 国产又大又黄又猛| 国产一区二区av在线| 日韩欧美高清一区| 艳妇乳肉亭妇荡乳av| 亚洲第一福利专区| 中文字幕在线观看亚洲| 777777国产7777777| 欧美理论在线| 性欧美在线看片a免费观看| 色婷婷av国产精品| 日本va欧美va瓶| 97国产超碰| 日本五码在线| 中文字幕中文乱码欧美一区二区 | av网站在线免费| 亚洲成av人综合在线观看| 日本精品一区二区三区四区| 国产成人精选| 欧美成人高清电影在线| 久久精品无码一区| 亚洲成人av| 91成人天堂久久成人| 中文字幕在线2018| 国产成人av电影免费在线观看| 久久99蜜桃综合影院免费观看| 超碰在线国产| 亚洲福中文字幕伊人影院| 国产成人精品无码播放| 九九99久久精品在免费线bt| 日韩精品免费在线播放| 亚洲一区电影在线观看| 99香蕉国产精品偷在线观看 | 日本欧美黄色片| 欧美视频免费看| 亚洲国产成人在线播放| 蜜桃av免费观看| 一本久道久久综合狠狠爱| 国产一区二区香蕉| 女人偷人在线视频| 亚洲一区二区在线观看视频 | 成人在线免费看视频| 久久99最新地址| 久久国产精品久久精品国产| 黄网站在线免费| 色哟哟一区二区三区| 中文字幕无码毛片免费看| 国产亚洲一区| 91精品国产乱码久久久久久久久| 91在线你懂的| 亚洲国产精品精华液2区45| 黄色一级在线视频| 日韩成人精品| 久久激情视频免费观看| 无码人妻精品一区二| 成人黄色一级视频| 青青草影院在线观看| 高清av一区| 亚洲美女久久久| 日韩久久久久久久久| 国产精品自拍在线| 亚洲最大免费| 成人亚洲网站| 亚洲一区二区国产| 国产伦精品一区二区三区视频我| 成人h精品动漫一区二区三区| 熟妇熟女乱妇乱女网站| 午夜精品一区二区三区在线播放| 国产白浆在线观看| 国产精品卡一卡二| 中文字幕亚洲乱码| 青草国产精品| 国产精品美女呻吟| 第一福利在线| 欧美网站一区二区| 欧美激情 一区| 丝袜国产日韩另类美女| 欧美日韩国产高清视频| 亚洲校园激情春色| 亚洲欧洲视频在线| 国产一区二区视频网站| 99re热这里只有精品免费视频| 人妻少妇精品久久| 精品视频高潮| 欧美亚洲在线观看| 黄色影院在线播放| 欧美午夜在线一二页| 国产三级黄色片| 麻豆国产精品777777在线| 麻豆中文字幕在线观看| 国产在线视频欧美一区| 欧美乱大交xxxxx另类电影| 精品欧美在线观看| 亚洲国产成人av| 国产制服丝袜在线| 日韩成人免费电影| 亚洲制服中文| 亚洲精品一二三**| 98精品在线视频| 户外极限露出调教在线视频| 欧美日韩激情一区二区三区| 波多野结衣亚洲一区二区| 国产一区二区伦理| 被灌满精子的波多野结衣| 私拍精品福利视频在线一区| 国产精品国内视频| 精品国产白色丝袜高跟鞋| 精品美女一区二区| 日本视频在线观看免费| 欧美国产97人人爽人人喊| 国产欧美精品一二三| 好看的亚洲午夜视频在线| 国产一区二区在线网站| 国产一区二区三区影视| 国产精品传媒精东影业在线| 黄色大片在线看| 五月激情综合网| 中文字幕免费高清| 激情文学综合插| 国产精品www在线观看| 午夜a一级毛片亚洲欧洲| 国产精品自产拍在线观看| av软件在线观看| 亚洲欧美日韩高清| 国产三级小视频| 狠狠躁夜夜躁人人爽超碰91| 少妇高潮惨叫久久久久| 成人a区在线观看| 免费涩涩18网站入口| 欧美日韩理论| 五月天久久狠狠| 福利欧美精品在线| 国产精品视频内| segui88久久综合9999| 日韩中文字幕在线看| 日本黄色大片视频| 欧美日韩成人综合| 久久免费激情视频| 自拍偷自拍亚洲精品播放| 国产麻豆天美果冻无码视频| 国产一区三区三区| 成人性做爰aaa片免费看不忠| 午夜精品av| 亚洲国产另类久久久精品极度| 最新国产精品精品视频| 国产美女久久精品| 人在线成免费视频| 欧美高清电影在线看| 日本福利专区在线观看| 日韩精品在线观看一区| wwwav网站| 在线播放中文一区| 最近中文字幕在线观看视频| 欧美日韩国产丝袜另类| 青娱乐国产在线视频| 国产精品传媒在线| 性欧美精品男男| 99精品欧美一区| 亚洲少妇一区二区三区| 国产伦理精品不卡| jizz18女人| 免费精品视频在线| 日韩在线第三页| 久久久777| 久久网站免费视频| 国产日韩欧美| 国内精品视频一区二区三区| 欧美日韩视频| 黄色特一级视频| 欧美黄色精品| 青青视频免费在线观看| 91超碰国产精品| a级网站在线观看| 亚洲精品网址| 亚洲国产精品影视| 欧美成人午夜| 亚洲精品天堂成人片av在线播放| 久久精品青草| a级网站在线观看| 欧美午夜不卡| 9色porny| 99国产一区| av天堂永久资源网| 老司机午夜精品视频| 国产免费999| 蜜桃久久av一区| 亚洲网中文字幕| 国产精品77777竹菊影视小说| 久久艹这里只有精品| 国产麻豆欧美日韩一区| 自拍视频第一页| 成人动漫中文字幕| 菠萝菠萝蜜网站| 国产亚洲精品7777| 97精品在线播放| 亚洲毛片av在线| 日本天堂在线视频| 色系网站成人免费| 一级做a爱片性色毛片| 日韩一级视频免费观看在线| 高h调教冰块play男男双性文| 亚洲精品久久久久久下一站| 黄网在线免费| 久久综合久久八八| 丁香花在线影院| 国产成人久久久| 精品三级国产| 久久久久无码国产精品一区| 国产探花一区| 波多野结衣与黑人| 久久三级视频| www.亚洲自拍| 91麻豆福利精品推荐| 中文字幕成人动漫| 亚洲欧美国产77777| 亚洲精品www久久久久久| 欧洲国内综合视频| 国产www免费观看| 亚洲人成电影网| 91精品久久| 日本免费在线精品| 日韩在线精品强乱中文字幕| 免费不卡亚洲欧美| 久久久久久美女精品| a级黄色一级片| 久草在线在线精品观看| 欧美大喷水吹潮合集在线观看| 欧美国产1区2区| 久久久久无码国产精品| 在线观看视频一区二区| 懂色av一区二区三区四区| 神马久久久久久| 日韩脚交footjobhd| 92看片淫黄大片看国产片| 蜜桃成人av| bt天堂新版中文在线地址| 日韩不卡在线观看日韩不卡视频| 中文字幕一区二区三区人妻在线视频 | 亚洲精品国产精品粉嫩| 性生活免费观看视频| 久久最新视频| 人妻换人妻a片爽麻豆| 亚洲色图另类专区| aaa在线视频| 亚洲精品国产精品国自产观看浪潮| 免费网站黄在线观看| 日韩免费中文字幕| 国产精品调教视频| 91精品一区二区三区四区| 男人的j进女人的j一区| 中文字幕一区二区三区人妻| 亚洲一区自拍偷拍| 国产精品综合在线| 中文日韩电影网站| 人人视频精品| 免费一区二区三区| 亚洲欧洲一区二区天堂久久| 国产裸体视频网站| 亚洲欧洲韩国日本视频| 最近国语视频在线观看免费播放| 日韩精品一区二区视频| 91jq激情在线观看| 成人动漫视频在线观看完整版| 国产精品黑丝在线播放| 黄色在线视频网| 日本一区二区高清| 成人免费一级片| 伊人伊人伊人久久| 欧美人体一区二区三区| 免费国产一区二区| 久久大逼视频| 在线免费观看日韩av| 欧美午夜精品在线| 五月色婷婷综合| 97视频网站入口| 久久久久观看| 精品久久一二三| 91麻豆国产在线观看| 免费看污视频的网站| 伊人伊成久久人综合网站 | 99在线视频首页| 欧美不卡高清| 黄色性视频网站| 精品久久久久久久久久久久久久 | 91视频免费播放| 日本中文字幕在线| 国产午夜精品一区二区三区| 成人国产一区| 吴梦梦av在线| 国产精品一区二区你懂的| 2021亚洲天堂| 亚洲国产欧美日韩精品| 亚洲一级少妇| 午夜精品美女久久久久av福利| 久久精品理论片| 五月天丁香激情| 亚洲精品狠狠操| av在线日韩| 熟女视频一区二区三区| 国产不卡免费视频| 精品国产一区二区三区四| 日韩中文字幕免费视频| 日韩欧美一级| 亚洲 高清 成人 动漫| 国产欧美日韩激情| 国产片在线播放| 91精品国产高清| 日韩免费视频| 麻豆av免费看| 91久久免费观看| 黄色在线播放网站| 国产一区二区精品在线| 日韩精品国产欧美| 成人免费精品动漫网站| 亚洲精品xxx| 福利一区二区三区视频在线观看| 免费cad大片在线观看| 91伊人久久大香线蕉| 伊人亚洲综合网| 久久久久久久久亚洲| 欧美先锋资源| 国产一精品一aⅴ一免费| 91久久奴性调教| 国模雨婷捆绑高清在线| 亚洲国产一区二区精品视频| 国产精品1区二区.| 一级久久久久久| 欧美激情视频播放| 成人激情视频| 久久精品女同亚洲女同13| 欧美日韩一区不卡| 日韩影院在线| 欧洲精品在线播放| 亚洲视频综合在线|