搜索
搜索
天涯的知库
显示页面
过去修订
您的足迹:
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== MongoDB 架构 ====== [[https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/|安装 Mongodb@5.0 ubuntu]] [[https://www.mongodb.com/docs/v5.0/tutorial/install-mongodb-on-os-x/|mac OX]] [[https://www.mongodb.com/developer/products/mongodb/mongodb-on-raspberry-pi/|树莓派只能安装4.4版本]] sudo systemctl restart mongod ===== 安全 ===== [[https://zhuanlan.zhihu.com/p/37837627|防止被黑客攻击]] 主要措施 * 启动认证登录 * 设定复杂密码 * 修改端口 * 限制内网访问 通过 MongoDB 自带的 bindip 参数在我的实践中并不管用,这里采用的是 Linux 自带的iptables 功能,限制允许访问 MongoDB 端口的IP地址: <code bash> # 拒绝所有访问27027端口的请求 $ sudo iptables -I INPUT -p tcp --dport 27027 -j DROP # 允许本地访问mongo端口 $ sudo iptables -I INPUT -s 127.0.0.1 -p tcp --dport 27027 -j ACCEPT $ sudo iptables-save </code> {{tag>database mongo}} ===== 搭建副本 ===== 参考文章: [[https://jelly.jd.com/article/5f990ebbbfbee00150eb620a|MongoDB 副本集之入门]] ==== 主机设定 ==== 设定主机名字:''hostnamectl set-hostname serverpi'' 为''serverpi'' ,存储在 ''/etc/hostname'' \\ 编辑 ''/etc/hosts'' 使得服务器之间互相认识 <code bash> 217.160.61.19 serverionos 192.168.0.136 servcerpi ... </code> ==== 配置用例 ==== 修改''mongod.conf'' 文件,并启动案例。详细请参阅以下上篇文章:[[https://segmentfault.com/a/1190000039403622|文章一]] [[https://www.cnblogs.com/gjc592/p/13454845.html|文章二]] [[https://www.cnblogs.com/operationhome/p/10744712.html|文章三]] <code bash> /usr/bin/mongod -f /home/mongodb/33720/etc/mongod.conf /usr/bin/mongod -f /home/mongodb/33721/etc/mongod.conf db.shutdownServer({force: <boolean>,timeoutSecs: <int>}) #关闭服务, 这种方式启动的案例 systemctl 不认识 </code> 此文章提及到主节点[[https://www.jianshu.com/p/73b5ad930f47|人工降级]]为副本集。 ===== 数据备份 ===== ==== mongodump ==== <code bash> mongodump --uri="mongodb://user:pw@192.168.0.157:33720" --authenticationDatabase admin -d Stock -o ~/projects/Backup mongorestore --uri="mongodb://user:pw@143.47.185.127:33720" --authenticationDatabase admin -d Stock ~/projects/Backup/Stock </code> 注意备份前锁写操作 ''db.fsyncLock()'' 以及备份结束后开通写操作 ''db.fsyncUnlock()'' ==== 压缩文件备份 ==== 将目录压缩到一个文件当中 <color #ff7f27>''%%tar -czf /home/ubuntu/Backup/`date +%F`_mongo_all.tar.gz /home/ssd/mongodb%%''</color> 解压到原来的目录 <color #ff7f27>''%%tar -xzf /home/ubuntu/Backup/2021-07-17_mongo_all.tar.gz -C /%%''</color> :!: //解压的参数写根目录就可以了,它会按照压缩时的目录解压// 。 利用系统 crontab 定时任务,制定一个每周和每月的备份计划。编写备份数据的脚本如下, <file sh dobachup.sh> #/usr/bin/sh! mongo --port 33720 -u goldentianya -p 's#;zb_OfJW]P' <<EOF db.fsyncLock() EOF tar -czf /home/mongobackup/`date +%F`_mongo_all.tar.gz /home/ssd/mongodb mongo --port 33720 -u goldentianya -p 's#;zb_OfJW]P' <<EOF db.fsyncUnlock() EOF # 删除6天以前的文件 find /home/ubuntu/apis/test/temp/ -mtime +6 | xargs rm </file> 然后制定计划任务 <code bash> crontab -e # 系统会建立/修改一个临时脚本文件。在文件中输入 # 每周日或每月1号的凌晨2点执行数据库备份 0 2 1 * 0 /home/mongobackup/dobachup.sh </code>
it/database/mongo_install.txt
· 最后更改: 2025-12-30 14:39 由
goldentianya
回到顶部