You are on page 1of 14

TIPO DE RECUPERACION

1. RECUPERACION DE SPFILE CUANDO NO EXISTE


BACKUP
2. RECUPERACION DE SPFILE CON EL AUTOBACKUP
3. PERDIDA DE UN CONTROL FILE MULTIPLEXADO
4. RECUPERACION DE CONTROLFILE CUANDO NO EXISTE
BACKUP
5. RECUPERACION DE CONTROLFILE CON AUTOBACKUP
6. RECUPERACION DE TBS EN FRIO SIN ARCHIVELOG*
7. RECUPERACION DE TBS EN FRIO CON ARCHIVELOG,
SIN RMAN*
8. RECUPERACION DE TODA LA BASE DE DATOS
9. RECUPERACION DE LA BASE DE DATOS EN EL TIEMPO*

PERDIDA
SPFILE
SPFILE
CF
CF
CF
TBS
TBS
BD
BD

---------------------------------------------------------------------------------------------1. RECUPERACION DE SPFILE CUANDO NO EXISTE BACKUP


---------------------------------------------------------------------------------------------El ejercicio simula perdida de SPFILE, sin contar con Backup.

UBICACIN DEL SPFILE:


SELECT * FROM V$PARAMETER WHERE NAME LIKE'%spfile%';

E:\ORACLE\PRODUCT\10.2.0\DB_2\DBS\SPFILEORLC05.ORA

UBICACIN DEL ALERTLOG:

SELECT * FROM V$PARAMETER WHERENAMELIKE'%background_dump_dest%';


E:\ORACLE\PRODUCT\10.2.0\ADMIN\ORLC03\BDUMP\Alert_orcl05

processes
= 150
memory_target
= 1640M
control_files
= "C:\APP\USER\ORADATA\ORCL\CONTROL01.CTL"
control_files
= "C:\APP\USER\ORADATA\ORCL\CONTROL02.CTL"
control_files
= "C:\APP\USER\ORADATA\ORCL\CONTROL03.CTL"
db_block_size
= 8192
compatible
= "11.1.0.0.0"
db_recovery_file_dest = "C:\app\user\flash_recovery_area"
db_recovery_file_dest_size= 2G
undo_tablespace
= "UNDOTBS1"
remote_login_passwordfile= "EXCLUSIVE"
db_domain
= ""
dispatchers
= "(PROTOCOL=TCP) (SERVICE=orclXDB)"
audit_file_dest
= "C:\APP\USER\ADMIN\ORCL\ADUMP"
audit_trail
= "DB"
db_name
= "orcl"
open_cursors
= 300
diagnostic_dest
= "C:\APP\USER"
a) GENERAR UN ARCHIVO TAL COMO PFILEORCL05X.ORA
b) ARRANCAR LA BD
SQL>STARTUP PFILE=
'E:\oracle\product\10.2.0\db_2\dbs\PFILEORCL05x.ORA';
c) CREAR UN SPFILE CON EL PFILE ( con sqlplus ).
CREATE SPFILE= 'E:\ORACLE\PRODUCT\10.2.0\DB_2\DBS\SPFILEORLC03X.ORA'
FROM PFILE =
'E:\ORACLE\PRODUCT\10.2.0\DB_2\DBS\PFILEX.ORA'

d) BORRAR EL SPFILE ORIGINAL Y REEMPLAZARLO POR EL RECIENTE CREADO.

CREAS EN 'C:\TEMP\SPFILE01.TXT'; Y COPIAS LO ENCONTRADO EN ALERT


SQL> STARTUP PFILE ='C:\TEMP\SPFILE01.TXT';
Instancia ORACLE iniciada.
Total System Global Area 1071333376 bytes
Fixed Size
1334380 bytes
Variable Size
301990804 bytes
Database Buffers
763363328 bytes
Redo Buffers
4644864 bytes

Base de datos montada.

SQL> CREATE SPFILE='C:\TEMP\SPFILEORCL.ORA' FROM PFILE ='C:\TEMP\SPFILE01.txt';


