MongoDB数据迁移

因为旧的服务器要到期了,续费又很贵,所以需要把旧服务器的业务全部迁移到新服务器上,简单研究了一下MongoDB的数据迁移,导入导出和备份的方法。

MongoDB在新版本中不再提供MongoDB Database Tools,因此需要自行下载工具包,解压到MongoDB的bin目录下。

下载地址:https://www.mongodb.com/try/download/database-tools

数据备份与恢复

mongodump

mongodump用于将数据库中的数据导出成BSON二进制文件,此工具对数据不会造成损坏。

常用参数:

  • -h/–host:数据库的主机名
  • -u/–username:用户名
  • -p/–password:密码
  • -d/–db:数据库名
  • -c/–collection:集合名
1
2
# 该命令会将MongoDB中所有数据库导出到当前目录下的dump目录
mongodump -h diaoan.xyz -u *** -p ***

mongorestore

mongorestore用于将mongodump导出的BSON文件恢复到数据库里。

常用参数:

  • -h/–host:数据库的主机名
  • -u/–username:用户名
  • -p/–password:密码
  • -d/–db:数据库名
  • -c/–collection:集合名
  • -dir:BSON文件的目录
  • -drop:恢复前清空数据库
1
mongorestore -h diaoan.xyz -u *** -p *** -dir .

数据导出与导入

mongoexport

mongoexport可以将数据库中的文件以Excel/CSV/JSON的格式导出。(个人认为Navicat更好用)

常用参数:

  • -d/–db:数据库名
  • -c/–collection:集合名
  • -o:导出的文件名
  • -q:查询条件

mongoimport

mongoimport将Excel/CSV/JSON文件导入进数据库,不推荐,如果数据里有JSON对象,导入进数据库后,会变成JSON字符串。

数据克隆

cloneCollection

cloneCollection方法可以将远程服务器上的MongoDB数据复制到本地数据库。该方法在MongoDB4.2版本后被废除。

参数:

from:要复制的数据库地址

collection:本地数据库的集合名

1
db.cloneCollection(':27017', 'profiles',)