You are on page 1of 34

Implementacin de seguridad y auditoria de base

de datos.

Qu es auditoria?
Examen organizado de una situacin relativa a un producto, proceso u organizacin, en
materia de calidad, realizado en cooperacin con los interesados para verificar la
concordancia de la realidad con lo preestablecido y la adecuacin al objetivo buscado.

Actividad para determinar, por medio de la investigacin, la adecuacin de los


procedimientos establecidos, instrucciones, especificaciones, codificaciones y estndares u
otros requisitos, la afeccin a los mismos y la eficiencia de su implementacin.

Qu es auditoria de base de datos (BD)?


Es el proceso que permite medir, asegurar, demostrar, monitorear y registrar los accesos a
la informacin almacenada en las bases de datos incluyendo la capacidad de determinar:
Quin accede a los datos

Cundo se accedi a los datos

Desde qu tipo de dispositivo/aplicacin

Desde que ubicacin en la Red

Cul fue la sentencia SQL ejecutada

Cul fue el efecto del acceso a la base de datos

Objetivos generales de la auditoria de BD

Mitigar los riesgos asociados con el manejo inadecuado de los datos


Apoyar el cumplimiento regulatorio
Satisfacer los requerimientos de los auditores
Evitar acciones criminales
Evitar multas por incumplimiento

Evaluando

Definicin de estructuras fsicas y lgicas de las bases de datos


Control de carga y mantenimiento de las bases de datos
Integridad de los datos y proteccin de accesos
Estndares para anlisis y programacin en el uso de bases de datos
Procedimientos de respaldo y de recuperacin de datos

Importancia de la Auditoria de BD

Toda la informacin de la organizacin reside en bases de datos y deben existir controles


relacionados con el acceso a las mismas.
Se debe poder demostrar la integridad de la informacin almacenada en las bases de datos.
Las organizaciones deben mitigar los riesgos asociados a la prdida de datos y a la fuga de
informacin.
La informacin confidencial es responsabilidad de las organizaciones.
Los datos convertidos en informacin a travs de bases de datos y procesos de negocios
representan el negocio.
Las organizaciones deben tomar medidas mucho ms all de asegurar sus datos.
Deben monitorearse perfectamente a fin de conocer quin o qu les hizo exactamente qu,
cundo y cmo.

Aspectos claves
No se debe comprometer el desempeo de las bases de datos
Soportar diferentes esquemas de auditora
Se debe tomar en cuenta el tamao de las bases de datos a auditar
Segregacin de funciones
El sistema de auditora de base de datos no puede ser administrado por los DBA del rea
de TI
Proveer valor a la operacin del negocio
Informacin para auditora y seguridad
Informacin para apoyar la toma de decisiones de la organizacin
Informacin para mejorar el desempeo de la organizacin
Auditora completa y extensiva
Cubrir gran cantidad de manejadores de bases de datos
Estandarizar los reportes y reglas de auditora
Metodologas para la auditoria de bd
Metodologa Tradicional

En este tipo de metodologa el auditor revisa el entorno con la ayuda de una lista de control
(checklist), que consta de una serie de puntos a verificar. Por ejemplo:

S/ N/NA
1. Existe una metodologa de Diseo de Base de Datos?
2. Existen logs que permitan tener pistas sobre las acciones realizadas sobre los objetos de
las bases de datos?
3. Se han configurados los logs para almacenar la informacin relevante? . . . .

NOTA: Debiendo registrar el auditor el resultado de su investigacin

Metodologa de Evaluacin de Riesgos

Este tipo de metodologa, conocida tambin por Risk Oriented Approach(*) (Enfoque
Orientada a Riesgo) es la que propone la ISACA y fija los objetivos de control que
minimizan los riesgos potenciales a los que est sometido el entorno.
Considerando los riesgos de:
Dependencia por la concentracin de Datos
Accesos no restringidos en la figura del DBA
Incompatibilidades entre el sistema de seguridad de accesos del SGBD y el general de
instalacin
Impactos de los errores en Datos y programas
Rupturas de enlaces o cadenas por fallos del software
Impactos por accesos no autorizados
Dependencias de las personas con alto conocimiento tcnico

Metodologa
Tradicional
ChekList
S (si) - N (no) - NA (no aplicable)
Ejemplo: Existe una metodologa de diseo de BD?
Evaluacin de riesgos (ROA)
Confidencialidad de la BD
Tipos de usuarios, perfiles, privilegios
Tcnicas que utiliza: preventivas, detectivas o correctivas.
Prueba de cumplimiento: privilegios y perfiles del SGBD
Prueba sustantiva: comprobar los datos. La IR, VC, MBIF, entre otros en la BD.

El MCV en una BD
Estudio previo y plan de trabajo

Concepcin de la BD y le seleccin del equipo

Diseo y carga

Explotacin y mantenimiento

Revisin post-implantacin

Otros procesos

MCV Estudio previo

Identificacin de opciones

Anlisis de costo/beneficio

Desarrollar o comprar?

