Informationstechnologie

So überprüfen Sie den Speicher und die Speichergröße der Oracle-Datenbank

Bei bestimmten Gelegenheiten werde ich nach einem geschätzten Ressourcenbedarf für eine Datenbank gefragt, die für eine Entwicklungsumgebung oder als Standby-Datenbank eingerichtet wird. Im Folgenden sind meine Methoden zum Berechnen des Speichers und der Speichergröße basierend auf der vorhandenen Produktionsdatenbank aufgeführt. Die Berechnung der Speichergröße ist für UNIX und LINUX gedacht.

1. Ermitteln Sie den geschätzten Speicherbedarf einer vorhandenen Datenbank.

—- Abrufen des SGA-Footprints einer Datenbankinstanz:

SQL> SELECT sum(value)/1024/1024 „TOTAL SGA (MB)“ FROM v$sga;

—- Ermitteln des aktuellen PGA-Verbrauchs einer Datenbankinstanz:

wählen Sie sum(pga_max_mem) / 1024 / 1024 „TOTAL MAX PGA (MB)“ aus dem v $ -Prozess;

Eine detailliertere Aufschlüsselung der PGA-Speichernutzung:

SELECT spid, program,

pga_max_mem max,

pga_alloc_mem alloc,

pga_used_mem verwendet,

pga_freeable_mem frei

VON V$PROCESS;

HINWEIS: Der resultierende Programmname ohne zugeordneten Prozessnamen (Bsp. PMON, SMON, RECO,..) ist ein Session-Prozess.

Abhängig von den Einstellungen des Init-Parameters processes kann es sein, dass die obigen Abfragen nur die aktiven Verbindungen erfassen.

—- Ermitteln des geschätzten Speicherbedarfs für die nicht verbundenen Sitzungen:

Die folgende Abfrage gibt den maximal zugewiesenen Speicher durch eine Benutzersitzung an. Wir verwenden dies, um den verbleibenden Speicherbedarf für die nicht verbundenen Prozesse zu berechnen.

select max(p.pga_max_mem)/1024/1024 „PGA MAX SPEICHER DER BENUTZERSITZUNG (MB)“

from v$process p, v$session s

where P.ADDR = S.paddr and s.username is not null;

Ermittelt die maximale Anzahl von Prozessen, die eine Oracle-Instanz verarbeiten kann.

wählen Sie name, Wert aus v$parameter

where name = ‚processes‘;

Zählen wir die Anzahl der verbundenen Sitzungen:

select count(1) from v$session

where Benutzername ist nicht null;

Ermitteln Sie die insgesamt verfügbaren Verbindungen, indem Sie die Anzahl der verbundenen Sitzungen vom Parameterwert Prozesse subtrahieren.

Der resultierende Wert wird mit dem resultierenden max zugewiesenen Speicher durch eine Sitzung multipliziert, die von der vorherigen Abfrage durchgeführt wurde.

Dies würde Ihnen dann die geschätzte Menge an Reservespeicher geben, die benötigt wird, um zusätzliche Verbindungen aufzunehmen.

GESCHÄTZTER GESAMTSPEICHERBEDARF

SGA + PGA = EST SPEICHERBEDARF FÜR AKTUELLE VERBINDUNGEN

SGA + PGA + UNVERBUNDENE SITZUNGEN = MAXIMALER SPEICHERBEDARF BEI MAXIMALER PROZESSAUSLASTUNG

wobei:

Unverbundene Sitzungen (MB) = (Prozesse – verbundene Sitzungen) * pga maximaler Speicher der Benutzersitzung

2. Ermitteln Sie die geschätzten Speichergrößenanforderungen einer Datenbank.

Das folgende Verfahren zur Bestimmung der Speichergröße ist für UNIX- und LINUX-Umgebungen gedacht. Klicken Sie bei Windows einfach mit der rechten Maustaste und wählen Sie die Eigenschaften für jeden Laufwerksbuchstaben aus, der durch die Ergebnisse der Abfragen angegeben wird.

@primary server,

— Kopieren Sie alle resultierenden Befehle, fügen Sie sie in ein Shell-Skript ein und führen Sie sie auf dem Primärserver aus, um die Größe des Einhängepunkts zu ermitteln

wählen Sie eindeutig ‚df -k ‚|/a.MTPOINT MOUNT_POINT

von ( select substr(DATEINAME,0,instr(DATEINAME,’/‘,1,2)-1) MTPOINT

von dba_data_files

union

select substr(DATEINAME,0,instr(DATEINAME,’/‘,1,2)-1) MTPOINT

aus dba_temp_files

union

select substr(MEMBER,0,instr(MEMBER,’/‘,1,2)-1) MTPOINT

von v$logfile

union

select substr(NAME,0,instr(NAME,’/‘,1,2)-1) MTPOINT

von v$controlfile

) ein;

— Fragen Sie alle Parameterdateiziele ab und stellen Sie fest, ob sie einen anderen Pfad als der Einhängepunkt der Datendatei oder das Verzeichnis ORACLE_BASE haben.

Ermitteln Sie die Größe des Einhängepunkts der Dateiziele

Wählen Sie name, Wert

aus v$parameter

where (regexp_like(name, ‚^log_archive_(Ziel | Ziel \_())$‘, ‚i‘) oder Name wie ‚%dump_dest‘ oder Name wie ‚%file_dest‘ oder Name wie ‚diag%dest =’utl_file_dir‘) und der Wert ist nicht null;

— Abfragen der Datenbankverzeichnisse nach Einhängepunkten

wählen Sie ‚df -k ‚|/substr(DIRECTORY_PATH,0,instr(DIRECTORY_PATH,’/‘,1,2)-1) MTPOINT aus dba_directories;

Eine Alternative für einen df-Befehl besteht darin, alle gültigen datenbankbezogenen Einhängepunkte in einer einzigen Zeichenfolge zu grep , um einen viel präziseren Bericht zu erhalten.

Beispiel:

$ df -k / grep -E ‚/u01|/u02|/utldir|/opt‘

Write a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht.