Skip to main content

SPACE IS NOT GETTING RELEASED AFTER DROPPING DATA FILES IN LINUX MACHINE.



Please see below ...


We have encountered the below situation many times.

The space is not getting released after dropping the data files in LINUX machine.

 SQL> drop user TMP561 cascade;

SQL> drop tablespace TMP561 including contents and datafiles;

Note: The schema size is around 300Gig. And its having 11 datafiles each  data-file 30G.

But after dropping the User/Tbs. Space is not reclaimed in the Server.

SOLUTION:

After dropping the datafiles still one process is holding these files. Check like below


oracle@/oracle/tmp: /usr/sbin/lsof |grep deleted |grep TMP*

oracle    13683    oracle   17u      REG             253,16 33286004736   40550413 /user/TMP/TMP561_01.dbf (deleted)
oracle    13683    oracle   18u      REG             253,16 33286004736   40550414 /user/TMP/TMP561_02.dbf (deleted)
oracle    13683    oracle   20u      REG             253,16 32212262912  206487553 /user/TMP/TMP561_03.dbf (deleted)
oracle    13683    oracle   21u      REG             253,16 28183633920   40566785 /user/TMP/TMP561_04.dbf (deleted)
oracle    13683    oracle   22u      REG             253,16 24587214848  302956545 /user/TMP/TMP561_05.dbf (deleted)
oracle    25070    oracle   16u      REG             253,16 33286004736   40550413 /user/TMP/TMP561_06.dbf (deleted)
oracle    25070    oracle   17u      REG             253,16 33286004736   40550414 /user/TMP/TMP561_07.dbf (deleted)
oracle    25070    oracle   19u      REG             253,16 32212262912  206487553 /user/TMP/TMP561_08.dbf (deleted)
oracle    25070    oracle   20u      REG             253,16 28183633920   40566785 /user/TMP/TMP561_09.dbf (deleted)
oracle    25070    oracle   21u      REG             253,16 24587214848  302956545 /user/TMP/TMP561_10.dbf (deleted)

oracle    25070    oracle   21u      REG             253,16 24587214848  302956545 /user/TMP/TMP561_11.dbf (deleted)

The marked processes are still holding these datafiles. 

Kill those processes to re-claim the space in the server.

oracle@kill -9  13683

oracle@kill -9  25070

Alert Log shows like below:

oracle@ tail -f alert_HGU11.log
Immediate Kill Session: sess: 0x9ff8f060  OS pid: 13683
Thu Jan 15 22:51:11 PST 2015
Process OS id : 13683 alive after kill
Errors in file
Thu Jan 15 22:53:54 PST 2015
Immediate Kill Session#: 158, Serial#: 10
Immediate Kill Session: sess: 0x9ff8f060  OS pid: 13683
Thu Jan 15 22:53:55 PST 2015
Process OS id : 13683 alive after kill

SOLUTION 2:
Another way is to RESTART the database. To reclaim the space in the server.



Thank You!







Comments

Popular posts from this blog

ORA-39014: One or more workers have prematurely exited.ORA-00018: maximum number of sessions exceeded

ERROR: I was Performing a full database import and during the import I faced the below error. ORA-39014: One or more workers have prematurely exited. ORA-39029: worker 6 with process name "DW07" prematurely terminated ORA-31672: Worker process DW07 died unexpectedly. Job "SYSTEM"."SYS_IMPORT_FULL_04" stopped due to fatal error at 00:59:40 ORA-39014: One or more workers have prematurely exited. SOLUTION:  Run the import with fewer parallel processes, like PARALLEL=2 instead of 8. I was able to run the import successfully. NOTE 1: This errors occurs when there are less session allocation in the database. check the session,process parameters and increase them accordingly. To avoid such errors again. NOTE 2 : Note: Increasing processes parameter increases the amount of shared memory that needs to be reserved & the OS must be configured to support the larger amount of shared memory. So here we first need to increase the Memory & SG...

ORA-01143: cannot disable media recovery - file 1 needs media recovery

I got a request from the client - To flashback the database to the existing restore point & disable flashback and archive log mode for database UATB. Here I came a cross error - ORA-01143. I followed the below steps. 1. SQL> select name from v$database; NAME ------------ UATB 2. SQL> SELECT NAME FROM V$RESTORE_POINT WHERE GUARANTEE_FLASHBACK_DATABASE='YES' ORDER BY TIME; NAME --------- UATB_COPY Here I'm going to restore the database to the above restore point. NOTE: The flashback database restore has to be done in MOUNT stage of the database. SQL> select name from v$database; NAME --------- UATB SQL> shut immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area  612368384 bytes Fixed Size                  1250428 bytes Variable Size             167775108 bytes ...