MongoDB备份与恢复

mongodb数据库同样离不开必要的维护,如备份、恢复、导入、导出。

其实备份和恢复比导入和导出要方便些,而且一般不会出错,所以大部分时候使用备份和恢复操作就可以了

1. 备份Mongodb

mongodump -h test.xxxx.com:52000 -d dataname -o /home/aa/dev/mongodb/data

mongodump mongo导出数据库命令 mongodump --help 可以查看该命令下所有的帮助

-h 导出源

-d 要导出的数据库名称

-o 数据库要导出的位置

在终端滚过N行之后,数据库导出完成,可以去/home/aa/dev/mongodb/data 目录下查看导出的文件,bson格式的(我导出后没有马上就看到文件,等了一会才出现的,原因不明)

2. 恢复使用:mongorestore 命令

mongorestore -d cmsdev  /home/xx/dev/mongodb/data/cmsdev

-d 使用的数据库名称

后面直接加你刚才导出的目录,这样是直接恢复所有表

如果-c 是恢复一个表

3. 导入

mongoimport -d my_mongodb -c user user.dat

参数说明:

-d 指明使用的库, 本例中为” my_mongodb”

-c 指明要导出的表, 本例中为”user”

可以看到导入数据的时候会隐式创建表结构

4. 导出

mongoexport -d my_mongodb -c user -o user.dat

参数说明:

-d 指明使用的库, 本例中为” my_mongodb”

-c 指明要导出的表, 本例中为”user”

-o 指明要导出的文件名, 本例中为”user.dat”

从上面可以看到导出的方式使用的是JSON 的样式

 

 

修复mongodb数据库

当mongodb发生问题时,就要修复其数据库,比如遇到以下的信息:

**************

old lock file: \data\db\mongod.lock.  probably means unclean shutdown
recommend removing fileand running --repair
see: http://dochub.mongodb.org/core/repair for more information
*************
Mon May 0912:37:43[initandlisten] exception in initAndListen std::exception: old lock file,
terminating
Mon May 0912:37:43 dbexit:
Mon May 0912:37:43[initandlisten]shutdown: going toclose listening sockets...
Mon May 0912:37:43[initandlisten]shutdown: going to flush diaglog...
Mon May 0912:37:43[initandlisten]shutdown: going toclose sockets...
Mon May 0912:37:43[initandlisten]shutdown: waiting for fs preallocator...
Mon May 0912:37:43[initandlisten]shutdown: closing all files...
Mon May 0912:37:43 closeAllFiles() finished
Mon May 0912:37:43 dbexit: really exiting now

那么这个时候,可以采用如下方法去修复它:

找到\data\db\mongod.lock这个文件,删除它

采用mongod –repair命令进行修复
Mon May 0912:42:57[initandlisten] db version v1.8.1, pdfile version 4.5
//......
Mon May 0912:42:57[initandlisten]shutdown: going toclose listening sockets...
Mon May 0912:42:57[initandlisten]shutdown: going to flush diaglog...
Mon May 0912:42:57[initandlisten]shutdown: going toclose sockets...
Mon May 0912:42:57[initandlisten]shutdown: waiting for fs preallocator...
Mon May 0912:42:57[initandlisten]shutdown: closing all files...
Mon May 0912:42:57 closeAllFiles() finished
Mon May 0912:42:57[initandlisten]shutdown: removing fs lock...
Mon May 0912:42:57 dbexit: really exiting now

 

相关文章:

MongoDB基本操作指南
NoSQL数据库
MongoDB集群
MongoDB数据库
MongoDB备份与恢复
8种NoSQL数据库对比
配置mongodb分片群集(sharding cluster)
记一次MongoDB性能问题,附原理解析
mongodb之insert和save函数的区别
mongodb shell无法删除问题 与 secureCRT使用退格键出现^H解决办法
Mongodb源码分析之Mongos分析
PHP操作MongoDB

 

来源:互联网

发表评论