Technologia informacyjna

Jak sprawdzić rozmiar pamięci i pamięci Oracle Database

w niektórych przypadkach będę poproszony o szacunkowe zapotrzebowanie na zasoby dla bazy danych, która zostanie skonfigurowana dla środowiska programistycznego lub jako baza danych w trybie gotowości. Poniżej przedstawiam moje metody obliczania wielkości pamięci i pamięci w oparciu o istniejącą bazę produkcyjną. Obliczenia rozmiaru pamięci przeznaczone są dla systemów UNIX i LINUX.

1. Uzyskaj szacowany ślad pamięci istniejącej bazy danych.

—- Pobierz footprint SGA instancji bazy danych:

SQL> SELECT sum(value)/1024/1024 „TOTAL SGA (MB)” FROM v$SGA;

—- uzyskaj bieżące zużycie PGA instancji bazy danych:

select sum(pga_max_mem)/1024/1024 „TOTAL MAX PGA (MB)” from V$process;

bardziej szczegółowy podział wykorzystania pamięci PGA:

SELECT spid, program,

pga_max_mem max,

pga_alloc_mem alloc,

pga_used_mem used,

pga_freeable_mem free

FROM V$PROCESS;

uwaga: wynikowa nazwa programu nie ma powiązanej nazwy procesu (np. PMON, SMON, RECO,.) jest procesem sesyjnym.

w zależności od ustawień procesów parametrów init, może się zdarzyć, że powyższe zapytania przechwytują tylko aktywne połączenia.

—- uzyskaj szacunkowe zapotrzebowanie na pamięć dla niezwiązanych sesji:

poniższe zapytanie podaje maksymalną przydzieloną pamięć przez sesję użytkownika. Użyjemy tego do obliczenia pozostałych wymagań pamięci dla niezwiązanych procesów.

select max(P. pga_max_mem) / 1024 / 1024 „PGA MAX MEMORY of USER SESSION (MB)”

from V$process p, v$session s

where P. ADDR = S. paddr and s. username is not null;

uzyskaj maksymalną liczbę procesów obsługiwanych przez instancję Oracle.

select name, value from V$parameter

where name = 'processes’;

Policzmy liczbę połączonych sesji:

select count(1) from v$session

where username is not null;

uzyskaj całkowitą liczbę dostępnych połączeń, odejmując liczbę połączonych sesji od wartości parametru procesy.

wartość wynikowa jest mnożona przez maksymalną przydzieloną pamięć wynikową przez sesję wykonaną przez poprzednie zapytanie.

to daje szacunkową ilość pamięci rezerwowej potrzebnej do obsługi dodatkowych połączeń.

szacowane całkowite zapotrzebowanie na pamięć

Wymaganie pamięci SGA + PGA = EST dla połączeń prądowych

SGA + PGA + UNCONNECTED SESSIONS = EST Wymaganie pamięci przy maksymalnym wykorzystaniu procesu

gdzie:

Unconnected Sessions (MB) = (sesje połączone procesami) * PGA Maksymalna pamięć sesji użytkownika

2. Uzyskaj szacunkowe wymagania dotyczące rozmiaru pamięci masowej bazy danych.

poniższa procedura określania rozmiaru pamięci przeznaczona jest dla środowiska UNIX i LINUX. Jeśli chodzi o System windows, po prostu kliknij prawym przyciskiem myszy i wybierz Właściwości na każdej z liter dysku podanych przez wyniki zapytań.

@primary server,

— skopiuj i wklej każde wynikowe polecenia do skryptu powłoki i wykonaj je na serwerze primary, aby uzyskać rozmiar punktu montowania

wybierz unikalny 'df-k’ / / a.MTPOINT MOUNT_POINT

from ( select substr(nazwa_pliku,0,instr (nazwa_pliku,’/’,1,2)-1) MTPOINT

from dba_data_files

union

select substr(nazwa_pliku,0,instr (nazwa_pliku,’/’,1,2)-1) MTPOINT

from dba_temp_files

union

select substr(MEMBER, 0, instr (MEMBER,’/’,1,2)-1) MTPOINT

from v$logfile

union

select substr(NAME,0,instr (NAME,’/’,1,2)-1) MTPOINT

from v$controlfile

) a;

— odpytuje wszystkie pliki docelowe parametrów i określa, czy mają inną ścieżkę niż punkt montowania datafile lub katalog oracle_base.

Pobierz rozmiar punktu montowania plików docelowych

wybierz nazwę, wartość

z v$parametr

gdzie (regexp_like(nazwa, '^log_archive_(dest|dest\_())$’, 'i’) lub nazwa jak '%dump_dest’ lub nazwa jak '%file_dest’ lub nazwa jak 'diag%dest’ lub name =’utl_file_dir’) i wartość nie jest NULL;

— odpytywanie katalogów bazy danych o punkty montowania

select 'df-k’ / / substr (DIRECTORY_PATH,0,instr (DIRECTORY_PATH,’/’,1,2)-1) MTPOINT z dba_directories;

alternatywą dla polecenia df jest grep całego ważnego punktu montowania związanego z bazą danych w jednym łańcuchu, aby uzyskać znacznie bardziej zwięzły raport.

przykład:

$ DF-K / grep-E '/ U01 / / U02 / / utldir / / opt’

Write a Comment

Twój adres e-mail nie zostanie opublikowany.