SlideShare a Scribd company logo
1 of 23
Download to read offline
Strategie di backup e
ripristino dei dati con
ORACLE
Dueville, VI
2023.11.29
Chi sono?
Laurea in Ingegneria Informatica presso Università
degli Studi di Lecce.
Nel 2003 inizio la mia attività in T-Systems Italia
S.p.a. come Operatore di HD per poi passare
nell’area sistemistica con mansioni di DBA Oracle.
Ho seguito clienti in ambito bancario, assicurazioni
, trasporti, energia, manifatturiero e servizi .
Dal 2013 in Engineering D.HUB con medesime
mansioni diventando responsabile del Gruppo
DBA Vicenza.
Nel 2022 inizio la nuova avventura in Datamaze.
www.datamaze.it
Backup e ripristino dei dati
 Sono attività fondamentali!
 Servono a garantire che i dati siano disponibili nel tempo.
 Necessari in situazioni di questo tipo:
 User error – a causa di un errore nella logica dell'applicazione o per
l’esecuzione di un comando errato (update, delete, truncate,..) da
parte dell’operatore umano, i dati nel database vengono modificati
o eliminati in modo errato;
 Media failure – un problema sul supporto fisico ove risiedono i file
del database.
Backup and Recovery: Concetti base
La struttura fisica del database e il ruolo che ciascun elemento riveste nel processo di backup
e recovery sono gli elementi che concorrono a determinare quali tecniche di backup e
recovery utilizzare.
Quali sono le componenti fisiche del database che ci consentono di recoverare i dati?
I file e le altre strutture che compongono un database Oracle archiviano i dati e li proteggono
da possibili guasti.
Backup and Recovery: Concetti base
Physical Database Structures Used in Recovering Data
 Datafiles e data block – Un database Oracle consiste di una
o più unità storage logiche chiamate tablespace; ciascun
tablespace è costituito da uno o piu file fisici che risiedono
sul sistema operativo chiamati datafiles. I dati (tabelle,
indici, procedure,..) risiedono sui datafile. Il database
gestisce lo spazio di archiviazione nel datafile in unità
chiamate data blocks.
 Control Files – Il control file contiene le informazioni
relative alle strutture fisiche del database e al loro stato e
diverse informazioni relative al backup e recovery.
Backup and Recovery: Concetti base
Physical Database Structures Used in Recovering Data
 Redo logs – registrano le modifiche fatte sui dati. Con un
insieme completo di redolog e una vecchia copia di un datafile,
il db può riapplicare tutte le modifiche registrate nei redologs
per ricreare il database ad un PIT tra il momento in cui è stato
eseguito il backup e l’ultima transazione sull’ultimo redolog
disponibile.
 Undo segments – quando un dato viene aggiornato viene
creata un’immagine ‘before update’ così che se una trx effettua
rollback, le informazioni nell’undo permettono di tornare
indietro a prima dell’aggiornamento.
Strumenti per Backup and Recovery: RMAN
e User-Managed Backup
Per eseguire il backup e l’eventuale ripristino in riferimento ai backup fisici,
esistono 2 possibili soluzioni:
 Recovery Manager (RMAN), uno strumento (con client da riga di
comando ed Enterprise Manager GUI interface) che si integra con le
sessioni in esecuzione su Oracle per eseguire una serie di attività di
backup e ripristino, mantenendo inoltre un repository di dati storici
relativi ai backup;
 Il tradizionale backup e ripristino gestito dall'utente, dove sei tu che
gestisci direttamente i file che compongono il tuo database con un mix
di comandi di sistema operativo e funzionalità di backup e ripristino
SQL*Plus.
Strumenti di backup e ripristino
 Strumenti nativi per effettuare le operazioni di backup e
ripristino
 RMAN
 Strumenti di terze parti
 Basati su comandi nativi
 Alcuni player: Veeam, Commvault, TSM,…
Il processo di recovery del database:
Concetti base
Per ricostruire un database da un
backup si fa riferimento a due fasi
distinte: la prima consiste nel
restore della copia di/dei datafile
dal backup e la seconda nel
recover del database fino all’SCN
desiderato riapplicando le
modifiche contenute negli archive
e nei redo logs.
Backup
Il backup è una copia dei dati del nostro database che può essere utilizzata per
ricostruire tali dati. I backups possono essere suddivisi in due categorie:
 Backup fisici (rman)- sono backup dei file fisici utilizzati per contenere i dati e per
recoverare il database ossia datafile, controlfile e archived redolog. In definitiva,
ogni backup fisico è una copia dei file che memorizzano le informazioni del
database in un'altra posizione, su disco o su un dispositivo di archiviazione offline
come una tape library.
 Backup logici (expdp) – essi contengono i dati logici (tabelle, stored procedure,
trigger,…) esportati attraverso l’utility export di Oracle. Tali dati sono conservati in
uno o più file binari (.dmp) e sono utilizzati per essere eventualmente reimportati
nel database con l’utility import.
I backup fisici sono il fondamento di qualsiasi strategia di backup e ripristino. I backup logici
sono un utile complemento ai backup fisici in molte circostanze.
Tipologie di Backup Oracle con RMAN
Ci sono più modi per distinguere tra backup fisici che dipendono sia dallo stato del
database quando il backup è stato eseguito, sia da quale parte del database è stato
backuppato e anche da come il backup risultante è stato conservato.
Consistent and Inconsistent Backups
 Backup consistenti sono quelli effettuati quando tutte le trx nei redolog sono state
