

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verkleinern von Tablespaces in RDS für Oracle
<a name="Oracle.ShrinkTablespace"></a>

Ab Oracle Database 26ai (26.0.0.0) unterstützt Amazon RDS for Oracle das Verkleinern von Tablespaces mit diesem Verfahren. `rdsadmin.rdsadmin_util.shrink_tablespace` Verwenden Sie dieses Verfahren, um ungenutzten Speicherplatz in einem Tablespace zurückzugewinnen, indem Sie dessen Datendateien verkleinern. Durch das Verkleinern wird der Speicherverbrauch ohne Datenmigration oder Neuerstellung des Tablespaces reduziert.

**Topics**
+ [-Übersicht](#Oracle.ShrinkTablespace.Overview)
+ [Voraussetzungen](#Oracle.ShrinkTablespace.Requirements)
+ [Syntax](#Oracle.ShrinkTablespace.Syntax)
+ [Parameters](#Oracle.ShrinkTablespace.Parameters)
+ [Beispiele](#Oracle.ShrinkTablespace.Examples)
+ [Überlegungen](#Oracle.ShrinkTablespace.Considerations)
+ [Zugehörige Ressourcen](#Oracle.ShrinkTablespace.Resources)

## -Übersicht
<a name="Oracle.ShrinkTablespace.Overview"></a>

Im Laufe der Zeit können Tablespaces in einer Oracle-Datenbank ungenutzten Speicherplatz aus gelöschten oder reorganisierten Daten ansammeln. Das `rdsadmin.rdsadmin_util.shrink_tablespace` Verfahren umschließt die `DBMS_SPACE.SHRINK_TABLESPACE` Oracle-Funktionalität und erledigt die erforderlichen internen Rechte für Sie.

Tablespace Shrinking unterstützt die folgenden Modi:
+ **Analysemodus** (`DBMS_SPACE.TS_MODE_ANALYZE`) — Wertet den Tablespace aus und gibt an, wie viel Speicherplatz Sie zurückgewinnen können, ohne Änderungen vorzunehmen.
+ **Verkleinerungsmodus** (`DBMS_SPACE.TS_MODE_SHRINK`) — Verschiebt Objekte und ändert die Größe der Datendateien im Tablespace, um ungenutzten Speicherplatz zurückzugewinnen. Das ist der Standardmodus.

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

Um Tablespace Shrinking verwenden zu können, muss Ihre DB-Instance die folgenden Anforderungen erfüllen:
+ Oracle Database 2.6.ai oder höher
+ Oracle Enterprise Edition

## Syntax
<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>


**shrink\_tablespace-Parameter**  

| Parametername | Datentyp | Standard | Erforderlich | Beschreibung | 
| --- | --- | --- | --- | --- | 
| `p_tablespace_name` | `VARCHAR2` | — | Ja | Der Name des Tablespaces, der verkleinert werden soll. | 
| `p_shrink_mode` | `NUMBER` | `2` (`TS_MODE_SHRINK`) | Nein | Der Verkleinerungsmodus. Verwenden Sie `DBMS_SPACE.TS_MODE_ANALYZE` (`1`), um nur zu analysieren, oder `DBMS_SPACE.TS_MODE_SHRINK` (`2`), um das Verkleinern durchzuführen. | 
| `p_target_size` | `NUMBER` | `0` | Nein | Die Zielgröße in Byte. Verwenden Sie `0` (Standard), um auf die minimal mögliche Größe zu verkleinern. Geben Sie einen positiven Wert an, um auf ein bestimmtes Ziel zu verkleinern. | 

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

### Analysiert einen Tablespace auf zurückgewinnbaren Speicherplatz
<a name="Oracle.ShrinkTablespace.Examples.Analyze"></a>

Führen Sie den folgenden Befehl aus, um einen Tablespace zu analysieren, ohne Änderungen vorzunehmen:

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

Das Folgende ist eine Beispielausgabe:

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

### Verkleinern eines Tablespaces auf die Mindestgröße
<a name="Oracle.ShrinkTablespace.Examples.Minimum"></a>

Führen Sie den folgenden Befehl aus, um einen Tablespace zu verkleinern und den gesamten ungenutzten Speicherplatz zurückzugewinnen:

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

Das Folgende ist eine Beispielausgabe:

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

### Verkleinern eines Tablespaces auf eine bestimmte Zielgröße
<a name="Oracle.ShrinkTablespace.Examples.Target"></a>

Um einen Tablespace auf eine Zielgröße in Byte zu verkleinern, geben Sie den Parameter an. `p_target_size` Wenn das Ziel kleiner als die erreichbare Mindestgröße ist, passt Oracle es automatisch nach oben an:

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

## Überlegungen
<a name="Oracle.ShrinkTablespace.Considerations"></a>

Beachten Sie Folgendes, wenn Sie einen Tablespace verkleinern:
+ Das Verkleinern von Tablespaces ist ein Online-Vorgang. Auf Objekte im Tablespace kann während der Verkleinerung weiterhin zugegriffen werden.
+ Beim Verkleinern werden möglicherweise Objekte, wie Tabellen und Indizes, innerhalb des Tablespace verschoben, um freien Speicherplatz zu konsolidieren, bevor die Größe der Datendateien geändert wird.
+ Indizes bleiben auch nach dem Verkleinerungsvorgang gültig, und die Datenintegrität bleibt erhalten.
+ Wenn der Wert von kleiner `p_target_size` ist als der Platz, den Objekte derzeit belegen, passt Oracle das Ziel an die erreichbare Mindestgröße an.
+ Der Wert von `p_target_size` darf die aktuelle Tablespace-Größe nicht überschreiten. Geben Sie ein Ziel an, das kleiner oder gleich der aktuellen Größe ist.
+ Aktive Transaktionen mit Objekten im Tablespace können verhindern, dass der Vorgang den gesamten verfügbaren Speicherplatz zurückfordert. Die besten Ergebnisse erzielen Sie, wenn Sie den Shrink in einer Phase geringer Aktivität ausführen.
+ `DBMS_SPACE.SHRINK_TABLESPACE`Direktes Aufrufen ohne den `rdsadmin_util` Wrapper wird nicht unterstützt. Verwenden Sie immer den `rdsadmin.rdsadmin_util.shrink_tablespace` Wrapper.

## Zugehörige Ressourcen
<a name="Oracle.ShrinkTablespace.Resources"></a>
+ [DBMS\_ SPACE.SHRINK \_TABLESPACE](https://docs.oracle.com/en/database/oracle/oracle-database/26/arpls/DBMS_SPACE.html) in der Oracle-Datenbankdokumentation
+ Weitere Informationen finden Sie unter [Ausführen allgemeiner Datenbank-Aufgaben für Oracle DB-Instances](Appendix.Oracle.CommonDBATasks.Database.md).