MongoDB备份与恢复以及导入导出

MongoDB备份与恢复

1、mongodump数据备份

在Mongodb中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据 (数据和数据结构) 或指定数据(集合、部分集合内容)到指定目录中。

语法:
mongodump -h dbhost -d dbname -o dbdirectory
参数
-p,–port:端口
-h,–host:IP地址
-d,–db:数据库
-c,–collection:备份的集合名称
-q,–query:备份数据的条件表达式
-o,–out:备份文件的存放位置
-u,–username:用户名 (可选)
-p,–password:密码 (可选)
–authenticationDataBase:认证数据库(若数据库开启了认证该参数必须传!)

示例

#备份所有数据库 
	#非认证数据库
	mongodump --port=27017 -h 127.0.0.1 -o /data/mongodb_backup  
	#认证数据库
	mongodump -h 127.0.0.1:27017 -o /data/mongodb_backup  -u root -p 123456 --	authenticationDataBase:admin
	#--port可以不传,直接写在ip后即可
	
#具体根据实际数据库是否是开启了认证选择,下面都以认证过的为例,没认证只是少传几个参数
	
#备份指定数据库db1 
	mongodump -d db1 -h 127.0.0.1:27017 -o /data/mongodb_backup  -u root -p 123456 --authenticationDatabase admin
#备份db1数据库中的test集合中的name="张三"的记录
	mongodump -d db1 -c test -q '{name:{$eq:"张三"}}' -h 127.0.0.1:27017 -o /data/mongodb_backup  -u root -p 123456 --authenticationDatabase admin

2、mongorestore数据恢复

语法:
mongorestore -h dbhost -d dbname --dir dbdirectory
参数
-p,–port
-h,–host
-d,–db 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
-c,–collection
–dir:恢复文件存放的位置,如果指定了数据库文件夹或者集合文件,则只恢复当前数据库或者当前集合,如果没有指定,则恢复当前目录下所有备份数据。
–drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
-u,–user
-p,–password
–authenticationDatabase

示例

#恢复所有数据库
 mongorestore -h 127.0.0.1:27017 --dir /data/mongodb_backup
#恢复制定数据库
 mongorestore -h 127.0.0.1:27017 -d bd1 --dir /data/mongodb_backup

MongoDB数据导入与导出

1、导出工具:mongoexport

概念:
mongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。
语法:
mongoexport -d dbname -c collectionname -o file --type json/csv -f field
参数说明:
-d :数据库名
-c :collection名
-o :输出的文件名
–type : 输出的格式,默认为json
-f :输出的字段,如果-type为csv,则需要加上-f “字段名”

示例:

#备份db1库下的test集合 (备份文件的名字可以自定义,默认导出了JSON格式的数据)

    mongoexport -h 127.0.0.1:27017 -u root -p 123456 --authenticationDatabase admin -d db1 -c test -o /home/mongod/backup/test.dat
    
#导出CSV格式的数据

    mongoexport -h 127.0.0.1:27017 -u root -p 123456 --authenticationDatabase admin -d db1 -c test --type=csv -f "id,name" -o /home/mongod/backup/test_csv.dat

2、数据导入:mongoimport

语法:
mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
参数说明:
-d :数据库名
-c :collection名
-type :导入的格式默认json
-f :导入的字段名
–drop 插入之前先删除原有的
–headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段
–file :要导入的文件

示例:

#将之前恢复的数据导入
mongoimport -h 127.0.0.1:27017 -u root -p 123456 --authenticationDatabase admin -d db1 -c test --file /home/mongod/backup/test.dat

#将之前恢复的CSV格式数据导入
mongoimport -h 127.0.0.1:27017 -u root -p 123456 --authenticationDatabase admin -d db1 -c test --type=csv --headerline --file /home/mongod/backup/test_csv.dat

你可能感兴趣的:(数据库,服务器,运维,mongodb,数据库,经验分享)