Oracles SGA (System Global Area) ist ein Speicherbereich, der von allen Prozessen gemeinsam genutzt wird. Es speichert eine Vielzahl wichtiger Datenstrukturen wie Caches, Sperren, Verbindungen usw. Die Größe von SGA wirkt sich direkt auf die Leistung der Oracle-Datenbank aus. Wenn der SGA zu klein eingestellt ist, kann er nicht die von allen Prozessen benötigten Daten aufnehmen, was zu häufigen Lese- und Schreibvorgängen auf der Festplatte und einer großen Anzahl von E/A-Vorgängen führt, was sich auf die Antwortzeit von Abfragen und Transaktionen auswirkt. Wenn es zu groß eingestellt ist, belegt es zu viele Speicherressourcen und führt zum Absturz des Betriebssystems.
Daher sind für eine Oracle-Datenbank in einer Produktionsumgebung sinnvolle SGA-Einstellungen von entscheidender Bedeutung. In diesem Artikel wird erläutert, wie Sie Oracle SGA ändern.
- Bestätigen Sie die aktuelle SGA-Größe
Verwenden Sie die folgende Abfrageanweisung in der SQL*Plus-Befehlszeilenschnittstelle:
SHOW PARAMETER SGA_TARGET;
Nach dem Login kopieren
#🎜 🎜 #Sie können die Größe des aktuellen SGA_TARGET-Parameters anzeigen. Dieser Wert gibt die SGA-Zielgröße von Oracle in Bytes an. Beachten Sie, dass dieser Wert von der tatsächlich dem SGA zugewiesenen Speichergröße abweichen kann. Daher müssen wir auch die tatsächlich verwendete SGA-Größe über die folgende Abfrageanweisung ermitteln:
SELECT * FROM V$SGA;
Nach dem Login kopieren
Nach der Ausführung dieser Anweisung wird die aktuelle SGA-Situation ausgegeben, wobei in der Spalte „Größe“ die Gesamtgröße angezeigt wird der SGA-Größe.
Berechnen Sie die erforderliche SGA-Größe.
Bevor wir die SGA ändern, müssen wir zuerst die erforderliche SGA-Größe berechnen. Bei diesem Prozess müssen viele Faktoren berücksichtigt werden, z. B. Datenbankgröße, Anzahl der Verbindungen, Cache-Trefferrate, Parallelität usw. Hier verwenden wir eine einfache Formel, um eine vorläufige SGA-Größe zu berechnen:
SGA = (DB_BLOCK_SIZE * DB_BLOCK_BUFFERS) + SHARED_POOL_SIZE + LARGE_POOL_SIZE + JAVA_POOL_SIZE + PGA_AGGREGATE_TARGET
Nach dem Login kopieren
Wobei DB_BLOCK_SIZE die Größe jedes Datenblocks ist, DB_BLOCK_BUFFERS die Anzahl der Blöcke im Datenblock-Cache-Bereich und SHARED_POOL_SIZE ist die gemeinsam genutzte Größe des Pools, LARGE_POOL_SIZE ist die Größe des großen Pools und Variablenpools, JAVA_POOL_SIZE ist die Größe des Java-Pools und PGA_AGGREGATE_TARGET ist die PGA-Zielgröße. Die Werte dieser Parameter können durch Abfragen der V$PARAMETER-Tabelle abgerufen werden. Es ist zu beachten, dass der Wert von DB_BLOCK_BUFFERS eine n-te Potenz von 2 sein sollte und sein Wert Folgendes erfüllen sollte: SGA+PGA+anderer Speicher<=verfügbarer Speicher*90 %.
Wenn wir beispielsweise verlangen, dass SGA 400 MB beträgt, DB_BLOCK_SIZE 8 KB beträgt, DB_BLOCK_BUFFERS 50176 beträgt, SHARED_POOL_SIZE 60 MB beträgt, LARGE_POOL_SIZE 10 MB beträgt, JAVA_POOL_SIZE 30 MB beträgt und PGA_AGGREGATE_ ZIEL: 50 MB , dann erhalten wir:
SGA = (8KB * 50176) + 60MB + 10MB + 30MB + 50MB
= 400MB
Nach dem Login kopieren
Daher können wir den Wert des SGA_TARGET-Parameters auf 400 MB setzen, um unseren Anforderungen gerecht zu werden.
Größe von SGA ändern
Um die Größe von SGA zu ändern, müssen wir die Initialisierungsparameterdatei von Oracle (z. B. pfile oder spfile) bearbeiten ). Hier nehmen wir zur Veranschaulichung das Ändern von spfile als Beispiel. Bitte beachten Sie, dass eine Änderung der Initialisierungsparameterdatei erhebliche Auswirkungen auf die Datenbank haben kann und mit Vorsicht erfolgen muss. Bevor Sie Änderungen vornehmen, sichern Sie bitte die Initialisierungsparameterdatei und die Datenbank.
Stellen Sie zunächst über SQL*Plus eine Verbindung zur Oracle-Datenbank her. Überprüfen Sie dann mit dem folgenden Befehl, ob eine SP-Datei vorhanden ist:
SHOW PARAMETER SPFILE;
Nach dem Login kopieren
Wenn die Ausgabe zeigt, dass die SP-Datei bereits vorhanden ist, können wir die SP-Datei direkt ändern. Wenn das Ausgabeergebnis leer ist, müssen wir den folgenden Befehl verwenden, um die SP-Datei zu erstellen:
CREATE SPFILE FROM PFILE;
Nach dem Login kopieren
Als nächstes können wir den folgenden Befehl verwenden, um die Größe des SGA zu ändern:
ALTER SYSTEM SET SGA_TARGET = 400M SCOPE=SPFILE;
Nach dem Login kopieren
Dieser Befehl ändert den Wert des SGA_TARGET-Parameters auf 400 MB und schreibt die Änderung in die SP-Datei. Zu diesem Zeitpunkt müssen wir den folgenden Befehl verwenden, um die Datenbank neu zu starten, damit die Änderung wirksam wird:
SHUTDOWN IMMEDIATE;
STARTUP;
Nach dem Login kopieren
Durch die oben genannten Schritte haben wir die Größe von Oracle SGA erfolgreich geändert.
Zusammenfassung
Oracle SGA ist einer der Schlüssel zur Datenbankleistung, daher ist seine angemessene Einstellung von entscheidender Bedeutung. In diesem Artikel werden die Schritte zum Ändern von Oracle SGA vorgestellt. Ich hoffe, dass er für alle hilfreich ist. Bevor wir SGA ändern, sollten wir natürlich auch andere wichtige Konzepte und Parameter wie PGA, SGA_MAX_SIZE, SGA_TARGET, MEMORY_MAX_TARGET usw. verstehen, um sinnvollere SGA-Einstellungen vorzunehmen.
Das obige ist der detaillierte Inhalt vonOrakel-SGA ändern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!