Sommario:
Video: ORACLE BASE FUNDAMENTALS ARCHITECHTURE in less than 5 minutes 2024
Tutte le strutture logiche che vedrete sono nei file di dati del database. Le strutture logiche di Oracle 12c ti consentono di organizzare i tuoi dati in parti gestibili e, logicamente, logiche.
Esaminiamo la relazione tra oggetti logici e oggetti fisici. La freccia punta nella direzione di una relazione uno-a-molti.
Tablespaces in Oracle 12c
Tablespaces sono il primo livello di organizzazione logica della memoria fisica.
Ogni database 12c dovrebbe avere i seguenti tablespace:
-
SYSTEM: Memorizza gli oggetti del database principale che vengono utilizzati per l'esecuzione del database stesso.
-
SYSAUX: Per oggetti ausiliari e non specificamente legati alle funzionalità principali del database.
-
UNDO: Memorizza il rollback o annulla i segmenti utilizzati per il ripristino della transazione.
-
TEMP: Per memoria temporanea.
Ogni tablespace è responsabile dell'organizzazione di uno o più file di dati. In genere, ogni tablespace può essere collegato a un file di dati, ma man mano che il database cresce e i file diventano grandi, è possibile decidere di aggiungere storage sotto forma di più file di dati.
Quindi qual è il prossimo passo per far funzionare il tuo database? Crei alcune aree per memorizzare i tuoi dati. Supponiamo che il tuo database abbia vendite, risorse umane, dati contabili e dati storici. Potresti avere i seguenti tablespace:
-
SALES_DATA
-
SALES_INDEX
-
HR_DATA
-
HR_INDEX
-
ACCOUNTING_DATA
-
ACCOUNTING_INDEX
-
HISTORY_DATA
-
HISTORY_INDEX
Segmenti in Oracle 12c
Segmenti sono la successiva struttura di archiviazione logica dopo tablespace. Segmenti sono oggetti nel database che richiedono l'archiviazione fisica e includono quanto segue:
-
Tabelle
-
Indici
-
Viste materializzate
-
Partizioni
Questi esempi di oggetti sono non < segmenti e non memorizzare i dati effettivi: Procedure
-
Sinonimi
-
Sequenze
-
L'ultima lista di oggetti non vive in un tablespace con segmenti. Sono pezzi di codice che vivono nel tablespace SYSTEM.
Ogni volta che si crea un segmento, specificare quale spazio tabella si desidera farne parte. Questo aiuta con le prestazioni.
Le estensioni in Oracle 12c
le estensioni
sono come gli anelli di crescita di un albero. Ogni volta che un segmento cresce, guadagna una nuova estensione. Quando crei per la prima volta una tabella per archiviare gli oggetti, ottiene la sua prima estensione. Quando si inseriscono i dati in quella tabella, tale estensione si riempie. Quando l'estensione si riempie, afferra un'altra estensione dal tablespace. Quando crei per la prima volta un tablespace, è tutto lo spazio disponibile. Quando inizi a creare oggetti, questo spazio libero viene assegnato ai segmenti sotto forma di estensioni. Il tablespace medio è costituito da estensioni utilizzate e spazio libero.
Quando viene riempito tutto lo spazio disponibile, quel file di dati è fuori dallo spazio. In questo caso, entrano in gioco le tue abilità DBA e decidi tu come liberare più spazio disponibile per i segmenti.
Le estensioni non sono necessariamente contigue. Ad esempio, quando si crea una tabella di articoli e si inseriscono i primi 1 000 articoli, questa potrebbe crescere ed estendersi diverse volte. Ora il tuo segmento potrebbe essere composto da cinque estensioni. Tuttavia, si crea anche una nuova tabella.
Man mano che ogni tabella viene creata in un nuovo tablespace, inizia all'inizio del file di dati. Dopo aver creato la seconda tabella, potrebbe essere necessario estendere nuovamente la prima tabella. La sua prossima estensione arriva dopo la seconda estensione. Alla fine, tutti gli oggetti che condividono un tablespace avranno le loro estensioni unite.
Questa non è una brutta cosa. Negli anni passati, prima che Oracle disponesse di algoritmi migliori per l'archiviazione, i DBA impiegavano molto tempo e sforzi nel tentativo di consolidare queste estensioni. Si chiamava
frammentazione. È una cosa del passato. Non farti risucchiare! Lascia correre. Oracle 12c è pienamente in grado di gestire tali situazioni. Ci sono situazioni in cui si hanno più file di dati in un tablespace. Se un tablespace ha più di un file di dati, il tablespace crea automaticamente estensioni in modo round robin su tutti i file di dati. Questa è un'altra funzionalità di Oracle.
Supponiamo di avere una grande tabella che supporta la maggior parte della tua applicazione. Vive in un tablespace composto da quattro file di dati. Man mano che la tabella si estende, Oracle assegna le estensioni su ogni file di dati come questo:
1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 … e così via
Questo modo, Oracle può sfruttare i dati diffusi su molti dispositivi fisici quando gli utenti accedono ai dati. Riduce la contesa sui segmenti che hanno molta attività.
Blocchi Oracle in Oracle 12c
Un
blocco Oracle è l'unità minima che Oracle leggerà o scriverà in un dato momento. Oracle di solito legge e scrive più di un blocco alla volta, ma questo dipende da Oracle in questi giorni. Avevi un controllo più diretto su come Oracle gestiva le letture e le scritture dei blocchi, ma ora la funzionalità viene automaticamente ottimizzata. È possibile sintonizzarlo manualmente in una certa misura, ma la maggior parte delle installazioni è meglio lasciare a Oracle.
Oracle trova il segmento.
-
Oracle chiede quel segmento se c'è spazio.
-
Il segmento restituisce un blocco non pieno.
-
La riga o la voce di indice viene aggiunta a quel blocco.
-
I blocchi Oracle hanno anche una controparte fisica proprio come fanno i file di dati. I blocchi Oracle sono costituiti da blocchi OS. È la dimensione formattata dell'unità minima di archiviazione sul dispositivo.