如何迁移linux主机上mongodb数据库

前言

由于いんろな原因,我需要把当前部署在一台linux主机上的mongodb数据库迁移到另外一台linux主机上,通过网上找资料发现,其实由于linux主机(云服务器)都具有ssh连接,所以转移一些备份就很方便。

迁移步骤

  1. 在目标linux主机上安装mongodb软件:

由于不同linux主机之间的系统环境有所区别,所以得先安装相适应版本的mongodb软件;

  1. 对要迁移的mongodb数据库进行备份:

跳转到mongodb的安装路径下的bin目录,执行mongodump命令:

1
mongodump

然后该目录下就会多出一个dump目录,dump目录下备份了当前运行的数据库的所有数据。

mongodump命令执行时需要有正在运行的mongodb服务器,默认备份的为127.0.0.1:27017mongodb服务器;

  1. 将备份文件拷贝到目标主机中:

最简单的方法就是将备份目录dump下的文件打包后,上传到目标主机中,然后解压;然后linux主机有一个强大的命令——scp,这个命令可以在两个不同的linux主机之间进行远程拷贝文件或文件夹!比如:

1
scp -r ./dump root@xx.xx.xx.xx:/path/bin

上述命令就是将当前目录下的dump(及其子目录下的所有文件)文件夹,远程复制到ip地址为xx.xx.xx.xx的主机下的root用户的/path/bin目录下(注意是该目录的子级而非替换整个目录),执行命令后需要输入该用户的访问密码,密码正确后就会远程复制到目标位置!

之前都不知道有这么强大的命令,一直通过打包解压的方式转移文件……

  1. 在目标主机中进行mongodb数据恢复:

首先也是需要确保目标主机的mongodb数据库已经运行,然后已经将之前的备份文件夹转移到目标主机中mongodb安装路径的bin目录下,然后执行mongorestore命令即可:

1
mongorestore

:该命令默认以bin目录下的dump为备份文件夹进行数据恢复。

后话

经过以上步骤的折腾后,之前主机上的mongodb数据库中数据就完全转移到目标主机中的mongodb数据库中了。但是这种方法也只是适用于像我这种用来测试或者自己玩玩的项目中,要是属于那种有大量用户正在使用的生产数据库,那就得另寻他法了!

参考文档

  1. MongoDB 备份(mongodump)与恢复(mongorestore) | 菜鸟教程
  2. scp 跨机远程拷贝 —— Linux Tools Quick Tutorial