今天测试oracle数据库的时候,把表空间连带内容和数据文件一并删除了,但是删除之后,查看数据文件不存在了,但是目录的带下没有释放

SQL> drop tablespace users including contents and  datafiles;

查看目录大小

$ df -h

/dev/mapper/oravg01-oradglv01
30G 26G 2.7G 91% /oradata01

发现目录剩余空间只有2.7G大小,明显不对,进入目录查看是否存在有文件

$ ls
control01.ctl control02.ctl redo01.log redo02.log redo03.log sysaux01.dbf system01.dbf temp01.dbf temp2_01.dbf undotbs01.dbf

发现并没有users01.dbf这个文件,说明这个文件已经被删除了

这就很奇怪了,没有数据文件,但是目录空间没有释放。这是因为删除文件时,删除的并不是磁盘上真正存在的数据文件,而是删除的目录,因此你看不到目录(文件路径报错文件名)

但是实际的数据仍在,也就是可覆盖的,这时候,如果有一个程序,打开了文件句柄,没有关闭,也就是仍然在往这个文件写东西的话,就没办法覆盖,因此目录没有释放

解决方法:

# lsof|grep -i delete

oracle    11472    oracle  259u      REG              253,4 17179877376     393221 /oradata01/monkey/users01.dbf (deleted)
oracle 16477 oracle 261u REG 253,4 6442459136 393229 /oradata01/monkey/users01.dbf (deleted)

使用lsof命令(root),查看哪些进程还在往已经删除的文件中写数据

我这个找到后,是我打开的oracle客户端,因此我把oracle客户端关闭后,目录就释放出来了

# df -h

/dev/mapper/oravg01-oradglv01
30G 9.3G 19G 34% /oradata01

Linux删除文件后磁盘目录不释放的更多相关文章

  1. linux删除文件后磁盘空间未释放的问题

    很可能是该文件还被其它进程使用. 使用: lsof | grep deleted | grep $FILE_NAME 可以看到正使用该文件的进程,将之kill即可.也可以查看进程来验证: ls -l ...

  2. linux删除文件后,空间未释放的一种情况,使用lsof查看

    linux某个目录空间快满了,删除了若干的文件后,使用df -h显示还是快满的,但是df -h *显示的总的文件大小又没那么大. 某个进程正在使用删除的文件,导致删除后,空间仍然不能释放. 查看rm掉 ...

  3. 【linux】Linux删除文件后磁盘依旧占用空间的问题

    转自https://blog.51cto.com/2483526/798379 感谢 1.用df 检查发现/根目录可用空间为0 [root@/]#df -h 2.用du检查发现各目录占用的空间都很少, ...

  4. 解决linux删除文件后空间没有释放问题

    linux删除文件后沒有释放空间 今天发现一台服务器的home空间满了,于是要清空没用的文件,当我删除文件后,发现可用空间沒有变化 os:centos4.7 现象: 发现当前磁盘空间使用情况: [ro ...

  5. Linux 删除文件后空间不释放【原创】

    删除MySQL备份文件后,查找文件所在目录发现文件已经备删除了,但是空间没有释放,还是83% 解决方法: lsof|grep -i delete 发现进程还在,杀掉进程 kill -9 5377 再次 ...

  6. 关于mongodb删除集合后磁盘空间不释放的问题

    mongodb删除集合后磁盘空间不释放,只有用db.repairDatabase()去修复才能释放. 但是在修复的过程中如果出现了非正常的mongodb的挂掉,再次启动时启动不了的,需要先修复才可以, ...

  7. MySQL删除数据后磁盘空间的释放情况【转】

    OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删除操作后在数据文件中留下碎片所致.OPTIMIZE TABLE 是指对表进行优化.如果已经删除 ...

  8. 【Linux命令】删除大文件后磁盘空间未释放问题

    前言 工作中经常遇到Linux系统磁盘空间不足,但是删除后较大的日志文件后,发现磁盘空间仍没有被释放,有点摸不着头脑,今天博主带大家解决这个问题. 思路 1.工作发现磁盘空间不足: 2.找到占用磁盘空 ...

  9. linux 删除文件后 df 查看磁盘空间并没有释放

    1.错误现象 Linux 磁盘空间总是报警,查到到大文件,删除之后,df看到磁盘空间并没有释放. 用du -sh ./* | sort -nr (查看当前目录下文件的大小)通过查找了下发现文件被mys ...

随机推荐

  1. Docker(四):Docker安装Redis

    查找Redis镜像 镜像仓库 https://hub.docker.com/ 下拉镜像 docker pull redis 查看镜像 docker images 创建Redis容器 运行Redis镜像 ...

  2. 用DirectX12实现Blinn Phong

    这次我们来用DirectX12实现一下基本的Blinn Phong光照模型.让我们再把这个光照模型的概念过一遍:一个物体的颜色由三个因素决定:ambient, diffuse, specular.am ...

  3. Docker被替代 PodMan成为程序员新宠

  4. Python字符串常用的一些东西

    字符串的常用方法dir(str).查看某一方法的用法help(str.xxx). 1,索引和切片: 2,len():查看字符串的总长度. 3,+,拼接一个或多个字符串. 4,in,判定字符是否在字符串 ...

  5. 浅入kubernetes(1):Kubernetes 入门基础

    目录 Kubernetes 入门基础 Introduction basic of kubernetes What Is Kubernetes? Components of Kubernetes Kub ...

  6. 如果对象为空,java函数String.valueOf(Object obj)返回"null"字符串

    源码如下: public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toStr ...

  7. JDBC数据连接之增删改查MVC

    每天叫醒自己的不是闹钟,而是梦想 conn层 package conn; import java.sql.Connection; import java.sql.DriverManager; impo ...

  8. Docker下配置KeepAlive支持nginx高可用

    案例子任务一.安装配置keepalived 步骤1:使用nginx镜像生成nginx-keep镜像 1) 启动nginx容器并进入 docker run -d --privileged nginx / ...

  9. Linux 路由 静态路由

    Linux 路由 静态路由 目录 Linux 路由 静态路由 一.临时生效,使用命令route A.添加到主机的路由 B.添加到网络的路由 C.添加默认路由 D.删除路由 E.查看所有路由信息 二.临 ...

  10. 设计模式之SOLID原则

    介绍 设计模式中的SOLID原则,分别是单一原则.开闭原则.里氏替换原则.接口隔离原则.依赖倒置原则.前辈们总结出来的,遵循五大原则可以使程序解决紧耦合,更加健壮. SRP 单一责任原则 OCP 开放 ...