Analizar los informes de viabilidad por la direccin de la empresa para evitar fracasos de
implementacin

Llevar a cabo la Gestin de Riesgos (COBIT)


Identificar/Valorar/Medir/Accionar/Aceptar
Plan director de BD concordante con el plan general de sistemas de la organizacin

MCV Concepcin de la BD y seleccin del equipo


Se disea la BD acorde a los modelos y tcnicas establecidas por el plan director.
Debe especificarse:
Documentacin
Control
Seguridad
Pista de auditoria (triggers)
Definir la arquitectura de la informacin:
Modelo consistente y concordante al PS de la organizacin
Datos y DD corporativo
Clasificacin de los datos en cuanto a su seguridad
Niveles de seguridad para cada clasificacin
Seleccin del hardware para la BD

MCV Diseo y carga

Diseo lgico y fsico de la BD

Carga de datos
Inicial

Migracin
Contemplar datos con errores
Lote de prueba

MCV Explotacin y mantenimiento


La explotacin del sistema es posterior a la prueba de aceptacin del usuario

Los datos se tratan en forma congruente y exacta

Los datos se modifican acorde a una matriz de autorizaciones

Tareas de mantenimiento de BD
ndices, compactacin, tuning, entre otros.

MCV Revisin post-implantacin

Revisin posterior que garantiza la conservacin de la BD

Se evala:
Resultados esperados

Necesidades de los usuarios

Costos y beneficios reales vs los previstos

MCV Otros procesos

Capacitacin/formacin a usuarios
Informticos

No informticos
Plan de formacin integral

Cuidado con los usuarios sin formacin

Aseguramiento de la calidad
Ej. Teora de la normalizacin

Auditoria y CI de un entorno de BD
SGBD: kernel, catlogos, etc
Software de auditoria: GAS (extraccin de datos, Lotes de prueba)
Sistema de monitorizacin y ajuste: SE de optimizacin
SO: Relacin independiente o dependiente con el SGBD)
Monitor de transacciones
Protocolos y sistemas distribuidos: rol de las redes de comunicacin
Paquete de seguridad: Privilegios, controles de usuarios externos
Diccionario de datos: Integracin de componentes y seguridad de datos
Herramientas CASE: Se usan en conjunto con los DD. Grficos, tablas.
L4G/4GL o SQL
Facilidades de usuario: QBE Conexin con paquetes ofimticos
Herramientas de MD: DWH y DM
Aplicaciones: las aplicaciones no deben afectar la integridad de los datos de la base.

Auditora y Control Interno de un entorno de Base de Datos


Cuando el auditor se encuentra con el sistema en Produccin tendr que estudiar el SGBD
y su entorno; como Control, Integridad y Seguridad de los Datos compartidos entre
usuarios.
La complejidad del entorno de las Bases de Datos hacen que no se pueda limitar solo al
SGBD.
ENTORNO DE BASE DE DATOS

Tcnicas para el control de BD en entornos complejos

Matrices de control

Transacciones de datos
Preventiva: verificacin
Detectiva: informe de reconciliacin
Correctiva: no tiene
Registros de BD
Preventiva: cifrado
Detectiva: informe de excepcin
Correctiva: backup
Anlisis de caminos de acceso.
Documenta el flujo, almacenamiento y procesamiento de los datos desde su entrada hasta
la escritura en el disco.-
Auditoria para Oracle

Conjunto de caractersticas que permite al


DBA y a los usuarios hacer un
seguimiento del uso de la base de datos.
La informacin de las auditoras se
almacena en el diccionario de datos, en la
tabla SYS.AUD$ o en la pista de auditora
del sistema operativo (si lo permite). Lo
anterior viene definido en el parmetro
audit_trail.
Se pueden auditar tres tipos de acciones:
Intentos de inicio de sesin
Accesos a objetos
Acciones de la base de datos.
Intentos de conexin fallidos

AUDIT TRAIL
Auditoria para SQL Server
Implica el seguimiento y registro de los eventos que se producen en Motor de la BD.
Especificaciones de auditora de servidor para los eventos de servidor

Especificaciones de auditora de base de datos para los eventos de base de datos (limitada
a las ediciones Enterprise, Developer y Evaluation)

SQL Server Audit proporciona las herramientas y los procesos necesarios para habilitar,
almacenar y ver auditoras en varios objetos de servidor y de base de
Proceso general de creacin y uso de una auditora

Crear una auditora y definir su destino

Crear una especificacin de auditora de servidor o una especificacin de auditora de base


de datos

Habilitar la auditora
Leer los eventos de auditora mediante el Visor de eventos o el Visor de archivos de
registro de Windows, o la funcin fn_get_audit_file

Funciones y vistas dinmicas Descripcin

sys.dm_audit_actions Devuelve una fila por cada accin de


auditora sobre la que se puede guardar
informacin en el registro de auditora y
por cada grupo de acciones de auditora
que se puede configurar como parte de
SQL Server Audit.

sys.dm_server_audit_status Proporciona informacin sobre el estado


actual de la auditora.

