Heim  >  Artikel  >  Datenbank  >  Oracle überprüft die Tabellenplatznutzung und behebt Probleme mit vollständigen Instanzen

Oracle überprüft die Tabellenplatznutzung und behebt Probleme mit vollständigen Instanzen

WBOY
WBOYnach vorne
2022-07-29 15:25:544191Durchsuche

Dieser Artikel bringt Ihnen relevantes Wissen über Oracle. Das häufigste Problem bei der täglichen Verwendung von Oralce ist, dass der Tabellenbereich von Oralce voll ist, die Daten nicht geschrieben werden können und eine Fehlermeldung angezeigt wird zusammen, ich hoffe, dass es für alle hilfreich ist.

Oracle überprüft die Tabellenplatznutzung und behebt Probleme mit vollständigen Instanzen

Empfohlenes Tutorial: „Oracle Video-Tutorial“

1. Überprüfen Sie die Tabellenbereichsdatei:

rrree

--查看数据库表空间文件
select * from dba_data_files;

3. Überprüfen Sie die Tabellenplatznutzung der Datenbank

--查看所有表空间的总容量
select dba.TABLESPACE_NAME, sum(bytes)/1024/1024 as MB  
from dba_data_files dba 
group by dba.TABLESPACE_NAME;

4.1 Überprüfen Sie die Gesamtgröße, Nutzung und den verbleibenden Speicherplatz des Tabellenbereichs

--查看数据库表空间使用率
select total.tablespace_name,round(total.MB, 2) as Total_MB,round(total.MB - free.MB, 2) as Used_MB,round((1-free.MB / total.MB)* 100, 2) || '%' as Used_Pct 
from (
select tablespace_name, sum(bytes) /1024/1024 as MB 
from dba_free_space group by tablespace_name) free,
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB 
from dba_data_files group by tablespace_name) total     
where free.tablespace_name = total.tablespace_name 
order by used_pct desc;

4.2 Überprüfen Sie die Tabellenplatznutzung (einschließlich des temporären Tabellenbereichs)

--查看表空间总大小、使用率、剩余空间
select a.tablespace_name, total, free, total-free as used, substr(free/total * 100, 1, 5) as "FREE%", substr((total - free)/total * 100, 1, 5) as "USED%"
from
(select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a,
(select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
order by a.tablespace_name

5 . Überprüfen Sie die spezifische Tabellengröße des belegten Speicherplatzes

--查看表空间使用率(包含临时表空间)
select * from (
Select a.tablespace_name,
(a.bytes- b.bytes) "表空间使用大小(BYTE)",
a.bytes/(1024*1024*1024) "表空间大小(GB)",
b.bytes/(1024*1024*1024) "表空间剩余大小(GB)",
(a.bytes- b.bytes)/(1024*1024*1024) "表空间使用大小(GB)",
to_char((1 - b.bytes/a.bytes)*100,'99.99999') || '%' "使用率"
from (select tablespace_name,
sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name,
sum(bytes) bytes
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
union all
select c.tablespace_name,
d.bytes_used "表空间使用大小(BYTE)",
c.bytes/(1024*1024*1024) "表空间大小(GB)",
(c.bytes-d.bytes_used)/(1024*1024*1024) "表空间剩余大小(GB)",
d.bytes_used/(1024*1024*1024) "表空间使用大小(GB)",
to_char(d.bytes_used*100/c.bytes,'99.99999') || '%' "使用率"
from
(select tablespace_name,sum(bytes) bytes
from dba_temp_files group by tablespace_name) c,
(select tablespace_name,sum(bytes_cached) bytes_used
from v$temp_extent_pool group by tablespace_name) d
where c.tablespace_name = d.tablespace_name
)
order by tablespace_name

2. Erweitern Sie die Größe oder fügen Sie die Tabellenbereichsdatei hinzu

1 Ändern Sie die zugewiesene Speicherplatzgröße der DBF-Datendatei des Tabellenbereichs

--查看具体表的占用空间大小
select * from (
select t.tablespace_name,t.owner, t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) mb
from dba_segments t
where t.segment_type='TABLE'
group by t.tablespace_name,t.OWNER, t.segment_name, t.segment_type
) t
order by t.mb desc

2.1 Fügen Sie eine neue Datendatei hinzu der Tabellenbereich (wenn der Tabellenbereich 32 GB voll ist und nicht erweitert werden kann, erhöhen Sie ihn) Tabellenbereichsdatei)

alter database datafile ‘...\system_01.dbf' autoextend on;
alter database datafile ‘...\system_01.dbf' resize 1024M;

2.2 Wenn ein neuer Tabellenbereich zu einer temporären temporären Tabelle hinzugefügt wird, wird ein Fehler gemeldet:

0RA- 03217: Ungültige Option zum Ändern des temporären Tabellenbereichs. Lösung: Datendatei in temporäre Datei ändern B. Sortiervorgänge, Indizes verwalten und auf Ansichten zugreifen. Wenn der Vorgang abgeschlossen ist, werden nicht verfügbare temporäre Segmente freigegeben

führt dazu, dass der temporäre Tabellenbereich hauptsächlich in den folgenden Situationen zunimmt:

1, Sortieren nach oder Gruppieren nach (Disc-Sortierung macht den Hauptteil aus);

2, Indexerstellung und Neuerstellung

3. eindeutige Operation;

4. Vereinigungs- und Schnittpunkt- und Minus-Sortierungsverbindungen

5.

Lösung 1: Verwenden Sie die obige Methode, um Tabellenbereichsdateien zu temp hinzuzufügen.

Lösung 2: Wenn der Serverressourcenbereich begrenzt ist, erstellen Sie einen neuen temporären Tabellenbereich neu, um den aktuellen Tabellenbereich zu ersetzen.

alter tablespace SYSTEM add datafile '/****' size 1000m autoextend on next 100m;

Anhang: Tabelle anzeigen space Kann es automatisch erweitert werden

alter tablespace TEMP01 add tempfile'/****' size 1000m autoextend on next 100m;

Empfohlenes Tutorial: „

Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonOracle überprüft die Tabellenplatznutzung und behebt Probleme mit vollständigen Instanzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen