Adm Bd Oracle

30
Universidad Tecnológica Nacional Facultad Regional La Plata Administración de Recursos Año 2003 Grupo Número 13: Administración de Base de Datos Oracle. Zein Ariel Risso Leonel Perales del Castillo Raúl López Sebastián Edelmar

Transcript of Adm Bd Oracle

Page 1: Adm Bd Oracle

Universidad Tecnológica Nacional

Facultad Regional La Plata

Administración de Recursos

Año 2003

Grupo Número 13: Administración de Base de Datos Oracle.

Zein Ariel Risso Leonel

Perales del Castillo Raúl López Sebastián Edelmar

Page 2: Adm Bd Oracle

TEMAS TRATADOS SISTEMA GESTOR DE BASE DE DATOS (SGBD) ORACLE ANALISIS INICIAL DE UN SGBD ORACLE CONCEPTOS GENERALES SOBRE ARQUITECTURA DEL SGBD ORACLE ESTRUCTURA DEL SGBD ORACLE CREACIÓN DE LA BASE DE DATOS ARRANQUE Y PARADA DEL SGBD ORACLE USUARIOS, PROFILES, ROLES, PRIVILEGIOS CREACIÓN DE OBJETOS EXPORTACION, IMPORTACION MODO ARCHIVE LOG CONEXIONES CLIENTE/SERVIDOR

Page 3: Adm Bd Oracle

SISTEMA GESTOR DE BASE DE DATOS (SGBD) ORACLE: Está concebido con el fin de manejar grandes cantidades de información, además de admitir conexiones concurrentes de multitud de usuarios (entornos multi-usuario) hacia los mismos datos. Oracle aporta un SGBD que estará ubicado en un hardware específico y bajo un sistema operativo determinado. La elección del entorno de trabajo (hardware, S.O. y tipología de la estructura cliente/servidor) será una decisión que estará acorde con las necesidades del propio sistema de información. Las principales funcionalidades aportadas por todo el SGBD Oracle son : • Soporte y tratamiento de una gran cantidad de datos (Gbytes). • Soporte de una gran cantidad de usuarios accediendo concurrentemente a los datos. • Seguridad de acceso a los datos, restringiendo dicho acceso según las necesidades de

cada usuario. • Integridad referencial en su estructura de base de datos. • Conectividad entre las aplicaciones de los clientes en sus puestos de trabajo y el servidor

de datos Oracle (estructura cliente/servidor. • Conectividad entre bases de datos remotas (estructura de bases de datos distribuidas) • Portabilidad. • Compatibilidad. ADMINISTRADOR DE BASES DE DATOS (DBA): Es el responsable para el buen funcionamiento de toda una estructura de datos y todo su entorno de trabajo. Esta persona deberá tener un alto conocimiento de todo el sistema que envuelve al SGBD. Sobre este recae una alta responsabilidad, debido a las graves repercusiones que puede traer una mala gestión de la información. Las funciones que se le asignan a un DBA Oracle son las siguientes: • Instalación y actualización del software del SGBD. • Analizar e instalar en la base de datos las aplicaciones con las que van a interactuar los

usuarios. Esto, básicamente lleva consigo:

�� Asignación de espacios (tablespaces) en la base de datos y ubicación de los mismos en los discos de la máquina.

�� Creación de todos los objetos (tablas, índices, vistas, etc.) requeridos por cualquiera de las aplicaciones, así como su dimensionamiento dentro de la base de datos.

�� Actualización de los parámetros del sistema para el correcto funcionamiento de las aplicaciones.

Page 4: Adm Bd Oracle

• Creación de los usuarios y asignación de privilegios, con el fin de controlar la seguridad de

acceso de estos a la información de la base de datos. • Controlar y monitorizar los accesos de los usuarios a la base de datos. Excesivas

conexiones pueden provocar cuellos de botella en la red y bloqueos en algunos de los recursos de la máquina.

• Gestionar y optimizar el rendimiento de los procesos contra la base de datos. Esta será una

de las funciones más importantes del administrador, porque de nada sirve tener una buena infraestructura montada si los colapsos son continuos y la lentitud en los accesos es constante.

• Planificación de los sistemas de backup y recuperación de los datos en caso de que sea

necesario. • Control del crecimiento de los archivos y procesos generados en el sistema por parte del

mismo SGBD. ANALISIS INICIAL DE UN SGBD ORACLE: Para establecer un entorno de trabajo en Oracle vamos a necesitar: • Software Oracle para servidor (Oracle Server Software): Obviamente, una versión

determinada específicamente diseñada para un sistema operativo concreto (UNIX, Windows NT, etc.). Este software incluye los ejecutables para el funcionamiento del propio gestor de la base de datos, un conjunto de herramientas para el tratamiento de la información y un software específico (Net8) para que sean posibles las conexiones de los usuarios al servidor en arquitecturas cliente/servidor.

• Software Oracle para cliente (Oracle Client Software): Este software se ubicará en los puestos de trabajo de los usuarios (también bajo un determinado sistema operativo- Windows 95, NT, etc.), el cual estará formado por un conjunto de herramientas específicas para cliente/servidor (Designer/2000, Developper/2000, etc.) y de su correspondiente software (Net8) para el establecimiento de las conexiones al servidor.

• Archivos de base de datos: La base de datos en sí, los cuales serán creados a través de

herramientas o comandos específicos de Oracle. La ubicación de la base de datos se realizará sobre los discos del propio servidor donde se ha establecido el Oracle Server Software.

• Recursos suficientes en nuestro servidor: Previamente, habrá que realizar un estudio

de nuestro sistema de información para conocer el alcance del mismo. Posteriormente, habrá que estimar la cantidad de memoria, discos y unidades centrales de proceso que van a ser necesarias para un correcto funcionamiento.

Page 5: Adm Bd Oracle

CONCEPTOS GENERALES SOBRE ARQUITECTURA DEL SGBD ORACLE : • Archivo de configuración INIT.ORA : Archivo de inicialización de valores para el

arranque de la instancia y para el establecimiento de configuraciones Oracle. Se especifican parámetros predeterminados con el valor que se desee, con el fin de optimizar los rendimientos o adecuar los recursos.

Será donde se establezcan todos los parámetros para que Oracle trabaje de una u otra forma.

Estos archivos son independientes por instancia, es decir, habrá tantos archivos de configuración como instancias activas en el sistema de información.

• Archivos de control (Control Files) : Conjunto de archivos, de tamaño reducido y estable, encargados de mantener la consistencia del resto de los archivos de la base de datos. Mantendrán información como :

�� Contador de Commit almacenado en cada archivo. �� Número de Redo Log actual. �� Información adicional que indicará a la base de datos si los archivos son todos del

mismo momento o se han recuperado de backup, el punto de arranque de la recuperación, etc. Aunque pequeños y generalmente olvidados, son transcendentales para trabajar con la base de datos.

• Archivos históricos (Redo Log File) : Son archivos donde se irán almacenando los

cambios provocados por las transacciones sobre la base de datos. Son utilizados exclusivamente en modo escritura, excepto cuando se produce una recuperación de la base de datos.

• Sentencias de Commit : Es el punto de decisión de la transacción, indicando que los

cambios hechos sobre la base de datos son validados y realizados.

Se trata de un punto sin retorno para una transacción. Cuando se produce un Commit, éste provoca una escritura en los archivos históricos (redo log files), con el objetivo de que quede grabada la decisión del Commit. Los datos nuevos no tienen por qué ser escritos en disco de forma inmediata. En realidad, permanecen en memoria hasta que sean limpiados por falta de espacio, se produzca un Checkpoint o entren en los timeouts de limpieza de memoria.

• Segmentos de Rollback : Dan la posibilidad a la transacción de no hacer Commit sino

Rollback.

Esto quiere decir que, mientras que no se realice un commit, el resto de las transacciones deberán ver los datos anteriores al comienzo de la misma. Para ello, en los segmentos de rollback se guarda el valor anterior de los datos modificados por una transacción para la consistencia en lectura en entornos multi-usuario.

• Puntos de ruptura ( Checkpoint ): Eventos que se activan en un tiempo determinado para

la limpieza de los bloques sucios de memoria.

Un punto de ruptura se provocará porque : �� Ha habido un cambio en los archivos de redo log. �� Se ha llegado al límite previamente establecido por el parámetro

log_checkpoint_interval del archivo de configuración INIT.ORA. �� Se ha llegado al límite previamente establecido por el parámetro checkpoint_timeout.

El objetivo de los puntos de ruptura es poder tener marcar de recuperación basadas en los archivos históricos actuales (redo log files).

Page 6: Adm Bd Oracle

• Archivos de base de datos : Componentes físicos de la base de datos a nivel de sistema

operativo, los cuales contendrán los datos generados por parte de los usuarios del sistema. • Espacios de tabla (tablespaces) : Agrupaciones lógicas de uno o más archivos de la

base de datos.

Un tablespace puede estar formado por uno o más archivos de la base de datos, y un archivo de la base de datos sólo puede estar englobado en un único tablespace. En los tablespaces será donde se ubiquen los datos que se creen en la base de datos, y físicamente se almacenarán en los archivos de base de datos que componen el tablespace.

ESTRUCTURA DEL SGBD ORACLE La estructura del SGBD Oracle consta de tres partes bien diferenciadas : 1) INSTANCIA : Motor de Oracle. Conjunto de componentes básicos necesarios para el