Archivo creado.
SQL> SHUTDOWN IMMEDIATE
Base de datos cerrada.
Base de datos desmontada.
Instancia ORACLE cerrada.
SQL> STARTUP
Instancia ORACLE iniciada.
Total System Global Area 1071333376 bytes
Fixed Size
1334380 bytes
Variable Size
301990804 bytes
Database Buffers
763363328 bytes
Redo Buffers
4644864 bytes
Base de datos montada.
Base de datos abierta.
SQL>

----------------------------------------------------------------------------------2. RECUPERACION DE SPFILE CON EL AUTOBACKUP


---------------------------------------------------------------------------------ESCENARIO INICIAL:

La BD esta baja.
El SPFILE se perdi
Se cuenta con autobackup.

SELECT * FROM V$PARAMETER WHERE NAME='spfile';


--E:\APP\ADMINISTRADOR\PRODUCT\11.1.0\DB_1\DATABASE\SPFILEORCL.O
RA
. se cuenta con autobackup
select * from v$database;----1439476898
SQL>SELECT * FROM V$BACKUP_SPFILE;

GENERANDO ESCENARIO DE CAIDA


a) RMAN> SHOW ALL;
b) ACTIVAR EL AUTOBACKUP
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP ON;
c) GENERAR BACKUP SET DE SPFILE
RMAN>BACKUP SPFILE;
d) Consultando archivos spfile backapeados
SQL>SELECT * FROM V$BACKUP_SPFILE;
e) IDENTIFICAR EL ID DE LA BASE DE DATOS
SQL> SELECT * FROM V$DATABASE;

RECUPERANDO:
1) RMAN> STARTUP NOMOUNT;
2) RMAN> SET DBID 1378283922;
3) RMAN> RESTORE SPFILE FROM AUTOBACKUP
RECOVERY AREA E:\BACK -- ZONA FRA
DB_NAME ORCL;
-- NOMBRE INSTANCIA
################################################################
RMAN> RESTORE SPFILE FROM AUTOBACKUP
2> RECOVERY AREA 'E:\FRA'
3> DB_NAME 'ORCL';
Iniciando restore en 19/05/16
se utiliza el archivo de control de la base de datos destino en lugar
del catlo
go de recuperacin
canal asignado: ORA_DISK_1
canal ORA_DISK_1: SID=115 tipo de dispositivo=DISK
destino del rea de recuperacin: E:\FRA
nombre de base de datos (o nombre nico de base de datos) utilizado para
la bsq
ueda: ORCL
canal ORA_DISK_1: se ha encontrado AUTOBACKUP
E:\FRA\ORCL\AUTOBACKUP\2016_05_19\
O1_MF_S_912215031_CMTOTB4M_.BKP en el rea de recuperacin
canal ORA_DISK_1: buscando AUTOBACKUP del da: 20160519

canal ORA_DISK_1: restaurando SPFILE de AUTOBACKUP


E:\FRA\ORCL\AUTOBACKUP\2016_0
5_19\O1_MF_S_912215031_CMTOTB4M_.BKP
canal ORA_DISK_1: restauracin de SPFILE a partir de AUTOBACKUP
terminada
restore terminado en 19/05/16
RMAN> RESTORE SPFILE FROM AUTOBACKUP
2> RECOVERY AREA 'E:\FRA'
3> DB_NAME 'ORCL';
Iniciando restore en 19/05/16
se utiliza el archivo de control de la base de datos destino en lugar
del catlo
go de recuperacin
canal asignado: ORA_DISK_1
canal ORA_DISK_1: SID=115 tipo de dispositivo=DISK
destino del rea de recuperacin: E:\FRA
nombre de base de datos (o nombre nico de base de datos) utilizado para
la bsq
ueda: ORCL
canal ORA_DISK_1: se ha encontrado AUTOBACKUP
E:\FRA\ORCL\AUTOBACKUP\2016_05_19\
O1_MF_S_912215031_CMTOTB4M_.BKP en el rea de recuperacin
canal ORA_DISK_1: buscando AUTOBACKUP del da: 20160519
canal ORA_DISK_1: restaurando SPFILE de AUTOBACKUP
E:\FRA\ORCL\AUTOBACKUP\2016_0
5_19\O1_MF_S_912215031_CMTOTB4M_.BKP
canal ORA_DISK_1: restauracin de SPFILE a partir de AUTOBACKUP
terminada
restore terminado en 19/05/16
########################################################################

