类型:编程控件大小:191KB语言:中文评分:6.6标签:立即下载mongodb数据管理
数据导出,数据导入数据导出mongoexport[使用mongoexport -h查看参数]数据导入mongoimport[使用mongoimport -h查看参数]
导入和导出json数据实例
mongoexport-d mydb-c user-o d :/mongdback/user . dat-mydb是要导出的表所属的数据库- user是要导出的集合名称c代表集合- user.dat是导出的文件名mongoimport-d mydb-c user d :/mongdback/user . dat-mydb数据导入的目标数据库-用户数据导入的目标集-d:/mongdback
导入和导出csv数据
Csv格式好,主流数据库支持导出为CSV格式,所以这种格式非常有利于异构数据迁移。
mongoexport-d mydb-c user-CSV-f id,name,age-o d :/mongoback/user _ CSV . data-export CSV格式-f指定要导出的列的名称mongoimport-d mydb-c user-type CSV-header line-file d :/。- mydb数据导入目标数据库-用户数据导入目标集-类型表示导入的文件格式- headerline表示不会导入第一行,因为第一行是要导入的数据文件的列名-d :/mongoback/user _ CVS . data存储路径。
数据备份,数据恢复数据备份蒙古转储数据恢复蒙古恢复
备份实例mongodump -d mydb //备份mydb数据库此时,默认情况下将在当前目录中创建一个转储目录,用于存储备份的文件。您还可以指定存储备份的目录。使用-omongdump-d mydb-o d :/data back/recovery实例mongorestore-d mydb d :/data back/mydb/进行数据备份,这样在发生灾难后可以恢复数据,但遗憾的是始终没有数据备份。好在mongodb有内置修复功能。您可以尝试修复损坏的文件。如果MongoDB异常关闭,启动服务时会看到一堆警告消息。修复所有数据最简单的方法是在MongoDB启动时添加repair参数。要修复单个数据库,可以在MongoDB的shell中执行repair database命令,比如使用test switched to db testdb . repair database();{“好”: 1}
克隆集合
克隆收集是将一组数据从一个数据源复制到多个数据源的技术,是将一个数据发布到多个存储站点的有效方法。
远程克隆,例如,将192.168.1.32上的被测用户集合克隆到本地db . run command({克隆集合: "test.user ",从: " 192 . 168 . 1 . 32336027017 " });本地克隆由于mongoDB不提供本地克隆集合的命令或方法,因此需要编写循环插入方案来完成这项工作。例如,将用户集合中的数据拷贝克隆到taruser中。db.user.find()。foreach(function(x){ db . taruser . insert(x));} );db . taruser . find();
复制数据库
使用复制数据库(从数据库、todb、从主机)命令复制数据库
远程复制数据库db.copydatabase ('from _ db1 ',' to _ DB2 ',' 192 . 163 . 1 . 167 ');本地复制数据库db.copydatabase ('to _ db1 ',' to _ DB2 ',' localhost ');
刷新磁盘
使用mongoDB中的“db . RunCommand({ fsync 33601 })”命令将尚未写入磁盘的信息写入内存,并锁定数据库更新的操作,但读取和擦除可以继续。
数据压缩
repairDatabase命令是MongoDB的内置方法。调用此方法将扫描数据库中的所有数据,并通过导入/导出重新排列数据和整理磁盘碎片
在mongoDB中,可以使用命令db.collection.storageSize()和db.collection.totalSize()来收集压缩命令执行前后集合占用的磁盘空间
db . user . storage size();8192 db . user . TotalSize();16384 db . repair database();{ ' ok ' : 1 } db . user . storage size();8035 db . user . TotalSize();9384
捕获异常
MongoDB的写入是异步的,返回客户端是成功的,但写入不一定成功。db.getLastError命令有两个功能,即当MongoDB写入时,默认情况下不会等待数据写入后再返回。此命令可以确保写入是否成功。
查看活动流程
db . CurrentTop();该字段描述操作过程编号inLock:opid:可以使用DB。killop (opid) op3360操作类型(查询、更新等。)ns:命名空间,指的是操作哪个对象。如果操作类型为查询,则显示具体的查询内容。-1代表读锁定,0代表无锁定。1
用户安全和认证
限制对特定IP地址的访问
这样可以避免来自公共网络的恶意攻击。
MongDB可以指定外部服务的绑定,默认设置为空,即绑定到本机所有可用的IP。对于商业系统,出于安全原因,可以绑定内部网。减少外部网络访问以避免攻击。启动时只需添加bind_ip即可。MongoD-Bind _ ip169.254.180.132//启动mongodb时绑定IP 169 . 254 . 180 . 132。此时,如果客户端想要访问169.254.180.132上的服务器,则需要显示它
设置监听端口
MongoDB的默认监听端口是27017,通常为了安全而修改。
seg l=en-us > eg . mongod-bind _ ip 169 . 254 . 180 . 132-port 9888//启动mongodb时绑定IP和修改端口也是如此。当客户端被连接时,ip和端口eg.mongo169.254.189888应该被指定。58886
设置登录用户名和密码
默认情况下,mongodb没有用户名和密码。启动后可以直接连接mongoDB,对所有库都有根权限。为了安全起见,有必要设置用户名和密码。
仅当需要重新启动时,才指定auth参数。您可以阻止客户端访问和连接,如下所示
eg.mongod -auth - dbpath=./data - logpath=./log/MongoDB . log
如果您想要登录到身份验证模块以生效,您必须在管理库中添加一个用户并指定auth参数。
D: 程序文件 mongo binmongoMongoDB shell版本: 1 . 8 . 1连接到:测试使用adminswitched到db admin db.addUser('root ',' root 123 ');{ 'user' : 'root ',' readOnly' : false,' pwd ' : ' 81 C5 BCA 573 e 01 b 632d 18 a 459 c6ce 418 ' } db . auth(' root ',' root 123 ');1此时建立系统根用户。
您还可以为特定的数据库设置用户,这样细粒度的权限划分也便于用户管理。
注意:建立指定权限的用户只能由系统用户操作。
为mydb创建一个用户名为mydbusr、密码为123的用户
D: 程序文件 mongo binmongo-uroot-proof 123 localhost :27017/adminMongoDB shell版本: 1 . 8 . 1连接到: localhost :27017/admin show DBS;admin 0.03125GBlocal(空)测试(空)使用mydb切换到db mydb dbmydb db.addUser('mydbusr ',' 123 ');{ 'user' : 'mydbusr ',' readOnly' : false,' pwd ' : ' 4 dbfed 60224 bbcd 7 ECC BD 2d a 993 a 8029 ' }系统显示表;system . indexes . users db . system . users . find();{ ' _ id ' : ObJect id(' 50f 6 cdd 22 BC 514 e 46426 DDA '),' user' : 'mydbusr ',' readOnly' : false,60224 bbcd 7 ECC bd2d a 993 a 8029 ' } db . auth(' mydbusr ',' 123 ');一个