Grunnleggende om Automatic minnehåndtering i Oracle 12c

February 18  by Eliza

Minnehåndtering er en viktig del av å jobbe med tilfeller i databasen. Oracle 12c gir deg tre måter å håndtere hukommelsen i forekomst:

  • Automatisk ved å la Oracle gjøre alt arbeidet
  • Manuelt ved å justere enkelte parametre for de ulike minneområder
  • Kombinasjon av automatisk og manuell ved hjelp av din kunnskap om hvordan ting fungerer, syssels Oracles råd infrastruktur, og la Oracle overta enkelte områder

En rask kommentar på Oracle automatisering. Gjennom de siste flere versjoner av Oracle, har databasen blitt mer automatisert i områder som tidligere var manuelle og selv langtekkelig til tider. Dette er ikke å si at snart vil det ta noen spesielle ferdigheter for å administrere en Oracle database. Nøyaktig det motsatte: Når mer dagligdagse operasjoner er automatisert, frigjør det du opp som DBA å fokusere på de mer avanserte funksjonene.

Vi har hatt stor suksess implementere automatiserte funksjoner for klienter. Det frigjør våre ressurser til å fokusere på ting som for eksempel høy tilgjengelighet og sikkerhet, områder som krever nær heltid oppmerksomhet. Takk og lov at du ikke trenger å bruke timer på å se hva SQL-setninger er aldrende ut av den felles pool for tidlig, noe som resulterer i ytelsesproblemer.

Vi anbefaler at du klarer minnet automatisk i Oracle 12c.

Når du oppretter databasen, kan du angi en ny parameter som tar nesten all minne tuning ut av hendene: MEMORY_TARGET. Ved å sette denne parameteren, alle minneområdene er automatisk størrelse og forvaltes. Etter du skriver viser parameter memory_target i SQL * Plus (SQL kommandolinjegrensesnitt tilgjengelig i Oracle), ser du denne utgangen på skjermen:

NAVN TYPE VERDI
------------------------------------ ----------- --- ---------------------------
memory_target store heltall 756

Automatisk minnehåndtering lar deg ta tak i mengden minne på systemet og deretter bestemme hvor mye du ønsker å bruke for databasen.

Det er aldri opplagt hvilken verdi du bør velge som utgangspunkt. Svar på disse spørsmålene for å hjelpe sette verdien:

  • Hvor mye minne som er tilgjengelig?
  • Hvor mange databaser til slutt vil være på maskinen?
  • Hvor mange brukere vil være på maskinen? (Hvis mange, bevilger du 4MB per bruker for prosessen overhead.)
  • Hva andre programmer kjører på maskinen?

Før brukerne får på maskinen, bør du vurdere å ta ikke mer enn 40 prosent av minnet for Oracle-databaser. Bruk denne formelen:

(GB minne × 0,40) / Antall Eventuelle Databaser = GB for MEMORY_TARGET per database

For eksempel, hvis maskinen hadde 8 GB minne og til slutt vil huse to databaser lignende i naturen og bare 100 brukere hver, ville du ha denne ligningen: (8 × 0,40) / 2 = 1,6 GB for MEMORY_TARGET per database.

Å bidra til å finne ut om du har nok minne, gir Oracle deg noen tips hvis du vet hvor du skal lete. Det kalles Memory Target Advisor. Finn det fra kommandolinjen i form av den oppfatning V $ MEMORY_TARGET_ADVICE. Du kan finne den i Database Kontroll hjemmesiden ved å klikke Advisor Central> Minne Advisors> Råd.

Grunnleggende om Automatic minnehåndtering i Oracle 12c


Uansett hva du velger for MEMORY_TARGET innstillingen er ikke alt minnet Oracle bruker. Det er derfor du bør ha en idé om hvor mange økter det vil være før du foretar den endelige avgjørelsen.

For eksempel, dekker denne parameteren bare minnet som brukes av SGA og PGA. Hver enkelt sesjon som kobles til databasen krever minne forbundet med sitt eget operativsystem eller server prosess. Dette kravet minne legger opp. En av våre kunder har nesten 3000 samtidige tilkoblinger spise opp om 16 GB minne utenfor SGA og PGA. Klientens Maskinen har 64 GB minne, og den MEMORY_TARGET er satt til 16 GB.