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
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.
-Übersicht
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
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
EXEC rdsadmin.rdsadmin_util.shrink_tablespace( p_tablespace_name => 'tablespace_name', p_shrink_mode =>mode, p_target_size =>target_bytes);
Parameters
| Parametername | Datentyp | Standard | Erforderlich | Beschreibung |
|---|---|---|---|---|
|
|
|
— |
Ja |
Der Name des Tablespaces, der verkleinert werden soll. |
|
|
|
|
Nein |
Der Verkleinerungsmodus. Verwenden Sie |
|
|
|
|
Nein |
Die Zielgröße in Byte. Verwenden Sie |
Beispiele
Analysiert einen Tablespace auf zurückgewinnbaren Speicherplatz
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
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
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
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_sizeist als der Platz, den Objekte derzeit belegen, passt Oracle das Ziel an die erreichbare Mindestgröße an. -
Der Wert von
p_target_sizedarf 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_TABLESPACEDirektes Aufrufen ohne denrdsadmin_utilWrapper wird nicht unterstützt. Verwenden Sie immer denrdsadmin.rdsadmin_util.shrink_tablespaceWrapper.
Zugehörige Ressourcen
-
DBMS_ SPACE.SHRINK _TABLESPACE
in der Oracle-Datenbankdokumentation -
Weitere Informationen finden Sie unter Ausführen allgemeiner Datenbank-Aufgaben für Oracle DB-Instances.