You are on page 1of 5

Cold backup en Oracle

Procedimiento para Cold Backup :


Un cold backup requiere que la Base de Datos est en estado shut down. Esto siginifica que al contrario de un hot backup, los usuario no pueden hacer NADA durante ste proceso sobre la base de datos. Por lo tanto, lo primero de todo es hacer un SHUTDOWN a la base de datos (no un shutdown abort). Entonces copiaremos todos los ficheros necesarios a un lugar seguro. Los ficheros son:
Conectado mediante sql+ con user system : Con esta sentencia podemos comprobar los datafiles existentes para el COLD Backup.

Con esta otra sentencia conoceremos los controlfiles :

Con sta obtendremos los online redologs

El fichero de parametrizacin: init.ora o spfile y el fiichero password file (si se usa). Tambin los ficherios de configuracin de red como : listener.ora, tnsnames.ora y sqlnet.ora deben incluirse en el backup. Tambin se puede incluir en el backup el software de Oracle con todo su inventario, el fichero oratab y los scripts de inicio.

Simulacin de disaster (Crearemos algunas tablas, e insertaremos filas dentro de ellas. Tras ello borraremos los datafiles )
Aqu creamos la tabla llamada after_backup

create table after_backup (a number, b varchar2(40)); insert into after_backup values (1, 'before commit'); insert into after_backup values (2, 'also before commit'); commit; insert into after_backup values (3, 'after commit');
Asegurar que no se haga commit en la session hasta que haya borrado los datafiles. Abrir otra sesin y por ejemplo crear un nuevo usuario , en este caso crearemos el usuario user_after_backup :

create user user_after_backup identified by pw; grant dba to user_after_backup;


Ahora , hacer crash a la instancia y borrar la base de datos. Abrir el fichero init.ora en el sitio donde se hizo el backup y modificar su control_file parametro de inicializacin para que apunte a los control files que han sido guardados en el backup. Ejecutar startup mount pfile=c:\oracle\ora81\admin\backup\initadpdb.ora la base de datos. Con el fichero initadpdb.ora que haba sido salvado. Despues de haber montado la base de datos renombrar el datafile (as apuntarn a los nuevos ficheros ..)

alter database rename file 'C:\ORACLE\ORA81\ADMIN\ADPDB\SYSTEM01.DBF' to 'C:\ORACLE\ORA81\ADMIN\backup\SYSTEM01.DBF';

Nota: Los ficheros redo logs en estado : online NUNCA DEBERIAN INCLUIRSE EN EL BACKUP

Aqui tenemos un script : Este es un shell script que hace shutdown a la base de datos, copia los ficheros de la base de datos a un lugar seguro y tras ello arranca ottra vez la base de datos. Tras haber copiado dichos ficheros a un lugar seguro, podremos de manera segura borrar los ficheros redolog archivados. (Archived Redo Logs)

Archived redo logs


Cuando una base de datos est en modo de ejecucin archivelog ( archive log modus), Oracle requiere que los online redo logs sean salvados antes de que sean sobrescritos por una operacin log switch. Dicho salvado puede ser realizado tanto de modo manual como automaticamente mediante el archiver process.

Iniciando el arch process


Un online redo log se guarda normalmente con arch. Hay dos maneras de arrancar el proceso arch: Primero mediante el parmetro de inicializacin log_archive_start. Esto requiere un restart de la base de datos. The second way is to manually start the archiver:
alter system archive log start

However, the archiver will not be started automatically the next time the database is started.

Manually archiving redo logs


In order to manually archive the online redo logs, the following statement must be executed in mount status:
alter database archivelog manual;

The following command archives all redo log file groups that are full but have not been archived.
alter system archive log all;

Showing all desinations


See v$archive_dest.

Showing archived logs


See v$archived_log.

Este shell script selecciona los datafiles, logfiles y control files, les aplica tar y gzip y entonces los envia a un remote host via rsh.

TNS_ADMIN=/export/opt/oracle/8.1.7/network/admin export TNS_ADMIN

ORACLE_SID=some_sid export ORACLE_SID

ORACLE_HOME=/export/opt/oracle/8.1.7 export ORACLE_HOME

DT=`date +%Y.%m.%d`

PFILE=/export/opt/oracle/8.1.7/dbs/init$ORACLE_SID.ora

echo echo Backup for $DT echo Selecting the files that must be backed up.... echo

/export/opt/oracle/8.1.7/bin/sqlplus -S '/ as sysdba' <<EOFSQL

set termout off set pages 0 set lines 120 set feedback off set trimspool on

spool files.2.backup

select name select name

from v$datafile; from v$controlfile;

select member from v$logfile; select '$PFILE' from dual;

spool off

shutdown immediate

exit;

EOFSQL

echo echo now taring... echo

tar cfv - -I files.2.backup | gzip | rsh -l some_user some_host "cat - > /path/to/destdir/backup-$DT.tar.gz"

/export/opt/oracle/8.1.7/bin/sqlplus -S '/ as sysdba' <<EOFSQL startup pfile=$PFILE exit; EOFSQL

You might also like