funcionamiento y arranque del SGBD. Está compuesta por : • Estructura de Memoria : Se almacenan los ejecutables del software Oracle y todo el

sistema necesario para el tratamiento del SGBD.

La filosofía de Oracle es la de albergar la máxima cantidad de información en memoria con el objeto de acelerar el tratamiento de los datos.

La estructura de Oracle en memoria se divide en :

�� SGA (System Global Area)

�� Caché de datos (Database Buffer Cache). �� Caché de redo logs (Redo Log Buffer Cache). �� Área de memoria compartida (Shared Pool), compuesta por las áreas

compartidas para sentencias SQL y de la caché de diccionario de datos (Dictionary Caché o Row Cache).

�� Información adicional sobre procesos, como bloqueos y colas de entrada/salida para determinadas configuraciones.

�� PGA (Program Global Area)

�� Áreas privadas para sentencias SQL. �� Áreas de ordenación de sentencias.

�� Área para ejecutables de Oracle • Archivos de configuración ( INIT.ORA ) : Archivos de configuración donde se establecen

todos los parámetros para que Oracle trabaje de una u otra forma. • Procesos Background : Serie de procesos encargados de mantener, manejar y controlar

todo el SGBD.

Existen unos procesos estándar, que Oracle activa siempre que ejecuta una instancia, y otros que dependerán de las configuraciones establecidas en el fichero de inicialización (INIT.ORA)

Los procesos estándar que Oracle siempre activa son :

Page 7: Adm Bd Oracle

�� DBWR ( Database Writer ) : Encargado de escribir en los archivos de la base de datos todos los buffers de datos que han sido modificados en memoria por operaciones Update, Delete, o Insert.

�� LGWR ( Log Writer ) : Encargado de escribir en los archivos históricos de la base

de datos (Redo Log Files) la información contenida en los redo log buffers.

�� SMON ( System MONitor ) : Encargado de tratar las recuperaciones en caso de fallo cuando se arranca el gestor.

�� PMON ( Process MONitor ) : Trata las recuperaciones en caso de fallo en algún

proceso de usuario. 2) BASE DE DATOS : Es un conjunto de información almacenada convenientemente en una

estructura de archivos de disco.

Existen varios tipos de archivos en Oracle, que son :

�� Archivos de control ( Control Files ) : Al crear una base de datos, Oracle establece el llamado archivo de control, en el cual va a ir almacenando información de todas las estructuras (y estado de las mismas) de la base de datos a la que representa.

Como mínimo habrá un archivo de control por base de datos, aunque se podrán realizar copias del mismo, como medida de seguridad.

Este archivo será fundamental para el arranque de una base de datos, de ahí la importancia de tener copias del mismo.

�� Archivos de Redo Log ( Redo Log Files ) : Contienen un histórico de todos los cambios

que van siendo realizados sobre la información de la base de datos.

En los Redo Log Buffers se reflejará toda aquella información que varíe (valor antiguo y nuevo del dato modificado, así como los correspondientes a los segmentos de rollback afectados), para posteriormente pasar esta información a los archivos históricos (redo log buffers).

En los archivos históricos de la base de datos escribe únicamente el proceso LGWR.

�� Archivos de datos e índices ( Tablespaces de D. e I. ): Los archivos de datos almacenan

la información propiamente dicha, mientras que los archivos de índices almacenan estructuras para un mejor acceso a la misma.

�� Archivos del diccionario de datos Oracle ( Tablespaces del Sistema ) : A la hora de

crear una base de datos se establece un fichero para contener toda una estructura lógica para uso exclusivo de Oracle.

Esta estructura es el diccionario de datos, en el cual se almacena toda la información relativa al flujo, estado, configuraciones, modos y estructuras lógicas de trabajo de una base de datos.

Cualquier información sobre cualquier estructura, tanto lógica como física, de la base de datos, así como el estado permanente de cada una de ellas, se puede localizar en el diccionario de datos de Oracle.

�� Archivos para ordenaciones temporales ( Temporary Tablespaces ) : Cuando alguna

sentencia requiere una serie de ordenaciones, Oracle trata de realizarlas en memoria, pero, en caso de no poder llevarlo a cabo (casi siempre porque el espacio reservado en memoria para ordenaciones es escaso), se crean archivos para ordenaciones temporales, con el fin de poder efectuar las dichas sentencias.

Page 8: Adm Bd Oracle

�� Archivos para consistencia en lectura y recuperaciones de datos ( Tablespaces para

segmentos de rollback ) : Existen en todas las bases de datos Oracle unas estructuras llamadas segmentos de rollback, cuyas funciones son :

�� Mantener la consistencia en lectura para los entornos multi-usuarios.

�� Establecer la posibilidad de volver al estado inicial de una transacción que no ha

sido validada (rollback).

�� Albergar información de apoyo para las recuperaciones en caso de caída del sistema.

3) ENTORNO CLIENTE/SERVIDOR : Sistema basado en compartir aplicaciones y/o datos a

través de una red.

El entorno cliente/servidor básico, quedaría establecido de la siguiente manera :

�� Servidor de datos compartido, donde estará ubicado el SGBD Oracle, el software del servidor y la propia estructura física de los datos.

�� Puestos de trabajo de los usuarios, donde se ubicará el software cliente Oracle.

�� Infraestructura de conexión, para establecer las comunicaciones, tanto físicas como

lógicas, entre las estaciones de los clientes y el servidor de datos.

�� Software de comunicaciones. En el caso de Oracle es Net8.

Page 9: Adm Bd Oracle

Creación de la Base de Datos Si bien las versiones recientes de Oracle ofrecen asistentes para su creación

a continuación se describen los paso de crearla manualmente

• Asegurarse tener espacio suficiente • El usuario con el que se realiza la instalación debe tener privilegios a nivel de súper

usuario en Windows (administrador), Unix (root), etc. • Creación de la base de datos, en la creación se muestra el código SQL, si bien las

nuevas versiones traen asistentes que facilitan la creación esta se realiza en SQL SVRMGR>connect internal Conectado startup nomount pfile=’ D:\Oradata\RECURSOS/initRECURSOS_0.ora’ Nos conectamos desde la consola y le especificamos un archivo de inicio transitorio donde se especifica la ubicación de los archivos de control y otros parámetros necesarios para la creación de la base de datos. SVRMGR> CREATE DATABASE RECURSOS > LOGFILE 'D:\Oradata\RECURSOS\redo01.log' SIZE 1024K, > 'D: \Oradata\RECURSOS\redo02.log' SIZE 1024K, > 'D: \Oradata\RECURSOS\redo03.log' SIZE 1024K > MAXLOGFILES 32 > DATAFILE 'D: \Oradata\RECURSOS\\system01.dbf' SIZE 60M REUSE AUTOEXTEND > MAXDATAFILES 254 > CHARACTER SET WE8ISO8859P1 > NATIONAL CHARACTER SET WE8ISO8859P1;

Como se ve se especifica el nombre de la Base de Datos, los archivos históricos

(redo log files con la ubicación que se escoge en el disco (suponemos un directorio en general para todos los archivos) con el tamaño de 1MB cada uno, la cantidad máxima de log files, el 1º archivo de datos de la Base de Datos que corresponderá al Tablespace SYSTEM donde su ubica el DD de la Base de Datos, la cantidad máximas de archivos de datos y dos parámetros por defecto para la creación.

Page 10: Adm Bd Oracle

• Creación de Tablespaces SVRMGR> CREATE TABLESPACE RBS DATAFILE 'D:\Oradata\RECURSOS\rbs01.dbf' SIZE 250M REUSE > AUTOEXTEND ON NEXT 5120K > MINIMUM EXTENT 512K > MAXSIZE 1024M > DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 8 MAXEXTENTS 4096); Corresponde al Tablespace de Rollback

Nota: autoextend : puede extender automáticamente el tamaño del datafile con extensiones de 5M con un tamaño máximo de 1 Gb.

SVRMGR> CREATE TABLESPACE USERS DATAFILE 'D:\Oradata\RECURSOS\users01.dbf' SIZE 100M REUSE > AUTOEXTEND ON NEXT 1280K > MINIMUM EXTENT 128K > DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0); Corresponde al tablespace de Usuarios donde van los objetos de los usuarios SVRMGR> CREATE TABLESPACE TEMP DATAFILE 'D:\Oradata\RECURSOS\temp01.dbf' SIZE 250M REUSE > AUTOEXTEND ON NEXT 640K > MINIMUM EXTENT 64K > DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0) TEMPORARY; Corresponde al tablespace Temporal SVRMGR> CREATE TABLESPACE TOOLS DATAFILE 'D:\Oradata\RECURSOS\tools01.dbf' SIZE 50M REUSE > AUTOEXTEND ON NEXT 320K > MINIMUM EXTENT 32K > DEFAULT STORAGE ( INITIAL 32K NEXT 32K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0); Corresponde al tablespace de Herramientas SVRMGR> CREATE TABLESPACE INDX DATAFILE 'D:\Oradata\RECURSOS\indx01.dbf' SIZE 60M REUSE > AUTOEXTEND ON NEXT 1280K > MINIMUM EXTENT 128K > DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0); Corresponde al tablespace donde van los Indices SVRMGR> CREATE PUBLIC ROLLBACK SEGMENT RBS0 TABLESPACE RBS > STORAGE ( OPTIMAL 4096K ); SVRMGR> CREATE PUBLIC ROLLBACK SEGMENT RBS1 TABLESPACE RBS > STORAGE ( OPTIMAL 4096K ); Corresponden a los segmentos de rollback, se crean hasta la cantidad de segmentos recomendados Luego se ponen en Línea SVRMGR> ALTER ROLLBACK SEGMENT "RBS0" ONLINE; SVRMGR> ALTER ROLLBACK SEGMENT "RBS1" ONLINE; Luego de la creación de los tablespaces se ejecutan los siguientes archivos de Catálogos conectado con privilegios desde SVRMGR> ejecutarlos

