1.mongodb权限 & 备份恢复 & 表间数据操作

一、权限

新建
use store
为store新建writer用户,并授读写权限
db.createUser({user: "writer", pwd: "123456", roles: [{role: "readWriter", db: "store"}]})
用户已经存在,为这个用户再添加数据库授权
db.updateUser("writer", {role: "readWriter", db: "store1"})

二、备份 与 恢复

备份

业务场景:日志数据库,用来查询bug的日志,仅仅是以今天为中心的一段时间,我们将不在改时间段的日志备份一下,存在硬盘上
语法:

mongodump -h 主机ip --port 端口 -u 用户名 -p 密码 --archive=备份后的名称.archive --db 数据库名称 --collection 表名称
gzip 备份后的名称.archive

示例:

下面的语句实现了将 store数据库下的classic_trip_offline_20180605表备份到硬盘上名称为classic_trip_offline_20180605.archive

mongodump -h 10.10.233.131 --port 27017 -u writer -p admin123456  --archive=classic_trip_offline_20180605.archive --db store --collection classic_trip_offline_20180605
gzip classic_trip_offline_20180605.archive

恢复

语法

mongorestore -h 服务器地址 --port 端口 -u 用户 -p 密码 --gzip --archive=被压缩后的文件名 --db 要恢复到的数据库名称 --collection=要恢复的表名字(注意,只会恢复到原表中)

示例

将备份文件中的表恢复到指定数据库中

mongorestore -h 10.19.114.19 --port 27017 -u writer -p admin123456 --gzip --archive=classic_trip_offline_20180605.archive.gz --db store --collection=classic_trip_offline_20180605(写其他名字也是恢复到跟原来一个表名中)

三、从一个表中复制数据到另一个表

语法:

use 源数据库
var docs = db.源表名字.find();
use 目标数据库 (当数据库不同时)
docs.forEach(function(d){db.目标表名.insert(d)});

示例:

将 store数据库classic_trip_offline_bak表中的数据 插入到了 classic_trip_offline_bak1表中
相同数据库,无须使用use

use store
var docs = db.classic_trip_offline_bak.find();
//use xxxx (当数据库不同时)
docs.forEach(function(d){db.classic_trip_offline_bak1.insert(d)});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值