

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Réduction des espaces disque logiques dans RDS pour Oracle
<a name="Oracle.ShrinkTablespace"></a>

À partir d'Oracle Database 26ai (26.0.0.0), Amazon RDS for Oracle prend en charge la réduction de l'espace disque logique dans le cadre de cette procédure. `rdsadmin.rdsadmin_util.shrink_tablespace` Utilisez cette procédure pour récupérer l'espace inutilisé dans un tablespace en réduisant ses fichiers de données. La réduction réduit la consommation de stockage sans migration des données ni création de tablespaces.

**Topics**
+ [Présentation de](#Oracle.ShrinkTablespace.Overview)
+ [Exigences](#Oracle.ShrinkTablespace.Requirements)
+ [Syntaxe](#Oracle.ShrinkTablespace.Syntax)
+ [Parameters](#Oracle.ShrinkTablespace.Parameters)
+ [Exemples](#Oracle.ShrinkTablespace.Examples)
+ [Considérations](#Oracle.ShrinkTablespace.Considerations)
+ [Ressources connexes](#Oracle.ShrinkTablespace.Resources)

## Présentation de
<a name="Oracle.ShrinkTablespace.Overview"></a>

Au fil du temps, les espaces disque logiques d'une base de données Oracle peuvent accumuler de l'espace inutilisé à partir de données supprimées ou réorganisées. La `rdsadmin.rdsadmin_util.shrink_tablespace` procédure englobe les `DBMS_SPACE.SHRINK_TABLESPACE` fonctionnalités Oracle et gère les privilèges internes requis pour vous.

La réduction de l'espace disque logique prend en charge les modes suivants :
+ **Mode d'analyse** (`DBMS_SPACE.TS_MODE_ANALYZE`) : évalue l'espace disque logique et indique l'espace que vous pouvez récupérer, sans apporter de modifications.
+ **Mode de réduction** (`DBMS_SPACE.TS_MODE_SHRINK`) — Déplace les objets et redimensionne les fichiers de données dans le tablespace pour récupérer l'espace inutilisé. C'est le mode par défaut.

## Exigences
<a name="Oracle.ShrinkTablespace.Requirements"></a>

Pour utiliser la réduction de l'espace disque logique, votre instance de base de données doit répondre aux exigences suivantes :
+ Oracle Database 26ai ou supérieur
+ Oracle Enterprise Edition

## Syntaxe
<a name="Oracle.ShrinkTablespace.Syntax"></a>

```
EXEC rdsadmin.rdsadmin_util.shrink_tablespace(
  p_tablespace_name => '{{tablespace_name}}',
  p_shrink_mode     => {{mode}},
  p_target_size     => {{target_bytes}});
```

## Parameters
<a name="Oracle.ShrinkTablespace.Parameters"></a>


**paramètres shrink\_tablespace**  

| Nom du paramètre | Type de données | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | 
| `p_tablespace_name` | `VARCHAR2` | — | Oui | Nom du tablespace à réduire. | 
| `p_shrink_mode` | `NUMBER` | `2` (`TS_MODE_SHRINK`) | Non | Le mode rétrécissement. Utilisez `DBMS_SPACE.TS_MODE_ANALYZE` (`1`) pour analyser uniquement ou `DBMS_SPACE.TS_MODE_SHRINK` (`2`) pour effectuer le rétrécissement. | 
| `p_target_size` | `NUMBER` | `0` | Non | Taille cible, en octets. Utilisez `0` (valeur par défaut) pour réduire à la taille minimale possible. Spécifiez une valeur positive à réduire à une cible spécifique. | 

## Exemples
<a name="Oracle.ShrinkTablespace.Examples"></a>

### Analyse d'un tablespace pour trouver de l'espace récupérable
<a name="Oracle.ShrinkTablespace.Examples.Analyze"></a>

Pour analyser un tablespace sans apporter de modifications, exécutez la commande suivante :

```
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS', DBMS_SPACE.TS_MODE_ANALYZE);
```

Voici un exemple de sortie :

```
-------------------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
```

### Réduction d'un espace disque logique à sa taille minimale
<a name="Oracle.ShrinkTablespace.Examples.Minimum"></a>

Pour réduire un espace disque logique et récupérer tout l'espace inutilisé, exécutez la commande suivante :

```
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS');
```

Voici un exemple de sortie :

```
-------------------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
```

### Réduction d'un espace disque logique à une taille cible spécifique
<a name="Oracle.ShrinkTablespace.Examples.Target"></a>

Pour réduire un tablespace à une taille cible en octets, spécifiez le `p_target_size` paramètre. Si la cible est inférieure à la taille minimale réalisable, Oracle l'ajuste automatiquement à la hausse :

```
EXEC rdsadmin.rdsadmin_util.shrink_tablespace('USERS', DBMS_SPACE.TS_MODE_SHRINK, 52428800);
```

## Considérations
<a name="Oracle.ShrinkTablespace.Considerations"></a>

Lorsque vous réduisez un tablespace, tenez compte des points suivants :
+ La réduction de l'espace disque logique est une opération en ligne. Les objets du tablespace restent accessibles pendant le rétrécissement.
+ L'opération de réduction peut déplacer des objets, tels que des tables et des index, dans le tablespace afin de consolider l'espace libre avant de redimensionner les fichiers de données.
+ Les index restent valides après l'opération de réduction et l'intégrité des données est préservée.
+ Si la valeur de `p_target_size` est inférieure à l'espace occupé actuellement par les objets, Oracle ajuste la cible à la taille minimale réalisable.
+ La valeur de ne `p_target_size` doit pas dépasser la taille actuelle du tablespace. Spécifiez une cible inférieure ou égale à la taille actuelle.
+ Les transactions actives sur les objets du tablespace peuvent empêcher l'opération de récupérer tout l'espace disponible. Pour de meilleurs résultats, utilisez le rétracteur pendant une période de faible activité.
+ Les appels `DBMS_SPACE.SHRINK_TABLESPACE` directs sans le `rdsadmin_util` wrapper ne sont pas pris en charge. Utilisez toujours l'`rdsadmin.rdsadmin_util.shrink_tablespace`emballage.

## Ressources connexes
<a name="Oracle.ShrinkTablespace.Resources"></a>
+ [DBMS\_ SPACE.SHRINK \_TABLESPACE dans la documentation de la base](https://docs.oracle.com/en/database/oracle/oracle-database/26/arpls/DBMS_SPACE.html) de données Oracle
+ Pour de plus amples informations, veuillez consulter [Exécution des tâches de base de données courantes pour les instances de base de données Oracle](Appendix.Oracle.CommonDBATasks.Database.md).