applicate ai datafiles. Un db così restorato può essere immediatamente aperto,
senza effettuare media recovery.
Per ragioni di disponibilità h24 del servizio, Oracle è strutturato per lavorare anche con
 Backup inconsistenti, fatti a db aperto, pertanto dopo la fase di restore dei datafile,
effettuerà la recover applicando le modifiche contenute negli archived e online
redo logs prima che il db sia nuovamente aperto.
Tipologie di Backup Oracle con RMAN
Full and Incremental Backups
 FULL - Include tutti i datafile che costituiscono il
database; essi possono essere creati con RMAN o con
comandi di copia file di sistema operativo.
 Incrementali - salvano solo i blocchi dati dei datafile
che sono stati modificati rispetto all’ultimo full.
Image Copies, Backup Sets and Backup Pieces
Il risultato di un bck RMAN può essere sia una image copy che un backup set.
 Image copy - è una copia identica bit-per-bit dei datafile.
 Backup set – un insieme di backup piece, ciascuno contenente la copia di uno o più datafiles.
Un buon piano di backup
 Recovery Point Objective (RPO) è il periodo massimo tollerabile per
quanto riguarda la perdita di dati.
 Definisce sostanzialmente quanti dati possono essere persi a causa di un
disastro.
 L'obiettivo definito per questo KPI ha un impatto sull'implementazione dei
backup.
 Recovery Time Objective (RTO) è il tempo massimo che abbiamo a
disposizione per ripristinare il sistema.
Slide tratta dal modulo di formazione «Amministrare un database server», Datamaze
Pianificare le nostre Strategie di backup
Decidere tra ARCHIVELOG e NOARCHIVELOG Mode
In modalità ARCHIVELOG il redo log in uso, prima di essere sovrascritto, deve essere
archiviato su una destinazione fisica preservando quindi tutte le transazioni che esso
contiene affinché possano essere riapplicate in operazioni di recovery. In
NOARCHIVELOG, i redolog saranno semplicemente sovrascritti ciclicamente
pertanto tutte le trx registrate andranno perse.
Di conseguenza:
 in NOARCHIVELOG non è possible effettuare backup online del db e non si può
recuperare il database ad uno specifico Point-In-Time che richiede l’applicazione
dei redo logs;
 in ARCHIVELOG deve essere previsto dello storage aggiuntivo per la
conservazione degli archivelog; può esserci un minimo (trascurabile) overhead
dovuto ai processi archiver; gli archived redo logs devono essere mantenuti per
un periodo di tempo possibilmente su storage esterno.
Pianificare le nostre strategie di backup
 Determinare la frequenza dei backup
Dipende dalla frequenza con cui vengono create e cancellate le tabelle,
effettuate insert, delete e update nelle tabelle.
 Eseguire i backups prima e dopo eventuali modifiche strutturali
Creazione di nuove tablespace, aggiunta o rename di datafile nelle
tablespace esistenti, modifica dei gruppi dei redologs.
 Backup di Tablespaces più usate.
 Backup dopo operazioni in NOLOGGING.
Operazioni di caricamento in direct path oppure creazione di tabelle e indici
in NOLOGGING che non scrivono nei redologs.
 Export dei Dati ad integrazione dei bck e per maggior flessibilità.
 Mantenere copia della configurazione HW e SW del Server.
Pianificare le nostre Strategie di backup
Archiviare i vecchi backups
Esistono diversi motivi per conservare i backup più vecchi di datafile e
archivelog:
 È necessario un backup precedente dei datafile e degli archivelog per
eseguire la recover a un point-in-time precedente al backup più
recente;
 Se il backup più recente è danneggiato, è comunque possibile
ripristinare il database utilizzando un backup precedente e l'insieme
completo degli archivelog a partire da quel backup precedente;
 Potrebbe essere necessario conservare una copia del database a scopo