Page 11: Adm Bd Oracle

D:\Oracle\base\Rdbms\admin\catalog.sql; Crea el diccionario de datos de la Base de Datos

Standard.sql crea Store procedures usados por el Motor Cataudit.sql crea vistas para auditorias Catexp.sql Crea objetos para el uso de exp/imp Catldr.sql Crea objetos para el uso de loader Catpart.sql Crea objetos para poder particionar tablas Catadt.sql Crea objetos para su uso con java Catsum.sql Crea objetos para totalizar datos del motor @D:\Oracle\base\Rdbms\admin\catexp7.sql Crea objetos para exp/imp con versiones de

Oracle 7.x @D:\Oracle\base\Rdbms\admin\catproc.sql Crea procedimientos, funciones y triggers de la

Base de Datos Catrpc.sql Crea vistas para el uso de base de datos

remotas dbmsstdx.sql Crea objetos para la base de datos según el

S.O. Plitblm.sql Crea tablas e indices de PL/SQL plspurity.sql Pipidl.sql Pidian.sql Diutil.sql Pistub.sql Utlhttp.sql http requests from stored programs utlfile.sql Routines to perform File I/O utlraw.sql routines for raw datatypes Utltcp.sql Package for TCP/IP communication utlinad.sql Package for Internet address utlsmtp.sql Package for Simple Mail Transfer Protocol

(SMTP) catspace.sql Objetos para el manejo del almacenamiento dbmsspc.sql catactx.sql catsvrmg.sql Create the views and tables required for

Server Manager dbmsutil.sql - packages of various utility procedures dbmsapin.pls procedures for instrumenting database

applications. dbmssyer.sql pl/sql routines for system error messages for

DBMS* routines. dbmslock.sql locking routines provided by Oracle dbmspipe.sql send and receive from dbms "pipes" dbmsalrt.sql Blocking implementation of DBMS "alerts" dbmsotpt.sql used by sql*dba 'set serveroutput on' cmd dbmsdesc.sql describe stored procedures and functions dbmssql.sql DBMS package for dynamic SQL dbmspexp.sql Package spec. for procedural extensions to

export dbmsjob.sql DBMS JOB queue interface dbmsstat.sql statistics gathering package dbmspsp.sql Routines to compile PSP pages. catrule.sql This loads the catalog and plsql packages for

the rule engine dbmsread.sql creates the package specs for rules admin and

rule catqueue.sql dbmsaqad.sql package which contains the administrative

operations of AQ

Page 12: Adm Bd Oracle

catrm.sql Catalog script for dbms Resource Manager package

dbmsrmpriv.sql public interface for DBMS Resource Manager PRIVileges

catdefer.sql catalog of deferred rpc queues catdefrt.sql CATalog DEFeRred rpc Tables catsnap.sql Creates data dictionary views for snapshots dbmspb.sql ProBe (PL/SQL debugger) server-side

package. dbmssum.sql PUBLIC interface FOR SUMMARY refresh dbmssnap.sql utilities for snapshots dbmspbt.sql package specification for PL/SQL tracing CATPITR.SQL Tablespace Point in Time specific views dbmspitr.sql tablespace point-in-time recovery functions CATPLUG.SQL Pluggable Tablespace check views dbmsplts.sql Pluggable Tablespace Package Specification dbmslob.sql DBMS package specification for Oracle8 Large

Objects utlrefld.sql Installs the utl_ref package on the rdbms. dbmstrst.sql distributed trust administration dbmslogmnrd.sql CATSNMP.SQL Creates an SNMPAgent role to access the v$

tables catrls.sql Catalog views for Row Level Security dbmsrlsa.sql Row Level Security Adminstrative interface catol.sql outline views and synonyms dbmsol.sql Specification for outln_pkg catodci.sql Types and Interfaces for Extensibility dbmsrpr.sql RDBMS Repair Package Specification dbmstrig.sql DBMS TRIGger function @D:\Oracle\base\sqlplus\admin\pupbld.sql CREATE PRODUCT AND USER PROFILE

TABLES @D:\Oracle\base\Rdbms\admin\utlsampl.sql

Una vez creada la base de datos se debe configurar el archivo init.ora para la configuración en particular de la Base de Datos, es de suma importancia que este archivo este configurado de la forma adecuada por que en ella se definen parámetros de memoria, archivos, lenguaje, etc. En el archivo debe ir la ruta en que se encuentran los archivos de control, el nombre los segmentos de rollback, la memoria compartida en bytes así como el buffer de los archivos históricos; el lenguaje de la Base de Datos, formato de la fecha y parámetro de estadísticas. control_files = ("D:\oradata\RECURSOS\control01.ctl", "D:\oradata\RECURSOS\control02.ctl", "D:\oradata\RECURSOS\control03.ctl") rollback_segments = ( RBS0, RBS1, RBS2, RBS3, RBS4, RBS5, RBS6 …) db_block_buffers = 7730 # 60MB 7730*8192 Buffer Cache log_buffer = 32768 shared_pool_size = 21108736 #20MB db_block_size = 8192 #Tamaño del Bloque processes = 100 db_name = "DBA" db_files = 50 open_cursors = 100 db_file_multiblock_read_count = 8 large_pool_size = 614400 java_pool_size = 20971520 timed_statistics = true # if you want timed statistics sort_area_size = 65536 sort_area_retained_size = 65536

Page 13: Adm Bd Oracle

Arranque y Parada del SGBD ORACLE ARRANQUE A la hora de arrancar una instancia se suceden tres fases bien diferenciadas:

1) Arranque de la Instancia 2) Montaje de la Base de Datos 3) Apertura de la Base de Datos

Estas fases pueden realizarse por separado o realizarse conjuntamente. En el primero de los casos es para realizar cualquier tipo de operación sobre la base de datos (parametrizarla, crearla, etc.). El segundo caso es para una base de datos que ya esta estabilizada y no necesita abrirse por fases.

1) Arranque de la Instancia

Es la primera fase de arranque en esta se van a iniciar los procesos background para la instancia en cuestión además se establecerá las estructuras de memorias correspondientes en la SGA del servidor, para ello se deberá leer el archivo INIT.ora para tener en cuenta los parámetros en el ubicados. El comando es Startup nomount

2) Montaje de la Base de Datos

En esta fase se montan los archivos de la base de datos, los cuales van a asociarse con la instancia arrancada en la fase anterior, una vez que una base de datos ha sido montada permanecerá cerrada por lo que no será posible ningún tipo de operación por parte de los usuarios sobre la misma. En esta fase Oracle va a abrir el o los archivos de control para leer los archivos de datos y archivos históricos de la base de datos. El comando es: Startup mount;

3) Apertura de la Base de Datos

En esta fase oracle abre los archivos de datos e históricos para que todos los usuarios dados de alta en el sistema puedan realizar sus operaciones normales sobre la información, el comando es: Startup open;

¿Cuál es la utilidad de las fases de arranque? La primer fase y mas importante es para crear la base de datos. Existen operaciones y acciones sobre la base de datos que necesitan que este montada pero no abierta. (Activación del archivador) En caso de error la recuperación de la base de datos se hace en la fase Tres.

Page 14: Adm Bd Oracle

PARADA

1) Modo Normal 2) Modo Inmediato 3) Modo Abortivo

1) Modo Normal: El comando es shutdown, en este caso se efectúan todas las fase de parada de tal manera que oracle escribe todos los datos ubicados en el SGA y la información de recuperación a los archivos de datos e históricos, en este caso los archivos de la base de datos son cerrados convenientemente dejando la consistencia de todas las estructuras en modo estable.

2) Modo inmediato: esta forma es similar a la anterior con la diferencia de que con esta

forma oracle cancela sin previo aviso, todas las conexiones en ese momento activas por parte de los usuarios, los que puede causar de que queden procesos colgados, en el caso de no existir conexiones activas no habría problema. El comando es shutdown immediate.

3) Modo Abortivo: Esta es la forma menos recomendad de cerrar la base de datos ya

