Data">
Nothing Special   »   [go: up one dir, main page]

Administracion de Base de Datos - Semana 15

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 135

Administración de Base de Datos

¿Qué es un Servidor?
• Tipos de servidores:
• Es un equipo informático que Archivos: almacena archivos
forma parte de una red y Dominio: información de usuarios,
suministra servicios a una serie de equipos y grupos de una red.
clientes, que pueden ser tanto Impresión: poner en cola los trabajos de
personas como otros equipos. impresión que generan los usuarios
Correo: gestiona el flujo de correos de los
usuarios
Base de datos: provee servicios de base
de datos a otros programas o equipos
clientes
DNS: relaciona nombres de dominios con
direcciones IP
Web: Almacena contenido web y lo pone
al servicio de aquellos usuarios que lo
solicitan.
Servidor de Base de Datos
• Es un tipo de software de servidor
que permite la organización de la
información mediante el uso de
tablas, índices y registros. También
conocido como data server o RDBMS
(Relational DataBase Management
System)
• A nivel de hardware, es un equipo
informático especializado en servir
consultas a clientes remotos o locales
que realizan modificaciones a los
registros y tablas que existen dentro
de una base de datos.
Servidor de Base de Datos

Los servidores de base de datos


surgieron en la década de los 60
para comenzar a dar soluciones de
manejo y administración de
volúmenes de datos a grandes
empresas.
Sistema Gestor de Base de Datos (SGDB)
• Es una colección de programas cuyo objetivo es servir de interfaz entre la
base de datos, el usuario y las aplicaciones
• Se compone de un lenguaje de definción de datos (DDL), un lenguaje de
manipulación de datos (DML) y de un lenguaje de consultas.
• Permite definir los datos a distintos niveles de abstracción y manipular
dichos datos, garantizando la seguridad e integridad de los mismos.
Características de una Base de Datos
• Independencia de lo datos (no dependen de un programa)
• Integridad de datos (valores reales que se almacenan)
• Seguridad de acceso y auditoria (permitir un control sobre la seguridad de
los datos)
• Reducción de la redundancia (duplicación de datos)
• Acceso concurrente por parte de múltiples usuarios (conectarse de manera
remota o local a los datos)
• Consulta complejas optimizadas (rápida ejecución de consultas)
• Soporte para control de transacciones y recuperación de fallas (para no
alterar la integridad de la base de datos)
• Independencia del hardware (disponible para estar instalado en múltiples
plataformas)
¿Qué Servidor de Base de Datos Elegir?
• Tamaño de la base de datos
• Cantidad de registros por tablas
• Porcentaje de operaciones de escritura y lectura
• Simultaneidad de usuarios
• Alta disponibilidad y balanceo
Instalación Base de Datos
1. Descargar el archivo de instalación Oracle XE para Windows del sitio web:
http://www.oracle.com/technetwork/database/enterprise-
edition/downloads/112010-win64soft-094461.html
2. Descomprimir archivo
3. Hacer click en el archivo setup
4. Hacer click en el botón Siguiente (Next)
5. Click en el botón de radio etiquetado como: I accept the terms in the license
agreement y click en Siguiente.
6. Click en Siguiente.
7. Ingresar la contraseña para las cuentas de usuario SYS y SYSTEM
8. Se muestra el resumen de instalación. Hacer click en Instalar (Install).
9. Una vez finalizada la instalación, hacer click en Finish (Finalizar)
LENGUAJE SQL

DML
DDL
TCL
DCL
SELECT
CREATE
INSERT BEGIN
ALTER GRANT
UPDATE COMMIT
DROP REVOKE
DELETE ROLLBACK
TRUNCATE
MERGE
Lenguaje SQL
DML (Lenguaje de Manipulación de DDL (Lenguaje de Definición de
Datos) Datos)
• Utilizada para la gestión de datos • Permite definir las estructuras de
dentro de los objetos de esquema. datos de una base de datos.
Select .- Recupera datos de la BD Create .- Crea objetos en la BD
Insert .- Inserta datos en una tabla Alter .- Altera la estructura de una BD
Update.- Actualiza datos de una tabla Drop.- Elimina los objetos de la BD
Delete.- Elimina todos los registros de Truncate.- Elimina todos los registros
una tabla. de una tabla, incluyendo todos los
Merge.- Operación de insert o update espacios asignados a los registros se
eliminan.
Lenguaje SQL
DCL (Lenguaje de Control de Datos) TCL (Lenguaje de Control de
• Controla el nivel de acceso que los Transacción)
usuarios tienen sobre los objetos • Permite controlar y manejar
de la BD. transacciones para mantener la
Grant .- Permite a los usuarios integridad de los datos.
leer/escribir sobre ciertos objetos de Begin .- Abre una transacción
la BD. Commit .- Confirma una transacción
Revoke .- Quita los permisos de Rollback.- Reversa una transacción en
lectura/escritura sobre los objetos de caso de cualquier error.
la BD.
Las tareas sobre las que se pueden
conceder o denegar servicios son:
Connect, Select, Insert, Update,
Delete.
Conectarse a una BD por sqlplus
1. Abrir una ventana de
Command Prompt
2. Digite:
sqlplus system/1234
3. Ejecutar la sentencia:
Select * from v$version;
4. Ejecute la sentencia:
Select sysdate from dual;
Creación de usuario en Oracle
1. Para crear usuarios se utiliza la
sentencia: create user
2. La sintaxis básica es:
Create user NOMBRE_USUARIO
Identified by CONTRASEÑA;
3. Crear el usuario prueba02 con la
contraseña 1234, desde sqlplus.
4. Conectarse a la base de datos con el
usuario prueba02:
sqlplus prueba02/1234