sys.dm_audit_class_type_map Devuelve una tabla que asigna el campo


class_type del registro de auditora al
campo class_desc de
sys.dm_audit_actions.

fn_get_audit_file Devuelve informacin de un archivo de


auditora creado por una auditora de
servidor.
Vistas de catlogo Descripcin

sys.database_audit_specifications Contiene informacin sobre las


especificaciones de auditora de base de
datos en una auditora de SQL Server
de una instancia del servidor.

sys.database_audit_specification_details Contiene informacin sobre las


especificaciones de auditora de base de
datos en una auditora de SQL Server
de una instancia de servidor para todas
las bases de datos.

sys.server_audits Contiene una fila para cada auditora de


SQL Server de una instancia de
servidor.

sys.server_audit_specifications Contiene informacin sobre las


especificaciones de auditora de
servidor en una auditora de SQL
Server de una instancia del servidor.

sys.server_audit_specifications_details Contiene informacin sobre los detalles


de las especificaciones de auditora de
servidor (acciones) en una auditora de
SQL Server de una instancia de
servidor.

sys.server_file_audits Contiene informacin adicional sobre


el tipo de auditora de archivos en una
auditora de SQL Server de una
instancia de servidor.
Permisos

Para poder ver las vistas de catlogo se debe cumplir una de las condiciones siguientes:
Pertenecer al rol sysadmin
El permiso CONTROL SERVER
El permiso VIEW SERVER STATE
El permiso ALTER ANY AUDIT
El permiso VIEW AUDIT STATE (solo da el acceso principal a la vista de catlogo
sys.server_audits)

Conclusiones

La gran difusin de los Sistemas de Gestin de Bases de datos (SGBD) junto con la
relacin de los datos como uno de los recursos fundamentales de las empresas, ha hecho
que los temas relacionados a su control interno y auditoria cobren cada da mayor inters
Demostrar la integridad de la informacin, mitigar los riesgos asociados, asegurar la
confidencial de la informacin, garantizar la seguridad de los datos y conocer quin o qu
les hizo exactamente qu, cundo y cmo a los datos, conforman la idea principal de la
Auditoria.
Estudiar el SGBD y su entorno es primordial al implementar un ambiente de auditoria de
BD
Oracle Audit Vault y SQL Server Audit son algunos de los productos que nos ofrecen el
mercado para los auditores de BD
Administracin de base de datos y su rendimiento

DBA es tambin una abreviatura en ingls para hacer negocios como (doing business as),
un trmino usado a veces en la escritura de negocios y legal. dBA es una abreviatura de
decibelios con ponderacin.

Un administrador de base de datos (DBA) dirige o lleva a cabo todas las actividades
relacionadas con el mantenimiento de un entorno de base de datos exitoso. Las
responsabilidades incluyen el diseo, implementacin y mantenimiento del sistema de base
de datos; el establecimiento de polticas y procedimientos relativos a la gestin, la
seguridad, el mantenimiento y el uso del sistema de gestin de base de datos; y la
capacitacin de los empleados en la gestin y el uso de las bases de datos. Se espera que un
DBA se mantenga al tanto de las nuevas tecnologas y los nuevos enfoques de
diseo. Tpicamente, un DBA tiene ya sea un ttulo en Ciencias de la Computacin y algn
tipo de entrenamiento en el puesto de trabajo con un producto particular de base de datos o
una experiencia ms amplia con una gama de productos de base de datos. Por lo general, se
espera que un DBA tenga experiencia con uno o ms de los principales productos de
gestin de base de datos, tales como Structured Query Language, SAP y software de
gestin de bases de datos basado en Oracle.

Administracin de la base de datos Oracle

En su calidad de administrador de bases de datos, debe configurar y mantener la base de


datos Oracle para almacenar todos los datos de su sistema y asegurarse de que ha
configurado la base de datos para obtener un rendimiento ptimo.

Rendimiento de la base de datos Oracle

Configure y ajuste la base de datos Oracle para garantizar un rendimiento ptimo. Puede
optimizar la base de datos en temas como el uso de la memoria, la asignacin de
almacenamiento y las conexiones.
Recomendacin

La habilitacin de la gestin de la memoria de uso compartido automtica puede ayudarle a


utilizar con eficiencia la memoria del sistema.

Parmetros de conexin de Oracle

Ejecute la base de datos Oracle en modo de "servidor dedicado" en la que necesita una
conexin de base de datos (que es proceso de Oracle) para cada conexin de aplicacin
(proceso de usuario). En las bases de datos Oracle, el nmero mximo de conexiones
permitidas por base de datos se establece utilizando el parmetro PROCESSES en el
archivo initsid.ora donde sid es el ID de sistema de la base de datos.
Ejemplo
Si slo tiene una instancia de InfoSphere MDM Collaboration Server conectada a la base de
datos y la instancia necesita un mximo de 133, asegrese de que el
parmetro PROCESSES est establecido, como mnimo, en 143, que es 10 ms del
mximo necesario. Necesita 10 conexiones adicionales para tener en cuenta los procesos en
segundo plano de Oracle y algunas conexiones de SQL PLUS. Adems, si aade otra
instancia de InfoSphere MDM Collaboration Server, que tambin necesita 133 conexiones
a la misma base de datos, debe establecer el parmetro PROCESSES en 276 como
mnimo, de los que 143 sirven para tener en cuenta la primera instancia y las 133
conexiones adicionales sirven para la otra instancia de InfoSphere MDM Collaboration
Server.