di archiviazione.
Scenario 1. Backup Full
Il backup di tipo FULL costituisce la base per ogni successivo ragionamento: la nostra
catena dei backup parte sempre da qui.
In questo caso eseguiamo per esempio ogni giorno il backup full del database.
Supponiamo sia schedulato a mezzanotte. Il nostro crash avviene alle ore 7 del mattino
successivo al backup. Potremo ripristinare il nostro database alla mezzanotte dal
backup della notte precedente, tutti i dati prodotti fino alle ore 7 andranno persi.
Scenario 2. Backup Full + Incrementale
Immaginiamo adesso di avere una strategia di backup che consiste nell’eseguire un
Full la Domenica alle ore 22 e nei successive giorni della settimana, sempre alle ore
22, eseguire l’incrementale. Supponiamo che il crash avvenga alle ore 18 del giovedì.
Oracle partirà dalla restore del full della Domenica, applicherà gli incrementali dal
Lunedì al mercoledì ma tutti i dati prodotti dalle 22 del mercoledì alle 18 del giovedì
andranno persi.
Scenario 3. Backup Full + Incrementale con
Archivelog
Immaginiamo adesso di avere una strategia di backup che consiste nell’eseguire un Full
la Domenica alle ore 22 e nei successive giorni della settimana, sempre alle ore 22,
eseguire l’incrementale. Avendo però il database in ARCHIVELOG, ho anche schedulato
il bck degli archivelog ogni ora. Il nostro crash avviene alle 17.50 del giovedì. Oracle
partirà dalla restore del full della Domenica, applicherà gli incrementali dal Lunedì al
mercoledì e in ultimo gli archivelog prodotti dall’ultimo incrementale, quindi fino alle
17. Andranno persi soli i dati prodotti dalle 17 alle 17.50.
Oracle Flashback Database
La tecnologia di Flashback Database e relativi restore point (disponibile già da versione 10g
ma su Enterprise Ed.) è una funzionalità di protezione dei dati che consente di riportare il
database indietro nel tempo per correggere eventuali problemi causati dalla corruzione
logica del dato o da errori utente in un intervallo di tempo designato. Può essere molto utile
durante gli aggiornamenti dei database, la distribuzione di nuove release applicative e in
quegli gli scenari di test quando i database devono essere creati e ricreati rapidamente.
Si basa sulla configurazione di 3 parametri:
1. DB_RECOVERY_FILE_DEST
2. DB_RECOVERY_FILE_DEST_SIZE
3. DB_FLASHBACK_RETENTION_TARGET
e sulla struttura dei flashback logs, che sono Oracle-generated logs utilizzati per
eseguire le operazioni di flashback, possono essere scritti solo nella fast recovery
area (indicata dalla DB_RECOVER_FILE_DEST) e non possono essere salvati su disco.
Oracle Flashback Database
Un esempio di utilizzo del Flashback Database.
Supponiamo che si debba effettuare un rilascio applicativo che avrà un impatto
significativo sulla base dati. Prima di effettuare tale intervento, si può creare un
restore point sul db:
 SQL> create restore point <restore point name>;
Effettuare quindi il rilascio e in caso di problemi, per i quali si reputa necessario
tornare indietro a prima dell’intervento:
 SQL> flashback database to restore point <restore point name>;
Limitazioni: non può essere utilizzata a fronte di media failure, di cancellazione dei
datafiles, di flashback a un PIT precedente alla restore o rigenerazione di un
controlfile, altro.
Ridondanza
Naturalmente, la strategia di backup scelta deve tener conto sia delle esigenze di
ripristino del database ma anche di questioni relative a costi, risorse, personale e altri
fattori. Laddove possibile si suggerisce sempre di ridondare, duplicare le strutture dati
più sensibili.
Il miglior insieme di ridondanza dovrebbe contenere:
 l’ultimo backup del controlfile e tutti i datafiles;
 tutti gli archivelog generati dopo l’ultimo backup;
 copia degli online redologs;
 copia del current controlfile;
 copia dei file di configurazione quali server parameter file, tnsnames.ora, and
listener.ora
La prima regola per proteggere il nostro insieme di ridondanza è: mettere le copie di
datafile, control file e redo logs su dischi separati.
Il ripristino dei backup
 Nessun backup è valido finché non è stato ripristinato con
successo.
 Cosa dobbiamo fare:
 Validare i file di backup il più spesso possibile
 Mantenere “vivi” i database di test o sviluppo partendo dai
backup di produzione
 Eseguire i test di ripristino e l’aggiornamento della
documentazione.
 Nel caso di ripristino del database… facciamo un backup del
database che stiamo sostituendo

More Related Content

Similar to Strategie di backup e ripristino dei dati con Oracle

CloudWALL EBK | Enterprise Backup
CloudWALL EBK | Enterprise BackupCloudWALL EBK | Enterprise Backup
CloudWALL EBK | Enterprise BackupCloudWALL Italia
 
Presentazione Live Backup 2010 Remota
Presentazione Live Backup 2010 RemotaPresentazione Live Backup 2010 Remota
Presentazione Live Backup 2010 Remotamodestini
 
Presentazione Live Backup 2010 Remota
Presentazione Live Backup 2010 RemotaPresentazione Live Backup 2010 Remota
Presentazione Live Backup 2010 Remotamodestini
 
Symantec Backup Exec 12.5 For Windows Servers
Symantec Backup Exec 12.5 For Windows ServersSymantec Backup Exec 12.5 For Windows Servers
Symantec Backup Exec 12.5 For Windows ServersSymantec Italia
 
