Grund Mangel an Tablespace und wie man damit umgeht

Oracle Tablespace ist nicht genug,es gibt 2 Gründe dafür

1. Der ursprüngliche Tabellenbereich ist zu klein, wurde nicht automatisch erweitert;

Fehlercode: JETZT-01653: Tabelle kann nicht erweitert werden

2. Der Tablespace war automatisch erweitert und groß genug eingestellt worden, aber die Datengröße

ist größer als die maximale Größe des aktuellen Tabellenbereichs (32GB)

Ich versuche, eine dmp-Datei in einen bestimmten Tabellenbereich zu importieren, Die Größe der DMP-Datei beträgt jedoch 217 GB.

Also bin ich auf einen Fehler gestoßen “JETZT-01658: INITIAL Extent für Segment in kann nicht erstellt werden

Tablespace-Zeichenfolge” , Wie nachfolgend dargestellt.

tablespace_too_small

 

Es gibt 2 Lösungen zur Lösung dieser Probleme:

aus Gründen 1 ,Wir können die Größe des Tablespace ändern.

Ändern Sie die Datenbank-Datendatei ‘../../tablespace.dbf’ Größe ändern 2048M;

oder

Ändern Sie die Datenbank-Datendatei ‘../../tablespace.dbf’ AUTOEXTEND AUF DEN NÄCHSTEN 200m;

 

aus Gründen 2, Wir können eine neue Datendatei hinzufügen, um Tablesapce zu erweitern.

alter tablespace test.dbf Datendatei hinzufügen '../../_TEST1’ GRÖSSE 1000M AUTOEXTEND AUF NÄCHSTEN 1000M

maxsize unbegrenzt;

alter tablespace test.dbf add datafile ‘../../_TEST2’ GRÖSSE 1000M AUTOEXTEND AUF NÄCHSTEN 1000M

maxsize unbegrenzt;

………………..

alter tablespace test.dbf Datendatei hinzufügen '../../_TEST5’ GRÖSSE 1000M AUTOEXTEND AUF NÄCHSTEN 1000M

maxsize unbegrenzt;

Ergebnis wie in der folgenden Abbildung gezeigt

add_tablespace

Daten weiterhin importieren

continue_import

 

Anhang:

1. Überprüfen Sie die Verwendung des Tablespace:

Linie setzen 500;

SELECT total.tablespace_name,

Runden(total.MB, 2) AS Total_MB,

Runden(total.MB – free.MB, 2) AS Used_MB,

Runden(( 1 – free.MB / total.MB ) * 100, 2)

|| „%’ AS Used_Pct

VON (SELECT Tabellenbereichsname,

Summe(Bytes) / 1024 / 1024 AS MB

FROM dba_free_space

GROUP BY Tablespace-Name) frei,

(SELECT Tabellenbereichsname,

Summe(Bytes) / 1024 / 1024 AS MB

FROM dba_data_files

GROUP BY Tablespace-Name) gesamt

WHERE free.tablespace_name = total.tablespace_name;

 

1. Überprüfen Sie, zu welchem ​​Tabellenbereich der aktuelle Benutzer gehört.

wählen * von user_users;

2. Überprüfen Sie die Details zum Tablespace

Wählen Sie f. * aus dba_data_files f aus, wobei f.tablespace_name = ’test.dbf’;

Hinterlasse eine Antwort