【mongo】drop不释放磁盘空间】的更多相关文章

用drop删除mongo的collection后,其size归零,但是storage仍然是原大小,磁盘空间没有被释放. 要用下面命令释放无用的磁盘空间 mongod -repair…
点击(此处)折叠或打开 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…
一则清理MySQL大表以释放磁盘空间的案例 一.基本情况: 1.dbtest库554G,先清理st_online_time_away_ds(37G)表的数据,保留半年的数据: 1)删除的数据:select count(1),tdate from dbtest.st_online_time_away_ds where tdate < '2017-08-01';(记录数为:462171894) 2)保留的数据:select count(1),tdate from dbtest.st_online_t…
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…
硬盘空间不足,打算删除数据库中的多余数据,但删除数据后,硬盘硬盘空间不能释放.[delete后用:alter table table_name move    truncate后用:alter table table_name deallocate unused 均不可解决] 解决方法: --delete/truncate删除,释放表空间.降低高水位线.resize释放磁盘空间相关优化汇总--查询DBF文件.数据库空间.高水位线占用情况 select /*+ ordered use_hash(a…
Innodb数据库对于已经删除的数据只是标记为删除,并不真正释放所占用的磁盘空间,这就导致InnoDB数据库文件不断增长. 如果需要彻底释放磁盘空间,则需要先导出数据,然后删除数据文件,最后导入数据.具体步骤如下: 使用mysqldump命令将InnoDB数据库导出. 停止MySQL服务. 删除所有InnoDB数据库文件和日志(ibdata1,ib_logfile*). 启动MySQL并自动重建InnoDB数据库文件和日志文件. 导入之前备份的数据. 备份数据库批处理命令: ..\bin\mys…
下面我们一起来看看关于mongodb拷贝数据库copyDatabase().实现释放磁盘空间的方法,希望文章对各位同学会有所帮助. db.copyDatabase("from","to","127.0.0.1:16161"); 将127.0.0.1上的from库.拷贝到to库. 这样做有一个额外的好处.就是from库中可能是删除过数据的库.看我们知道删除数据时磁盘空间是不会被释放的.参考博客里的另一篇文章:mongodb删除集合后磁盘空间不释放…
测试环境一台服务器/目录空间使用率达到97%,但是通过du -sh *发现实际空间没用到那么多,初步怀疑,之前删除的文件,有运行中的进程一直占用,导致空间没有释放,如图通过du -sh *发现共实际使用不到5G+空间,而通过df -h发现已经使用了45G. 接着我们通过lsof命令查找运行中的进程占用已经删除的文件(僵死文件.这些文件实际上已经被删除,但是有服务程序在使用这些文件,导致这些文件一直被占用,无法释放磁盘空间,使用如下命令可以查看死文件占用情况),使用命令 lsof | grep d…
db.copyDatabase("from","to","127.0.0.1:16161"); 将127.0.0.1上的from库.拷贝到to库. 这样做有一个额外的好处.就是from库中可能是删除过数据的库.看我们知道删除数据时磁盘空间是不会被释放的.参考博客里的另一篇文章:mongodb删除集合后磁盘空间不释放 肯能造成占用很大磁盘空间.虽然可以用    db.repairDatabase()修复数据.但这种方法有两个不好的地方.1.在生产上…
truncate table tablename DROP STORAGE; drop 执行drop table xx 语句drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉.这样,回收站里的表信息就可以被恢复,或彻底清除.通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to be…
应用背景: 自建的maven私服(或者叫私仓)nexus在使用过程中,因很多服务不断迭代更新上传jar包至nexus中,底层存放在一个叫Blob Stores的存储中,最近发现该存储已增大至好几百G,有必要清理一下,腾出空间. 测试环境: 操作系统 应用 CentOS 7.3 Nexus 3.13 操作步骤: 1.在nexus界面清理对应的旧版本或者想要清理的应用包,如图示: 注意:在删除多个目标后,你会发现,实际物理磁盘并没有释放出来,是因为在后台只是被标记为deletion,就好比你用del…
1 自己删除了Tomcat的日志文件,但是依然显示磁盘百分百占用 进入Tomcat目录显示日志已经删除 查询磁盘空间依旧百分百占用 2 自己杀死Tomcat进程然后重启,成功释放空间 3 原因,通过网络查询 原来在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink), 然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用.而我删除的是正在运行中的 Tomcat 的 logs,删除的时候文件正在被…
在Linux系操作系统中查找并删除重复文件的方法的确有很多,不过这里介绍的是一款非常简单实用的软件FSlint.FSlint是一个重复文件查找工具,可以使用它来清除不必要的重复文件,笔者经常使用它来释放Linux系统中的磁盘空间. FSlint同时具有GUI和CLI模式.因此,对于新手来说,这是一个用户友好的工具.FSlint不仅可以找到重复项,还可以用于找到错误的符号链接.错误的名称.临时文件.错误的IDS.空目录和未剥离的二进制文件等. 安装FSlint archlinux: $ yay -…
一.drop表 执行drop table xx 语句 drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉.这样,回收站里的表信息就可以被恢复,或彻底清除. 通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句 flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_tabl…
--2013-09-16截取的数据-- 使用df-h命令查看系统磁盘空间 [root@erpdbs PROD]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda5 4.9G 241M 4.4G 6% / /dev/sda10 716G 432G 248G 64% /back /dev/sda1 4.9G 50M 4.6G 2% /boot /dev/sda9 481G 415G 42G 91% /data none 7.9G 0…
应用背景 自建的maven私服(或者叫私仓)nexus在使用过程中,因很多服务不断迭代更新上传jar包至nexus中,底层存放在一个叫Blob Stores的存储中,最近发现该存储已增大至好几百G,有必要清理一下,腾出空间. 操作步骤 1.在nexus界面清理对应的旧版本或者想要清理的应用包,如图示: 注意:在删除多个目标后,你会发现,实际物理磁盘并没有释放出来,是因为在后台只是被标记为deletion,就好比你用delete语句删除mysql中的条目时,磁盘空间不会释放出来一样,因此,还需要第…
repairDatabase是官方文档中认为唯一可以回收硬盘空间的方法. repairDatabase is the appropriate and the only way to reclaim disk space.   虽然可以用 db.repairDatabase()修复数据.但这种方法有两个不好的地方.1.在生产上操作如果意外停止可能会造成数据无法恢复的危险.2.如果磁盘空间不足,小于现在这个db时间占有的空间,这种情况是用不了 db.repairDatabase()的.   注意,r…
环境:RHEL 5.3 + IEE 5.1.40 本文目的:指导项目侧人员再遇到此类改动需求时可以自己更改.需求:mr_intrainterfreq表重建,历史数据全部删掉. 1.停库: 1.1确认现在IEE的进程状态: [root@XZWRNOPMRA ~]# ps -ef|grep mysql root 22063 1 0 10:44 pts/6 00:00:00 /bin/sh /usr/local/infobright-4.0.6-x86_64/bin/mysqld_safe --def…
来源于:http://www.itpub.net/thread-513609-1-1.html http://bbs.csdn.net/topics/330251089 http://blog.csdn.net/rznice/article/details/6107650 1.首先要得到USERS01.DBF的file_idSELECT file_name,file_id FROM dba_data_files WHERE file_name like '%USER%';2.统计这个数据文件有哪…
在Linux操作系统下,有个没用的文件占用了400G,于是删除掉. [root@yoon log]# rm -rf messages [root@yoon log]# df -hFilesystem      Size  Used Avail Use% Mounted on/dev/sda3       545G  438G  101G  82% /tmpfs            32G     0   32G   0% /dev/shm/dev/sda1      1008M   62M  …
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…
一 安装stacer,使用它来清空系统内存 其实 Stacer 的安装步非常简单,只需到 Github 的发布页面下载到 .deb 包,再用 GDebi 或如下命令安装即可: wget https://github.com/oguzhaninan/Stacer/releases/download/v1.0.7/stacer_1.0.7_amd64.deb dpkg -i stacer_1.0.7_amd64.deb 使用的时候直接在搜索中搜索stacer就行了: 初步试用过,感觉这个软件对垃圾清…
如果10台以内的db的话,自己手动ssh进去,clean就足以,但是上百台呢,就要写脚本了.大概思路:在 一台db跳转机上面, 写一个脚本,访问slave,远程获取正在复制的master上面的binlog位置, 然后再远程去purge master上面的binlog. 1,  建立slave dbserver列表 slavelist; 一个slave一行. 2,远程获取slave db上面的binlog位置以及slave的master主机名(也许是ip地址) 3,拿到binlog位置以及mast…
方案,总共24台db,一台台进去清理肯定不行,得需要写一个脚本,进行批量操作,方案思路大概如下 1,  建立双master列表masterlist; 一个master一行. 2,远程获取master db上面的binlog位置以及对应master的master主机名(也许是ip地址) 3,拿到binlog位置以及master主机名,然后ssh远程清理掉远程master上面的binlog 4, 采用shell for循环操作step 2以及step 3. clearbinlog.sh脚本如下 fo…
如果10台以内的db的话,自己手动ssh进去,clean就足以,但是上百台呢,就要写脚本了.大概思路:在 一台db跳转机上面, 写一个脚本,访问slave,远程获取正在复制的master上面的binlog位置, 然后再远程去purge master上面的binlog. 1,  建立slave dbserver列表 slavelist; 一个slave一行. 2,远程获取slave db上面的binlog位置以及slave的master主机名(也许是ip地址) 3,拿到binlog位置以及mast…
mongodb删除集合后磁盘空间不释放,只有用db.repairDatabase()去修复才能释放. 但是在修复的过程中如果出现了非正常的mongodb的挂掉,再次启动时启动不了的,需要先修复才可以, 可以利用./mongod --repair --dbpath=/data/mongo/ 如果你是把数据库单独的放在一个文件夹中指定dbpath时就指 向要修复的数据库就可以,修复可能要花费很长的时间,在使用db.repairDatabase()去修复时一定要停掉读写,并且 mongodb要有备机才…
随着互联网的快速发展,各行各业的数据量也是与日俱增,而数据库的数据量也是直线增长,但是,如果表DML太多,则可能会在高水位线以下出现太多空白. 因此,只能将数据文件缩小到高水位线,因为高水位线以下有一些空白.因此,在这种情况下(删除太多),要在数据文件上占用更多空间,首先,重组表,重置高水位线,然后再次缩小数据文件.这样我们可以在磁盘级别上释放更多的空间. 文档资料和脚本来自support文献编号: 2348230.1,1019709.6,1020182.6,186826.1等. 一.遇到的案例…
服务器上发现,打开mdb数据库,点知道只有个空白的截面,打开已有的excel文件,一样,但多了个提示:内存磁盘空间不足或者关闭不再使用的工作表或者程序.检查过,内存和磁盘很充裕啊.那里不足啊,任务管理器一查看,也正常啊   试过好多方法,不行啊.我上网找啊找.终于,解决了. 方法1. 建议您尝试开启Windows Firewall 和Windows Update两个服务,查看问题情况.(当解决了问题后,这两服务可以关闭) 1.右击“计算机”,选择“管理”--服务和应用程序--服务 2.找到Win…
问题描述 在云服务器 ECS Linux 系统内创建文件时,出现类似如下空间不足提示: No space left on device … 问题原因 导致该问题的可能原因包括: 磁盘分区空间使用率达到百分之百. 磁盘分区 inode 使用率达到百分之百. 僵尸文件:已删除文件因句柄被占用未释放导致相应空间未释放. 处理办法 要解决该问题,建议通过如下方式处理: 分区容量满 inode 容量满 修改 inode 数量 僵尸文件分析删除 分区容量满 登陆 SSH,使用 df -h 查看使用率,mou…
简述: Jenkins在每一次的执行构建后,都会对该构建的项目生成一个历史构建记录以及生成一份历史构建的项目发布包,长期累积可能会占用大量磁盘空间 jenkins构建jobs路径如下图: 解决办法: 删除jenkins旧的构建来释放磁盘空间 1.进入jenkins服务器对应构建Jobs目录删除,如上如的1 3 4 5 6 2.创建构建时勾选“丢弃旧的构建”,如下图…