Guida al computer - Lezione 85 - Il Riprisino
Guida al computer - Lezione 85 - Il RiprisinoGuida al computer - Lezione 85 - Il Riprisino
Guida al computer - Lezione 85 - Il Riprisinocaioturtle
 
La disponibilita dei dati in azienda strategie di protezione
La disponibilita dei dati in azienda strategie di protezioneLa disponibilita dei dati in azienda strategie di protezione
La disponibilita dei dati in azienda strategie di protezioneVincenzo Virgilio
 
Backup Exec 2010. Domande frequenti
Backup Exec 2010. Domande frequentiBackup Exec 2010. Domande frequenti
Backup Exec 2010. Domande frequentiSymantec Italia
 
Hosting Backup: 3 soluzioni a confronto #TipOfTheDay
Hosting Backup: 3 soluzioni a confronto   #TipOfTheDayHosting Backup: 3 soluzioni a confronto   #TipOfTheDay
Hosting Backup: 3 soluzioni a confronto #TipOfTheDayAruba S.p.A.
 
Symantec Backup Exec System Recovery 8. Domande frequenti
Symantec Backup Exec System Recovery 8. Domande frequentiSymantec Backup Exec System Recovery 8. Domande frequenti
Symantec Backup Exec System Recovery 8. Domande frequentiSymantec Italia
 
Wss Solution Framework
Wss Solution FrameworkWss Solution Framework
Wss Solution Frameworkmakkros
 
Guida al Computer - Lezione 200 - Pre-Ripristino e Post-Ripristino: Linee guida
Guida al Computer - Lezione 200 - Pre-Ripristino e Post-Ripristino: Linee guidaGuida al Computer - Lezione 200 - Pre-Ripristino e Post-Ripristino: Linee guida
Guida al Computer - Lezione 200 - Pre-Ripristino e Post-Ripristino: Linee guidacaioturtle
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioMongoDB
 
Symantec Backup Exec 2010 per Windows Small Business Server
Symantec Backup Exec 2010 per Windows Small Business ServerSymantec Backup Exec 2010 per Windows Small Business Server
Symantec Backup Exec 2010 per Windows Small Business ServerSymantec Italia
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackPar-Tec S.p.A.
 
Come eseguire a mano Backup e Restore del database di Argo CMS
Come eseguire a mano Backup e Restore del database di Argo CMSCome eseguire a mano Backup e Restore del database di Argo CMS
Come eseguire a mano Backup e Restore del database di Argo CMSKEA s.r.l.
 
MySQL Day Milano 2019 - Il backup non ammette ignoranza
MySQL Day Milano 2019 - Il backup non ammette ignoranzaMySQL Day Milano 2019 - Il backup non ammette ignoranza
MySQL Day Milano 2019 - Il backup non ammette ignoranzaPar-Tec S.p.A.
 
Quick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerQuick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerAlessandro Alpi
 

Similar to Strategie di backup e ripristino dei dati con Oracle (20)

CloudWALL EBK | Enterprise Backup
CloudWALL EBK | Enterprise BackupCloudWALL EBK | Enterprise Backup
CloudWALL EBK | Enterprise Backup
 
Presentazione Live Backup 2010 Remota
Presentazione Live Backup 2010 RemotaPresentazione Live Backup 2010 Remota
Presentazione Live Backup 2010 Remota
 
Presentazione Live Backup 2010 Remota
Presentazione Live Backup 2010 RemotaPresentazione Live Backup 2010 Remota
Presentazione Live Backup 2010 Remota
 
Symantec Backup Exec 12.5 For Windows Servers
Symantec Backup Exec 12.5 For Windows ServersSymantec Backup Exec 12.5 For Windows Servers
Symantec Backup Exec 12.5 For Windows Servers
 
Guida al computer - Lezione 85 - Il Riprisino
Guida al computer - Lezione 85 - Il RiprisinoGuida al computer - Lezione 85 - Il Riprisino
Guida al computer - Lezione 85 - Il Riprisino
 
La disponibilita dei dati in azienda strategie di protezione
La disponibilita dei dati in azienda strategie di protezioneLa disponibilita dei dati in azienda strategie di protezione
La disponibilita dei dati in azienda strategie di protezione
 
Backup Exec 2010. Domande frequenti
Backup Exec 2010. Domande frequentiBackup Exec 2010. Domande frequenti
Backup Exec 2010. Domande frequenti
 
ORM Java - Hibernate
ORM Java - HibernateORM Java - Hibernate
ORM Java - Hibernate
 
Hosting Backup: 3 soluzioni a confronto #TipOfTheDay
Hosting Backup: 3 soluzioni a confronto   #TipOfTheDayHosting Backup: 3 soluzioni a confronto   #TipOfTheDay
Hosting Backup: 3 soluzioni a confronto #TipOfTheDay
 
Symantec Backup Exec System Recovery 8. Domande frequenti
Symantec Backup Exec System Recovery 8. Domande frequentiSymantec Backup Exec System Recovery 8. Domande frequenti
Symantec Backup Exec System Recovery 8. Domande frequenti
 
