Oracle 12c - Guida Completa Distribuito tramite il sito www.manualioracle.it Copyright © 2016 Assi Loris Qualsiasi abuso sarà perseguito e punito secondo i termini di legge. Version: 3.0 Alcuni termini usati sono trademarks registrati dei rispettivi proprietari. Oracle 12c – Guida Completa: Architettura database e Programmazione PL/SQL Sommario Introduzione al Manuale ........................................................................................................................................ 5 Cap 1 Overview dell’Architettura Oracle .................................................................................................... 6 1.1 – Introduzione ad Oracle ..................................................................................................................................6 1.2 – SQL*Plus .................................................................................................... Error! Bookmark not defined. 1.3 – Introduzione all’SQL e al PL/SQL .............................................................. Error! Bookmark not defined. Cap 2 Core Administration ........................................................................................................................... 7 2.1 – I fondamenti della Architettura del DB Oracle .............................................................................................7 2.2 – Strutture di Memoria Oracle........................................................................ Error! Bookmark not defined. 2.3 – I Background Process di Oracle .................................................................. Error! Bookmark not defined. 2.4 – Sessioni Oracle ............................................................................................ Error! Bookmark not defined. 2.5 – Le Tablespace.............................................................................................. Error! Bookmark not defined. 2.6 – Viste di sistema relative alle tablespace ...................................................... Error! Bookmark not defined. Cap 3 Core Administration: Installare e Configurare un db ..................................................................... 8 3.1 – Overview sull’installazione Oracle e sui Pre-Cheks .....................................................................................8 3.2 – Installazione del software e Creazione del db tramite Oracle Universal Installer (OUI) . Error! Bookmark not defined. 3.3 – Creazione del db tramite DBCA ................................................................. Error! Bookmark not defined. 3.4 – I benefits relativi al multitenant Container DataBase .................................. Error! Bookmark not defined. 3.5 – La root e l’architettura Multitenant ............................................................. Error! Bookmark not defined. Cap 4 Core Administration: Miscellaneous .................................................... Error! Bookmark not defined. 4.1 – Configurare server e client network per un database .................................. Error! Bookmark not defined. 4.2 – Monitorare i db alert .................................................................................... Error! Bookmark not defined. 4.3 – Daily Administration Tasks ........................................................................ Error! Bookmark not defined. 4.4 – Oracle Patches ............................................................................................. Error! Bookmark not defined. 4.5 – Cosa è My Oracle Support (MOS) .............................................................. Error! Bookmark not defined. Cap 5 Core Administration: Backup & Recovery .......................................... Error! Bookmark not defined. 5.1 – Introduzione ................................................................................................ Error! Bookmark not defined. 5.2 – RMAN ......................................................................................................... Error! Bookmark not defined. 5.3 – Troubleshoot network, Database Issues e ADR .......................................... Error! Bookmark not defined. 5.4 – Overview del Data Recovery Advisor (DRA) ............................................. Error! Bookmark not defined. 5.5 – Correggere i Data Failures usando il DRA .................................................. Error! Bookmark not defined. 5.6 – Flashback Technology: Database Administration Features ........................ Error! Bookmark not defined. 5.7 – Flashback Technology: Application Development Features ....................... Error! Bookmark not defined. 5.8 – Load e Unload Dati: Oracle dataPump ........................................................ Error! Bookmark not defined. 5.9 – Expdp .......................................................................................................... Error! Bookmark not defined. 5.10 – Impdp ........................................................................................................ Error! Bookmark not defined. Cap 6 Miscellaneous .......................................................................................... Error! Bookmark not defined. 6.1 – SYSAUX ..................................................................................................... Error! Bookmark not defined. 6.2 – Default Permanent Tablespace .................................................................... Error! Bookmark not defined. 6.3 – Redo Logfile Size advisor ........................................................................... Error! Bookmark not defined. 6.4 – Secure File LOBs ........................................................................................ Error! Bookmark not defined. 6.5 – NFS e Direct NFS ....................................................................................... Error! Bookmark not defined. Cap 7 Performance Management .................................................................... Error! Bookmark not defined. 7.1 – Disegna il db per avere Performance ottimali ............................................. Error! Bookmark not defined. 7.2 – Monitor Performance: EM Express ............................................................. Error! Bookmark not defined. 7.3 – Gestione della Memoria, AMM, ASMM .................................................... Error! Bookmark not defined. 7.4 – Analizzare e identificare i Problemi di Performance: AWR, ASH e ADDM ............ Error! Bookmark not defined. 7.5 – Real Application Testing (RAT): Database Reply (DBR) .......................... Error! Bookmark not defined. 7.6 – Real Application Testing (RAT): SQL Performance Analyzer (SPA) ........ Error! Bookmark not defined. 7.7 – Usare il Database Resource Manager (DRM) per gestire le Risorse ........... Error! Bookmark not defined. 7.8 – Implementare il Tuning dell’Applicazione ................................................. Error! Bookmark not defined. Cap 8 Storage ..................................................................................................... Error! Bookmark not defined. 8.1 – Gestire le Strutture del DB .......................................................................... Error! Bookmark not defined. 8.2 – Gli Oracle-Managed Files (OMF) ............................................................... Error! Bookmark not defined. 8.3 – Gestire VLDB ............................................................................................. Error! Bookmark not defined. 8.4 – Implementare la Gestione dello Spazio ....................................................... Error! Bookmark not defined. 8.5 – Compression ................................................................................................ Error! Bookmark not defined. 2 www.manualioracle.it Oracle 12c – Guida Completa: Architettura database e Programmazione PL/SQL 8.6 – Segment Shrink ........................................................................................... Error! Bookmark not defined. Cap 9 Storage: ASM.......................................................................................... Error! Bookmark not defined. 9.1 – Amministrare ASM ..................................................................................... Error! Bookmark not defined. 9.2 – ASM Filenames ........................................................................................... Error! Bookmark not defined. 9.3 – Gestire ASM Disks e ASM Diskgroups ...................................................... Error! Bookmark not defined. 9.4 – Gestire l’ASM Instance ............................................................................... Error! Bookmark not defined. 9.5 – ASMCMD ................................................................................................... Error! Bookmark not defined. Cap 10 - Security .................................................................................................... Error! Bookmark not defined. 10.1 – Sviluppare e Implementare una Security Policy........................................ Error! Bookmark not defined. 10.2 – Gli Utenti ................................................................................................... Error! Bookmark not defined. 10.3 – Object Privileges e System Privileges ..................................................... Error! Bookmark not defined. 10.4 – Come revocare i Privilegi e Quali viste interrogare ................................ Error! Bookmark not defined. 10.5 – Gestire i Ruoli ........................................................................................... Error! Bookmark not defined. 10.6 – Configurare e Gestire l’Auditing ............................................................... Error! Bookmark not defined. 10.7 – Password File ............................................................................................ Error! Bookmark not defined. 10.8 – TDE : Column and Tablespace Encryption ............................................... Error! Bookmark not defined. Cap 11 - Post-Upgrade Tasks e Migrazioni tramite Oracle Data Pump ........... Error! Bookmark not defined. 11.1 – Migrare verso lo Unified Auditing ............................................................ Error! Bookmark not defined. 11.2 – Post-Upgrade Tasks................................................................................... Error! Bookmark not defined. 11.3 – Migrare i dati usando Oracle Data Pump .................................................. Error! Bookmark not defined. Cap 12 - Alcuni Comandi SQL .......................................................................................................................... 9 12.1 – Le tabelle EMP e DEPT ..............................................................................................................................9 12.2 – Popolare e Interrogare EMP e DEPT ........................................................ Error! Bookmark not defined. 12.3 – L’ISO/ANSI standard SQL: il CASE ........................................................ Error! Bookmark not defined. 12.4 – L’ISO/ANSI standard SQL: Introduzione alla Inner Join ......................... Error! Bookmark not defined. 12.5 – L’ISO/ANSI standard SQL: Tipi di Inner Join ......................................... Error! Bookmark not defined. 12.6 – L’ISO/ANSI standard SQL: Cross Join e Outer Join ................................ Error! Bookmark not defined. Cap 13 - Introduzione ai PL/SQL Programs ...................................................... Error! Bookmark not defined. 13.1 – Character Sets............................................................................................ Error! Bookmark not defined. 13.2 – Lexical Units ............................................................................................. Error! Bookmark not defined. 13.3 – Il PL/SQL Program Construct e i suoi Componenti .................................. Error! Bookmark not defined. 13.4 – Variabili PL/SQL ...................................................................................... Error! Bookmark not defined. 13.5 – Le Bind Variables...................................................................................... Error! Bookmark not defined. 13.6 – PL/SQL Control Statements ...................................................................... Error! Bookmark not defined. 13.7 – I Subprograms ........................................................................................... Error! Bookmark not defined. 13.8 – Come invocare una Procedura o Funzione ................................................ Error! Bookmark not defined. Cap 14 - Le Procedure ........................................................................................... Error! Bookmark not defined. 14.1 – Cosa è una stored procedure ...................................................................... Error! Bookmark not defined. 14.2 – Creare e droppare una procedura ............................................................... Error! Bookmark not defined. 14.3 – Formal and Actual Parameters .................................................................. Error! Bookmark not defined. 14.4 – Procedure con Parametri e i Tipi di parameter modes ............................... Error! Bookmark not defined. 14.5 – Invocare una procedura con parametri ...................................................... Error! Bookmark not defined. 14.6 – Il subprogram nella Declarative Section di una Procedura ....................... Error! Bookmark not defined. 14.7 – Come vengono propagate le Exception ..................................................... Error! Bookmark not defined. Cap 15 - Le Funzioni ............................................................................................. Error! Bookmark not defined. 15.1 – Cosa è una stored function ........................................................................ Error! Bookmark not defined. 15.2 – Creare, Invocare e Droppare una Funzione ............................................... Error! Bookmark not defined. 15.3 – Vantaggi e restrizioni delle chiamate dagli SQL statement ....................... Error! Bookmark not defined. 15.4 – Dove chiamare le Funzioni negli SQL statement ...................................... Error! Bookmark not defined. 15.5 – Differenze fra Procedure e Funzioni ......................................................... Error! Bookmark not defined. Cap 16 - Gestire i Subprograms ........................................................................... Error! Bookmark not defined. 16.1 – System Privileges, Object Privileges e Grant Privileges ........................... Error! Bookmark not defined. 16.2 – Differenze fra Invokers Rights e Definers Rights ..................................... Error! Bookmark not defined. 16.3 – Le viste di dizionario per gestire gli stored objects ................................... Error! Bookmark not defined. Cap 17 - I Package ................................................................................................. Error! Bookmark not defined. 17.1 – Creare e Droppare Package specification e un Package body ................... Error! Bookmark not defined. 17.2 – Usare la DESCRIBE per descrivere i package e i suoi componenti .......... Error! Bookmark not defined. 17.3 – Package Construct Public e Private ........................................................... Error! Bookmark not defined. 17.4 – Invocare un package construct .................................................................. Error! Bookmark not defined. 17.5 – Usare un bodiless package ........................................................................ Error! Bookmark not defined. www.manualioracle.it 3 Oracle 12c – Guida Completa: Architettura database e Programmazione PL/SQL 17.6 – I Package: benefici, errori e overloading ................................................... Error! Bookmark not defined. 17.7 – Usare la Forward Referencing ................................................................... Error! Bookmark not defined. 17.8 – Inizializzare variabili con una one-time-only procedure ........................... Error! Bookmark not defined. 17.9 – Usare le PL/SQL tables e i records nei Package ....................................... Error! Bookmark not defined. Cap 18 - Dynamic SQL e Oracle Supplied Packages ........................................ Error! Bookmark not defined. 18.1 – Native Dynamic SQL: l’Execute Immediate ............................................. Error! Bookmark not defined. 18.2 – Oracle supplied Packages .......................................................................... Error! Bookmark not defined. 18.3 – Nuovi Oracle supplied Packages ............................................................... Error! Bookmark not defined. Cap 19 - I trigger.................................................................................................... Error! Bookmark not defined. 19.1 – Introduzione ai Trigger .............................................................................. Error! Bookmark not defined. 19.2 – Creare un DML trigger .............................................................................. Error! Bookmark not defined. 19.3 – I trigger row level e i trigger statement level ............................................. Error! Bookmark not defined. 19.4 – I conditional predicated in un trigger ........................................................ Error! Bookmark not defined. 19.5 – Usare i qualifiers OLD e NEW in un DML Trigger .................................. Error! Bookmark not defined. 19.6 – Gli INSTEAD OF trigger .......................................................................... Error! Bookmark not defined. 19.7 – Cambiare un Trigger Status o Rimuovere un Trigger ............................... Error! Bookmark not defined. 19.8 – Eventi che fanno scattare il DB trigger ..................................................... Error! Bookmark not defined. 19.9 – Creare un trigger per un DDL statement ................................................... Error! Bookmark not defined. 19.10 – Creare un trigger per un system event ..................................................... Error! Bookmark not defined. 19.11 – Miscellaneous riguardo i Trigger ............................................................ Error! Bookmark not defined. 19.12 – Privilegi e Dictionary views associate ai trigger ..................................... Error! Bookmark not defined. Cap 20 - Miscellaneous .......................................................................................... Error! Bookmark not defined. 20.1 – Oracle Application Express (APEX) ......................................................... Error! Bookmark not defined. 20.2 – Approccio DTAP nei database .................................................................. Error! Bookmark not defined. 20.3 – Valid-Time Temporal : Definizioni........................................................... Error! Bookmark not defined. 20.4 – Settare ed Usare la Valid-Time Temporal ................................................. Error! Bookmark not defined. 4 www.manualioracle.it Oracle 12c – Guida Completa: Architettura database e Programmazione PL/SQL Introduzione al Manuale Contenuto In relazione al database Oracle 12c release 1, il presente manuale tratta: o l’amministrazione e l’architettura del database: può anche essere utilizzato come base per la certificazione Oracle 12c (soprattutto per la seconda parte della certificazione 1Z0-060). La maggior parte del contenuto di questo manuale (in particolare dal cap. 5 in poi) si riferisce ad un db 12c “normale” ossia, come nelle precedenti versioni Oracle, non multitenant, detto anche “non-CDB database”. o la programmazione PL/SQL (dal Cap. 12) Tanti argomenti qui descritti non sono trattati in maniera esaustiva ma sono un ottima base da cui partire. Per ulteriori approfondimenti possono essere utili altri manuali ad hoc (relativi ad argomenti vasti come il Tuning, il backup & recovery, le installazioni, ecc…). Audience Il presente manuale è rivolto a chiunque voglia conoscere l’architettura del database Oracle 12c o le basi del linguaggio PL/SQL. Particolarità Il presente manuale è in italiano ma molti termini tecnici in esso contenuti sono in lingua inglese. Abbiamo fatto tale scelta perché spesso a lavoro tali termini vengono detti in inglese e perché riteniamo più utile che i lettori del manuale conoscano tali termini nella lingua usata nella documentazione ufficiale Oracle. Molti argomenti sono schematizzati al fine di fornire una comprensione ed una memorizzazione superiore. Alcune abbreviazioni usate: EM : Enterprise Manager HWM : High Water Mark OS o O.S.: Sistema Operativo MOS : My Oracle Support (un tempo chiamato metalink) cashare: mettere in cache init parameter: initialization parameter (contenuto nell’init file o nell’spfile) recoverato : recovered rollbackare : fare il rollback startare : fare lo startup tunare: fare il tuning Principali Versioni - 24.10.2016 : version 1.0 - 25.10.2016 : version 1.1 varie modifiche e rilascio al pubblico - 06.04.2017 : version 3.0 varie modifiche tra cui l’aggiunta dei capitoli relativi al PL/SQL Disclaimer Non si fornisce alcuna garanzia relativamente al fatto che il presente documento sia privo di errori. Non si assume nessuna responsabilità sugli eventuali errori o danni derivanti dall’uso delle informazioni qui contenute. www.manualioracle.it 5 Oracle 12c – Guida Completa: Architettura database e Programmazione PL/SQL Cap 1 - Overview dell’Architettura Oracle 1.1 – Introduzione ad Oracle Ecco alcune definizioni introduttive : DBMS (Database Management System) Software progettato per creare e manipolare in modo efficiente un database (ovvero un insieme di dati strutturati) solitamente da parte di più utenti. Fra i DBMS più diffusi c’è l’Oracle database, prodotto dalla società americana Oracle Corporation. RDBMS (Relational Database Management System) Come si evince dal suo nome in inglese, è un sistema di gestione del database basato sul modello relazionale. Il modello relazionale è un modello logico di rappresentazione dei dati. Secondo tale modello, qualsiasi dato può essere rappresentato come relazione. E tale relazione può essere rappresentata graficamente tramite una tabella. Esistono sistemi di gestione dei database, commercialmente meno diffusi, che implementano modelli dei dati alternativi a quello relazionale. I modelli alternativi più famosi sono: gerarchico, reticolare e ad oggetti. Oracle Server E’ costituito da 2 principali componenti: - Il database: ……… ……… ……… 6 www.manualioracle.it Oracle 12c – Guida Completa: Architettura database e Programmazione PL/SQL Cap 2 - Core Administration 2.1 – I fondamenti della Architettura del DB Oracle Come detto, l’Oracle Server è costituito da 2 principali componenti: - Il database è usato per contenere e restituire dati. Ha 2 tipi di struttura: o logica: E’ rappresentata dai componenti che si possono vedere nel database (tabelle, indici, ecc..) o fisica: E’ appresenta il metodo di immagazzinamento che Oracle usa internamente (i file fisici) - L’istanza è costituita da: o la struttura di memoria (principalmente SGA e PGA) o i processi di background che gestiscono il DB con compiti distinti e in modo asincrono. Ecco una rappresentazione semplificata dei 2 tipi di struttura del database: ……… ……… ……… www.manualioracle.it 7 Oracle 12c – Guida Completa: Architettura database e Programmazione PL/SQL Cap 3 - Core Administration: Installare e Configurare un db Con l’introduzione dell’architettura multitenant in Oracle 12.1, ora esistono questi tipi di installazione: o installazione solo software (tramite OUI) o creazione database (tramite OUI o tramite DBCA). Esistono questi “sottocasi”: creazione database “classico” come quelli pre-12c (il cosiddetto “non-CDB database”) creazione database multitenant. Ulteriore suddivisione: creazione database CDB creazione database CDB e database PDB creazione database PDB agganciato ad un database CDB esistente In questo capitolo, vedremo sia le installazioni simili alle vecchie release (dunque il cosiddetto “non-CDB database”), sia l’installazione di una architettura multitenant (ossia un CDB e uno o più PDB). 3.1 – Overview sull’installazione Oracle e sui Pre-Cheks In questo capitolo vediamo gli step necessari per effettuare una installazione del software e la creazione di un database in una macchina Linux (negli altri sistemi operativi l’installazione è molto simile, soprattutto in quelli Unix): come detto, tale database potrà essere di tipo “classico” o multitenant. In particolare: ……… ……… ……… 8 www.manualioracle.it Oracle 12c – Guida Completa: Architettura database e Programmazione PL/SQL Cap 4 - Alcuni Comandi SQL 12.1 – Le tabelle EMP e DEPT Negli esempi mostrati in questo manuale o che si trovano sul web riguardo i db, spesso si fa riferimento a queste 2 tabelle: - EMP : elenco degli impiegati. A volte viene anche chiamata EMPLOYEES. - DEPT: elenco dei dipartimenti. A volte viene anche chiamata DEPARTMENTS. Tali tabelle potrebbero essere già presenti nel tuo db nel sample schema chiamato HR. Esse sono legate da una foreign key per cui tutti gli impiegati elencati nella tabella EMP devono avere un dipartimento elencato in DEPT: create table dept ( deptno number(2,0), dname varchar2(14), loc varchar2(13), constraint pk_dept primary key (deptno) ); ……… ……… ……… www.manualioracle.it 9