que podrían quedar estados inconsistentes sobre la misma, aunque en casos de emergencia va a ser obligatorio su uso. Esta es la forma mas rápida de cerrar una base de datos y terminar la instancia asociada a la misma ya que en este modo no escribe sobre los archivos de la base de datos ( archivos de datos e históricos) la información almacenada en la SGA de datos y recuperación, además de dejar abiertos los archivos que componen toda la base de datos. Esto provoca que al siguiente arranque del sistema oracle tenga que realizar recuperación para establecer la consistencia de todas las estructuras y de la información en ella almacenada. El comando utilizado es shutdown abort. Cuando se baje la base de datos de esta forma, y una vez que se levante posteriormente se recomienda volverla a bajar en modo normal y volverla a levantar nuevamente. Esto nos asegurara que el proceso de recovery en el primer arranque se ha llevado a cabo de forma satisfactoria.

Page 15: Adm Bd Oracle

USUARIOS, PROFILES, ROLES, PRIVILEGIOS Debemos tener en cuenta que al momento de crear la base de datos se crean automáticamente dos usuarios con todos los privilegios. Ellos son SYS y SYSTEM, para crear algún usuario o rol, o asignar privilegios o roles debemos conectarnos con alguno de estos dos usuarios. Creación De Usuarios En la creación de usuarios se piden los siguientes requisitos: 1. Nombre 2. Password 3. Profile 4. Default- TableSpace 5. Temporary- Tablespace 6. Roles 7. System privilegies 8. Quotas 9. Privilegios sobre objetos 1- Nombre: nombre del usuario 2- Password: se debe especificar la clave del usuario 3- Profile: corresponde a un perfil que se le puede asignar al usuario el cual contiene:

�� Tiempo de CPU: se indica en seg/100 el tiempo máximo que el usuario puede usar la cpu.

�� CPU/Call: se indica en seg/100 el tiempo máximo para llamados al sistema. �� Tiempo de Conexión: se indica el tiempo máximo de conexión en minutos. �� Tiempo Desocupado: se indica en minutos el tiempo máximo que el usuario puede

permanecer desocupado. �� Sesiones concurrentes: la cantidad máxima se sesiones conectadas a la base de

datos. Se pueden usar por default o ilimitado para algunos parámetros. Código SQL CREATE PROFILE Dto_Compras LIMIT_CPU_PER_SESSION unlimited CPU_PER_CAL default CONNECT TIME 60 IDLE_TIME 15 SESSIONS_PER_USER 5 PASSWORD_LIFE_TIME 30 (tiempo en días que expira la password)

PASSWORD_LOCK_TIME 5 (Días deshabilitado en caso de fallar con el login) FAILED_LOGIN_ATEMPS 3 (cantidad de intentos para introducir el login) 4- Default- TableSpace: aquí se debe seleccionar el tableSpace donde se crean los objetos

del usuario. 5- Tempory- TableSpace: generalmente se coloca el TableSpace temporal de la creación de

la base de datos, pero puede usarse cualquiera. Hay que tener en cuenta que aquí se hacen las consultas y ordenaciones de este usuario.

6- Roles: son un conjunto de privilegios que se asignan a los usuarios para trabajar en su

entorno. Ya vienen predefinidos una serie de roles, pero también se pueden crear roles personalizados, a continuación se detallan los roles predefinidos: a) DBA: corresponde al superusuario, es el que tiene asignado implícitamente todos los

privilegios del sistema y demás roles. Los usuarios SYS y SYSTEM tienen este rol. Puede realizar todas las operaciones sobre almacenamiento, usuarios, objetos, backups, etc.

b) CONNECT: este rol se le asigna automáticamente a cada usuario que se cree en la base de datos. Quiere decir que tiene privilegios sobre sus objetos como conectarse a la base de datos y abrir una sesión, crear sus tablas, borrarlas y actualizarlas; pero no para otros usuarios

Page 16: Adm Bd Oracle

c) RESOURCE: este rol le posibilita al usuario tener un conjunto de privilegios de sistema un poco mas avanzado que CONNECT como crear triggers, procedimientos, secuencias, etc.

d) EXP_FULL_DATABASE: este rol se asigna a usuarios para que puedan realizar backups de la base de datos usando la utilidad EXP.

e) IMP_FULL_DATABASE: este rol se asigna a usuarios para que puedan restaurar backups usando la utilidad IMP.

En los roles también se pueden anexar otros roles y heredar sus privilegios, también se pueden tener privilegios sobre objetos. Para crear un rol debemos identificar

�� Nombre �� Rol o Roles incorporados �� System Privilegios (privilegios del sistema) �� Privilegios sobre objetos

Código SQL CREATE ROLE Acceso_a_Sesiones; GRANT “SELECT_ANY_TABLE TO Acceso_a_Sesiones; GRANT CONNECT TO Acceso_a_Sesiones GRANT INSERT ON DEMO DAYS TO Acceso_a_Sesiones; GRANT SELECT ON DEMO DAYS TO Acceso_a_Sesiones; GRANT SELECT ON SYS.V$SESSIONS TO Acceso_a_Sesiones, 7- System Privilegios (privilegios del sistema): estos están asignados básicamente al

tratamiento de objetos como crear tablas, crear vistas, etc. Cabe destacar que la mayoría de estos privilegios se encuentran en los roles del sistema.

8- Quotas: se le indica al usuario el espacio en Kb o Mb que podrá manipular, se puede

indicar un tamaño especifico o ilimitado, por defecto no puede manipularlo. No solo se puede asignar espacio a sus tablespace sino que a otros que no le pertenezcan.

9- Privilegios sobre objetos: aquí se especifican los privilegios sobre objetos de otros

usuarios. Se debe conectar con el usuario dueño del objeto y darle el privilegio al usuario que desee manipular los objetos. Por ejemplo:

GRANT SELECT, UPDATE ON JLB.CLINETES TO JMR JLB= dueño JMR= usuario al que se permite.

Código SQL CREATE USER JLB

PROFILE Dpto_Compras IDENTIFIED BY “2505ABCA” DEFAULT_TABLESPACE Tablas_Compras TEMPORARY_TABLESPACE Temporal QUOTA 10M ON Ventas QUOTA UNLIMITED ON Tablas_Compras; GRANT SELECT ANY VIEW TO JLB; GRANT CONNECT TO JLB;

Page 17: Adm Bd Oracle

Creación de objetos

Una vez creada una base de datos y un usuario cualquiera, puedo seguir al paso siguiente que es la creación de objetos para dicho usuario. La creación de objetos esta íntimamente ligada a los usuarios de la Base de Datos, dichos usuarios se dice que dichos usuarios tienen un esquema de trabajo. Los objetos de Oracle son: • Tablas • Vistas • Indices • Sinónimos • Link de Base de Datos • Procedimientos • Funciones • Disparadores (triggers) • Paquetes de procedimientos y funciones Según los roles asignados a un usuario en particular, este puede llegar a crear sus propios objetos, hecho no recomendable en un entorno d producción. Estas es la tarea principal de un DBA, quien sabe perfectamente cuales son los parámetros necesarios para el buen funcionamiento de la Base de Datos (almacenamiento, integridad referencial, índices, etc.). Por tal motivo cabe destacar que solo una usuario con rol DBA puede crear objetos. Creación de Tablas Las Tablas en Oracle son idénticas a las de otros Software de Base de Datos, con la diferencia que estas serán pensadas para almacenar grandes volúmenes de datos, que habrán de estar disponible en forma simultanea para multitud de usuarios. Para la creación de tablas se deben especificar: �� Nombre de la Base de Datos: la tabla habrá de pertenecer a una BD determinada �� Nombre de la Table: identificación de la misma. �� Table Space: se indica en que table space habrá de crearse la tabla �� Campos: un listado de los campos que compondrán la tabla y estos campos deberán

indicar: • Nombre: nombre del campo • Tipo: el tipo de datos que almacenara el campo (numérico, char, varchar2, date, raw, long

raw, long) • Tamaño: longitud expresada en caracteres que habrán de ocupar los datos almacenados

en el campo • Null o Not Null: se indica si el campo puede contener valores null o no • Valor por defecto �� Constraints: indica las claves primarias, foráneas, únicas de la integridad referencial. Se

debe indicar el nombre del constraint, el tipo de clave (primaria, única, foránea) �� Almacenamiento físico: la tabla se guarda en extensiones de tamaños expresados en

kbytes o Mbytes. Primero se indica el tamaño inicial, y si esta extensión se llena se debe indicar el tamaño de la próxima extensión, normalmente el crecimiento de estas extensiones se determina sobre un porcentaje de la sumatoria de las extensiones anteriores. Ejemplo, una tamaño inicial de 24 k y una extensión de 16k, la próxima extensión puede determinarse como el 50% de la sumatoria de las extensiones, así la próxima extensión será de 20k. Este crecimiento de la tabla tendrá un limite de extensiones.

�� Particiones: a fin de obtener un mejor rendimiento para tablas con cientos de miles de registros se las puede particionar en distintos Table Space, a partir de una clave de partición. Ejemplo, en una tabla que almacena información de patentes vehiculares ordenadas en forma cronológica según su asentamiento, podemos tomar el campo ano como criterio de partición de la tabla; así podemos particionar la tabla por ano y facilitar el acceso a datos de un ano en particular.

Page 18: Adm Bd Oracle

