Grunderna i System Global Area i Oracle 12c

June 29

System Global Area (SGA) är en grupp av delade minnesstrukturer inom Oracle 12c. Den innehåller saker som data och SQL. Det delas mellan Oracle bakgrundsprocesser och serverprocesser.

SGA består av flera delar som kallas SGA komponenter:

  • Delad pool
  • Databasbuffertminne
  • Gör om log buffert
  • Stor pool
  • Java pool
  • Strömmar pool

Minnesområdena ändras med initieringsparametrarna.

  • Du kan ändra varje parameter individuellt för optimal trimning (endast för experterna).
  • Du kan tala om Oracle hur mycket minne du vill att SGA använda (för alla andra).

Säg att du vill Oracle att använda 1 GB minne. Databasen faktiskt tar att 1GB, analyserar hur allt är igång, och trimmar varje komponent för optimal dimensionering. Den berättar även när det längtar mer.

Gör om log buffert i Oracle 12c

Redo loggbufferten är en annan minneskomponent som skyddar dig från dig själv, otur, och Moder Natur. Denna buffert rekord varje SQL-sats som ändrar data. Uttalandet i sig och alla uppgifter som behövs för att rekonstruera det kallas en gör posten. Gör om poster umgås här tillfälligt innan de spelas in på skiva. Denna buffert skyddar mot förlust av smutsiga block.

Smutsiga block arenâ € t skrivs till disken hela tiden.

Tänk dig att du har en buffertminne 1000 block, och 100 av dem är smutsiga. Tänk dig sedan en strömkälla går magen upp i din server, och hela systemet kommer krascha ner utan några smutsiga buffertar skrivs. Dessa data är alla förlorade, eller hur? Inte så snabbt. . . .

Redo loggbufferten spolas när dessa saker inträffar:

  • Varje gång thereâ € s en åta sig uppgifter i databasen
  • Var tredje sekund
  • När gör om bufferten är 1/3
  • Strax före varje smutsig blocket skrivs till disken

Varför Oracle bry behålla hela denna gör om buffert grejen när istället, kan det bara skriva de smutsiga buffertar till disk för varje begå? Det verkar överflödig.

  • Filen som registrerar informationen är sekventiell. Oracle skriver alltid till slutet av filen. Det doesnâ € t måste leta upp var att sätta data. Det registrerar bara göra om posten. Ett block existerar någonstans i en fil. Oracle måste ta reda på var, gå till den platsen, och spela in det. Gör om buffert skriver är väldigt snabb i termer av I / O.
  • En liten SQL-sats kan ändra tusentals eller flera databasblock. Itâ € s mycket snabbare att spela in det uttalandet än vänta på I / O i tusentals block. Redo posten tar en bråkdels sekund för att skriva, vilket minskar gyllene tillfälle för underlåtenhet.
  • Den returnerar också din begår endast om skriv lyckas. Du vet direkt att ändringarna är säkra. I händelse av fel, kanske göra om posten måste återverk under återhämtning, men åtminstone det ISNA € t förlorade.

Stor pool i Oracle 12c

Weâ € re inte hänvisa till storleken på din neighborâ € s pool. Inte alla använder den valfria stor pool komponent. Den stora poolen avlastar delad pool av ibland-transienta minneskraven.

Dessa funktioner använder den stora poolen:

  • Oracle Recovery Manager
  • Oracle delad server
  • Parallell bearbetning
  • I / O-relaterade serverprocesser

Eftersom många av dessa aktiviteter arenâ € t konstant och endast allokera minne när theyâ € re kör, itâ € s mer effektivt att låta dem köra i sitt eget utrymme.

Utan en stor pool konfigurerad, dessa processer stjäl minne från den delade Poola € s SQL området. Det kan resultera i dålig SQL bearbetning och konstant storleksändring av SQL område delad pool. Obs: Den stora poolen har ingen LRU. När det fyller upp (om du storlek det för liten) processerna återgå till sin gamla beteende stjäla minne från den delade poolen.

Java pool i Oracle 12c

Java poolen ISNA € ta pool fylld med kaffe (Okej, weâ € re skära av poolen referenser.) Java poolen är en extra minneskomponent.

Från och med Oracle 8i, databas fartyg med en egen Java Virtual Machine (JVM), vilket kan köra Java-kod ur SGA. Enligt vår erfarenhet är denna konfiguration relativt sällsynt. I själva verket kommer du € ser detta där Oracle-specifika verktyg är installerade.

Men don € t låt som avskräcker dig från att utveckla din egen Java-baserade Oracle applikationer. Faktum är, trots att Oracle har sina egna Java behållare, många andra värdefulla konkurrerande alternativ där ute.

Strömmar Pool i Oracle 12c

Den strömmar poolen används endast om du € re använder Oracle Strömmar funktionalitet. Oracle Strömmar är en valfri datareplikering teknik där du replikera (reproducera) samma transaktioner, data ändras, eller händelser från en databas till en annan (ibland fjärr) databas. Du skulle göra detta om du ville samma data att existera i två olika databaser.

Strömmarna poolbutiker buffrade kö budskap och ger det minne som används för att fånga och tillämpa processer. Som standard är värdet av denna pool noll och ökar dynamiskt om Oracle Strömmar används.