LA CREACIÓN DE USUARIOS SE LA DEBE


REALIZAR CON EL USUARIO SYSTEM
Creación de usuario en Oracle
Modificación de usuario en Oracle
1. Para modificar usuarios se utiliza
la sentencia: alter user
2. La sintaxis básica es:
alter user NOMBRE USUARIO
Identified by NUEVACONTRASEÑA;
3. Modifcar la contraseña del
usuario prueba02, desde sqlplus.
(usar prueba)

PARA MODIFICACIÓN DE USUARIOS


SE LA DEBE REALIZAR CON EL
USUARIO SYSTEM
Privilegios a usuarios en Oracle
1. Para dar privilegios se utiliza la
sentencia: grant
2. La sintaxis básica es:
Grant privilegio1,[privilegio2,…]
to {nombreUsuario | rol |
PUBLIC};
3. Dar privilegios de
conexión,crear tablas, vistas,
procedimientos, trigger
Privilegios a usuario en Oracle
Privilegios a usuario en Oracle
Secuencia • Para crear una secuencia se utiliza la
sentencia CREATE SEQUENCE:
• Genera números únicos de
forma automática.
• Es un objeto que se puede
compartir.
• Se usa típicamente para • Crear una secuencia Seq_IdCliente para
crear valores de una clave ser utilizada por la pk de la table
primaria. Cliente, del modelo anterior:
• Sustituye Código de
aplicación
• Mejora eficiencia en cuanto
a la rapidez de acceso
cuando los valores están en
el caché de memoria.
Verificación de • La pseudo columna NEXTVAL retorna el
secuencias próximo valor disponible de la
secuencia.
• Para verificar los valores o Devuelve un valor único cada vez que es
de la secuencia se debe referenciada, aún por diferentes usuarios.
consultar la tabla • La pseudo columna CURRVAL obtiene el
USER_SEQUENCES del actual valor de la secencia.
diccionario de datos. o NEXTVAL debe ser emitido para la
secuencia, antes que CURRVAL pueda
referenciarse.

• La columna
LAST_NUMBER muestra el
próximo valor disponible
de la secuencia.
Creación de tabla y secuencia para CLIENTES
1. Para añadir datos en la tabla CLIENTES
usaremos la siguiente setencia insert:

2. Si se desea conocer el siguiente valor que


tomará la secuencia SEQ_IdCliente, se
debe ejecutar la siguiente consulta:
Restricciones (Constraints)
Restricciones • Para crear una restricción se debe
(Constraints) asignar un nombre caso contrario
• “Fuerzan reglas a nivel de tabla el servidor generará uno.
(entidad)”. • Se puede crear un constraints:
• Previenen la eliminación de una En el momento de crear una tabla
tabla si existen dependencias. Después que la tabla ha sido creada.

• Son válidos los siguientes tipos • Se puede definir una restricción a


de constraints: nivel de columna o a nivel de tabla.
 NOT NULL
 UNIQUE Key
 Primary Key
 Foreing Key
 Check
Constraint Primary Key - Clave Primaria
• La clave Primaria de una tabla Constraint PRIMARY key

la forman la o las columnas


DEPT
que indican a cada registro de
la misma.
• Hace que los campos que la
forman sean NOT NULL (sin
posiblidad de quedar vacìos) y
que los valores de los campos Definido a nivel de columna.
sean de tipo UNIQUE (sin
posibildad de repeticiòn).
• Si la clave està formado por un
Definido a nivel de tabla.
solo campo basta con:
Constraint Unique key – Clave Ùnica
Constraint UNIQUE key

DEPT
• Las restricciones tipo UNIQUE obligan a
que el contenido de uno o mas campos
no puedan repetir valores.

Definido a nivel de columna.

Definido a nivel de tabla.


Constraint NOT NULL
• Asegura que los valores nulos no serán permitidos para la columna.
EMP

NOT NULL constraint Ausencia del constraint NOT NULL constraint


(ningún registro podrá NOT NULL
contener un valor nulo (cualquier registro podrá
para esta columna) contener un valor nulo
para esta columna)
FOREING KEY constraint
DEPT
PRIMARY key