Oracle 1
Oracle 1Oracle 1
Oracle 1
 
Wss Solution Framework
Wss Solution FrameworkWss Solution Framework
Wss Solution Framework
 
Guida al Computer - Lezione 200 - Pre-Ripristino e Post-Ripristino: Linee guida
Guida al Computer - Lezione 200 - Pre-Ripristino e Post-Ripristino: Linee guidaGuida al Computer - Lezione 200 - Pre-Ripristino e Post-Ripristino: Linee guida
Guida al Computer - Lezione 200 - Pre-Ripristino e Post-Ripristino: Linee guida
 
Back to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizioBack to Basics, webinar 6: Messa in esercizio
Back to Basics, webinar 6: Messa in esercizio
 
Symantec Backup Exec 2010 per Windows Small Business Server
Symantec Backup Exec 2010 per Windows Small Business ServerSymantec Backup Exec 2010 per Windows Small Business Server
Symantec Backup Exec 2010 per Windows Small Business Server
 
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle OpenstackMySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
MySQL Tech Tour 2016 - Database-as-a-Service con MySQL e Oracle Openstack
 
Come eseguire a mano Backup e Restore del database di Argo CMS
Come eseguire a mano Backup e Restore del database di Argo CMSCome eseguire a mano Backup e Restore del database di Argo CMS
Come eseguire a mano Backup e Restore del database di Argo CMS
 
Ha solutions su power i
Ha solutions su power iHa solutions su power i
Ha solutions su power i
 
MySQL Day Milano 2019 - Il backup non ammette ignoranza
MySQL Day Milano 2019 - Il backup non ammette ignoranzaMySQL Day Milano 2019 - Il backup non ammette ignoranza
MySQL Day Milano 2019 - Il backup non ammette ignoranza
 
Quick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerQuick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL Server
 

More from Datamaze

SQL Server Hardening
SQL Server HardeningSQL Server Hardening
SQL Server HardeningDatamaze
 
SQL Server Health Check: le slide del webinar
SQL Server Health Check: le slide del webinarSQL Server Health Check: le slide del webinar
SQL Server Health Check: le slide del webinarDatamaze
 
Strumenti di Business Intelligence 3: Power BI
Strumenti di Business Intelligence 3: Power BIStrumenti di Business Intelligence 3: Power BI
Strumenti di Business Intelligence 3: Power BIDatamaze
 
Strumenti di Business Intelligence 2: soluzioni BI a confronto
Strumenti di Business Intelligence 2: soluzioni BI a confrontoStrumenti di Business Intelligence 2: soluzioni BI a confronto
Strumenti di Business Intelligence 2: soluzioni BI a confrontoDatamaze
 
Strumenti di Business Intellingence 1: introduzione al data warehouse
Strumenti di Business Intellingence 1: introduzione al data warehouseStrumenti di Business Intellingence 1: introduzione al data warehouse
Strumenti di Business Intellingence 1: introduzione al data warehouseDatamaze
 
La gestione dei database secondo il GDPR – SQL Server
La gestione dei database secondo il GDPR – SQL ServerLa gestione dei database secondo il GDPR – SQL Server
La gestione dei database secondo il GDPR – SQL ServerDatamaze
 

More from Datamaze (6)

SQL Server Hardening
SQL Server HardeningSQL Server Hardening
SQL Server Hardening
 
SQL Server Health Check: le slide del webinar
SQL Server Health Check: le slide del webinarSQL Server Health Check: le slide del webinar
SQL Server Health Check: le slide del webinar
 
Strumenti di Business Intelligence 3: Power BI
Strumenti di Business Intelligence 3: Power BIStrumenti di Business Intelligence 3: Power BI
Strumenti di Business Intelligence 3: Power BI
 
Strumenti di Business Intelligence 2: soluzioni BI a confronto
Strumenti di Business Intelligence 2: soluzioni BI a confrontoStrumenti di Business Intelligence 2: soluzioni BI a confronto
Strumenti di Business Intelligence 2: soluzioni BI a confronto
 
Strumenti di Business Intellingence 1: introduzione al data warehouse
Strumenti di Business Intellingence 1: introduzione al data warehouseStrumenti di Business Intellingence 1: introduzione al data warehouse
Strumenti di Business Intellingence 1: introduzione al data warehouse
 
La gestione dei database secondo il GDPR – SQL Server
La gestione dei database secondo il GDPR – SQL ServerLa gestione dei database secondo il GDPR – SQL Server
La gestione dei database secondo il GDPR – SQL Server
 

