zoukankan      html  css  js  c++  java
  • mongo 集群搭建、测试、开启验证

    1. port = 27017        //监听端口  
    2. fork = true         //后台运行  
    3. pidfilepath = /var/run/mongodb/mongodb.pid    //进程PID文件  
    4. logpath = /var/log/mongodb/mongodb.log        //日志文件  
    5. dbpath =/var/lib/mongodb           //db存放目录  
    6. journal = true                   //存储模式  
    7. nohttpinterface = true           //禁用http  
    8. directoryperdb=true              //一个数据库一个文件夹  
    9. logappend=true                  //追加方式写日志  
    10. replSet=repmore                 //集群名称,自定义  
    11. oplogSize=1000                  //oplog大小  
     
    sudo vi /etc/mongodb.27017.conf
    dbpath = /data/mongo/27017/db #数据文件存放目录
    logpath = /data/mongo/logs/mongodb.log #日志文件存放目录
    port = 27017  #端口
    fork = true  #以守护程序的方式启用,即在后台运行
    nohttpinterface = true
    replSet=repmore
    directoryperdb=true
    logappend=true
    auth=false  //不关闭没法同步
     
    sudo vi /etc/mongodb.27018.conf
    dbpath = /data/mongo/27018/db #数据文件存放目录
    logpath = /data/mongo/logs/mongodb.log #日志文件存放目录
    port = 27018  #端口
    fork = true  #以守护程序的方式启用,即在后台运行
    nohttpinterface = true
    replSet=repmore
    directoryperdb=true
    logappend=true
    auth=false
     
    sudo vi /etc/mongodb.27019.conf
    dbpath = /data/mongo/27019/db #数据文件存放目录
    logpath = /data/mongo/logs/mongodb.log #日志文件存放目录
    port = 27019  #端口
    fork = true  #以守护程序的方式启用,即在后台运行
    nohttpinterface = true
    replSet=repmore
    directoryperdb=true
    logappend=true
    auth=false
     
    同一台机器启动 需要使用numactl命令
    numactl --interleave=all mongod -f /etc/mongodb.27017.conf
    numactl --interleave=all mongod -f /etc/mongodb.27018.conf
    numactl --interleave=all mongod -f /etc/mongodb.27019.conf
     
    连接其中一台
    mongo 127.0.0.1:27017
    use admin
    config={_id:"repmore",members:[{_id:0,host:"127.0.0.1:27017"},{_id:1,host:"127.0.0.1:27018"},{_id:2,host:"127.0.0.1:27019"}]};
    rs.initiate(config); 初始化
    在这里要注意,rs.initiate初始化也是要一定时间的,刚执行完rs.initiate,我就查看状态,从服务器的stateStr不是SECONDARY,而是stateStr" : "STARTUP2",等一会就好了。
    rs.status() 产看状态
    rs.remove("127.0.0.1:27019”)//删除
    rs.add("127.0.0.1:27019”)//添加 
     
    测试
    1. repmore:PRIMARY> show dbs;  
    2. local    1.078125GB  
    3. repmore:PRIMARY> use test  
    4. switched to db test  
    5. repmore:PRIMARY> db.test.insert({'name':'tank','phone':'12345678'});  
    6. repmore:PRIMARY> db.test.find();  
    7. { "_id" : ObjectId("52af64549d2f9e75bc57cda7"), "name" : "tank", "phone" : "12345678” }
    1. [root@localhost mongodb]# mongo 127.0.0.1:27018   //连接  
    2. MongoDB shell version: 2.4.6  
    3. connecting to: 127.0.0.1:27018/test  
    4. repmore:SECONDARY> show dbs;  
    5. local    1.078125GB  
    6. test    0.203125GB  
    7. repmore:SECONDARY> db.test.find();     //无权限查看  
    8. error: { "$err" : "not master and slaveOk=false", "code" : 13435 }  
    9. repmore:SECONDARY> rs.slaveOk();       //从库开启  
    10. repmore:SECONDARY> db.test.find();     //从库可看到主库刚插入的数据  
    11. { "_id" : ObjectId("52af64549d2f9e75bc57cda7"), "name" : "tank", "phone" : "12345678" }  
    12. repmore:SECONDARY> db.test.insert({'name':'zhangying','phone':'12345678'});   //从库只读,无插入权限  
    13. not master  
     
    db.createUser({user:'sleliao',pwd:'sleliao',roles:['userAdminAnyDatabase','dbAdminAnyDatabase']}) //可登陆所有db的用户
    db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]}) //超级管理员
     
     配置完成之后启动认证
    #auth=false
    keyFile = /home/zhangxd/work/mongodb/keyfiletest
    生成key
     openssl rand -base64 90 > openssl rand -base64 90 > /root/software/mongodb/keyfiletest
     scp  /root/software/mongodb/keyfile root@192.168.91.133:/root/software/mongodb/ 复制到其他节点
     sudo chmod 600 ./keyfiletest  给600权限
    然后重启3台服务器,去客户端测试一下 ok了
     
     
    mongodb replica set 多服务器 高可用 配置 详解 http://blog.51yip.com/nosql/1580.html
    sudo chmod 600 ./keyfiletest
     
    查看读写日志
    切到想看日志的db
    use test
    db.setProfilingLevel(2)  设置读写log
    profile级别有三种:
    0:不开启
    1:记录慢命令,默认为大于100ms
    2:记录所有命令
    3、查询profiling记录
     
    db.getCollection('system.profile').find({}).sort({ts:-1})
     
     
     
     
     
  • 相关阅读:
    HDU 1114 Piggy-Bank
    HDU 2955 Robberies
    NTOJ 290 动物统计(加强版)
    POJ 3624 Charm Bracelet
    HDU 2602 Bone Collector
    POJ 1523 SPF(无向图割顶)
    HDU 5311 Hidden String
    HDU 1421 搬寝室
    HDU 1058 Humble Numbers
    POJ 3259 Wormholes(spfa判负环)
  • 原文地址:https://www.cnblogs.com/zhangxd0112/p/6876801.html
Copyright © 2011-2022 走看看