Tuning SGA Oracle database

Pubblicato da Alessandro Caredda il

Con l’articolo Tuning SGA Oracle database, descrivo le funzionalità della SGA del database Oracle creata.

La SGA del database Oracle è l’area di memoria RAM che viene utilizzata dal database Oracle e allocata in fase di startup. Più nello specifico viene allocata in fase di startup nomount.

Quando viene eseguito il comando startup, Oracle legge le informazioni presenti sul spfile.
Se trova congruenza con l’ambiente in cui viene startato, ossia, se l’ambiente soddisfa i parametri indicati nell’spfile, l’istanza allocherà la memoria completando la fase di startup nomount.

Le aree di MEMORIA della SGA

La SGA all’interno ha altre areee di memoria, ogniuna con la propria funzione.

Le principali areee di memoria sono:

SHARED POOL – Area dedicata alle librerie delle query
BUFFER CACHE – Area dedicata al caricamento di dati in memoria acceduti di frequenza
REDO BUFFER – Area dedicata alla scrittura dei REDO LOG
JAVA POOL – Area dedicata al processamento dei dati JAVA
ecc…

Queste aree di memoria possono essere gestite in maniera automatica da Oracle.

Se volessi disabilitare la gestione automatica delle aree di memoria interne alla SGA, occorre specificare le dimensioni delle varie memorie aree di memoria sull’spfile.

A quel punto la gestione non sarebbe più dinamica, poichè con le dimensioni fissate.

La modalità di gestione automatica delle aree interne alla SGA , si chiama ASMM Automatic Shared Memory Management ed è stata introdotta in Oracle 10g, applicabile attraverso i parametri sga_target, sga_max_size, pga_aggregate e l’azzeramento delle altre aree di memoria.

AMM vs ASMM

Inoltre dalla versione Oracle 11g, è stata implementata un ulteriore modalità di gestione della memoria automatica estesa alla dimensione della SGA e della PGA.

Questa modalità viene chiamata AMM Automatic Memory Management e viene attivata popolando i parametri memory_target e memory_max_target ed eliminando dall’spfile i parametri sga_target, sga_max_size, pga_aggregate:

Tuning SGA Oracle database

Comandi per abilitare AMM

alter system set  memory_max_target=4G scope=spfile;
alter system set memory_target=3G scope=spfile;

Comandi per disabilitare ASMM:

alter system reset sga_max_size scope=spfile;
alter system reset sga_target scope=spfile;

Controllate sempre le note ufficiali Oracle database e note ufficiali OS, in base al sistema operativo che ospita il database.

L’AMM è la modalità attuale consigliata da Oracle, tuttavia, in database con SGA superiore ai 4G, Oracle consiglia di abilitare la funzionalità LARGE PAGE, indipendentemente dal sistema operativo.

ENABLE LARGE PAGE

Questo perchè la memoria RAM di default viene allocata con pin da 4k, e nel caso in cui la SGA avesse una dimensione pari a 15G, il sistema operativo sarebbe costretto ad utilizzare miliardi di pin da 4k fino a comporre la dimensione di 15G.

Questo può mettere il sistema operativo in difficoltà o comunque sia non al massimo delle performance.

Vantaggi LARGE PAGE

Inoltre, se il LARGE PAGE è abilitato la SGA occuperà la memoria RAM allocando pin da 2M e questo consentirebbe al sistema operativo di gestire milioni di pin e non più miliardi di pin.

L’abilitazione della funzionalità Large Page, è altamente consigliata per via dei netti miglioramenti sulle performance e stabilità del database.

Ogni sistema operativo, ha le proprie particolarità per abilitare questa funzione.

Consigli

Quindi, il consiglio che posso darvi, cercare sempre online la documentazione ufficiale del sistema operativo e del database in cui dovete effettuare questo tipo di modifiche.
Verificare la modalità di abilitazione Large Page e Tuning SGA, ma sopratutto, prima di effettaure qualsiasi modifica, salvate sempre l’spfile con il seguente comando:

Salvataggio dell’SPFILE con la creazione del PFILE

create pfile='/tmp/pfile.ora' from spfile;

Nel caso in cui vi dovesse andare male la modifica e il db non si apre, è possibile tornare ai parametri iniziali con il PFILE salvato in precedenza.

La sequenza dei comandi è la seguente:

sqlplus / as sysdba
startup pfile='/tmp/pfile.ora'
create spfile from pfile='/tmp/pfile.ora'

Con questi comandi il database si aprirà con i parametri antecedenti la modifica.

Nel caso di un RAC, le operazioni sono le stesse. Occorre eseguire lo start del database in maniera manuale, ricreare l’spfile, chiudere il database ed eseguire lo start con i comandi del CRS, reperibili nella pagina srvctl start database.

Per visionare i miei tutorial Oracle clicca qui!
A questo LINK, invece, troverai le query SQL.

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin


0 commenti

Lascia un commento

Segnaposto per l'avatar