Espacios de tabla de Oracle

Los datos que se entran en InfoSphere MDM Collaboration Server se almacenan en la base
de datos subyacente y se organizan en diversos espacios de tabla de la base de datos. Dado
que se produce un gran volumen de transacciones de datos, es preciso asegurarse de que la
base de datos est ajustada de forma ptima.
Puede mejorar an ms el rendimiento y disponibilidad de la base de datos supervisando el
espacio libre disponible en los espacios de tabla y utilizando tablas temporales.
Consulte la documentacin de Oracle para obtener ms informacin sobre cmo gestionar
los espacios de tabla en la base de datos Oracle:

Parmetros de configuracin para bases de datos Oracle

Para garantizar que el rendimiento de su base de datos sea ptimo, puede configurar los
parmetros de configuracin de la base de datos.
Oracle utiliza parmetros de configuracin para ubicar archivos y especificar los
parmetros de tiempo de ejecucin que son comunes a todos los productos de Oracle.
Todos los parmetros de Oracle se almacenan en el archivo init.ora del registro.
Comprobacin del estado de la base de datos Oracle

Compruebe el estado de la base de datos a intervalos regulares para mantener la


disponibilidad del sistema.
Puede utilizar las herramientas de Oracle siguientes para supervisar la base de datos:

Oracle Alerts

Supervisin del uso del espacio de tabla

Informes AWR (Automatic Workload Repository)

Supervisin de diversos diagnsticos de rendimiento

Oracle Enterprise Manager for Database

Supervisin del estado y de la carga de trabajo

Bases de datos Oracle

Para mantener las bases de datos Oracle, puede utilizar una serie de scripts y mandatos para
generar estadsticas y reorganizar las bases de datos.

Generacin de estadsticas y reorganizacin de bases de datos Oracle

Para proporcionar al optimizador informacin precisa con el fin de determinar el plan de


acceso ms adecuado, es necesario utilizar la recopilacin automtica de estadsticas de
Oracle.

Acerca de esta tarea


Oracle 10g y 11g tienen un trabajo de recopilacin automtica de estadsticas que est
planificado de forma predeterminada y que se inicia diariamente alrededor de las 10 de la
noche. Oracle recomienda no utilizar el trabajo de recopilacin automtica de estadsticas
junto con el procedimiento manual DBMS_STATS.

El script de shell analyze_schema.sh invoca el procedimiento DBMS_STATS. Por lo tanto,


si utiliza Oracle 10g o 11g, debe dejar de utilizar el script analyze_schema.sh y empezar a
trabajar solamente con el trabajo de recopilacin automtica de estadsticas planificado.
Siga los pasos siguientes para dejar de utilizar el script analyze_schema.sh y empezar a
utilizar el trabajo de recopilacin automtica de estadsticas. Esta operacin debe realizarse
una sola vez, y solamente si ha ejecutando anteriormente el procedimiento DBMS_STATS
o el script analyze_schema.sh.
Procedimiento
1. Si utiliza Oracle 10g:
a. Asegrese de que el trabajo GATHER_STATS_JOB est planificado mediante el SQL
siguiente:
select state from dba_scheduler_jobs where job_name = 'GATHER_STATS_JOB';
La salida debera ser 'SCHEDULED'.

b. Suprima las estadsticas que pudieran existir con el mandato siguiente de SQLPLUS.
Sustituya WPCUSER por el usuario especificado en la variable db_user del archivo
$TOP/etc/default/common.properties.
EXEC DBMS_STATS.DELETE_SCHEMA_STATS('WPCUSER');
c. Cambie el valor predeterminado de "ESTIMATE_PERCENT" por 100% para
DBMS_STATS. Utilice el procedimiento siguiente de SQLPLUS para cambiar el valor
predeterminado. Ejecute esto con el ID de usuario SYSDBA de Oracle.
EXEC DBMS_STATS.SET_PARAM('ESTIMATE_PERCENT','100');
d. Ejecute el trabajo GATHER_STATS_JOB con el mandato siguiente de SQLPLUS.
Ejecute este mandato con el ID de usuario SYSDBA de Oracle.
EXEC DBMS_SCHEDULER.RUN_JOB('GATHER_STATS_JOB',TRUE);
e. Concluya e inicie la base de datos Oracle.

2. Si utiliza Oracle 11g: El trabajo de recopilacin automtica de estadsticas de Oracle 11g es