Ejemplo de código SQL para crear una tabla: CREATE TABLE JLB.CLIENTES ("NUMERO" NUMBER(3) NOT NULL, "NOMBRE" VARCHAR2(30) NOT NULL, "ESTADO" VARCHAR2(1), "FOTO" LONG RAW, "ALTA" DATE, CONSTRAINT "PK_NUMERO" PRIMARY KEY("NUMERO")) TABLESPACE TABLAS_STOCK STORAGE ( INITIAL 128K NEXT 64K MAXEXTENTS 249 PCTINCREASE 50); Esta sentencia crea una tabla para el usuario JLB, llamada Clientes, se listan los campos que la componen conjuntamente con el tipo y longitud de los mismos. Se indica al campo Numero como clave primaria, y se indica el nombre del Table Space (Tablas_Stock) donde se almacenara la tabla y por ultimo se especifica el tamaño de las extensiones que almacenaran a la tabla. Se indica un valor inicial de 128K, la próxima extensión tendrá 64K y las siguientes tomaran una dimensión igual al 50% de la sumatoria de las extensiones, así hasta llegar al máximo de 249. Ejemplo de código SQL para particionar una tabla: CREATE TABLE JLB."VENTAS"("NUMERO" NUMBER(8) NOT NULL, "FECHA" DATE NOT NULL, "PRODUCTO" CHAR(30), "CANTIDAD" NUMBER(5), "AÑO" VARCHAR2(10) DEFAULT 2003 NOT NULL) STORAGE ( INITIAL 1M NEXT 512K MAXEXTENTS 249) PARTITION BY RANGE (AÑO) (PARTITION "PART1" VALUES LESS THAN (2003) TABLESPACE " AÑO 2003" , PARTITION "PART2" VALUES LESS THAN (2002) TABLESPACE " AÑO 2002" , PARTITION "PART3" VALUES LESS THAN (2001) TABLESPACE " AÑO 2001"); Esta sentencia crea una tabla para el usuario JLB, llamada ventas, donde se indican los campos con sus tipos y longitud, el espacio físico que habrá de ocupar y las particiones. Las particiones se hacen tomando como criterio de división el campo AÑO, y se la divide por anos desde el 2001 al 2003. Particionar la tabla de esta manera ayudara a acceder a registros de un ano determinado, agilizando los procesos de usuario. Creación de Indices Los índices se crean para obtener un mejor acceso a las tablas mediante una clave que puede ser única o concatenada, en el caso de las claves únicas o primarias el índice se crea automáticamente al crear las claves. Los parámetros de creación de un índice son: • Usuario • Nombre del índice • Tablespace • Usuario de la Tabla • Nombre de la Base de Datos • Campos/s del índice • Tipo de índice (único, en orden ascendente, descendente) • Almacenamiento (ídem a las tablas) • Particiones: los índices también se pueden particionar al igual que las tablas Ejemplo de código SQL para crear un índice: CREATE INDEX JLB.IDX_CLIENTES_1 ON JLB.CLIENTES ("NUMERO", "FECHA") TABLESPACE "INDICES_STOCK" STORAGE ( INITIAL 64K NEXT 32K MAXEXTENTS 249); Esta sentencia crea un índice para JLB, llamado IDX_Clientes_1, y esta hecho sobre la tabla JLB.Clientes; los campos tomados como clave son Numero y Fecha. Dicho índice se almacenara en el Table Space Indices_Stock y se indica la dimensión que tendrá el mismo.

Page 19: Adm Bd Oracle

Creación de Vistas Una vista es una forma de referenciar una tabla o varias tablas, u otras vistas, mediante la utilización de un SELECT SQL. Se deben indicar: el usuario, el nombre de la vista y la consulta SQL. Ejemplo: CREATE VIEW JLB.CLIENTES_DADOS_DE_BAJA AS select numero, nombre from jlb.clientes where estado='B' order by numero; Esta sentencia crea una vista para JLB, llamada Clientes_dados_de_baja, y vera lo que le arroje como resultado el Select indicado. Creación de Sinónimos Es la forma más usual de referenciar un objeto de otro usuario (tabla, vista, sinónimo, etc.). El sinónimo puede ser local (corresponde a la misma Base de Datos) o remota (corresponde a una Base de Datos distinta). Para la creación del sinónimo se debe indicar: • Usuario • Nombre del sinónimo • Tipo de objeto • Usuario propietario del objeto • Nombre del objeto del cual deseamos crear el sinónimo Ejemplo SQL para crear un sinónimo: CREATE SYNONYM JWM.BAJAS FOR JLB.CLIENTES_DADOS_DE_BAJA; Esta sentencia crea un sinónimo llamado Bajas para la persona JWM y el sinónimo hará referencia a la Tabla Clientes_dados_de_baja del usuario JLB. Link de Base de Datos Se trata de una conexión a una Base de Datos remota. El link a BD se utiliza en forma combinada con sinónimos. Se debe indicar: • Usuario • Clave • Nombre de la Link a BD • Nombre del servicio al cual se desea acceder en la otra base de datos Ejemplo SQL para crear un Link a un BD: CREATE DATABASE LINK PROVEES USING 'prov_tcp'; CREATE SYNONYM JLB."CUENTAS" FOR "MAURICIO"."CLIENTES_CUENTAS"@prov_tcp; La primera sentencia crea un link a BD indicando el servicio prov_tcp. La segunda sentencia crea un sinónimo para el usuario JLB, llamado Cuentas y se referencia a la tabla Clientes_cuentas del usuario Mauricio localizada en la base de datos indicada por el servicio prov_tcp. Nota: el usuario debe tener cuenta en ambos servicios para poder crear sinónimos remotos. Los siguientes objetos son utilizados por desarroladores de aplicaciones Oracle, básicamente almacenan código de programación que estarán disponible para su reutilizacion: • Procedimientos, Funciones, Disparadores (triggers), Paquetes de procedimientos y

funciones

Page 20: Adm Bd Oracle

EXPORTACION, IMPORTACIÓN

Exportación de Estructuras De Base de Datos La exportación de información consiste en transportar datos ubicados en una base de datos hacia un archivo binario de un sistema operativo determinado. Esta operación nos será útil para:

• Copia de seguridad de la información almacenada en una base de datos. • Reorganización de objetos que han llegado a un nivel de fragmentación importante. • reubicación de estructuras determinadas dentro de una misma base de datos o hacia

otras diferentes. La exportación de informaciones realiza a través de un comando llamado comando de EXPORT. Esta ejecución se lleva a cabo desde el sistema operativo, en el cual se incluyen algunos parámetros y normativas que hacen posible la exportación de información. Normativas De Exportación

• El archivo de sistema operativo que genera la herramienta contendrá información de la base de datos en formato binario. Estos no se podrán leer por ninguna otra utilidad que no sea la misma de importación de datos Oracle 8. No obstante, hay un parámetro de la utilidad que nos permite ver el contenido de la información que se ha exportado.

• La exportación de información requiere de un usuario y una clave de base de datos. Este usuario deberá tener activado el rol de EXP_FULL_DATA_BASE para poder realizar la operación de exportación.

• Se recomienda que mientras se está realizando la exportación de cualquier tipo de estructura de base de datos, no se esté actualizando ningún tipo de datos contenida en ellas.

Comando De Exportación De Datos El comando para invocar a esta utilidad se debe lanzar desde la línea de comandos del sistema operativo. El comando es EXP80. La sentencia es: Exp <usuario> / <password> buffer= 1048576 full= yes file= export.dmp log= export.log Se exportará toda la información de un determinado usuario sobre un archivo de sistema operativo (export.dmp), el cual se creará en el directorio desde el cual se esté lanzando el comando. Para ello se utiliza un buffer de 1 Mb. Todas las secuencias se almacenan en un archivo histórico con el fin de visualizar al final la operación si todo a terminado correctamente (export.log). uno de los métodos mas cómodos para lanzar la operación de exportación es el comando siguiente: Exp <usuario> / <password> parafile= parametro.txt En el archivo parámetro.txt sería donde introduciríamos los parámetros de exportación. Con este método, se podría realizar varios estándares de exportación de datos, creando varios archivos de parámetros según el caso. Método De Exportación La exportación de datos puede realizarse utilizando dos métodos bien diferentes.

• Método convencional (DIRECT= NO) • Método directo(DIRECT= YES)

�� Método Convencional de exportación de datos

Cuando la utilidad de exportación usa este método lo que hace es lanzar consultas SQL para extraer la información de las tablas de la base de datos. Los datos se leen de disco para ubicarlos posteriormente en un caché de datos. Estos datos pasan por una serie de chequeos de evaluación, para luego ser transferidos al archivo de exportación.

�� Método directo de exportación de datos

Page 21: Adm Bd Oracle

Es más rápido ya que los datos son leídos y escritos directamente sobre el archivo de exportación, evitando todos los procesos de evaluación que se producían en él caché de datos con el método convencional. Parámetros de Exportación Estos parámetros se pueden incluir en la misma línea de comandos del ejecutable de exportación o dentro de un archivo de parámetros determinado (PARFILE)

�� BUFFFER: Especifica, en bytes, el tamaño del buffer asignado para los accesos a los registros de un objeto.

