Limplementazione del database Oracle in Aleph500 Udine, marzo 2001
Descrizione del database Oracle Terminologia, struttura del database, componenti e funzionalità principali.
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Terminologia Oracle Server Istanza 1 DB1 DB n Client Istanza n Oracle …
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Istanza Insieme di processi e strutture di memoria Legata ad un solo database alla volta Contiene tutti i meccanismi per il parsing delle query e dei comandi DML Specifica i file e le tabelle di sistema relative a quello specifico database (utenti, datafile, log, ecc.)
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Struttura di unistanza Redo log buffer Data buffer cache Library cache Data dict. cache Shared Pool SGA SMONDBW0PMONCKPTLGWR Data Files Control Files Redo log Files DATABASE Archived Log files Parameter File Password File User process Server process PGA
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Componenti di unistanza System Global Area (SGA): area di memoria per dati e informazioni condivise tra i processi Program Global Area (PGA): area di memoria utilizzata da un singolo processo utente Shared Pool: memorizza i comandi SQL eseguiti più di recente Altri Pool opzionali: Large Pool e Java Pool (8i) Data buffer cache: contiene gli ultimi dati utilizzati Redo log buffer: tiene traccia degli ultimi cambiamenti effettuati nel database Processi in background: DB Writer (DBW0), Checkpoint (CKPT), Log Writer (LGWR)
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Struttura logica e fisica Oggetti LOGICIOggetti FISICI DATABASE TABLESPACE SEGMENT EXTENT BLOCCO ORACLE DATAFILE BLOCCO FILESYSTEM Relazione 1:N
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Istanza: aree di memoria Shared Pool: –Library cache: contiene le informazioni per lesecuzione di codice SQL e librerie condivise –Data dictionary cache: contiene le informazioni sugli oggetti del database (info utente, nomi file, ecc.) Data buffer cache: contiene i blocchi di dati letti dai segmenti del database Redo log buffer: dati relativi alle transazioni e alla traccia delle operazioni eseguite
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Istanza: processi in background System monitor (SMON): si preoccupa dellallineamento di unistanza dopo un crash e della manutenzione di quella corrente Database writer (DBW0): scarica i blocchi marcati dei dati della buffer cache nei datafile Log writer (LGWR): scrive su disco il contenuto del redo log buffer Checkpoint (CKPT): avvia il DBW0 e allinea i file di controllo per listanza Process monitor (PMON): gestisce i processi utente, controllando i lock e il rollback nel caso di failure del processo ARC0 process: processo opzionale per la gestione dellarchiving dei redo log file
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Istanza: file fisici Data file: contengono i dati veri e propri delle tabelle del database Redo log file: mantengono la sequenza delle operazioni DML effettuate per il crash recovery Control file: file binari gestiti dal server per la manutenzione e il controllo dellintegrità del database Parameter file: file di configurazione caricato al momento dellavvio dellistanza Password file: gestisce alcuni utenti accreditati per laccesso allistanza del database
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Comando DML Redo log buffer Data buffer cache Library cache Data dict. cache Shared Pool SGA Data Files Control Files Redo log Files DATABASE User process Server process UPDATE…
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Comando DML 1.Se i dati e i blocchi di rollback non si trovano nella buffer cache, allora vengono copiati dai datafile. I rollback segment contengono i dati prima dellaggiornamento. 2.Apertura dei lock sulle righe da modificare. 3.Nel redo log buffer vengono inseriti i cambiamenti effettuati sui dati. 4.I dati nel data buffer cache vengono modificati (con marcatura dei blocchi).
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Rollback segment Insieme di extent visto come un buffer circolare Ogni extent contiene una transazione che può essere attiva o inattiva (dopo un commit) Una transazione occupa tutti i blocchi necessari negli extent, circolarmente Rischio di frammentazione tra extent Configurazione tramite i parametri MAXEXTENT (#extent disponibili) e OPTIMAL (dimensione di ogni extent)
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Oracle Fast Commit Utilizzato alla fine di un comando DML in alternativa a rollback Rende visibili a tutti gli utenti i cambiamenti sul database Non scrive direttamente su disco ma registra le operazione sul redo log buffer Attiva il processo log writer Vita dei dati (flusso fisico) VS vita dei redo log (flusso logico)
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Redo log files File contenenti la sequenza delle operazioni DML replicati allinterno dei gruppi Manutenzione tramite multiplexing circolare su più dischi Member Gruppo1Gruppo2Gruppo3 Disco 1 Disco 2
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Archiving & Crash Recovery Il recupero dei dati si basa sui record dei Redo log file Questi file possono essere gestiti in modo da recuperare le informazioni contenute in determinati intervalli temporali Memorizzazione (opzionale) di insiemi di redo log files in aree riservate del sistema (archiving) Roll forward automatico allavvio dellistanza (dopo un crash) oppure manuale (comando recover) Stand-by DB basato su redo log files
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Utenti e schema Categorie di utenti: –Amministratore (default): utente del sistema operativo con privilegi di attivazione del server (es.: ORACLE) –Amministratori interni (default): appartengono ad un determinato database e hanno privilegi di attivazione e spegnimento dellistanza (SYS, SYSTEM con privilegi SYSDBA o SYSOPER) –Utenti generici interni: ognuno appartiene ad un database specifico e ha associato uno schema Schema: insieme degli oggetti appartenenti ad un utente interno (tabelle, indici, funzioni, ecc.) con ruoli e privilegi definiti dallamministratore
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Avvio di unistanza Connessione al server tramite user oracle Setting delle variabili dambiente: $ORACLE_HOME, $ORACLE_SID, ecc. Individuazione del parameter file (default): $ORACLE_HOME/dbs/init.ora Avvio utility svrmgrl e connessione sysdba Comando startup: SHUTDOWN NOMOUNT MOUNT OPEN STARTUP Istanza avviata (utile per creare db). Apertura del control file. Il database è montato ma non è accessibile (recovery). Apertura di tutti i file descritti dal control file (default).
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Viste dinamiche Contengono informazioni e parametri inizializzati nella sessione corrente. Leggono direttamente dal control file. Vengono create dallo script: $ORACLE_HOME/rdbms/admin/catalog.sql Si utilizzano tramite il comando SQL select v$database: installazione del database v$sga: memoria allocata v$version: versione del database corrente v$controlfile: ubicazione dei control file v$datafile: ubicazione e parametri dei datafile dictionary: vista statica delle viste dinamiche v$parameter: elenco completo dei parametri (v. show parameter )
Università degli Studi di Udine - CEDA - Settore Informatico Bibliotecario Parametri e viste statiche Comando: show parameter –db_name, processes, log_buffer, ecc. Viste statiche (non disponibili se il db non è aperto): –dba_users: info sugli utenti –dba_tables: info sulle tabelle possedute da un utente –dba_free_space: spazio disponibile nei tablespace e allocazione dei blocchi –dba_indexes: informazioni sugli indici –dba_ind_columns: informazioni sui campi indicizzati –dba_tablespaces –dba_datafiles –dba_rollback_segs