Resumable Space Alocation

Resumable Space Allocation è una caratteristica del database Oracle che permettere di sospendere un operazione che crea una criticità di occupazione di spazio. Viene tracciato un messaggio di errore nell'alert log  e la transazione contenente lo statement sospeso è sospesa fino a quando il DBA non risolvere il problema. Dopodiché il sistema in automatico recupera l'operazione sospesa.

Come si abilita?
 Impostando un valore diverso da 0 del parametro di inizializzazione resumable_timeout.
1) A livello di istanza
alter system set resumable_timeout=600 scope=both;

Vuol dire che l'operazione è sospesa per 10 min ed entro questo temo deve essere risolto il problema altrimenti l'operazione sarà abortita.

2)A livello di sessione
Alter session enable resumable;
alter session set resumable_timeout=600;
oppure
exec dbms_resumable.SET_TIMEOUT (6000);

Verifica
select dbms_resumable.get_timeout from dual;

Una volta abilitata questa feature, un oggetto è sospeso se supera la quota ad esso associato o raggiunge il massimo numero di extents.
Gli oggetti impattati sono:
- tables
- indexes
- temporary segments
- undo segments
- large objects (LOBs)
- clusters
- table o index partitions

Gli statements che possono essere recuperati sono i seguenti:
INSERT, UPDATE, DELETE, INSERT INTO…SELECT
Export/import
SQL*Loader
SELECT statements that run out of sort area temporary space
CREATE TABLE AS SELECT
CREATE INDEX
CREATE MATERIALIZED VIEW
CREATE MATERIALIZED VIEW LOG
ALTER TABLE MOVE PARTITION
ALTER TABLE SPLIT PARTITION
ALTER INDEX REBUILD
ALTER INDEX REBUILD PARTITION
ALTER INDEX SPLIT PARTITION


La seguente vista contiene informazioni degli statements che sono sospesi o che sono in running.
select * from user_resumable;

La colonna NAME contiene l'informazione della sessione che è abilitata per "resumable space allocation".

Anche la vista dinamica V$SESSION_WAIT è utile per individuare gli statement sospesi per una sessione.


Post popolari in questo blog

Create e Drop Pluggable Database

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione