a Geek Diary
a következő példa az Oracle database műveleteket írja le a legalapvetőbb szinten. Ez egy Oracle adatbázis-konfigurációt ábrázol, amelyben a felhasználó és a kapcsolódó kiszolgáló folyamat különálló számítógépeken van, hálózaton keresztül csatlakoztatva.
1. Egy példány elindult egy csomóponton, ahol az Oracle Database telepítve van, gyakran gazdagépnek vagy adatbázis-kiszolgálónak hívják.
2. A felhasználó elindít egy alkalmazást, amely létrehoz egy felhasználói folyamatot. Az alkalmazás megpróbál kapcsolatot létesíteni a kiszolgálóval. (A kapcsolat lehet helyi, kliens/szerver vagy háromszintű kapcsolat egy középső rétegből.)
3. A kiszolgáló olyan figyelőt futtat, amely rendelkezik a megfelelő Oracle Net Services kezelővel. A figyelő felismeri az alkalmazás csatlakozási kérelmét, és létrehoz egy dedikált szerverfolyamatot a felhasználói folyamat nevében.
4. A felhasználó egy DML típusú SQL utasítást futtat, és végrehajtja a tranzakciót. Például a felhasználó megváltoztatja egy ügyfél címét egy táblában, és végrehajtja a módosítást.
5. A kiszolgálói folyamat megkapja az utasítást, és ellenőrzi a megosztott készletet (egy SGA-összetevőt) minden olyan megosztott SQL-területen, amely azonos SQL-utasítást tartalmaz. Ha megosztott SQL-területet talál, a kiszolgálói folyamat ellenőrzi a felhasználó hozzáférési jogosultságait a felhasználó által kért adatokhoz, és a meglévő megosztott SQL-területet használja az utasítás feldolgozásához. Ha egy megosztott SQL-terület nem található, egy új megosztott SQL-terület van lefoglalva az utasítás számára, hogy elemezhető és feldolgozható legyen.
6. A kiszolgálói folyamat lekéri a szükséges adatértékeket, akár a tényleges adatfájlból (táblázatból), akár az adatbázis puffer gyorsítótárában tárolt értékekből.
7. A szerver folyamat módosítja az adatokat az SGA-ban. Mivel a tranzakció elkötelezett, a Log Writer folyamat (LGWR) azonnal rögzíti a tranzakciót a redo log fájlban. A Database Writer process (Dbwn) módosított blokkokat ír véglegesen a lemezre, ha ez hatékony.
8. Ha a tranzakció sikeres, a kiszolgálói folyamat üzenetet küld a hálózaton keresztül az alkalmazásnak. Ha nem sikerül, hibaüzenet kerül továbbításra.
9. Az egész eljárás során a többi háttérfolyamat fut, figyelve a beavatkozást igénylő feltételeket. Ezenkívül az adatbázis-kiszolgáló kezeli más felhasználók tranzakcióit, és megakadályozza az azonos adatokat kérő tranzakciók közötti vitát.