Come possiamo ridurre il tablespace temp in oracle? E perché aumenta così tanto fino a 25 GB dato che c'è un solo schema nel database per l'applicazione e la dimensione del tablespace dati è di 2 GB e la dimensione del tablespace dell'indice è di 1 GB.Come ridurre il tablespace temporaneo in oracle?
risposta
Oh mio Dio! Guarda le dimensioni del mio spazio tavolo temporaneo! Oppure ... come ridurre i tablespace temporanei in Oracle.
Sì ho eseguito una query per vedere quanto è grande la mia tabelle temporaneo è:
SQL> SELECT tablespace_name, file_name, bytes
2 FROM dba_temp_files WHERE tablespace_name like 'TEMP%';
TABLESPACE_NAME FILE_NAME BYTES
----------------- -------------------------------- --------------
TEMP /the/full/path/to/temp01.dbf 13,917,200,000
La prima domanda che dovete porre è il motivo per cui lo spazio tabella temporanea è così grande. Potresti conoscere la risposta a questa domanda. Potrebbe essere dovuto a una query di grandi dimensioni che si è appena eseguita con un tipo che è stato un errore (l'ho fatto più di una volta in questo ). Potrebbe essere dovuto a qualche altra circostanza eccezionale. Se questo è allora tutto quello che devi fare per pulire è ridurre il tablespace temporaneo e andare avanti nella vita.
Ma cosa succede se non lo sai? Prima di decidere di ridurre, potrebbe essere necessario effettuare qualche indagine su nelle cause del tablespace di grandi dimensioni. Se ciò accade su base regolare , è possibile che il tuo database abbia solo bisogno di molto spazio.
La vista dinamica
V$TEMPSEG_USAGE
può essere molto utile per determinare la causa.
Forse non ti interessa la causa e devi solo ridurla. Questo è il tuo terzo giorno di lavoro. I dati nel database sono solo 200MiB se i dati e il tablespace temporaneo sono 13GiB - Basta ridurli e andare avanti. Se ricresce, esamineremo la causa. Nel frattempo sono di spazio su quel volume del disco e ho solo bisogno di spazio indietro.
Diamo un'occhiata a restringerlo. Dipenderà un po 'dalla versione di Oracle in esecuzione e da come è stato impostato lo spazio tabelle temporaneo.
Oracle farà del suo meglio per impedirti di commettere errori orribili quindi proverò semplicemente i comandi e se non funzionano ridurremo in un modo nuovo.
Prima proviamo a ridurre il file di dati. Se riusciamo a farlo, torniamo nello spazio e possiamo preoccuparci perché è cresciuto domani.
SQL>
SQL> alter database tempfile '/the/full/path/to/temp01.dbf' resize 256M;
alter database tempfile '/the/full/path/to/temp01.dbf' resize 256M
*
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value
A seconda del messaggio di errore che si potrebbe desiderare di provare questo con dimensioni diverse che sono più piccoli rispetto al sito attuale del file. Ho avuto il successo limitato con questo. Oracle ridurrà il file solo se lo spazio tabelle temporaneo si trova all'inizio del file e se è inferiore alla dimensione specificata da . Alcuni vecchi documenti Oracle (hanno corretto questo) hanno detto che è possibile emettere il comando e il messaggio di errore indica quale dimensione si può ridurre. Quando ho iniziato a lavorare come DBA, questo era non vero.Devi solo indovinare e rieseguire il comando un paio di volte e vedere se ha funzionato.
OK. Non ha funzionato. Cosa ne pensi di questo.
SQL> alter tablespace YOUR_TEMP_TABLESPACE_NAME shrink space keep 256M;
Se siete in 11g (anche Maybee in 10g) è questo! Se funziona, potresti voler per tornare al comando precedente e dargli altri tentativi.
Ma cosa succede se ciò non riesce. Se il tablespace temporaneo è il valore predefinito temporaneo impostato al momento dell'installazione del database, potrebbe essere necessario eseguire un ulteriore lavoro di . A questo punto di solito rivalutare se ho davvero bisogno di quello spazio indietro. Dopo tutto lo spazio su disco costa solo $ X.XX a GiB. Di solito non voglio per apportare modifiche come questa durante le ore di produzione. Ciò significa che lavoriamo alle 2:00 ANCORA! (Non che io obietti davvero a di lavorare alle 2:00 - è solo che ... Beh, mi piace dormire anche io e mia moglie piace avere me a casa alle 2 del mattino ... non girovagando per le strade del centro alle 4 del mattino cercando per ricordare dove ho parcheggiato la mia auto 3 ore prima ho sentito parlare di quella cosa "telelavoro" . Mi preoccupo solo di arrivare a metà e poi la mia connettività internet fallirà - quindi devo correre in centro per sistemarlo tutto prima gente mostrate nella mattino per utilizzare il database.)
Ok ... Torna alla roba seria ... Se lo spazio tabella temporanea che si desidera ridurre è il vostro difetto tabelle temporaneo, si dovrà per prima cosa creare un nuovo tablespace temporaneo , impostalo come spazio tabella temporaneo predefinito, quindi elimina il tuo vecchio tablespace temporaneo predefinito e lo ricrea. Afterwords rilasciare la seconda tabella temporanea creata.
SQL> CREATE TEMPORARY TABLESPACE temp2
2 TEMPFILE '/the/full/path/to/temp2_01.dbf' SIZE 5M REUSE
3 AUTOEXTEND ON NEXT 1M MAXSIZE unlimited
4 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
Tablespace created.
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;
Database altered.
SQL> DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;
Tablespace dropped.
SQL> CREATE TEMPORARY TABLESPACE temp
2 TEMPFILE '/the/full/path/to/temp01.dbf' SIZE 256M REUSE
3 AUTOEXTEND ON NEXT 128M MAXSIZE unlimited
4 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
Tablespace created.
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
Database altered.
SQL> DROP TABLESPACE temp2 INCLUDING CONTENTS AND DATAFILES;
Tablespace dropped.
Speriamo che una di queste cose possa essere d'aiuto!
Solo una nota: SHRINK SPACE è introdotto in 11g e non è disponibile in 10g. Grazie per un approfondito resoconto di tutte le opzioni! –
Molti post e articoli su Internet suggeriscono procedure molto complicate. Questo è stato il più semplice che ho trovato! –
Grazie mille per questa spiegazione e soluzione chiara e precisa. È la migliore trovata finora su Internet. –
alter database datafile 'C:\ORA_SERVER\ORADATA\AXAPTA\AX_DATA.ORA' resize 40M;
Se non aiuta:
- Crea nuovo spazio tabelle
- Passa alla nuova tabella temporaneo
- Attendere vecchio tablespace non verrà utilizzato
- eliminare i vecchi tabelle
Le opzioni per la gestione di tablespa ces sono migliorati rispetto alle versioni che iniziano con 8i. Ciò è particolarmente vero se si utilizzano i tipi appropriati di file per un tablespace temporaneo (ad esempio i tempfile gestiti localmente).
Quindi, potrebbe essere semplice come questo comando, che si ridurrà la vostra tabella fino a 128 meg ...
alter tablespace <your_temp_ts> shrink space keep 128M;
La documentazione in linea di Oracle è abbastanza buono. Find out more.
modificare
Sembrerebbe l'OP ha una versione precedente del database. Con le versioni precedenti dobbiamo ridimensionare i singoli file di dati. Quindi, prima di tutto, trova i nomi dei file. Una o l'altra di queste query dovrebbe farlo ...
select file_name from dba_data_files where tablespace_name = '<your_temp_ts>'
/
select file_name from dba_temp_files where tablespace_name = '<your_temp_ts>'
/
quindi utilizzare tale percorso in questo comando:
alter database datafile '/full/file/path/temp01.dbf' resize 128m
/
SQL> alter tablespace temp shrink space keep 128M; alter tablespace temp shrink space keep 128M * ERRORE alla riga 1: ORA-02142: mancante o non valido Opzione ALTER TABLESPACE –
Sarà in aumento perché avete bisogno di spazio di memorizzazione temporanea, forse a causa ad un prodotto cartesiano o ad una grande operazione.
La vista prestazioni dinamiche V$TEMPSEG_USAGE
consente di diagnosticare la causa.
Visualizzerà dopo l'uso? –
Non dovrei pensarlo. –
Un altro motivo potrebbe essere l'utilizzo intensivo di tabelle temporanee globali. –
Dovresti aver scritto quale versione di Oracle utilizzi. Molto probabilmente usi qualcos'altro oltre a Oracle 11g, ecco perché non puoi ridurre un tablespace temporaneo.
Alternative:
1) alter database tempfile '[your_file]' resize 128M;
che sarà probabilmente fallirà
2) eliminare e ricreare lo spazio tabella. Se il tablespace temporaneo che desideri ridurre è il tablespace temporaneo predefinito, potresti dover creare prima un nuovo tablespace temporaneo, impostarlo come spazio tabella temporaneo predefinito, quindi eliminare il vecchio tablespace temporaneo predefinito e ricrearlo. Successivamente rilasciare la seconda tabella temporanea creata. 3) Per Oracle 9i e superiori si può solo cadere il tempfile (s) e aggiungere uno nuovo (s)
Tutto è descritto here in grande dettaglio.
Vedere questo link: http://databaseguide.blogspot.com/2008/06/resizing-temporary-tablespace.html
E 'stato già collegato, ma forse vi siete persi, ecco che è nuovo.
non si preoccupano a cadere la temperatura si alternano nel caso in cui ho bisogno di recuperare di nuovo stoccaggio in futuro ...
- dal SET TEMP gruppo predefinito di stand-alone temperatura
- aspettare un po ', quindi ridimensionare i membri del gruppo temporaneo
- impostare il valore predefinito su gruppo temporaneo
- attendere un po ', ridimensionare stand alone temp. non c'è fretta di fare l'ultimo passo
- 1. shrink tablespace permanente in oracle 11g
- 2. Hibernate Oracle Tablespace Annotazione
- 3. creare ed eliminare TABLESPACE Oracle
- 4. Oracle Tablespace maxsize "unlimited" non proprio illimitato
- 5. Oracle 11g - I segmenti dello spazio tabelle temporaneo non vengono rilasciati (bug Oracle?)
- 6. Come spostare la tabella da un tablespace a un altro in oracle 11g
- 7. Come impostare tablespace per @Entity?
- 8. Spazio tabelle temporaneo di CLOB non liberato
- 9. Un database Oracle può avere più di un tablespace per l'archiviazione dei dati?
- 10. nessun privilegio sul tablespace 'USERS'
- 11. PYTHONPATH temporaneo in Windows
- 12. Trova spazio libero sul tablespace
- 13. Creazione di una tabella da una query utilizzando un diverso tablespace (Oracle SQL)
- 14. Come forzare oracle a fare la cancellazione in cascata senza ridurre/ricreare i vincoli
- 15. Ridurre il buffering video
- 16. Oracle: creare un set di risultati temporaneo da utilizzare in una query
- 17. Come posso ridurre il numero di query?
- 18. Come ridurre il file Eclipse PDOM?
- 19. Come scaricare un file temporaneo
- 20. Come ridurre il file gulp-webpack?
- 21. Reindirizzamento temporaneo dell'ingresso in Bash
- 22. Come si può ridurre il ritardo del TypeText in Watin?
- 23. Come ridurre il numero di istruzioni if-else in PHP?
- 24. Come ridurre al minimo il tempo di compilazione in C++
- 25. Come ridurre al minimo il ritardo in streaming con ffmpeg
- 26. Come posso ridurre il pannello Timeline in Eclipse SDK?
- 27. Come ridurre un'istruzione logica?
- 28. Database vs tablespace, qual è la differenza?
- 29. Ridurre il se-dichiarazione stessa
- 30. come determinare la dimensione del tablespace oracolo 11g
Quale versione di Oracle? – BradC
Hai guardato la mia risposta e alla pagina a cui si collega? Mi chiedo cos'altro avresti bisogno. –