could anybody gime a shell script that i can run through crontab or at command of nt so that it can colasce free space in tablespaces and colasce it say every friday.
can anbody also give me a an example how this can be done through DBMS_JOB utility.
i am runing 8i on linux and NT
thanks in advance
Why don't you just switch to localy managed tablespaces and forget about coalescing.....
ASCII a stupid question, get a stupid ANSI
24 hours in a day .... 24 beer in a case .... coincidence?
at present there are some databses running on oarcle 8 to i forgot to mention that sorry folks
or use uniform extent size and forget about coalescing
There you go: Jmodic's advise, the best to reduce the pain on your head from day to day tasks.
Itsn't that difficult write one on your own. All you need to do is:
Set up oracle_home and oracle_sid in shell script and call the sql script as follows.
setenv ORAENV_ASK NO
setenv ORACLE_SID xyz
sqlplus -s abc/**** @coal_tbs.sql
set echo off
set feedback off
set heading off
select 'alter tablespace '||tablespace_name||' coalesce ;' from dba_tablespaces;
set feedback on
set echo on
There is a limitation in Oracle that if u do coalesce once, it may not squeeze through whole of the tablespace, u have to more than once for it to squeeze.
If tablespace is large, it might take long time and high CPU usage to coalesce.
Now which tablespace u want to coalesce,table or index.
Table: As said before in thread, design tablespace and table locations accordingly and put uniform extent size for all tables on a particular tablespace.
Or put pctincrease 1% at tablespace level for smon to work and during table creation put pctincrease as 0% or as reqd.
Test locally managed tablespace before use, there are few bugs in 8.1.6.
That 1% PCTINCREASE leads to fragmentatiom as you know!
What is locally managed tablespaces and how do you test it?
A locally managed tablespace uses bitmaps to track extent information, instead of dictionary tables (available only on Oracle 8i). Since Oracle itself manages the extents, you don't have to worry about coalescing. LMT's also reduces the access to dictionary tables, improving performance of the database. It could be a good idea to adopt this feature, but I don't know if it is possible to change your Dictionary-Managed to a Locally-Managed-Tablespace. Probably you'd have to re-create it. Could anyone confirm that?
Maybe you should also consider the use of uniform extents and/or PCTINCREASE 0, to reduce fragmentation and the need of coalescing.
Click Here to Expand Forum to Full Width