Several very large files are held open by processes, that called unlink() on the file after it was opened. They keep the file open. This is an old UNIX security trick. The data and inode persist so the process can use the file; but the directory entry does not persist; so df sees the used space, du does not see it.
The mountpoint was a directory with large files in it. You can mount a filesystem on top of a directory. The directory is not lost it is just buried alive so to speak. The directory and files continue to use space and will magically reappear when the filesystem is unmounted.
Paste the output of df -g , you need to know is it a directory or filesystem.
It could be any of the reason Jim mentioned in 1st line
If it is a file system and no one is using it you can try umount/mount 'ing it.
Else for both directory or filesystem you can use the below. fuser -cu <path> , it will report any open files and also (-u) flag will list the user.
You can kill it using -k flag.
"released" implies you deleted things and expect their space back. If they were open files, they will remain on disk until whatever was using them lets them close.
Ok,
We were talking about "Grid_11203", now we know its a directory, so run fuser -cu /oragrid_01/Grid_11203 , now do you see any user have open files in here.
You cannot unmount that file system as oracle is using it, to do that you have to shutdown the grid.
But, you have to be sure that you can bring it down without causing havoc in the environment.
The grid is already down for maintenance activity.Now,all the fuser sessions that I can see are just the session logins pls see the output in
ps -ef|grep process_id
These are just the sessions which are logged in once and while unmount problem is that the session through which I am connecting is also coming in fuser command so how can I kill that and if I kill that how would I issue unmount command.
Ok,
Close the other sessions if they are not required or least change the directory (say, go to default home directory of oracle). Nevertheless if you want to kill all the other sessions look below for fuser command fuser -cuk /oragrid_01/Grid_11203 , this will kill all the user sessions and open files used by user in the directory.
Make sure you run the above command from a different directory (as root and not as oracle).
Run df -g , if you still see the space occupied unmount/mount the filesystem it should resolve the problem.
The * in the du arguments won't show hidden files and directories, add .* to the arguments.
At least there will be the OPatch hidden storage directory.
Edit: I've just read that the application processes are down for maintenance.
Does this mean that .patch_storage occupies 39 GB and does this increase every time when we attempt applying the patch even in an unsuccessful attempt?
Yes, it does.
This is due to a bug on AIX. Check the following MOS note
FAQ: OPatch/Patch Questions/Issues for Oracle Clusterware (Grid Infrastructure or CRS) and RAC Environments (Doc ID 1339140.1)
search for: OPatch reports: "Prerequisite check CheckSystemSpace failed".