最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mongodb?linux下集群搭建過程

 更新時(shí)間:2022年02月21日 10:48:25   作者:飛天大蟾蜍  
這篇文章主要介紹了mongodb?linux下集群搭建過程,本例中,為每個(gè)集群(shard?config)三個(gè)mongo實(shí)例,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

mongodb的集群結(jié)構(gòu)如上圖

網(wǎng)上有個(gè)mongo3.0的集群例子:

http://m.fzitv.net/article/191388.htm

router提供入口,mongo客戶端通過router連入集群(本例只配置一個(gè)route集群)

Config Servers輔助記錄數(shù)據(jù)分片(一個(gè)集群)

Shard為數(shù)據(jù)分片集群(本例中配置兩個(gè),用于驗(yàn)證分片),

本例中,為每個(gè)集群(shard config)三個(gè)mongo實(shí)例

config與shard為同一個(gè)類型的進(jìn)程mongod

route則為mongos進(jìn)程

下載mongo二進(jìn)制壓縮包

https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.6.tgz

解壓可以看到

用openssl生成一個(gè)key,用于mongo集群內(nèi)部數(shù)據(jù)通迅

openssl rand -base64 123 > keyfile

mongod配置為件(config與shard通用)

mongo_node.conf:

storage:
    engine: wiredTiger
    directoryPerDB: true
    journal:
        enabled: true
 
systemLog:
    destination: file
    logAppend: true
operationProfiling:
  slowOpThresholdMs: 10000
replication:
    oplogSizeMB: 10240
processManagement:
    fork: true
security:
    authorization: "disabled"

mongos的配置文件(即圖中的route)

mongos.conf:

systemLog:
    destination: file
    logAppend: true
 
processManagement:
    fork: true

啟動(dòng)config集群(3個(gè)mongod進(jìn)程)

WORK_DIR=/home/???/go/mongodb/mongo_test
 
KEYFILE=$WORK_DIR/key/keyfile
cat $KEYFILE
CONFFILE=$WORK_DIR/conf/mongo_node.conf
cat $CONFFILE
MONGOD=mongod
echo $MONGOD
$MONGOD --port 26001 --bind_ip_all --configsvr --replSet configReplSet --keyFile $KEYFILE --dbpath $WORK_DIR/config_cluster/conf_n1/data --pidfilepath $WORK_DIR/config_cluster/conf_n1/db.pid --logpath $WORK_DIR/config_cluster/conf_n1/db.log --config $CONFFILE 
$MONGOD --port 26002 --bind_ip_all --configsvr --replSet configReplSet --keyFile $KEYFILE --dbpath $WORK_DIR/config_cluster/conf_n2/data --pidfilepath $WORK_DIR/config_cluster/conf_n2/db.pid --logpath $WORK_DIR/config_cluster/conf_n2/db.log --config $CONFFILE 
$MONGOD --port 26003 --bind_ip_all --configsvr --replSet configReplSet --keyFile $KEYFILE --dbpath $WORK_DIR/config_cluster/conf_n3/data --pidfilepath $WORK_DIR/config_cluster/conf_n3/db.pid --logpath $WORK_DIR/config_cluster/conf_n3/db.log --config $CONFFILE

啟動(dòng)成功后

用命令mongo --port 26001 --host 127.0.0.1

如下圖,進(jìn)入mongo的shell

在shell中輸入如下js代碼 設(shè)置config集群

cfg={
    _id:"configReplSet", 
    configsvr: true,
    members:[
        {_id:0, host:'127.0.0.1:26001'},
        {_id:1, host:'127.0.0.1:26002'}, 
        {_id:2, host:'127.0.0.1:26003'}
    ]};
rs.initiate(cfg);

三個(gè)config mongo進(jìn)程會自動(dòng)選出一個(gè)primary,過一會再進(jìn)入shell就會發(fā)現(xiàn) shell提示變成primary

順便給config添加一個(gè)admin用戶,(一個(gè)集群只要在primary進(jìn)程添加一次,會自動(dòng)同步給secondary)

use admin
db.createUser({
    user:'admin',pwd:'123456',
    roles:[
        {role:'clusterAdmin',db:'admin'},
        {role:'userAdminAnyDatabase',db:'admin'},
        {role:'dbAdminAnyDatabase',db:'admin'},
        {role:'readWriteAnyDatabase',db:'admin'}
]})

同樣之后shard也做同樣的添加用戶操作,便于后繼觀察數(shù)據(jù)

啟動(dòng)shard

WORK_DIR=/home/???/go/mongodb/mongo_test
 
