精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日日夜夜操视频| 欧美xxxx日本和非洲| 粉嫩一区二区三区国产精品| 久色婷婷小香蕉久久| 欧美巨乳美女视频| 亚洲专区区免费| 在线视频成人| 欧美性xxxxxxx| av磁力番号网| 黄色软件在线| 国产成人免费在线观看不卡| 欧洲日本亚洲国产区| 国产极品美女在线| 精品一区亚洲| 欧美不卡一区二区| 亚洲色图久久久| 韩国精品一区| 亚洲精品自拍动漫在线| 日本视频一区在线观看| 成人毛片在线精品国产| 久久电影国产免费久久电影 | 韩国日本一区| 国产精品欧美极品| 欧美裸体网站| 色呦呦视频在线| 国产精品亚洲一区二区三区妖精| 国产精品久久久久高潮| 日韩黄色精品视频| 亚洲国产精品综合久久久| 国产午夜精品一区理论片飘花| 国产在线a视频| 亚洲男女网站| 欧美日韩亚洲国产综合| 日韩在线xxx| 神马午夜在线视频| 亚洲va欧美va国产va天堂影院| 亚洲自拍的二区三区| 高清在线观看av| 久久久久久久久一| 久久波多野结衣| 韩国av免费在线| 国产91在线观看| 亚洲伊人一本大道中文字幕| 中文字幕你懂的| 日韩电影在线免费看| 97超级碰碰碰| 国产毛片aaa| 一本久道久久综合狠狠爱| 欧美精品xxx| 国产小视频在线看| 国产专区一区| 欧美乱妇40p| 免费无码毛片一区二区app| 99久久夜色精品国产亚洲狼 | 国产日本一区二区三区| 亚洲第一天堂在线观看| 粉嫩高潮美女一区二区三区| 肥熟一91porny丨九色丨| 国产av一区二区三区| 国产精品一区在线观看你懂的| 成人免费福利在线| 国产成人三级一区二区在线观看一 | 永久免费精品视频| 精品黑人一区二区三区久久| 国产日韩视频一区| 欧美国产极品| 亚洲色图50p| 少妇太紧太爽又黄又硬又爽小说| 色综合蜜月久久综合网| 久久精品国产久精国产思思| 国产一区二区视频在线观看免费| 欧美激情自拍| 2020欧美日韩在线视频| 国产视频1区2区| 免费在线一区观看| 亚洲a在线观看| 欧美一级淫片aaaaaa| 久久综合久久综合亚洲| 亚洲va韩国va欧美va精四季| 粗大黑人巨茎大战欧美成人| 亚洲一区二区三区中文字幕| 免费高清在线观看免费| 久久久国产精品网站| 日韩视频国产视频| 国产麻豆天美果冻无码视频| 日韩精品电影| 久久乐国产精品| 波多野结衣电车| 国产综合久久久久久久久久久久| 国产精品99久久久久久久| 美女欧美视频在线观看免费| 亚洲色图欧洲色图婷婷| 3d动漫一区二区三区| 国产一区精品福利| 亚洲成年人在线| 貂蝉被到爽流白浆在线观看| 在线日韩欧美| 国产免费一区二区三区在线能观看| 国产99对白在线播放| 久久久综合激的五月天| 午夜探花在线观看| 国产一区一一区高清不卡| 欧美一级二级三级蜜桃| 国产交换配乱淫视频免费| 亚洲成人精品| 国产成人av在线播放| 午夜精品一二三区| 欧美国产成人精品| 成年人午夜免费视频| 亚洲老司机网| 亚洲视频欧美视频| 日本少妇性高潮| 寂寞少妇一区二区三区| 欧美一区二区视频在线| sm在线观看| 欧美一区二区三区人| 久久精品—区二区三区舞蹈| 亚洲黄色av| 亚洲一区二区在线| 在线观看精品一区二区三区| 欧美日韩免费网站| 国产婷婷在线观看| 亚洲欧美一区在线| 国产主播欧美精品| www.亚洲.com| 日韩欧美国产网站| 精品一区二区视频在线观看 | 欧美大片在线看免费观看| 中文字幕av久久爽| 国产欧美综合在线| 免费在线观看毛片网站| 精品av导航| 欧美大荫蒂xxx| 国产高清在线免费| 一区精品在线播放| 五月婷婷丁香色| 欧美色图一区| 国产精品日日摸夜夜添夜夜av| 你懂的免费在线观看| 欧美视频不卡中文| 国产一级二级在线观看| 国产乱码精品| 久久婷婷开心| 亚洲男人av| 亚洲欧美另类中文字幕| 天堂中文在线网| 久久久一区二区| 老熟妇仑乱视频一区二区| 黄色不卡一区| 国产精品美乳在线观看| 91大神xh98hx在线播放| 欧美网站大全在线观看| 丁香激情五月少妇| 九九国产精品视频| 国产资源第一页| 97久久综合精品久久久综合| 韩国精品久久久999| 先锋av资源站| 色国产精品一区在线观看| 在线观看日本中文字幕| 日韩中文字幕亚洲一区二区va在线| 日韩免费电影一区二区| 亚洲精品66| 欧美大片欧美激情性色a∨久久| 成人免费视频国产免费麻豆| 欧美日韩在线一区| 日本理论中文字幕| 国产一区二区三区免费观看| 欧美在线观看黄| 噜噜噜天天躁狠狠躁夜夜精品| 911国产网站尤物在线观看| 精品成人一区二区三区免费视频| 欧美日韩视频专区在线播放| 欧美人妻精品一区二区三区| 93久久精品日日躁夜夜躁欧美 | 国产老肥熟一区二区三区| 免费在线黄网站| 伊人久久大香线蕉av不卡| 国产免费亚洲高清| 久久亚洲导航| 在线不卡国产精品| 亚洲av无码国产精品永久一区| 偷拍日韩校园综合在线| 三区四区在线观看| 粉嫩aⅴ一区二区三区四区| 欧美三级一级片| 98精品久久久久久久| 国产综合18久久久久久| 美女色狠狠久久| 久久久久久久999| 国产福利电影在线| 日韩欧美黄色影院| 亚洲 国产 日韩 欧美| 亚洲精品成人在线| 久久久久久久毛片| 成人h动漫精品一区二区| 啊啊啊国产视频| 在线观看一区| 中文视频一区视频二区视频三区| 国产日韩三级| 成人有码视频在线播放| 午夜影院在线播放| 欧美麻豆久久久久久中文| 国产高清视频在线观看| 欧美精品一区二区高清在线观看| 欧美视频xxxx| 精品久久久一区二区| 欧美 日韩 国产 一区二区三区| 99久久夜色精品国产网站| 色一情一区二区三区| 国产女优一区| 国产在线视频在线| 成人激情在线| 免费久久99精品国产自| 91精品啪在线观看国产手机| 国产日韩换脸av一区在线观看| а√在线中文在线新版| 久久99视频精品| 免费a级人成a大片在线观看| 亚洲美女久久久| 人妻与黑人一区二区三区| 91麻豆精品国产91久久久久久| 免费看毛片网站| 五月激情六月综合| 久久久久97国产| 亚洲精品国产精华液| 中文字幕第69页| 国产免费观看久久| 五月天综合视频| 国产亚洲欧美日韩日本| 国产精品揄拍100视频| 97久久超碰国产精品| 欧美激情 亚洲| 粉嫩高潮美女一区二区三区 | 91精品尤物| 91gao视频| 亚洲国产欧美国产第一区| 91久久在线播放| 四虎地址8848精品| 91精品国产综合久久久久久久久| 欧美videos粗暴| 国产精品国产自产拍高清av水多| 奇米777日韩| 国产精品jvid在线观看蜜臀| 高清电影一区| 国产精品嫩草影院一区二区| 日韩一区精品| 成人美女av在线直播| 麻豆一二三区精品蜜桃| 亚洲自拍偷拍一区| www.亚洲一二| 久久久综合亚洲91久久98| 一本久久青青| 视频一区视频二区视频三区高| 精品免费在线| 正在播放精油久久| 欧美日韩国产免费观看| 欧美中日韩在线| 宅男噜噜噜66国产日韩在线观看| 91精品91久久久中77777老牛 | 日本网站在线看| 国产成人免费网站| 久久国产精品无码一级毛片| 国产欧美一区二区三区网站| 中文国语毛片高清视频| 亚洲精品国产品国语在线app| 国产一级在线免费观看| 欧美日韩激情网| 波多野结衣在线观看一区| 欧美日韩成人综合| 成人毛片在线精品国产| 亚洲片国产一区一级在线观看| 大片免费播放在线视频| 欧美精品亚州精品| 小草在线视频免费播放| 国产精品一区二区三区久久久| 奇米一区二区| 欧美另类视频在线| 97欧美在线视频| 丁香花在线影院观看在线播放| 狂野欧美一区| 韩国三级与黑人| 久久精品一二三| av激情在线观看| 日韩欧美亚洲一二三区| 国产精品一区二区黑人巨大 | 在线观看一区不卡| 在线观看视频中文字幕| 亚洲国产精品va| 欧美三级电影一区二区三区| 久久久亚洲影院| 欧美综合社区国产| 久久综合九色综合网站| 午夜精品国产| 噼里啪啦国语在线观看免费版高清版| 国产精品1区2区| 日本综合在线观看| 婷婷成人激情在线网| 国产精品欧美久久久久天天影视| 日韩成人中文电影| 菠萝蜜视频国产在线播放| 国产成人精品在线播放| 伊人www22综合色| 一区二区三区视频| 男女精品网站| 天天躁日日躁狠狠躁av| 亚洲欧美日韩小说| 国产午夜无码视频在线观看| 亚洲成色999久久网站| 精品自拍一区| 国产精品麻豆va在线播放| 日韩高清一级| 国产欧美日韩小视频| 经典一区二区三区| 欧美另类69xxxx| 色婷婷av一区二区三区软件| 日本高清视频www| 欧美成人免费视频| 欧美v亚洲v综合v国产v仙踪林| 欧美三级华人主播| 一区二区三区福利| 女同性αv亚洲女同志| 亚洲欧美日韩系列| 97人妻精品一区二区三区| 在线成人激情视频| 亚洲第一二三四区| 欧美激情一区二区三区在线视频 | 好男人www在线视频| 久久久久99精品久久久久| 成人福利一区二区| 天天爽天天狠久久久| 久久人人精品| 中文字幕免费视频| 欧美性猛交xxxx| 日本午夜在线| 日本中文字幕久久看| 亚洲欧美日本伦理| 能在线观看的av| 国产亚洲福利社区一区| 国产三级理论片| 综合国产在线观看| 久久人体av| 国产精品无码乱伦| 国产一区二区三区日韩| 欧美黄色免费看| 精品国产自在久精品国产| 免费不卡av| 精品国产一区二区三区麻豆小说 | 精品乱人伦一区二区三区| 国产探花视频在线观看| 国产精品大全| 国产日本精品| 三上悠亚影音先锋| 欧美自拍偷拍一区| 午夜视频在线观看网站| 成人黄色免费网站在线观看| 欧美一区二区三区久久精品茉莉花| 五月六月丁香婷婷| 亚洲一区二区三区四区五区黄| 亚洲欧美另类日韩| 欧美日韩成人在线观看| 国产精品流白浆在线观看| 亚洲熟妇国产熟妇肥婆| 久久久青草青青国产亚洲免观| 高潮毛片又色又爽免费| 色诱女教师一区二区三区| 久久久久久久久成人| 黄色一级片在线看| 久久精品免费在线观看| 一级黄色片在线看| 欧美激情亚洲国产| 亚洲最好看的视频| 手机看片一级片| 亚洲国产wwwccc36天堂| 欧美日本网站| 成人在线一区二区| 亚洲黄色影片| 国产真人真事毛片视频| 日韩一区二区三区在线视频| 国产福利片在线观看| 日韩视频精品| 国产福利不卡视频| 中文字幕手机在线视频| 久久天天躁狠狠躁老女人| 欧美调教在线| 在线视频观看91| 五月婷婷久久丁香| 在线看黄色av| 国产亚洲一区二区三区在线播放 | 欧美日韩国产丝袜美女| 欧美一区二区三区在线观看免费| 官网99热精品| 青青草一区二区三区| 日本三级视频在线| 色777狠狠综合秋免鲁丝| 国内精品麻豆美女在线播放视频 | 亚洲精品国产嫩草在线观看| 91视频成人免费| 欧美—级在线免费片| 丰满少妇一级片|