un procedimiento interno llamado GATHER_DATABASE_STATS_JOB_PROC.
3.
a. Asegrese de que el trabajo de recopilacin automtica de estadsticas est planificado
con el SQL siguiente.
SELECT ENABLED FROM DBA_SCHEDULER_PROGRAMS WHERE
PROGRAM_NAME = 'GATHER_STATS_PROG';
La salida debera ser 'TRUE'.

Nota

GATHER_STATS_PROG es el programa que ejecuta el procedimiento interno


GATHER_DATABASE_STATS_JOB_PROC).

b. Suprima las estadsticas que pudieran existir con el mandato siguiente de SQLPLUS.
Sustituya WPCUSER por el usuario especificado en la variable db_user del archivo
$TOP/etc/default/common.properties.
EXEC DBMS_STATS.DELETE_SCHEMA_STATS('WPCUSER');
c. Cambie el valor predeterminado de "ESTIMATE_PERCENT" por 100% para
DBMS_STATS. Utilice el procedimiento siguiente de SQLPLUS para cambiar el valor
predeterminado. Ejecute esto con el ID de usuario SYSDBA de Oracle:
EXEC DBMS_STATS.SET_PARAM('ESTIMATE_PERCENT','100');
d. Ejecute GATHER_DATABASE_STATS con el mandato siguiente de SQLPLUS.
Ejecute este mandato con el ID de usuario SYSDBA de Oracle.
EXEC DBMS_STATS.GATHER_DATABASE_STATS(ESTIMATE_PERCENT =>
DBMS_STATS.AUTO_SAMPLE_SIZE, METHOD_OPT => 'FOR ALL COLUMNS
SIZE AUTO', DEGREE => 2, CASCADE => TRUE);
e. Concluya e inicie la base de datos Oracle.
Nota

Este paso anula los planes de SQL dinmico que siguen utilizando las rutas de acceso
antiguas que no utilizaban las estadsticas actualizadas actuales.

4. Modifique el intervalo de mantenimiento predeterminado del trabajo de recopilacin


automtica de estadsticas. Oracle proporciona programas de utilidad para cambiar el
intervalo de planificacin predeterminado de la recopilacin automtica de estadsticas. En
este ejemplo se cambia la planificacin de mantenimiento planificada para que se efecte
diariamente a la 1 y a las 3 de la madrugada. Debe ejecutar estos mandatos con el usuario
sysdba.

5. EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name =>


'WEEKNIGHT_WINDOW', attribute => 'repeat_interval', value =>
'freq=daily;byday=MON, TUE, WED, THU, FRI;byhour=1;byminute=0;bysecond=0');

6. EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name =>


'WEEKNIGHT_WINDOW', attribute => 'duration', value => interval '120' minute);

7. EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'WEEKEND_WINDOW',


attribute => 'repeat_interval', value => 'freq=daily;byday=SAT,
SUN;byhour=1;byminute=0;bysecond=0');

8.
EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'WEEKEND_WINDOW',
attribute => 'duration', value => interval '120' minute);

Scripts y mandatos de Oracle


Puede utilizar scripts y mandatos para gestionar la base de datos Oracle.
Utilice los scripts y mandatos siguientes para gestionar bases de datos de Oracle:

Scripts para Oracle

analyze_schema.sh

Actualiza las estadsticas.

Generacin de estadsticas y reorganizacin de bases de datos Oracle


Para proporcionar al optimizador informacin precisa con el fin de determinar el plan de
acceso ms adecuado, es necesario utilizar la recopilacin automtica de estadsticas de
Oracle.
Acerca de esta tarea
Oracle 10g y 11g tienen un trabajo de recopilacin automtica de estadsticas que est
planificado de forma predeterminada y que se inicia diariamente alrededor de las 10 de la
noche. Oracle recomienda no utilizar el trabajo de recopilacin automtica de estadsticas
junto con el procedimiento manual DBMS_STATS.

El script de shell analyze_schema.sh invoca el procedimiento DBMS_STATS. Por lo tanto,


si utiliza Oracle 10g o 11g, debe dejar de utilizar el script analyze_schema.sh y empezar a
trabajar solamente con el trabajo de recopilacin automtica de estadsticas planificado.
Siga los pasos siguientes para dejar de utilizar el script analyze_schema.sh y empezar a
utilizar el trabajo de recopilacin automtica de estadsticas. Esta operacin debe realizarse
una sola vez, y solamente si ha ejecutando anteriormente el procedimiento DBMS_STATS
o el script analyze_schema.sh.

Procedimiento
1. Si utiliza Oracle 10g:
a. Asegrese de que el trabajo GATHER_STATS_JOB est planificado mediante el SQL
siguiente:
select state from dba_scheduler_jobs where job_name = 'GATHER_STATS_JOB';
La salida debera ser 'SCHEDULED'.

