Data">
Administracion de Base de Datos - Semana 15
Administracion de Base de Datos - Semana 15
Administracion de Base de Datos - Semana 15
¿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
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 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:
DEPT
• Las restricciones tipo UNIQUE obligan a
que el contenido de uno o mas campos
no puedan repetir valores.
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
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
• 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?
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.