Architettura Database Oracle

Un SERVER Oracle non è solo database, perchè il database è la compomente fisica di Oracle riscontrabile su filesystem o ASM (Automatic Storage Management), ma è l'organizzazione di una componente fisica e di un istanza.

Un DATABASE Oracle consiste di file fisici su disco:
- Datafiles: contengono le strutture logiche e i dati del database
- Redolog Files: registrano le modifiche effettuate sul database
- Controlfiles: registra la struttura fisica del database (contiene il nome del database e il riferimento ai file fisici del database); quando un’istanza apre un database, la prima cosa che fa è leggere questo file perché contiene tutte le informazioni necessarie alla localizzazione delle varie risorse.
- Parameter File
- Archived Redo logs
- Password File
- Alert Log File
- Database Backup


Un ISTANZA Oracle consiste di uno strato di memoria e di processi. Il tempo di vita di un’istanza nella RAM è limitato al tempo di start\stop dei processi di backgrond mentre una volta creato il database, esso esiste finchè non si cancellano deliberatamente i file ad esso associati.
Un' istanza Oracle e’ composta dalla SGA - System Global Area (un insieme di buffer di shared memory) e da Processi di background (processi di sistema che gestiscono il database in maniera asincrona) e sono allocati quando l’istanza è startata e rilasciati allo shutdown.




Ad ogni Database corrisponde una sola Istanza. Quindi se su un server sono istallati due database, allora avrò due istanze distinte e separate. Invece ad ogni istanza RAC è associata un solo database.




Single Instance DB


Multi Sinlge Instance DB sullo stesso server


Oralce RAC a 3 nodi


Un'applicazione che lavora su una macchina client crea un processo utente, che genera a sua volta un processo server (o foreground process) sulla macchina dove risiede il database: questo processo comunica con un istanza e questa istanza con il database. Questo è un tipico ambiente SINGLE INSTANCE.
Mentre se istanze multiple  aprono un stesso database e quindi accedono allo stesso storage, si parla di configurazione Oracle RAC (Real Application Cluster).
Associato con ogni server process c’è un'area di memoria ad esso dedicata chiamata PGA - Program Global Area - che contiene i dati di un singolo processo utente ed è allocata da Oracle quando un utente si collega al database e una sessione viene creata.

In un ambiente Oracle RAC esistono due o più istanze che risiedono su server distinti da quella in cui risiede lo strato fisico. Ad esempio, RAC a 3 NODI vuol dire che ci sono 3 Istanze oracle, con sid differenti, su 3 server che interrogano lo stesso database fisico, che risiede su un'altra macchina in cui è istallato il GRID oracle che fa da tramite tra lo strato di memoria e quello fisico. Le istanze sono  contemporaneamente attive in modo da evitare disservizi in caso di caduta di un server.

Post popolari in questo blog

Create e Drop Pluggable Database

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione