Oracle Enterprise Backup Utility (EBU) e' un tool di Oracle che consente di effettuare backup e restore di base dati Oracle semplificando le attivita' di amministrazione.
Con EBU e' possibile effettuare tutte le attivita' di salvataggio del database, degli archived redo log, in linea/fuori linea ed i relativi ripristini. EBU si occupa di interfacciare la base dati per mandare i corretti comandi per garantire salvataggi corretti (eg. ALTER TABLESPACE xyz BEGIN BACKUP) e, dall'altro lato, di interfacciare un driver per la gestione di una libreria (eg. Legato Networker) per salvare su nastro i dati.
E' importante riassumere qualche elemento sull'architettura di EBU.
EBU utilizza un repository per memorizzare le informazioni relative a tutti i DB da gestire, per mantenere lo storico dei salvataggi effettuati, ... Ovviamente il repository e' mantenuto su un istanza Oracle.
Al fine di ottenere il massimo parallelismo durante l'effettuazione dei backup (molto utile, leggi necessario, quando si dispone di librerie multi-drive) EBU puo' effettuare il backup di piu' datafile ed attivare piu' processi in contemporanea. Ciascun processo effettua una lettura dai file di partenza ed interagisce con la libreria di nastri per il relativo salvataggio.
EBU si lancia con ebu... Va bene: basta con l'architettura, leggete il seguito e vedrete!
Il salvataggio di una base dati viene effettuato lanciando uno script shell che definisce alcune variabili d'ambiente e richiama EBU con i corretti parametri. Come esempio di script di lancio:
export ORACLE_HOME=/usr/oracle export TNS_ADMIN=/usr/oracle/network/admin export OBK_HOME=/usr/oracle/obackup export EBU_HOME=/usr/oracle/obackup export PATH=$PATH:/usr/opt/networker/bin:$ORACLE_HOME/bin:$OBK_HOME/bin export NSR_SERVER=server1 export NSR_CLIENT=server2 export NSR_GROUP="Gr_backup_01" export ORACLE_SID=test ebu /usr/oracle/amm/bck_script/backup_testCome esempio di file di parametri:
backup online database db_name="test" parallel=16 archivelog archdelete log="/usr/oracle/amm/logs/obk_online_test.log" trace="/usr/oracle/amm/logs/obk_online_test.trc"
Al posto del comando ebu si puo' utilizzare obackup (ragioni storiche come per alcune delle variabili d'ambiente indicate nello script). Con un file di parametri analogo (mutatis mudandis) si effettua in backup dei log archive, il backup a freddo, ...
Lo script e' spesso lanciato automaticamente dal software di gestione della libreria di nastri o da un programma di schedulazione. In tal modo non sono richiesti interventi manuali per il lancio.
Le attivita' di ripristino dati con EBU non e' di semplice effettuazione. Infatti richiede due passi. Nel primo passo EBU si occupa di richiedere alla libreria di nastri tutti i file necessari al recupero della base dati. Il secondo passo invece richiede l'intervento diretto del DBA che deve effettuare un recovery manuale dei dati.
Anche il ripristino avviene con l'esecuzione di uno script. Come esempio di file di parametri:
restore database db_name="test" oracle_sid="test" to = "11/17/1999 19:58:00" log="/usr/oracle/amm/logs/rest_13.log" trace="/usr/oracle/amm/logs/rest_13.trc"
Se tutto va bene al termine del restore tutti i datafile, i control file, i redo log sono aggiornati ed al loro posto. Naturalmente il DB non funziona! E' infatti necessario effettuare il recover della base dati per applicare gli archived redo log (nel caso di backup on-line). Questa e' una "normale" attivita' di recover della base dati che puo' essere effettuata dal DBA (per altri esempi o casi consultare il documento Attivita' di recovery sull'RDBMS Oracle). Per esempio:
$ svrmgrl SVRMGR> connect internal SVRMGR> startup mount SVRMGR> alter database recover until time '1999-11-17:19:58'; SVRMGR> alter database open resetlogs; SVRMGR> exit
Buona fortuna!
Al fine di poter utilizzare correttamente EBU per i backup ed i restore sono necessarie alcune condizioni e debbono essere effettuate alcune attivita' di preparazione.
Le basi dati su cui avvengono salvataggi online debbono operare in log archive mode. Per abilitare il log archiving, dopo aver impostato i relativi parametri nel file di initSID.ora e' necessario effettuare lo startup della base dati da Server Manager con i comandi:
startup mount
alter database archivelog;
alter database open;
Maggiori dettagli sull'attivazione del log archiving si
trovano nel documento Utilizzo del log archiving in Oracle.
EBU si connette alla base dati come un utente remoto pertanto e' necessario abilitare l'accesso all'utente remoto utilizzato da EBU. Deve essere creato un password file con i comandi (ricordarsi di settare l'ORACLE_SID):
orapwd file=orapwSID password=xyz entries=100
Quindi deve essere inserito il seguente parametro nel file
initSID.ora:
remote_login_passwordfile = exclusive
Affinche' EBU possa effettuare operazioni su una base dati questa deve essere "registrata". La registrazione di una base dati si effettua lanciando il comando obackup register_script dove register_script contiene la configurazione da effettuare come nel seguente esempio:
register
db_name="DBNAME"
oracle_home="/usr/oracle/dunix/7.3.4"
oracle_sid="SID"
pfile="/usr/oracle/dunix/7.3.4/dbs/initSID.ora"
log="/usr/oracle/logs/register_SID.log"
Oracle Enterprise Backup Utility
Data: 4 Luglio 2000
Versione: 1.0.1
Autore: mail@meo.bogliolo.name