EMP
FOREING key
• Definido bien a nivel de tabla o columna.
Constraint CHECK
• Define una condición que debe satisfacer cada fila.
• Se define o bien como una restricción a nivel de tabla o a nivel de
columna.
Consultas útiles para obtener información de la BD
• Vista que muestra el estado de la • Ubicación y nombre del archivo spfile
base de datos select * from v$system_parameter
where name = ‘spfile’;
select * from v$instance;
• Ubicación y número de archivo de
• Consulta que muestra si la base de control
datos está abierta select * from v$system_parameter
select status from v$instance; where name = ‘control_files’;
• Vista que muestra los parámetros • Nombre de base de datos
generales de Oracle select * from v$system_parameter
where name = ‘db_name’;
select * from v$system_parameter;
• Versión que muestra las conexiones
• Versión de Oracle actuales a Oracle
select * from v$system_parameter select osuser, username, machine, program
from v$session
where name = ‘compatible’;
order by osuser;
Consultas útiles para obtener información de la BD
• Vista que muestra el número de • Muestra los datos de una table
conexiones actuales a Oracle especificada
select * from ALL_ALL_TABLES
agrupados por aplicación que realiza la where upper(table_name) like 'PROV%’;
conexión • Consulta SQL para el DBA de Oracle que
select program Apli, count(program) muestra los tablespaces, el espacio
Num_Sesiones from v$session utilizado, el espacio libre y los archivos de
group by program datos de los mismos
Select t.tablespace_name "Tablespace", t.status Estado,
order by Numero_Sesiones desc ; ROUND(MAX(d.bytes)/1024/1024,2) "MB Tamaño",
ROUND((MAX(d.bytes)/1024/1024) -
• Vista que muestra los usuarios de (SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024),2) "MB
Oracle conectados y el número de Usados",
ROUND(SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024,2)
sesiones por usuario "MB Libres",
t.pct_increase "% incremento",
select username User_Oracle, SUBSTR(d.file_name,1,80) "Fichero de datos"
count(username) Num_Sesiones FROM DBA_FREE_SPACE f, DBA_DATA_FILES d,
DBA_TABLESPACES t
from v$session WHERE t.tablespace_name = d.tablespace_name AND
group by username f.tablespace_name(+) = d.tablespace_name AND
f.file_id(+) = d.file_id
order by Numero_Sesiones desc; GROUP BY t.tablespace_name, d.file_name, t.pct_increase,
t.status
ORDER BY 1,3 DESC;
Consultas útiles para obtener información de la BD
• Tamaño ocupado de la base de • Espacio ocupado por usuario
datos SELECT owner, SUM(BYTES)/1024/1024
select sum(BYTES)/1024/1024 MB FROM DBA_EXTENTS MB
from DBA_EXTENTS; GROUP BY owner;
• Tamaño de los archivos de la base • Espacio ocupado por los diferentes
de datos segmentos (tablas, índices, undo,
select sum(bytes)/1024/1024 MB rollback, cluster, ...):
SELECT SEGMENT_TYPE,
from dba_data_files; SUM(BYTES)/1024/1024
• Tamaño ocupado por una tabla FROM DBA_EXTENTS MB
concreta sin incluir los índices de la GROUP BY SEGMENT_TYPE
misma • Obtener todas las funciones de Oracle:
select sum(bytes)/1024/1024 MB SELECT distinct object_name
from user_segments FROM all_arguments
where segment_type='TABLE' WHERE package_name = 'STANDARD'
and segment_name='PROVEEDORES'; order by object_name;
Introducción
Estructura General de un Disparador
Estructura General de un Disparador - Ejemplo
Temporalidad del evento: AFTER / BEFORE
Granularidad del evento: FOR EACH ROW / STAMENT
Granularidad del evento: FOR EACH ROW / STAMENT
ROW TRIGGER - Ejemplo
STAMENT TRIGGER - Ejemplo
Condición
Orden de Ejecución
Correlation Identifiers
Valores OLD y NEW
Triggers DML
Triggers INSTEAD OF
Triggers de Sistema
Funciones del Cuerpo del Disparador
Declaración de Variables
Creación de tablas en Oracle

• Con la sentencia Create Table, se crean tablas en la base de datos


Creación de tablas
1. Para crear tablas en una base
de datos se debe tener siempre
en cuenta que se debe empezar
siempre desde las tablas
fuertes y luego se crean las
débiles.
2. Las tablas fuertes son las que
llevan primary key (llave
primaria).
3. Las tablas débiles son las que
llevan foreing key (llave
foránea).
Creación de tabla PROVEEDORES
Creación de tabla PRODUCTOS
Creación de tabla PRODUCTOS
Insertar Registros en tablas
1. Para añadir registros en una tabla se
utiliza la sentencia insert.
2. Se debe empieza por añadir
registros de las tablas fuertes, para
luego continuar añadiendo registras
en las tablas débiles.
3. La sentencia insert, tiene la sintaxis
es la siguiente:x

4. Para guardar los datos insertados


hay que ejecutar COMMIT;
5. Para cancelar la insercción podemos
reversar la transacción con un
ROLLBACK;
Insertar Registros en tablas
Insertar Registros en tablas
Insertar Registros en tablas
HOTELES
ESTANCIAS
IdHotel secuencial pk
SUCURSALES IdEstancia secuencial pk
Nombre varchar2(30) not null
IdSucursal secuencial pk Direccion varchar2(45) not null Hotel number fk
CiudadHotel varchar2(20) not null FechaEntrada date default sysdate
Direccion varchar2(45) not null
Telefono varchar2(15) not null FechaSalida date
Telefono varchar2(15) not null
Email varchar2(30) PlazasHotal number2(30) not null
FechaApertura date not null Email varchar(30)
EsActiva boolean default true EsActiva boolean default true