---------------------------------------------------------------------------------------------3. PERDIDA DE UN ARCHIVO DE CONTROL MULTIPLEXADO


---------------------------------------------------------------------------------------------

LA BD ESTA PARADA.
UNO DE LOS CONTROL FILE MULTIPLEXADO SE DAO.

SOLUCION:

1. ACTIVE LA INSTANCIA
SQL> STARTUP NOMOUNT;
2. CONSULTE LAS UBICACIONES DE LOS CONTROL FILE
SQL>SELECT * FROM V$CONTROLFILE;

3. COPIE UN CONTROL FILE BUENO EN LA POSICION DEL DAADO Y CAMBIE


EL NOMBRE QUE LE CORREPONDE

4. CONTINUE CON LA APERTURA DE LA BASE DE DATOS


SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE OPEN;

---------------------------------------------------------------------------------------------4. RECUPERACION DE CONTROLFILE CUANDO NO EXISTE BACKUP


---------------------------------------------------------------------------------------------ESCENARIO INICIAL:

BD esta bajada.
Todos los archivos de control fueron eliminados.

GENERANDO ESCENARIO DE CAIDA


a) Ubicando archivos de traza
SQL>SELECT * FROM V$PARAMETER WHERE NAME LIKE '%user_dump_dest%'

b)

GENERANDO SCRIPT PARA CREAR CONTROLFILE ( ser creado en archivos de


traza )
SQL>ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
Se genera cdigo en ltimo TRC generado
SQL> SHUTDOWN IMMEDIATE;

a) ELIMINAR CONTROL FILES.

PROCESO DE RECUPERACION
SQL> STARTUP NOMOUNT;
a) Para crear un CONTROL FILE se debe tener privilegios de DBA
SQL>CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS
NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG' SIZE
50M,
GROUP 2 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG' SIZE
50M,
GROUP 3 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG' SIZE
50M
DATAFILE
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF',
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF',
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF',
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF',
'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF'
CHARACTER SET WE8MSWIN1252;
SQL>ALTER DATABASE OPEN RESETLOGS;

----------------------------------------------------------------------------------5. RECUPERACION DE CONTROLFILE CON AUTOBACKUP


---------------------------------------------------------------------------------ESCENARIO INICIAL:

BD esta bajada.
Todos los archivos de control fueron eliminados.
El Autobackup est configurado.

GENERANDO ESCENARIO DE CAIDA


b) LISTA DE CONTROL FILES
SQL>SELECT * FROM V$CONTROLFILE;
c) LISTA DE BACKUP DE CONTROLFILE
RMAN> LIST BACKUPSET OF CONTROLFILE;
d) BACKUP DE CONTROL FILE
RMAN> BACKUP CURRENT CONTROLFILE;

RECUPERANDO:

RMAN>
RMAN>
RMAN>
RMAN>
RMAN>
RMAN>

STARTUP NOMOUNT;
SET DBID 1234567;
RESTORE CONTROLFILE FROM AUTOBACKUP;
ALTER DATABASE MOUNT;
RECOVER DATABASE;
ALTER DATABASE OPEN RESETLOGS;

---------------------------------------------------------------------------------------------6. RECUPERACION DE TBS EN FRIO SIN ARCHIVELOG


---------------------------------------------------------------------------------------------

LA BD ESTA PARADA.
LA BD PUEDE HABER OPERADO EN MODO NOARCHIVELOG.
SOLO SE PUEDE RECUPERAR LOS DATOS DEL LTIMO BACKUP, LAS
TRANSACCIONES POSTERIORES AL BACKUP EN FRIO NO PODRN SER
RECUPERADAS.

