码迷,mamicode.com
首页 > 数据库 > 详细

mongodb拷贝数据库copyDatabase()。实现释放磁盘空间的方法。

时间:2014-09-24 18:22:17      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:http   ar   文件   数据   sp   on   c   时间   ef   

下面我们一起来看看关于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()。这个方法的好处是可以时间将磁盘上的数据删除掉。
   节省出很大的空间。 磁盘紧张的同学可以参考以上方法。
  

http://www.111cn.net/database/MongoDB/56304.htm

mongodb拷贝数据库copyDatabase()。实现释放磁盘空间的方法。

标签:http   ar   文件   数据   sp   on   c   时间   ef   

原文地址:http://www.cnblogs.com/seasonzone/p/3991004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!