b. Suprima las estadsticas que pudieran existir con el mandato siguiente de SQLPLUS.
Sustituya WPCUSER por el usuario especificado en la variable db_user del archivo
$TOP/etc/default/common.properties.
EXEC DBMS_STATS.DELETE_SCHEMA_STATS('WPCUSER');
c. Cambie el valor predeterminado de "ESTIMATE_PERCENT" por 100% para
DBMS_STATS. Utilice el procedimiento siguiente de SQLPLUS para cambiar el valor
predeterminado. Ejecute esto con el ID de usuario SYSDBA de Oracle.
EXEC DBMS_STATS.SET_PARAM('ESTIMATE_PERCENT','100');
d. Ejecute el trabajo GATHER_STATS_JOB con el mandato siguiente de SQLPLUS.
Ejecute este mandato con el ID de usuario SYSDBA de Oracle.
EXEC DBMS_SCHEDULER.RUN_JOB('GATHER_STATS_JOB',TRUE);
e. Concluya e inicie la base de datos Oracle.
2. Si utiliza Oracle 11g: El trabajo de recopilacin automtica de estadsticas de Oracle 11g es
un procedimiento interno llamado GATHER_DATABASE_STATS_JOB_PROC.
a. Asegrese de que el trabajo de recopilacin automtica de estadsticas est planificado
con el SQL siguiente.
SELECT ENABLED FROM DBA_SCHEDULER_PROGRAMS WHERE
PROGRAM_NAME = 'GATHER_STATS_PROG';
La salida debera ser 'TRUE'.
Nota

GATHER_STATS_PROG es el programa que ejecuta el procedimiento interno


GATHER_DATABASE_STATS_JOB_PROC).

b. Suprima las estadsticas que pudieran existir con el mandato siguiente de SQLPLUS.
Sustituya WPCUSER por el usuario especificado en la variable db_user del archivo
$TOP/etc/default/common.properties.
EXEC DBMS_STATS.DELETE_SCHEMA_STATS('WPCUSER');
c. Cambie el valor predeterminado de "ESTIMATE_PERCENT" por 100% para
DBMS_STATS. Utilice el procedimiento siguiente de SQLPLUS para cambiar el valor
predeterminado. Ejecute esto con el ID de usuario SYSDBA de Oracle:
EXEC DBMS_STATS.SET_PARAM('ESTIMATE_PERCENT','100');
d. Ejecute GATHER_DATABASE_STATS con el mandato siguiente de SQLPLUS.
Ejecute este mandato con el ID de usuario SYSDBA de Oracle.
EXEC DBMS_STATS.GATHER_DATABASE_STATS(ESTIMATE_PERCENT =>
DBMS_STATS.AUTO_SAMPLE_SIZE, METHOD_OPT => 'FOR ALL COLUMNS
SIZE AUTO', DEGREE => 2, CASCADE => TRUE);
e. Concluya e inicie la base de datos Oracle.
Nota

Este paso anula los planes de SQL dinmico que siguen utilizando las rutas de acceso
antiguas que no utilizaban las estadsticas actualizadas actuales.

3. Modifique el intervalo de mantenimiento predeterminado del trabajo de recopilacin


automtica de estadsticas. Oracle proporciona programas de utilidad para cambiar el
intervalo de planificacin predeterminado de la recopilacin automtica de estadsticas. En
este ejemplo se cambia la planificacin de mantenimiento planificada para que se efecte
diariamente a la 1 y a las 3 de la madrugada. Debe ejecutar estos mandatos con el usuario
sysdba.

4. EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name =>


'WEEKNIGHT_WINDOW', attribute => 'repeat_interval', value =>
'freq=daily;byday=MON, TUE, WED, THU, FRI;byhour=1;byminute=0;bysecond=0');

5. EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name =>


'WEEKNIGHT_WINDOW', attribute => 'duration', value => interval '120' minute);

6. EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'WEEKEND_WINDOW',


attribute => 'repeat_interval', value => 'freq=daily;byday=SAT,
SUN;byhour=1;byminute=0;bysecond=0');
7.
EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'WEEKEND_WINDOW',
attribute => 'duration', value => interval '120' minute);
drop_temp_agg_tables.pl
Script bash que elimina las tablas de agregados temporales.

Eliminacin de ndices y tablas de agregados temporales

Acerca de esta tarea

drop_temp_agg_tables.pl es un script de shell bash que invoca la CLI y SQL para


DB2 o SQLPLUS para Oracle, para las bases de datos de fondo respectivas.

Procedimiento
Ejecute el script drop_temp_agg_tables.pl que se encuentra en el
directorio $TOP/src/db/schema:

$TOP/src/db/schema/drop_temp_agg_tables.pl

Qu hacer a continuacin
Ejecute este script una vez a la semana o siempre que tenga un mantenimiento o
tiempo de inactividad planeado.
Implementa Backups de base de datos

Tipos de Backup.

Backup Lgico.

Se realiza con la BD online.

Se realiza con la utilidad expdp (antiguo EXP en Oracle 9i)

Permite transportar bases de datos entre servidores

Permite hacer restauraciones parciales (p.ej.:recuperar una tabla)

Backup Fsico

Se realiza en caliente

Se utiliza rman

Se realiza un FULL BACKUP de BD

Se realiza un Backup de los redos que permite recuperar hasta un punto en el tiempo

liberar espacio del directorio (RECOVERY_DEST) donde se guardan los