�� COMPRESS: Este parámetro está indicado para el tratamiento de las cláusulas de almacenamiento de los objetos. Con el valor de COMPRESS= YES, la exportación calculará el espacio ocupado por cada uno de los objetos accedidos para que, con una importación posterior, todo este espacio ocupado por la información del objeto se agrupe en una única extensión.

�� CONSISTENT: Tiene la función de mantener la consistencia en la exportación de datos en el caso de que éstos puedan ser modificados mientras la exportación se está llevando a cabo. Debe tener el valor CONSISTENT= YES.

�� CONSTRAINTS: Sirve para indicar el proceso que también exporte las constraints de las tablas.

�� DIRECT: Este parámetro indica el modo en el que se va a realizar la exportación de datos, convencional o directa.

�� FEEDBACK: Este parámetro sirve básicamente para realizar un seguimiento del número de filas que se van exportando.

�� FILE: Sirve para especificar el nombre del archivo binario donde la utilidad va a ir almacenando los datos exportados. La extensión por defecto es DMP , aunque se podría especificar otra extensión.

�� FULL: cuando está en yes, sirve para exportar toda la información de una base de datos.

�� GRANTS: Cuando está en yes, se exportará los permisos de los objetos en relación con los usuarios y roles de la base de datos.

�� HELP: Proporciona ayuda sobre los parámetros disponibles en la utilidad de exportación.

�� INCTYPE: Especifica el tipo de exportación incremental (COMPLETE, CUMULATIVE o INCREMENTAL). Por defecto no se usará ninguno de estos tipos.

�� INDEXES: con el parámetro en yes, se exportarán los índices asociados con las tabla. �� LOG: Se puede especificar el archivo de log donde comprobaremos el estado final de

la operación de exportación de datos, y localizar cualquier tipo de error en el caso de que lo haya.

�� OWNER: Sirve para especificar una lista de usuarios, con lo que la utilidad exportará únicamente los objetos pertenecientes a dichos usuarios.

�� PARFILE: Indica UN archivo de texto donde podremos almacenar una lista con los parámetros que utilizará la utilidad para realizar el proceso de exportación.

�� TABLES: Con este parámetro podremos especificar una lista determinada de tablas que se quieren exportar. Se pueden especificar tanto tablas completas como particiones.

Otros parámetros son:

�� Point_in_time_recover �� Record �� Recordlength �� Recovery_tablespaces �� Rows �� Statiscs �� Userid

Modos De Exportación De Datos

• Modo completo (FULL= NO) • Modo usuario (OWNWER= (lista de usuarios)) • Modo tabla (TABLES= (lista de tablas))

Page 22: Adm Bd Oracle

�� Modo completo La utilidad de exportación extraerá la información completa de una base de datos, la cual estará acorde con los demás parámetros adicionales en el comando de exportación. El usuario que utilice este método deberá tener un rolo de EXP_FULL_DATABASE o DBA. Para utilizar este método, nos basaremos en el parámetro FULL en la exportación de datos, el cual nos va a indicar que vamos a utilizar este método y no otro de los existentes dentro de la utilidad.

�� Modo usuario Este método se utiliza para exportar datos relativos a un grupo de usuarios de la base de datos (OWNER =(lista de usuarios)). Suele ser bastante útil cuando se quiere traspasar información de una determinada aplicación de una base de datos a otra.

�� Modo tabla Con este método podremos exportar una determinada cantidad de tablas de la base de datos (TABLES= (LISTA DE TABLAS)). Para especificar la lista de las tablas a exportar, es conveniente utilizar el propietario de las mismas, con el fin de tener claramente identificadas las tablas de las que se trata. Con este método de exportación podemos incluir en la lista tanto tablas como particiones de las mismas. El usuario que lance una exportación deberá ser EXP_FULL_DATABASE o DBA. Importación de Estructuras De Base de Datos Otra utilidad es la importación de información en una base de datos tomando como referencia un archivo determinado el cual habrá sido generado mediante la utilidad de exportación. La utilidad de importación sola puede leer aquellos archivos que hayan sido generados mediante la utilidad de exportación. Lo que hace es básicamente es ir leyendo un archivo de exportación determinado para ir almacenando adecuadamente su información en una base de datos concreta. Proceso De Importación De Datos Cuando se realiza la importación de la información almacenada en un archivo de exportación, la utilidad crea primero las tablas sobre la base de datos, y luego inserta los datos y crea sus índices asociados. Por último se elaboran los triggers de bases de datos asociados a la tabla se activarán sus constraints y se crearán sus índices bitmap en caso de tenerlos. Normativas De Exportación De Datos

�� El archivo de exportación debe haber sido creado por una versión 5.1.22 o posterior �� Que el usuario de base de datos que se encargue de la importación de datos tenga

asociado el rol de IMP_FULL_DATABASE. Comando De Importación De Datos El comando para esta utilidad es el IMP80 el cual deberá lanzarse desde la línea de comandos del sistema operativo. Imp <usuario> / <password> buffer= 1048576 full= yes file= exp.dmp log= import.log Se importará toda la información de un determinado archivo de exportación (exp.dmp), donde todas las secuencias del proceso se irán almacenando en un archivo histórico, para visualizar si se ha importado correctamente. Todas las secuencias se almacenan en un archivo histórico con el fin de visualizar al final la operación si todo a terminado correctamente (import.log). uno de los métodos mas cómodos para lanzar la operación de exportación es el comando siguiente: Imp <usuario> / <password> parafile= parametro.txt En el archivo parámetro.txt sería donde introduciríamos los parámetros de importación. Con este método, se podría realizar varios estándares de importación de datos, creando varios archivos de parámetros según el caso. Parámetros De Importación

�� ANALYZE: Sirve para indicar el proceso de importación si tiene o no que analizar las tablas que va leyendo del archivo de exportación.

Page 23: Adm Bd Oracle

�� BUFFER: Indica, en bytes, el tamaño del buffer a través del cual los datos van a transferirse a la base de datos.

�� COMMIT: Con este parámetro activado, la importación irá validando las inserciones que se vayan produciendo en las tablas de la base de datos. Después de la inserción de un número determinado de registros sobre la tabla se lanzará una sentencia de commit. En caso de tener desactivado este parámetro, no se lanzará la sentencia hasta que no se hayan terminado de insertar todos los registros de una tabla.

�� FROMUSER: Su función es importar objetos de una serie de usuarios determinados los cuales serán buscados dentro del archivo de exportación.

�� FULL: Indica si se quiere o no importar la totalidad de la información contenida en el archivo de exportación.

�� GRANTS: podemos indicar a la utilidad si se quieren o no importar los permisos existentes sobre los objetos del archivo de exportación.

�� TABLES: Nos permite especificar una lista determinada de tablas que se quieren importar. En dicha lista se podrán indicar tanto tablas completas como particiones de las mismas.

�� USERID: Sirve para indicar el usuario y la clave del usuario de base de datos que va a realizar la importación de datos. La importación de datos podría realizarse obre una base remota, utilizando una cadena de conexión adecuada.

�� LOG: especifica el archivo histórico donde la utilidad de importación va a ir almacenando todas las operaciones que va efectuando.

Otros parámetros son:

�� Help �� Ignore �� Inctype �� Indexes �� Indexfile �� Parfile �� Point_in_time_recover �� Recordlength �� Rows �� Show �� Skip_unusable_indexes

Modos De Importación de Datos • Modo completo (FULL= YES) • Modo usuario (FROMUSER y TOUSER) • Modo tabla (TABLES= (lista de tablas))

�� Modo completo

La utilidad de exportación extraerá la información completa Dl archivo de exportación para ubicarla en una base de datos destino, todo ello acorde con los demás parámetros adicionales en el comando de importación. El usuario que utilice este método deberá tener un rolo de EXP_FULL_DATABASE o DBA. Para utilizar este método, nos basaremos en el parámetro FULL en la importación de datos, el cual nos va a indicar que vamos a utilizar este método y no otro de los exitentes dentro de la utilidad.

�� Modo usuario Este método se utiliza para importar datos relativos a un grupo de usuarios de la base de datos (FROMUSER) con respecto a otros de la base de datos destino (TOUSER). Suele ser bastante útil cuando se quiere traspasar información de una determinada aplicación de una base de datos a otra.

�� Modo tabla Con este método podremos importar una determinada cantidad de tablas desde el archivo de exportación hacia la base de datos destino (TABLES= (LISTA DE TABLAS)). Para especificar la lista de las tablas a exportar, es conveniente utilizar el propietario de las mismas, con el fin de tener claramente identificadas las tablas de las que se trata.

Page 24: Adm Bd Oracle

MODO ARCHIVE LOG