KEYFILE=$WORK_DIR/key/keyfile
cat $KEYFILE
CONFFILE=$WORK_DIR/conf/mongo_node.conf
cat $CONFFILE
MONGOD=mongod
echo $MONGOD
echo "start shard1 replicaset"
$MONGOD --port 27001 --bind_ip_all --shardsvr --replSet shard1 --keyFile $KEYFILE --dbpath $WORK_DIR/shard1/sh1_n1/data --pidfilepath $WORK_DIR/shard1/sh1_n1/db.pid --logpath $WORK_DIR/shard1/sh1_n1/db.log --config $CONFFILE
$MONGOD --port 27002 --bind_ip_all --shardsvr --replSet shard1 --keyFile $KEYFILE --dbpath $WORK_DIR/shard1/sh1_n2/data --pidfilepath $WORK_DIR/shard1/sh1_n2/db.pid --logpath $WORK_DIR/shard1/sh1_n2/db.log --config $CONFFILE
$MONGOD --port 27003 --bind_ip_all --shardsvr --replSet shard1 --keyFile $KEYFILE --dbpath $WORK_DIR/shard1/sh1_n3/data --pidfilepath $WORK_DIR/shard1/sh1_n3/db.pid --logpath $WORK_DIR/shard1/sh1_n3/db.log --config $CONFFILE

用mongo --port 27001 --host 127.0.0.1進(jìn)入mongo shell

cfg={
    _id:"shard1", 
    members:[
        {_id:0, host:'127.0.0.1:27001'},
        {_id:1, host:'127.0.0.1:27002'},
        {_id:2, host:'127.0.0.1:27003'}
    ]};
 
rs.initiate(cfg);

同樣用之前的添加用戶的js

并用同樣的方法啟動(dòng)shard2集群,用于實(shí)驗(yàn)數(shù)據(jù)分片

對應(yīng)的目錄與分片名改成shard2

啟動(dòng)route

WORK_DIR=/home/???/go/mongodb/mongo_test
 
KEYFILE=$WORK_DIR/key/keyfile
cat $KEYFILE
CONFFILE=$WORK_DIR/conf/mongos.conf
cat $CONFFILE
MONGOS=mongos
echo $MONGOS
echo "start mongos route instances"
$MONGOS --port=25001 --bind_ip_all --configdb configReplSet/127.0.0.1:26001,127.0.0.1:26002,127.0.0.1:26003 --keyFile $KEYFILE --pidfilepath $WORK_DIR/route/r_n1/db.pid --logpath $WORK_DIR/route/r_n1/db.log --config $CONFFILE
$MONGOS --port 25002 --bind_ip_all --configdb configReplSet/127.0.0.1:26001,127.0.0.1:26002,127.0.0.1:26003 --keyFile $KEYFILE --pidfilepath $WORK_DIR/route/r_n2/db.pid --logpath $WORK_DIR/route/r_n2/db.log --config $CONFFILE
$MONGOS --port 25003 --bind_ip_all --configdb configReplSet/127.0.0.1:26001,127.0.0.1:26002,127.0.0.1:26003 --keyFile $KEYFILE --pidfilepath $WORK_DIR/route/r_n3/db.pid --logpath $WORK_DIR/route/r_n3/db.log --config $CONFFILE

路由添加分片

用mongo --port 25001 --host 127.0.0.1 -u admin -p 123456進(jìn)入shell

或者這樣也可 mongo mongodb://admin:123456@127.0.0.1:25001

在mongo shell分別執(zhí)行以下兩行js

sh.addShard("shard1/127.0.0.1:27001")
sh.addShard("shard2/127.0.0.1:27011")

創(chuàng)建一個(gè)mongo database與collection

并設(shè)置分片

use test
 
sh.enableSharding("test")
db.createCollection("test_shard")
sh.shardCollection("test.test_shard", {_id:"hashed"}, false, { numInitialChunks: 4} )

在mongo shell用以下js添加數(shù)據(jù),可以修改循環(huán)次數(shù)避免測試時(shí)間過長

var cnt = 0;
for(var i=0; i<1000; i++){
    var dl = [];
    for(var j=0; j<100; j++){
        dl.push({
                "bookId" : "BBK-" + i + "-" + j,
                "type" : "Revision",
                "version" : "IricSoneVB0001",
                "title" : "Jackson's Life",
                "subCount" : 10,
                "location" : "China CN Shenzhen Futian District",
                "author" : {
                      "name" : 50,
                      "email" : "RichardFoo@yahoo.com",
                      "gender" : "female"
                },
                "createTime" : new Date()
            });
      }
      cnt += dl.length;
      db.test_shard.insertMany(dl);
      print("insert ", cnt);
}

在windows下安裝mongodb,利用自帶的compass客戶端觀察兩個(gè)shard集群

會發(fā)現(xiàn)數(shù)據(jù)分流到兩個(gè)集群了

也可以直接連route觀察數(shù)據(jù)

補(bǔ)充:

把js存到文件里給shell執(zhí)行會比較方便

執(zhí)行js命令如下:

mongo mongodb://admin:123456@127.0.0.1:25001 ./test.js

