Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Riduzione delle tablespace in RDS per Oracle
A partire da Oracle Database 26ai (26.0.0.0), Amazon RDS for Oracle supporta la riduzione del tablespace con questa procedura. rdsadmin.rdsadmin_util.shrink_tablespace Utilizza questa procedura per recuperare lo spazio inutilizzato in una tablespace comprimendone i file di dati. La riduzione riduce il consumo di storage senza la migrazione dei dati o la ricreazione del tablespace.
Panoramica di
Nel tempo, le tablespace di un database Oracle possono accumulare spazio inutilizzato dai dati eliminati o riorganizzati. La rdsadmin.rdsadmin_util.shrink_tablespace procedura include la DBMS_SPACE.SHRINK_TABLESPACE funzionalità Oracle e gestisce i privilegi interni richiesti per l'utente.
La riduzione del tablespace supporta le seguenti modalità:
-
Modalità di analisi (
DBMS_SPACE.TS_MODE_ANALYZE): valuta il tablespace e segnala quanto spazio è possibile recuperare, senza apportare modifiche. -
Shrink mode (
DBMS_SPACE.TS_MODE_SHRINK): sposta gli oggetti e ridimensiona i file di dati nel tablespace per recuperare lo spazio inutilizzato. Questa è la modalità predefinita.
Requisiti
Per utilizzare la riduzione del tablespace, l'istanza DB deve soddisfare i seguenti requisiti:
-
Oracle Database 26ai o versioni successive
-
Oracle Enterprise Edition
Sintassi
EXEC rdsadmin.rdsadmin_util.shrink_tablespace( p_tablespace_name => 'tablespace_name', p_shrink_mode =>mode, p_target_size =>target_bytes);
Parameters
| Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione |
|---|---|---|---|---|
|
|
|
— |
Sì |
Il nome del tablespace da ridurre. |
|
|
|
|
No |
La modalità di compattazione. Utilizzate |
|
|
|
|
No |
La dimensione di destinazione, in byte. Usa |
Esempi
Analisi di una tablespace alla ricerca di spazio recuperabile
Per analizzare un tablespace senza apportare modifiche, esegui il comando seguente:
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS', DBMS_SPACE.TS_MODE_ANALYZE);
Di seguito è riportato un output di esempio:
-------------------ANALYZE RESULT------------------- Total Movable Objects: 0 Total Movable Size(GB): 0 Original Datafile Size(GB): .1 Suggested Target Size(GB): .06 Process Time: +00 00:00:00.021513
Riduzione di una tablespace alla dimensione minima
Per ridurre un tablespace e recuperare tutto lo spazio inutilizzato, esegui il comando seguente:
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS');
Di seguito è riportato un output di esempio:
-------------------SHRINK RESULT------------------- Total Moved Objects: 0 Total Moved Size(GB): 0 Original Datafile Size(GB): .1 New Datafile Size(GB): .05 Process Time: +00 00:00:00.281151
Riduzione di un tablespace a una dimensione di destinazione specifica
Per ridurre un tablespace a una dimensione target in byte, specificate il parametro. p_target_size Se l'obiettivo è inferiore alla dimensione minima raggiungibile, Oracle lo regola automaticamente verso l'alto:
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS', DBMS_SPACE.TS_MODE_SHRINK, 52428800);
Considerazioni
Quando compatti una tablespace, considera quanto segue:
-
La riduzione del tablespace è un'operazione online. Gli oggetti nel tablespace rimangono accessibili durante la compressione.
-
L'operazione di compattazione può spostare oggetti, come tabelle e indici, all'interno del tablespace per consolidare lo spazio libero prima di ridimensionare i file di dati.
-
Gli indici rimangono validi dopo l'operazione di compattazione e l'integrità dei dati viene preservata.
-
Se il valore di
p_target_sizeè inferiore allo spazio occupato attualmente dagli oggetti, Oracle regola l'obiettivo alla dimensione minima raggiungibile. -
Il valore di non
p_target_sizedeve superare la dimensione corrente del tablespace. Specificate un obiettivo inferiore o uguale alla dimensione corrente. -
Le transazioni attive sugli oggetti nella tablespace potrebbero impedire all'operazione di recuperare tutto lo spazio disponibile. Per ottenere risultati ottimali, esegui lo shrink durante un periodo di bassa attività.
-
Le chiamate
DBMS_SPACE.SHRINK_TABLESPACEdirette senza ilrdsadmin_utilwrapper non sono supportate. Usa sempre il wrapper.rdsadmin.rdsadmin_util.shrink_tablespace
Risorse correlate
-
DBMS_ SPACE.SHRINK _TABLESPACE
nella documentazione di Oracle Database -
Per ulteriori informazioni, consulta Esecuzione di attività di database comuni per le istanze database Oracle.