Arquitectura Interna De Archive Log El modo ARCHIVE LOG es la forma es la forma en que se denomina a una base de datos que va a ir almacenando permanentemente en archivos todos los cambios que se van produciendo en su información. Cada instancia Oracle tiene su grupo de dos o más archivos REDO LOG, en los cuales se van a ir almacenando los cambios que se han producido en la información de la instancia a la que representan. Este almacenamiento se produce en forma cíclica, primero se empieza escribiendo en un Redo Log hasta que se llena, para a continuación seguir escribiendo sobre el segundo. Una ves lleno el segundo se vuelve al primero, para evitar que se pierda la información se activa el modo Archive Log. Con esta configuración activada Oracle copia a archivos la información existente en los Redo Log antes de que sea sobrescrita por el proceso cíclico de almacenamiento de cambios sobre los datos. De esta forma tendremos todos los cambios que se han producido en la información de la base de datos almacenados en disco. De esta forma podríamos recuperar cualquier estado de la base de datos hacia atrás en el tiempo, ya que tenemos almacenados todos los cambios que se han producido sobre la misma. Proceso Background Para Archive Log Al activarse esta configuración, se inicia un proceso de background en la máquina, llamado ARCHIVER (ARCH) el cual se va a encargar de realizar las operaciones de almacenamiento de la información de los Redo Log. El proceso de archivar es el siguiente: 1. Primero, el proceso LGWR va a intentar escribir al archivo Redo Log activo un cambio sobre

un dato determinado. Se va a detectar que el archivo Redo Log está lleno. Esta información está disponible en el archivo de control de la base de datos.

2. Posteriormente se comunica al proceso ARCH que tiene que copiar la información contenida en el archivo de Redo Log lleno en un archivo que está previamente parametrizado.

3. El proceso LGWR espera que el proceso ARCH almacene la información del archivo Redo Log correspondiente. Cuando este proceso termina, el proceso de LGWR ya podrá sobrescribir el cambio que tenia previsto registrar en el archivo Redo Log.

El modo Archive Log aporta varias ventajas a las bases de datos sobre las que se quiera establecer: 1. Es un modo muy fiable para recuperaciones de cualquier estado pasado de la base de

datos. 2. Con este método no es necesario tener que bajar la base de datos, ya que es un modo de

almacenamiento de información de backup on line, el archivado de los Redo Log se va produciendo con la base de datos levantada. Esto implica que los usuarios no dejarán de trabajar en ningún momento con la información de la base de datos.

El modo Archive Log requiere de un espacio adicional de disco para poder albergar los archivos con las copias de los Redo Log. El destino de estos archivos es parametrizable, y siempre habrá que tener cuidado y vigilar constantemente que siempre haya espacio libre para su almacenamiento. Parámetros De Configuración

• Log_Archive_Start: Este parámetro sirve para activar el modo Archive Log. Si este parámetro está configurado a TRUE cuando Oracle arranca la instancia lo que hará será iniciar el proceso ARCH encargado de archivar los Redo Log.

• Log_Archive_Dest: este parámetro indica el destino en disco donde se van a ir almacenando los archivos archiver. Este parámetro únicamente tendrá sentido si el parámetro Log_Archive_Start está en true.

• Log_Archive_Format: nos ofrece la posibilidad de dar un formato identificativo a los nombres de los archivos archiver. Este parámetro es útil para las instancias levantadas en paralelo, ya que de esta manera podremos identificar la correspondencia entre los archivos de Archiver y los Redo Log de cada una de las instancias.

Page 25: Adm Bd Oracle

• Log_Archive_Buffers: Indica el número de buffers que van a reservarse en memoria par5a el modo Archive Log.

• Log_Archive_Buffers_Size: especifica el tamaño de los buffers en memoria para Archive Log.

Vistas Para Control Del Modo Archive Log

• V$DATABASE: En este registro existe un campo que nos dará información sobre el estado de la base de datos en relación al modo Archive Log.

• V$LOG_HISTORY: Esta vista ofrece información histórica de los nombre de los Redo Log que han sido archivados en el sistema.

• V$LOG: Ofrece información general sobre los archivos Redo Log dados de alta en nuestro sistema de base de datos.

• V$ARCHIVE: Ofrece información sobre los archivos de Redo Log archivados para cada una de las instancias activas para una base de datos.

Optimización y Mejora De Rendimientos Del Modo Archive Log Al ser un método de recuperación de estados consistentes de la base de datos, su monitorización va a consistir en vigilar el estado de los volcados a archivo de los Redo Log y el espacio requerido en disco para los mismos.

�� Espacio requerido en disco En bases de datos donde las operaciones de actualización de información van a ser muy abundantes (insert, update, delete) provocarán mayor numero de escrituras en los ficheros Redo Log que en bases de datos donde las operaciones predominantes sean las consultas. Cuanto mayor sea el número de escrituras sobre los archivos de Redo Log, mayor será el número de archivos de Archiver que se generarán, debido a que los archivos de redo log se llenan rápidamente por la gran cantidad de cambios que se producen en la información de la base de datos, generando muchas situaciones de estados de sobrescritura y, como consecuencia muchos Archiver en disco. Para este tipo de situaciones, habrá que tener especial cuidado con el espacio en disco, ya que una generación masiva de archivos de Archiver en poco tiempo puede llegar a llenar el espacio reservado para ellos. Los problemas de espacio en disco pueden sobrevenir por dos razones:

• Porque el espacio en disco del sistema es en si escaso para albergar un número determinado de archivos de Archiver.

• Porque el número de archivos de Archiver que se generan por unidad de tiempo es muy elevado, aun habiendo espacio suficiente inicialmente para albergarlos.

El problema suele solucionarse utilizando una política de copia periódica de los Archiver a cinta o a otro tipo de dispositivo secundario, para borrarlos del disco donde el problema del espacio empieza a ser preocupante. Cada Archiver es único, teniendo generalmente un número que le identifica unívocamente.

�� Generación masiva de ficheros de Archiver Cuando el número de Archiver almacenados por unidad de tiempo se dispara, podría ser conveniente tomar alguna acción al respecto. En estas situaciones, puede provocarse una contención en el proceso de archivado de Redo Log (ARCH) , y por tanto, en el proceso LGWR que tiene que esperar continuamente a que el proceso de archivado termine con el volcado de los Redo Log antes de poder sobrescribir sobre éstos. Estas situaciones de contenciones en Redo Log pueden detectarse en el archivo de alerta de la base de datos. Cuando se detecten situaciones de este tipo, en las que Oracle muestra el mensaje CHECKPOINT NOT COMPLETE, se debe aumentar el tamaño de los Redo Log. Con esto además de evitar contenciones en Redo Log disminuiremos el número de Archiver para los casos en los que la base de datos esté en modo Archive Log.

Page 26: Adm Bd Oracle

Conexiones Cliente/Servidor de Oracle En nuestra arquitectura cliente/servidor vamos a necesitar un software que se encargue de establecer las conexiones entre los procesos de usuarios (ejecutándose en cada puesto de trabajo) y los procesos del servidor. Tal software ofrecido por Oracle, según la versión con la que trabajemos, se llamara Net8 (de Oracle 8i), Net9 (de Oracle 9i), o SQL Net (de versiones anteriores a Oracle 8i). De ahora en mas hablaremos de Net8 de Oracle 8i. Los distintos clientes que conforman una red local establecerán conexiones a la base de datos a través de las diferentes herramientas proporcionadas por Oracle (SQL Plus, Developper, etc.) con el fin de efectuar las operaciones pertinentes sobre la información de la base de datos instalada en el servidor. Net8 va a actuar de mensajero entre los procesos de cliente y los procesos del servidor una vez que las conexiones han sido establecidas. Entorno Cliente/Servidor Un entorno cliente/servidor es aquel sistema basado en compartir aplicaciones y/o datos a través de una red de computadoras. Tendremos entonces: • Un servidor de datos compartido, en el cual estará ubicado el Sistema Gestor de Base de

Datos Oracle, además del software de servidor y la base de datos. Este servidor será generalmente una maquina de una cierta envergadura corriendo un sistema operativo (Unix, Win NT, OpenVMS, etc.) y se encargara de dar servicio a todos los usuarios conectados al sistema.

• Los puestos de trabajo de los usuarios, serán maquinas con cierta autonomía, estarán conectados a la red, y tendrán instalados el software cliente de Oracle.

• Una infraestructura de conexión, que servirá para establecer las comunicaciones tanto físicas como lógicas, entre los puestos de trabajo y el servidor. Esta infraestructura será una red de área local comunicándose con cierto protocolo (Ej. TCP/IP).

• Un software de comunicaciones, que se encargara de transportar información entre el servidor y los puestos de trabajo, y que deberá mantener activa la comunicación entre los mismos. Ejemplo de este software es el Net8 de Oracle, que tendrá una versión cliente instalada en cada uno de los puestos de trabajo y una versión servidor instalada en el servidor.

Procesos de escucha En el momento en que se arranca una base de datos, los datos en ella contenida, ya están disponibles para ser accedidos. Pero para que los usuarios en cada puesto de trabajo accedan a la base de datos necesito primero activar los procesos servidor. A través de Net8 se levantan unos procesos de escucha (listeners) que habrán de atender las peticiones que lleguen al servidor. Capas que componen Net8: Transparent Network Substrate (TNS) Esta es una capa de Net8 que recibe las peticiones del tipo que sean y las resuelve de la forma mas apropiada según las necesidades: abrir o cerrar una sesión, enviar y recibir peticiones y respuestas. Esta capa se encarga de pasar el control a los adaptadores de protocolo de Oracle8 para realizar las llamadas que estime convenientes. Adaptadores de protocolo Estos adaptadores se encargan de empaquetar las funciones de la capa TNS para poder ser transportadas por un protocolo determinado como puede ser el TCP/IP. Estos paquetes luego se pasan al Protocol Stack. Protocolo Stack Esta es la capa que se encarga de establecer físicamente la comunicación entre los clientes y el servidor, establece las conexiones a mas bajo nivel.

