administraciÓn de base de datos
TRANSCRIPT
ADMINISTRACIÓN DE BASE
DE DATOS
GRUPO 3
DANNY ROSERO VEGA
PAMELA ANDRADE FUERTES
MYRIAM MEDINA TAPIA
MARCO ZUCUZHANAY LEMA
DANIEL QUISHPI CONDO
ROBETO CHASIPANTA LLULLUNA
ESPE – PAC BD – Julio 2014
Índice Liberación de una Base de datos Saturada.
Caída y recuperación de una base de datos
Seguridad de la Base de Datos
Identificación de Passwords por Default
Contraseñas Case-Sensitive
Opciones de Auditoría
Como asegurar el Diccionario de Datos Oracle
Directrices para asegurar el acceso del sistema operativo
Seguridad de la BD Oracle
Conclusiones
Bibliografía
Liberación de una Base de Datos
Saturada
En el presente documento vamos a realizar
los cambios necesarios en la base de datos
de tal forma que cuando se genere los
procesos o scripts de saturación de la base
en forma automática no sature la base de
datos.
Se describirá paso a paso los cambios
realizados y su demostración.
Como pudieron ver en el ejemplo 1 del slide “Ejemplos deSaturación”, la saturación presentada es en un ambientecontrolado que afecta al rendimiento de la base de datos enun 30% a 40% aproximadamente por un corto tiempo queno afecta al trabajo normal de los clientes conectados a labase de datos.
Este ambiente se presentó al ejecutar un script de respaldoen un ambiente de producción, es por este motivo que lopodemos llamar ambiente controlado, sabemos cuándo vaa comenzar y aproximadamente de acuerdo al tamaño dela base de datos sabremos cuando va a terminar.
Liberación de una Base de Datos
Saturada:
- Ejemplo 1
El manejo inadecuado de la memoria (SGA y PGA)respectivamente, generará problemas de rendimiento enla base de datos.Los siguientes parámetros permitirán la asignación de memoria en Forma Manual:
• En el momento de creación de la instancia, el instalador indica si se vaasignar la memoria automáticamente o se asignan los parámetros dememoria manual, esto modifica PGA_AGGREGATE_TARGET ySGA_TARGET al asignarlos; automáticamente deshabilita la opciónAUTOMATIC MEMORY MANAGEMENT, lo cual no quiere decir que si seasigna la administración automática de memoria desde el inicio no sepueda deshabilitar después de instalada la instancia.
• Ahora, la SGA asigna la memoria de trabajo que es la utilizada al subir labase de datos. Esta área de trabajo asigna los siguientes buffers SHAREDPOOL, BUFFER CACHE, LARGE POOL Y JAVA POOL.
Liberación de una Base de Datos
Saturada:
- Ejemplo 1
Por ejemplo si disponemos de unsistema con 32 GB en ram seasigna el siguiente parámetroSGA_MAX_SIZE, con el fin deasegurar que no se va a superarese tome de asignación deSGAALTER SYSTEM SETSGA_MAX_SIZE = 16 G yreiniciamos la instancia luego, semodifica el parámetroSGA_TARGET = 0, de esta formase le dice al motor que se van aasignar manualmente la memoriapara los otros recursosmencionados.
ALTER SYSTEM SET SGA_TARGET=0, este parámetro y los que vienen a continuación son dinámicos y por consiguiente no es necesario reiniciar la instancia
• ALTER SYSTEMSET DB_CACHE_SIZE = 10G
• ALTER SYSTEM SET SHARED_POOL_SIZE= 4G
• ALTER SYSTEM SET JAVA_POOL_SIZE = 1G
• ALTER SYSTEM SET LARGE_POOL_SIZE = 1G
Con los valores anteriormenteasignados, se espera obtener unmejor rendimiento o lograr obtenerun porcentaje de pérdidas debúsqueda en memoria de los datoscercanos a 0.
Liberación de una Base de Datos
Saturada:
- Ejemplo 1
Antecedentes.
Existen principalmente dos tipos de bloqueo:
Bloqueos de tablas (TM)
Bloqueos a nivel de fila (TX)
Los bloqueos a nivel de tabla son creados
cuando se ejecuta una sentencia DML del tipo:
update, insert, delete, select..forupdate sobre
la tabla entera.
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
Para la elaboración de la actividad nosbasaremos en la siguiente TablaT_SATURA, la cual contendrá doscampos como se describe acontinuación:
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
Identificando el bloqueo y solución.
Trabajando con la tabla T_SATURA. Script de
comprobación de bloqueo de tabla
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
Tras ejecutar la consulta obtenemos el
siguiente resultado.
El cual nos indica que no existe ninguna tabla
bloqueada ahora bloquearemos la tabla con el
siguiente script.
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
Al ejecutar la sentencia podemos apreciarque hemos lanzado un update sobre todoslos datos de la tabla y que hemos colocadointencionalmente un forupdate, para que latabla espere a la sentencia commit paraliberarse.
Frecuentemente este comportamiento queacabamos de hacerlo mediante un Queryocurre cuando se intenta alterar datos sobreuna sesión existente, es decir varios usuariosintentan modificar un mismo recurso.
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
Al volver a ejecutar el primer script, obtendremos el siguiente resultado.
Como podemos apreciar existe una tabla bloqueada,que corresponde al nombre de T_SATURA y laaplicación que lo provocó fue nuestro cliente Oracleque para este ejemplo es el TOAD, adema podemosapreciar el usuario y el proceso.
Si intentamos cualquier evento sobre la tabla, quese encuentra bloqueada no obtendremos resultado,sino hasta que esta se libere como veremos en elsiguiente ejemplo.
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
El log no nos retorna ningún valor puesto que
la tabla está bloqueada.
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
Desbloqueo.
El siguiente Script nos permite determinar el id de sesión que
mantiene la tabla bloqueada, el cual nos ayudara a
desbloquearla.
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
Como podemos apreciar sesión id que debemos usar para desbloquear la tabla es el 141,516. Ahora la desbloqueamos con el siguiente script.
Volvemos a ejecutar el script para descubrir el bloqueo y el resultado es que no existe ninguna sesión bloqueando ninguna tabla.
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
El bloqueo o saturación de una base de datosporque no tiene recursos de almacenamiento,como por ejemplo que el espacio de un DataFile deun TableSpace se haya terminado y este cause unbloqueo o saturación de la base de datos, que es elcaso puntual de nuestro ejemplo 3 del trabajocolaborativo 1, tenemos 2 formas de solucionarlode manera manual o de manera automática, estoquiere decir que Oracle administreautomáticamente el tamaño de los DataFiles.
Liberación de una Base de Datos
Saturada:
- Ejemplo 3
Para revisar el espacio libre en un TableSpace podemos
utilizar el siguiente script
Si queremos aumentar el espacio de un tablespace que
colapso porque no dispone de espacio libre, lo podemos
aumentar de la siguiente forma.
Liberación de una Base de Datos
Saturada:
- Ejemplo 3
Por obvias razones si el tablespace se volviera a llenar
tendríamos que volver a repetir el mismo procedimiento,
pero esto también se lo puede hacer automáticamente y
darle a Oracle la capacidad de controlar el espacio y
esto lo podemos realizar de la siguiente manera:
Liberación de una Base de Datos
Saturada:
- Ejemplo 3
También podemos agregar un proceso en nuestra base
de datos que controle nuestro espacio libre y envíe un
correo al DBA basándose en un mínimo permitido.
Liberación de una Base de Datos
Saturada:
- Ejemplo 3
Este procedimiento recibe un parámetro, que será el porcentaje
que queramos comprobar. Un valor normal sería 10%, de esta
forma comprobará que el espacio libre sea mayor de un 10% por
ciento del tamaño total del tablespace.
En caso de que no sea mayor que ese límite puesto, se enviará un
mail.
Esta tarea se puede automatizar poniendo un job (tarea) en la base
de datos y que compruebe cada X tiempo si los tablespaces se han
llenado.
Liberación de una Base de Datos
Saturada:
- Ejemplo 3
Caída y recuperación de una Base
de Datos• El funcionamiento optimo de una base de datos depende del tipo
estrategia que se planifique ante la eventualidad de fallos que sepuedan presentar en una instancia de datos, como puede ser lacorrupción de los control files, redo log o datafiles, así como superdida.
• Para ello es necesario planificar un plan de copias de seguridad,backup y de recuperación(recovery).
• Los desastres que se pueden presentar en un motor de base dedatos y a los cuales un DBA puede actuar y prever son los defuncionamiento de la base, estos son ocasionados por intervenciónhumana, fallos del DBA, configuraciones inapropiadas o malplanteamientos de los procesos de respaldo.
• El tipo de recuperación (recovery) de una instancia de oracle estadefinido por la configuración que esta tiene, así cuando configura unainstancia es importante determinar el tipo de ‘archivelog’ que tendrá.
Un recovery offline escuando la instancia debase de datos está enmodo ‘noarchivelog’,esto hace que pararealizar el recovery serealice un shutdown ala base.
Un recovery online, escuando la base dedatos arranca en mod‘archivelog’, ejecutareste proceso no esnecesario realizar unshutdown.
Caída y recuperación de una Base
de Datos
Existen dos tipos de ‘recovery’: offline y online:
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
La base de datos se encuentra en modo
‘archivelog’
El Tablespace
La Tabla
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Registros
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Calendarización copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Ejecución copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Informe de copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Informe de copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Repositorio Copias de Seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Datafile a eliminarse
Eliminando el Datafile
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
La base de datos esta activa y se realiza un
count a la tabla que se encontraba en el
datafile eliminado.
La base de datos informa el error ORA-00376,
este mensaje informa que no se puede
localizar el datafile ‘ESPEPAC2014.DBF’.
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Este suceso genera una ‘Alerta’ que se lo
puede visualizar a través del ‘em’.
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
El siguiente paso se realizar la recuperación
del datafile eliminado, realizando una
recuperación a nivel de objeto
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Al realizar la actividad anterior, como se puede
observar en el siguiente grafico
seleccionamos el objeto a ser recuperado.
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
El asistente nos permite revisar por última vez
si el objeto a recuperar es el correcto, antes
de ejecutar el proceso.
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
SI se selecciona un objeto que si existe el
proceso de recuperación indicará que el
objeto ‘ya existe’.
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Si la recuperación fue exitosa tendremos
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Comprobamos que el proceso de
recuperación fue exitoso
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
Seguridad de la Base de Datos
Mostraremos parámetros que se deben modificar para mantener la seguridad de
nuestra base de datos principalmente cuando se utiliza los comandos sqlplus / as sysdba.
Se tiene una nueva vista del diccionario llamada DBA_USERS_WITH_DEFPWD en la cual se encuentran registrados los usuarios que aún están utilizando sus passwords por default.
Seguridad de la Base de Datos
- Identificación de Passwords por
Default
La base de datos puede validar las contraseñas respetando si estas fueron ingresadas en mayúsculas /minúsculas, o no, a través del parámetro sec_case_sensitive_logon. Este parámetro puede tener los valores de TRUE / FALSE y es dinámico.
Cuando creamos una base de datos con el utilitarioDBCA, se nos preguntará si nos queremos actualizar alos nuevos estándares de seguridad (newsecuritystandards) , entre los cuales se incluye elpassword case-sensitive. Si aceptamos el parámetrosec_case_sensitive_logon estará en TRUE con lo quelas contraseñas se solicitarán en el mismo CASE en elque fueron ingresadas.
Seguridad de la Base de Datos
- Contraseñas Case-Sensitive
El parámetro “AUDIT_TRAIL” viene con el valor de “DB”
por default, y no con el valor de “NONE”
Se auditan por default, las siguientes opciones:
Seguridad de la Base de Datos
- Opciones de Auditoría
•ALTER SYSTEM
•SYSTEM AUDIT
•CREATE SESSION
•CREATE USER
•ALTER USER
•DROP USER
•ROLE
•CREATE ANY TABLE
•ALTER ANY TABLE
•DROP ANY TABLE
•CREATE PUBLIC
DATABASE LINK
•GRANT ANY ROLE
•ALTER DATABASE
•CREATE ANY
PROCEDURE
•ALTER ANY
PROCEDURE
•DROP ANY PROCEDURE
•ALTER PROFILE
•DROP PROFILE
•GRANT ANY PRIVILEGE
•CREATE ANY LIBRARY
•EXEMPT ACCESS
POLICY
•GRANT ANY OBJECT
PRIVILEGE
•CREATE ANY JOB
•CREATE EXTERNAL JOB
El diccionario de datos es unconjunto de tablas de bases dedatos que proporcionaninformación sobre la base dedatos, tales como lasdefiniciones de esquema ovalores por defecto.
En el diccionario de datos setienen las definiciones de todoslos objetos de esquema en labase de datos (tablas, vistas,índices, clusters, sinónimos,secuencias, procedimientos,funciones, paquetes, triggers,etc).
Las tablas del diccionario dedatos y puntos de vista parauna determinada base de datosse almacenan en el Sistema detablas de la base de datos.
El diccionario de datos seestructura en las tablas y vistas,al igual que los datos de otrabase de datos. Todas las tablasdel diccionario de datos ypuntos de vista para unadeterminada base de datos sonpropiedad del usuario SYS.
Seguridad de la Base de Datos
- Como asegurar el Diccionario de Datos Oracle
Usted puede proteger el diccionario de datos, permitiendo la O7_DICTIONARY_ACCESSIBILITY parámetro de inicialización.
Este parámetro evita que los usuarios que tienenel CUALQUIER privilegio del sistema del uso deesos privilegios en el diccionario de datos, esdecir, en los objetos en el SYS esquema.
El privilegio conocido como CUALQUIERprivilegio, es generalmente concedido a lospropietarios de aplicaciones y administradoresindividuales de la base de datos.
Como asegurar el Diccionario de Datos
Oracle- Activación de Protección de Datos Diccionario
Comienzo Oracle Enterprise Manager DatabaseControl (Control de bases de datos).
Inicie una sesión como SYS y conectar con la SYSDBA privilegio.
Nombre de usuario: SYS.
Contraseña: Introduzca la contraseña del usuario.
Conectar como: SYSDBA.
Aparece la página de inicio de la base de datos Oracle Enterprise:
Haga clic en servidor para mostrar la subpágina Server.
En la sección Configuración de la base de datos, haga clic en Parámetros de inicialización.
Como asegurar el Diccionario de Datos
Oracle- Para activar la protección de datos diccionario:
La página de inicialización Parámetros.En la lista, la búsqueda de O7_DICTIONARY_ACCESSIBILITY.
En el Nombre, introduzca O7_ (la letra O ) y haga clic en Ir . Puede introducir los primeros caracteres de un nombre de parámetro. En este caso, O7_muestra el parámetro O7_DICTIONARY_ACCESSIBILTY.
En función del parámetro, es posible que tenga que modificar el valor de la subpágina SPFile.
Haga clic en la SFFile ficha para mostrar la subpágina SPFile.
Establecer el valor de O7_DICTIONARY_ACCESSIBILTY a FALSO .
Haga clic en Aplicar.
Como asegurar el Diccionario de Datos
Oracle- Para activar la protección de datos diccionario:
Reiniciar la instancia de base de datos Oracle.
Haga clic en la instancia de base de datos
enlace.
Haga clic en Inicio para mostrar la base de datos
de control de tu página de inicio.
En General, haga clic en Apagar .
En la página de inicio / apagado de Credenciales,
escriba sus credenciales.
Después de la parada completa, haga clic en
Inicio.
Como asegurar el Diccionario de Datos
Oracle- Para activar la protección de datos diccionario:
Limitar el número de usuarios del sistema operativo.
Limitar los privilegios de las cuentas del sistema operativo (administrativo, la raíz de privilegiados, o DBA) en el host de la base de datos Oracle (equipo físico). Sólo otorga al usuario el menor número de privilegios necesarios para realizar sus tareas.
Restringir la capacidad de modificar el archivo por defecto y permisos de directorio para el hogar Base de Datos Oracle (instalación) de directorio o de su contenido.
Restringir los enlaces simbólicos. Asegúrese de que cuando se proporciona una ruta o un archivo a la base de datos, ni los autos ni cualquier parte de la ruta se puede modificar por un usuario de confianza.
Seguridad de la Base de Datos
- Directrices para asegurar el acceso del sistema
operativo
Inicialización de parámetros de
configuración por defecto
Modificación del valor de un parámetro de
inicialización
Seguridad de la BD Oracle
Inicialización de parámetros de
configuración por defecto:
SEC_RETURN_SERVER_RELEASE_BANNE
RFALSO
Controla la visualización de la información de
versión del producto, tales como el número de
versión, en una conexión de cliente.
Un intruso podría utilizar el número de versión de
base de datos para encontrar información sobre
las vulnerabilidades de seguridad que puedan
estar presentes en el software de base de datos.
O7_DICTIONARY_ACCESSIBILITYFALSO
Controles de restricciones a SISTEMA privilegios.
Modificación del valor de un parámetro
de inicialización:
Para modificar el valor de un parámetro de inicialización:
1. Inicia el control de la base de datos.
2. Regístrese como usuario SYS con la SYSDBA privilegio.Nombre de usuario: SYS
Contraseña: Introduzca la contraseña.
Conectar como: SYSDBA
3. Haga clic en servidor para mostrar la subpágina Server.
4. En la sección Configuración de la base de datos, haga clic en Parámetros de inicialización.
La página de inicialización Parámetros.
5. En el Nombre de campo, escriba el nombre del parámetro que desee cambiar y haga clic en Ir.
Conclusiones:
Hoy en día se están adoptando con gran dinamismo las nuevas soluciones tecnológicas para aumentar su rendimiento y seguridad con el único fin de proteger sus bienes intangibles.
Como resultado, cada vez se plantean más y nuevos soluciones que solventan varios problemas de seguridadcon la ayuda de Oracle y sus últimas versiones y herramientas mejoradas permitir a los administradores de base de datos mantener el rendimiento de las bases de datos en su máximo nivel, adoptar nuevas tecnologías rápidamente y sin riesgos, y aumentar la productividad de DBA.
La disponibilidad del sistema al automatizar las tareas administrativas de rutina aumenta y podemos tener información de confianza, convirtiendo al DBA “Administrador de Base de Datos” se vuelva un ente controlador y previsivo, mas no un ente correctivo desperdiciando tiempo de producción.
Bibliografía
http://oracledbacr.blogspot.com/2012/03/antes-de-migrar-su-base-de-
datos-11g.html
http://sqlyoracle.webs.com/apps/blog/show/22452534-el-manejo-de-la-
memoria-en-oracle-11g
http://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles003.htm
http://www.dba-oracle.com/
http://www.dba-oracle.com/t_password_security.htm
http://www.dba-oracle.com/t_windows_external_user_authentication.htm
http://www.dbasupport.com/oracle/ora11g/11gSecurityGuide08.sht
http://www.oracle.com
http://www.oracle.com/technology/products/oid/index.html