The Geek Diary
Il seguente esempio descrive le operazioni di database Oracle al livello più elementare. Illustra una configurazione di database Oracle in cui l’utente e il processo server associato si trovano su computer separati, collegati attraverso una rete.
1. Un’istanza è stata avviata su un nodo in cui è installato Oracle Database, spesso chiamato host o server di database.
2. Un utente avvia un’applicazione che genera un processo utente. L’applicazione tenta di stabilire una connessione al server. (La connessione può essere locale, client / server o una connessione a tre livelli da un livello intermedio.)
3. Il server esegue un listener con il gestore Oracle Net Services appropriato. Il listener rileva la richiesta di connessione dall’applicazione e crea un processo server dedicato per conto del processo utente.
4. L’utente esegue un’istruzione SQL di tipo DML e commette la transazione. Ad esempio, l’utente modifica l’indirizzo di un cliente in una tabella e commette la modifica.
5. Il processo server riceve l’istruzione e controlla il pool condiviso (un componente SGA) per qualsiasi area SQL condivisa che contiene un’istruzione SQL identica. Se viene trovata un’area SQL condivisa, il processo server verifica i privilegi di accesso dell’utente ai dati richiesti dall’utente e l’area SQL condivisa esistente viene utilizzata per elaborare l’istruzione. Se non viene trovata un’area SQL condivisa, viene allocata una nuova area SQL condivisa per l’istruzione in modo che possa essere analizzata ed elaborata.
6. Il processo server recupera tutti i valori di dati necessari, dal file di dati effettivo (tabella) o dai valori memorizzati nella cache del buffer del database.
7. Il processo server modifica i dati in SGA. Poiché la transazione è stata commessa, il processo di scrittura del registro (LGWR) registra immediatamente la transazione nel file di registro ripeti. Il Database Writer Process (DBWn) scrive blocchi modificati in modo permanente su disco quando è efficiente farlo.
8. Se la transazione ha esito positivo, il processo server invia un messaggio attraverso la rete all’applicazione. Se non riesce, viene trasmesso un messaggio di errore.
9. Durante l’intera procedura, gli altri processi in background vengono eseguiti, osservando le condizioni che richiedono un intervento. Inoltre, il server di database gestisce le transazioni di altri utenti e impedisce la contesa tra le transazioni che richiedono gli stessi dati.