Está en la página 1de 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
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
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.
• 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.
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).
• 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 :


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.
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.


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.
• 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
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
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
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.
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.
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
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;
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.
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.
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
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


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))
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.
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.
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.
• 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.
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.
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.
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.
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.
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:

También podría gustarte