MongoDB 数据库备份、迁移、恢复、还原、导入、导出教程

微服务就像一个风口,NoSQL 也像一个风口。大家都开始探索和尝试使用它们,但是都有面临一个升级迁移的难题。

最近我们公司在面向用户的电商系统,随着用户越来越多,不得已需要对整个 MongoDB 数据库进行一次较大的升级。而这次升级我们对重要数据进行了数据迁移,对新系统进行支持。

Mongo 备份与还原

关于我们是怎么迁移的,我另有其他文章回来写。本文,我们主要学习一下,MongoDB 中如何备份、还原、导入、导出数据库和数据表。

mongodb 备份

备份我们一般使用 mongodump 命令。常用的备份命令格式如下:

mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径

如果想导出所有数据库,可以去掉 -d。

mongodump -h 127.0.0.1 --port 8888 -d xttblog -uxttblog -pxttblog -o home/mongodb/

还原 mongodb 数据库

MongoDB 数据库还原数据的命令格式如下:

mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径

下面看一个还原 Mongo 数据库的操作案例。

#xttblog 是这个数据库的备份路径
mongorestore -d test /home/mongodb/xttblog

需要注意的是,mongodump 和 mongorestore 两个命令操作文件的格式是和 json 类似的 bson 格式。

Mongo 导出表

MongoDB 导出表或者表中部分字段的命令是:mongoexport。常用导出表的命令格式如下:

mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段

上面命令格式的各参数介绍如下:

  • -o:指定文件名
  • -f:导出指定字段,以字号分割,-f name,email,age 导出 name,email,age 这三个字段
  • -q:可以根查询条件导出,-q '{ "_id" : "10001" }' 导出 oid 为 10001 的数据
  • –csv:表示导出的文件格式为 csv 的,这个比较有用,因为大部分的关系型数据库都是支持 csv

下面看两个我导出的案例。

#导出整张表、整个集合
mongoexport -d xttblog -c users -o /home/mongodb/xttblog/users.dat
#导出表中部分字段
mongoexport -d xttblog -c users --csv -f uid,name,sex -o xttblog/users.csv
#根据条件导出数据
mongoexport -d xttblog -c users -q '{uid:{$gt:1}}' -o xttblog/users.json

Mongo 导入表

有导出就有导入。导入,我们使用 mongoimport 命令。mongoimport 可以导入表,或者表中的部分字段。

还原整表导出的非 csv 文件的命令格式如下:

mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsert --drop 文件名

–upsert 参数的作用是插入或者更新现有数据。

还原部分字段的导出文件格式如下:

mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsertFields 字段 --drop 文件名

–upsertFields 参数和 –upsert 类似。

还原导出的csv文件格式如下:

mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --type 类型 --headerline --upsert --drop 文件名

使用案例如下:

#还原导出的表数据
mongoimport -d xttblog -c users --upsert xttblog/users.dat
#部分字段的表数据导入
mongoimport -d xttblog -c users  --upsertFields uid,name,sex  xttblog/users.dat
#还原csv文件
mongoimport -d xttblog -c users --type csv --headerline --file xttblog/users.csv

以上希望能对大家有所帮助。如有疑问,可以通过我的微信公众号联系我。

MongoDB 数据库备份、迁移、恢复、还原、导入、导出教程

: » MongoDB 数据库备份、迁移、恢复、还原、导入、导出教程

原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/252808.html

(0)
上一篇 2022年5月4日
下一篇 2022年5月4日

相关推荐

发表回复

登录后才能评论