示例js代碼:

print('=========WECOME==========');
 
conn = new Mongo("mongodb://admin:123456@192.168.2.129:25001");
db = conn.getDB("testjs")
sh.enableSharding("testjs")
db.createCollection("testjs_col")
sh.shardCollection("testjs.testjs_col", {_id:"hashed"}, false, { numInitialChunks: 4} )
    var dl = [];
    for(var j=0; j<10; j++){
        dl.push({
                "bookId" : "BBK-" + 0 + "-" + j,
                "type" : "Revision",
                "version" : "IricSoneVB0001",
                "title" : "Jackson's Life",
                "subCount" : 10,
                "location" : "China CN Shenzhen Futian District",
                "author" : {
                      "name" : 50,
                      "email" : "RichardFoo@yahoo.com",
                      "gender" : "female"
                },
                "createTime" : new Date()
            });
    }
    db.testjs_col.insertMany(dl);
cursor = db.testjs_col.find();
printjson(cursor.toArray());

到此這篇關(guān)于mongodb linux下集群搭建的文章就介紹到這了,更多相關(guān)mongodb集群搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mongodb 數(shù)據(jù)庫操作--備份 還原 導(dǎo)出 導(dǎo)入

    mongodb 數(shù)據(jù)庫操作--備份 還原 導(dǎo)出 導(dǎo)入

    mongodb數(shù)據(jù)備份和還原主要分為二種,一種是針對于庫的mongodump和mongorestore,一種是針對庫中表的mongoexport和mongoimport。
    2014-07-07
  • MongoDB db.serverStatus()輸出內(nèi)容中文注釋

    MongoDB db.serverStatus()輸出內(nèi)容中文注釋

    這篇文章主要介紹了MongoDB db.serverStatus()輸出內(nèi)容中文注釋,本文收集了2個(gè)版本的中文注釋來講解,需要的朋友可以參考下
    2014-08-08
  • MongoDB的查詢方法

    MongoDB的查詢方法

    這篇文章主要介紹了MongoDB的查詢方法,需要的朋友可以參考下
    2017-05-05
  • mongodb基本命令實(shí)例小結(jié)

    mongodb基本命令實(shí)例小結(jié)

    這篇文章主要介紹了mongodb基本命令,結(jié)合實(shí)例形式總結(jié)分析了MongoDB數(shù)據(jù)庫切換、查看、刪除、查詢等基本命令用法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • 阿里云CentOS7安裝Mongodb教程

    阿里云CentOS7安裝Mongodb教程

    本文給大家介紹的教程主要參考資源的官方文檔,當(dāng)然如果你是centos6的,也可以看看其他文章,筆者用的是7,mongodb想用3以上的版本,需要的小伙伴可以參考下
    2016-11-11
  • MongoDB中的定時(shí)索引示例詳解

    MongoDB中的定時(shí)索引示例詳解

    這篇文章主要給大家介紹了關(guān)于MongoDB中定時(shí)索引的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MongoDB具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Mongodb數(shù)據(jù)庫兩種啟動(dòng)方法小結(jié)

    Mongodb數(shù)據(jù)庫兩種啟動(dòng)方法小結(jié)

    MongoDB是一種開源的服務(wù)器端NoSQL數(shù)據(jù)庫管理系統(tǒng),它提供了一種靈活的框架,可以快速地存儲、處理和管理大量的數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Mongodb數(shù)據(jù)庫兩種啟動(dòng)方法的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • mongodb+php實(shí)現(xiàn)簡單的增刪改查

    mongodb+php實(shí)現(xiàn)簡單的增刪改查

    這篇文章主要介紹了mongodb+php實(shí)現(xiàn)簡單的增刪改查的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • 使用aggregate在MongoDB中查詢重復(fù)數(shù)據(jù)記錄的方法

    使用aggregate在MongoDB中查詢重復(fù)數(shù)據(jù)記錄的方法

    這篇文章主要介紹了使用aggregate在MongoDB中查詢重復(fù)數(shù)據(jù)記錄的方法的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 如何使用Docker安裝一個(gè)MongoDB最新版

    如何使用Docker安裝一個(gè)MongoDB最新版

    這篇文章主要介紹了如何使用Docker安裝一個(gè)MongoDB最新版,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評論

土默特右旗| 滁州市| 普定县| 綦江县| 明光市| 嵩明县| 象州县| 闻喜县| 宁南县| 枣强县| 磐石市| 哈密市| 许昌市| 高雄市| 遂川县| 武定县| 庆元县| 凤山县| 定州市| 德兴市| 平昌县| 济阳县| 海城市| 辛集市| 黔南| 临颍县| 惠水县| 洪洞县| 琼海市| 昆山市| 鹿泉市| 雷州市| 那坡县| 永年县| 双峰县| 吴江市| 闽清县| 洞口县| 时尚| 西藏| 江山市|