Geek Diary
följande exempel beskriver Oracle-databasoperationer på den mest grundläggande nivån. Det illustrerar en Oracle-databaskonfiguration där användaren och tillhörande serverprocess finns på separata datorer, anslutna via ett nätverk.
1. En instans har startat på en nod där Oracle Database är installerad, ofta kallad värd-eller databasservern.
2. En användare startar ett program lek en användarprocess. Programmet försöker upprätta en anslutning till servern. (Anslutningen kan vara lokal, klient / server eller en trestegsanslutning från en mellannivå.)
3. Servern kör en lyssnare som har lämplig Oracle Net Services-hanterare. Lyssnaren upptäcker anslutningsbegäran från applikationen och skapar en dedikerad serverprocess på uppdrag av användarprocessen.
4. Användaren kör en DML-typ SQL-sats och begår transaktionen. Till exempel ändrar användaren adressen till en kund i en tabell och begår ändringen.
5. Serverprocessen tar emot satsen och kontrollerar den delade poolen (en SGA-komponent) för alla delade SQL-områden som innehåller en identisk SQL-sats. Om ett delat SQL-område hittas kontrollerar serverprocessen användarens åtkomstbehörighet till användarens begärda data och det befintliga delade SQL-området används för att bearbeta uttalandet. Om ett delat SQL-område inte hittas tilldelas ett nytt delat SQL-område för uttalandet så att det kan tolkas och bearbetas.
6. Serverprocessen hämtar alla nödvändiga datavärden, antingen från den faktiska datafilen (tabell) eller från värden som lagras i databasbuffertcachen.
7. Serverprocessen ändrar data i SGA. Eftersom transaktionen har begåtts registrerar Log Writer-processen (Lgwr) omedelbart transaktionen i Gör om loggfilen. Databas Writer process (Dbwn) skriver modifierade block permanent till disk när det är effektivt att göra det.
8. Om transaktionen lyckas skickar serverprocessen ett meddelande över nätverket till programmet. Om det inte lyckas överförs ett felmeddelande.
9. Under hela denna procedur körs de andra bakgrundsprocesserna och tittar på förhållanden som kräver ingripande. Dessutom hanterar databasservern andra användares transaktioner och förhindrar strid mellan transaktioner som begär samma data.