You are on page 1of 18

2011

Administracin Bsica de Oracle

Diego Sebastin Alves Prez IES Gonzalo Nazareno

ndice Tareas de un DBA Arquitectura interna de ORACLE Archivos Memoria Procesos Configuracin y optimizacin de una instancia Gestin de usuarios, privilegios y roles Gestin de perfiles de usuario Creacin y uso de ndices. Gestin del almacenamiento Gestin de enlaces de bases de datos Gestin de clusters Creacin y uso de secuencias 1. Tareas de un DBA Instalar y configurar inicialmente SGBD Supervisar diseo lgico de la BD Realizar diseo fsico de la BD (estructura de almacenamiento) Crear y mantener el esquema de la BD Crear y mantener cuentas de usuario Colaborar en la formacin de usuarios y programadores Detectar y resolver problemas de rendimiento de la BD usando herramientas de monitorizacin Realizar copias de seguridad, migraciones, importaciones y exportaciones, auditorias de seguridad, etc. Recuperar instancias daadas Instalar y configurar middleware de la BD Middleware: El middleware es un software de conectividad que ofrece un conjunto de servicios que hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogneas. 2. Arquitectura interna de ORACLE.2.1. Archivos Archivos de configuracin Contienen, entre otras cosas, la configuracin con la que arranca ORACLE. Archivos de control Archivos .CTL, se consultan mediante vistas dinmicas (v$) y solo son modificados por el servidor. Mantienen la integridad de la BD. Se utilizan para hacer un seguimiento de la base de datos y de su estructura fsica. Se mantienen tres copias y cada una debe ser almacenada en una unidad fsica diferente multiplexada.

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 2

El Archivo de Control contiene informacin como: Nombre de la BD Marca de la hora de creacin de la BD Nombres y ubicaciones de archivos de datos Los nombres y ubicaciones de los Redo Log El actual numero de secuencia de registro Informacin de Checkpoint Recientes copias de seguridad RMAN

Archivos de datos Almacenan las tablas, el diccionario de datos y el segmento de rollback. Hay algunos por defecto. Se pueden crear ms. Asociados a los tablespaces. Archivos de diario o de transacciones (logs) Se registran todos los cambios producidos en los datos. Se mantienen tres copias, las cuales es conveniente que se encuentren en distintas unidades multiplexadas. Notas: En un redo logs, se guarda cada insert, cada update, etc. Osea, todo lo que se va haciendo. Sirven para recuperar las bases de datos a partir de su ltima copia de seguridad (entre copia y copia). Directorios ctl, ora, dbf, log $HOME/oradata En algunos casos /Flash_recovery_area Archivos tnsnames.ora: Archivo de configuracin del cliente, base de datos a las que me puedo conectar desde esa mquina. 2. Arquitectura interna de ORACLE.2.2. Memoria. En ORACLE hay dos estructuras de memoria a considerar: SGA (System Global Area) y PGA (Process Global Area) PGA El PGA, es la zona de memoria de cada proceso de usuario de Oracle. No est compartida y contiene datos e informacin de control de un nico proceso. Contiene: rea de ordenacin SQL Informacin de la sesin Estado de la sentencia actual

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 3

SGA Usada por los procesos del servidor para comunicarse. El SGA es la zona de memoria en la que la BD Oracle guarda informacin sobre su estado. Esta estructura de memoria est disponible para todos los procesos, por eso se dice que est compartida. Es usada por los procesos del servidor para comunicarse entre s. Contiene: Shared Pool (cach de instrucciones y de D.D.): En esta zona se encuentran las sentencias SQL que han sido analizadas. Oracle mira a ver si encuentra otra sentencia exactamente igual en la zona de SQL compartido. Si es as, no la analiza y pasa directamente a ejecutar la que mantiene en memoria. Plan de ejecucin de la sentencia SQL. Texto de la sentencia. Lista de objetos referenciados. Los pasos de SQL son: Comprobar si Comprobar si Comprobar si procesamiento de cada peticin de anlisis de una sentencia la sentencia se encuentra en el rea compartida. los objetos referenciados son los mismos. el usuario tiene acceso a los objetos referenciados.

