MongoDB创建主从复制小案例(一主一从)【分分快三

作者:分分快三全天计划网站
花了两天学习了mongoDB, 今天接触到了mongo的主从配置, 把它记下来

1.

  开启两个mongo服务器(用于一主一从, 没有加安全验证相关参数 : 可以使用mongd-help查看)

    mongod --bind_ip IP --port PORT --dbpath D:.. --replSet name

    ....(从类似, 端口不要相同)

    --bind_ip : 服务器地址

    -- port : 服务器使用的端口

    -- dbpath : 用于存放数据的文件路径

    --resplSet : replSet_name, 可以随意, 但是主从两个一定要相同

  用于主 :

    分分快三全天计划网站 1

  用于从 :
    分分快三全天计划网站 2

2.

  开启两个终端来连接两个服务器

    mongo --host IP --port PORT

    --host : 连接的服务器地址

    --port : ...端口

  连接主 :
    分分快三全天计划网站 3

  连接从 :

    分分快三全天计划网站 4

  两个客户端各自连接两个服务端后还没有设置主从, 所以提示符只是 : >

3.

  设置主服务器( 连接的哪个服务器, 就初始化哪个服务器 )

    rs.initiate()

    分分快三全天计划网站 5

  添加副本集( 添加从, 在主中添加 )

    rs.add('HOST:PORT')    

    分分快三全天计划网站 6

4.

  在从服务器上进行读操作, 需要设置rs.slaveOk

    rs.slaveOk()

    分分快三全天计划网站 7

所有需要的配置都完成了, 接下来在主服务器中向数据库中添加一条数据

    分分快三全天计划网站 8

然后在从服务器中查看是否也有了数据

    分分快三全天计划网站 9

OK, 主从关系配置成功后, 从服务器会每隔一小段时间备份主服务器中的数据,并且如果有紧急情况导致主服务器挂了,

从服务器会自动切换成主服务器, 当然会丢失一小部分数据( 也就是上面说的一小段时间没有备份的数据 ), 当主服务器再连接上时也就自动成了从服务器

数据库恢复: mongorestore -h 服务器地址 -d 需要恢复的数据库 --dir 备份数据库位置

索引(1:升序索引,2:降序索引):db.集合.ensureIndex({属性1:1,属性2:1})

角色: root 只在admin数据库可用,超级账号
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库

添加副本集: rs.add('x.x.x.x:27019')')
删除副本集:rs.remove('x.x.x.x:27019')')

$match:过滤(年龄大于19) {$match:{age:{$gt:19}}}

启用验证 修改/etc/mongodb.conf:

连接 mongo --host x.x.x.x --port 27018

db.集合.aggregate([
{管道1:{表达式1}},
{管道2:{表达式2}},
... ...
])

管道1的结果作为管道2的输入.

$sort:排序(和sort一样,1升序,-1降序) {$sort:{_id:-1}}

用超级管理员创建普通用户:
db.createUser({user:'user1',pwd:'123',roles:[{role:'readWrite',db:'students'}]})

创建超级管理员:
db.createUser({user:'admin',pwd:'123',roles:[{role:'root',db:'admin'}]})

自动主从切换:一个服务器关闭另一个自动切换成主服务器.

初始化主服务器: >rs.initiate() 查看状态 rs.status()

在从服务器中读取操作需要设置 rs.slaveOk()

$limit(获取多少条文档,和limit一样) {$limit:2}

security:
authorization: enabled

$project:投影(和find第二组参数一样,1显示,0不显示) {$project:{_id:0,counter:1}}

数据库备份:mongodump -u user1 -p 123 --authenticationDatabase 数据库名 -d 备份数据库 -o 存放位置

登陆: mongo -u user1 -p 123 --authenticationDatabase students

聚合(aggregate): db.集合.aggregate([{管道:{表达式}}])

$skip(跳过多少条文档,和skip一样) {$skip:2}

查看文档索引 db.集合.getIndex()

或者 auth=true

删除索引 db.集合.dropIndex('索引名称')

$group:分组 {$group:{
_id:'$gender',
count:{$sum:1}
}}

$unwind(可以把数组拆分成单条文档) {$unwind:'$xxx'}

副本集:数据备份等:
mongod --bind_ip x.x.x.x --porx 27018 --dbpath ~/Desktop/t1 --replSet rs0
mongod --bind_ip x.x.x.x --porx 27019 --dbpath ~/Desktop/t2 --replSet rs0

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划