Durante la mia consulenza su database Oracle, mi è capitato di diagnosticare database in backup mode; ovvia conseguenza di un backup terminato in modo non corretto...
Se ci troviamo a gestire una versione uguale/superiore alla 10g, un semplice
SQL> ALTER DATABASE END BACKUP;
risolverà il problema (vedi con select * from v$backup), ma per le versioni precedenti, il lavoro diventa più operoso: dovremo tablespace per tablespace eseguire un END BACKUP.
Vediamo di facilitare il compito con uno script che chiamo end_backup.sql.
rem -----------------------------------------------------------------------
rem Filename: end_backup.sql
rem Purpose: This script will create a file called end_backup_script.sql
rem - run it to take all tablespaces out of backup mode.
rem -----------------------------------------------------------------------
column cmd format a80 heading "Text"
set feedback off
set heading off
set pagesize 0
spool end_backup_script.sql
select 'alter tablespace '||a.tablespace_name||' end backup;' cmd
from sys.dba_data_files a, sys.v_$backup b
where b.status = 'ACTIVE'
and b.file# = a.file_id
group by a.tablespace_name
/
spool off
set feedback on
set heading on
set pagesize 24
set termout on
start end_backup_script.sql
Salviamo lo script in un file, diciamo $ORACLE_HOME/end_backup.sql ed eseguiamo l'accesso nel database con sqlplus utente sys as sysdba.
Una volta entrati nella shell sql lanciamo
SQL> @?/end_backup.sql
Verifichiamo lo stato del database con
SQL> SELECT * FROM V$BACKUP;
NOT ACTIVE = non in backup mode.
Nessun commento:
Posta un commento