文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mongodb 集群基础知识

2024-04-02 19:55

关注

http://blog.csdn.net/luonanqin/article/details/8497860  Mongodb集群搭建的三种方式


NoSQL = Not Only SQL  mongodb存储方式是文档式存储,并不是Key-Value形式。


Mongodb的三种集群方式的搭建:Replica Set / Sharding / Master-Slaver


Replica Set 副本集集群原理:(最简单的集群方式)

主节点,备节点,仲裁节点。主备节点存储数据,仲裁节点不存储数据。

客户端同时连接主节点与备节点,不连接仲裁节点。


默认设置下,主节点提供所有增删查改服务,备节点不提供任何服务。但是可以通过设置使备节点提供查询服务,这样就可以减少主节点的压力,当客户端进行数据查询时,请求自动转到备节点上。这个设置叫做Read Preference Modes,同时Java客户端提供了简单的配置方式,可以不必直接对数据库进行操作。


仲裁节点是一种特殊的节点,它本身并不存储数据,主要的作用是决定哪一个备节点在主节点挂掉之后提升为主节点,所以客户端不需要连接此节点。这里虽然只有一个备节点,但是仍然需要一个仲裁节点来提升备节点级别。


测试:一个是往主节点插入数据,能从备节点查到之前插入的数据(查询备节点可能会遇到某个问题,可以自己去网上查查看)。二是停掉主节点,备节点能变成主节点提供服务。三是恢复主节点,备节点也能恢复其备的角色,而不是继续充当主的角色。二和三都可以通过rs.status()命令实时查看集群的变化。



Sharding 分片集群:

和Replica Set类似,都需要一个仲裁节点,但是Sharding还需要配置节点和路由节点。就三种集群搭建方式来说,这种是最复杂的。


Master-Slaver 主备方式

官方已经不推荐这种方式,搭建方式也相对简单。


用过的人应该知道mongodb吃内存的问题,解决办法只能通过ulimit来控制内存使用量,但是如果控制不好的话,mongodb会挂掉。



mongodb的安装

执行脚本 install_mongodb_20160510.sh  即可安装mongodb服务。详细请看redme


mongodb集群的安装


常用命令

mongodb的启动

/opt/server/mongodb/bin/mongod -f /opt/server/mongodb/mongodb.conf

/opt/server/mongodb/bin/mongod -f /opt/server/mongodb/mongodb.conf --fork  #单机环境/与配置文件有关系,具体请参看配置文件


mongodb的停止

kill -15 pid

pkill mongod


mongodb登录方式

/opt/server/mongodb/bin/mongo 192.168.1.200:27017


查看状态

rs.status()


删除节点:

rs.remove("mongodb13.kk.net:27019")  #可以删除节点


添加节点:

rs.addArb("mongodb13.kk.net:27019")  #可以添加节点,但这样添加的节点为仲裁


mongodb副本集如何添加一个节点使其成为备节点呢?

在主节点上操作

use admin

cfg={ _id:"wlb", members:[ {_id:0,host:'192.168.11.215:27017',priority:2}, {_id:1,host:'192.168.11.187:27017',priority:1},{_id:2,host:'192.168.11.25:27017',arbiterOnly:true}] };

rs.reconfig(cfg);  #使配置生效

rs.status()



查看所有数据库

show dbs


MongoDB 创建数据库

use znx 

db

show dbs   #会发现创建的数据库不在列表中,要想显示需要插入数据


备节点若想查看数据库,需要执行如下命令,否则报13435错误

rs.slaveOk(true)



插入数据

db.znx.insert({"name":"dengyong"})

show dbs     #会显示出znx数据库,备节点也会显示


查看全部数据表

show collections 


查看全部表记录

db.znx.find()


删除pushlog这张表

> db.Pushlog.drop()  #具体操作,输入db.Pushlog.d后按table键,看有啥命令

true


备节点查看数据,先执行如下命令,否则会报错

rs.slaveOk(true)


MongoDB 删除数据库

use znx

db.dropDatabase()   #执行删除命令

show dbs            #znx数据库已删除



参考链接:http://blog.csdn.net/chen88358323/article/details/50206651

mongodb创建用户

use admin

db.createUser({user:"wjs",pwd:"wjs",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})   #创建用户


show users                #查看用户  需要先use数据库


内置角色:

    1. 数据库用户角色:read、readWrite;

    2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;

    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

    4. 备份恢复角色:backup、restore;

    5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

    6. 超级用户角色:root  

    // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

    7. 内部角色:__system

    

具体角色:

Read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限


db.system.users.find()    #查看用户

show users 



创建一个数据库znx

use znx

创建一个普通用户wxc

db.createUser({user:"wxc",pwd:"wxc",roles:[{role:"readWrite",db:"znx"}]}) 


释放掉MongoDB占用的内存

重启服务来释放内存,或 使用MongoDB内置的closeAllDatabases命令达到目的:

mongo> use admin 

mongo> db.runCommand({closeAllDatabases:1})


监控MongoDB的内存使用情况

db.serverStatus().mem


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