在CentOS环境上迁移mongodb小技巧一则
Posted 肖永威
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在CentOS环境上迁移mongodb小技巧一则相关的知识,希望对你有一定的参考价值。
做为开发者,经常面临迁移数据的情况,常用的数据导出mongoexport和数据导入mongoimport等工具是个很好的方案,在这里使用全库迁移方案。
当计算资源紧张时、存储资源不足时,开发者换设备、调整资源是常见的情况,为了便捷迁移数据库,咱们来个乾坤大挪移。
1. 在新安装的CentOS上安装MongoDB
要求:安装目录结构及配置与原安装部署一致
- 安装目录,/usr/local/mongodb
- 数据库目录,/usr/local/mongodb/data
- 日志目录,/usr/local/mongodb/log
- 配置目录,/usr/local/mongodb/etc
略去下载MongoDB安装包过程,把安装包放在工作目录下,切换到root用户下。
解压到指定目录:
[root@bogon python]# tar -zxvf mongodb-linux-x86_64-rhel70-5.0.3.tgz -C /usr/local
其中命令开关,-C:切换到指定目录
修改目录为mongodb:
[root@bogon python]# mv mongodb-linux-x86_64-rhel70-5.0.3 mongodb
创建数据库、日志、配置目录:
[root@bogon python]# mkdir data log etc
2. 停止现在数据库服务
使用数据库命令关闭。
登录数据库
[root@bogon python]# mongo
关闭 MongoDB 服务
> use admin;
switched to db admin
> db.shutdownServer();
使用 Mongod 命令关闭
[root@bogon python]# mongod --shutdown --dbpath /database/mongodb/data/
3. 从原数据库拷贝文件到新数据库
使用sftp工具进行服务器间文件安全传输。
SFTP(SSH File Transfer Protocol)是一种基于SSH(安全外壳)的安全的文件传输协议,使用SFTP协议可以在文件传输过程中提供一种安全的网络的加密算法,从而保证数据的安全传输。
SFTP在Linux操作系统中,默认的端口客是22,传输提供了密码和密钥验证机制,可以有效防止传输过程的威胁和攻击。
使用sftp工具连接原服务器:
[root@bogon python]# sftp root@192.168.*.*
拷贝配置文件到/usr/local/mongodb/etc/下。
sftp> get /usr/local/mongodb/etc/mongodb.conf
拷贝配置数据文件到/usr/local/mongodb/data/下。
sftp> get -r /usr/local/mongodb/data
完成拷贝,退出。
sftp> exit
其中,文件传输命令:
获取
get [远程文件路径] [本地路径] #获取单个文件
get -r [远程目录路径] [本地路径] #获取整个文件夹
发送
put [本地文件路径] [远程路径] #发送单个文件
put -r [本地目录路径] [远程路径] #发送整个文件夹
如果存储空间不够,移动文件到其他地方,并建立软连接:
[root@bogon mongodb]# mv /usr/local/mongodb/data /home/python/mongodb
[root@bogon mongodb]# ln -s /home/python/mongodb/data /usr/local/mongodb/data
4. 配置路径及打开防火墙
在profile中配置上PATH。
[root@bogon python]# vi /etc/profile
LD_LIBRARY_PATH=/opt/OpenBLAS/lib
export PATH=$PATH:/usr/local/mongodb/bin
export NEO4J_HOME=/opt/neo4j
export PATH=$NEO4J_HOME/bin:$PATH
export LD_LIBRARY_PATH
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export PATH=/usr/local/git/bin:$PATH
生效配置。
[root@bogon python]#source /etc/profile
配置防火墙,打开MongoDB默认端口27017。
[root@bogon python]#firewall-cmd --zone=public --add-port=27017/tcp
5. 总结
此方案比较适合开发环境,数据量不是特别大的情况。此方法也非常适合其他数据库在Linux环境间迁移。前提是保证环境配置保持不变。
参考:
梁帆. CentOS使用sftp命令进行主机间文件传输. 简书. 2021.07
今年下半年. centos安装mongodb详细教程. CSDN博客. 2020.06
以上是关于在CentOS环境上迁移mongodb小技巧一则的主要内容,如果未能解决你的问题,请参考以下文章