Strategie di backup e ripristino dei dati con Oracle

  • 1. Strategie di backup e ripristino dei dati con ORACLE Dueville, VI 2023.11.29
  • 2. Chi sono? Laurea in Ingegneria Informatica presso Università degli Studi di Lecce. Nel 2003 inizio la mia attività in T-Systems Italia S.p.a. come Operatore di HD per poi passare nell’area sistemistica con mansioni di DBA Oracle. Ho seguito clienti in ambito bancario, assicurazioni , trasporti, energia, manifatturiero e servizi . Dal 2013 in Engineering D.HUB con medesime mansioni diventando responsabile del Gruppo DBA Vicenza. Nel 2022 inizio la nuova avventura in Datamaze. www.datamaze.it
  • 3. Backup e ripristino dei dati  Sono attività fondamentali!  Servono a garantire che i dati siano disponibili nel tempo.  Necessari in situazioni di questo tipo:  User error – a causa di un errore nella logica dell'applicazione o per l’esecuzione di un comando errato (update, delete, truncate,..) da parte dell’operatore umano, i dati nel database vengono modificati o eliminati in modo errato;  Media failure – un problema sul supporto fisico ove risiedono i file del database.
  • 4. Backup and Recovery: Concetti base La struttura fisica del database e il ruolo che ciascun elemento riveste nel processo di backup e recovery sono gli elementi che concorrono a determinare quali tecniche di backup e recovery utilizzare. Quali sono le componenti fisiche del database che ci consentono di recoverare i dati? I file e le altre strutture che compongono un database Oracle archiviano i dati e li proteggono da possibili guasti.
  • 5. Backup and Recovery: Concetti base Physical Database Structures Used in Recovering Data  Datafiles e data block – Un database Oracle consiste di una o più unità storage logiche chiamate tablespace; ciascun tablespace è costituito da uno o piu file fisici che risiedono sul sistema operativo chiamati datafiles. I dati (tabelle, indici, procedure,..) risiedono sui datafile. Il database gestisce lo spazio di archiviazione nel datafile in unità chiamate data blocks.  Control Files – Il control file contiene le informazioni relative alle strutture fisiche del database e al loro stato e diverse informazioni relative al backup e recovery.
  • 6. Backup and Recovery: Concetti base Physical Database Structures Used in Recovering Data  Redo logs – registrano le modifiche fatte sui dati. Con un insieme completo di redolog e una vecchia copia di un datafile, il db può riapplicare tutte le modifiche registrate nei redologs per ricreare il database ad un PIT tra il momento in cui è stato eseguito il backup e l’ultima transazione sull’ultimo redolog disponibile.  Undo segments – quando un dato viene aggiornato viene creata un’immagine ‘before update’ così che se una trx effettua rollback, le informazioni nell’undo permettono di tornare indietro a prima dell’aggiornamento.
  • 7. Strumenti per Backup and Recovery: RMAN e User-Managed Backup Per eseguire il backup e l’eventuale ripristino in riferimento ai backup fisici, esistono 2 possibili soluzioni:  Recovery Manager (RMAN), uno strumento (con client da riga di comando ed Enterprise Manager GUI interface) che si integra con le sessioni in esecuzione su Oracle per eseguire una serie di attività di backup e ripristino, mantenendo inoltre un repository di dati storici relativi ai backup;  Il tradizionale backup e ripristino gestito dall'utente, dove sei tu che gestisci direttamente i file che compongono il tuo database con un mix di comandi di sistema operativo e funzionalità di backup e ripristino SQL*Plus.
  • 8. Strumenti di backup e ripristino  Strumenti nativi per effettuare le operazioni di backup e ripristino  RMAN  Strumenti di terze parti  Basati su comandi nativi  Alcuni player: Veeam, Commvault, TSM,…
  • 9. Il processo di recovery del database: Concetti base Per ricostruire un database da un backup si fa riferimento a due fasi distinte: la prima consiste nel restore della copia di/dei datafile dal backup e la seconda nel recover del database fino all’SCN desiderato riapplicando le modifiche contenute negli archive e nei redo logs.
  • 10. Backup Il backup è una copia dei dati del nostro database che può essere utilizzata per ricostruire tali dati. I backups possono essere suddivisi in due categorie:  Backup fisici (rman)- sono backup dei file fisici utilizzati per contenere i dati e per recoverare il database ossia datafile, controlfile e archived redolog. In definitiva, ogni backup fisico è una copia dei file che memorizzano le informazioni del database in un'altra posizione, su disco o su un dispositivo di archiviazione offline come una tape library.  Backup logici (expdp) – essi contengono i dati logici (tabelle, stored procedure, trigger,…) esportati attraverso l’utility export di Oracle. Tali dati sono conservati in uno o più file binari (.dmp) e sono utilizzati per essere eventualmente reimportati nel database con l’utility import. I backup fisici sono il fondamento di qualsiasi strategia di backup e ripristino. I backup logici sono un utile complemento ai backup fisici in molte circostanze.
  • 11. Tipologie di Backup Oracle con RMAN Ci sono più modi per distinguere tra backup fisici che dipendono sia dallo stato del database quando il backup è stato eseguito, sia da quale parte del database è stato backuppato e anche da come il backup risultante è stato conservato. Consistent and Inconsistent Backups  Backup consistenti sono quelli effettuati quando tutte le trx nei redolog sono state applicate ai datafiles. Un db così restorato può essere immediatamente aperto, senza effettuare media recovery. Per ragioni di disponibilità h24 del servizio, Oracle è strutturato per lavorare anche con  Backup inconsistenti, fatti a db aperto, pertanto dopo la fase di restore dei datafile, effettuerà la recover applicando le modifiche contenute negli archived e online redo logs prima che il db sia nuovamente aperto.
  • 12. Tipologie di Backup Oracle con RMAN Full and Incremental Backups  FULL - Include tutti i datafile che costituiscono il database; essi possono essere creati con RMAN o con comandi di copia file di sistema operativo.  Incrementali - salvano solo i blocchi dati dei datafile che sono stati modificati rispetto all’ultimo full. Image Copies, Backup Sets and Backup Pieces Il risultato di un bck RMAN può essere sia una image copy che un backup set.  Image copy - è una copia identica bit-per-bit dei datafile.  Backup set – un insieme di backup piece, ciascuno contenente la copia di uno o più datafiles.
  • 13. Un buon piano di backup  Recovery Point Objective (RPO) è il periodo massimo tollerabile per quanto riguarda la perdita di dati.  Definisce sostanzialmente quanti dati possono essere persi a causa di un disastro.  L'obiettivo definito per questo KPI ha un impatto sull'implementazione dei backup.  Recovery Time Objective (RTO) è il tempo massimo che abbiamo a disposizione per ripristinare il sistema. Slide tratta dal modulo di formazione «Amministrare un database server», Datamaze
  • 14. Pianificare le nostre Strategie di backup Decidere tra ARCHIVELOG e NOARCHIVELOG Mode In modalità ARCHIVELOG il redo log in uso, prima di essere sovrascritto, deve essere archiviato su una destinazione fisica preservando quindi tutte le transazioni che esso contiene affinché possano essere riapplicate in operazioni di recovery. In NOARCHIVELOG, i redolog saranno semplicemente sovrascritti ciclicamente pertanto tutte le trx registrate andranno perse. Di conseguenza:  in NOARCHIVELOG non è possible effettuare backup online del db e non si può recuperare il database ad uno specifico Point-In-Time che richiede l’applicazione dei redo logs;  in ARCHIVELOG deve essere previsto dello storage aggiuntivo per la conservazione degli archivelog; può esserci un minimo (trascurabile) overhead dovuto ai processi archiver; gli archived redo logs devono essere mantenuti per un periodo di tempo possibilmente su storage esterno.
  • 15. Pianificare le nostre strategie di backup  Determinare la frequenza dei backup Dipende dalla frequenza con cui vengono create e cancellate le tabelle, effettuate insert, delete e update nelle tabelle.  Eseguire i backups prima e dopo eventuali modifiche strutturali Creazione di nuove tablespace, aggiunta o rename di datafile nelle tablespace esistenti, modifica dei gruppi dei redologs.  Backup di Tablespaces più usate.  Backup dopo operazioni in NOLOGGING. Operazioni di caricamento in direct path oppure creazione di tabelle e indici in NOLOGGING che non scrivono nei redologs.  Export dei Dati ad integrazione dei bck e per maggior flessibilità.  Mantenere copia della configurazione HW e SW del Server.
  • 16. Pianificare le nostre Strategie di backup Archiviare i vecchi backups Esistono diversi motivi per conservare i backup più vecchi di datafile e archivelog:  È necessario un backup precedente dei datafile e degli archivelog per eseguire la recover a un point-in-time precedente al backup più recente;  Se il backup più recente è danneggiato, è comunque possibile ripristinare il database utilizzando un backup precedente e l'insieme completo degli archivelog a partire da quel backup precedente;  Potrebbe essere necessario conservare una copia del database a scopo di archiviazione.
  • 17. Scenario 1. Backup Full Il backup di tipo FULL costituisce la base per ogni successivo ragionamento: la nostra catena dei backup parte sempre da qui. In questo caso eseguiamo per esempio ogni giorno il backup full del database. Supponiamo sia schedulato a mezzanotte. Il nostro crash avviene alle ore 7 del mattino successivo al backup. Potremo ripristinare il nostro database alla mezzanotte dal backup della notte precedente, tutti i dati prodotti fino alle ore 7 andranno persi.
  • 18. Scenario 2. Backup Full + Incrementale Immaginiamo adesso di avere una strategia di backup che consiste nell’eseguire un Full la Domenica alle ore 22 e nei successive giorni della settimana, sempre alle ore 22, eseguire l’incrementale. Supponiamo che il crash avvenga alle ore 18 del giovedì. Oracle partirà dalla restore del full della Domenica, applicherà gli incrementali dal Lunedì al mercoledì ma tutti i dati prodotti dalle 22 del mercoledì alle 18 del giovedì andranno persi.
  • 19. Scenario 3. Backup Full + Incrementale con Archivelog Immaginiamo adesso di avere una strategia di backup che consiste nell’eseguire un Full la Domenica alle ore 22 e nei successive giorni della settimana, sempre alle ore 22, eseguire l’incrementale. Avendo però il database in ARCHIVELOG, ho anche schedulato il bck degli archivelog ogni ora. Il nostro crash avviene alle 17.50 del giovedì. Oracle partirà dalla restore del full della Domenica, applicherà gli incrementali dal Lunedì al mercoledì e in ultimo gli archivelog prodotti dall’ultimo incrementale, quindi fino alle 17. Andranno persi soli i dati prodotti dalle 17 alle 17.50.
  • 20. Oracle Flashback Database La tecnologia di Flashback Database e relativi restore point (disponibile già da versione 10g ma su Enterprise Ed.) è una funzionalità di protezione dei dati che consente di riportare il database indietro nel tempo per correggere eventuali problemi causati dalla corruzione logica del dato o da errori utente in un intervallo di tempo designato. Può essere molto utile durante gli aggiornamenti dei database, la distribuzione di nuove release applicative e in quegli gli scenari di test quando i database devono essere creati e ricreati rapidamente. Si basa sulla configurazione di 3 parametri: 1. DB_RECOVERY_FILE_DEST 2. DB_RECOVERY_FILE_DEST_SIZE 3. DB_FLASHBACK_RETENTION_TARGET e sulla struttura dei flashback logs, che sono Oracle-generated logs utilizzati per eseguire le operazioni di flashback, possono essere scritti solo nella fast recovery area (indicata dalla DB_RECOVER_FILE_DEST) e non possono essere salvati su disco.
  • 21. Oracle Flashback Database Un esempio di utilizzo del Flashback Database. Supponiamo che si debba effettuare un rilascio applicativo che avrà un impatto significativo sulla base dati. Prima di effettuare tale intervento, si può creare un restore point sul db:  SQL> create restore point <restore point name>; Effettuare quindi il rilascio e in caso di problemi, per i quali si reputa necessario tornare indietro a prima dell’intervento:  SQL> flashback database to restore point <restore point name>; Limitazioni: non può essere utilizzata a fronte di media failure, di cancellazione dei datafiles, di flashback a un PIT precedente alla restore o rigenerazione di un controlfile, altro.
  • 22. Ridondanza Naturalmente, la strategia di backup scelta deve tener conto sia delle esigenze di ripristino del database ma anche di questioni relative a costi, risorse, personale e altri fattori. Laddove possibile si suggerisce sempre di ridondare, duplicare le strutture dati più sensibili. Il miglior insieme di ridondanza dovrebbe contenere:  l’ultimo backup del controlfile e tutti i datafiles;  tutti gli archivelog generati dopo l’ultimo backup;  copia degli online redologs;  copia del current controlfile;  copia dei file di configurazione quali server parameter file, tnsnames.ora, and listener.ora La prima regola per proteggere il nostro insieme di ridondanza è: mettere le copie di datafile, control file e redo logs su dischi separati.
  • 23. Il ripristino dei backup  Nessun backup è valido finché non è stato ripristinato con successo.  Cosa dobbiamo fare:  Validare i file di backup il più spesso possibile  Mantenere “vivi” i database di test o sviluppo partendo dai backup di produzione  Eseguire i test di ripristino e l’aggiornamento della documentazione.  Nel caso di ripristino del database… facciamo un backup del database che stiamo sostituendo

