首页天道酬勤oracle空间满了该删哪些文件,oracle 增加表空间

oracle空间满了该删哪些文件,oracle 增加表空间

张世龙 05-04 05:05 52次浏览

linux删除oracle表空间文件后,不会释放空间

2014-10-20

linux删除oracle表空间文件后,不会释放空间

[ Oracle @ server 140数据8 ] $ df-h/data 8

filesystemsizeusedavailuse % mounted on

/dev/sda3 414G 375G 19G 96% /data8

[ Oracle @ server 140数据8 ] $ du-sh/data 8

57G /data8

磁盘空间未释放的原因:

在Linux或Unix系统上,在rm或文件管理器中删除文件会断开与文件系统目录结构的链接。 但是,如果文件已打开,并且正在使用一个进程,则仍然可以

读取此文件时,磁盘空间也一直被占用。 我删除的应该是oracle警告日志文件被删除时文件正在使用

如何释放进程?

一种方法是kill相应的进程,或停止使用此文件的APP应用程序,以便操作系统自动回收磁盘空间

我的环境中有许多进程使用的这个文件,停止进程有点麻烦,而且风险更大

当linux打开文件时,linux内核会为每个进程在/proc/『/proc/nnnn/fd/目录(nnnn为pid )”中创建其pid

名为的目录用于存储有关进程的信息,该子目录fd存储打开进程的所有文件的FD (FD )。

kill进程通过截断proc文件系统中的文件,强制系统重用分配给正在使用的文件。

这是只有在管理员确定不影响正在运行的进程时才使用的高级技术。 我们的APP应用程序向这种人

公式支持不好。 如果正在使用的文件被截断,则可能会发生意外问题

所以我还是采用停止和解决APP应用

restart oracle数据库,发现释放了相应的空间

例如

[ Oracle @ server 140~] $ lsof|grep deleted|grep 201406

Oracle 15718 Oracle 26 ureg 8,3437549957123801090/data8/Oracle/viewer _ data _ ts _ 201406 _1. DBF (已删除) )。

Oracle 15718 Oracle 28 ureg 8,3405337702403801091/data8/Oracle/viewer _ data _ ts _ 201406 _2. DBF (已删除) )。

Oracle 28836 Oracle 62 ureg 8,3437549957123801090/data8/Oracle/viewer _ data _ ts _ 201406 _1. DBF (已删除) )。

Oracle 28836 Oracle 63 ureg 8,3405337702403801091/data8/Oracle/viewer _ data _ ts _ 201406 _2. DBF (

Oracle 28838 Oracle 62 ureg 8,3437549957123801090/data8/Oracle/viewer _ data _ ts _ 201406 _1. DBF (已删除) )。

Oracle 28838 Oracle 63 ureg 8,3405337702403801091/data8/Oracle/viewer _ data _ ts _ 201406 _2. DBF (

cd /proc/15718/fd|grep 201406

ll

lwx---1 Oracle oinstall 64 oct 201233603726---- data8/Oracle/viewer _ data _ ts _ 201406 _1. DBF (

lwx---1 Oracle oinstall 64 oct 201233603728---data8/Oracle/viewer _ data _ ts _ 201406 _2. DBF (

重新启动连接的服务后进行处理

相关日志

oracle怎么查看表空间,oracle 扩展表空间