hoe het geheugen en de opslaggrootte van de Oracle-Database te controleren
bij bepaalde gelegenheden, Ik zal worden gevraagd voor een geschatte resource requirements voor een database die zal worden ingesteld voor een ontwikkelomgeving of als een stand-by-database. De volgende zijn mijn methoden om het geheugen en de opslaggrootte te berekenen op basis van de bestaande productiedatabase. De berekening van de opslaggrootte is bedoeld voor UNIX en LINUX.
1. Krijg de geschatte geheugenvoetafdruk van een bestaande database.
—- Voor de SGA-voetafdruk van een database-instantie:
SQL> SELECT sum(waarde)/1024/1024 “TOTAAL SGA (MB)” VAN v$sga;
—- de huidige PGA verbruik van een database-instantie:
selecteer som(pga_max_mem)/1024/1024 “TOTAAL MAX PGA (MB)” van v$proces;
Een meer gedetailleerde uitsplitsing van de PGA geheugen gebruik:
SELECT spid, program,
pga_max_mem max,
pga_alloc_mem Allocation,
pga_used_mem used,
pga_freeable_mem free
FROM V $ PROCESS;
opmerking: de resulterende programmanaam heeft geen geassocieerde procesnaam (ex. PMON, SMON, RECO,..) is een sessieproces.
afhankelijk van de instellingen van de init parameter processen, kan het zijn dat de query ‘ s hierboven alleen de actieve verbindingen vastleggen.
—- de geschatte geheugenbehoefte ophalen voor de niet-verbonden sessies:
de query hieronder geeft het maximum toegewezen geheugen door een gebruikerssessie. We zullen dit gebruiken om de resterende geheugenvereisten voor de niet-verbonden processen te berekenen.
selecteer max(p.pga_max_mem) /1024 / 1024 “PGA MAX MEMORY of USER SESSION (MB)”
van v$process p, V$session s
waarbij P. ADDR = S. paddr en s. username niet null is;
haal het maximale aantal processen op dat een Oracle-instantie kan verwerken.
selecteer Naam, waarde van V $ parameter
waar Naam = ‘processen’;
laten we het aantal verbonden sessies tellen:
selecteer count (1) van V $ session
waar gebruikersnaam niet null is;
haal het totale aantal beschikbare verbindingen op door het aantal verbonden sessies af te trekken van de parameterwaarde van processen.
de resulterende waarde moet worden vermenigvuldigd met het resulterende maximum toegewezen geheugen door een sessie gedaan door de vorige query.
dit geeft u dan de geschatte hoeveelheid reservegeheugen die nodig is voor extra verbindingen.
geschatte totale GEHEUGENBEHOEFTE
SGA + PGA = est GEHEUGENBEHOEFTE voor huidige verbindingen
SGA + PGA + UNCONNECTED SESSIONS = EST memory REQUIREMENT AT MAXIMUM process utilisation
where:
Unconnected Sessions (MB) = (processes – connected sessions) * PGA max memory of user session
2. Krijg de geschatte opslag grootte eisen van een database.
de onderstaande procedure voor het bepalen van de opslaggrootte is bedoeld voor de UNIX-en LINUX-omgeving. Wat windows betreft, klikt u met de rechtermuisknop en selecteert u de eigenschappen op elk van de stationsletters die door de resultaten van de queries worden gegeven.
@primaire server,
— kopieer en plak elk resulterend commando op een shell script en voer het uit in primaire server om de grootte van het koppelpunt te krijgen
selecteer unieke ‘df-k’ / / a.MTPOINT MOUNT_POINT
from ( select substr(BESTANDSNAAM,0,instr(BESTANDSNAAM,’/’,1,2)-1) MTPOINT
van dba_data_files
union
select substr(BESTANDSNAAM,0,instr(BESTANDSNAAM,’/’,1,2)-1) MTPOINT
van dba_temp_files
union
select substr(LEDEN,0,instr(LID,’/’,1,2)-1) MTPOINT
from v$logfile
union
select substr(NAAM,0,instr(NAAM,’/’,1,2)-1) MTPOINT
from v$controlfile
) een;
— Query alle parameter bestand bestemming en bepalen of ze van een ander pad dan het datafile koppelpunt of oracle_base dir.
de grootte van het koppelpunt ophalen van bestandsbestemmingen
selecteer Naam, waarde
uit V$parameter
waar (regexp_like(name, ‘^log_archive_(dest|dest\_ ()))$’, ‘i’) of naam zoals ‘%dump_dest’ of naam zoals ‘%file_dest’ of naam zoals ‘diag%dest’ of naam =’utl_file_dir’) en waarde is niet null;
— de databasemappen opvragen voor koppelpunten
selecteer “df-k” | / substr (DIRECTORY_PATH, 0, instr (DIRECTORY_PATH,’/’,1,2)-1) MTPOINT van dba_directory ‘ s;
een alternatief voor een DF commando is om alle geldige database gerelateerd koppelpunt in een enkele string te grep om een veel beknopter rapport te krijgen.
voorbeeld:
$ df-k / grep-E ‘|U01/|u02/ / utldir / / opt’