Grunnleggende i System Global Area i Oracle 12c

February 11  by Eliza

System Global Area (SGA) er en gruppe med delt minne strukturer innenfor Oracle 12c. Den inneholder ting som data og SQL. Det er delt mellom Oracle bakgrunnsprosesser og serverprosesser.

SGA er bygget opp av flere deler som kalles SGA komponenter:

  • Felles svømmebasseng
  • Databasen buffer cache
  • Redo log buffer
  • Stort basseng
  • Java basseng
  • Strømmer basseng

Minne områdene er endret med initialisering parametere.

  • Du kan endre hver parameter individuelt for optimal tuning (bare for eksperter).
  • Du kan fortelle Oracle hvor mye minne du vil at SGA å bruke (for alle andre).

Si at du ønsker Oracle å bruke 1 GB minne. Databasen tar faktisk at 1GB, analyserer hvordan alt er i gang, og låter hver komponent for optimal dimensjonering. Den forteller også deg når det craves mer.

Redo log buffer i Oracle 12c

Redo log buffer er et annet minne komponent som beskytter deg fra deg selv, uflaks, og Mother Nature. Denne bufferen registrerer hver SQL-setning som endrer data. Uttalelsen seg ​​selv og all informasjon som kreves for å rekonstruere det som kalles en redo oppføring. Redo oppføringer henge ut her midlertidig før de blir tatt opp på disken. Denne bufferen beskytter mot tap av skitne blokker.

Skitne blokker aren € ™ t skrevet til disken hele tiden.

Tenk deg at du har en buffer cache på 1000 blokker, og 100 av dem er skitne. Deretter forestille en strømforsyning går buken opp på serveren din, og hele systemet faller sammen uten noen skitne buffere blir skrevet. At data alle tapt, ikke sant? Ikke så fort. . . .

Redo log buffer er spylt når disse ting skje:

  • Hver gang thereâ € ™ s en forplikte seg til data i databasen
  • Hvert tredje sekund
  • Når redo buffer er 1/3 full
  • Like før hver skitne blokk skrives til disk

Hvorfor bry Oracle opprettholde dette hele redo buffer thingy da i stedet, kan det bare skrive de skitne buffere til disk for hver begå? Det virker overflødig.

  • Filen som registrerer denne informasjonen er sekvensiell. Oracle skriver alltid til slutten av filen. Det doesnâ € ™ t nødt til å se opp hvor du skal plassere dataene. Den registrerer bare redo oppføring. En blokk eksisterer et sted i en fil. Oracle har for å finne ut hvor, kan du gå til det punktet, og ta det opp. Gjør om buffer skriver er veldig rask i form av I / O.
  • En liten SQL-setning kan endre tusener eller flere database blokker. Ita € ™ s mye raskere å spille inn den uttalelsen enn vente på I / O av tusenvis av blokker. Redo oppføring tar en brøkdel av et sekund å skrive, noe som reduserer vindu av muligheter for svikt.
  • Den returnerer også din forplikte bare hvis skrive er vellykket. Du vet med en gang at endringene er trygge. I tilfelle feil, kan redo oppføring må re-henrettet under utvinning, men minst ISNA det € ™ t tapt.

Stort basseng i Oracle 12c

Weâ € ™ re ikke henviser til størrelsen på neighborâ € ™ s svømmebasseng. Ikke alle bruker den valg stort basseng komponent. Det store bassenget avlaster felles pool av noen ganger-transient kravene til minne.

Disse funksjonene bruker det store bassenget:

  • Oracle Recovery Manager
  • Oracle felles server
  • Parallell prosessering
  • I / O-relaterte server prosesser

Fordi mange av disse aktivitetene aren € ™ t konstant og allokere minne bare når theyâ € ™ re kjører, ita € ™ s mer effektivt å la dem kjøre i sin egen plass.

Uten et stort basseng konfigurert, disse prosessene stjele minne fra den delte poola € ™ s SQL området. Som kan føre til dårlig SQL behandling og konstant endring av størrelsen på SQL område av felles svømmebasseng. Merk: Det store bassenget har ingen LRU. Når det fylles opp (hvis du størrelsen det for liten) prosessene gå tilbake til sin gamle oppførsel for å stjele minne fra den felles svømmebasseng.

Java basseng i Oracle 12c

Java basseng ISNA € ™ ta svømmebasseng fylt med kaffe (Ok, weâ € ™ re kutte av bassenget referanser.) Java-bassenget er en ekstra minne komponent.

Starter i Oracle 8i, database skip med sin egen Java Virtual Machine (JVM), som kan kjøre Java-kode ut av SGA. I vår erfaring, er denne konfigurasjonen relativt sjeldne. Faktisk vil youâ € ™ se dette der Oracle-spesifikke verktøy er installert.

Men dona € ™ t la det hindre deg fra å utvikle dine egne Java-baserte Oracle-applikasjoner. Faktum er, selv om Oracle har sin egen Java container, mange andre verdt konkurrerende alternativer er der ute.

Strømmer Pool i Oracle 12c

Den bekker bassenget brukes bare hvis youâ € ™ re bruker Oracle Streams funksjonalitet. Oracle Strømmer er en valgfri data replikering teknologi der du replikere (reprodusere) de samme transaksjonene, dataendringer eller hendelser fra en database til en annen (noen ganger ekstern) database. Ville du gjøre dette hvis du ønsket de samme dataene til å eksistere i to forskjellige databaser.

Bekkene basseng butikker bufret kø meldinger og gir minnet brukes til å fange og anvende prosesser. Som standard er verdien av dette bassenget null og øker dynamisk hvis Oracle Streams er i bruk.