View a markdown version of this page

Verkleinern von Tablespaces in RDS für Oracle - Amazon Relational Database Service

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

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

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_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_TABLESPACEDirektes Aufrufen ohne den rdsadmin_util Wrapper wird nicht unterstützt. Verwenden Sie immer den rdsadmin.rdsadmin_util.shrink_tablespace Wrapper.

Zugehörige Ressourcen