Si no, la sentencia es nueva, se analiza y los datos de anlisis se almacenan en la zona de SQL compartida. Tambin se almacena en la zona de SQL compartido el cach del diccionario. La informacin sobre los objetos de la BD se encuentra almacenada en las tablas del diccionario. Cuando esta informacin se necesita, se leen las tablas del diccionario y su informacin se guarda en el cach del diccionario de la SGA. Data Buffer Cache (cach de datos): Es el cach que almacena los bloques de datos ledos de los segmentos de datos de la BD, tales como tablas, ndices y clster. Los bloques modificados se llamas bloques sucios. El tamao de buffer cach se fija por el parmetro DB_BLOCK_BUFFERS del fichero init.ora. Redo Log Buffer: Los registros Redo describen los cambios realizados en la BD y son escritos en los ficheros redo log para que puedan ser utilizados en las operaciones de recuperacin hacia adelante, roll-forward, durante las recuperaciones de la BD. Pero antes de ser escritos en los ficheros redo log son escritos en un cach de la SGA llamado redo log buffer. El servidor escribe peridicamente los registros redo log en los ficheros redo log. Java Pool Large Pool (opcional, para copias de seguridad y recuperaciones). El tamao de cada rea se puede modificar, para mejorar el rendimiento de nuestra BD. Diego Sebastin Alves Prez- http://solucionesia.blogspot.com Pgina 4

2. Arquitectura interna de ORACLE2.3. Procesos: DBWR (Database Writer): Gestiona buffer de datos. Trae cosas de la base de datos. LGWR (Log Writer): Gestiona buffer de redo. CKPT (Checkpoint): Sincroniza buffer y archivos de datos. SMON (System Monitor): Acta en la recuperacin de instancias y compacta archivos de datos. PMON (Process Monitor): Limpia recursos de procesos fallidos. ARCH (Archiver): Archiva los ficheros de redo cuando se llenan. Opcional. RECO (Recoverer): Slo para BD distribuidas. 2. Arquitectura interna de ORACLE Funcionamiento SELECT.

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 5