VIAJESCONTRATADOS
TURISTAS
IdViaje secuencial pk
VUELOS Turista number fk IdTurista secuencial pk
NumVuelo secuencial pk Sucursal number fk Identificacion varchar2(15) not null
FechaVuelo date default sysdate Estancia number fk Nombres varchar2(45) not null
HoraVuela date default sysdate Apellidos varchar2(45) not null
OrigenVuelo varchar2(30) not null Direccion varchar2(80) not null
DestinoVuelo varchar2(30) not null Telefono varchar2(15) not null
PlazasTotales number(3) Email varchar(30)
PlazasTurista number(3) VUELOSTURISTA EsActiva boolean default true
EsActiva boolean default true CodigoVuelo secuencial pk
Clase varchar2(20) not null
numVuelo number fk
IdViaje number fk
Servidor de Base de Datos Oracle
Visión General
• El administrador de base de datos (DBA), debe comprender
que la arquitectura ofrecida por Oracle, gestiona una base de
datos.
• Para entender la forma en que el servidor Oracle funciona,
se debe analizar los siguientes componentes:
• Estructura de base de datos y gestión de del espacio
• Estructuras de memoria
• Procesos
• Otros archivos importantes
Definición

• ORACLE, es un Sistema gestor de base de datos


relacionales. Sus dos componentes son:
• La instancia
• La base de datos
Definición
• Instancia:
• Corresponde a las estructuras y los procesos de
background usados para accesar los datos.
• Base de Datos
• En Oracle el término de Base de Datos se usa para
presenter los archivos físicos donde se almacena la
información.
Instancia
• Es un conjunto de procesos de memoria compartida que proporcionan
el mecanismo necesario para acceder a un conjunto de archivos de
base de datos.
• Para iniciar una base de datos se utiliza: STARTUP. Para bajarla o
suspender el servicio se utiliza SHUTDOWN.
• Para iniciar la base de datos se
requiere el archivo de parámetros
INIT.ORA
• Buffer: es una parte de la
memoria de Oracle para
almacenar datos que son
utilizados por alguna session.
• Commit: confirma una
transacción.
• Caché: es una parte de la
memoria, entre los que mas
memoria consumen está el de las
instrucciones de SQL y el de
datos.
Gestor de Transacciones
• Una transacción es una colección
de operaciones que se lleva a cabo
con una única función lógica en una
aplicación de BD.
• El Gestor de Transacciones asegura
que la base de datos se mantiene
en un estado consistente (correcto)
ante el fallo de sistemas y
transacciones.
• El Gestor de control de
concurrencia controla la interacción
entre las transacciones
concurrentes, para asegurar la
consistencia de la base de datos.
Gestor de Almacenamiento
• El gestor de almacenamiento es un
módulo del programa que
proporciona la interfaz entre los
datos de bajo nivel en la BD y los
programas de aplicación y
consultas emitidas por el Sistema.
• El gestor de almacenamiento es el
responsable de las siguientes
tareas:
• Interactuar con el gestor de
archivos
• Almacenamiento, recuperación
y actualización de BD
Estructura de la base de datos
• Estructuras lógicas
• Estructuras físicas
Estructuras Lógicas
• Tablespaces
• Objetos de esquemas
Tablespace
• División lógica de la base de datos.
• En toda base de datos se tiene al
menos un tablespace denominado
generalmente System.
• Se definen otros tablespaces para
agrupar usuarios, aplicaciones o por
criterios de rendiminetos. Se agrupan
estructuras lógicas relacionadas. Ej.
USERS, RBS, TEMP, INDEX, DATA.
• Un tablespace puede estar online o
puede estar offline. Lo normal es que
estén en línea.
• Relación base de datos, Tablespaces y
Datafiles
Tablespaces

Un Tablespace puede estar compuesto de uno o mas datafiles


