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()。这个方法的好处是可以时间将磁盘上的数据删除掉。节省出很大的空间。

磁盘紧张的同学可以参考以上方法。

时间: 2024-10-03 13:40:07

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

mongo删除表或库后,释放磁盘空间

参考文档: http://bbs.csdn.net/topics/390906498 2-硬盘空间不足,如何释放已删除的mongodb集合 https://segmentfault.com/q/1010000002414576 3-mongo剔除大表之后的操作 http://www.myexception.cn/open-source/1441621.html 4-mongodb拷贝数据库copyDatabase().实现释放磁盘空间的方法. http://www.111cn.net/datab

MySQL删除数据几种情况以及是否释放磁盘空间【转】

MySQL删除数据几种情况以及是否释放磁盘空间: 1.drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM ; 2.truncate table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM .truncate table其实有点类似于drop table 然后creat,只不过这个create table 的过程做了优化,比如表结构文件之前已经有了等等.所以速度上应该是接近drop table的速度; 3.delet

【翻译自mos文章】回收 asm磁盘空间的方法

回收 asm磁盘空间的方法 參考原文: How To Reclaim Asm Disk Space? (Doc ID 351866.1) 适用于: Oracle Database - Enterprise Edition - Version 10.2.0.1 and later Information in this document applies to any platform. ***Checked for relevance on 12-Jan-2010*** 目标: 你有一套2节点的r

mongodb 释放磁盘空间

db.copyDatabase("from","to","127.0.0.1:16161"); 将127.0.0.1上的from库.拷贝到to库. 这样做有一个额外的好处.就是from库中可能是删除过数据的库.看我们知道删除数据时磁盘空间是不会被释放的.参考博客里的另一篇文章:mongodb删除集合后磁盘空间不释放 肯能造成占用很大磁盘空间.虽然可以用    db.repairDatabase()修复数据.但这种方法有两个不好的地方.1.在生产上

MongoDB repairDatabase 释放磁盘空间

repairDatabase是官方文档中认为唯一可以回收硬盘空间的方法. repairDatabase is the appropriate and the only way to reclaim disk space. 虽然可以用 db.repairDatabase()修复数据.但这种方法有两个不好的地方.1.在生产上操作如果意外停止可能会造成数据无法恢复的危险.2.如果磁盘空间不足,小于现在这个db时间占有的空间,这种情况是用不了 db.repairDatabase()的. 注意,repai

Linux下追加磁盘空间的方法

情景1:如果当前磁盘有容可扩 root用户下,[fdisk -l]最大分区是/dev/sda3,新创建最新的分区是/dev/sda4 输入[fdisk /dev/sda] [n]添加新分区 [p]创建主分区 [回车]选择默认大小(也是全部大小),这样不浪费空间 [回车],选择默认的start cylinder. [w]保持修改 [reboot]重启Linux,必须重启Linux,否则/dev/sda4无法格式化 这时在/dev/目录下,才能看到新的分区sda4 [mkfs.ext4 /dev/s

VMware vSphere Client下增加虚拟机磁盘空间的方法

随着系统运维时间的增长,磁盘就日益的损耗,如果遇到虚拟机报磁盘空间不足怎么办?还好,我们可以通过磁盘阵列增加磁盘空间,然后扩容到虚拟机中去. 对于linux虚拟机磁盘扩容的方案有两种,一种就是原有的实体机中还有足够的硬盘,我们可以直接调大现有虚拟机磁盘,或者采用新增加一块磁盘方式:第二种,如果原有磁盘的空间不足,只能采用新增加一块磁盘的方式处理.但是其实这两种方式增加磁盘后,都需要在Linux中进行挂载,扩容操作.不是通过VMware vSphere Client客户端操作完了就可以用了. 后续

mongodb drop不释放磁盘空间

点击(此处)折叠或打开 use demodb //使用demodb,以下假设操作的collection是foo db.foo.remove({"id":"123456"}) //删除一条数据 db.foo.remove() //删除foo中的所有记录,但是foo还存在,show collection还可以看到foo db.foo.drop() //删除foo这个collection,(show collection已经看不到foo了)但是查看数据文件发现大小不变,M

MongoDB释放磁盘空间

1. 先删除旧的文档db.remove({}): 2. 从副本集中移除待清理的成员: (1) 登录副本集中的 Primary 服务器(/opt/mongo1/bin/mongo --port 27017) (2) rs.remove("192.168.1.54:27019") 3. 关闭待清理的 mongodb 服务器 (1) 登录待清理的 mongodb 服务器(/opt/mongo2/bin/mongo --port 27018) (2) user admin; db.shutdo