archivelog
COMO SE HACEN LOS BACKUPS

A continuacin se explica cmo se han implementado los backup. El cdigo de los ficheros
mostrados son ejemplos para entender cmo se hacen las copias pero pueden no ser iguales
que los ficheros que realmente se estn ejecutando (para ver los ficheros reales, conectarse
a los servidores correspondientes)

Cmo se planifican?

Se utiliza el cron. Ejemplos:

30 00 * * 2-6 /oracle/scripts/nb_instancia_export_full >>


/oracle/scripts/nbinstancia_export_full.log

00 01 * * 2-6 /oracle/scripts/nbinstancia_backup_full >>


/oracle/scripts/nb_instancia_backup_full.log

00 03,07,11,15,19,23 * * 1-6
/export/home/oracle/scripts/nb_instancia_backup_redo >>
/oracle/scripts/nb_instancia_backup_redo.log

30 01 * * 2-6 /usr/lib/oracle/xe/backup/XE_export_full >>


/usr/lib/oracle/xe/backup/nb_instancia_export_full.log
Lgico

Ejemplo de fichero XE_export_full:

echo "Comienza Backup"


date
. .profile
FECHA_EXP=`date '+%d%m'`
DIRECTORIO_EXP="/usr/lib/oracle/xe/backup/export"
expdp nb_instancia/nb_instancia FULL=y DIRECTORY=PUMP_DIR1
DUMPFILE=XE_exp_$FECHA_EXP.dmp LOGFILE=XE_exp_$FECHA_EXP.log
echo "Fin de Backup"
date
find $DIRECTORIO_EXP -type f -mtime +7 -exec rm {} \;
echo "fin ejecucion de borrado de copias viejas"
date
echo "-----------------------------"
Fsico

Ejemplo de fichero (nb_instancia_backup_full):

echo "Comienza Backup FULL"


date
. .profile
FECHA_EXP=`date '+%d%m'`
DIRECTORIO_EXP="/backup/rman"
rman target sys/nb_instancia02@nb_instancia cmdfile $HOME/scripts/nb_rman_full_cmd
msglog $DIRECTORIO_EXP/rman_full_$FECHA_EXP.log
date
echo "Fin de Backup FULL"
find $DIRECTORIO_EXP -type f -mtime +7 -exec rm {} \;
date
echo "fin ejecucion de borrado de copias viejas"
echo "-------------------------------------"
echo "Comienza Backup ArchiveLog"
date
. .profile
FECHA_EXP=`date '+%d%m%y%H%M'`
DIRECTORIO_EXP="/backup/rman"
rman target sys/nb_instancia02@nb_instancia cmdfile
$HOME/scripts/nb_rman_redo_cmd msglog
$DIRECTORIO_EXP/rman_redo_$FECHA_EXP.log
date
echo "Fin de Backup ArchiveLog"
echo "------------------------"
#find $DIRECTORIO_EXP -type f -mtime +7 -exec rm {} \;
#echo "fin ejecucion de borrado de copias viejas"
#date

Ejemplo de fichero de comandos de rman (nb_instancia_rman_full_cmd y


nb_instancia_rman_redo_cmd)

run{
backup full database format '/backup/rman/backup%d_set%s_%t' plus archivelog not
backed up format '/backup/rman/backup%d_redo_set%s_%t';
}
run{
backup archivelog all not backed up format '/backup/rman/backup%d_redo_set%s_%t';
}
COMO SE RECUPERAN LOS BACKUPS

Lgico

Utilizar la utilidad expdp (dado que los datos se han exportado con impdp).

Ejemplo para recuperar esquema y datos de nb_aplicacion:

impdp instancia_bbdd/pass_usuario SCHEMAS=nb_aplicacion


DIRECTORY=PUMP_DIR1 DUMPFILE=XE_exp_2112.dmp

Fsico

Se utiliza rman (el backup se realiz con esa misma utilidad).

Para recuperar un full backup:

sRMAN> connect TARGET SYS/usuario_instancia_bbdd@instancia_bbdd


RMAN> recover database;
Gua rpida para RMAN

1. Objetivos

Manual con ejemplos bsicos de uso de RMAN.

1. Conectarse al catalogo de RMAN de una BBDD determinada

[ora11g@prueba ~]$ rman target / catalog rman@rman

Recovery Manager: Release 11.2.0.1.0 - Production on Tue Feb 1 10:00:45


2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

connected to target database: DBA11G (DBID=337560195)

recovery catalog database Password: *****

connected to recovery catalog database

2. Crear y Configurar un catlogo de recuperacin.

2.1. Configurar el catlogo de recuperacin de la Base de datos

Conectarse a la BBDD para crear un tablespace nuevo

$ sqlplus /nolog

SQL> connect /as sysdba

Conectado.

Crear un tablespace

SQL> create tablespace nuevo datafile '/database/dba11g/nuevo.dbf' size


2M autoextend on;

Tablespace creado.
2.2. Crear el propietario del catlogo de recuperacin.

SQL> create user rman

