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.
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
Daten weiterhin importieren
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’;