Page 27: Adm Bd Oracle

Funcionamiento básico de una conexión por Net8 Una conexión comienza con una petición de un usuario, a través de cualquiera de las aplicaciones de cliente, solicita una conexión a una base de datos. La petición se envía a través de Net8 Cliente, para que se transfiera a través de la red hacia el un puerto determinado del Servidor, donde estará escuchando el proceso listener del servidor. El listener detecta la solicitud de conexión, acepta la misma a través de un adaptador de protocolo determinado y a continuación devuelve al cliente un mensaje sobre su petición de conexión. Operaciones de conexión de Net8 Para que los procesos de manipulación de información de una base de datos en un entorno cliente /servidor puedan llevarse a cabo, Net8 tiene que realizar una serie de operaciones: Operaciones de conexión Estas operaciones son las que Net8 tiene que efectuar para establecer las conexiones y desconexiones entre el cliente y el servidor. Operaciones de transmisión de datos Net8 puede enviar y recibir datos de forma tanto sincrona como asincrona. En forma sincrona un cliente inicia una petición y espera que el servidor le envíe un mensaje con la respuesta. En forma asincrona las funciones de enviar y recibir peticiones por parte de Net8 permite dar servicio a las peticiones que lleguen desde varios procesos de usuario sin necesidad de esperar respuesta. Operaciones de excepción Son las operaciones que se efectúan para abortar, algún tipo de operación establecida contra la base de datos o algún estado anormal de la conexión, se puede abortar tanto en el cliente como en el servidor. Función del Proceso de listener del servidor Cuando un usuario lanza un comando de conexión similar al visto anteriormente, Net8 cliente realiza una llamada al servidor especificado por el string de conexión. La llamada será captada, en un puerto determinado, por el listener del servidor, que se encuentra en permanente escucha. El proceso de listener del servidor asociara un proceso servidor del servidor para que atienda las operaciones del proceso de usuario. Una vez enlazado el proceso de usuario al proceso servidor, se envía un paquete de control al proceso de usuario indicando el éxito de la conexión. Conexión desde un puesto cliente Cuando un usuario quiere establecer una conexión con un servidor determinado, Net8 entra en funcionamiento, pero para ello necesita saber: • Ubicación física del servidor. • Base de datos, dentro del servidor, a la que quiere acceder. • Protocolo que se va a utilizar para la conexión. Cada vez que el usuario desea conectarse a una base de datos, la información arriba detallada debe ser especificada, y esto seria incomodo de hacer. Por ello Net8 nos permite definir servicios de conexión. Estos servicios de conexión o string de conexión son conjuntos de sentencias que contiene la información que Net8 necesita para conectarme a una base de datos determinada. Estos string de conexión se ubicaran en uno de los archivos de configuración de Net8 del cliente. Ahora para conectarme a una base de datos determinada simplemente invoco el string de conexión, conjuntamente con el nombre y password de usuario. Esta conexión se puede hacer desde los wizards de Oracle o bien desde una consola de comandos con una sentencia similar a: “ Connect system/manager@orc8” donde indico el nombre de usuario system, el password manager y el nombre del string de conexión orc8. Configurando los servicios de conexión Una vez arrancada una base de datos en un servidor hay que establecer los servicios de conexión para poder atender las necesidades de los clientes conectados a la red. Para ello se deben arrancar y/o configurar procesos de conexión tanto en el servidor como en los clientes.

Page 28: Adm Bd Oracle

Arranque del proceso listener en el servidor Se utiliza Net8 para arrancar los procesos de listener instalados en el servidor. En el listener se van a determinar una serie de condiciones o pautas que deben seguir las aplicaciones de usuario cuando se quiera iniciar cualquier conexión desde ellas. Cuando se arranca el listener, se va a leer un archivo de configuración llamado LISTENER.ORA. Este archivo LISTENER.ORA estará compuesto por: • Un nombre identificatorio del listener (por defecto será LISTENER). • Una dirección de escucha, es decir, el protocolo a utilizar para establecer la conexión, el

nombre de la maquina donde esta ubicado el listener y por ultimo el puerto por donde habrá de escuchar las peticiones de usuarios.

• El o los nombres de las instancias Oracle a través de las cuales los usuarios podrán acceder a la información de cualquier base de datos.

• El nombre y ubicación de los ficheros de traza y de log, que el listener utiliza como almacenamientos históricos de las operaciones que realiza.

Ej. de un archivo de configuración LISTENER.ORA: LISTENER = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = DEMOHOST) (PORT = 1521) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = ORCP) ) ) Al arrancar este proceso listener con esta información, se interpreta que el listener estará escuchando el puerto 1521 de la maquina DEMOHOST, todas las peticiones que lleguen de los clientes, utilizando un protocolo TCP/IP. Además arranca la instancia ORCP, únicamente para ser accedida. Configurando las conexiones desde el cliente Así como se configuro el servidor para que este listo para atender solicitudes de conexión mediante los listeners, se debe configurar las estaciones de trabajo que deseen trabajar con las bases de datos administradas por Oracle. Existen herramientas, tales como Oracle Net Assistant, que habrán de facilitar la tarea de configuración de un cliente Oracle. Cuando Net8 se dispone a establecer una conexión con un proceso servidor a través de un servicio determinado, usara métodos con los que poder resolver dicha conexión. Algunos de estos métodos son de tipo local (TNSNAMES), de tipo centralizado (ONAMES), o bien de tipo host (HOSTNAME). Dependiendo del tipo de perfil, habrá que configurar la instalación del cliente en uno u otro sentido. Nota: el mas utilizado es el perfil local (TNSNAMES). Para verificar como están yendo las conexiones desde la parte cliente, se puede establecer una configuración de ficheros de log y de traza. Que son simples históricos de las transacciones realizadas desde el cliente. Nota: esta funcionalidad esta deshabilitada por defecto, por lo tanto deben ser activadas si se desea utilizarla. Servicios de conexión (TNSNAMES.ORA) El nombre de un servicio es aquel que engloba las características necesarias para que una conexión entre un cliente y un servidor puedan llevarse a cabo. Los nombres de estos servicios se van a definir dentro del archivo de configuración TNSNAMES.ORA, los cuales van a servir como string de conexión para los usuarios que deseen acceder a una base de datos determinada. Para definir un servicio necesitaremos saber: La maquina de destino de la conexión o una dirección IP que la identifique. En esta maquina esta ubicada la Base de Datos. El protocolo que se va a utilizar para establecer la conexión con el servidor.

Page 29: Adm Bd Oracle

La dirección o el puerto por donde esta escuchando el listener del servidor. El identificador de la instancia de la base de datos sobre la cual vamos a realizar las futuras operaciones. Ejemplo de un archivo TNSNAMES.ORA : Bd_desa.world = (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP) (HOST = maq_desa) (Port = 1521) )

) (CONNECT_DATA = (SID = DESA) )

) Existe un servicio de conexión llamado Bd_desa, el cual va a servir al usuario como string de conexión para comunicarse, a la base de datos DESA, ubicada en la maquina maq_desa, siempre y cuando envíe sus peticiones de conexión utilizando un protocolo de tipo TCP y que dichas peticiones sean enviadas al puerto 1521 de la maquina maq_desa, que es allí donde estará escuchando el listener encargado de resolver dichas solicitudes.

Page 30: Adm Bd Oracle

Administración de Bases de Datos Oracle 1) El archivo INIT.ORA ES : ��Un archivo encargado de mantener la consistencia del resto de los archivos de la base de

datos ��Un archivo donde se establecen todos los parámetros para que Oracle trabaje de una u

otra forma ��Un archivo donde se guarda el valor anterior de los datos modificados por una transacción. 2) Un DBA es responsable de : ��La creación de usuarios y de la asignación de privilegios. ��Controlar los accesos a la base de datos. ��La planificación de los backup 3) La sentencia COMMIT ��Valida y realiza los cambios hechos por una transacción. ��Vuelve atrás los cambios hechos por una transacción. 4) ¿Qué es un DBA? ��Usuario. Rol. Privilegio. 5) El modo archive log permite : ��Realizar backup online ��Recuperar estados pasados de la base de datos. ��Borrar tablas. ��Bajar la base de datos. 6) La exportación consiste en : ��Recuperar datos. ��Generar archivos de datos. ��Trasportar datos a un archivo binario. 7) ¿Qué se indica en el archivo TNSNAMES.ORA ? ��La configuración de la base de datos. ��Parámetros de exportación. ��Nombres de los DBA. ��Conexiones a las distintas bases de datos. 8) En el caso de NO indicar el tamaño en la creación de una tabla, ¿qué valores toma? ��Los definidos en el Tablespace. ��Los definidos en el Datafile. ��Los definidos en el Redo Log File. 9) Cual de los siguientes modos de Bajar la Base de Datos es el menos recomendado ��Shutdown Shutdown Abort Shutdown inmediate 10) En los siguientes Tablespaces cuales son los denominados de Sistema Rollback Tab_Usuarios Tab_Ventas Indices_Espacios Temporal A2000 System Indices_Ventas Grupo: Integrantes: