美文网首页Database Tech首页推荐首页投稿(暂停使用,暂停投稿)
使用WT数据引擎(可控制mongod使用内存)搭建mongodb

使用WT数据引擎(可控制mongod使用内存)搭建mongodb

作者: aldren | 来源:发表于2017-02-22 11:07 被阅读271次

    说明:3台机器10.10.73.225,10.10.73.186,10.10.73.226
    3个分片。每个分片一主一副一仲裁
    mongo 版本 mongodb-linux-x86_64-3.2.7.tgz

    1. 每个机器上创建如下目录
    mkdir -p /data/mongodb/mongos/log
    mkdir -p /data/mongodb/config/{data,log}
    mkdir -p /data/mongodb/shard{1,2,3}/{data,log}
    

    2.配置文件

    config.conf

    systemLog:
     destination: file
    ###日志存储位置
     path: /data/mongodb/config/log/config.log
     logAppend: true
    storage:
    ##journal配置
     journal:
      enabled: true
    ##数据文件存储位置
     dbPath: /data/mongodb/config/data/
    ##是否一个库一个文件夹
     directoryPerDB: true
    ##数据引擎
     engine: wiredTiger
    ##WT引擎配置
     wiredTiger:
      engineConfig:
    ##WT最大使用cache(根据服务器实际情况调节)
       cacheSizeGB: 4
    ##是否将索引也按数据库名单独存储
       directoryForIndexes: true
    ##表压缩配置
      collectionConfig:
       blockCompressor: zlib
    ##索引配置
      indexConfig:
       prefixCompression: true
    ##端口配置
    net:
     port: 21000
    ##分片配置
    sharding:
    ##分片角色
     clusterRole: configsvr
    

    mongos.conf

    ##日志配置
    systemLog:
     destination: file
    ##日志位置
     path: /data/mongodb/mongos/log/mongos.log
     logAppend: true
    ##网路配置
    net:
    ##端口配置
     port: 20000
    ##分片配置
    sharding:
    ##指定config server
     configDB: 10.10.73.225:21000,10.10.73.186:21000,10.10.73.226:21000
    

    shard1.conf

    systemLog:
     destination: file
    ###日志存储位置
     path: /data/mongodb/shard1/log/shard1.log
     logAppend: true
    storage:
    ##journal配置
     journal:
      enabled: true
    ##数据文件存储位置
     dbPath: /data/mongodb/shard1/data/
    ##是否一个库一个文件夹
     directoryPerDB: true
    ##数据引擎
     engine: wiredTiger
    ##WT引擎配置
     wiredTiger:
      engineConfig:
    ##WT最大使用cache(根据服务器实际情况调节)
       cacheSizeGB: 4
    ##是否将索引也按数据库名单独存储
       directoryForIndexes: true
    ##表压缩配置
      collectionConfig:
       blockCompressor: zlib
    ##索引配置
      indexConfig:
       prefixCompression: true
    ##端口配置
    net:
     port: 22001
    replication:
    ##oplog大小
     oplogSizeMB: 20480
    ##复制集名称
     replSetName: shard1
    ##分片配置
    sharding:
    ##分片角色
     clusterRole: shardsvr
    

    shard2.conf

    systemLog:
     destination: file
    ###日志存储位置
     path: /data/mongodb/shard2/log/shard2.log
     logAppend: true
    storage:
    ##journal配置
     journal:
      enabled: true
    ##数据文件存储位置
     dbPath: /data/mongodb/shard2/data/
    ##是否一个库一个文件夹
     directoryPerDB: true
    ##数据引擎
     engine: wiredTiger
    ##WT引擎配置
     wiredTiger:
      engineConfig:
    ##WT最大使用cache(根据服务器实际情况调节)
       cacheSizeGB: 4
    ##是否将索引也按数据库名单独存储
       directoryForIndexes: true
    ##表压缩配置
      collectionConfig:
       blockCompressor: zlib
    ##索引配置
      indexConfig:
       prefixCompression: true
    ##端口配置
    net:
     port: 22002
    replication:
    ##oplog大小
     oplogSizeMB: 20480
    ##复制集名称
     replSetName: shard2
    ##分片配置
    sharding:
    ##分片角色
     clusterRole: shardsvr
    

    shard3.conf

    systemLog:
     destination: file
    ###日志存储位置
     path: /data/mongodb/shard3/log/shard3.log
     logAppend: true
    storage:
    ##journal配置
     journal:
      enabled: true
    ##数据文件存储位置
     dbPath: /data/mongodb/shard3/data/
    ##是否一个库一个文件夹
     directoryPerDB: true
    ##数据引擎
     engine: wiredTiger
    ##WT引擎配置
     wiredTiger:
      engineConfig:
    ##WT最大使用cache(根据服务器实际情况调节)
       cacheSizeGB: 4
    ##是否将索引也按数据库名单独存储
       directoryForIndexes: true
    ##表压缩配置
      collectionConfig:
       blockCompressor: zlib
    ##索引配置
      indexConfig:
       prefixCompression: true
    ##端口配置
    net:
     port: 22003
    replication:
    ##oplog大小
     oplogSizeMB: 20480
    ##复制集名称
     replSetName: shard3
    ##分片配置
    sharding:
    ##分片角色
     clusterRole: shardsvr
    

    3.安装
    每台机器执行
    a.启动configserver 和 mongos

    ./mongod -f ../conf/config.conf  -fork 
    ./mongos -f ../conf/mongos.conf  -fork 
    

    b.启动分片

    ./mongod -f ../conf/shard1.conf  -fork 
    ./mongod -f ../conf/shard2.conf  -fork 
    ./mongod -f ../conf/shard3.conf  -fork 
    

    任意一台机器执行(除了仲裁节点)
    a.初始化分片配置--应当设置优先级

    ./mongo --port 22001
    use admin
    
    config  = {_id:"shard1",members:[{_id:0,host:"10.10.73.225:22001","priority":9},{_id:1,host:"10.10.73.186:22001","priority":8},{_id:2,host:"10.10.73.226:22001",arbiterOnly:true}]}
    
    rs.initiate(config);
    

    ./mongo --port 22002
    use admin
    
    config2  = {_id:"shard2",members:[{_id:0,host:"10.10.73.186:22002","priority":9},{_id:1,host:"10.10.73.226:22002","priority":8},{_id:2,host:"10.10.73.225:22002",arbiterOnly:true}]}
    
    rs.initiate(config2);
    

    ./mongo --port 22003
    use admin
    config3  = {_id:"shard3",members:[{_id:0,host:"10.10.73.226:22003","priority":9},{_id:1,host:"10.10.73.186:22003",arbiterOnly:true},{_id:2,host:"10.10.73.225:22003","priority":8}]}
    
    rs.initiate(config3);
    

    b.串联路由服务器与分配副本集

    ./mongo --port 20000
    use admin
    
    db.runCommand({addshard:"shard1/10.10.73.225:22001,10.10.73.186:22001,10.10.73.226:22001"});
    
    db.runCommand({addshard:"shard2/10.10.73.225:22002,10.10.73.186:22002,10.10.73.226:22002"});
    
    db.runCommand({addshard:"shard3/10.10.73.225:22003,10.10.73.186:22003,10.10.73.226:22003"});
    

    c.查看分片服务器的配置

    db.runCommand({listshards:1});
    

    安装完成
    4.插入测试

    ./mongo --port 20000
     use admin
    
    创建数据库,指定数据库'testdb'进行分片生效
    
    db.runCommand( { enablesharding :"testdb"});
    
    指定数据库需要分片键片
    
     db.runCommand({shardcollection:"testdb.table1",key:{_id:'hashed'}}) 
     ###创建Hash片键,指定'testdb'数据库中的'table1'表中的数据进行分片
    
    ##插入
    for(var i=1;i<10000000;i++) db.table1.save({"a":i+"wwe","acId":"45334"+i,"areaCode":"3346"+i,"deliverd":true,"destId":"13346"+i,"doneTime":"6334"+i,"dup":0,"gwId":"2","gwMsgId":"6334"+i,"mobile":"166673","msgType":"UmsReportReq"+i,"operator":"ChinaMobile","priority":0,"reqId":"1","revTime":"245"+i,"smscSeq":0,"srcReqId":"06235"+i,"status":"DELIVRD","subTime":"26230"+i,"submitTime":"1062348"+i,"traceNo":"92363"+i});
    ##查看状态
    db.table1.stats();
    

    相关文章

      网友评论

        本文标题:使用WT数据引擎(可控制mongod使用内存)搭建mongodb

        本文链接:https://www.haomeiwen.com/subject/dlgpwttx.html