Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

oracle 10g temp01.dbf 15 GB

190 views
Skip to first unread message

Rafii

unread,
May 26, 2008, 9:39:11 AM5/26/08
to
Witam

jak w temacie mam baze danych Oracle 10g przestrzeń TEMP rozszerzyła juz
plik temp01.dbf do 15GB

jak to powstrzymac on jest autoextend z max size unlimited
a właściwie jak zmniejszeyć jego rozmiar

przestrzeń ta nie jest wykorzystywana

Pozdrawiam
-----------------------------------------------------------
Rafał Kulczyński


Marcin Wróblewski

unread,
May 26, 2008, 12:46:12 PM5/26/08
to
Rafii pisze:


A jaki był powód, że się tak rozszerzyła? Chodzi mi o to, że skoro się
tak rozrosła, to pewnie sytuacja się powtórzy. Zmienisz rozmiar,
wyłączysz autoextend i zaczną ci lecieć ORA-1652. No - chyba że wiesz co
robisz.
Skoro pytasz, jak zmniejszyć, to może coś takiego zadziała:

ALTER DATABASE TEMPFILE 'filename' RESIZE size_clause
/

dap997

unread,
May 26, 2008, 4:26:24 PM5/26/08
to
> A jaki był powód, że się tak rozszerzyła? Chodzi mi o to, że skoro się
> tak rozrosła, to pewnie sytuacja się powtórzy. Zmienisz rozmiar,
> wyłączysz autoextend i zaczną ci lecieć ORA-1652. No - chyba że wiesz co
> robisz.
> Skoro pytasz, jak zmniejszyć, to może coś takiego zadziała:
>
> ALTER DATABASE TEMPFILE 'filename' RESIZE size_clause
> /


Aby zobaczyć co się dzieje można użyć np. takiego zapytania.

select tsu.blocks, sq.sql_text, tsu.*
from v$tempseg_usage tsu, v$sql sq
where tsu.SQLADDR = sq.ADDRESS
order by 1 desc ;

Pozdrawiam
dap

Rafii

unread,
May 27, 2008, 2:00:49 AM5/27/08
to

Użytkownik "dap997"

Witam

dla tego zapytania wynik jest pusty

jak robiłem ALTER DATABASE TEMPFILE 'D:\oracle\oradata\temp01.dbf' RESIZE
8G

błąd ORA-03297 plik zawiera używane dany poza żądaną wartością RESIZE :(

Pozdrawiam


Rafii

unread,
May 27, 2008, 2:21:22 AM5/27/08
to
> Witam
>
> dla tego zapytania wynik jest pusty
>
> jak robiłem ALTER DATABASE TEMPFILE 'D:\oracle\oradata\temp01.dbf'
> RESIZE
> 8G
>
> błąd ORA-03297 plik zawiera używane dany poza żądaną wartością RESIZE :(
>
> Pozdrawiam
Witam

Mam pytanie kończy mi sie miejsce na serwerze na dysku z danymi zostało 1,5
GB z 48 GB
co lepiej zrobić?
- dołożyć dysk i tam dodać nowy plik temp02.dbf dla przestrzeni TEMP
- zamapować dysk kompa w sieci i tam umieścić ten plik? (Pytanie jak by sie
ten komp w sieci zrestartował co wtedy?)

P.S jak dodam drugi plik dla przestrzeni TEMP to rozumiem ze w pierwszym
musze przez alter wyłączyć autoextend ?

Pozdrawiam


Lucyna Witkowska

unread,
May 27, 2008, 6:36:20 AM5/27/08
to
Rafii <raf...@op.pl> napisał:

> > jak robiłem ALTER DATABASE TEMPFILE 'D:\oracle\oradata\temp01.dbf'
> > RESIZE
> > 8G
> >
> > błąd ORA-03297 plik zawiera używane dany poza żądaną wartością RESIZE :(

No bo on sie sam rozszerzal - i sa tam zaalokowane segmenty.

> Mam pytanie kończy mi sie miejsce na serwerze na dysku z danymi zostało 1,5
> GB z 48 GB
> co lepiej zrobić?
> - dołożyć dysk i tam dodać nowy plik temp02.dbf dla przestrzeni TEMP
> - zamapować dysk kompa w sieci i tam umieścić ten plik? (Pytanie jak by sie
> ten komp w sieci zrestartował co wtedy?)
> P.S jak dodam drugi plik dla przestrzeni TEMP to rozumiem ze w pierwszym
> musze przez alter wyłączyć autoextend ?

Jak TEMP bedzie miał zaalokowana nowy plik, to raczej nie bedzie
poszerzal starego pliku, ale mozna tak zrobic.
Tylko jak dla mnie 15GB przestrzeni TEMP dla 30GB bazy to troche za duzo.

Jesli to byl incydent i tak naprawde nie potrzeba takiego pliku - mozna
rozwazyc utworzenie nowej przestrzeni TEMP1 z "normalym" rozmiarem,
zmianę przestrzeni temp dla kazdego uzytkownika i usuniecie starej, zbyt
duzej przestrzeni.

Pozdrowienia,
LW

Rafii

unread,
May 27, 2008, 9:19:15 AM5/27/08
to


Witam

Znalazłem takie rozwiazanie, co wy na to?

Drop Tempfile Command Method - (Oracle9i and higher)

If you are using Oracle9i or higher, another method exists that allows you
to simply drop a tempfile. As with the above method, this should be
performed during off hours with no users logged on performing work.
The first step is to obtain the name of the tempfile to drop. For this
example, my temporary tablespace name is TEMP and the name of the tempfile
is /u02/oradata/TESTDB/temp2_01.dbf:

SQL> SELECT tablespace_name, file_name, bytes
2 FROM dba_temp_files WHERE tablespace_name = 'TEMP';

TABLESPACE_NAME FILE_NAME BYTES
----------------- -------------------------------- --------------
TEMP /u02/oradata/TESTDB/temp01.dbf 13,107,200,000The normal
size of my temporary tablespace is 512MB which has always been more than
adequate for this environment. A bad query, however, increased the size of
this tablespace (my tempfile) to over 13GB and I would like to reclaim that
space. In the example below, I simply drop and recreate the tempfile:
SQL> ALTER DATABASE TEMPFILE '/u02/oradata/TESTDB/temp01.dbf' DROP INCLUDING
DATAFILES;

Database altered.


SQL> ALTER TABLESPACE temp ADD TEMPFILE '/u02/oradata/TESTDB/temp01.dbf'
SIZE 512m
2 AUTOEXTEND ON NEXT 250m MAXSIZE UNLIMITED;

Tablespace altered.


d'plus

unread,
May 27, 2008, 10:15:10 AM5/27/08
to
Rafii pisze:

chyba to jedyne rozwiązanie. oracle niestety jest na tyle głupi (albo ja
czegoś nie wiem), że może być nawet jeden blok w obszarze o który chcesz
zmniejszyć wielkość, a i tak nie zmniejszysz. powiem więcej - tabela
systemowa w jakiś dziwny sposób jest zapisywana wlasnie od tej strony od
której wykonane byłoby zmniejszanie, więc jesli zwiększysz za bardzo
tablespace systemowy to tylko reinstalacja oracle ci pomoże.

to są moje doświadczenia - chciałbym żeby ktoś by im zaprzeczył...

--
http://www.oln.pl/ - olsztyńska galeria internetowa
http://www.limuzyny.ketrzyn.pl - limuzyny do wynajęcia - warmia i mazury

0 new messages