Esquema y Objetos • Un esquema es una colección de
objetos
• Los objetos son estructuras lógicas,
que se refieren a datos almacenados
• Tablas
• Vistas
• Secuencias
• Procedimientos almacenados
• Índices
• Sinónimos
• Listas de base de datos
• No se relaciona un esquema con un
tablespaces y viceversa
Estructuras Físicas
• Datafiles
• Archivos Redolog
• Archivos de control
• Otros archivos
Datafiles
• La base de datos pueden tener uno o mas datafiles
• Son los que contienen información de la base de dato.
Son archivos físicos del Sistema operativo.
• Un datafile solo puede pertencer a un tablespaces y por
ende a una sola base de datos.
• Uso:
• Se leen y se colocan en memoria según sea necesario
• Para escribir a disco los cambios el DB Wn se encarga de
hacerlo todo a la vez y no inmediato al cambio
Archivos REDO LOG
• Se tiene un conjunto de dos o mas
redo logs.
• En estos se lleva la bitácora de cambios
• Previenen de posibles errores, cuando
falla la base de datos y no se han
escrito a disco los cambios.
• Sólo se utilizan para recuperar la base
de datos en caso de caída.
• Los redo logs pueden ser
multiplexados
• Una DB debe poseer 2 o mas redo log
files ya que Oracle escribe en ellos en
forma circular.
Archivos de Control
• Se tiene al menos un archivo de control.
• Mantiene la estructura física de la base
de datos
• Nombre
• Ubicación de redologs
• Ubicación de datafiles
• Fecha de creación de base de datos,
etc
• Cuando la base de datos es instanciada,
se busca este archiva
• Cada vez que cambia la estructura física
de la base de datos se modifica el
control file
Archivo de parámetros
• Para iniciar la instancia de Oracle, se debe leer
el archivo de parámetros init.ora.
• Archivo de texto con la lista de parámetros de
configuración.
• Dentro de los aspectos que se definen están:
• Asignación para la memoria para las
estructuras SGA (Área Global del Sistema)
• Que hacer con los archivos redo log
• Nombre y ubicación de los archivos de
control
• Algunas reglas sobre los parámetros son:
• Todos son opcionales, Oracle tiene un valor
por defecto para cada uno.
• El archivo de parámetros o comentrios
(iniciados con #)
Archivo de Parámetros: reglas
• El orden en que aparecen los
parámetros no es importante.
• El case no es importante,
excepto para nombres de
archivos.
• Si un parámetro aparece 2
veces el Segundo reescribe al
primero.
• Existen algunos parámetros
que pueden aceptar valores
como el ROLLBACK_SEGMENTS
= (rb1, rb2, …)
¿Qué es el SGA (Sistema Global de Almacenamiento)?
• Es una estructura básica de memoria
de Oracle que sirve para facilitar la
transferencia de información entre
usuarios y también almacena la
información estructural de la BD más
frecuentemente requerida.
• El SGA y un conjunto de procesos de la
base de datos constituyen una
instancia de una base de datos Oracle.
La base de datos Oracle
automáticamente reserva memoria
para el área global del sistema cuando
se inicia una instancia, y el sistema
operativo reclama la memoria cuando
se apaga dicha instancia. Cada
instancia tiene su propia SGA.
Configurar el tamaño del SGA
• SHARED_POOL_SIZE
• Especifica la cantidad de bytes a
utilizar para el área donde se
comparten las declaraciones
SQL y PL/SQL.
• DB_BLOCK_SIZE
• Especifica el tamaño en bytes
del bloque de datos utilizados
por Oracle. Los valores típicos
son 2048 y 4096
• Este valor se determina al crear
la base de datos y debe ser
mantenido al resto del tiempo
Configurar el tamaño del SGA
• DB_BLOCK_BUFFER
• Especifica la cantidad de
búferes para el cache de
datos. Este parámetros
junto al DB_BLOCK_SIZE,
determinan el espacio
requerido por el búfer.
• LOG_BUFFER
• Especifica el tamaño en
bytes a utilizar en el búfer
donde almacena la
información de redo log
antes de enviarla a los
archivos.
Archivo de seguimiento (TRACE)

• Trace Files, son archivos en los


que se regisran mensajes y
errores durante la ejecución de
una instancia Oracle.
• Se ubican según los valores de:
• BACKGROUND_DUMP_DEST
• USER_DUMP_DEST
Archivo de alertas
• El Alert Log es un archivo especial de seguimiento, que registra
mensajes y errores cronológicamente como por ejemplo:
• Errores internos (ORA-600), corrupción de bloques (ORA-1578) y errores de deadblock
(ORA-60).
• Operaciones administrativas como creación o modificación de la base de datos,
tablespaces, datafiles, segmentos de rollback y los correspondientes a STARTUP,
SHUTDOWN y ARCHIVE LOG.
• Distintos errores relacionados con los procesos de servidor compartido (servidor
compartido y despachadores).
• Errores en la actualización de snapshots
• El valor de todos los parámetros de inicialización al momento de subir la instancia
Estructura de Memoria
SGA – System Global Area
Estructura de Memoria
Shared Pool
Estructura de Memoria
Database buffer cache
Estructura de Memoria
Redolog buffer
Procesos
• Procesor de Servidor y
Backgorund
• Shared Server Process.
• Dedicated Server Process
• SMON
• PMON
• DBWn
• LGWR
• RECO
• LCK0
• CKPT
• ARCn
• D000
Procesos del Servidor
• Dedicarte Server
Process
• Define un proceso de
servidor por cada
proceso de usuario
• Shared Server Process
• Atiende varios
procesos de usuario
con un conjunto
limitado de procesos
de servidor
• Mejora la utilización de
recursos
Procesos
• SMON (System Monitor)
• Realiza la recuperación automática de la base de datos al iniciar.
• Libera espacio de los segmentos temporales de rollback no utilizados
• Une las áreas continuas de espacio libre en los datafiles.
Procesos
• PMON (Monitor de Procesos)
• Realiza la recuperación automática cuando el proceso usuario falla.
• Libera conexiones
• Deshace transacciones que no han sido confirmadas (commit)
• Libera procesos y recursos obtenidos por el proceso fallido
• Restaura procesos de servidor y despachadores que hayan fallado
• Elimina conexiones terminadas abruptamente
Procesos
• DBW n (Escritor de base de datos)
• Gestiona el contenido de los bloques “Database buffer cache”.
• Pueden instanciarase mas de un proceso DBW n según las necesidades
de cada instalación.
• LGWR (Escritor de logs)
• Escribe las entradas secuenciales del “redo log buffer” a disco.
• La escritura la realiza cada vez que una transacción es confirmada.
• RECO (Recover Processes)
• Es opcional recupera transacciones distribuidas con errores.
• LCK0 (Lock Process)
• Realizan bloqueos entre instancias en un sistema de servidores
paralelos.
Procesos
• CKPT (Punto de control)
• Comunica a los DBWn el momento de actualizar los datafiles con la
información de los cambios en memoria.
• ARCn (Archivador)
• Copia los Redo log que están en línea a disco o cinta.
• Este es un proceso opcional que se ejecuta cuando se está en modo
ARCHIVELOG y el archivado automático está habilitado.
• Permite recuperar la base de datos de errores en medios físicos.
• D000 (Despacher Processes)
• Los despachadores son procesos opcinales.
• Se activan en modo multi-threaded server (multi-hilos)
• Cada proceso es responsable de enrutar la petición de los procesos de
usuarios conectados a través de ellos.
Procesos
Seguridades de Base de Datos
Seguridad en base de datos
La seguridad en base de datos es un mecanismo fundamental ya que
todos los sistemas informáticos están expuestos a cualquier tipo de
amenzas de daño, que causan pérdidas de confidencialidad.
Seguridad en base de datos
• Amenazas
• Se deben considerar las amenzas para cada tipo de empresa donde se
implementará el sistema de base de datos, ya que pueden haber
amenazas particulares a las que se está expuesto.
¿Qué es SQL Injection?
• Es la vulnerabilidad en la validación de entradas a la base de
datos en una aplicación.
• La aplicación puede ser de cualquier tipo de software que precise del uso
de la base de datos, o una aplicación web que interactúa con la base de
datos para funcionar, ya bien sea un sistema de búsqueda, extracción,
inserción de información o creación de lugares restringidos mediante la
creación de usuarios con contraseña estableciendo diferentes niveles de
servicios.
Funcionamiento
• Una inyección SQL sucede cuando se inserte o “inyecta” un código SQL
“invasor” dentro de otro código SQL para alterar su funcionamiento normal y
hacer que se ejecute maliciosamente el Código “invasor” en la base de datos.
• La mayoría de las veces estos errores en las SQL son por la ignorancia del
lenguaje para este código pueda ser reparado por programadores o personas
que tengan conomiciento suficiente para poder reparar el error.
Ejemplos
• Supongamos que temenos una aplicación web en la que el acceso a ciertos
secciones está restringido. Para restringir ese acceso creamos una tabla de
usuarios y contraseñas y solo los usuarios que se validaden con esa tabla
podrán entrar al contenido.
¿Qué Base de Datos son suceptibles a SQL Injection?
MySQL
Se ejecuta con privilegios de root por defecto
Volcado de archivos con INTO OUTFILE
Oracle y DB2
Anidamiento de consultas SELECT y uso de UNION posible
Uso de procedimientos invocables de la inyección
Postgres
Anidamiento de consultas SELECT y uso de UNION posible
Uso de procedimientos invocables de la inyección
Uso de COPY posible como súper usuario
Ms SQL
Ejecución de setencias múltiples está permitida
Anidamiento de consultas SELECT y uso de UNION posible
Uso de procedimientos invocables de la inyección
Corrección de problemas
1. Se puede filtrar las entradas de los usuarios reemplazando la
aparición de ‘ por “ e incluso evitando que los usuarios puedan
digitar \ / o cualquier otro caracter especial.
2. Es limitar al máximo los permisos del usuario que ejecuta estas
sentencias para evitar posibles problemas. Por ejemplo
utilizando un usuario distinto para las sentencias SELECT,
DELETE, UPDATE y asegurándonos que cada ejecución de una
sentencia ejecute una sentencia de tipo permitido.
3. Una solución definitiva sería trabajar con procedimientos
almacenados, el modo en el que pasan los parámetros a los
procedimientos evita que la inyección de SQL pueda ser usada
Corrección de problemas
1. Es limitar al máximo los permisos del usuario que ejecuta estas sentencias para evitar
posibles problemas. Por ejemplo utilizando un usuario distinto para las sentencias
SELECT, DELETE, UPDATE y asegurándonos que cada ejecución de una sentencia
ejecute una sentencia de tipo permitido.
2. Una solución definitiva sería trabajar con procedimientos almacenados, el modo en el
que pasan los parámetros a los procedimientos evita que la inyección de SQL pueda
ser usada.
3. Comprobar contenido de las variables
4. Rechazar los datos que contengan los siguientes caracteres:
Controles informatizados para entornos multiusuarios
1. Autorización, es el poder administrativo para accesar
legítimamente a un sistema
2. Autenticación es la validación de identidad del usuario.
Seguridad de Base de Datos
1. Controles de acceso, existen 2 tipos de controles:
1. Control de Acceso Discresional (DAC), emplea mecanismos de SQL
2. Control de Acceso Obligatorio (MAC), se basa en políticas de sistema
que no pueden ser modificados por usuarios individuales
2. Vistas, proporciona un sistema de seguridad flexible y potente
al ocultas partes de la base de datos a ciertos usuarios (son
relaciones virtuales que no existen en la base de datos)
3. Copias de seguridad, tener respaldos de la base de datos
actualizados para que cuando se produzcan errores de pérdidas
de datos, poder garantizar la integridad física de los datos.
Seguridad de Base de Datos
4. Integridad, las seguridad en un SGDB se trata de impedir la
distorición de la base de datos protegiéndola contra
operaciones que introduzcan inconsistencia en los datos.
5. Cifrado, es ocultar caracteres legibles de la clave
Respaldo de Información
¿Qué es un respaldo?
• Es una copia que se realiza frecuentemente a los datos,
archivos o información crítica.
• Es un proceso muy importante que debe tener cada empresa.
• El contar con respaldos permite al usuario en algún momento
dado recuperar información que haya sido dañado por alguna
razón.
¿Por qué se debe realizar un respaldo?
• Permite que el administrador de la base de datos esté tranquilo
que la información pueda recuperarse en caso de que se dañe el
equipo o las aplicaciones.
• Se puede perder información valiosa por las siguientes razones:
Error de usuario
Fallas de hardware
Fallas de software
Desastre natural
Delitos electrónicos y bandalismo
Tipos de Respaldos
• Existen 3 tipos de respaldos:
1. Total o completo
2. Incremental
3. Diferencial
Respaldo Total o Completo
• Un respaldo completo es una copia de seguridad de todo y cada uno de los
archivos o carpetas que tiene el sistema del cual se necesita almacenar
información.
• Por lo general, se prefiere realizar una copia total ya que hace sentir mas seguro
al administrador de la base de datos ya que se realiza un respaldo de toda la
información sin excluir ningún tipo de archivo.
• Por lo general, es el primer tipo de respaldo antes de hacer cualquiera de los
otros 2 tipos de respaldos (incremental o diferencial).
Ventajas de Realizar un Respaldo Total o Completo
• Cuando se realiza la restauración de una copia completa se extrae de un listado
completo y por tanto no se comprueba si ya existen copias de archivos
anteriores por lo tanto son muy fáciles de ejecutar llevar a cabo.
• Además en esta copia al ser copiados todos los archivos con una única copia
tendremos todo el conjunto de archivos listos para ser restaurados.
• No es necesario comprobar copias anteriores ni ver los cambios que se han
realizado y en esa parte si la copia completa no es de gran tamaño resulta
práctico y rápido, dependiendo de ese último factor de la cantidad de
información y la magnitud del mismo.
Desventajas de Realizar un Respaldo Total o Completo

• Mayor costo en tiempo, al copiar todo y cada uno de los archivos sin
discreción necesitará tomar un tiempo mucho mas elevado frente a
la incremental o diferencial, pues copiará todo el contenido sin
excluir ningún tipo de archivo en ese volumen o partición
seleccionado.
• Requiere una enorme cantidad de espacio en disco respecto a
cualquier otro tipo de copia de seguridad, dependiendo sobre todo
el origen y el total de archivos de los cuales se realice ese respaldo.
Frecuencia de Realización de Backup Total o Completo
• En cuanto a peridiocidad de este tipo de respaldo se deben realizar
como mínimo una vez por semana.
• Dependiendo del tamaño de datos de los cuales la empresa posea
pueden llegar incluso a realizarse diariamente.
Respaldo Diferencial
• Un respaldo diferencial copiará cualquier tipo de archivo que haya sido cambiado o
actualizado desde la última copia de seguridad completa.
• Si se requiere una copia de seguridad diferencial se necesita previamente un backup completo
de forma obligatoria, por ejemplo, si se hace una copia de seguridad el lunes, se comprueba
los cambios que se han realizado en la copia de seguridad y copiará solo esos archivos.
• Los respaldos diferenciales son acumulativos, en otras palabras, con un respaldo diferencial,
una vez que un archivo ha sido modificado continua siendo incluido en todos los respaldos
diferenciales subsecuentes (hasta el próximo respaldo completo).
Respaldo Diferencial - Ejemplo
• Si se realiza un respaldo completo, se copiarían completamente la base de
datos, al momento de realizar un respaldo diferencial, se estaría copiando toda
la data que ha cambiado desde el último respaldo completo de esa base de
datos.
• En definitiva siempre que se modifique la base de datos, el motor de la base de
datos tomará en cuenta la última copia de seguridad completa.
Ventajas de Realizar un Respaldo Diferencial
• El tiempo invertido en sacar el respaldo diferencial es menor a sacar un
respaldo total, puesto que solo se copia aquellos objetos que han sufrido
algún tipo de cambio o son nuevos.
• Al momento de restaurar un respaldo diferencial, solo se necesita la última
copia diferencial.
Desventajas de Realizar un Respaldo Diferencial
• Tardan mas tiempo en realizarse versus un respaldo incremental pues estos
respaldos van aumentando su tamaño a medida que se van realizando hasta
que se realice una copia de seguridad completa.
Frecuencia de Realización un Backup Diferencial
• Lo ideal es realizarlo frecuentemente uno o dos días. Pero en este
tipo de copias diferenciales hay que tener muy en cuenta que cuanto
mas tiempo haya pasado desde la última completa que se hizo se
debe asegurar que estas copias diferenciales muy a las próximas
copias son las que tendrían una mayor información que los primeros
respaldos diferenciales.
Respaldo Incremental
• Este tipo de respaldo realiza un backup de todos los registros que hayan cambiado desde el
último backup realizado, sea este total o diferencial.
• También son conocidos como respaldos incrementales diferenciales.
• Al igual que el respaldo diferencial, antes de sacar este backup, primero se debe realizar un
respaldo total, luego de esto, se puede realizar el respaldo incremental ya que comprobará,
copiará y almacenará sólo estrictamente los archivos que han cambiado desde la última copia
incremental, y en el caso que no existiera, desde el backup completo.
Ventajas de Realizar un Respaldo Incremental
• No se necesita respaldar toda la base de datos, por lo tanto es un ahorro de
tiempo respecto al respaldo completo o diferencial.
• Ahorro en espacio de almacenamiento, pues al realizar una copia de solamente
se respaldaran los registros que se han modificado. A diferencia del backup
diferencial, que respalda el objeto completo..
Desventajas de Realizar un Respaldo Diferencial
• El backup completo debe tener integridad de todos sus datos, es decir, que sea
válida y que se haga de forma correcta.
• A la hora de restaurar el backup se lo hará de manera mas lenta, que si se lo
hiciera desde un respaldo completo ya que el algoritmo debe comprobar que
archivos fueron modificados y cuanta más cantidad de respaldos incrementales
se necesiten, mayor tiempo se necesitará para restaurar la base de datos.
¿Si fuera necesario realizar un traslado de backups?

• En caso de backups de gran tamaño es mucho mejor realizar respaldos


completos en una misma unidad de almacenamiento evitando tener una
misma copia en diferentes unidades de almacenamiento, ya que en el caso de
que haya que trasladar copias lo ideal es hacerlo desde una única unidad para
evitar la pérdida de respaldos en el caso de necesitar un traslado.
• El problema de realizar respaldos en diferentes unidades de almacenamiento,
al momento de hacer un traslado se corre el riesgo de que si se pierde uno de
ellos, se pierda valiosa información.
• Dentro de política del departamento TIC debe existir un riguroso control de
respaldos y acceso con permiso de los mismos.
Copia de Seguridad con commando RMAN (Recovery
Manager)
1. Nos conectamos a la base de datos por el sqlplus con el usuario
administrador.

2. Vemos todos los usuarios de la base de datos activa con la siguiente


sentencia sql
Copia de Seguridad con comando RMAN
3. Como resultado de la consulta se observará los usuarios normales que
trae Oracle.
4. Se verifica el nombre de la base de datos activa, esto se lo realiza con la
siguiente sentencia sql.

5. Si no conocemos la contraseña del usuario del que se va a respaldar la


base de datos, se la cambia con la sentencia alter user
Copia de Seguridad con comando RMAN
6. Nos desconectamos de la base de datos con el comando exit.
7. Nos volvemos a conectar a la base de datos con el usuario curso2 y su
respectiva contraseña, pero se lo hace como administradores.

8. Para hacer un backup en modo caliente se verifica si el parámetro de


base de datos archive log está activo
Copia de Seguridad con comando RMAN
9. Con la siguiente sentencia se verifica dicho parámetro, como se puede
apreciar la base de datos no lo tiene activo.

10. Para activar dicho parámetro debemos bajar la base de datos, con el
comando shutdown immediate, se debe esperar a que baje la base de
datos.

11. La base de datos y la instancia se han cerrado y ha sido desmontada.


Copia de Seguridad con comando RMAN
12. Montamos la base de datos, con el comanto: startup mount.

13. Se ejecutan las siguientes sentencias:

14. Se revisa el estado del parámetro archivelog.


Copia de Seguridad con comando RMAN
15. El estatus del parámetro está en FALSE, con la siguiente sentencia se lo
pasa a TRUE.

16. Se baja otra vez la base de datos

17. Iniciamos nuevamente la base de datos con el comando startup.


Copia de Seguridad con comando RMAN
18. Verifico que el parámetro archive log esté activo

19. En una ventana nueva de Command Windows se ejecuta el comando


RMAN

20. Nos conectamos a la base de datos con el usuario curso2 con su


respectiva contraseña.
Copia de Seguridad con comando RMAN
21. En el sistema operativo se crea una carpeta donde se almacenará el
backup que genere el RMAN. C:\respaldo
22. Se ejecuta el siguiente script
Bitácoras de Base de Datos

También podría gustarte