MongoDB管理篇
来源:互联网 发布:华盛顿大学怎么样 知乎 编辑:程序博客网 时间:2024/05/17 00:02
一、数据导出mongoexport
作为DBA,经常会碰到导入导出数据的需求,下面就介绍实用工具mongoexport 和mongoimport 的使用方法,常用导出方法:
$./mongoexport -d my_mongodb -c user -o user.dat
常用参数说明:
- -d|--db 指明使用的库
- -c| --collection 指明导出的collection
- -o| --out 指明导出的文件名
- -f | --fields 指明导出的字段,多个字段用,号分隔
- --host/--port 指明连接到mongo的主机ip和端口
- --csv 导出csv格式,默认为json格式
二、数据导入mongoimport
$./mongoimport -d my_mongodb -c user user.dat
可以看到导入数据的时候会隐式创建表结构。 常用参数说明:
- -d | --db 使用的数据库
- -c | --collection 使用的集合
- -f | --fields 使用的字段,多个用','号分隔
- --host/--port 连接到mongodb的ip和端口
- --type 导入文件的格式,默认为json
- --drop drop collection first
- --stopOnError 在导入出现错误的时候停止
- --file 指明要导入文件的路径
- --headerline 不导入文件的第一行
注意:CSV 格式良好,主流数据库都支持导出为CSV 的格式,所以这种格式非常利于异构数据迁移。
三、数据备份mongodump
可以用mongodump 来做MongoDB 的库或表级别的备份:
$./mongodump -d my_mongodb
会在当前目录下创建一个dump 目录,用于存放备份出来的文件也可以指定备份存放的目录。 重要参数说明:
- -d | --db 要备份的数据库
- -c | --collection 要备份的集合
- -o | --out 输出备份文件的目录,'-'为标准输出
- -q | --query 查询备份
四、数据恢复mongorestore
$./mongorestore -d my_mongodb my_mongodb_dump/*
常用参数说明:
- -d | --db 要使用的数据库
- -c | --collection 要使用集合
- --objcheck 在插入之前验证对象
- --filter 在插入之前应用过滤
- --drop 每个集合导入之前先删除
五、访问控制
官方手册中启动 MongoDB 服务时没有任何参数,一旦客户端连接后可以对数据库任意操作,而且可以远程访问数据库,所以推荐开发阶段可以不设置任何参数,但对于生产环境还是要仔细考虑一下安全方面的因素,而提高 MongoDB 数据库安全有几个方面:
- 绑定IP 内网地址访问MongoDB 服务
- 设置监听端口
- 使用用户名和口令登录
5.1 绑定IP 内网地址访问MongoDB 服务
MongoDB 可以限制只允许某一特定IP 来访问,只要在启动时加一个参数bind_ip 即可,如下:
$./mongod --bind_ip 192.168.1.103
客户端访问时需要明确指定服务端的IP,否则会报错。
5.2 设置监听端口
官方默认的监听端口是27017,为了安全起见,一般都会修改这个监听端口,避免恶意的连接尝试,具体如下:将服务端监听端口修改为28018:
./mongod --bind_ip 192.168.1.103 --port 28018
客户端访问时需要指定端口,否则会报错。
5.3 使用用户名和口令登录
MongoDB 默认的启动是不验证用户名和密码的,启动MongoDB 后,可以直接用MongoDB 连接上来,对所有的库具有root 权限。所以启动的时候指定参数,可以阻止客户端的访问和连接。
./mongod --auth
这时候登陆还是可以使用mongo的。在最初始的时候 MongoDB 都默认有一个 admin 数据库(默认是空的),而 admin.system.users 中将会保存比在其它数据库中设置的用户权限更大的用户信息。注意:当 admin.system.users 中没有添加任何用户时,即使 MongoDB 启动时添加了 --auth参数,如果在除 admin 数据库中添加了用户,此时不进行任何认证依然可以使用任何操作,直到知道你在 admin.system.users 中添加了一个用户。5.3.1 增加用户
db.addUser('username', 'password'); //建立系统root用户db.auth('username', 'password');
5.3.2 建立指定权限用户 MongoDB 也支持为某个特定的数据库来设置用户,如我们为test 库设一个只读的用户user_reader:
> use test> db.addUser("user_reader", "user_pwd", true)
六、进程控制
6.1 查看活动进程
>db.currentOp(); // 等同于: db.$cmd.sys.inprog.findOne(){ inprog: [ { "opid" : 18 , "op" : "query" , "ns" : "mydb.votes" , "query" : "{ score : 1.0 }" , "inLock" : 1 } ]}
字段说明:
- Opid: 操作进程号
- Op: 操作类型(查询,更新等)
- Ns: 命名空间, 指操作的是哪个对象
- Query: 如果操作类型是查询的话,这里将显示具体的查询内容
- lockType: 锁的类型,指明是读锁还是写锁
6.1 结束进程
> db.killOp(1234/*opid*/) // 等同于: db.$cmd.sys.killop.findOne({op:1234})
注意:不要kill 内部发起的操作,比如说replica set 发起的sync 操作等
- MongoDB管理篇
- mongodb- 管理
- MongoDB 管理
- mongoDB 管理
- mongodb管理
- mongodb管理
- MongoDB管理
- Mongodb 管理
- mongodb系列之管理与监控篇
- 第三部分 管理篇 第八章 MongoDB服务管理
- 使用RockMongo管理MongoDB
- MongoDB基本管理命令
- MongoDB的管理操作
- MongoDB基本管理命令
- MongoDB权限管理
- MongoDB基本管理命令
- spring管理mongodb
- mongodb内存管理
- POJ-2584-T-Shirt Gumbo
- MongoDB性能篇
- Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲doc docx等文件格式利用jcom转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。
- 如何用思维导图做读书笔记
- 新疆民丰县发生3.7级地震 震源深度7公里-地震-新疆地震
- MongoDB管理篇
- 三维动态字符数组,
- linux awk
- MongoDB Replica Sets
- malloc跟new
- Can’t convert fixnum to string during rake db:create
- Activiti学习资料(组件,API,部署)
- C# tostring 格式化输出
- Java 静态语句块、语句块、构造函数执行顺序