Information Technology

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’

Write a Comment

Il tuo indirizzo email non sarà pubblicato.