Estudio de materiales asfalticos para utilizar en obras viales
ADMINISTRACIÓN DE BASE DE DATOS
1. 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
2. Í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
3. 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.
4. Como pudieron ver en el ejemplo 1 del slide “Ejemplos de
Saturación”, la saturación presentada es en un ambiente
controlado que afecta al rendimiento de la base de datos en
un 30% a 40% aproximadamente por un corto tiempo que
no afecta al trabajo normal de los clientes conectados a la
base de datos.
Este ambiente se presentó al ejecutar un script de respaldo
en un ambiente de producción, es por este motivo que lo
podemos llamar ambiente controlado, sabemos cuándo va
a comenzar y aproximadamente de acuerdo al tamaño de
la base de datos sabremos cuando va a terminar.
Liberación de una Base de Datos
Saturada:
- Ejemplo 1
5. El manejo inadecuado de la memoria (SGA y PGA)
respectivamente, generará problemas de rendimiento en
la 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 va
asignar la memoria automáticamente o se asignan los parámetros de
memoria manual, esto modifica PGA_AGGREGATE_TARGET y
SGA_TARGET al asignarlos; automáticamente deshabilita la opción
AUTOMATIC MEMORY MANAGEMENT, lo cual no quiere decir que si se
asigna la administración automática de memoria desde el inicio no se
pueda deshabilitar después de instalada la instancia.
• Ahora, la SGA asigna la memoria de trabajo que es la utilizada al subir la
base de datos. Esta área de trabajo asigna los siguientes buffers SHARED
POOL, BUFFER CACHE, LARGE POOL Y JAVA POOL.
Liberación de una Base de Datos
Saturada:
- Ejemplo 1
6. Por ejemplo si disponemos de un
sistema con 32 GB en ram se
asigna el siguiente parámetro
SGA_MAX_SIZE, con el fin de
asegurar que no se va a superar
ese tome de asignación de
SGAALTER SYSTEM SET
SGA_MAX_SIZE = 16 G y
reiniciamos la instancia luego, se
modifica el parámetro
SGA_TARGET = 0, de esta forma
se le dice al motor que se van a
asignar manualmente la memoria
para los otros recursos
mencionados.
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 anteriormente
asignados, se espera obtener un
mejor rendimiento o lograr obtener
un porcentaje de pérdidas de
búsqueda en memoria de los datos
cercanos a 0.
Liberación de una Base de Datos
Saturada:
- Ejemplo 1
7. 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
8. Para la elaboración de la actividad nos
basaremos en la siguiente Tabla
T_SATURA, la cual contendrá dos
campos como se describe a
continuación:
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
9. 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
10. 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
11. Al ejecutar la sentencia podemos apreciar
que hemos lanzado un update sobre todos
los datos de la tabla y que hemos colocado
intencionalmente un forupdate, para que la
tabla espere a la sentencia commit para
liberarse.
Frecuentemente este comportamiento que
acabamos de hacerlo mediante un Query
ocurre cuando se intenta alterar datos sobre
una sesión existente, es decir varios usuarios
intentan modificar un mismo recurso.
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
12. 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 la
aplicación que lo provocó fue nuestro cliente Oracle
que para este ejemplo es el TOAD, adema podemos
apreciar el usuario y el proceso.
Si intentamos cualquier evento sobre la tabla, que
se encuentra bloqueada no obtendremos resultado,
sino hasta que esta se libere como veremos en el
siguiente ejemplo.
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
13. El log no nos retorna ningún valor puesto que
la tabla está bloqueada.
Liberación de una Base de Datos
Saturada:
- Ejemplo 2
14. 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
15. 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
16. El bloqueo o saturación de una base de datos
porque no tiene recursos de almacenamiento,
como por ejemplo que el espacio de un DataFile de
un TableSpace se haya terminado y este cause un
bloqueo o saturación de la base de datos, que es el
caso puntual de nuestro ejemplo 3 del trabajo
colaborativo 1, tenemos 2 formas de solucionarlo
de manera manual o de manera automática, esto
quiere decir que Oracle administre
automáticamente el tamaño de los DataFiles.
Liberación de una Base de Datos
Saturada:
- Ejemplo 3
17. 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
18. 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
19. 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
20. 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
21. 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 se
puedan presentar en una instancia de datos, como puede ser la
corrupción de los control files, redo log o datafiles, así como su
perdida.
• 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 de
datos y a los cuales un DBA puede actuar y prever son los de
funcionamiento de la base, estos son ocasionados por intervención
humana, fallos del DBA, configuraciones inapropiadas o mal
planteamientos de los procesos de respaldo.
• El tipo de recuperación (recovery) de una instancia de oracle esta
definido por la configuración que esta tiene, así cuando configura una
instancia es importante determinar el tipo de ‘archivelog’ que tendrá.
22. Un recovery offline es
cuando la instancia de
base de datos está en
modo ‘noarchivelog’,
esto hace que para
realizar el recovery se
realice un shutdown a
la base.
Un recovery online, es
cuando la base de
datos arranca en mod
‘archivelog’, ejecutar
este proceso no es
necesario realizar un
shutdown.
Caída y recuperación de una Base
de Datos
Existen dos tipos de ‘recovery’: offline y online:
23. Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
La base de datos se encuentra en modo
‘archivelog’
El Tablespace
24. La Tabla
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
26. Copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
27. Copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
28. Calendarización copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
29. Ejecución copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
30. Informe de copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
31. Informe de copia de seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
32. Repositorio Copias de Seguridad
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
33. Datafile a eliminarse
Eliminando el Datafile
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
34. 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.
35. 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.
36. 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.
37. 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.
38. 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.
39. 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.
40. Si la recuperación fue exitosa tendremos
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
41. Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
42. Comprobamos que el proceso de
recuperación fue exitoso
Ejemplo: plan de copia de seguridad,
eliminar un datafile y su recuperación.
43. 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.
44. 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
45. 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 utilitario
DBCA, se nos preguntará si nos queremos actualizar a
los nuevos estándares de seguridad (new
securitystandards) , entre los cuales se incluye el
password case-sensitive. Si aceptamos el parámetro
sec_case_sensitive_logon estará en TRUE con lo que
las contraseñas se solicitarán en el mismo CASE en el
que fueron ingresadas.
Seguridad de la Base de Datos
- Contraseñas Case-Sensitive
46. 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
•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
47. El diccionario de datos es un
conjunto de tablas de bases de
datos que proporcionan
información sobre la base de
datos, tales como las
definiciones de esquema o
valores por defecto.
En el diccionario de datos se
tienen las definiciones de todos
los objetos de esquema en la
base de datos (tablas, vistas,
índices, clusters, sinónimos,
secuencias, procedimientos,
funciones, paquetes, triggers,
etc).
Las tablas del diccionario de
datos y puntos de vista para
una determinada base de datos
se almacenan en el Sistema de
tablas de la base de datos.
El diccionario de datos se
estructura en las tablas y vistas,
al igual que los datos de otra
base de datos. Todas las tablas
del diccionario de datos y
puntos de vista para una
determinada base de datos son
propiedad del usuario SYS.
Seguridad de la Base de Datos
- Como asegurar el Diccionario de Datos Oracle
48. 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 tienen
el CUALQUIER privilegio del sistema del uso de
esos privilegios en el diccionario de datos, es
decir, en los objetos en el SYS esquema.
El privilegio conocido como CUALQUIER
privilegio, es generalmente concedido a los
propietarios de aplicaciones y administradores
individuales de la base de datos.
Como asegurar el Diccionario de Datos
Oracle
- Activación de Protección de Datos Diccionario
49. Comienzo Oracle Enterprise Manager Database
Control (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:
50. 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:
51. 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:
52. 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
54. 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.
55. 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.
56. 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.