Editor's Notes

  1. DATA BLOCK: la più piccola unità dati utilizzata dal database così come è la più piccola unità di archiviazione che il database può allocare. Quando il dato viene modificato, esso non è scritto immediatamente sul datafile ma la modifica avviene in memoria e scritta sul datafile dopo un certo intervallo di tempo; se il database viene spento in modo irregolare (instance failure, shutdown abort…) allora alcune modifiche ai dati saranno in memoria ma non sui datafile. CF: Database information (RESETLOGS SCN and time stamp),Tablespace and datafile records (filenames, datafile checkpoints, read/write status, offline ranges), Information about redo threads (current online redo log), Log records (log sequence numbers, SCN range in each log), A record of past RMAN backups, Information about corrupt datafile blocks
  2. UNDO: Nel contesto della recovery, le informazioni nell’undo vengono utilizzate per annullare le trx non committate dopo che sono stati applicati i redologs ai datafiles.
  3. Backup consistenti - Tuttavia, un bck consistente può essere creato solo a fronte di uno spegnimento pulito (normal) del database (non uno shutdown abort o dopo un crash del db). Backup inconsistenti - sarà quindi necessario avere il database in ARCHIVELOG mode.
  4. L’incrementale permette di ridurre notevolmente I tempi di recover perchè recupera I blocchi modificati rispetto al full evitando l’applicazione dei redolog. I backup incrementali possono essere creati solo con RMAN. Image copy - (la stessa che creerei col commando cp di Unix o il copy di Windows) con il plus però che RMAN effettua anche un check su possible corruzione del datafile. I backup set - sono la sola modalità con cui RMAN può scrivere i suoi bck su media manager device come p.e. le tape libraries.
  5. Questa funzionalità fornisce un'alternativa più efficiente al ripristino point-in-time e non richiede il ripristino preventivo del backup del database.