mongodb拷贝数据库copyDatabase()。实现释放磁盘空间的方法。
下面我们一起来看看关于mongodb拷贝数据库copyDatabase()。
实现释放磁盘空间的方法,希望文章对各位同学会有所帮助。
db.copyDatabase("from","to","127.0.0.1:16161"); 将127.0.0.1上的from库。拷贝到to库。
这样做有一个额外的好处。就是from库中可能是删除过数据的库。
看我们知道删除数据时磁盘空间是不会被释放的。
参考博客里的另一篇文章:mongodb删除集合后磁盘空间不释放 肯能造成占用很大磁盘空间。
虽然可以用 db.repairDatabase()修复数据。
但这种方法有两个不好的地方。
1.在生产上操作如果意外停止可能会造成数据无法恢复的危险。
2.如果磁盘空间不足,小于现在这个db时间占有的空间,这种情况是用不了 db.repairDatabase()的。
所以介绍用db.copyDatabase可以备份复制数据的方法。
1.db.copyDatabase("from","to","127.0.0.1:16161");复制出一个新的to数据库 。
这个已经是最小数据占用的数据。会在数据目录下产生to的相关数据文件。
2.将所有程序的配置从from库改为to库。测试无误。
3.这时可以删除from库。方法。use from 后 db.dropDatabase()。这个方法的好处是可以时间将磁盘上的数据删除掉。
节省出很大的空间。 磁盘紧张的同学可以参考以上方法。
分类:
mongodb
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?