# 数据导出 mongoexport -d test -c user -f name,age -q \'{age:{$lte:50}}\' -o ./user.json -d 导出哪个数据库的数据 -c 导出哪个集合的数据 -f 导出哪些字段 -q 筛选的条件 -o 导出到哪个文件 还可以添加参数:--csv 导出的格式为csv(mysql,excel可以直接使用csv格式文件) # 数据导入 mongoimport -d -c user --type json --file \'./test.json\' mongoimport -d -c user --type csv -f name,age --headerline --file \'./test.csv\' --headerline 跳过csv文件的第一行
备份与恢复其实是二进制形式的数据导入导出,速度更快,索引不会丢失,在第一章的数据导入导出只适合做数据的交换。
# 备份 mongodump -h dbhost -d dbname -o dbdirectory -h:服务器地址,也可以指定端口号 -d:需要备份的数据库名称 -o:备份的数据存放位置,此目录中存放着备份出来的数据 示例 sudo mkdir test1bak sudo mongodump -h 192.168.196.128:27017 -d test1 -o ~/Desktop/test1bak # 恢复 mongorestore -h dbhost -d dbname --dir dbdirectory -h:服务器地址 -d:需要恢复的数据库实例 --dir:备份数据所在位置 示例 mongorestore -h 192.168.196.128:27017 -d test2 --dir ~/Desktop/test1bak/test1
fsync命令能在Mongo运行时复制数据目录并且不会损毁数据。该命令会强制服务器将所有缓冲区写入磁盘,还可以选择上锁阻止对数据库的进一步写入,直到释放锁为止。写入锁是fsync在备份时发挥作用的关键。
# 强制执行fsync并写入锁 use admin db.runCommand({"fsync": 1, "lokc": 1}) # 现在数据目录的数据是一致的,并且为数据库的实时快照,可以安全的做备份,备份完毕后需要解锁 db.$cmd,sys.unlock.findOne()
db.repairDatabase()
本文地址:https://www.stayed.cn/item/390
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我