Notas: Zonas limpias: Los datos de memoria coinciden con los de los discos (SGA). Zonas sucias: Los datos an no se han sincronizado. 1- El proceso de usuario pasa la peticin al servidor (request queue), la sentencia se mete en una cola de peticiones. Se reserva PGA. 2- Se busca en la cach de instrucciones del Shared Pool una versin ejecutable de la sentencia (plan de ejecucin), o sea que se busca si esta compilada carcter a carcter. Para poder aprovechar la cach de instrucciones debemos seguir el estndar propuesto por la gente de Oracle (palabras clave en mayscula). Si est, esta no se compila, y se pasa al paso 4. 3- Si no est, se compila siguiendo estos pasos: a)- Comprobar sintaxis de la instruccin. b)- Comprobar existencia de tablas y columnas mirando la cach del DD existente en el Shared Pool, si no est, las busca en el propio DD, cargndolo despus en dicha cach a travs del DBWR. c)- Se bloquea la definicin de los objetos involucrados para evitar cambios mientras se sirve la instruccin. d)- Comprobar privilegios del usuario para acceso a los datos. e)- Realiza el plan de ejecucin y lo guarda en el Shared Pool, junto con el texto de la instruccin. 4- Busca los datos requeridos en la cach de datos (data base buffer). Si no estn, el proceso DBWR los leer de disco y los cargar en la cach mencionada. 5- Se envan los datos al proceso de usuario. (response queue). En el caso de la SELECT todo es muy sencillo porque no se puede hacer ROLLBACK ni es necesario realizar un REDO en ningn caso. *Nota* Es posible establecer recursos, etc.). prioridades (velocidad de ejecucin, optimizar

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 6

2. Arquitectura interna de ORACLE. Funcionamiento UPDATE. 1- Se realizan los tres primeros pasos de la SELECT: pasa la peticin al servidor, se compila si es necesario y se cargan los datos originales en el data base buffer si no estaban all. 2- Se bloquean las filas afectadas (las que se han metido en el data buffer). 3- Se guardan los valores antiguos en el segmento de ROLLBACK (disco) por si hay que deshacer. 4- Se aade la instruccin al Redo Log Buffer por si hay que volver a realizar la operacin tras restaurar un backup. 5- Se escriben los valores nuevos de los datos en el data base buffer. 6- Cuando se haga un Commit, se pasan los valores que se han modificado del buffer de datos a disco (ficheros). Se borra del segmento de ROLLBACK la informacin relacionada. 3. Configuracin spfile.ora. y optimizacin de una instancia.init.ora

Instancia: Base de datos en ejecucin. init.ora: Fichero de texto con los parmetros de configuracin del arranque de ORACLE. Puede modificarse desde la consola web, editando el fichero o con una orden: ALTER SYSTEM SET param = valor. spfile.ora: Desde la versin 9, no puede editarse directamente. Algunos parmetros se pueden modificar en caliente, pero otros requieren un re arranque de la BD. Los principales parmetros que se tocan normalmente son: DB_CACHE_SIZE, SHARED_POOL_SIZE, PGA_AGGREGATE_TARGET, DB_BLOCK_SIZE, DB_NAME, OPEN_CURSORS, PROCESSES, CONTROL_FILES, etc... Notas: Para cambiar los parmetros del spfile.ora se utiliza el ALTERSYSTEM porque el spfile est en binario. 3. Configuracin y optimizacin de una instancia. Vistas dinmicas de rendimiento. Para ver el valor actual de un parmetro de inicializacin de arranque se puede usar el comando SHOW PARAMETER Las vistas dinmicas se van actualizando en tiempo real y dan informacin sobre el uso de disco y de memoria. Algunas son: V$SGA: Informacin sobre la SGA. V$OPTION: Opciones con que se instal ORACLE. V$SESSION: Informacin de la sesin actual. Diego Sebastin Alves Prez- http://solucionesia.blogspot.com Pgina 7

V$PROCESS: Informacin de los procesos activos. V$INSTANCE: Estado general de la instancia. Notas: Las vistas dinmicas forman parte del diccionario de Datos. Se actualizan peridicamente de forma dinmica (la informacin que se muestra es de un Instante). 4. Usuarios, privilegios y roles. Creacin de usuarios. La sintaxis completa para crear usuarios es: CREATE USER fulanito IDENTIFIED BY contrasea [DEFAULT TABLESPACE nombre_ts] [TEMPORARY TABLESPACE nombre_ts_temp] [QUOTA {num {K | M} | UNLIMITED } ON nombre_ts] [PROFILE perfil]; Para modificar: ALTER USER fulanito ... Para borrar: DROP USER fulanito [CASCADE]; Notas: Al crear un usuario: Si le doy el rol RESOURCE o DBA -UNLIMITED TABLESPACE(aunque ponga cuotas no las respeta) Si no, cuota 0 por defecto en todos los TABLESPACES. Las tablas se agrupan en espacios de tablas. Un espacio de tablas se corresponde con n ficheros de datos. Cuando un usuario crea una tabla, esta se crea en un tablespace determinado. Un fichero no puede pertenecer a varios tablespace pero un tablespace puede tener varios ficheros. Un tablespace puede estar repartido en varios discos duros. Table space system---->system01.DBF Table space system System01.dbf y user01.dbf se encuentran en el ORADATA Quota: un usuario puede utilizar un espacio determinado de un disco o carpeta. Un perfil (conjunto de lmites), es un conjunto de lmites sobre el uso de recursos del servidor. Al crear un usuario, por defecto no tiene lmites.

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 8

4. Usuarios, privilegios y roles. Privilegios sobre objetos. Hay dos tipos de privilegios: del sistema y sobre objetos. Cuando a un usuario se le da un privilegio sobre un objeto, se le permite hacer algo con ese objeto. El permiso puede concederse con la posibilidad de que el receptor lo d a otros usuarios. La sintaxis es: GRANT privilegio ON propietario.objeto TO [usuario | rol | PUBLIC] [WITH GRANT OPTION]; Los privilegios son: SELECT, INSERT, UPDATE, DELETE, ALTER, EXECUTE, INDEX, REFERENCES y ALL. No todos los privilegios se aplican a todos las clases de objetos. Notas: Privilegios del sistema: Me permite hacer un tipo de operacin determinada. Privilegios sobre objetos: Se asignan a un objeto en Concreto. Una operacin concreta sobre un objeto concreto. GRANT OPTION: Dar el privilegio de dar privilegios a otras personas. 4. Usuarios, privilegios y roles. Privilegios de sistema. Los privilegios del sistema permiten realizar una determinada operacin o ejecutar un comando concreto. Hay casi 100. Algunos son: CREATE, ALTER y DROP de cada tipo de objeto. CREATE ANY, ALTER ANY y DROP ANY para cada tipo de objeto. SELECT, INSERT, UPDATE o DELETE ANY TABLE. La sintaxis es: GRANT privilegio TO [usuario | rol | PUBLIC] [WITH ADMIN OPTION]; Para quitar privilegios: REVOKE privilegio FROM [usuario | rol];

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 9

4. Usuarios, privilegios y roles. Roles. Son conjuntos de privilegios. Se pueden crear desde cero, pero hay algunos predefinidos. Los ms importantes son: CONNECT, RESOURCE y DBA Connect: Para poder conectarse a la base de datos (iniciar sesin). Resource: Todos los permisos necesarios para tener recursos para la creacin DBA: Todos los derechos para ver y manejar todos los datos de la BD Rol CONNEC T RESOUR CE DBA Privilegios
alter session, create session, create cluster, create table, create view, create synonym, create sequence, create database link create cluster, create table, create procedure, create sequence, create trigger todos los privilegios de sistema con la opcin with admin option

Hay otros roles predefinidos para la realizacin de copias de seguridad, importaciones y exportaciones, etc. Para crear un rol: CREATE ROLE nombre; Para aadir privilegios: GRANT priv [ON obj] TO nombrerol; Para quitar privilegios: REVOKE priv FROM nombrerol; Para drselo a un usuario; GRANT nombrerol TO usuario; Para quitrselo a un usuario: REVOKE nombrerol FROM usuario; Para borrarlo: DROP ROLE nombrerol; Para aadir un rol a otro: GRANT nombrerol TO nombrerol; Notas: 4. Usuarios, privilegios y roles. Vistas del diccionario de datos. Las vistas ms importantes para un DBA con informacin de usuarios, privilegios y roles son: DBA_USERS: Todos los usuarios de la BD. DBA_TS_QUOTAS: Cuotas de tablespace de los usuarios. DBA_SYS_PRIVS: Privilegios de sistema concedidos a usuarios o roles. DBA_TAB_PRIVS: Privilegios sobre objetos concedidos a usuarios o roles. DBA_ROLES: Todos los roles de la BD DBA_ROLE_PRIVS: Roles concedidos a usuarios. ROLE_ROLE_PRIVS: Roles concedidos a otros roles. Todas las vistas del diccionario de datos en ss64.com/orad 5. Perfiles de usuario. Un perfil es un conjunto de lmites de uso de los recursos del sistema y/o un conjunto de caractersticas que debe cumplir una contrasea. El perfil por defecto no establece ningn lmite al uso de los recursos. Diego Sebastin Alves Prez- http://solucionesia.blogspot.com Pgina 10

Para habilitar los perfiles hay que usar el comando: ALTER SYSTEM SET RESOURCE_LIMIT=TRUE La sintaxis para crear un perfil es la siguiente: CREATE PROFILE nombreperfil LIMIT {parametrorecurso | parametrocontrasea} [valor [K|M] | UNLIMITED] {parametrorecurso | parametrocontrasea} [valor [K|M] | UNLIMITED] ; Notas: Modificar los perfiles La variable RESOURCE_LIMIT se encuentra en el init.ora [K|M]: Kilo o Mega 5. Perfiles de usuario. Lmites de recursos. Los parmetros que impiden un uso abusivo (voluntario o no) de los recursos son: SESSIONS_PER_USER: Mximo nmero de sesiones concurrentes. CONNECT_TIME: Duracin mxima de una sesin. IDLE_TIME: Mximo tiempo de inactividad del usuario. CPU_PER_SESSION: Tiempo mximo de uso de la CPU por sesin. En centsimas de segundo. CPU_PER_CALL: Tiempo mximo de uso de la CPU por llamada. En centsimas de segundo. LOGICAL_READS_PER_SESSION: Mximo n de bloques de datos ledos en una sesin. LOGICAL_READS_PER_CALL: Tiempo mximo de uso de la CPU por sesin. En centsimas de segundo. PRIVATE_SGA: Cantidad de SGA para la sesin (para opcin de procesos de servidor compartidos). COMPOSITE_LIMIT: Nmero adimensional basado en los lmites anteriores. Notas: Ejemplos: Antes de realizar nada, debemos hacer: ALTER SYSTEM SET RESOURCE_LIMIT=TRUE CREAT PROFILE prueba LIMIT SESSIONS_PER_USER 3; ALTER USER raul PROFILE prueba;

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 11

5. Perfiles de usuario. Contraseas. Los parmetros referidos a la contrasea que se pueden aadir en un perfil para regular la seguridad de la misma son: FAILED_LOGIN_ATTEMPTS: Nmero mximo de intentos fallidos antes de bloquear la cuenta. PASSWORD_LIFE_TIME: Nmero de das de vida de la contrasea. PASSWORD_REUSE_TIME: Nmero de das que deben transcurrir para reutilizar una contrasea. PASSWORD_REUSE_MAX: Nmero de veces que se debe cambiar una contrasea antes de reutilizarla. PASSWORD_LOCK_TIME: Nmero de das que queda bloqueada la cuenta. PASSWORD_GRACE_TIME: Periodo de gracia de contraseas caducadas. PASSWORD_VERIFY_FUNCTION: Funcin PL/SQL que dar el visto bueno a la complejidad de la contrasea. 5. Perfiles de usuario. Operaciones y vistas del diccionario de datos. Para asignar un perfil a un usuario: ALTER USER fulanito PROFILE nombreperfil; Para modificar un perfil ALTER PROFILE nombreperfil {parametrorecurso | parametrocontrasea} [valor [K|M] | UNLIMITED]; Para borrar un perfil: DROP PROFILE nombreperfil; Vistas del diccionario de datos: DBA_PROFILES: Muestra los perfiles existentes con sus lmites. DBA_USERS: Muestra los perfiles de los usuarios. 6. Creacin de ndices. Definicin y sintaxis. Los ndices se crean para disminuir el tiempo de respuesta a una consulta. Pueden afectar brutalmente al rendimiento, para bien o para mal. Se definen sobre una columna o conjunto de columnas de una tabla concreta y, gracias a ellos, la bsqueda pasa de ser secuencial a dicotmica o binaria. O(n) O(lg2n). Los SGBD suelen crear automticamente un ndice para las columnas que forman la clave primaria o si hay restriccin de unicidad. La sintaxis ms simple para crear un ndice es la siguiente: CREATE INDEX nombreindice ON nombretabla(listacolumnas)[ASC|DESC] [TABLESPACE nombre_ts];

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 12

6. Creacin de ndices. Estudio de oportunidad. Los ndices deben crearse durante periodos de poco trabajo de la BD (es una operacin que consume mucho). Es recomendable que el ndice no est en el mismo disco que la tabla. Crear un ndice es muy sencillo, lo difcil es saber cundo hacerlo. SI es recomendable crearlo si: El nmero de inserciones, modificaciones y borrados es despreciable frente al nmero de consultas por esa columna. La tabla es muy grande. Hay muchas consultas por una columna que no es clave primaria. NO es recomendable crearlo si: Hay muchos valores repetidos o nulos en la columna. La tabla es muy pequea. La tabla tiene muchas inserciones, modificaciones y borrados en proporcin al nmero de consultas por esa columna. 6. Creacin de ndices. Vistas del diccionario de datos. Las vistas del diccionario de datos con informacin sobre los ndices son las siguientes: DBA_INDEXES DBA_IND_COLUMNS Para borrar un ndice: DROP INDEX nombreindice ON nombretabla(listacolumnas); Hay varios tipos de ndices, con distintos comportamientos. Su estudio sobrepasa los objetivos de este curso. 7. Gestin del almacenamiento. Clasulas de almacenamiento al crear tablas. La sintaxis de creacin de tablas es algo ms compleja de lo visto hasta ahora: CREATE TABLE nombretabla ( columnas y restricciones) STORAGE ( clausulas de almacenamiento) TABLESPACE nombre_ts; Las clausulas de almacenamiento son: INITIAL (tamao extensin inicial) (en K o M) NEXT (tamao 2 extensin) PCTINCREASE (porcentaje de incremento para la 3 y siguientes), MINEXTENTS (extensiones reservadas en principio) MAXEXTENTS (nmero total de extensiones como mximo).

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 13

7. Gestin del almacenamiento. Definicin Tablespace. Tablespaces predefinidos. Un tablespace o espacio de tablas es una unidad lgica de almacenamiento de datos (una especie de carpeta que contiene tablas, ndices, etc.) que se corresponde con uno o varios ficheros del sistema operativo (datafiles). Los ficheros reciben un tamao fijo en el momento de su creacin, y cuando se necesita ms espacio se deben aadir ms ficheros a espacio de tablas. No deben mezclarse datos de distinta naturaleza en el mismo tablespace. Al instalar ORACLE se crean varios tablespaces: SYSTEM: Se guarda el diccionario de datos y otros objetos del sistema. NO usar para guardar otras cosas. SYSAUX: Componentes opcionales de ORACLE USERS: Objetos de los usuarios. TEMP: Para guardar objetos temporales (sorts, productos cartesianos, etc.) UNDOTBS01: Segmento de ROLLBACK. 7. Gestin del almacenamiento Creacin de Tablespaces. Se recomienda crear un tablespace por cada departamento de la empresa. Si se desea liberar de carga el tablespace TEMP o UNDOTBS01 se pueden crear otros tablespaces temporales o de deshacer y repartir a los usuarios entre ellos. Una sintaxis sencilla para crear un tablespace es la siguiente: CREATE [TEMPORARY|UNDO] TABLESPACE nombrets [DATAFILE|TEMPFILE] ruta_absoluta_fichero [SIZE n [K|M]][REUSE][AUTOEXTEND ON [MAXSIZE n M]] (podemos aadir ms ficheros separando con comas)... [LOGGING|NOLOGGING] [PERMANENT|TEMPORARY] [DEFAULT STORAGE (clausulas de almacenamiento)] [OFFLINE]; Notas: Al crear un tablespace los datafiles se crean automticamente. Debemos especificar el nombre y la ruta completa. Ejemplo: CREATE TABLESPACE jefatura DATAFILE D:\app\diego\oradata\orcl\jefe1.DBF SIZE 30M, D:\app\diego\oradata\orcl\jefe2.DBF SIZE 30M; Reuse: reutiliza un fichero ya existente Autoextend on: aumenta el tamao del tablespace automticamente. La opcin OFFLINE nos permite crear una tabla Descativada. Para volver a activarla hacemos un create y ponemos la opcin ONLINE.

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 14

7. Gestin del almacenamiento. Operaciones con Tablespaces. Para ponerlo OFFLINE (til para restaurar o realizar ciertas operaciones): ALTER TABLESPACE nombrets OFFLINE; Para aadirle otro datafile: ALTER TABLESPACE nombrets ADD DATAFILE Para cambiar la ruta de un fichero: ALTER TABLESPACE nombrets RENAME DATAFILE nombre1 TO nombre2 Para borrarlo: DROP TABLESPACE nombrets [INCLUDING CONTENTS][AND DATAFILES]; 7. Gestin del almacenamiento. Vistas relacionadas con tablespaces. Las vistas ms tiles para gestionar el espacio de almacenamiento son: DBA_TABLESPACES: Descripcin de todos los tablespaces. DBA_TS_QUOTAS: Cuotas de usuario en cada tablespace DBA_DATA_FILES: Informacin de los ficheros de datos. DBA_FREE_SPACE: Extensiones disponibles en cada tablespace. DBA_EXTENTS: Extensiones de cada segmento. DBA_ROLLBACK_SEGS: Segmentos de rollback DBA_SEGMENTS: Segmentos de cada tablespace. DBA_TEMP_FILES: Ficheros para los tablespaces temporales. 8. Gestin de enlaces de bases de datos. Es muy fcil acceder desde un cliente a dos bases de datos distintas, basta con editar el fichero tnsnames.ora y aadir las entradas necesarias. En ocasiones, nos interesar acceder a una BD SIN SALIR de otra. Es decir, conectar las dos bases de datos para poder transferir informacin entre ellas o hacer consultas que incluyan informacin de ambas, etc. Para ello es necesario crear un enlace de bases de datos en la BD1 que acceda a la BD2 (donde debe existir un usuario con los permisos oportunos). La sintaxis para hacer esto es la siguiente: CREATE DATABASE LINK nombreenlace CONNECT TO nombreusuarioBD2 IDENTIFIED BY passwordusuarioBD2 USING 'nombreTNSBD2'; nombreTNSBD2 debe aparecer en mi tnsnames.ora, especificando IP o hostname, puerto y protocolo. Para acceder a una tabla de BD2 hay que usar la sintaxis: - nombreusuario.nombretabla@nombreenlace Vista del diccionario de datos: DBA_DB_LINKS Diego Sebastin Alves Prez- http://solucionesia.blogspot.com Pgina 15

9. Gestin de clusters. Un clster de tablas es un objeto de la base de datos que almacena en una misma rea del disco varias tablas que contienen una o varias columnas en comn. Se usa mucho en caso de que un join se repita con mucha frecuencia porque aumenta su velocidad. Para que un clster funcione debe tener un ndice asociado. Para crear un clster: CREATE CLUSTER nombrecluster (columna tipo) [TABLESPACE nombrets] [STORAGE (clausulas de almacenamiento)]; CREATE INDEX nombreidx ON CLUSTER nombrecluster; Para que una tabla se cree dentro de un clster: CREATE TABLE nombretabla ( lista columnas y restricciones) CLUSTER nombrecluster (columnadelcluster); 10. Creacin de Secuencias. En ORACLE no existen los campos autonumricos como tales, no obstante, puede crearse un objeto tipo secuencia que va generando nmeros a medida que se necesiten. La sintaxis es la siguiente: CREATE SEQUENCE nombresec [INCREMENT BY numero] [START WITH numero] [MAXVALUE numero] [MINVALUE numero] [CYCLE | NOCYCLE] [ORDER | NOORDER]; 10. Uso de secuencias. Las secuencias tienen dos mtodos: CURVAL y NEXTVAL que nos permiten utilizarlas. Veamos un ejemplo de su uso: CREATE SEQUENCE secuencia1; INSERT INTO CLIENTES (codcliente, nombre) VALUES (secuencia1.NEXTVAL, 'PEPE'); INSERT INTO CLIENTES (codcliente, nombre) VALUES (secuencia1.NEXTVAL, 'JUAN'); codcliente debe ser tipo NUMBER. Vista del diccionario de datos: DBA_SEQUENCES

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 16

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 17

Referencias http://www.oracle.com/es/ http://www.infor.uva.es/ http://informatica.gonzalonazareno.org http://es.wikipedia.org http://carloscruza.blogspot.com

Diego Sebastin Alves Prez- http://solucionesia.blogspot.com

Pgina 18

You might also like