SOLUCION:

1. DETERMINE EL ESPACIO NECESARIO PARA GUARDAR LA INFORMACIN

SQL>SELECT SUM(SUM_BYTES)/1024/1024 M_BYTES


FROM( SELECT SUM(BYTES)SUM_BYTES FROM V$DATAFILE
UNION
SELECT SUM(BYTES)SUM_BYTES FROM V$TEMPFILE
UNION
SELECT(SUM(BYTES) * MEMBERS)
SUM_BYTES FROM V$LOG GROUP BY MEMBERS);
2. IDENTIFIQUE LOS

ARCHIVOS A COPIAR

SQL>SELECT NAME FROM V$DATAFILE


UNION
SELECT NAME FROM V$CONTROLFILE
UNION
SELECT NAME FROM V$TEMPFILE
UNION
SELECT MEMBER FROM V$LOGFILE;
3. BAJAR LA INSTANCIA
SQL> SHUTDOWN IMMEDIATE;
4. COPIA DE LOS ARCHIVOS, UTILIZANDO LAS ACCIONES DE WINDOWS HACIA
UN DIRECTORIO ESPECIFICO.
5. REINICIAR LA BD
SQL> STARTUP

mount;

SQL>RECOVER DATABASE;
SQL> ALTER DATABASE OPEN;

---------------------------------------------------------------------------------------------7. RECUPERACION DE TBS EN FRIO CON ARCHIVELOG, SIN RMAN


---------------------------------------------------------------------------------------------EL EJERCICIO TRATA DE RECUPERAR UNA BD, USANDO UNA COPIA DE TBS ANTIGUO
PARA SINCRONIZARLA AL TIEMPO PRESENTE CON LOS ARCHIVE LOGS.

ESCENARIO INICIAL:

1. CREAR UNA TBS_NEPTUNO NUEVO EN EL USB CARPETA TBS


CREATE TABLESPACE TBS_NEPTUNO
DATAFILE F:\TBS\DF_NEPTUNO.DBF SIZE 10M;
2. CREAR NUEVA TABLA PRUEBA1 EN
COMMITEAR

TBS_NEPTUNO, INSERTAR DATOS Y

CREATE TABLE PRUEBA1 ( ID INTEGER , DATOS CHAR(50) )


TABLESPACE TBS_NEPTUNO;
3. FORZAR COPIA HACIA ARCHIVED LOG:
SQL> ALTER SYSTEM SWITCH LOGFILE;
4. IDENTIFICAR EL NUMERO DEL DATAFILE
SELECT FILE# , NAME FROM V$DATAFILE
5. CONSULTAR LOS SCN DEL CONTROL FILE Y EL DATAFILE( TOMAR NOTA )
SELECT FILE# , CHECKPOINT_TIME, CHECKPOINT_CHANGE#
FROM V$DATAFILE WHERE FILE#=14
6. BAJAR LA INSTANCIA Y COPIAR EL DATAFILE EN CARPETA
C:\BACK_TBS_INICIAL
SQL>SHUTDOWN IMMEDIATE;

ESCENARIO EN PRODUCCION:

1. CREAR NUEVA TABLA PRUEBA2 EN


COMMITEAR

TBS_NEPTUNO, INSERTAR DATOS Y

CREATE TABLE PRUEBA2 ( ID INTEGER , DATOS CHAR(50) ) TABLESPACE


TBS_NEPTUNO;
INSERT INTO PRUEBA2
SELECT LEVEL , DATO FROM DUAL CONNECT BY LEVEL < 100;
2. FORZAR COPIA HACIA ARCHIVED LOG:
SQL> ALTER SYSTEM SWITCH LOGFILE;( 1 VEZ )
3. CONSULTAR LOS SCN DEL CONTROL FILE Y EL DATAFILE( TOMAR NOTA )

SQL>SELECT FILE# ,CHECKPOINT_TIME,CHECKPOINT_CHANGE#


