Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Taller Oracle Seguridad Backup Recovery 22092008
Taller Oracle Seguridad Backup Recovery 22092008
Email: francisco@friccio.com
Pgina 1
Cada usuario que se conecta a nuestra base de datos debe contar con un usuario con fines
de auditora.
Un esquema es un usuario ms sus objetos.
Existen 3 modos de autentificar a un usuario y son: Password authentication (El password se
almacena en el data dictionary), external authentication (Confa en el sistema operativo su
autentificacin) y global authentication (La autentificacin se hace por mecanismos de
seguridad avanzada como kerberos, radius, biometrica y certificados X.509).
Cada usuario tiene asignado por default un tablespace donde almacenar sus objetos, a un
tablespace temporal y a un profile (Sirve para limitar recursos al usuario y para asignarle
polticas de password).
Expirando un password:
alter user usuario password expire;
Pgina 2
Tipos de privilegios:
Sistema: Permisos sobre operaciones de base de datos tales como: crear usuarios, alterar la
base de datos, etc.
Podemos permitir garantizar un privilegio de sistema a un usuario y este pueda tambin dar
este privilegio (WITH ADMIN OPTION),
Observacin: Si un usuario otorga privilegios de sistema a otro usuario con la opcin with
admin option y a la vez este segundo usuario le da privilegios a un tercero.
Luego cuando se haga un revoke al segundo, el tercero sigue manteniendo el privilegio
otorgado.
Privilegio de Sistema: alter database, alter system, audit system, create any (table index
job procedure sequence trigger - view), debug any procedure, execute any program,
create procedure, create profile, create role, create session, lock any table, flashback any
table, analyze any, sysdba, sysoper, etc.
Recordemos que las vistas ms utilizadas son: dba_role_privs (Privilegio de roles), dba_tab_privs
(Privilegio de objetos de tablas) y dba_sys_privs (Privilegio de Sistemas).
Adicionalmente tenemos:
session_privs = Muestra los privilegios de sistema y objetos asignado s a la sesin.
sessions_roles = Muestra los roles asignados a la sesin.
Pgina 3
Nota:
Podemos crear roles con password:
create role rol1 identified by mipassword;
Para habilitar un rol con password en una sesin:
set role rol1 identified by mipassword, rol2;
set role all except rol1
set role none => Deshabilita todos.
Pgina 4
Opciones:
CONNECT_TIME = Indica el tiempo de conexin que puede estar una sesin, en caso supere el
tiempo en minutos aplica rollback a sus transacciones.
create profile nombre LIMIT CONNECT_TIME #min | UNLIMITED;
CPU_PER_CALL = Limita la cantidad de CPU que puede ser consumida por cualquier llamada de base
de datos con ese profile. El valor a ingresar es en ciento de segundos en un ciclo.
create profile nombre LIMIT CPU_PER_CALL # | UNLIMITED;
CPU_PER_SESSION = Limita la cantidad de CPU time que puede ser consumida en cualquier sesin. El
tiempo est en ciento de segundos.
IDLE_TIME = Limita la duracin de tiempo muerto de una sesin. El tiempo est en minutos.
create profile nombre LIMIT IDLE_TIME #min | UNLIMITED;
LOGICAL_READS_PER_CALL = Por cada llamada hacia la base de datos restringe el nmero de logical
reads que puede consumir la llamada.
create profile nombre LIMIT LOGICAL_READS_PER_CALL #;
LOGICAL_READS_PER_SESSION el cual indica el mximo nmero de logical reads durante toda la
sesin.
PRIVATE_SGA = Limita la cantidad de UGA en bytes que una conexin con shared server puede
ubicar.
create profile nombre LIMIT PRIVATE_SGA #;
SESSIONS_PER_USER = Restringue a un usuario al nmero de sesiones que puede abrir.
create profile nombre LIMIT SESSIONS_PER_USER #;
Ing. Francisco Riccio.
Pgina 5
#intentos
PASSWORD_LOCK_TIME
PASSWORD_LIFE_TIME
PASSWORD_GRACE_TIME
m-n dias
PASSWORD_GRACE_TIME
n dias
Reuso de Passwords
Especifica el nmero de das que un password puede ser reusado y despus de cuantos passwords
cambiados.
CREATE PROFILE nombre LIMIT
PASSWORD_REUSE_TIME
#dias | UNLIMITED
PASSWORD_REUSE_MAX
n | UNLIMITED
Requiere que al menos n passwords cambien y durante #dias para poder reusar un password.
Pgina 6
Nota:
Existe un archivo en llamado $ORACLE_HOME/rdbms/admin/utlpwdmg.sql el cual contiene una
funcin PL/SQL con complejidad alta para poderla asociar a un profile.
Ejemplo:
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION verify_function;
Pgina 7
Auditoria
Para activar la auditoria:
ALTER SYSTEM SET AUDIT_TRAIL= DB; DB,EXTENDED, OS, XML, XML, EXTENDED SCOPE=SPFILE;
DB,EXTENDED: Registra en la base de datos junto con las sentencias SQL que son auditadas.
OS: Se registra en $ORACLE_BASE/admin event viewer en Windows
Ejemplo: alter System set audit_trail=db scope=spfile;
Statement
Privilegio
Objeto
Statement
Permite auditar 1 tipo de SQL.
Ejemplo:
audit table; (todo lo relacionado a la palabra table, create, drop, truncate, etc)
audit table by xxx
audit table by xxx whenever not successful
audit alter table | procedure | database | profile | system; grant (todas sus formas, ejemplo: grant
sequence); execute (todas sus formas, ejemplo: execute procedure); procedure (create y drop para
procedure, function, package); lock table; role (create, drop, set role, alter); select (select table);
system grant (grant, revoke); tablespace (alter, create, drop); trigger (alter, create, drop); user (alter
user, create, drop); view (alter, create, drop); session (connect).
Pgina 8
Privilegio
Audita un privilegio de sistema, ejemplo:
audit create any table
audit delete any table
Tips:
Para auditar un GRANT ANY PRIVILEGE debemos primero ejecutar el siguiente audit en el usuario
que va a lanzar los audit grant any privilege:
AUDIT SYSTEM GRANT BY usuario_auditor
Objeto
Audita un select, insert, update o execute de un objeto particular.
Nota:
Oracle 11g audita cualquier operacin DML sobre la sys.aud$
No puede ser restringido por usuario.
Si definimos por BY SESSION entonces en la tabla DBA_AUDIT_TRAIL (campo SES_ACTIONS) tendr
un conjunto de bits ordenados que representarn la lista de actividades que se hicieron sobre el
objeto.
Cada posicin del arreglo de bits est definida en la siguiente tabla:
Pgina 9
Pgina 10
Vistas importantes:
DBA_AUDIT_TRAIL = Muestra el reporte de las auditorias.
(Pero podemos filtrar con las vistas: DBA_AUDIT_STATEMENT, DBA_AUDIT_OBJECT)
DBA_COMMON_AUDIT_TRAIL = Muestra el reporte de las auditorias y FGA.
DBA_STMT_AUDIT_OPTS = Muestra auditorias activadas de tipo STATEMENT.
DBA_PRIV_AUDIT_OPTS = Muestra auditorias activadas de tipo PRIVILEGIO DE SISTEMA.
DBA_OBJ_AUDIT_OPTS = Muestra auditorias activadas de tipo OBJETO.
Nota:
Si queremos auditar al SYS debemos colocar en true el parmetro audit_sys_operations;
Las actividades de subir y bajar la base de datos y al loguarse como sysdba o sysoper son siempre
escritas en disco.
Toda la auditora se guarda internamente en la tabla SYS.AUD$ la cual debemos ir depurndola en el
tiempo y con su previo backup (export).
Pgina 11
Pgina 12
Ejemplos:
Ejemplo 1:
DBMS_FGA.ADD_POLICY
(object_schema=>'SCOTT',object_name=>'EMP',policy_name=>'EMP_ACCESS');
Al no tener condiciones Oracle auditar toda operacin DML y SELECT.
Ejemplo 2:
DBMS_FGA.ADD_POLICY
(object_schema=>'SCOTT',object_name=>'EMP',policy_name=>'EMP_ACCESS',audit_column=>'SAL,
COMM');
Indicamos que se generar cualquier entrada de auditora si hay cambios y lecturas sobre el campo
SAL COMM.
Ejemplo 3:
DBMS_FGA.ADD_POLICY
(object_schema=>'SCOTT',object_name=>'EMP',policy_name=>'EMP_ACCESS',audit_column=>'SAL,
COMM', statement_types=>'INSERT, UPDATE', audit_column_opts=>DBMS_FGA.ANY_COLUMNS);
Solamente sentencias INSERT y UPDATE que incluyan cualquiera (DBMS_FGA.ANY_COLUMNS
default) de los campos listados en audit_column.
Ejemplo 4:
DBMS_FGA.ADD_POLICY
(object_schema=>'SCOTT',object_name=>'EMP',policy_name=>'EMP_ACCESS',audit_column=>'SAL',
audit_condition=>'SAL>9999',statement_types=>'SELECT',audit_column_opts=>DBMS_FGA.ANY_CO
LUMNS,audit_trail=>DBMS_FGA.DB + DBMS_FGA.EXTENDED);
Si cumple la condicin del audit_condition se generar una entrada de auditoria.
Ejemplo 5:
DBMS_FGA.ADD_POLICY (object_schema=>'SCOTT',object_name=>'EMP',
policy_name=>'xxx',audit_column=>'CAMPO1,CAMPO2',enable=>FALSE,statement_types=>'SELECT')
Ejemplo 6:
DBMS_FGA.ENABLE_POLICY(object_schema=>'HR',object_name=>'EMPLOYEES',policy_name=>'xxx')
Ejemplo 7:
DISABLE_POLICY(object_schema=>'HR',object_name=>'EMPLOYEES',policy_name=>'xxx');
Ejemplo 8:
Ing. Francisco Riccio.
Pgina 13
DROP_POLICY(object_schema=>'HR',object_name=>'EMPLOYEES',policy_name=>'xxx');
Vistas importantes:
DBA_AUDIT_POLICIES = Reporte de las reglas FGA
DBA_FGA_AUDIT_TRAIL = Reporte del resultado de la auditoria FGA.
Pgina 14
2.
UTL_TCP
UTL_SMTP
UTL_HTTP
UTL_FILE
DBMS_OBFUSCATION_TOOLKIT
DBMS_CRYPTO
3.
4.
5.
Los archivos del $ORACLE_HOME y $ORACLE_BASE deben tener privilegios 750 a nivel de
S.O.
6.
7.
Pgina 15
Backup
Overview Arquitectura Oracle
Una base de datos Oracle se compone de sus Users Process, su Instancia y su base de datos.
Background process:
o
PMON:
Pgina 16
o
o
o
o
o
o
o
o
o
o
o
o
o
Libera todos los recursos que una sesin us despus que se cierra dicha
sesin.
Responsable de indicarle al Listener cuando una sesin se ha llegado a
conectar con un dispatcher en una conexin compartida para que el Listener
aumente en 1 su contador.
Responsable de registrar dinmicamente las instancias en los listener con
configuracin por default.
SMON:
o Maneja espacios para operaciones de ordenamiento.
o Es el responsable de un instance recovery (en caso de una cada).
MMON:
o Recolecta estadsticas y los almacena en el buffer de AWR.
o Limpia los traces e inputs de incidentes con origen de ms de 30 das (Oracle
11g).
MMNL (Memory Monitor Light): Baja del buffer del AWR a disco cada segundo.
Job Queue Monitor (CJQ): Asigna jobs a la cola de jobs. (Job Coordinator)
Job Queue (J): Ejecuta jobs de la base de datos que han sido schedule. (Job Slave)
MMAN (Memory Manager): Es activado en el Database Control y esto permite que
el ADDM ajuste cada componente del SGA segn las estadsticas.
Recovery Writer (RVWR): Escribe recovery informacin cuando se habilita el flash
recovery.
Change Tracking Writer (CTWR): Mantiene tracks de los bloques cambiados desde
un backup incremental por el RMAN.
DBWriter baja a disco en las siguientes circunstancias:
o No hay espacio libre en el buffer cache para nueva data.
o Demasiados commits que no han bajado a disco.
o Usando shutdown o usando checkpoint.
o El tablespace es puesto en modo backup, offline o readonly.
o Un segmento es borrado.
LOGWriter baja a disco en las siguientes circunstancias:
o Cada 3 segundos.
o Cuando se hace un commit.
o Cuando el redo buffer tiene 1 MB de redo informacin.
o Checkpoint.
Checkpoint (CKPT)
o Actualiza las cabeceras del control file y de los datafiles igualando el mismo
SCN.
DMnn_IDProceso: Es el master control process en un trabajo de Oracle Data Pump.
DWnn_IDProceso: Es el worker process en un trabajo de Oracle Data Pump.
Base de Datos
o Redo Logs, contienen las transacciones de la base de datos.
o Datafiles, contienen la informacin de nuestra base de datos. La base de datos debe
tener al menos un datafile y cada datafile pertenece a un tablespace.
o Log files, contienen las transacciones commiteadas utilizadas para recovery.
o Control file: Mantiene la metadata de la base de datos, como donde se ubican sus
datafiles, el nombre de la base de datos y algunas configuraciones de retencin de
los backups.
o SPFILE y PFILE: Mantiene la configuracin de la instancia, donde se define el nombre
de la instancia, la memoria RAM de cada componente del SGA etc.
Pgina 17
Password file: Permite indica cuantas cuentas pueden tener el privilegio SYSDBA.
Pgina 18
Oracle solo requiere 1 miembro por redo log group para seguir operando.
Solo existe un redo log group activo, el cual recibe los redo entries del redo log buffer.
Los redo log groups tienen 4 estados: ACTIVO (Se requiere para instance recovery ya que
an no ha ocurrido un checkpoint), CURRENT (Redo log group que recibe los redo entries del
redo log buffer), UNUSED (Redo log recin creado y no ha sido utilizado) e INACTIVO (No es
requerido en caso de un instance recovery).
Al llenarse un redo log group se genera el evento de switch log file el cual genera 2 eventos
importantes: CHECKPOINT y ARCHIVE (Si est habilitado), ambos ocurren asncronamente.
Pgina 19
Nota:
Se puede trabajar al menos con 2 redo log groups pero Oracle recomienda al menos 3 y si la
base de datos es muy transaccional es recomendable generar varios redo log groups porque
provoca lentitud en el sistema al no poderse utilizar un redo log group libre para escribir ya
que todos podran estar haciendo la operacin de archive todava.
Control Files.
Para visualizar la ubicacin de nuestros control files. (show parameter control_files)
Se puede apreciar en este ejemplo que tenemos 3 control files llamados control01.ctl, control02.ctl y
control03.ctl.
Para agregar ms de un control file se debe realizar las siguientes labores:
Modificar el parmetro control_file para indicarle que tendr otro control file ms
(scope=spfile).
Ejemplo:
Pgina 20
Pgina 21
ONLINE
Est mtodo nos permite sacar backups en caliente a la base de datos es decir sin generar
indisponibilidad de servicios.
Requisito principal: La base de datos debe estar en modo ARCHIVE.
Validando si la base de datos est en modo archive:
Pgina 22
Nota:
Cuando un Tablespace se coloca en modo begin backup, Oracle internamente hace que los
datafiles comprendidos en el Tablespace no sean escritos por el proceso DBWRITER y todos
los cambios ocurridos son escritos en los redo logs (tendr la copia de cada bloque
cambiado), por lo tanto genera gran cantidad de redo logs, porque se est escribiendo ms
informacin de lo normal.
Cuando un Tablespace est en modo backup sus datafiles estn en estado backup y se puede
apreciar en el siguiente query (v$backup):
Pgina 23
Tener nuestros archivers y backups en el flash recovery area nos da la ventaja que Oracle
gener una autolimpieza y nos alerta. Cuando est al 87% de consumo el flash recovery area
Pgina 24
Pgina 25
Configurando RMAN
Ingresamos a RMAN y se verifica su configuracin.
Pgina 26
Sin retencin: Indica que el backup nunca ser obsoleto, pero le da el derecho a la herramienta de
terceros que realiza el backup a hacerlo.
Compression
Solo disponible desde la versin Oracle Database 11g, el cual Oracle nos permite tener 2 tipos de
compresiones: ZLIB y BZIP2.
Por default est habilitada la BZIP2 y consume mayor procesamiento de CPU pero comprime ms,
mientras ZLIB comprime consumiendo menos recursos pero comprime con menor ratio.
Ejemplo: CONFIGURE COMPRESSION ALGORITHM 'ZLIB';
Encriptacin
Nota: 316886.1
Est disponible desde la versin 10gR2 y solo se puede realizar encriptacin a backupset si es a disco
y si es por tape solo utilizando Oracle Secure Backup.
Modos de encriptacin:
Transpararent: Requiere un Oracle Key Management Infrastructure disponible como Oracle Wallet y
no requiere intervencin del DBA cuando est configurado.
Password: Requiere un Password el backup para setearlo.
Dual: Soporta Transparent y Password.
Pasos:
Validamos los algoritmos disponibles:
select ALGORITHM_NAME from V$RMAN_ENCRYPTION_ALGORITHMS;
Saetendolo en el RMAN:
CONFIGURE ENCRYPTION ALGORITHM 'AES128';
Ejecutando un backup con Password:
set encryption on identified by password only;
Ejemplo:
Pgina 27
Para Restaurar:
set decryption identified by password;
restore database;
Nota:
Si habilitamos la opcin:
CONFIGURE ENCRYPTION FOR DATABASE ON
Debemos configurar un wallet de modo que todo backup siempre saldr encriptado.
BACKUP OPTIMIZATION
RMAN tiene la facilidad de no backupear files que no cambian como los datafiles read only si ya fue
backupeado anteriormente, logrando disminuir el tiempo del backup.
CONFIGURE BACKUP OPTIMIZATION ON;
Aplica a: datafiles, archive logs y backup sets.
Si queremos forzar que de todos modos haga un backup a los datafiles read only a pesar que est
con la opcin de optimizacin habilitada:
BACKUP DATABASE FORCE;
Pgina 28
CONTROLFILE AUTOBACKUP
Podemos indicar a RMAN que siempre que ejecute un backup incluya al CONTROLFILE y al SPFILE ( Si
est usando SPFILE en la base de datos) en cada backup que se realice.
Por default un backup database incluye el control file.
CONFIGURE CONTROLFILE AUTOBACKUP ON;
SNAPSHOT CONTROLFILE
Oracle cuando ejecuta un backup y necesita re sincronizar con una consistente versin del control
file se apoya de una copia del control file que la realiza cuando inicia el backup.
Tambin lo realiza cuando desea realizar un backup del control file.
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u02/oradata/ORCL/SNAPORA.CTL';
Si 2 backups desean realizar la misma operacin fallar (Despus de 5 intentos al querer tener la
exclusividad del archivo) entregando el siguiente error:
RMAN-08512: Waiting For Snapshot ControlFile Enqueue
Pgina 29
Existe un bug en las versiones 10.1.0.2 hasta la 10.2.0.3 entregando el siguiente error cuando se
realiza un backup image cuando esta seteado el MAXPIECESIZE.
During an RMAN backup, a tracefile is generated with this error:
ORA-00600: internal error code, arguments: [ksfdfetch1], [], [], [], [], [], [], []
Se soluciona en la versin 10.2.0.4 o retirando el MAXPIECESIZE colocando el parche 4541506.
Configurando el tamao de un backupset - MAXSETSIZE
Un backupset es igual a la suma de cada backup pieces que son parte del backupset.
CONFIGURE MAXSETSIZE TO 1G;
Pgina 30
APPLIED ON STANDBY, Habilita al Flash Recovery Area eliminar al archive log cuando el
archive ya fue aplicado en el Standby.
NONE (default), Habilita al Flash Recovery Area a eliminar los archive logs que son
backupeados y que son obsoletos segn en la retencin del backup.
Si realizamos un backup eliminando los archive log (delete input) y esta seteado alguna alguna
poltica de eliminacin de archivelog har que el comando no elimine el archivelog a menos que
coloquemos forc.
Pgina 31
Nota: Recordemos que el backup image es un backup como si fuera una copia de sistema operativo y
no puede ser enviado directamente a tape.
Pgina 32
Backupset:
Backup Base de Datos: BACKUP AS BACKUPSET DATABASE;
Backup Tablespace: BACKUP AS BACKUPSET TABLESPACE xxx;
Backup Datafile: BACKUP AS BACKUPSET DATAFILE #;
Backup ControlFile: BACKUP CURRENT CONTROLFILE;
Backup SPFILE: BACKUP AS BACKUPSET SPFILE;
Pgina 33
Nota:
El backupset es un backup con formato solo legible por RMAN y puede ser enviado a disco o a tape.
El backupset lo podemos comprimir con la opcin BACKUPSET COMPRESSED (Desde Oracle 10g).
Backup del Control File con diferentes Mtodos.
a) Backup en forma de script: alter database backup controlfile to trace;
Se almacena en el UDUMP como un trace de usuario (USER_DUMP_DEST)
b) Backup en forma binaria: alter database backup controlfile to destino;
c) Utilizando RMAN: backup current controlfile;
Ejemplo:
Pgina 34
Pgina 35
Pgina 36
Nota:
El Block Change Tracking File solo guarda hasta 7 backups incrementales., despus del 7mo backup
incremental se sobrescribo el file.
Si sacamos un backup incremental L1 y no contamos con el backup L0 el backup no fallar, sino el L1
se convertir en L0.
Pgina 37
CROSSCHECK BACKUP
CROSSCHECK COPY
Eliminando Backups
delete all obsolete = Elimina aquellos backups que son ms viejos lo que la retencin permite.
delete all expired = Elimina del catalogo aquellos archivos y backups que ya no estn disponibles,
detectados por el crosscheck. (DELETE EXPIRED ARCHIVELOG ALL / DELETE EXPIRED BACKUP)
delete copy = Elimina todos los backups de tipo image.
delete backupset = Elimina todos los backups de tipo backset.
Reportes de RMAN
Para listar todos los backups ejecutados.
Lista de Backups Copy: RMAN> list copy summary;
Lista de Backups Set:
Ms reportes:
Pgina 38
Schedule de Backups
1.
Lo primero que debemos hacer antes de realizar un schedule de un backup es contar con un script
de tipo RMAN que contenga la accin a realizar.
Ejemplo de un script:
run{
allocate channel c1 type disk format '/u03/backup_full.bk';
backup as compressed backupset database;
}
Lo guardamos en un archivo llamado BACKUP_FULL.rman
2.
Luego:
Creamos un archivo de extensin sh (Unix) cmd (Windows), con el siguiente contenido:
rman target / cmdfile=BACKUP_FULL.rman log=BACKUP_FULL.log
3.
Finalmente lo programamos en el schedule de tareas de Windows o en el cron en sistemas Unix.
crontab e
Nota: En caso de los ambientes Unix debemos hacer que el sh tambin cargue las variables de
ambiente ORACLE_BASE, ORACLE_HOME, ORACLE_SID y PATH.
Pgina 39
Nos permite:
Es el nico modo de tener backups keep forever o por periodo ms grande que un ao.
Pasos:
Crear un usuario y un tablespace especial para el Catalogo en una base de datos nueva.
create tablespace tbs_rman datafile '/u02/ORCL/tbs_rman.dbf' size 200M;
create user rman identified by oracle default tablespace tbs_rman quota unlimited on
tbs_rman;
Pgina 40
Pgina 41
delete obsolete;
7.2
crosscheck backup;
delete expired backup;
Pgina 42
Recover
Recuperando Base de Datos en modo NO ARCHIVE
Una base de datos en modo NO ARCHIVE solo puede ser recuperada hasta el ltimo backup offline
ejecutado.
Debemos restaurar TODA la base de datos y levantarla.
Pgina 43
Pgina 44
Pgina 45
Pgina 46
Incomplete Recovery
Un incomplete recovery es recuperar nuestra base de datos hasta un punto en el tiempo que
nosotros indiquemos.
Podemos recuperar nuestra base de datos por 4 medidas: time, scn, log sequence y cancel.
Paso 1: Bajar la base de datos y subirla en modo MOUNT.
Paso 2: Restaurar en el tiempo.
RMAN> RESTORE DATABASE UNTIL TIME "TO_DATE('10/15/2009 13:00','MM/DD/YYYY HH24:MI')";
Pgina 47
Tambin se puede restaurar dirigindonos donde se ubica el backup y copiarlo mediante comandos
de S.O y luego hacer el restore.
Otra tcnica ms avanzada en caso de una prdida de un datafile es indicar a la base de datos que
haga un switch del datafile daado al backup image.
Esto lo podemos realizar con el comando: switch datafile # to copy;
Pgina 48
Pgina 49
Pgina 50
RMAN> BACKUP CHECK LOGICAL VALIDATE DATABASE; (No genera un backup y finalizado la
revisin el resultado lo podemos encontrar en v$database_block_corruption)
Analizando los objetos: SQL> analyze table nombre valdate structure cascade (finalizado la
revisin el resultado lo podemos encontrar en v$database_block_corruption)
Nota:
El recover de data blocks fallar si el bloque fsico corrupto est en un redo log file.
Pgina 51
Entonces:
Ing. Francisco Riccio.
Pgina 52
Pgina 53
Recuperacin de una Base de Datos habiendo perdido todos los files con
la mnima prdida de informacin
Requisito: Debemos contar con un backup completo con los archivers y el online redo log;
Fases:
1) Subimos la base de datos en estado nomount (dummy)
2) Recuperamos el spfile y levantamos en modo nomount.
3) Recuperamos el controlfile del autobackup y levantamos en modo mount.
4) Restauramos la base de datos.
5) Hacemos recover.
6) Levantamos la base de datos si tenemos los online redo logs sino levantamos en modo
RESETLOGS.
Sacando un Backup completo a la base de datos.
RMAN> backup as compressed backupset database plus archivelog;
Bajamos la base de datos y subimos en modo nomount (dummy)
Restauramos el SPFILE.
RMAN> restore spfile from 'ruta'
Pgina 54
Pgina 55
Pgina 56
Si deseamos saber que objetos se borraran despus del recovery en el tiempo consultamos la vista:
TS_PITR_OBJECTS_TO_BE_DROPPER (Filtrar por el campo
CREATION_TIME>Tiempo_Recovery_Incomplete)
Restricciones:
Pgina 57
Pgina 58