http://www.wix.com/oracle10gutn/bdd2 1 SGBD ORACLE 10g XPRESS EDITION Instalación y Configuración de Oracle 10g R2 XE en Ubuntu Inserción de Datos en la BDD ACADEMICO Creación de Vistas Triggers y Procedimientos Almacenados PL ARQUITECTURA DE BDD ORACLE, cambio tamaños de BLOQUE en el BUFFER, TNNING. Conexión Remota hacia SGBD Oracle 10g R2 XE DICCIONARIO DE DATOS Y SISTEMAS RECUPERACIÓN MANEJO DE TRANSACCIONES DESDE JAVA TABLA DE BUSQUEDAS, ESDISTICAS Y TIEMPO DE RESPUESTA
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
http://www.wix.com/oracle10gutn/bdd2 1
SGBD
ORACLE 10g
XPRESS EDITION
Instalación y Configuración de Oracle 10g R2 XE en Ubuntu
Inserción de Datos en la BDD ACADEMICO
Creación de Vistas Triggers y Procedimientos Almacenados PL
ARQUITECTURA DE BDD ORACLE, cambio tamaños de BLOQUE en el BUFFER,
TNNING.
Conexión Remota hacia SGBD Oracle 10g R2 XE
DICCIONARIO DE DATOS Y SISTEMAS RECUPERACIÓN
MANEJO DE TRANSACCIONES DESDE JAVA
TABLA DE BUSQUEDAS, ESDISTICAS Y TIEMPO DE RESPUESTA
http://www.wix.com/oracle10gutn/bdd2 2
Integrantes:
Pérez Diego
Cuasapas Gandhy
Ruales Daniel
UNIVERSIDAD TÉCNICA DEL NORTE Carrera de Ingeniería en Sistemas Computacionales
Tema:
Informe: Nro. 1
Instalación y Configuración de Oracle 10g R2 XE en Ubuntu
1. Requisitos para la instalación:
1.1 Requisitos de software para la instalación:
Las siguientes bibliotecas son realmente indispensables para el correcto funcionamiento de
ORACLE , la libreria libxext6 ya biene instala en versiones de ubuntu 10 o más y no son
necesarias instalarlas lo contrario sucede con la libreria ibstdc++5 que ya no biene instalada y
fue reeemplazada por ibstdc++6, necesariamente tendremos que instalar ibstdc++5.
libxext6 libxtst6 libaio1 libaio-dev libstdc++5
1.2 Requisitos de hardware para la instalación:
Principalmente en los requerimientos de hardware debemos tener en cuenta que las
versiones express de ORACLE solo trabajan con un procesador, entonces si tenemos por
ejemplo un procesador core i3 solamente trabajara con un núcleo con lo cual se notara el
aumento de tiempo de ejecución.
2Gb en el disco duro.
SWAP. Es el espacio de intercambio de archivos usado como algo similar a la memoria virtual
de Windows.
http://www.wix.com/oracle10gutn/bdd2 3
Necesitaremos aproximadamente 1Gb, el swap por defecto que viene asignado en una
instalación normal de Ubuntu es cerca de los 512 Mb y 1024 Mb Globalmente de donde se
distribuirá para diferentes tareas del sistema y aplicaciones reduciendo el tamaño de swap
libre, el aumento de swap se explicara en la instalación.
2. Instalación
NOTA: PARA UNA CORRECTA INSTALACION SE ACONSEJA MIRAR EL VIDEO DE
INSERT INTO "MATERIAS_DOCENTES" VALUES(5,6,2,'A');
INSERT INTO "MATERIAS_DOCENTES" VALUES(4,7,2,'A');
INSERT INTO "MATERIAS_DOCENTES" VALUES(3,4,2,'A');
http://www.wix.com/oracle10gutn/bdd2 13
Tema:
Informe: Nro. 3
Creación de Vistas Triggers y Procedimientos Almacenados PL
1. Creación de Vistas
Una vista es un objeto. Una vista es una alternativa para mostrar datos de varias tablas; es como
una tabla virtual que almacena una consulta. Los datos accesibles a través de la vista no están
almacenados en la base de datos, en la base de datos se guarda la definición de la vista y no el
resultado de ella.
Entonces, una vista almacena una consulta como un objeto para utilizarse posteriormente. Las tablas consultadas en una vista se llaman tablas base. En general, se puede dar un nombre a
cualquier consulta y almacenarla como una vista.
Una vista suele llamarse también tabla virtual porque los resultados que retorna y la manera de
referenciarlas es la misma que para una tabla.
Las vistas permiten:
- simplificar la administración de los permisos de usuario: se pueden dar al usuario permisos para
que solamente pueda acceder a los datos a través de vistas, en lugar de concederle permisos para
acceder a ciertos campos, así se protegen las tablas base de cambios en su estructura.
- mejorar el rendimiento: se puede evitar teclear instrucciones repetidamente almacenando en una
vista el resultado de una consulta compleja que incluya información de varias tablas.
Podemos crear vistas con: un subconjunto de registros y campos de una tabla; una unión de
varias tablas; una combinación de varias tablas; un subconjunto de otra vista, combinación de
vistas y tablas.
Una vista se define usando un "select".
SINTAXIS:
CREATE VIEW <nombre_vista>
AS
(<sentencia_select>);
http://www.wix.com/oracle10gutn/bdd2 14
NOS DEBOLVERA:
NOMBRES
NOMBRE_MATERIA
ID_
Anita SO 2
Anita Estructura de Datos 1 2
Pablo Analisis Matematico 2
Pablo SO 2
Tenemos un ejemplo de una vista:
Necesitamos mostrar Los nombres de los estudiantes, las materias que cursan, pero solamente del
periodo nro 2 que es el que está en vigencia.
Periodo 1= 2011-2011 10-MAR-11 15-JUL-11 N
Periodo 2= 2 2011-2012 08-AUG-11 28-FEB-12 A
CREATE VIEW "VISTA1" AS (SELECT CONCAT(NOMBRES,APELLIDOS) ESTUDIANTE,
NOMBRE_MATERIA, NOTA1, NOTA2, NOTA3, PROMEDIO, CONDICION, DESCRIPCION FROM
ESTUDIANTES E, MATRICULAS M, NOTAS N, MATERIAS MAT, PERIODOS_ACADEMICOS PA
WHERE E.ID_ESTUDIANTE=M.ID_ESTUDIANTE AND M.ID_MATRICULA=N.ID_MATRICULA AND
N.ID_MATERIA=MAT.ID_MATERIA AND M.ID_PERIODO=PA.ID_PERIODO);
/
PERIODO
CREACION DE TRIGGERS.
Comenzaremos implementando una nueva BDD llamada EMPLEADOS ahí realizaremos un
triggers muy básico para su comprensión.
Ejmemplo:
Crear un trigger sobre la tabla empleados para que no se permita que un empleado sea jefe de
más de cinco empleados.
1. Comenzaremos implementando un nuevo usuario.
http://www.wix.com/oracle10gutn/bdd2 15
El código seria:
CREATE USER EMPLEADO IDENTIFIED BY D
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON USERS;
2. Creación de las tablas:
CREATE TABLE empleados (
dni char(4),
nomemp varchar2(15),
cojefe char(4),
PRIMARY KEY (dni),
FOREIGN KEY (cojefe) references empleados on delete cascade);
3. Creación del TRIGGER:
CREATE OR REPLACE TRIGGER jefes
BEFORE
INSERT OR UPDATE OF cojefe ON empleados
FOR EACH ROW
DECLARE
supervisa INTEGER;
BEGIN
SELECT count(*) INTO supervisa
FROM empleados
WHERE cojefe = :new.cojefe;
IF supervisa > 4
THEN raise_application_error
(-20600,:new.cojefe||'no se puede supervisar mas de 5');
END IF;
END;/
http://www.wix.com/oracle10gutn/bdd2 16
4. Inserción de Datos:
INSERT INTO empleados VALUES ('D1','Director',null);
INSERT INTO empleados VALUES ('D2','D.Comercial','D1');
INSERT INTO empleados VALUES ('D3','D.Produc.','D1');
INSERT INTO empleados VALUES ('D4','Jefe Vent.','D1');
INSERT INTO empleados VALUES ('D5','Jefe Mark.','D1');
INSERT INTO empleados VALUES ('D6','Vendedor 1','D1');
INSERT INTO empleados VALUES ('D8','Vendedor 3','D1');
//LA ULTIMA LINEA NOS DARIA UN ERROR PORQUE EL JEFE D1 TENDRIA MAS DE 5 EMPLEADOS.
http://www.wix.com/oracle10gutn/bdd2 17
FUNCIONES - PROCEDIMIENTOS ALMACENADOS
• SINTAXIS PL/SQL
DECLARE Sentencias de declaración BEGIN Sentencias de ejecución EXCEPTION Sentencias para el manejo de excepciones END;
Ejemplo:
Vamos a crear una variable varchar2 a la que asignaremos el nombre o nombres de estudiantes
cuando id_estudiante sea igual a 1.
DECLARE
aux_nombre varchar2(50);
BEGIN
SELECT NOMBRES INTO AUX_NOMBRE FROM ESTUDIANTES
WHERE ID_ESTUDIANTE=1;
DBMS_OUTPUT.PUT_LINE(aux_nombre);
END;
/
http://www.wix.com/oracle10gutn/bdd2 18
Tema:
Informe: Nro. 4
ARQUITECTURA DE BDD OARACLE
La arquitectura de Oracle tiene tres componentes básicos. Las estructuras de memoria para
almacenar datos y el código ejecutable, los procesos que corren el sistema de base de datos y las
tareas de cada usuario conectado a la base de datos y archivos que sirven para el almacenamiento
físico en el disco de la información de base de datos.
Conceptos Básicos.
Oracle Database Thread
Description
Required/Optional
DBW0 database writer Required
LGWR log writer Required
PMON process monitor Required
SMON system monitor Required
http://www.wix.com/oracle10gutn/bdd2 19
Oracle Database
Thread
Description
Required/Optional
CKPT checkpoint process (thread on Windows) that
runs by default on Windows
Optional
ARCH0 archive process (or thread on Windows) Optional
RECO distributed recovery background process Optional
LCKn, Lock: (lock processes) El bloqueo es un proceso opcional. Efectúa los
bloqueos entre instancias, en caso de ambientes con servidores paralelos (hasta con
10 servidores).
CKPT : (Check point) El punto de comprobación es un proceso opcional que ocurre
cuando los usuarios conectados a la base de datos, hacen solicitudes de exámenes de
datos.
SNPn : (Snapshot process) se encarga de refrescar los snapshots o réplicas de tablas
que se usan principalmente en ambientes distribuidos.
SMON : (System monitor) recupera el sistema ante una falla de la instancia.
RECO : (Recovery) recupera ante las fallas, en una transacción en ambientes
distribuidos.
ARCH : (Archive) copia los registros de rehacer de la RAM en archivos de datos
que permiten la recuperación cuando se presentan fallas de los medios magnéticos.
PMON : (Process Monitor) recupera ante una falla de un proceso de usuario; libera
los recursos del proceso que falló.
http://www.wix.com/oracle10gutn/bdd2 20
TABLA DE ARCHIVOS Nombre del proceso Sistemas UNIX Sistema Windows
PMON Pmon_xxxx.trc sidPMON.trc
SMON Smon_xxxx.trc sidSMON.trc
DBW0 Dbw0_xxxx.trc sidDBW0.trc
LGWR Lgwr_xxxx.trc sidLGWR.trc
CPT Cpt_xxxx.trc sidCPT.trc
ARC0 Arc_xxxx.trc sidARC0.trc
TUNING BDD ORACLE
Para los desarrolladores de aplicaciones y administradores de base de datos, el ajuste de las
aplicaciones es un área de esencial importancia y se invierte una considerable cantidad de tiempo
en el desarrollo de esta función tan relevante. Una aplicación comercial escasamente adaptable
puede afectar potencialmente no solo a algunos usuarios, sino también a toda la operación
comercial, y por esta razón las empresas invierten en una gran cantidad de recursos para asegurar
la ejecución de las aplicaciones esenciales para sus empresas sin inconvenientes.
Oracle Tuning Pack, parte del grupo de productos de Oracle Database 11g, ofrece una solución
extremadamente económica y fácil de usar que automatiza todo el proceso de ajuste de las
aplicaciones. Las mejoras en el desempeño de SQL se logran a través de los Asesores SQL, las
cuales se integran sin defectos con Enterprise Manager Database Control y Grid Control, y
juntas brindan una solución completa para la automatización de la compleja y prolongada tarea
de ajuste de las aplicaciones.
CARACTERÍSTICAS CLAVE:
• Asesor de Ajuste SQL
• Asesor de Ajuste Automático SQL • Perfiles SQL
• Asesor de Acceso SQL • Grupos de Ajuste SQL • Wizard de reorganización de Objetos
BENEFICIOS CLAVE:
• Solución integral para aplicaciones y ajuste SQL que elimina la necesidad de ajuste manual. • Ajuste automático de sentencias SQL.
http://www.wix.com/oracle10gutn/bdd2 21
• Mejoras en el desempeño y confiabilidad del sistema, y reducción significativa de los costos de
administración.
SQL Tuning Advisor
El ajuste SQL manual es un proceso que presenta muchos desafíos. Requiere experiencia en
muchas áreas, consume una gran cantidad de tiempo y exige un íntimo conocimiento de las
estructuras de esquemas y del modelo de uso de datos para la aplicación. Todos estos factores
convierten al ajuste SQL manual en una tarea desafiante, que requiere muchos recursos y que
resulta muy costosa para la empresa.
SQL Tuning Advisor es la respuesta de Oracle ante los obstáculos y desafíos del ajuste SQL
manual. Automatiza el proceso de ajuste SQL al explorar completamente todas las maneras
posibles de adaptar una sentencia SQL. El análisis y el ajuste se realizan a través del optimizador
de consultas altamente mejorado del motor de base de datos. Se realizan cuatro tipos de análisis
por parte de SQL Tuning Advisor:
• Análisis Estadístico: El optimizador de consultas debe actualizar las estadísticas de objetos para
generar planes de buena ejecución. En este análisis, se identifican los objetos ORACLE DATA
SHEET con las estadísticas antiguas o faltantes y se sugieren recomendaciones para remediar el
problema.
• SQL Profiling: Esta característica, introducida en Oracle Database 10g, revoluciona el enfoque
hacia el ajuste SQL. El ajuste SQL tradicional implica la manipulación manual del código de
aplicaciones utilizando las pistas del optimizador. SQL Profiling elimina la necesidad de este
proceso manual y adapta las sentencias SQL sin requerir ningún cambio en el código de
aplicaciones. Esta capacidad de adaptar SQL sin cambiar el código de aplicación también ayuda a
resolver el problema de las aplicaciones de ajuste empaquetadas. Los usuarios de aplicaciones
empaquetadas ahora ya no deben registrar un bug con el proveedor de la aplicación y esperar
varias semanas para obtener un código fijo para el ajuste de la sentencia. Con SQL Profiling el
proceso de ajuste es automático e inmediato.
• Análisis del Canal de Acceso: Los índices pueden mejorar enormemente el desempeño de una sentencia SQL al reducir la necesidad de un escaneo total de las tablas. La indexación efectiva es,
por consiguiente, una técnica de ajuste común. En este análisis, se identifican y recomiendan los
nuevos índices que pueden mejorar significativamente el desarrollo de las consultas.
http://www.wix.com/oracle10gutn/bdd2 22
• Análisis de la Estructura SQL: Los problemas con la estructura de las sentencias SQL pueden
llevar a un escaso desempeño. Estos podrían ser problemas sintácticos, semánticos o de diseño
respecto de la sentencia. En este análisis se realizan sugerencias relevantes para reestructurar las
sentencias SQL seleccionadas para un mejor desempeño.
El resultado de este análisis se presenta en forma de recomendaciones, junto con una lógica para cada recomendación y su beneficio de desempeño esperado. Las recomendaciones se relacionan
con la recopilación de estadísticas de objetos, la creación de nuevos índices, la reestructuración de
las sentencias SQL, o la creación de un Perfil SQL. Un usuario puede elegir aceptar la
recomendación para completar el ajuste de las sentencias SQL.
CAMBIO DE TAMAÑO EN LOS BLOQUES ORACLE
CONCEPTOS
TABLESPACE - DATAFILE
• Un tablespace contiene 0 o más segmentos (Cada segmento reside en un tablespace).
• Un segmento son objetos de esquema, los tipos son: tablas, índices, temporales y rollback; ellos son almacenados fuera del data dictionary. Los constraint y sequences son
almacenados en el data dictionary por lo tanto no son segmentos.
• Cada segmento contiene extents. (Cada extents reside en un datafile).
• Una base de datos puede tener maximo 64000 datafiles. • Un extent contiene data blocks. (Cada data block es un conjunto de bytes de hd).
• SYSTEM y SYSAUX tienen el tamaño default de data block. • Cada tablespace puede tener diferentes tamaños de data block.
• El tablespace SYSTEM almacena el data dictionary. • El tablespace SYSAUX almacena objetos para el catalogo del RMAN, el AWR, Data
Mining y otros. Fue pensado para reducir objetos que eran colocados en el SYSTEM. Se
puede aumentar su tamaño en cualquier momento.
http://www.wix.com/oracle10gutn/bdd2 23
Opciones de tablespace: Big file o small file, manage extents locally o dictionary y manage
segment space automatico o manual.
Los tablespace bigfile tienen 1 datafile, su tamaño máximo es (4 TB * Tamaño de un data block,
Ejemplo:
Si 8 KB es el tamaño del data block de un tablespace su tamaño máximo seria 32 TB).
Los tablespace smallfile pueden tener de 1 a 1022 datafiles para un tablespace. Su tamaño maximo es (4 GB * Tamaño de un data block, Ejemplo Si 8 KB es el tamaño del data block de un tablespace su tamaño máximo seria 32 GB). SYSTEM y SYSAUX siempre son smallfiles
tablespaces.
• OMF (Oracle Managed Files), permite que Oracle se encargue de nombrar y ubicar a
nuestros datafiles automáticamente. Por defecto asigna 100 MB y auto extendido.
Los tablespace pueden ser Data Dictionary (Utiliza un registro de los extents libres y usados mediante las tablas FET$ y UET$ en modo recursivo, los extendidos son manejados vía data
dictionary provocando contención en el SYSTEM tablespace), Local (Default y utiliza bitmaps
(conjunto de bloques) para manejar los extendidos para dejar de utilizar el modo recursivo).
Local tiene 2 tipos: UNIFORM (Mantiene los extents del mismo tamaño, default 1 MB, no puede
ser aplicado a los undo tablespace y es el default para los Temporary Tablespace) y
AUTOALLOCATE (default). Se puede convertir de de Data Dictionary a Local y viceversa. Pero
no se puede convertir el Local a Data Dictionary el tablespace SYSTEM y los Temporary
Tablespaces.
Un tablespace Local puede ser MANUAL (Utiliza PCT_FREE (insert DML) y PCT_USED
(delete o update DML), es el default y es fijo en los Temporary Tablespace y en el SYSTEM
Tablespace) o AUTOMATIC (Utiliza bitmaps).
Los Temporary Tablespaces segments son generados por un order by, group by, create index e inserts a tablas temporales. Los temporary tablespaces son seteados a NOLOGGING. No se
puede renombrar un temp file o ponerlo read only. Lo que es válido es llevar el temp file a online
u offline pero no el tablespace.
Undo tablespace sirve para rollback, reconstruir un read-consistent y recover de corrupciones lógicas.
Un tablespace debe ser llevado a offline para un recover de el tablespace o mover datafiles.
http://www.wix.com/oracle10gutn/bdd2 24
SYSTEM, UNDO y SYSAUX no pueden ser colocados readonly.
Un tablespace al ponerlo en offline tenemos 3 opciones: NORMAL, TEMPORARY e
IMMEDIATE. El NORMAL hace un checkpoint y asegura que sea escrito en disco, es ideal en
NOARCHIVELOG y al ponerlo online no requiere media recovery. El TEMPORARY también
hace checkpoint pero no asegura que se haya hecho a todos los datafiles por lo tanto puede ser
que haya un media recovery en alguno de los datafiles. IMMEDIATE no hace checkpoint y
ejecuta un media recovery al volver a colocar el tablespace en online. El default es normal.
En versiones inferiores de Oracle 10g R2 no se puede eliminar un datafile. El comando ALTER DATABASE DATAFILE ‘ruta’ OFFLINE DROP indica que el datafile se
pondrá en estado offline con la intención de eliminar el tablespace.
No se puede renombrar el SYSAUX y SYSTEM tablespace.
Cuando no hay un tablespace temporal en la base de datos, Oracle utiliza el SYSTEM tablespace en reemplazo de este.
PARAMETROS Parametro Objetivo db_block_size = valor Permite especificar el tamaño default de un
data block. db_create_file_dest = ruta Habilita OMF y especifica el lugar donde
Oracle creara los datafiles. db_create_online_dest_n Donde n = 1..5 y es donde se ubicarán los redo
logs y control files utilizando OMF. undo_management = nombre Define el undo tablespace de la base de datos. sort_area_retained_size Tamaño ocupado por ordenamientos.
http://www.wix.com/oracle10gutn/bdd2 25
Memoria Oracle (SGA)
Su tamaño está determinado por los parámetros:
Shared_Pool_Size= Tamaño en bytes del área para SQL compartidos y sentencias PL/SQL. Db_Block_Size = Tamaño en bytes de un solo bloque de datos.
Db_Block_Buffers = Numero de Buffers a localizar en memoria.
Log_Buffer = Numero de bytes localizados para para los Redo Log Buffer.