FROMV$DATAFILE WHERE FILE#=14
4. BAJAR LA INSTANCIA Y COPIAR EL DATAFILE EN CARPETA
C:\BACK_TBSFINAL
5. SQL>SHUTDOWN IMMEDIATE;

SOLUCION:
LUEGO DE CAMBIAR EL DATAFILE ANTERIOR POR EL DATAFILE NUEVO,
PROCEDEREMOS A RECUPERAR LA BD.
1. MONTAR LA BASE DE DATOS:
SQL>STARTUP MOUNT;
2. CONSULTAR LOS SCN DEL CONTROL FILE Y EL DATAFILE( VER
DIFERENCIAS )
SQL>SELECT FILE# ,CHECKPOINT_TIME,CHECKPOINT_CHANGE#
V$DATAFILE WHERE FILE#=14

FROM

3. INTENTAR ABRIR LA BD, MOSTRANDO EL SGTE MENSAJE DE ERROR:


SQL> ALTER DATABSE OPEN;

4. RECUPERAR EL TABLESPACE
SQL> RECOVER TABLESPACETBS_NEPTUNO;
SQL><ENTER>;
SQL> ALTER DATABASE OPEN;

---------------------------------------------------------------------------------------------8. RECUPERACION DE TODA LA BASE DE DATOS


---------------------------------------------------------------------------------------------

LA BD ESTA PARADA.
LA BD ESTABA OPERANDO EN MODO ARCHIVELOG
SE CUENTA CON BACKUP VALIDO

ESCENARIO:
INICIALMENTE SE DEBE HACER UN BACKUP INCLUYENDO LOS ARCHIVADOS
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

SOLUCION
RMAN> STARTUP MOUNT;
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;

---------------------------------------------------------------------------------------------1. RECUPERACION DE LA BASE DE DATOS EN UN PUNTO EN EL TIEMPO


( DBPITR)
----------------------------------------------------------------------------------------------

PERMITE RECUPERAR LA BASE DE DATOS SOLO HASTA UN PUNTO EN EL TIEMPO

CONFIGURANDO MODO FLASHBACK


SQL>STARTUP MOUNT;
SQL>ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OPEN;
CONSULTANDO MODO FLASHBACK
SQL> SELECT FLASHBACK_ON FROM V$DATABASE; -- ( NO/YES )
CONFIGURANDO TIEMPO DE RESGUARDO DE DATOS
SQL>ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=2880;

GENERANDO ESCENARIO

CREANDO TABLE A RECUPERAR


CREATE TABLE PRUEBAFLASH AS SELECT * FROM DBA_SOURCE;
COMMIT;
SELECT COUNT(*) FROM PRUEBAFLASH:
CONSULTANDO EL SCN
SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;
>> SCN : 9999
BORRANDO LOS REGISTROS
DELETE FROM PRUEBAFLASH;
COMMIT;
SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;
>> SCN : 19999

FLASHBACK LA BD
SQL> STARTUP MOUNT:
SQL> FLASHBACK DATABASE TO SCN 9999;

SQL> ALTER DATABASE OPEN RESETLOGS;

FLASHBACK TO RESTORE POINT


SQL>CREATE TABLE T3 AS SELECT * FROM SCOTT.DEPT;
--- Generando punto de restauracin RP01
SQL> CREATE RESTORE POINT RP01;
--- Consultando los ptos de restauracin
SQL> SELECT NAME, TIME,GUARANTEE_FLASHBACK_DATABASE FROM
V$RESTORE_POINT;
SQL> CREATE TABLE T4 AS SELECT * FROM SCOTT.DEPT;
--- Generando punto de restauracin RP02
SQL> CREATE RESTORE POINT RP02;
--- Recuperando
SQL> STARTUP MOUNT;
SQL> FLASHBACK DATABASE TO RESTORE POINT RP01;
SQL>ALTER DATABASE OPEN RESETLOGS;
--- Borrando los PUNTOS DE RESTAURACION
SQL>drop restore point RP01;

You might also like