2 identified by rman

3 default tablespace nuevo

4 quota unlimited on nuevo;

SQL> grant connect to rman

SQL> grant recovery_catalog_owner to rman;

2.3. Crear el catlogo de recuperacin

$ rman target / catalog rman@rman

rman> create catalog;

3. Sincronizar el catlogo de recuperacin

3.1. Registrar una BBDD

$ rman target / catalog rman@rman

RMAN> register database;

3.2. Desregistrar una BBDD

$ Rman target / catalog rman@rman

RMAN> unregister database;


4. Borrar catalog de recuperacin

RMAN> connect catalog rman/rman@rman

RMAN> drop catalog;

RMAN> drop catalog;

5. Actualizacin de versin del catlogo de recuperacin.

RMAN> upgrade catalog;

6. Crear y usar un catlogo virtual privado

6.1. Crear el propietario del catlogo virtual privado.


$ sqlplus /nolog

SQL> connect /as sysdba

SQL> create user user_virtual

2 identified by uservirtual

3 default tablespace users

4 quota unlimited on users;

6.2. Otorgar permisos al propietario del catlogo virtual privado.

SQL> grant recovery_catalog_owner to user_virtual;

SQL> grant catalog for database dba11g to user_virtual;

SQL> grant register database to user_virtual;


6.3 Crear un catlogo virtual privado

$ rman target / catalog user_virtual/uservirtual@rman

RMAN> create virtual catalog;

Nota: Si la versin del cliente rman es anterior a Oracle Database 11g se debe
ejecutar la siguiente sentencia:

RMAN> exe rman.dbms_rcvcat.create_virtual_catalog;

6.4 Usar el catlogo virtual privado.

Registramos una base de datos para este catlogo

$ rman target / catalog user_virtual/uservirtual@rman

RMAN> register database;

VIsualizamos las bases de datos registradas

$ sqlplus user_virtual/user_virtual@rman

SQL> Select distict db_name from dbinc;


7. Backups ( ejemplo con base de datos dba11g )

Nos conectamos a la base de datos contra el catlogo

$ export ORACLE_SID=dba11g$

rman target / catalog rman/rman@rman

Recovery Manager: Release 11.2.0.1.0 - Production on Fri Feb 4 09:55:30


2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

connected to target database: DBA11G (DBID=337560195)

connected to recovery catalog database

7.1 Backup completo de la BBDD (Whole Database Backup)

RMAN> backup as copy database spfile plus archivelog;

7.2 Full Backups

RMAN> backup database spfile plus archivelog;

7.3. Incremental Backups

Level 0 Incremental Backups

RMAN> backup incremental level 0 tablespace users;


Differential Incremental Backups
RMAN> backup incremental level 1 tablespace users;

7.4 Cumulative Incremental Backups

RMAN> backup incremental level 1 cumulative tablespace users;

7.5 Comprimir backups

RMAN> backup as compressed backupset format /ubicacion/


rman_%d_s%_t%_%p.bkupset tablespace users; RMAN> backup as
compressed backupset users;

7.6 Borrar todos los backups

RMAN> delete backup

7.7 Eliminar los backups obsoletos

RMAN> delete obsolete;

RMAN retention policy will be applied to the command

RMAN retention policy is set to recovery window of 1 days

using channel ORA_DISK_1

Deleting the following obsolete backups and copies:

-----

Deleted 17 objects
7.8 Ms tipos de backup con RMAN

Backup de toda la base de datos

RMAN> backup database;

Backup de un tablespace

RMAN> backup tablespace tbs_name;

Backup de un usuario

RMAN> backup user username;

8. Recover/ Recuperacin con RMAN

8.1 Recuperacin total de una base de datos

Partimos de un Whole Database Backup y se ha borrado toda la base de


datos

RMAN> backup as copy database spfile plus archivelog;

La recuperacin se realiza de la siguiente forma:

La base de datos tiene que estar en modo nomount$sqlplus /nolog

SQL> connect /as sysdba

SQL> shutdown abort;

SQL> startup nomount;


Recuperar la BBDD

RMAN> restore database;

RMAN> recover database;

Montar la BBDD y abrir la base de datos con un resetlogs

SQL> alter database mount;

SQL> alter database open resetlogs;

8.2 Recuperacin de los controlfile

$ export ORACLE_SID=dba11g

$ rman target/ catalog rman/rman@rman

RMAN> restore controlfile;

8.3 Comandos generales para recuperar la BBDD

RMAN> restore database;

RMAN> recover database;


8.4 Comandos para la recuperacin a tener en cuenta

recover database until cancel

recover database until time '2004-03-21:22:59:04'

recover database until change 123456

recover datafile 'filename' until cancel

recover datafile 'filename' until time '2004-03-21:22:59:04'

recover datafile 'filename' until change 123456

recover tablespace ts_name until cancel

recover tablespace ts_name until time '2004-03-21:22:59:04'

recover tablespace ts_name until change 123456

recover database using backup controlfile

9. Listar los backups

RMAN> list backup;

You might also like