Come controllare Oracle Database Memoria e Storage Size
In alcune occasioni, mi verrà chiesto un fabbisogno di risorse stimato per un database che verrà configurato per un ambiente di sviluppo o come database di standby. Di seguito sono riportati i miei metodi per calcolare la dimensione della memoria e dello storage in base al database di produzione esistente. Il calcolo sulla dimensione di archiviazione sono pensati per UNIX e LINUX.
1. Ottieni l’impronta di memoria stimata di un database esistente.
—- Ottenere il SGA impronta di un’istanza di database:
SQL> SELECT sum(valore)/1024/1024 “TOTALE SGA (MB)” DAL v$sga;
—- Ottenere l’attuale PGA consumo di un’istanza di database:
select sum(pga_max_mem)/1024/1024 “TOTALE MAX PGA (MB)” dal v$processo;
Una ripartizione più dettagliata di PGA utilizzo della memoria:
SELEZIONARE spid, programma,
pga_max_mem max,
pga_alloc_mem alloc,
pga_used_mem usato,
pga_freeble_mem libero
DA V PROCESS PROCESSO;
NOTA: il nome del programma risultante non ha un nome di processo associato (es. PMON, SMON, RECO,..) è un processo di sessione.
A seconda delle impostazioni dei processi dei parametri init, potrebbe essere che le query sopra catturano solo le connessioni attive.
—- Ottieni il requisito di memoria stimato per le sessioni non collegate:
La query seguente fornisce la memoria massima allocata da una sessione utente. Useremo questo per calcolare i requisiti di memoria rimanenti per i processi non collegati.
seleziona max(p.pga_max_mem)/1024/1024 “PGA MAX MEMORY OF USER SESSION (MB)”
da v process process p, v session session s
dove P. ADDR = S. paddr e s. username non sono null;
Ottieni il numero massimo di processi che un’istanza Oracle può gestire.
seleziona nome, valore da v parameter parametro
dove name = ‘processi’;
Contiamo il numero di sessioni connesse:
seleziona count(1) da v session session
dove username non è null;
Ottieni il totale delle connessioni disponibili sottraendo il conteggio delle sessioni connesse dal valore del parametro processi.
Il valore risultante deve essere moltiplicato per la memoria allocata massima risultante da una sessione eseguita dalla query precedente.
Questo ti darebbe la quantità stimata di memoria di riserva necessaria per ospitare connessioni aggiuntive.
STIMA TOTALE del REQUISITO di MEMORIA
SGA + PGA = EST REQUISITO di MEMORIA PER le CONNESSIONI ATTUALI
SGA + PGA + SCOLLEGATO SESSIONI = EST REQUISITO di MEMORIA AL MASSIMO l’UTILIZZO del PROCESSO
dove:
Scollegato Sessioni (MB) = (processi connessi sessioni) * pga max memoria di sessione utente
2. Ottieni i requisiti di dimensionamento di archiviazione stimati di un database.
La procedura riportata di seguito per determinare la dimensione dello storage è pensata per l’ambiente UNIX e LINUX. Per quanto riguarda Windows, basta fare clic destro e selezionare le proprietà su ciascuna delle lettere di unità fornite dai risultati delle query.
@primary server,
Copy Copia e incolla ogni comando risultante su uno script di shell ed esegui nel server primario per ottenere la dimensione del punto di montaggio
selezionare unico ‘df-k’ / / a.MTPOINT MOUNT_POINT
from ( select substr(NOME_FILE,0,instr(NOME_FILE,’/’,1,2)-1) MTPOINT
da dba_data_files
unione
select substr(NOME_FILE,0,instr(NOME_FILE,’/’,1,2)-1) MTPOINT
da dba_temp_files
unione
select substr(MEMBRO,0,instr(MEMBRO,’/’,1,2)-1) MTPOINT
v$logfile
unione
select substr(NOME,0,instr(NOME,’/’,1,2)-1) MTPOINT
v$controlfile
) un;
— Interrogare tutta la destinazione del file dei parametri e determinare se sono di percorso diverso dal punto di mount del file di dati o dalla dir ORACLE_BASE.
ottieni la dimensione del punto di montaggio delle destinazioni dei file
seleziona nome, valore
da v parameter parametro
dove (regexp_like(name, ‘^log_archive_(dest|dest\_ ()) where’, ‘i’) o nome come ‘%dump_dest’ o nome come ‘%file_dest’ o nome come ‘diag%dest’ o nome =’utl_file_dir’) e il valore non è null;
— Query la directory del database per i punti di mount
selezionare ” df -k ‘||substr(DIRECTORY_PATH,0,instr(DIRECTORY_PATH,’/’,1,2)-1) MTPOINT da dba_directories;
Un’alternativa per un df comando grep tutti i validi database relativo punto di mount in una singola stringa per ottenere una molto più breve report.
esempio:
$ df-k | grep-E ‘/u01|/u02 / / utldir / / opt’