如何迁移linux主机上mongodb数据库
前言
由于いんろな原因,我需要把当前部署在一台linux
主机上的mongodb
数据库迁移到另外一台linux
主机上,通过网上找资料发现,其实由于linux
主机(云服务器)都具有ssh
连接,所以转移一些备份就很方便。
迁移步骤
- 在目标
linux
主机上安装mongodb
软件:
由于不同linux
主机之间的系统环境有所区别,所以得先安装相适应版本的mongodb
软件;
- 对要迁移的
mongodb
数据库进行备份:
跳转到mongodb
的安装路径下的bin
目录,执行mongodump
命令:
1 | mongodump |
然后该目录下就会多出一个dump
目录,dump
目录下备份了当前运行的数据库的所有数据。
注:mongodump
命令执行时需要有正在运行的mongodb
服务器,默认备份的为127.0.0.1:27017
的mongodb
服务器;
- 将备份文件拷贝到目标主机中:
最简单的方法就是将备份目录dump
下的文件打包后,上传到目标主机中,然后解压;然后linux
主机有一个强大的命令——scp
,这个命令可以在两个不同的linux
主机之间进行远程拷贝文件或文件夹!比如:
1 | scp -r ./dump root@xx.xx.xx.xx:/path/bin |
上述命令就是将当前目录下的dump
(及其子目录下的所有文件)文件夹,远程复制到ip
地址为xx.xx.xx.xx
的主机下的root
用户的/path/bin
目录下(注意是该目录的子级而非替换整个目录),执行命令后需要输入该用户的访问密码,密码正确后就会远程复制到目标位置!
之前都不知道有这么强大的命令,一直通过打包解压的方式转移文件……
- 在目标主机中进行
mongodb
数据恢复:
首先也是需要确保目标主机的mongodb
数据库已经运行,然后已经将之前的备份文件夹转移到目标主机中mongodb
安装路径的bin
目录下,然后执行mongorestore
命令即可:
1 | mongorestore |
注:该命令默认以bin
目录下的dump
为备份文件夹进行数据恢复。
后话
经过以上步骤的折腾后,之前主机上的mongodb
数据库中数据就完全转移到目标主机中的mongodb
数据库中了。但是这种方法也只是适用于像我这种用来测试或者自己玩玩的项目中,要是属于那种有大量用户正在使用的生产数据库,那就得另寻他法了!