1

Administración de Bases de Datos

Autor: Gerardo Romanutti Fecha de Actualización: 19/01/04

Administración de Bases de Datos

2

Capítulo Nº 1........................................................................................................................................................................................................9

COMPONENTES DE LA ARQUITECTURA DE ORACLE .................................................. 9 Objetivos .....................................................................................................................................................................9 Conexión a una Base de Datos ....................................................................................................................................9 Sesiones .....................................................................................................................................................................10 Instance Oracle ..........................................................................................................................................................10 Area Global del Sistema (SGA).................................................................................................................................11 Procesos Background ................................................................................................................................................11 Base De Datos ...........................................................................................................................................................12 Ficheros de la Base de Datos .....................................................................................................................................12 Proceso de Consulta...................................................................................................................................................13 Shared Pool................................................................................................................................................................13 Library Cache ............................................................................................................................................................13 Dictionary Cache .......................................................................................................................................................13 Zona Buffer de Datos ................................................................................................................................................13 Area Global del Programa (PGA).............................................................................................................................14 Ejecución de una Sentencia DML .............................................................................................................................14 Segmento de Roolback ..............................................................................................................................................14 Buffer Redo Log........................................................................................................................................................15 (LGWR) Escritor de Anotación.................................................................................................................................15 (DBWR) Escritor de la Base de Datos.......................................................................................................................15 Proceso de Validación ...............................................................................................................................................15
Capítulo Nº 2......................................................................................................................................................................................................17

USO DE HERRAMIENTAS DE ADMINISTRACIÓN ..................................................... 17 Herramientas De Administración De La Base De Datos. Ejemplos ..........................................................................17 Server Manager. Uso .................................................................................................................................................17 Uso del Server Manager en el modo línea .................................................................................................................17 Comandos del Server Manager..................................................................................................................................17 SQL*NET..................................................................................................................................................................18 Proceso Listener ........................................................................................................................................................18 Ficheros De Configuracion (Cliente-Servidor)..........................................................................................................19 Bases De Datos Que Usan El Listener.......................................................................................................................20 LSNRCTL .................................................................................................................................................................20 Arrancar Y Parar La Instance ....................................................................................................................................21
Capítulo Nº 3......................................................................................................................................................................................................22

MANEJO DE UNA INSTANCE ORACLE ..................................................................... 22 Métodos de autentificación........................................................................................................................................22 Parámetros de inicialización dinámicos.....................................................................................................................23 Habilitación e inhabilitación de una sesión restringida..............................................................................................23 Finalización de sesiones “V$SESSION”..................................................................................................................23 Creación De Un Fichero De Parametros....................................................................................................................24 Parámetros que deberían ser especificados................................................................................................................25 Parámetros Comúnmente Modificados......................................................................................................................25 Etapas Para El Arranque Y La Parada .......................................................................................................................25 Inicio. Comando Startup...........................................................................................................................................26 Cierre. Opciones De Parada.......................................................................................................................................27 Ejemplo ARRANQUE y PARADA DE UNA BBDD ..............................................................................................28 Obtener Y Definir Valores De Parametros ................................................................................................................29 Acceso A Las Vistas Dinámicas De Rendimiento.....................................................................................................30 Visualización De Los Valores Actuales De Los Parametros .....................................................................................31 Visualización De Los Valores De La Instance ..........................................................................................................31 Parámetros para los Ficheros de Traza ......................................................................................................................31 Parámetros de Inicialización Dinámica .....................................................................................................................31
Capítulo Nº 4......................................................................................................................................................................................................32

Administración de Bases de Datos

3 CREACIÓN DE UNA BASE DE DATOS ...................................................................... 32 Preparación Del Sistema Operativo Y Requisitos Previos Para La Creación ............................................................32 Planificación De La Localización De Los Ficheros De La Base De Datos ...............................................................32 Estrucura Del Software Del Directorio Oracle ..........................................................................................................33 Consideraciones Para La Creación De Una Base De Datos.......................................................................................33 Crear Una Base De Datos Manualmente ...................................................................................................................33 Entorno Del Sistema Operativo .................................................................................................................................33 Preparación Del Fichero De Parámetros....................................................................................................................34 Arranque Del Instance ...............................................................................................................................................35 Creación De La Base De Datos .................................................................................................................................35 Despues De La Creación De La Base De Datos ........................................................................................................37 Ejemplo de Scripts para Creación de una Base de Datos...........................................................................................37
Capítulo Nº 5......................................................................................................................................................................................................40

CREACIÓN DE LAS VISTAS DEL DICCIONARIO DE DATOS ...................................... 40 Estructura Del Diccionario De Datos – Uso Del Diccionario De Datos. ...................................................................40 Tablas Base Y Vistas Del Diccionario De Datos.......................................................................................................40 Vistas Del Diccionario De Datos...............................................................................................................................40 Construccion Del Diccionario De Datos....................................................................................................................42 El fichero de comandos catalog.sql...........................................................................................................................42 El fichero de commandos catproc.sql........................................................................................................................42
Capítulo Nº 6......................................................................................................................................................................................................43

MANTENIMIENTO DE FICHEROS DE CONTROL ....................................................... 43 Uso Del Fichero De Control ......................................................................................................................................43 Contenido Del Fichero De Control............................................................................................................................43 Parámetros Que Afectan Al Fichero De Control .......................................................................................................43 Obtencion De Informacion Relativa Al Fichero De Control .....................................................................................44 Multiplexacion Del Fichero De Control ....................................................................................................................44
Capítulo Nº 7......................................................................................................................................................................................................45

MANEJO DE TABLESPACES Y FICHEROS DE DATOS ................................................ 45 Estructura Lógica De La Base De Datos ...................................................................................................................45 Relaciones entre la BD, Tablespaces y Ficheros de Datos ........................................................................................45 Relaciones entre Segmentos, Extensiones y Bloques de Datos .................................................................................46 Creación De Tablespaces...........................................................................................................................................46 Parámetros De Almacenamiento ...............................................................................................................................48 Tablespaces Temporales............................................................................................................................................48 Cambio Del Tamaño De Los Tablespaces.................................................................................................................49 Cambio Del Tamaño De Los Ficheros De Datos.......................................................................................................50 Cambio Del Tamaño Manualmente De Los Ficheros De Datos ................................................................................51 Cambio De La Selección De Almacenamiento..........................................................................................................51 Poner Los Tablespaces Offline U Online ..................................................................................................................52 Movimientos De Los Ficheros De Datos...................................................................................................................53 Tablespaces De Solo-Lectura ....................................................................................................................................54 Borrado De Tablespaces ............................................................................................................................................54 Información Del Diccionario De Datos .....................................................................................................................55 Consideraciones Para La Creación De Tablespaces ..................................................................................................57 Movimiento De Objetos Entre TABLESPACES.......................................................................................................57
Capítulo Nº 8......................................................................................................................................................................................................60

ESTRUCUTURA DE ALMACENAMIENTO Y RELACIONES ........................................... 60 Tipos De Segmentos..................................................................................................................................................60 Control Del Uso De Extensiones Por Los Segmentos ...............................................................................................62 Parámetros De Utilización Del Espacio Del Bloque..................................................................................................62 Parametros Que Contronan La Concurrencia ............................................................................................................63 Parámetros Que Controlan El Uso Del Espacio De Datos.........................................................................................63 Unión de espacio libre ...............................................................................................................................................64 Unión baja demanda ..................................................................................................................................................65 Administración de Bases de Datos

4 Bloque De La Base De Datos ....................................................................................................................................65 Obtención De Información De Estructuras De Almacenaje ......................................................................................66 Consulta De Información De Segmentos...................................................................................................................66 Obtencion De La Informacion De Extensiones Utilizadas .......................................................................................66 Control De La Información De Extensiones Libres...................................................................................................67 Planeamiento De La Localización De Los Segmentos ..............................................................................................67 Tipos de Objetos y Fragmentación ............................................................................................................................67
Capítulo Nº 9......................................................................................................................................................................................................68

MANEJO DE TABLAS .............................................................................................. 68 Almacenamiento De Datos Del Usuario....................................................................................................................68 Estructura De Una Fila ..............................................................................................................................................68 Tipos De Datos Oracle ..............................................................................................................................................68 Tipos De Datos Para El Almacenamiento De Objetos Grandes ................................................................................69 Comparación Lob y Long..........................................................................................................................................69 Tipo De Dato Rowid..................................................................................................................................................70 Localización de una Fila Usando ROWID ................................................................................................................70 Colecciones................................................................................................................................................................71 Varrays ......................................................................................................................................................................71 Tablas Anidadas ........................................................................................................................................................71 Creación De Una Tabla .............................................................................................................................................72 Directriz Para La Creación De Tablas .......................................................................................................................73 Definición De Pctfree Y Pctused ...............................................................................................................................73 Migracion De Filas ....................................................................................................................................................74 Encadenamientos De Filas.........................................................................................................................................74 Copiado De Una Tabla Existente...............................................................................................................................75 Control De Espacio Utilizado Por Las Tablas ...........................................................................................................75 Asignación Manual De Extensiones ..........................................................................................................................76 Truncar Una Tabla.....................................................................................................................................................76 Borrado De Tablas.....................................................................................................................................................77 Validación De La Estructura De La Tabla.................................................................................................................77 Análisis De Todos Un Esquema ................................................................................................................................78 Detención De La Migración De Filas ........................................................................................................................78 High Water Mark.......................................................................................................................................................79 Designacion Del Espacio No Utilizado .....................................................................................................................80 Funciones Para Calcular El Tamaño De Una Tabla...................................................................................................80 Particionamiento De Tablas.......................................................................................................................................81
Capítulo Nº 10 ...................................................................................................................................................................................................84

GESTION DE USUARIOS ........................................................................................ 84 Vista General .............................................................................................................................................................84 Esquema De La Base De Datos .................................................................................................................................85 Creacion De Usuarios En La BD...............................................................................................................................85 A) Creacion De Un Nuevo Usuario: Autentificación Del Servidor ...........................................................................85 B) Creacion De Un Nuevo Usuario: Autentificación Del Sistema Operativo ..........................................................86 Nombre de Usuario para la Autentificación del Sistema Operativo ..........................................................................86 Creacion De Un Nuevo Usuario Directrices..............................................................................................................87 Alteracion Y Eliminacion De Usuarios De Base De Datos .......................................................................................87 OEM ..........................................................................................................................................................................87 Cambio De Cuota Del Usuario En Tablespace..........................................................................................................88 OEM ..........................................................................................................................................................................88 Borrado De Usuarios .................................................................................................................................................88 Monotorizacion De Información Respecto De Usuarios ...........................................................................................89
Capítulo Nº 11 ...................................................................................................................................................................................................90

GESTION DE PRIVILEGIOS .................................................................................... 90 Dos Tipos De Privilegios...........................................................................................................................................90 Privilegios Del Sistema .............................................................................................................................................90 Concesión De Privilegios Del Sistema ......................................................................................................................91 Administración de Bases de Datos

.......................................................................................................................................................................................................................................................................................................107 Creación de un Perfil: ..........................................................................................................................................................................................................................................122 Administración de Bases de Datos ................................................................105 Capítulo Nº 13 ................................................................110 Visualización De La Información De Claves .............122 Archivo De Los Ficheros Redo Log ............................................................................................................................................................122 Modo NOARCHIVELOG ........................................................................................................................................................................................................................................................................................................................................................104 Visualización De Información Del Rol.........................................................................................................................................................................................................................................................................................108 Gestión De Claves ................................................................................118 Detención de Sesiones Bloqueantes ..115 Cambio De Definiciones De Almacenamiento Del Segmento Rollback .........................................................................................................................................................................120 Grupo de Redo Log Activos .......................................................114 Planificación De Segmentos Rollback............................116 Borrado de Segmentos Rollback.....................................................................................................................................................................................................................100 Asignación De Roles ..................... 120 Uso De Los Ficheros Redo Log.......................................................................121 Miembros de los Redo Log Activos .......................117 Sesión Bloqueante ......................................................................................................................................................................................................................107 PERFILES.................96 Capítulo Nº 12 ..........................................117 Obteniendo Configuración..............................................................................................................................................................99 Uso De Roles Predefinidos...............................................................................................................................................................................................114 Creación De Segmentos Rollback ........96 Revocacion De Privilegios De Objeto .......................................................................................................................................................................................................................................................................................................................115 Poner Segmentos Rollback Operativos..............................................................................................................116 Como Poner Un Segmento Rollback OFFLINE........................................................................................................................113 Crecimiento de los Segmentos Rollback ..................................................................................................................................................................................................................................111 Capítulo Nº 14 .........................120 Uso De Los Ficheros Redo En Línea.............................................101 Habilitación E Inhabilitación De Roles ..................................................................................................................................................................104 Directrices Para La Creación De Roles ..........................................................121 Log Switches ........102 Eliminación De Roles Desde Los Usuarios ................................................................................ 107 Uso De Perfil ............................................................................................................................................................................................................103 Eliminación De Roles......................................................93 Privilegios De Objetos....................................................................... 112 Uso De Los Segmentos Rollback Con Transacciones ................................................................................................5 Visualizacion De Privilegios Del Sistema .......................................................................................................................................................................................................................................................................................118 Capítulo Nº 15 ............................................................................113 Consistencia en la Lectura ...........................................................................................................................121 Creación De Los Ficheros Redo Log Iniciales .............................................................................................109 Bloqueos De Cuentas..........................................................................................................................................................................................................................................................................................................................120 MANTENIMIENTO DE LOS FICHEROS REDO LOG .........112 MANEJO DE SEGMENTOS ROLLBACK....95 Mostrando Privilegios De Objetos.........................................................................................................................................................................................................................................................................................................................................................................................................................................107 Alteración Y Borrado De Un PERFIL...........................................................................................................................121 Buffer Redo Log Y El Proceso Background LGWR ..............100 Modificación De Roles ................121 Checkpoint............................................95 Concesión De Los Privilegios De Objetos.................................................................................................................................................................................................................................................................................101 Establecimiento De Roles Por Defecto....................................................................................................................................................................................................................................................................................................... 98 Creación Y Modificación De Roles.........92 Restricciones De Privilegios Del Sistema............................................................................................................................116 Desasignación de Espacio en los Segmentos Rollback........................................98 GESTION DE ROLES...............93 Revocación De Privilegios Del Sistema .....................................................................................................................................................................113 Contracción De Los Segmentos Rollback .............................................................................................................

..........................................................................................................................................................................................................................................................................129 Características de las entradas de hoja del índice ......................................................................................................................................................................................................................134 Reconstrucción De Índices ....................................................................................................................................................135 Borrado De Índices......................................................................................................................................................................................................................................................................................................123 Obtención de información sobre grupos y miembros ....................130 Creación De Indices......................................................................................................................................................143 Revision de Información de Auditoría...............................................................................................................................................................................126 Capítulo Nº 16 ............................141 Auditoría Basada en Valores ...............6 Modo ARCHIVELOG.........................................................................................141 Auditoría de la Base de Datos............................................................................................................................................................137 Segmentos Temporales en un Tablespace Permanente...............................................................................................................126 Dimensionar ficheros Redo Log en Línea .....................................................................................................134 Control De Validez Del Índice ..............................................................................................................................................................137 Tipos de Segmentos Temporales ....133 Asignación Y Desasignación Del Espacio Del Índice .... 128 Clasificación De Índices .................................................................................................................................................................................................................................................................................................143 Opciones de Habilitación de Auditoría..........................................................................................................144 Auditoría de Sentencia..........................................................................................................133 Reorganizacion De Indices ....................................137 MANEJO DE SEGMENTOS TEMPORALES......................................................................125 Planificación De Los Ficheros Redo Log En Línea........130 Comparacion Entre Índices B*Tree E Índices Bitmap .....138 Uso de Segmentos de Ordenación .............................................................................128 MANEJO DE INDICES...........................................................................................................................145 Administración de Bases de Datos ........................................................ 137 Uso de los Segmentos Temporales .............................................................................................................139 Obtención de Información del Segmento Temporal ......128 Índices Particionados y No Particionados..136 Capítulo Nº 17 ......................................................................................124 Multiplexado y Mantenimiento de Miembros y Grupos.............................................................................................................................................................................................................................................139 Capítulo Nº 18 ..............141 Uso de la Auditoría de la Base de Datos...........................................................................................................................................................................................................124 Añadir Miembros Redo Log................................................................................................................................................................123 Control De Log Switches Y Checkpoint ......................................................................................................................................................................132 CREATE_BITMAP_ÁREA_SIZE .............................128 Formato de las entradas de hojas del indice..... 141 Auditoría de Operaciones Privilegiadas......129 Índices de Clave Inversa.....................123 Obtención De Información Sobre El Archivado...........................................................135 Obtención De Información .....................................................................................................................................................................138 Asignación de Espacio en Segmentos Temporales...................................................................................................131 Creación de indices de Clave Inversa .................................................................................................................................................142 Habilitar la Auditoría de la Base de Datos...................................................................123 Obtención de información sobre grupos ...........................................................................................................................................................................................................................................................................................................................................................130 Estructura de un índice Bitmap..............................................................143 Generacion de Datos de Auditoría....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................138 Segmentos Temporales en un Tablespace Temporal ..........................................................................................125 Borrado de los Miembros Redo Log en línea ......................................................................................................141 AUDITORIA.........................................125 Limpiando Los Ficheros Redo Log En Línea ..........................................................................................................................................................132 Creación de Indices Bitmap...........................................................................................................................................129 Índice Bitmap .....124 Recolocación de ficheros Redo Log Activos.............................128 Índices ÚNICOS y NO ÚNICOS .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. 141 Categoría de Auditoría .................................................125 Eliminar Grupos Redo Log Activos y Miembros ......

...............................................................................................151 CARGA DE DATOS ..................................................................................................149 Mover la Marca de Auditoría fuera del Tablespace del Sistema ..................................................................................................................................................................147 Visualización de los Resultados de Auditoría....................................................................................................151 Carga de Datos Utilizando la Inserción de Carga Directa ........................................169 SECUENCIA DE PROCESO “IMPORT” ............................................179 Recuperación Completa: Método 3 .........................................................................166 CARACTERÍSTICAS DE “EXPORT DIRECT PATH” ......................................................................................180 Recuperación Completa: Método 4 ......................................................................................................................................................185 Administración de Bases de Datos .................................................................................149 Enfoque de la Auditoría............................... 163 MÉTODOS DE EJECUTAR LA UTILIDAD “EXPORT”..............................................................................173 RMAN ...........................................................................................................................................................................154 Funciones SQL*Loader ................................................................................................. 172 RESTAURACIÓN DE FICHEROS DE DATOS ............................................................................................................................................................145 Auditoría de Objetos del Esquema ................................................................................................................................................................148 Localización de la Marca de Auditoría.............................................7 Auditoría de Privilegios.............................................................152 Carga de Datos Utilizando SQL*Loader ..............................................................................................................................................................................155 Carga por Vía de Acceso Convencional .............................................................................................................. 151 Inserción de carga directa ................................155 Cargas Convencionales y Directas ....................................................................................................................................................................................176 RECUPERACIÓN UTILIZANDO FICHEROS LOGS ARCHIVADOS............................................................146 Opciones de Inahilitación de Auditoría ............................148 Directrices para la Auditoría............................................................................................................................................................................................184 PERDIDA DE UN FICHERO REDO LOG......................................................................................................................................................................................................................................................................................................................175 RECUPERACIÓN COMPLETA CON “ARCHIVADO” ...............................................................................................................................................................................................................163 LINEA DE COMANDO EXPORT .........................................169 LÍNEA DE COMANDOS “IMPORT”..................................158 Capítulo Nº 17 .............................................................................................................................................................................................................................................................150 Capítulo Nº 19 ...............................182 RECUPERACIÓN DESPUÉS DE UN FALLO “HOT BACKUP”......................................................................................................................................................................156 Uso de SQL*Loader ........................................................................................................................178 Recuperación Completa: Método 1 ...............................................................................................................................151 SQL*Loader ...............................................................................................184 RECREACIÓN DE REDO LOGS .............................................................................183 BORRADO REDO LOGS CORRUPTOS ......................................................146 Opción DEFAULT de Auditoría de Objetos de un Esquema ..........................................................................................155 Comparación De Las Vías De Acceso De Carga Directa Y Convencional ...............................................................................178 Recuperación Completa: Método 2 ...............................................................................................................................................................................................................................................................175 SINTAXIS DE RECUPERACION .................................................................................................................................................................................................................170 Capítulo Nº 14 ........................................................................................................................164 CONCEPTOS DE “EXPORT DIRECT PATH” .................................................................................................145 Auditoria de Objetos en un Esquema.......................................................................................................................167 USO DE LA UTILIDAD “IMPORT” PARA RECUPERACIONES............................. 175 RECUPERACIÓN COMPLETA .............................................................................................................................155 Carga por Vía de Acceso Directo ............................................148 Visualización de los Resultados de la Auditoría...................................................................................................................................................................................................177 LOCALIZACION DE LOGS ARCHIVADOS PARA APLICAR .......................................................................................152 Modo Logging ............................................................................157 Palabras Clave del Comando Línea ............................................................................................154 Ficheros Utilizados por SQL*Loader ...................172 RECUPERACIÓN ORACLE SIN “ARCHIVADO” ...........................................................................................................................................................................................................................................................163 UTILIDADES ORACLE DE EXPORTACIÓN E IMPORTACIÓN ...........................................................................................................................................................169 MODOS DE “IMPORT”...................................................................................................................................174 Capítulo Nº 15 ...............................................................................................................155 Carga en Tablas Agrupadas ................................................

....................................................................................................................................................................................196 RECUPERACIÓN INCOMPLETA DEL FICHERO CONTROL del BACKUP.................................................................................................................................................................................................................................................................................................192 Recuperación Basada en Cancelación .....................186 GESTOR DE RECUPERACION..........................................194 RECUPERACIÓN INCOMPLETA USANDO HASTA FECHA ..........191 TIPOS DE RECUPERACIONES INCOMPLETAS ...198 PERDIDAS DE REDO LOGS ONLINE ACTUALES...............191 Recuperaciones Basada en el Tiempo..................................................................................................................................................................192 LÍNEAS GENERALES DE UNA RECUPERACIÓN INCOMPLETA ......................................................................................................................199 PERDIDAS DE REDO LOGS ONLINE ACTUALES..........................................................................................................................................................................................................................................................................................................................187 RECUPERACIÓN COMPLETA COM RMAN ................................................................................................................... 190 RECUPERACIÓN CON “ARCHIVADO” (Recuperación Incompleta).....8 INFORMACIÓN DEL ESTADO DE RECUPERACION .................................................................................................197 RECUPERACIÓN INCOMPLETA DEL FICHERO CONTROL del BACKUP........................................199 RECUPERACIÓN A TRAVÉS DE RESETLOGS........................................................................201 GESTOR DE RECUPERACIÓN.............................................................................188 Capítulo Nº 16 .................................192 COMANDO RECOVER ......................................193 RECUPERACIÓN BASADA EN TIEMPO ..........192 Recuperación Basada en Cambios.................................................................................................200 RECUPERACIÓN TABLESPACE EN UN MOMENTO CONCRETO (TSPITR) ...............................................................................................................................202 RECUPERACIÓN INCOMPLETA CON RMAN......................203 Administración de Bases de Datos ...................................................................................................................................................195 RECUPERACIÓN INCOMPLETA USANDO Hasta Cancel................................................................................................................190 RECUPERACIÓN INCOMPLETA CON “ARCHIVADO” .....................192 Recuperación usando un Backup del Fichero de Control ........................................................................................................

relacional-objeto. Los usuarios de la Base de Datos envían comandos SQL directamente utilizando una herramienta como SQL*PLUS. Este proceso del servidor se comunica con el servidor Oracle en nombre del proceso del usuario que se ejecuta en el cliente. o utilizando una aplicación que contiene sentencias SQL. • Administración de Bases de Datos . Listar los pasos en el procesamiento de una consulta. la herramienta o la aplicación se ejecuta en la máquina del cliente. se crea un proceso en la máquina que es ejecutada en el servidor Oracle. clave y una base de datos. Conexión a una Base de Datos Pasos para conectarse a una Base de Datos: • Iniciar una herramienta como SQL*Plus o ejecutar una aplicación desarrollada utilizando una herramienta como Developer/2000 Forms. cuando un usuario se anota en el servidor Oracle especificando un nombre de usuario. creando un user process . donde la máquina en la que el usuario está conectado. En un modelo cliente-servidor. • Usando una conexión a dos niveles (cliente-servidor). esto es. • Utilizando una conexión a tres niveles. Describir los pasos en la ejecución de COMMITS. que a su vez está conectado a través de una red a la máquina que ejecuta el servidor oracle. Usuarios de la Base de Datos Oracle Un usuario de base de datos se puede conectar a un servidor Oracle de una de las siguientes maneras: • Conexión directamente en el host.9 Capítulo Nº 1 COMPONENTES DE LA ARQUITECTURA DE ORACLE Objetivos • • • • Enumerar las estructuras relacionales en la conexión de un usuario a un servidor Oracle. Describir los pasos en el procesamiento de una sentencia DML. la máquina que ejecuta el servidor oracle. El servidor Oracle es un sistema de gestión de Bases de Datos. que suministra una aproximación abierta y compresiva del manejo de información. está conectada directamente a la que está ejecutando el servidor oracle. El servidor oracle procesa estos comandos y devuelve los resultados a los usuarios. En la configuración más básica. Este proceso recibe el nombre de server process. en la que la máquina del usuario se comunica a una aplicación o un servidor de red.

El servidor Oracle consta de una “instance” y una base de datos Oracle. que es usado para comunicarse con el Servidor Oracle. y de unos procesos background utilizados por el servidor Oracle para manejar una base de datos. Cada Oracle Instance. El proceso servidor da comienzo cuando el usuario solicita conexión y generalmente se termina cuando el usuario se desconecta. OEMGR. Soluciones De Problemas El mensaje de error Oracle “ORA-01034: Oracle no disponible” ocurre cuando un usuario o una aplicación intenta conectarse a un servidor Oracle que no está disponible para ser utilizado.10 Sesiones Una sesión es una conexión especificada de un usuario con un Servidor Oracle. Para resolver esto. cada proceso del servidor da servicio solo a un proceso de usuario. puede abrir y utilizar solo una base de datos en cualquier punto y momento. a instancia del proceso del usuario. • • • Instance Oracle • • Es un medio de acceso a una base de datos Oracle. Genera llamadas al servidor Oracle. el inicio de una sesión en una BD requiere que el servidor Oracle esté disponible para ser utilizado. el administrador de la base de datos necesita arrancar el servidor Oracle. El proceso del servidor devuelve la información del estado y los resultados al proceso del usuario. El PGA se describe en una sección posterior a cada sección. que se identifica por su ORACLE_SID. aplicaciones o terminales al mismo tiempo. Developer/2000). El proceso del servidor utiliza el Programa Interfaz Oracle (OPI). en la máquina donde se conectó. Incluye el Programa Interfaz del Usuario (UPI). Cada proceso del servidor utiliza un área de memoria denominada el Area Global del Programa (PGA). Siempre abre una y solo una base de datos. PROCESO DEL USUARIO (conocido como cliente tiene las siguientes propiedades) • • • • • Se ejecuta en la máquina del cliente. En la más sencilla configuración conocida como un servidor dedicado. y finaliza cuando el usuario se desconecta o se produce una interrupción anormal. Comienza cuando el usuario es validado por el Servidor Oracle. Para un usuario de bases de datos son posibles varias sesiones concurrentes si éste se anota desde varias herramientas. Ejecuta la herramienta o aplicación (SQL*PLUS. El Oracle Instance consta de una estructura de memoria llamada Area Global del Sistema (SGA). Administración de Bases de Datos . Excepto para alguna herramienta de administración de bases de datos especializada. PROCESO DEL SERVIDOR (tiene las siguientes características:) • • Se ejecuta en la misma máquina que el servidor Oracle. Se crea cuando se invoca una aplicación o herramienta.

que contiene datos de información de control para el servidor Oracle.108.432 76. 2.754 69.094. por defecto.776 69. La SGA está situada en la memoria virtual del ordenador.912 16. incluyendo: • • • Pool compartida: utilizada para almacenar la sentencia SQL más recientemente ejecutada y los datos más reciemientemente utilizados del diccionario de de datos. Monitor de Sistema (SMON): su función principal es controlar la consistencia e iniciar la recuperación de la base de datos cuando esta abierta. 3.872 svrmgrl>show sga Total system global area Fixed size Variable size Database buffers Redo buffers Procesos Background Los procesos background de un instance realizan funciones que son necesarias para atender las solicitudes de varios usuarios concurrentes. Escritor de Base de Datos (DBWR): responsable de escribir los cambios de datos en la Base de Datos.216 172. dependiendo de la configuración. Monitor de Procesos (PMON): limpia los recursos si uno de los procesos falla. desarrollo 94. esos cinco procesos: 1. Escritor de Redo Log (LGWR): graba los cambios registrados en el buffer redo log sobre los ficheros de redo log. sin comprometer la integridad y rendimiento de todo el sistema.113.616. Buffer de redo log: utilizado para registrar los cambios hechos en la base de datos. Proceso de “checkpoints” (CKPT): responsable de actualizar la información del estado de la BD cuando los cambios en el buffer de datos sean grabados de forma permanente en la BD.864 335. Administración de Bases de Datos . Cada instance Oracle puede utilizar varios procesos background. 4. 5. Buffer de datos : utilizado para almacenar los datos más recientemente utilizados.616 78. La SGA está compuesta de varias estructuras de memoria.616 77. pero cada una tiene.032 Bytes Bytes Bytes Bytes Bytes producción 145.774.11 Area Global del Sistema (SGA) Las estructuras de memoria de un instance Oracle están contenidas en la región de memoria llamada SGA. donde reside el servidor Oracle.098.

12 Base De Datos Una base de datos Oracle. Administración de Bases de Datos . representa las estructuras físicas y está compuesta de ficheros del sistema operativo. un servidor oracle utiliza también otros. Ficheros de la Base de Datos Los ficheros que constituyen la base de datos contiene datos del usuario e información adicional que es necesaria para asegurar una operación adecuada de la misma. Fichero redo log archivados: copias fuera de control de los ficheros redo log que pueden ser necesarios para la recuperación al producirse fallos. Ficheros de control: contienen la información necesaria para mantener y verififcar la integridad de la BD (una BD necesita al menos un fichero de control). Ficheros redo log: contienen una grabación de los cambios hechos en la BD para asegurar su reconstrucción de datos en caso de fallos (una BD necesita el menos dos ficheros redo log). para atender las solicitudes hechas por un usuario. Además de los ficheros de la BD. Las siguientes secciones explican como el proceso de un servidor usa algunos componentes del instance oracle y la BD. Fichero de password: utilizados para autentificar los usuarios privilegiados de la BD. Una BD tiene al menos un fichero de datos. Algunos de ellos son: • • • Ficheros de parámetros: utilizados para definir características de un instance oracle. Una Base de Datos Oracle consta de los siguientes tipos de ficheros: • • • Ficheros de datos: almacena el diccionario de datos. objetos del usuario e imágenes anteriores de datos que son modificados por las transacciones actuales.

se utilizan los componentes de la shared descritos a continuación: Library Cache La library cache almacena la siguiente información acerca de las sentencias SQL más recientemente utilizadas. Funciones del Area de Buffers de Base de Datos La zona de buffers de datos.13 Proceso de Consulta Las siguientes etapas son la principales en el proceso de una consulta: 1. Al finalizar esta fase. Shared Pool La shared pool es una parte del SGA utilizada durante la fase Parse. Parse: En esta etapa. Arbol de análisis. El tamaño de la shared está especificado en el parámetro de inicialización. Si es necesario. el proceso de usuario envía la consulta al proceso sevidor con una solicitud de compilación de la consulta. al proceso del usuario. Fetch: durante esta fase. El proceso servidor controla la validez del comando y utiliza el área del SGA conocida como shared pool para compilar la sentencia. el proceso del servidor inicia la carga de esta información a partir del diccionario de datos. las filas que son recuperadas por la consulta son devueltas por el servidor al usuario. El número de buffers Administración de Bases de Datos . nombres de usuarios. el proceso del servidor lee el bloque del fichero de datos y sitúa una copia en el buffer de datos. el proceso del servidor busca los bloques necesarios en la zona de buffer de datos. 2. que es la versión de la sentencia compilada. como definiciones de tablas y columnas. Dictionary Cache Es una parte de la shared pool que almacena la información de los datos del diccionario más recientemente utilizada. es necesario uno o más fecth para transferir los resultados de una consulta al usuario. Plan de ejecución. Execute: durante esta fase del proceso de una consulta. Si el bloque no se encuentra en los buffer de la BD. 3. Dependiendo de la cantidad de memoria utilizada para la transferencia. • • • Texto de la sentencia. el proceso servidor busca la información en el dictionary cache para resolver los nombres de objetos especificados en la sentencia SQL y para validar los privilegios de acceso. esto es. Zona Buffer de Datos Cuando se procesa una consulta. es un área del SGA que es utilizada para almacenar los bloques de datos más recientes utilizados. Para hacer análisis en una sentencia SQL. Durante la fase Parse. El tamaño de cada buffer es igual al de un bloque de datos y está especificado en el parámetro DB_BLOCK_SIZE. el proceso servidor devuelve el estado. el proceso del servidor se prepara para recuperar los datos. SHARED_POOL_SIZE del fichero de parámetros. claves y privilegios. éxito o fallo de la fase parse. que define los pasos a seguir para la ejecución de la sentencia como se determina en el optimizador.

• Espacio de pila: contiene las variables de la sesión.14 es igual al valor del parámetro DB_BLOCK_BUFFERS. La copia de los bloques leídos son situados en la zona de buffers de datos. Ejecución de una Sentencia DML Una sentencia de lenguaje de manipulación de datos (DML) necesita dos fases de proceso: • Parse. La PGA es asignada cuando un proceso es creado y se designa cuando este se termina.1 WHERE empno=7369. • Ejecución Fase de Ejecución Ejemplo: UPDATE emp SET sal=sal*1. si no se encuentran en la zona de buffers de datos. el PGA contiene: • Área de clasificación: utilizada por cualquier clasificación que puede ser necesaria antes de que las filas sean procesadas o devueltas al usuario. 5. El proceso del servidor lee los bloques de datos y rollback de los ficheros de datos. El proceso servidor sitúa bloqueos en los datos. El servidor Oracle utiliza el algoritmo del menos recientemente utilizado (LRU) para actualizar los buffers a los que haya accedido recientemente yhacer que nuevos bloques sean acomodados en buffers de datos. 2. 3. Los bloques cambiados en el buffer oculto son señalados como dirty buffers-. no son los mismos que los de los bloques correspondientes en el disco. El proceso servidor graba la imagen anterior en el bloque rollback y actualiza el bloque de datos. • Estado del cursor: que indica la etapa en el proceso de varios cursores que son utilizados actualmente en la sesión. El proceso servidor graba los cambios que se realicen en el rollback (imagen anterior) y en los datos (nuevo valor) en el buffer redo log.esto es. ambos en el buffer de datos de la base de datos. Se ejecutan los siguientes pasos para la ejecución de la sentencia de actualización: 1. • Información de la sesión: Como los privilegios del usuario para la sesión. 4. Area Global del Programa (PGA) Proceso servidor PGA El Área Global del Programa (PGA) es una región de la memoria que contiene datos o información de control para un único proceso servidor o un único proceso background. El PGA es un área utilizada solo por un proceso Cuando se usa la configuración de servidor dedicada. que es similar a la fase Parse utilizada para el proceso de una consulta. Segmento de Roolback Administración de Bases de Datos .

es decir. El proceso del servidor sitúa una grabación de validación. Pasos en el Proceso de Validación Cuando se realiza una Validación se suceden los siguientes pasos: 1. alo largo el SCN. 2. Asegura el número suficiente de buffers libres --buffers que pueden ser sobrescritos cuando los procesos servidores necesiten cargar bloques de los ficheros de datos—disponibles en el área de buffers de datos. pero no hace distinción entre el tipo de bloque que ha cambiado. Después de este punto. (LGWR) Escritor de Anotación El log Writer (LGWR) es un proceso background que escribe entradas procedentes del buffer redo log en los ficheros redo log. • Cuando sea válida una transacción “COMMIT” LGWR Buffer Rdo Log Ficheros Redo Log (DBWR) Escritor de la Base de Datos El proceso servidor graba los cambios en buffers de rollback y buffers de datos de la SGA. Esta imagen es utilizada para: • Deshacer cambios si la transacción es “rolled back” • Asegura que otras transacciones no ven cambios inválidos hechos por la sentencia DML (consistencia en lectura). que registran los cambios ---esto es. 4. • Recuperar la BD en un estado consistente en caso de fallos. El rendimiento de la BD es mejorado ya que los procesos del servidor solo hace cambios en la zona en la zona de buffers y el DBWR difiere la escritura en los ficheros de datos hasta que ocurre uno de los siguientes sucesos: • El número de buffers sucios alcanza un valor umbral o • Un proceso escanea un número especificado de bloques cuando busca buffers libres y no encuentra ninguno. LGWR realiza una anotación contigua de todas las entradas en el buffer redo log hasta. que es una parte del SGA. el buffer redo log. el servidor oracle puede garantizar que los cambios no se perderán incluso en caso de fallos. Buffer Redo Log El proceso servidor graba los cambios hechos por un instante en el buffer redo log. El proceso del servidor graba la información para indicar que la transacción ha finalizado y que los bloqueos de los recursos pueden ser eliminados. El LGWR realiza anotaciones secuenciales en el fichero redo log en las siguientes situaciones: • Cuando el buffer redo log está lleno en un tercio de su capacidad. la grabación de validación en los ficheros redo log. 3. El escritor de base de datos (DBWR) escribe los buffers sucios del área de buffers de datos. Almacena los registros de redo. un cambio en un bloque de datos de uno en un índice o un bloque rollback. y los cambios hechos por una transacción pueden ser intercalados con cambios hechos por otras transacciones. Una entrada redo registra un cambio. EL buffer redo log tiene las siguientes características: • • • • Su tamaño en bytes está definido por el parámetro LOG_BUFFER. la localización del cambio y su nuevo valor. existen en ficheros de datos y partes de ellos son llevados a la zona de buffers de datos cuando sea requerido. Así no puede distinguir. • Cuando sucede una interrupción (cada tres segundos) • Antes de que DBWR anote los bloques modificados en el buffer oculto de la base de datos en los ficheros de datos.15 Antes de hacer un cambio el proceso servidor guarda el valor antiguo en un segmento rollbak. el redo que es cambiado. o • Sucede un timeout. Los recursos rollback. en los ficheros de datos. Proceso de Validación Oracle utiliza un mecanismo de validación rápido que garantiza que los cambios en la validación pueden ser recuperados en caso de fallos. Es un buffer circular que es vuelto a utilizar después de haber sido llenado. e incluida. como tablas e índices. Administración de Bases de Datos . El usuario es informado de que la Validación se ha completado. pero sólo después de que todas las entradas redo hayan sido grabadas en los ficheros redo log. o • Cuando sucede un checkpoint. por ejemplo. Un checkpoint es un medio de sincronizar la zona de buffers de BD con los ficheros de BD. El buffer redo log es utilizado secuencialmente.

16 Ventajas de la VALIDACIÓN Rápida El uso de estos pasos para procesar las VALIDACIONES tiene las siguientes ventajas: • Las anotaciones secuenciales en los ficheros log son más rápidas que la escritura en diferentes bloques del fichero de datos. • A menos que el buffer redo log esté particularmente lleno. mientras que la escritura en los ficheros de datos requeriría todos los bloques de datos que fueran a ser escritos. • La BD VALIDAR comporta las grabaciones Redo Log desde múltiples transacciones solicitando validar al mismo tiempo con una simple anotación. • En los ficheros log se escribe solo la información mínima que es necesaria para grabar los cambios. Administración de Bases de Datos . solo es necesaria una anotación sincronizada por transacción. • El tamaño de la transacción no afecta la cantidad de tiempo necesaria para una operación de VALIDACIÓN actual.

AS SYSDBA CONNECT. AS SYSOPER ARCHIVE LOG RECOVER DATABASE STARTUP/SHUTDOWN Administración de Bases de Datos . Comandos del Server Manager Categoría Comando que no necesita conexión con la Base de Datos Comandos EXIT REMARK SET SHOW SPOOL Comandos que necesitan conexion a la Base de Datos y CONNECT/DISCONNECT privilegios oracle.sql svrmgrL command=”CONNECT scott/tiger” svrmgr30 command=@u16. CONNECT. DESCRIBE EXECUTE SHOW ERRORS SHOW PARAMETER SHOW SGA Comandos que necesitan privilegios especiales Oracle.. monitor y ajuste de múltiples BD. como inicio. Ejemplos Herramienta Modo Línea del Server Manager ”svrmgrl” Oracle Enterprise Manager Descripción Una utilidad de modo línea utilizada para una tarea administrativa. Además puede ejecutar las sentencias SQL y el código PL/SQL. Uso INICIO DEL MODO LÍNEA EN EL DIRECTOR SERVIDOR En UNIX En NT svrmgrL svrmgr30 Inicio y Ejecución de un fichero de comandos En UNIX svrmgrL command=@credb. Utilidad de importación o exportación Utilidad para exportar/importar datos en el formato Oracle. finalizado o recuperación de una BD.. Ficheros de Passwords Utilidad para crear archivos de claves de BD. SQL*Loader Utilidad para la carga de datos desde archivos externos en tablas Oracle. Interfaz gráfica del usuario para el administrador. Server Manager.17 Capítulo Nº 2 USO DE HERRAMIENTAS DE ADMINISTRACIÓN Herramientas De Administración De La Base De Datos.sql En NT Uso del Server Manager en el modo línea Utilizar el modo línea para ejecutar los comandos del Server Manager descriptos en la siguiente sección.

18
Comandos Del Server Manager Comando EXIT REMARK SET SHOW SPOOL CONNECT/DISCONNECT DESCRIBE EXECUTE SHOW ERRORS SHOW PARAMETER SHOW SGA CONNECT/AS SYSDBA ARCHIVE LOG Descripción Sale del Server manager modo línea o cierra una Worksheet SQl. Introduce un comentario, típicamente en los ficheros de comandos SQl. Selecciona o cambia características del comando actual de la sesión del modo línea. Muestra la selección efectiva en ese momento. Habilita o inhabilita spooling de salida a un fichero específico. Se conecta o desconecta de una BD. Describe una función, paquete, procedimiento o tabla, objeto o visualización. Ejecuta una sentencia PL/SQL en línea. Muestra los errores generados desde la última compilación de un procedimiento, paquete o función. Muestra los valores actuales de uno o más parámetros de inicialización. Muestra la información respecto del SGA del instance actual. Habilita la conexión privilegiada a la BD. Inicia o detiene el archivado automático de los ficheros redo log, archiva manualmente los ficheros redo log especificados o muestra la información relativa a los ficheros redo log. Realiza la recuperación media en uno o más tablespaces, o en la BD entera. Inicia o finaliza la ejecución actual de un instance Oracle.

RECOVER DATABASE STARTUP/SHUTDOWN

SQL*NET
Permite la configuración cliente-servidor y servidor-servidor a través de cualquier protocolo. Cuando se requiere: • • • • • • El cliente y el servidor se comunican a través de la red. Dos Bases de Datos se comunican a través de la red. Dos Bases de Datos se comunican a través de la red. Dos Bases de Datos se quieren comunicar en la misma máquina. El cliente quiere usar conexiones Multithreades Server.

Proceso Listener
• • • Puede escuchar sobre una o más Bases de Datos en una máquina. Identifica peticiones de conexiones a través de la red y realiza todo el proceso de conexión al servidor. Se controla a través de lnsrctl.

Asocia el cliente con un proceso servidor para poder ejecutar las peticiones del cliente. Se puede crear más de un listener por servidor para balancear la carga.

NET 8 ASSIST Herramienta para configurar los distintos nodos de la red Oracle.

FORMATO DE CONFIGURACIÓN Keyword=value Ejemplo Protocolo=tcp (Keyword1= (Keyword2=value) (Keyword3=value)) Ejemplo (Address= (community=us.oracle.com) (protocol=tcp))

Administración de Bases de Datos

19
Ficheros De Configuracion (Cliente-Servidor)

Cliente TNSNAMES SQLNET

Servidor TNSNAMES SQLNET LISTENER

TNSNAMES.ORALista de nombres de servicios y direcciones de destino. SQLNET.ORA Información adicional sobre parámetros de seguridad o de diagnóstico.

Los ficheros del cliente en el servidor sólo son necesarios si el servidor va a realizar conexiones externas. LISTENER.ORA Incluye nombres de servicios y direcciones de todas las BD que está escuchando el proceso. También ciertos parámetros de control y diagnóstico.

TNSNAMES.ORA Contenido: Nombres de servicios TNS, lo cual son alias que manejan descriptores de conexión. Esta en el cliente y su localización se puede controlar con la variable TNS_ADMIN. Ejemplo: PROD= (DESCRIPTION= (ADDRESS= (COMMUNITY=SALES.COM) (PROTOCOL=SPX) (SERVICE=STEALTH_LSNR)) (CONNECT_DATA=(SID_PROD)))

PROD: DESCRIPTION: ADDRESS: COMMUNITY: PROTOCOL: SERVICE: CONNECT_DATA: SID:

nombre del servicio. indica un descriptor de conexión para un servicio del TNS. indica que va a describir una especificacion de servicio. nombre de la comunidad que contiene el servicio. protocolo de red utilizado para comunicar el servicio. nombre específico del servicio SPX. indica que siguen datos de aplicación. identificador del sistema (SID) de la BD en el servidor.

Ejemplo de aplicación: SQLPLUS scott/tiger@PROD

LISTENER.ORA El listerner debe estar activo en el servidor de la BD antes que se intenten realizar conexiones desde los clients remotos. Contenido: • • • • Nombre del listener. La dirección del listener. BD que usan el listener. Parámetros del listener.

Administración de Bases de Datos

20
Ejemplo: LISTENER=(ADDRESS_LIST= (ADDRES= (PROTOCOL=ipc) (KEY=produccion)) (ADDRESS= (PROTOCOL=ipc) (KEY=prod.)) (ADDRESS= (PROTOCOL=tcp) (HOST=testar) (PORT=1521))) SID_LIST_LISTENER=(SID_DESC= (SID_NAME=prod.) (ORACLE_HOME=/sur/oracle/prod.)))

Bases De Datos Que Usan El Listener
• • • SIDs de las bases de datos. Parámetros específicos que indican la localización de los ejecutables de Oracle. Parámetros de procesos servidores.

LSNRCTL
Arranca y para el proceso listener en el servidor. LSNRCTL command listener_name

Comandos: START STOP STATUS TRACE OFFUSERADMIN (activa la opción de traza a nivel del listener) USER (proporciona un nivel limitado de traza. ADMIN proporciona uno más detallado) SET PASSWORD (activa el uso de comandos sólo para el administrador) SERVICES (da información sobre los servicios que el listener controla) VERSIÓN (versión para el listener, TNS y el adaptador de protocolo) HELP (referencia de ayuda)

Ficheros De Comandos cat*.sql dbms*.sql prvt*.sql utl*.sql catálogo de información del diccionario de datos. especificaciones del paquete de BD. código de paquete de BD. vistas y tablas para utilidades de BD.

Server Manager El modo línea del Server Manager es muy útil para la realización de operaciones desatendidas, como ejecución de trabajos nocturnos por lotes o ficheros de comandos. Además puede usar el modo línea cuando no hay disponible una interfaz gráfica. svrmgrl inicia el modo línea (unix)

Administración de Bases de Datos

21
Uso del Server Manager en modo línea: Utilizar el modo línea para ejecutar los comandos del Server Manager descritos en la sección anterior. Además se puede ejecutar las sentencias SQL y el cósigo PL/SQL.

Introducción de comandos del Server Manager: Los comandos de una sola línea del Server Manager no necesitan puntuación o finalizadores. Si se extiende más de una línea, se utiliza “\” al final de cada una. svrmgrl> DESCRIBE \ 2> scott.emp

Introducción de código SQL o PL/SQL Se puede introducir una sentencia de línea única o línea múltiple SQL en el modo línea, al finalizar poner “;” o sólo un slach “/” en la última línea.

Ejecución de ficheros de comandos En modo línea se puede ejecutar ficheros de comandos utilizando el comando “@” , por ejemplo para ejecutar el fichero de comando credb.sql introducir la sentencia @CREDB.sql

Arrancar Y Parar La Instance
lsnrctl start lsnrctl stop Ejemplo en UNIX de arrancar y parar la instance y la BBDD:

LSNRCTL START SVRMGRL CONNECT INTERNAL STARTUP EXIT SQLPLUS

SVRMGRL CONNECT INTERNAL SHUTDOWN EXIT LSNRCTL STOP

Administración de Bases de Datos

3. desmontar la BBDD 3. que es creado antes de que sea instaldo el servidor oracle. 3. remoto windows NT o windows 95. SHARED: indica que más de una instance puede utilizar el fichero de password (los únicos usuarios reconocidos por el fichero de password son SYS e INTERNAL). Autentificación del Sistema Operativo UNIX 1.22 Capítulo Nº 3 MANEJO DE UNA INSTANCE ORACLE Durante el inicio de una BBDD se suceden los siguientes pasos: 1.. 2. dado que la BBDD puede no estar abierta especialmente para operaciones de arranque y parada. El usuario tiene que ser miembro del grupo UNIX. 4. SVRMGRL>CONNECT INTERNAL/ADMIN 3. Definir el parámetro REMOTE_LOGIN_PASSWORDFILE a EXCLUSIVE o SHARED. abrir la BBDD “alter database mount” Para parar la BBDD: 1.. de adm. entrie=5 Definir REMOTE_LOGIN_PASSWORDFILE a EXCLUSIVE o SHARED. b. Visualizar ficheros /etc/group y /etc/passwd para determinar los miembros del grupo UNIX Asegurarse de que el parámetro REMOTE_LOGIN_PASSWORDFILE está en NONE Conectar a la BBDD con el privilegio SYSDBA o SYSOPER connect / as SYSDBA connect / as SYSOPER NT: 1. 2.” 2. Métodos de autentificación En algunos casos el administrador de la BBDD necesita un método especial de autentificación. Añadir un usuario del sistema operativo NT a ese grupo. Poner REMOTE_LOGIN_PASSWORDFILE a NONE Conectarse a la BBDD con el privilegio SYSDBA o SYSOPER. 2. llamado ORA_<SYS>_DBA y ORA_<SID>_OPER que es específico de una instance o ORA_DBA y ORA_OPER que es específico de un instance.. arranque de una instance “lsnrctl start” 2. cerrar la BBDD “shutdown . Conectarse a la BBDD. a. montar la BBDD “startup mount” 3. Puede elegir la autentificación del sistema operativo o los ficheros de claves para autentificar los administradores de la BBDD. EXCLUSIVE: indica que sólo una instance puede utilizar el fichero de password y que este contiene otros nombres además de SYS y SYSTEM. Uso de la autentificación del fichero • • • 1. tiene que star instalado NET8 en ambos clients y servidor. $orapwd file=$ORACLE_HOME/dbs/orapwu15\password=admin. Administración de Bases de Datos . de la BBDD) Crear el fichero de password utilizando la utilidad ORAPWD en UNIX o ORAPWD80 en NT. normalmente llamado DBA. 4. Crear el fichero de password utilizando la utilidad ORAPWD. Utilizar el siguiente comando para conectar a una BBDD: CONNECT INTERNAL/ADMIN (entrie número máx. parar la instance “lsnrctl stop” Usuarios administradores de BBDD (tienen asignados el rol DBA) • • SYS SYSTEM SYS: propietario de la información del diccionario de la BBDD SYSTEM: propietario de tablas internas adicionales utilizadas por las herramientas oracle. El instalador asigna privilegio de administrador y operador de BBDD oracle a este grupo unix. CONNECT / AS {SYSDBA | SYSOPER } Nota: para conectar con un servidor windows NT desde un cliente local. Crear un nuevo grupo local de usuarios windows NT.

La BBDD puede ser puesta en modo restringido utilizando el comando ALTER SYSTEM. V$PARAMETER muestra los valores actuales de la sesión. Administración de Bases de Datos . DISABLE RESTRICTED SESSION habilita a todos los usuarios. ALSTER SYSTEM SET SORT_AREA_SIZE=131072 DEFERRED. importacion y exportacion de la BBDD puede ser arrancada en el modo restringida de forma que solo este disponible para usuarios con privilegio restricted session. ALTER SYSTEM {ENABLE | DISABLE} RESTRICTED SESSION donde: enabled restricted habilita conexiones futuras para solo para usuarios que tienen el privilegio RESTRICTED SESSION. ALTER SYSTEM DEFERRED modifica el valor para las sesiones futuras que se conectan a la BBDD. las columnas siguientes : • ISSES_MODIFICABLE indica si el parámetro puede ser modificado por ALTER SESSION. V$SYSTEM_PARAMETER muestra los valores actuales del sistema independiente de la sesión. ALTER SYSTEM cambia globalmente el valor del parámetro. ALTER SESSION modifica solo el valor del parametro para la sesión que ejecuta el comando. ALTER SYSTEM SET TIMED_STATISTICS=true. • ISSYS_MODIFICABLE indica si el parámetro puede ser modificado por ALTER SYSTEM. Libera los recursos. ALTER SYSTEM ENABLE RESTRICTED SESSION. Parámetros de inicialización dinámicos Algunos parámetros de inicialización pueden ser modificacdos mientras se ejecuta la instance. Sesión restringida Util para mantenimiento. Libera todas las tablas retenidas o bloqueos de filas.23 Cambiar la calve interna • • Utilice la utilidad ORAPWD en UNIX para borrar y crear el fichero de password Use la utilidad ORADIM(= en NT para borrar y crear un fichero nuevo de password. Consultar las vistas V$PARAMETER y V$SYSTEM_PARAMETER. ALTER SESSION SET SQL_TRACE=true. Habilitación e inhabilitación de una sesión restringida • • Utilizar el comando STARTUP para restringir el acceso a una BBDD STARTUP RESTRICT Utilizar el comando ALTER SYSTEM para situar la instance en el modo restringido. • ISMODIFIED índice ALTER SESSION MODIFICADA con el valor modified y ALTER SYSTEM MODIFICADA con el valor modified.serial#’ Efectos de KILL SESSION • • • Rollback la transacción actual del usuario. Finalización de sesiones “V$SESSION” ALTER SYSTEM KILL SESSION ‘sid.

algunos necesitan ser modificados de las siguientes formas para sistemas de producción: • Cambiar el tamaño de los componentes del Área Global del Sistema (SGA) para optimizar el rendimiento. Elegir Salvar en una de las hojas de propiedades. Para crear o modificar una configuración almacenada: 1. Los valores múltiples se encierran entre paréntesis y se separan por comas. Las líneas de comentario empiezan con el símbolo #. Reglas para especificar Parámetros • • • • • • • • • Especificar los valores en el formato siguiente: keyword=valor.con) db_lock_size = 8192 db_lock_buffers = 2000 shared_pool_size = 30000000 log_buffer = 64K processes = 50 db_files = 100 log_files = 10 max_dump_file_size = 10240 background_dump_dest = (/home/disk3/user15/BDUMP) user_dump_dest = (/home/disk3/user15/UDUMP) core_dump_dest = (/home/disk3/user15/CDUMP) rollback_segments = (r01. • Especificar los ficheros de control. Pueden ser incluidos ficheros adicionales con la clave IFILE. El servidor tiene un valor por defecto para cada parámetro. Si este es modificado. r03.ora. Seleccionar las Parámetros de Inicialización.24 Creación De Un Fichero De Parametros El fichero de parámetros comúnmente llamado fichero INIT<SID>. Si el caso es significante para el sistema operativo. r07. r05.ora db_name = U15 control_file = (/DISK1/control101. • Seleccionar valores por defecto de la BD y del instance. Uso de Parámetros Los parámetros en el fichero init <SID>. Todos los parámetros son opcionales. Utilice el Instance Manager. es un fichero de texto que puede ser mantenido utilizando un editor de un sistema operativo estándar. tales como el tamaño de bloque de la misma. ficheros log archivados y la localización de ficheros de traza.con. Por defecto. cerrar y volver a iniciar el instance para hacer efectivo el cambio de valores en el nuevo parámetro. r02. r08) Administración de Bases de Datos . está localizado en el directorio $ORACLE_HOME/dbs en una máquina UNIX. Los parámetros pueden ser especificados en cualquier orden. 4. r04. Ejemplo del Fichero de Parámetros # Fichero de Inicialización Parámetro: initU15. El fichero de parámetros solo se lee durante el inicio del instance. 3. también lo es para los nombres de fichero. • Definir (solo en la creación de BD) varios atributos físicos de ella. /DISK2/control102. Encerrar los parámetros entre comillas dobles para incluir caracteres literales. Introducir un nombre de configuración en la hoja de propiedades de Configuración.ora pueden tener un efecto significativo en el rendimiento. 2. • Seleccionar los límites de la BD. r06.

Habilita o inhabilita la utilidad trace SQL para cada sesión de usuario. El inicio de un intance incluye las siguientes tareas: • Lectura del fichero de parámetros init<SID>. Tamaño en bytes del pool compartido. Parámetros Comúnmente Modificados Parámetro IFILE LOG_BUFFER MAX_DUMP_FILE_SIZE PROCESSES SQL_TRACE TIMED_STATISTICS Descripción Nombre de otro fichero de parámetros para que sea embebido dentro del fichero de parámetros actual. se puede elegir el estado en el que se inicia. Por defecto es 3500000 Lugar en que los ficheros de traza del usuario son creados. • Inicio de los procesos background. solo durante la creación de la misma o creación de nuevo de los ficheros de control. Etapas Para El Arranque Y La Parada Etapas de arranque Cuando se inicia la BD.0 Nombres de los ficheros de control. Por defecto y el mínimo es 50 buffers. Números de bytes situados en el buffer redo log del SGA. Habilita o inhabilita medidas de tiempo en los ficheros trace y en las pantallas del monitor. Versión del servidor con el que este instance debería ser compatible. Número máximo de procesos del sistema operativo que pueden ser conectados simultáneamente a este instance. Es posible hasta tres niveles de red. especificado como número de bloques del sistema operativo.ora • Asignar memoria al SGA. El identificador de la BD es de 8 caracteres o menos. Número de bloques ocultos en el SGA. arrancaría un instance sin montar un BD.0. Los siguientes escenarios describen las diferentes etapas en el inicio de un instance: ARRANQUE DEL INSTANCE (STARTUP NOMOUNT) Normalmente Ud. Tamaño máximo de los ficheros de traza. • Apertura de los ficheros trace y ALERT. Es el único parámetro necesario cuando se crea una BD nueva. La base de datos tiene que ser nombrada con el parámetro DB_NAME en el fichero init<SID>.25 Parámetros que deberían ser especificados Parámetro BACKGROUND_DUMP_DEST COMPATIBLE CONTROL_FILES DB_BLOCK_BUFFERS DB_NAME SHARED_POOL_SIZE USER_DUMP_DEST Descripción Lugar donde los procesos de background escriben los ficheros de traza. Por defecto es 8. Administración de Bases de Datos .ora o con el comando STARTUP.

Durante la etapa final. La recuperación instance consta de los siguientes pasos: 1. el proceso background SMON realiza automáticamente la recuperación instance cuando la BD se vuelve a abrir. Comando Startup ARRANCA INSTANCE Y ABRE LA BASE DE DATOS STARTUP PFILE=/DISK1/initU15. el fichero redo log es utilizado para recuperar los datos validados en la zona de buffer de datos que fueron perdidos debido al fallo del instance. 2. el proceso background System Monitor (SMON) inicia la recuperación del instance. permanece solo el instance. si hay un fallo en el sistema operativo. “Rolling Back” transacciones no validadas por SMON y por los procesos del servidor individuales cuando acceden a datos bloqueados. Oracle cierra todos los ficheros y redo log operativos. Oracle escribe los cambios en los buffers y las entradas en los ficheros y redo log operativos. se cierran los ficheros trace y ALERT. El montaje de una BD incluye las siguientes tareas: • Asociar una BD con un instance iniciado previamente. Los ficheros de control permanecen abiertos mientras se cierra una base de datos pero permanece montada. Por ejemplo. Inicio. Después de esta operación.ora Administración de Bases de Datos . la BD tiene que estar montada pero no abierta durante las siguientes tareas: • Volver a nombrar ficheros de datos. en lugar de esperar que todas las transacciones sean deshechas antes de hacer que la BD esté disponible. Si cualquiera de los ficheros operativos o redo log no están presentes cuando intenta abrir la BD. Oracle cierra sus ficheros de control. • Abrir los ficheros redo log operativos.26 MONTAJE DE LA BD (STARTUP MOUNT) Para realizar operaciones específicas de mantenimiento Ud. no se realizan controles para verificar la existencia de ficheros de datos y ficheros redo log operativos en ese momento). Cuando está cerrada. DESMONTAR UNA BASE DE DATOS El segundo paso es desmontar la BD desde un instance. ABRIR LA BD (STARTUP OPEN) La operación Normal de la BD significa que un instance está iniciado y la BD montada y abierta. Después de desmontar una BD. esto permite a cualquier usuario válido conectarse a la BD y realizar las operaciones típicas de acceso a datos. (Cualquier dato que no esté bloqueado por transacciones no recuperadas. “Rolling Forward” para recuperar los datos que no han sido grabados en los ficheros de datos pero que lo han sido en los redo log operativos. • Realizando la recuperación total de la BD. Etapas para Cerrar Hay que realizar tres pasos para cerrar un instance y la BD a la que está conectado: CIERRE DE LA BASE DE DATOS El primer paso es cerrar la BD. Recuperación Instance Un fallo en Instance ocurre cuando este no puede continuar su trabajo. inicia un instance y monta una BD. • Leer los ficheros de control para obtener los nombres y estado de los ficheros de datos y de los redo log (No obstante. 3. pero no la abre. CIERRE DEL INSTANCE El paso final para cerrar una BD. Si es necesario. el SGA se libera y se terminan los procesos background.. Oracle devolverá un error. Abrir la BD. • Habilitar e inhabilitar las opciones de archivo redo log. y controla la consistencia de la BD. está disponible inmediatamente). Esto es. Cuando se desmonta una BD. Oracle verifica que todos los ficheros operativos y redo log pueden ser abiertos. • Situar y abrir los ficheros de control especificados en el fichero de parámetros. Cuando lo hace. Por ejemplo. es cerrar el instance. La apertura de la BD incluye las siguientes tareas: • Abrir los ficheros de datos operativos.

• El siguiente arranque no requiere una recuperación instance. permite que se utilice un fichero de parámetros distinto del por defecto para configurar el instance. permite el acceso a la BD a múltiples instance (utilizado con el Servidor Paralelo Oracle).27 Sintaxis: STARTUP [FORCE] [RESTRICT] [PFILE=filename] [EXCLUSIVE | PARALLEL | SHARED] [OPEN [RECOVER] [database] | MOUNT | NOMOUNT] Donde: OPEN MOUNT NOMOUNT EXCLUSIVE PARALLEL SHARED PFILE=parfile FORCE RESTRICT RECOVER habilita a los usuarios acceso a la BD. 3. Para cerrar un instance. Opciones De Parada Modo de Parada Permite nuevas conexiones Espera hasta que finalicen sesiones actuales Espera hasta que finalicen transacciones actuales Fuerza un checkpoint y cierra ficheros Modo finalización: A Abortar T Transaccional A X X X X x X X √ I X x √ √ T X √ √ √ N I Inmediato N Normal X No √ Si Cerrar la BD para hacer backups off-line del sistema operativo. Procede con las siguientes condiciones: • No se permiten nuevas conexiones. Elegir Base de datos->Inicio. habilita el acceso a la BD solo a usuarios con privilegio RESTRICTED SESSION. Elegir el modo de arranque y dar la información pfilename. Elegir Base de Datos->Cerrar. 2. 3. 2. 4. Utilice el Director Instance. empieza la recuperación del medio cuando la BD arranca. Cierre. Hacer clic en OK. monta la BD para ciertas actividades DBA pero no permite el acceso a la misma a usuarios. crea el SGA e inicia los procesos background pero no permite el acceso a la BD. Administración de Bases de Datos . ofrece un término alternativo para PARALLEL. Utilice el Instace Manager. Hacer clic en OK. Elegir el modo cerrar. 4. OEM 1. permite el acceso a la BD sólo al instance actual. Cierre NORMAL Es el modo de cerrado por defecto. aborta la instance en ejecución antes de realizar un arranque normal. • Oracle cierra y desmonta la BD antes de cerrar el instance. utilice el siguiente comando: SHUTDOWN [NORMAL | TRANSACCIONAL | INMEDIATE | ABORT] OEM 1. • El servidor Oracle espera que todos los usuarios se desconecten antes de terminar el cierre. de todas las estructuras físicas y para modificar los parámetros de inicialización.

Ejemplo ARRANQUE y PARADA DE UNA BBDD Arranque Requiere tres pasos y combina la creación de una instancia y el arranque de la BBDD: 1. • Oracle cierra y desconecta la BD antes de cerrar el instance. 1. • El servidor Oracle no espera a usuarios actualmente conectados a la BD para desconectar. el desplazamiento nos muestra la secuencia de sucesos cuando son introducidos los distintos comandos SHUTDOWN. • El siguiente arranque necesitará una recuperación del instance. Los pasos 1 a 4. • Se abren todos los archivos log y de datos. • El siguiente arranque no requiere una recuperación instance. Oracle espera que todos los usuarios se desconecten antes de completar el cierre. Procede con las siguientes condiciones: • Ningún cliente puede iniciar una nueva transacción en este instance particular. Cuando sucede un cierre abortado. Ejecuta el comando INSERT y otro DELETE para transferir los fondos desde la cuenta de un banco a otro. • Recuperación parcial. • Se abren los archivos de control. 3. recuperación completa de la BBDD. procede con las siguientes condiciones: • Las sentencias SQL actuales que han empezado el procesado con Oracle no se completan. • Las transacciones no validadas no son deshechas. sucede un cierre inmediato. • Creación de la SGA según los parámetros del INIT. • El siguiente arranque no requiere una recuperación instance.28 Cierre TRANSACCIONAL Un cierre transaccional previene a los clientes de la pérdida de trabajo. Se desconecta de Oracle. • Una BBDD montada y no abierta permite acciones del archivo redolog. • Cuando todas las transacciones han sido acabadas. renombrado de archivos de la BBDD. Ejecuta en COMMIT para finalizar la transacción satisfactoriamente. procediendo a continuación con el cierre inmediato. conmutación del modo de archivado. Cuando sucede un cierre inmediato. Cierre ABORTADO Si las opciones de cierre normal y cierre inmediato no funcionan. puede abortar el actual instance de la BD. Con un cierre normal. Administración de Bases de Datos . El abortado del instance procede con las siguientes condiciones: • Las sentencias SQL actuales que han empezado el procesado con Oracle son finalizadas inmediatamente. Cierre INMEDIATO Un cierre inmediato de la BD. Oracle termina el comando actual SQL pero la transacción activa no es deshecha. que se complete la transacción. • SVRMGRL>ALTER DATABASE MOUNT Abrir una BBDD: • Disponible para uso normal. 4. esto es. Con un cerrado transaccional. 2.ORA • SVRMGRL>CONNECT INTERNAL • SVRMGRL>STARTUP NOMOUNT Montar una BBDD: • La BBDD se conecta a la instance. • Un cliente es desconectado cuando se finaliza la transacción que está en proceso. Oracle termina el actual comando SQL en el paso 2 y deshace la transacción activa. describen una transferencia de fondos desde la cuenta de un banco a otra. 3. • Oracle deshace las transacciones activas y desconecta todos los usuarios conectados. Arrancar una instance: • Creación de los procesos background. • SVRMGRL>ALTER DATABASE OPEN 2. • El instance se termina sin cerrar los ficheros. Consulta la cuenta para controlar los saldos de la misma. Después de ser ejecutado el paso primero. Oracle espera hasta que el paso 3 se hay completado. • El servidor Oracle no espera a usuarios actualmente conectados a la BD para desconectar.

• Para la instance. Administración de Bases de Datos . • No se efectua recuperación durante el posterior arranque. • Cierra y desmonta la BBDD. no espera a que las conexiones actuales se completen. • Cierra y desmonta la BBDD. 3. • No permite nuevas conexiones. 2.ora Parada Existen tres modos de parar una BBDD: 1. • No se efectua recuperación durante el posterior arranque. Contiene datos en el disco y estructuras de memoria. • No se efectuan nuevas conexiones.ORA distinto: SVRMGRL>STARTUP pfile=initxx. Proporcionan datos relativos a la estructuras internas del disco y estructuras de memoria y pueden ser accedidas por el administrador de datos. Abortando: • SVRMGRL> CONNECT INTERNAL • SVRMGRL>SHUTDOWN ABORT • Parada drástica. Contiene datos útiles para el ajuste del rendimiento. • Es necesaria la recuperación durante el posterior arranque. • El PMON termina todas las sesiones y restaura todas las transacciones no validadas. Inmediata: • SVRMGRL>CONNECT INTERNAL • SVRMGRL>SHUTDOWN INMEDIATE • Las conexiones actuales se completan. • Para la instance. • No se efectuan rollback. • Cierra y desmonta la BBDD. Tienen sinónimos públicos con el prefijo v$ Estas vistas se llaman vistas dinámicas de rendimiento ya que se actualizan constantemente mientras la BD se abre y está en uso. • Para la instancia. Obtener Y Definir Valores De Parametros VISTAS DINÁMICAS DE RENDIMIENTO • • • • Mantenidas por el servidor Oracle y actualizadas constantemente.29 Alternativas de Arranque • Arranque con un solo comando: SVRMGRL>STARTUP • Arranque solo para el administrador: SVRMGRL>STARTUP RESTRICT • Arranque forzado: SVRMGRL>STARTUP FORCE • Utilizando un archivo INIT. Sus contenidos se relacionan primeramente con el rendimiento. Normal: • SVRMGRL>CONNECT INTERNAL • SVRMGRL>SHUTDOWN • Espera por los usuarios conectados actualmente.

Contiene información relativa a los procesos activos actuales Lista información de la sesión actual. Una vez que el instance es arrancado en la etapa NOMOUNT. Lista opciones que son instaladas con el servidor oracle. Las vistas V$FIXED_TABLE muestra todas las vistas dinámicas de rendimiento.30 Las vistas dinámicas de rendimiento son identificadas por el prefijo V_$. Muestra el estado del instance. Contiene información totalizadora del SGA. Administración de Bases de Datos . Acceso A Las Vistas Dinámicas De Rendimiento OPEN Diccionario Datos MOUNT Vistas Dinámicas de Rendimiento que leen datos de disco NOMOUNT Vistas Dinamicas de rendimiento leidos de memoria SHUTDOWN EJEMPLO V$PARAMETER V$SGA V$OPTION V$PROCESS V$SESSION V$VERSIÓN V$INSTANCE V$THREAD V$CONTROLFILE V$DATABASE V$DATAFILE V$DATAFILE_HEADER V$LOGFILE SGA Fichero de Control Vistas Dinámicas de rendimiento (Accesible en la etapa NOMOUNT) V$PARAMETER V$SGA V$OPTION V$PROCESS V$SESSION V$VERSION V$INSTANCE Descripcion Contiene información de parámetros de inicialización. Las vistas que leen datos desde el fichero de control necesitan que la BD esté montada. Lista el número de versión y los componentes. son accesibles las vistas V$ que pueden ser leidas desde la memoria. aunque Oracle proporciona sinónimos públicos con el prefijo V$.

31
Vistas Dinámicas de rendimiento (Accesible en la etapa MOUNT) V$THREAD V$CONTROLFILE V$DATABSE V$DATAFILE V$DATAFILE_HEADER V$LOGFILE Descripcion Contiene información ensartada, por ejemplo respecto de los grupo redo log. Lista los nombres de los ficheros de control (incluso aunque no disponibles, esta vista no devuelve filas en la etapa NOMOUNT). Contiene información de la BD. Contiene información del fichero de datos desde el fichero de control. Muestra la información de la cabecera del fichero de datos desde el fichero de control. Contiene información relativa a los ficheros redo log activos.

Visualización De Los Valores Actuales De Los Parametros
• Utilice el comando Server Manager. SHOW PARAMETER control •

Consulte la vista dinámica de rendimiento V$PARAMETER: SELECT name FROM V$PARAMETER WHERE name LIKE ‘%control%’;

Visualización De Los Valores De La Instance
V$INSTANCE - INSTANCE_NUMBER - INSTANCE_NAME - HOST_NAME - VERSION - STARTUP_TIME - STATUS - DATABASE_STATUS - INSTANCE_ROLE =1 = OCHOI = PROVES1.PLAZASITE.COM = 8.1.6.1.0 = 12/01/01 = OPEN = ACTIVE = PRIMARY_INSTANCE

Parámetros para los Ficheros de Traza
Los ficheros de traza pueden ser escritos por el servidor y por los procesos background . Oracle almacena información de errores en los ficheros de traza. Este proceso puede ser habilitado o inhabilitado por: • Comando ALTER SESSION • Parámetro SQL_TRACE (ALTER SESSION SET sql_trace=TRUE) Parámetros BACKGROUND_DUMP_DEST USER_DUMP_DEST MAX_DUMP_FILE_SIZE Localización de los ficheros de traza y ALERT Donde serán creados los ficheros de traza cuando lo soliciten los usuarios. Espefica en bloques del SO, el límite del tamaño de los ficheros de traza.

Parámetros de Inicialización Dinámica
ALTER SESSION ALTER SYSTEM ALTER SYSTEM DEFERRED V$PARAMETERS ISSES_MODIFIABLE ISSYS_MODIFIABLE modificable con alter session modificable con alter system

(para sesiones futuras)

Administración de Bases de Datos

32

Capítulo Nº 4
CREACIÓN DE UNA BASE DE DATOS
La creación de una BD es una tarea que prepara varios ficheros del sistema operativo y es necesario solo una vez, sin importar en número de ficheros de datos que tenga la BD. Este es un aspecto importante que el administrador de la BD tiene que decidir sus características, tales como el tamaño del bloque de la BD y el juego de caracteres, que no puede ser cambiado después de la creación. Dependiendo del sistema operativo, una BD puede haber sido creada automáticamente como parte de la instalación. Se puede utilizar esta BD inicial o se la puede borrar y crear una nueva manualmente. Durante la migración desde una versión anterior de Oracle, es necesaria la creación de una nueva BD solo si se necesita toda ella. Es decir, Ud. Puede utilizar la utilidad migración—por ejemplo, MIG80 en NT—para migrar desde una versión anterior de la BD. Se puede crear una BD con nuevos ficheros de datos o eliminando información de una BD existente que tiene la misma estructura física. El comando CREATE DATABASE inicia la creación de los ficheros de control, ficheros redo log, y la estructura del diccionario de datos que necesita el servidor Oracle para acceder a la BD.

Preparación Del Sistema Operativo Y Requisitos Previos Para La Creación
• • • Cuenta privilegiada autentificada de una de las siguientes maneras: o Por el sistema operativo o Utilizando un fichero de password Memoria para iniciar instance. Espacio en disco para la BD planeada.

Planificación De La Localización De Los Ficheros De La Base De Datos
• • • Mantener al menos dos copias activas del fichero de control de la BD, en al menos dos dispositivos diferentes. Multiplexar los ficheros redo log y poner los miembros del grupo en discos diferentes. Separar los ficheros de datos, cuyos datos: - Vayan a entrar en conflicto de recursos, a través de diferentes recursos físicos del disco. - Tengan diferentes periodos de vida. - Tengan diferentes características administrativas.

Ficheros de Control Para seguridad debería crear al menos dos ficheros de control en dos discos diferentes. Ya que las copias del fichero de control tiene que estar siempre situadas en discos diferentes, pueden tener nombres idénticos, tales como control01.ctl en UNIX y control.ora en NT. Ficheros Redo Log Activos Deberían constar de grupos multiplexados de ficheros redo log activos. Un grupo de fichero consta de copias idénticas, que deberían estar en localizadas en discos diferentes. Ficheros de datos Nombrar los ficheros de datos relacionando su contenido, como el nombre de la raíz, por ejemplo, tales como system01.dbf, temp01.dbf, user01.dbf en UNIX y system01.ora, temp01.ora en NT. Considerar las características de los datos que vayan a ser almacenados antes de determinar la estructura apropiada para su base de datos, para: Minimizar la fragmentación. Minimizar los conflictos en el disco. Separar objetos. Para minimizar la fragmentación de la BD, debería separar los objetos de la misma atendiendo a la duración del tiempo en uso, tales como datos de aplicación y datos temporales, en diferentes tablespaces. Para asegurar las cargas I/O bien equilibradas, debería separar los objetos con I/O competentes necesarios, tales como tablas e índices en diferentes tablespaces.

Administración de Bases de Datos

33
Estrucura Del Software Del Directorio Oracle
Después de la instalación de Oracle, el directorio ORACLE_HOME es /pnto_montaje/app/oracle/product. En UNIX, el directorio ORACLE_HOME tiene los siguientes subdirectorios, así como los subdirectorios para cada producto Oracle, dependiendo de los productos disponibles en la plataforma:

Subdirectorios Bin Dbs Lib Orainst Rdbms Plsql Network Svmgr

Descripción Ejecutables para todos los productos Los ficheros de B.D. INIT<sid>.ora y sql.bsq Bibliotecas el producto oracle Instalación de ficheros y programas Ficheros del servidor, comandos y bibliotecas necesarias para las B.D. Opción procedural PL/SQL SQL*PLUS Server Manager

Algunos ejemplos del contenido de los subdirectorios del producto son: Subdirectorios Admin. Demo Doc Install Lib Log Descripción Ficheros de comandos administrativos Ficheros de demostración Ficheros README Ficheros de comandos de instalación del producto Bibliotecas del producto Ficheros log

La estructura del directorio en NT es similar a la de UNIX.

Consideraciones Para La Creación De Una Base De Datos
• • EN UNIX: Crearla automáticamente durante una instalación. Crearla manualmente después de la instalación. EN NT: Crearla utilizando el asistente de la Base de Datos. Crearla manualmente.

Si utiliza el instalador para crear una base de datos, el instalador le solicita que introduzca el número y posición de los puntos de montaje, el grupo de caracteres y el grupo de caracteres nacional, claves para usuario SYS y SYSTEM y el grupo UNIX de claves para habilitar las autentificaciones del sistema operativo. En NT durante la instalación le solicitan crear una BD con un wizard, el Asistente de la BD Oracle. Esta utilidad puede utilizarse tambien después de la instalacion para crear o borrar una BD.

Crear Una Base De Datos Manualmente
1. 2. 3. 4. 5. 6. 7. Decidir el nombre de la misma y el juego de caracteres. Definir las variables del sistema operativo. Preparar el fichero de parámetros. Crear un fichero de passwords. Arrancar instance. Crear la base de datos. Ejecutar los ficheros de comandos para generar el diccionario de datos y cumplir con pasos de la postcreación.

Entorno Del Sistema Operativo
En UNIX definir la siguientes variables del entorno: • ORACLE_HOME • ORACLE_SID • ORACLE_BASE • ORA_NLS33 • PATH Decidir el nombre único para el instance y definir las siguientes variables del entorno:

Administración de Bases de Datos

34
Variable ORACLE_HOME ORACLE_SID ORACLE_BASE ORA_NLS33 PATH Descripción Directorio donde será instalado el software Oracle (ejemplo /u01/app/oracle/product/8.03) Especifica el nombre del instance y tiene que ser único para los instance Oracle que se ejecuten en la misma máquina. No necesario, pero recomendado como parte de una instalación permisiva OFA (ejemplo /u01/app/oracle) Necesario cuando se crea una BD con un juego de caracteres distinto del US7ASCII (ejemplo: $ORACLE_HOME/ocommon/nls/admin./data) Tiene que incluir $ORACLE_HOME/bin

Entorno Del Sistema Operativo En NT • •

Definir la variable ORACLE_SID para utilizar SVRMGR30. Crear los archivos de servicios y password con ORADIM80. C:\> ORADIM80 –NEW –SID u16 - INTPWD password –STARTMODE auto - PFILE ORACLE_HOME\DATABASE\initU16.ora

Oracle en NT, utiliza variables en el registro NT similares a la manera en que Oracle en UNIX usa la estructura de variables de entorno. El instalador Oracle, el ORADIM80 y el Asistente de la Base de Datos Oracle define variables en el registro como la grabación Oracle del instance Oracle como un servicio. Ud. puede editar el registro manualmente, a través de la utilidad regedit.exe. Por ejemplo los parámetros como ORACLE_HOME, ORA_NLS33 y ORACLE_SID (el por defecto es ORCL para el iniciador de la base de datos), son almacenados en el fólder HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE. De esta forma la creación de una nueva BD necesita que se defina ORACLE_SID con el siguiente comando: C:\> set ORACLE_SID=U16 Useted puede crear ahora un servicio nuevo y el nuevo fichero de password, si es necesario, para ejecutar la base de datos con la utilidad ORADIM80: C:\> ORADIM80 –NEW –SID sid [INTRO internal_pwd] [SRVC srvcname] [MAXUSERS number] [STARMODE auto, manual] [-PFILE filename] El servidor oracle graba todas las operaciones ORACLE_HOME\RDBMS80\ORADIM80.LOG. que son ejecutadas con la utilidad ORADIM80 en el fichero

Preparación Del Fichero De Parámetros
1. 2. Crear el nuevo init<SID>.ora $cp init.ora $ORACLE_HOME/dbs/initu16.ora Modificar initU16.ora editando los parámetros.

Cuando se prepara la nueva BD, copiar el fichero por defecto init.ora con el nuevo nombre init<SID>.ora. Cambiar los valores para algunos parámetros, otros pueden ser dejados por defecto. Especificar al menos los siguientes parámetros antes de iniciar el instance. Parámetro DB_NAME Descripción El identificador de la BD de 8 caracteres o menor. Este el único parámetro que es necesario cuando se crea una BD nueva. Este parámetro no necesita corresponder al ORACLE_SID, pero tiene que corresponder al nombre utilizado en la sentencia CREATEDATABASE. CONTROL_FILES Especifica la lista de los ficheros de control (Siempre especifica al menos dos nombre de ficheros de control, situados en discos separados si es posible. Los ficheros de control no necesitan existir en este momento. El servidor Oracle puede crear unos nuevos ficheros del sistema operativo cuando crea la BD.) DB_BLOCK_SIZE Determina el tamaño del bloque de la BD (El tamaño del bloque no puede ser cambiado después de la creación de la BD.

NOTA: el nombre de la BD es asociado con una BD en el momento de su creación y es almacenado en los ficheros de control. Para cambiar el nombre de la BD, utilizar el comando CREATE CONTROLFILE para volver a crear el fichero de control.

Administración de Bases de Datos

Es el número máximo de ficheros de datos que pueden ser creados por la base de datos. Especifica los nombres de los ficheros log que van a ser utilizados y el grupo al que pertenecen. SVRMGR>STARTUP NOMOUNT \ 2>PFILE=initU16. Si se omite es utilizado el parámetro de inicialización DB_NAME Especifica que un fichero de control existente identificado en el fichero de parámetro debería ser utilizado nuevamente. Es el grupo de caracteres que utiliza la BD para almacenar datos. Creación De La Base De Datos Para crear una base de datos utilice el siguiente comando SQL: CREATE DATABASE [database] [CONTROLFILE REUSE] [LOGFILE (GROUP integer) filespec [. Es el número máximo de instances que pueden simultáneamente montar y abrir la BD. Conectar como SYSDBA. Especifica el grupo nacional de caracteres utilizado para almacenar datos en columnas definidas como NCHAR. Establece que los redo logs pueden ser vueltos a utilizar sin archivar sus contenidos.35 Arranque Del Instance 1. Es el número máximo de los grupos del fichero log que puedan ser creados en la BD. o NVARCHAR2. Establece que los redo logs tienen que ser archivados antes de que se puedan volver a utilizar. L clave es la que fue utilizada previamente para crear el servicio con la utilidad ORDIM80 en NT o lo que se creó previamente usando la utilidad orapwd en UNIX. Para este curso el fichero de parámetros esta localizado en el directorio actual. Arrancar el instance en la etapa NOMOUNT. Especifica los ficheros de datos que van a ser utilizados. filespec [autoextend_clause]…] filespec:== ‘filename’ [SIZE integer] [K | M] [REUSE] autoextend_clause :== [AUTOEXTEND {OFF | ON [NEXT integer [KIM] [MAXSIZE {UNLIMITED | integer [K | M] } ] } ] database CONTROLFILE REUSE LOGFILE GROUP MAXLOGOFILES MAXLOGMENBERS MAXLOGHISTORY DATAFILE filespec AUTOEXTEND MAXDATAFILES MAXINSTANCES ARCHIVELOG NOARCHIVELOG CARÁCTER SET NATIONAL CARÁCTER SET Nombre de la BD que se va a crear. de otra forma la opcion TAMAÑO tiene que ser especificada y el fichero no tiene que existir. Es el número máximo de miembros de ficheros log para un grupo de ficheros log. Es el número máximo de redo logs archivados por el medio automático de recuperación del Servidor Paralelo Oracle. 2. NCLOB. tiene que existir el fichero. Habilita o inhabilita la extensión automática del fichero de datos. (GROUP integer) filespec]…] [MAXLOGFILES integer] [MAXLOGMEMBERS integer] [MAXLOGHISTORY integer] [MAXDATAFILES integer] [MAXINSTANCES integer] [ARCHIVELOG | NOARCHIVELOG] [CHARACTER SET charset] [NATIONAL CHARACTER SET charset] [DATAFILE filespec [autoextend_clause] [. Puede necesitar especificar la cláusula PFILE en el comando STARTUP.ora ORACLE instance started Conectar como SYSDBA utilizando la autentificación del sistema operativo o el método fichero de passwords y arrancar el instance utilizando el comando STARTUP. Si el fichero de parámetro no esta en la posición por defecto. Administración de Bases de Datos . Si es epecificado REUSE en un fichero de especificación.

ora”. “C:\ ORANT\database\ctl2U16. • Errores en el sistema operativo. En cada caso debería salir de la BD. • Ya existen los ficheros que deberían ser creados. Administración de Bases de Datos .sql tiene: Spool C:\ORANT\database\spoolmain Set echo on Connect INTERNAL/oracle Startup nomount pfile=C:\ORANT\database\initU16. DE BASE DE DATOS ORACLE.0 sort_area_size = 65536 log_checkpoint_timeout=0 remote_login_passwordfile = shared max_dump_file_size = 10240 Solucion De Problemas La creación de la BD falla si: • Hay errores de sintaxis en el fichero de comandos SQL. 3. El Asistente de la BD inicia los servicios relacionados. eliminar cualquier fichero creado por la definición CRETE DATABASE. o suceden errores de espacio insuficiente.ora’ SIZE 1024K MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOHISTORY 1 DATAFILE ‘C:\ORANT\database\Sys1U16.ora”) db_file_multiblock_read_count = 16 db_block_buffers = 2000 shared_pool_size = 30000000 log_checkpoint_interval = 8000 processes = 100 dml_locks = 200 log_buffer = 65536 sequence_cache_entries = 30 sequence_cache_hash_buckets = 23 #audit_trail = true #timed_statistics = true background_dunp_dest = C:\ORANT\rdbms\trace user_dump_dest = C:\ORANT\rdbms80\trace db_block_size = 8192 compatible = 8.0.36 Asistente De La Base De Datos Oracle Para iniciar el Asistente de la BD Oracle: 1. edita los ficheros init.ora tiene: Db_name = U16 Db_files = 1020 Control_files = (“C:\ORANT\database\ctlU16. como permiso de ficheros o directorios.ora’ SIZE 50M MAXDATAFILES 100 MAXINSTANCES 1 CHARACTER SET WE8ISO8859P1. Puede crear la BD o almacenar los pasos de la creación en el siguiente grupo de ficheros de comandos: Contenido de sqlu16.0. Proceda hasta la última pantalla del Asistente de la Base de Datos y termine la creación.sql Donde: el fichero de comandos u16run.bat: C:\ORANT\bin\oradim80 –new –sid U16 –intpwd oracle –startmode auto –pfile C:\ORANT\database\initu16.inst –usrpwd oracle –pfile C:\ORANT\database\initU16.ora CREATE DATABASE U16 LOGFILE ‘C:\ORANT\database\logU16. Elija INICIO-> PROGRAMAS->ORACLE WINDOWS NT->ASISTENTE Esta utilidad es el método mas sencillo para crear una BD Oracle 2.ora C:\ORANT\bin\svrmgr30 @U16run.ora C:\ORANT\bin\oradim80 –startup –sid U16 –starttype srvc. Si ocurren estos errores la sentencia CREATE DATABASE falla.4.ora y crea una BD o borra la BD y servicios. corregir los errores e intentar la creación de nuevo. Spool off y el initU16.

log' ) SIZE 16M. disconnect spool off 2. Ejemplo de Scripts para Creación de una Base de Datos 1. REM * Create a tablespace for ROLlback segments.log' ) SIZE 16M.7/dbs/initDBC3T.1.1.sql” spool /opt/oracle/app/oracle/product/8. • Usuario SYS/change_on_install • Usuario SYSTEM/manager • Segmento de Rollback SYSTEM • Tablas internas (aunque no vistas del diccionario de datos) Después de la creación de la BD. '/DBC3T/ROL/log1DBC3T_02.7/rdbms/admin/catalog.sql” spool /opt/oracle/app/oracle/product/8.bsq se ejecuta satisfactoriamente y se crean los objetos de la BD nombrados. '/DBC3T/ROL/log2DBC3T_02. Script “crdbDBC3T.7/dbs/crear/crdb2DBC3T.ora create database "DBC3T" maxinstances 8 maxlogfiles 100 maxdatafiles 250 character set "WE8ISO8859P15" datafile '/DBC3T/DAT01/sysDBC3T.1.log connect internal startup nomount pfile=/opt/oracle/app/oracle/product/8. • Ficheros de control y redo log.7/dbs/crear/crdbDBC3T. GROUP 2 ( '/DBC3T/ROL/log2DBC3T_01.37 Despues De La Creación De La Base De Datos La base de datos contiene: • Ficheros de datos que forman el tablespace SYSTEM. REM * alter ROLlback segment r0 online.sql connect internal create rollback segment r0 tablespace system storage (initial 2M next 2M minextents 2 maxextents 3000).dbf' size 125M logfile GROUP 1 ( '/DBC3T/ROL/log1DBC3T_01.log'. REM * No more than 50 ROLlback segments.log connect internal @/opt/oracle/app/oracle/product/8.log'. REM * ROLlback segment configuration guidelines: REM * 1 ROLlback segments for every 4 concurrent xactions.1. se abre el fichero SQL de comandos sql. REM * Use ALTER ROLLBACK SEGMENT ONLINE to put r0 online without shutting REM * down and restarting the database. Administración de Bases de Datos . Script “crdb2DBC3T.

alter ROLlback segment r05 online. alter ROLlback segment r06 online. REM * Create a tablespace for temporary segments. alter ROLlback segment r02 online. Administración de Bases de Datos . create 3000). When the user shuts down the database and starts REM * it up with initSID.3.}. all four will be brought online.. REM * create 3000). REM * create tablespace TS_TEMP datafile '/DBC3T/TMP/tempDBC3T.dbf' size 80M default storage ( initial 2M next 2M pctincrease 0 minextents 5 ).38 REM * All ROLlback segments the same size. REM * Create ROLlback segments.dbf' size 10M. create 3000). REM * Recomendación de Siebel de tamaños de tablespaces de ROLlback create tablespace TS_ROLLBACK01 datafile '/DBC3T/ROL/TsROLlback0101. REM * Create a tablespace for database tools.. REM * create tablespace tools datafile '/DBC3T/DAT01/toolDBC3T. create 3000). ROLlback segment r01 tablespace TS_ROLLBACK01 STORAGE ( initial 2M next 2M optimal 10M minextents 5 maxextents ROLlback segment r02 tablespace TS_ROLLBACK01 STORAGE ( initial 2M next 2M optimal 10M minextents 5 maxextents ROLlback segment r03 tablespace TS_ROLLBACK01 STORAGE ( initial 2M next 2M optimal 10M minextents 5 maxextents ROLlback segment r04 tablespace TS_ROLLBACK01 STORAGE ( initial 2M next 2M optimal 10M minextents 5 maxextents ROLlback segment r05 tablespace TS_ROLLBACK01 STORAGE ( initial 2M next 2M optimal 10M minextents 5 maxextents ROLlback segment r06 tablespace TS_ROLLBACK01 STORAGE ( initial 2M next 2M optimal 10M minextents 5 maxextents REM * Use ALTER ROLLBACK SEGMENT ONLINE to put ROLlback segments online REM * without shutting down and restarting the database. create 3000). REM * create tablespace users datafile '/DBC3T/DAT01/usrDBC3T.2.ora. alter ROLlback segment r04 online. Only put one REM * of the ROLlback segments online at this time so that it will always REM * be the one used.. REM * Attempt to keep ROLlback segments to 4 extents. REM * Between 2 and 4 homogeneously-sized extents per ROLlback segment. create 3000).dbf' size 150M default storage ( initial 2048k next 4096k pctincrease 0 ) ONLINE TEMPORARY. k in {1. alter ROLlback segment r03 online. REM * Temporary tablespace configuration guidelines: REM * Initial and next extent sizes = k * SORT_AREA_SIZE. REM* Create a tablespace for miscellaneous database user activity. REM * alter ROLlback segment r01 online.dbf' size 50M.

#grant resource on tools to system.7/rdbms/admin/catproc. alter user system default tablespace tools temporary tablespace TS_TEMP. drop ROLlback segment r0.1. run DBA synonyms SQL script. Script “crdb3DBC3T.1.sql spool off Administración de Bases de Datos . #revoke resource from system.log connect internal @/opt/oracle/app/oracle/product/8. Don't forget that EACH REM * DBA USER created in the future needs dba_syn.7/rdbms/admin/catdbsyn. REM * alter user sys temporary tablespace TS_TEMP.sql” spool /opt/oracle/app/oracle/product/8.1.sql @/opt/oracle/app/oracle/product/8. REM * we no longer need the second ROLlback segment in the SYSTEM tablespace.1.7/rdbms/admin/utlxplan. REM * Alter SYS and SYSTEM users. #revoke resource on system from system.sql spool off 3.39 REM * Since we've created and brought online 2 more ROLlback segments.sql run from its account. REM * connect system/manager @/opt/oracle/app/oracle/product/8. alter ROLlback segment r0 offline. REM * For each DBA user.7/dbs/crear/crdb4DBC3T.

Los usuarios de la BD acceden raramente a ellas.40 Capítulo Nº 5 CREACIÓN DE LAS VISTAS DEL DICCIONARIO DE DATOS Estructura Del Diccionario De Datos – Uso Del Diccionario De Datos. • Usuarios de la BD y privilegios. El servidor Oracle escribe y lee estas tablas. El diccionario de datos suministra información a cerca de: • Estructura lógica y física de la BD. El diccionario de datos es una parte importante de la BD Oracle. Nunca utilice comandos DML tales como INSERT. Vistas Del Diccionario De Datos Categorías de las Vistas del diccionario de datos Las vistas del diccionario de datos son separadas en tres categorías.bsq mientras se crea la BD. pueden actualizarlo. • Auditoria. Es un grupo de tablas y vistas que son utilizados como una referencia para proporcionar información de la base de datos asociada. Administración de Bases de Datos . También los comandos DML. Se crean sinónimos públicos para las vistas de la BD de forma que los usuarios puedan acceder a ellas fácilmente. El diccionario de datos se actualiza por el Servidor Oracle. Vistas del diccionario de datos Las vista del diccionario de datos se crean al ejecutar el fichero de comandos catalog. tales como los que son una tabla para expandir. • Restricciones de integridad. contiene dos partes: • Tablas Base • Vistas del diccionario de datos. UPDATE y DELETE para actualizar las tablas del diccionario de la BD directamente. dado que están normalizadas y la información está codificada. siempre que un comando DDL es ejecutado. Tabla Base La fundación del diccionario de datos es un grupo de tablas base o subyacentes. Tablas Base Y Vistas Del Diccionario De Datos El diccionario de datos localizado en el tablespace SYSTEM y del que es propietario del usuario SYS. En muchos casos las vistas contiene información similar y pueden ser distinguidas desde cada una de ellas por sus prefijos. Las tablas del diccionario de datos se crean por el fichero de comandos sql. definiciones y situación de los esquemas de objetos.sql. Estas vistas decodifican y resumen la información e las tablas de la BD. • Nombres. con la excepción de la tabla AUD$.

Estructuras generales de la BD. USER_TABLES contiene información de todas las tablas poseídas por el usuario. Administración de Bases de Datos . Vistas dba_extents dba_free_space dba_segments dba_rollback_segs dba_data_files dba_tablespaces dba_audit_trail dba_audit_objects dba_audit_obj_opts Descripción Asignación de espacio a los objetos en la BD. incluyendo los objetos que el usuario posee. Estas vistas devuelven un subconjunto de la información en las vistas ALL_xxx. Vistas del Diccionario de datos: Ejemplos de Vistas y Categorías. Estas son consultadas por el administrador de la BD o cualquier usuario con el privilegio del sistema SELECT ANY TABLE. Vistas dictionary dict_columns dba_tables dba_objects dba_lobs dba_tab_columns dba_constraints dba_users dba_sys_privs dba_roles Descripción Descripción general Información relacionada con los objetos del usuario como tablas. restricciones. Auditoria de la información. El Prefijo ALL Las vistas con el prefijo ALL son accesibles por cualquier usuario y normalmente incluyen la columna OWNER. El Prefijo DBA Las vistas con el prefijo DBA dan información de todos los objetos en la BD y normalmente incluye la columna OWNER. SVRMGR> SELECT column_name.41 El Prefijo USER Estas vistas son accesibles por cualquier usuario y se refieren generalmente a los objetos de cada uno de ellos –por ejemplo. Información relacionada con los privilegios y roles. Se crean sinónimos para estas vistas de forma que cada usuario con el privilegio SELECT ANY TABLE pueda consultarlas. comments FROM dict_columns WHERE table_name = `DBA_TABLES’. objetos grandes y columnas. Estas devuelven información acerca de objetos a los que el usuario tiene acceso por vía pública o garantía de privilegios y roles. Ejemplo: SVRMGR> SELECT * FROM dicctionary WHERE table_name LIKE ‘%TABLE%’. Diccionario de datos: Ejemplos de Vistas y Categorías.

RIGTH binary_integer=Return binary_integer El fichero de commandos catproc. crea varios paquetes PL/SQL que son utilizados para extender la funcionalidad de RDBMS. Por ejemplo declara la función construir-dentro llamada BITAND.sql Propósito Crea vistas del diccionario de datos utilizadas corrientemente. que devuelve el resultado de la operación bit y e sus argumentos. El fichero de comandos catalog. Ejecuta todos los ficheros de comandos necesarios para PL/SQL en el servidor Después de la creación de una BD los ficheros de comandos catalog.sql declara tipos.sql Este fichero crea las vistas de las tablas base.42 Construccion Del Diccionario De Datos Creación de las Vistas del Diccionario de Datos F. para la utilidad Export e Import y para las opciones de particionamiento y objeto. Function BITAND (LEFT binary_integer. Además.sql también crea vistas adicionales para la opción encolamiento avanzado. Están localizados en el directorio $ORACLE_HOME/rdbms/admin en UNIX y en el directorio %ORACLE_HOME%/rdbms80/admin en NT. El fichero de comandos catproc. El fichero de comandos standart. que están disponibles automáticamente para cada programa PL/SQL.sql catproc.sql tienen que ser ejecutados como el usuario SYS. Arranca los ficheros de comandos tales como los que crean vistas y objetos para la utilidad Server Manager. recuperación del tablespace point-in-time y el uso de LOB. que crea el entorno básico PL/SQL.sql Este fichero establece el uso de la funcionalidad PL/SQL. vistas dinámicas de rendimiento y sus sinónimos. para auditar.sql y catproc.sql. Administración de Bases de Datos . excepciones y subprogramas. Comandos catalog. Ejecuta el fichero de comandos standart.

lee el fichero de control para localizar los ficheros de datos y los redo logs activos. Contenido Del Fichero De Control Nombre de la base de datos Localización del fichero Bloque Datos Localización Archivo redo log Nombres de Tablespaces Número de la secuencia log actual Información del último checkpoint Log histórico Información de las copias de seguridad Parámetros Que Afectan Al Fichero De Control El tamaño del fichero de control está influenciado por los siguientes parámetros: • • • • • MAXLOGFILES MAXLOGMEMBERS MAXLOGHISTORY MAXDATAFILES MAXINSTANCES Administración de Bases de Datos . El fichero de control proporciona información a cerca de la consistencia de la BD utilizada durante la recuperación. Cada vez que un instance monta una BD Oracle. Si cualquiera de los ficheros de control utilizados actualmente por la BD no está disponible. El fichero de control es actualizado constantemente durante el uso de la BD y tiene que estar disponible siempre que la BD sea montada o abierta. la BD no puede funcionar debidamente.43 Capítulo Nº 6 MANTENIMIENTO DE FICHEROS DE CONTROL Uso Del Fichero De Control Fichero de Control Fichero de Datos Fichero de Redo Log BASE DE DATOS El fichero de control es un fichero binario que es necesario para arrancar y operar de forma satisfactoria con la BD.

VALUE V$CONTROLFILE_RECORD_SECTION . Administración de Bases de Datos .com. utilizando el parámetro de inicialización CONTROL_FILES. Si un fichero de control se pierde utilice la copia para reiniciar el instance.RECORD_USED • Multiplexacion Del Fichero De Control Control files=(/DISK1/control01.NAME (control_file) .con se puede crear la BD con múltiples ficheros de control especificando hasta ocho nombres de fichero de control totalmente calificados.com) Disco 1 control01.DISK2/control02. Oracle recomienda al menos dos ficheros de control idénticos almacenados en discos diferentes. El servidor Oracle crea y mantiene todos los ficheros relacionados cuando se crea la BD.RECORDS_TOTAL .RECORDS_SIZE .con Disco 2 control02.NAME V$PARAMETER .TYPE .44 Obtencion De Informacion Relativa Al Fichero De Control • • V$CONTROLFILE .

ficheros de redo log activos y ficheros de datos. • Excepto los tablespaces del SYSTEM o los que tienen un segmento rollback activo. La separación de la estructura lógica y física proporciona un buen control del manejo del espacio en disco. El administrador de la BD tiene la potestad de definir o configurar estos parámetros. Tablespaces y Ficheros de Datos Una BD Oracle puede ser dividida en áreas lógicas más pequeñas de almacenamiento conocidas como tablespaces. La estructura física consta de ficheros de control. Tablespaces • Un tablespace puede pertenecer solo a una BD. el espacio es escaneado en la BD de acuerdo con los parámetros predefinidos. segmentos. Estructura Lógica De La Base De Datos Relaciones entre la BD. Para utilizar el espacio eficiente y efectivamente. extensiones y bloques de datos. Administración de Bases de Datos . • Cada tablespace consta de uno o más ficheros del sistema operativo (datafiles . dejando la BD funcionando. Cuando las estructuras de almacenamiento lógico se crean. el tablespace puede ser puesto en offline. • Los tablespaces pueden ser puestos on line mientras la BD está en funcionamiento.dbf). es importante comprender la estructura lógica de la BD. • Los tablespaces pueden cambiar de modo “solo lectura” a “lectura-escritura”.45 Capítulo Nº 7 MANEJO DE TABLESPACES Y FICHEROS DE DATOS VISTA GENERAL La arquitectura de la BD incluye las estructuras lógicas y físicas que forman la BD. La estructura lógica de la BD incluye los tablespaces.

Segmentos Un segmento es un espacio reservado para un tipo específico de estructura de almacenamiento lógico dentro de un tablespace. índices. pueden ponerse de forma on-line u off-line de forma individual. . cluster. Un segmento. • Contiene el segmento rollback SYSTEM.Segmento Rollback SYSTEM. • Guardan grandes cantidades de datos estáticos en los dispositivos de solo-lectura. Un bloque de datos corresponde a uno o más bloques de fichero situados en un fichero de datos existente. . Creación De Tablespaces Tablespaces SYSTEM y No-SYSTEM El Tablespace SYSTEM consta de: . definiciones de procedimientos almacenados. Tipos de Tablespace Una BD consta de al menos de un tablespace: el del SYSTEM. Una extensión puede no ocupar un fichero de datos. paquetes y disparadores de BD.Segmentos Rollback. • No debería contener datos del usuario aunque le sea permitido. pero tiene que existir en uno. 1. • Distribuyen el almacenamiento de datos entre los dispositivos para mejorar el rendimiento I/O y reducir la contención I/O contra un único disco. El tamaño del bloque de datos está especificado en cada BD Oracle en el parámetro de inicialización DB_BLOCK_SIZE (ochoi 8192) cuando se crea la misma. Cada tipo de segmento está compuesto de una o más extensiones. Los siguientes son los tipos de segmentos: (tablas.46 Usos del Tablespace • Controlan la localización del espacio y asignan las cuotas a los usuarios. Crear tablespaces adicionales para incrementar el control y el fácil mantenimiento a largo plazo en la BD. Relaciones entre Segmentos. El resto de los Tablespace constan de: . • Segmentos de Índice. Extensiones y Bloques de Datos Oracle habilita mayor modularidad en el control del espacio en disco a través de las estructuras lógicas de almacenamiento. Un bloque de BD es la unidad menor de entrada/salida. extensiones y bloques de datos. • Realizan operaciones de backup y recuperación parciales. Estos son estructuras físicas que se conforman con el sistema operativo en el que el servidor Oracle está ejecutado. incluyendo segmentos. • Segmento Temporal.Índices de Aplicación. Extensiones Al siguiente nivel de espacio lógico en la BD se le llama extensión. Tablespaces SYSTEM • Necesario en todas las BD para que esta pueda operar. Esta funcionalidad implica que la BD puede constar de menos ficheros de datos por tablespace y el administrador de la BD puede evitar la limitación MAXDATAFILES. segmentos de rollback) • Segmentos de Datos. Administración de Bases de Datos . los datos en una BD oralce son almacenados en bloques. tal que un segmento de datos puede abarcar múltiples ficheros que pertenezcan al mismo tablespace. • El servidor Oracle crea un fichero de datos para un tablespace dándole la cantidad de espacio especificada más una pequeña cabecera. Esencialmente. • Un fichero de datos puede pertenecer solo a un tablespace. • Controlan la disponibilidad de datos. • El administrador de la BD puede cambiar el tamaño del fichero de datos después de su creación o puede especificar que un fichero de datos debería crecer dinámicamente como lo hacen los objetos en el tablespace. Bloque de Datos Al más fino nivel de granularidad. Ficheros de Datos Cada tablespace en una BD Oracle consta de uno o más ficheros llamados ficheros de datos. Una extensión es un grupo de bloques contiguos. • Contiene información del diccionario de datos.Información del diccionario de datos.Datos de Aplicación. . • Segmento Rollback. el servidor Oracle percibe dos tipos de tablespaces: SYSTEM y el resto.

47 2.dbf’ SIZE 100M MINIMUN EXTENT 500K DEFAULT STORAGE (INITIAL 500K NEXT 500K MAXEXTENTS 500 PCTINCREASE 0). PERMANENT específica que el tablespace puede ser utilizado para guardar objetos permanentes. Hacer clic en Crear. Tablespaces Non-SYSTEM • Facilitan más flexibilidad en la administración de la BD. TEMPORARY específica que el tablespace será solo utilizado para mantener objetos temporales: por ejemplo segmentos utilizados por clasificaciones implícitas para manejar la cláusula ORDER BY. En la página General de la hoja de propiedad. OFFLINE hace que el tablespace no esté disponible para ser utilizado inmediatamente después de la creación. datos de aplicación e índices de aplicación. Ejemplo: CREATE TABLESPACE app_data DATAFILE ‘/DISK4/app01. introducir el nombre y elegir el campo ADD para que aparezca la hoja de propiedad Crear Datafile. introducir la información de almacenamiento. Usar el Storage Manager. El tamaño de las extensiones deben ser múltiplo de multiblock read size multiblock read size = block size * multiblock read count Ejemplos en OCHOI TABLESPACE INITIAL EXTENT NEXT EXTENT MIN EXTENT MAX EXTENT PCT INCREASE MIN EXTLEN = users = 131072 = 131072 =1 = 4096 =0 = 131072 DATAFILE = users01. ‘/DISK5/app02. Seleccionar Tablespace->Crear. 3. DEFAULT STORAGE específica los parámetros por defecto de todos los objetos creados en el tablespace. En la hoja de propiedad Crear Datafile. En la página Extensiones de la hoja de propiedad.filespec [autoextent_clause] ]… [MINIMUN EXTENT integer [K | M]] [DEFAULT starage_clause] [PERMANENT | TEMPORARY] [ONLINE | OFFLINE] STORAGE ( [INITIAL integer [K | M ] ] [ NEXT integer [K | M ] ] [ MAXEXTENTS {integer | UNLIMITED} [ PCTINCREASE integer ] ) Donde: tablespace es el nombre del tablespace que se va a crear. OEM 1. 5. à initial_extent 516096 next_extent 516096 min_extents 1 max_extents 1200 pctincrease 0 min_extlen 516096 Administración de Bases de Datos . 2. especificar cada fichero de datos. ONLINE hace que el tablespace esté disponible para ser utilizado inmediatamente después de la creación. Sintaxis: CREATE TABLESPACE tablespace DATAFILE filespec [autoextent_clause] [. MINIMUM EXTENT asegura que todos los tamaños de las extensiones utilizadas en el tablespace son múltiplos el valor integrado. DATAFILE específica el fichero de datos o ficheros que forman el tablespace. • Pueden almacenar segmentos rollback.dbf y users02.dbf’ SIZE 200M MINIMUM EXTENT 500K DEFAULT STORAGE (INITIAL 500K NEXT 500K MAXEXTENTS 1200 PCTINCREASE 0).dbf CREATE TABLESPACE vending DATAFILE ‘/oracle/mount3/oradata/ochoi/datafiles/vending01. 6. 4.dbf’ SIZE 100M. segmentos temporales.

y así sucesivamente. Estos parámetros se determinan en la creación del segmento. • MAXEXTENTS determina el número máximo de extensiones que puede tener un segmento. También puede estar especificado en la clave UNLIMITED. • INITIAL • NEXT • MAXEXTENTS • MINEXTENTS • PCTINCREASE La cantidad de espacio utilizado por un segmento está determinada por la cláusula de almacenamiento. Si no se dan parámetros de almacenamiento específicos en los comandos CREATE de los segmentos. CREATE INDEX. la tercera 300K (50% más que la segunda). CREATE CLUSTER o CREATE ROLLBACK SEGMENT.tales como CREATE TABLE. Parámetros De Almacenamiento Los parámetros siguientes influyen en la asignación del almacenamiento de los segmentos. la cuarta 450K. que es equivalente a un valor de 2147483645.el segmento utilizará los parámetros de almacenamiento por defecto para el tablespace en el que está almacenado. El tamaño por defecto es de 5 bloques. No puede contener ningún objetos permanente. El tamaño de una extensión se calcula utilizando la siguiente formula: • • • Donde: Size n es el tamaño de la extensión n-ésima. • Tablespaces Temporales • • Utilizado para operaciones de ordenación. MINEXTENTS es el número de extensiones asignadas cuando el segmento es creado. esto es (5*DB_BLOCK_SIZE). Por ejemplo si NEXT está seleccionado en 200K y PCTINCREASE es 50.dbf’ SIZE 50M. El tamaño mínimo de la siguiente extensión es un bloque. El tamaño mínimo de la primera extensión es dos bloques. • INITIAL define el tamaño de la primera extensión. esto es (5*DB_BLOCK_SIZE). la segunda extensión debería ser del tamaño 200K. El número máximo de ficheros de datos por tablespaces es 1023. el valor máximo por defecto depende del tamaño del bloque de datos. esto es (2*DB_BLOCK_SIZE). El tamaño por defecto es de 5 bloques. PCTINCREASE es el porcentaje por el que crece el tamaño de la extensión. El mínimo y por defecto es 1. CREATE TABLESPACE sort DATAFILE ‘/DISK2/sort011.48 Límites El número máximo de tablespaces por BD es de 64K. las extensiones situadas para un segmento en este tablespace son múltiplos de este valor. Si MINIMUN EXTENT es especificado para el tablespace. à initial_extent next_extent 2097152 2097152 min_extents 1 max_extents 4096 pctincrease 0 min_extlen Administración de Bases de Datos . MINIMUN EXTENT 1M DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 500 PCTINCREASE 0) TEMPORARY. NEXT se refiere al tamaño de la segunda extensión. Pero el número de tablespaces no puede exceder el número de fichero de datos. El valor mínimo es 1.

3. 4. Administración de Bases de Datos . Usar el Storage Manager.49 El administrador de la BD tiene la opción de crear un tablespace temporal. Cambiando el tamaño del fichero de datos. Usar el Storage Manager.dbf 1M app03.dbf 2M se puede agrandar un tablespace de dos formas: 1. Seleccionar Tablespace->Crear. Cambio Del Tamaño De Los Tablespaces Añadir Ficheros de datos en un Tablespace Ejemplo ALTER TABLESPACE app_data ADD DATAFILE `/DISK5/app3. OEM 1. Hacer clic en Crear. filespec [autoextend_clause]]… OEM 1. 4. Añadiendo un fichero de datos. Para saber el espacio libre de un tablespace (datafiles) sumar el campo bytes de la tabla dba_free_space Añadiendo Ficheros de Datos a un Tablespace Se puede añadir ficheros datos a un tablespace para incrementar la cantidad total de espacio en disco asignado para el tablespace con el comando ALTER TABLESPACE ADD DATAFILE: ALTER TABLESPACE tablespace ADD DATAFILE filespec [autoextend_clause] [. Expandir el nodo Tablespace. 2.dbf 1M app02. 3. Hacer clic en Crear. 2. introducir la información del fichero. En la página General de la hoja de propiedad. Este puede ser utilizado solo para segmentos de clasificación y no pueden contener ningún objeto permanente. En la hoja de propiedad Crear Datafile. Seleccionar Tablespace->Añadir Datafile. 6. especificar cada fichero de datos. introducir el nombre y elegir el campo ADD para que aparezca la hoja de propiedad Crear Datafile. Los tablespaces existentes pueden ser alterados de forma que puedan permanecer temporales siempre que no contengan objetos permanentes en ellos. Seleccionar el radio botón TEMPORARY. 5. 2. Tablespace APP_DATA app01. En la página General de la hoja de propiedad.dbf’ SIZE 200M. 5.

. 5. Seleccionar el fichero de datos. Especificar AUTOEXTEND para un Fichero de Datos Existente Utilizar el comando SQL ALTER DATABASE para habilitar o deshabilitar la extensión automática de ficheros para ficheros de datos existentes: ALTER DATABASE [database] DATAFILE ‘filename’ [. 6. Redimensionamiento Automático de Ficheros de Datos La opción AUTOEXTEND habilita o deshabilita la extensión automática de ficheros de datos. En la página Autoextend de la hoja de propiedad. [autoextend_clause]]… OEN 1. introducir la información. Autoextend_clause OEM 1. Usar el Storage Manager. Expandir el nodo Tablespace. 4.dbf 2M app04. • Manualmente utilizando el comando ALTER DATABASE. Hacer clic en Aplicar. Hacer clic en Crear. Tablespace APP_DATA app01. 2. Cuando un fichero de datos es creado.dbf’ SIZE 200M. 2. En la página General de la hoja de propiedad.50 Cambio Del Tamaño De Los Ficheros De Datos HABILITACIÓN AUTOMÁTICA DE EXTENSIONES DE FICHEROS DE DATOS Ejemplo ALTER TABLESPACE app_data ADD DATAFILE `/DISK6/app04. En la página Autoextend de la hoja de propiedad. Usar el Storage Manager. introducir la información de almacenamiento.’filename’].dbf 1M app03.dbf 1M app02. 4. Expandir el nodo Tablespace. Seleccionar Tablespace->Add Datafile. Administración de Bases de Datos . desmarcar el botón Enable Auto Extend. 3.dbf 2M Se puede alterar el tamaño del fichero de datos de una de las siguientes formas: • Automáticamente utilizando la opción AUTOEXTEND. 3. 5. AUTOEXTEND ON NEXT 10M MAXSIZE 500M.. los siguientes comandos SQL pueden ser utilizados para especificar la extensión automática del fichero: • • • CREATE DATABASE CREATE TABLESPACE DATAFILE ALTER TABLESPACE ADD DATFILE Fijar AUTOEXTEND durante la creación de un Fichero Utilizar el siguiente comando para añadir a un fichero de datos la posibilidad de la extensión automatica: ALTER TABLESPACE tablespace ADD DATAFILE filespec [autoextend_clause] [.

dbf 1M 1M Volver a dimensionar los Ficheros de Datos En lugar de añadir espacio a la BD añadiendo ficheros de datos. Cambio De La Selección De Almacenamiento Cambio de las Definiciones de Almacenamiento Ejemplo ALTER TABLESPACE app_data MINIMUN EXTENT 2M. ‘filename’]. El administrador de la BD puede corregir errores estimando las necesidades de espacio y reclamando el no utilizado en la BD.dbf 1M app02. ALTER TABLESPACE app_data DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 999). Utilice el comando ALTER TABLESPACE para alterar la definición de almacenamiento por defecto.. Utilice el comando ALTER DATABASE para incrementar o disminuir manualmente el tamaño de un fichero de datos: ALTER DATABASE [database] DATAFILE ‘filename’ [.dbf’ RESIZE 200M. en un tablespace: ALTER TABLESPACE tablespace (MINIMUM EXTENT integer [K | M] | DEFAULT storage_clause ) Administración de Bases de Datos . RESIZE integer {K | M] Donde: Integer es el tamaño absoluto del fichero de datos resultante.51 Para deshabilitar el AUTOEXTEND ALTER DATABASE DATAFILE ‘filename’ AUTOEXTEND OFF Cambio Del Tamaño Manualmente De Los Ficheros De Datos Ejemplo: ALTER DATABASE DATAFILE ‘DISK5/app02. Tablespace APP_DATA app01.. el administrador puede cambiar el tamaño del fichero de datos.

5. Usar el Storage Manager. ni cualquier otro con segmentos rollback activos. Expandir el nodo Tablespace. En la página General de la hoja de propiedad. Usar el Storage Manager. reciben un error. 2. Seleccionar el tablespace. Cuando un tablespace en puesto off-line. El Estado OFF-LINE de un Tablespace El servidor Oracle no permite ninguna sentencia SQL para referenciar objetos contenidos en este tablespace.52 OEN 1. bien sea directamente o controlando la integridad referencial. seleccionar el radio button Offline. pueden ser tomados fuera de línea. cierra una BD. 5. Seleccionar el fichero de datos. Ni el tablespace SYSTEM. 3. Nota: Hay tres modos diferentes por los que un tablespace puede ser puesto Off-line: • Normal • Temporalmente • Inmediato Oracle recomienda que si no suceden errores en ningún fichero de datos. 2. o alguno con segmentos rollback activos o segmentos temporales. El servidor Oracle realiza un checkpoint en todos los ficheros de datos del tablespace antes de que este sea puesto offline. no Está disponible para tener acceso a él. Hacer clic en Aplicar. 3. Si un tablespace está off-line cuando Ud. introducir la información de almacenamiento. El administrador de la BD puede poner un tablespaceoff-line para hacer que: • • Poner una parte de la BD no disponible. Administración de Bases de Datos . 4. Poner el Tablespace Off-line Siempre que la BD sea abierta. Los usuarios solo pueden acceder a un tablespace solo si está on-line. Los usuarios intentan acceder a tablas u objetos de un tablespaces que está off-line. Cuando un tablespace se pone off-line o de nuevo on-line. Expandir el nodo Tablespace. Hacer clic en Aplicar. Tablas o una aplicación no disponible. 4. Poner Los Tablespaces Offline U Online ESTADO OFFLINE • • El tablespace que está fuera de la línea. el suceso es grabado en el diccionario de datos y el fichero de control. Ejemplo ALTER TABLESPACE app_data OFFLINE. En la página de Extensiones de la hoja de propiedad. mientras realoja los ficheros de datos. poner un tablespace off-line en el modo normal. ALTER TABLESPACE tablespace (ONLINE | OFFLINE [NORMAL | TEMPORARY | INMEDIATE] ) OEN 1. excepto el del SYSTEM. manteniendo la accesibilidad para el resto de la BD. un administrador puede poner off-line cualquier tablespace. el tablespace permanece off-line y no será controlado cuando la BD sea montada y vuelta a abrir de nuevo. el servidor Oracle pone todos los ficheros de datos asociados off-line.

5..53 Movimientos De Los Ficheros De Datos Movimiento de los Ficheros de Datos: ALTER TABLESPACE • • El tablespace APP_DATA tiene que estar off-line.dbf’. Ejemplo ALTER TABLESPACE app_data RENAME DATAFILE ‘DISK4/app01. ‘filename’]. Administración de Bases de Datos . Utilice el proceso siguiente para volver a nombrar un fichero de datos: 1. 3.dbf’ TO ‘/DISK2/system01. Dependiendo del tipo de tablespace.. Tiene que existir el fichero de datos destino.. TO ‘filename’ [. Uso del Comando ALTER DATABASE El comando ALTER DATABASE puede ser utilizado para mover cualquier tipo de ficheros de datos: ALTER DATABASE [database] RENAME FILE ‘filename’ [.dbf’ TO ‘ /DISK5/app01. 2.... Poner el tablespace off-line. El destino del fichero de datos tiene que existir. el administrador de la BD puede mover ficheros de datos utilizando uno de los siguientes tres métodos: Usando el Comando ALTER TABLESPACE E comando ALTER TABLESPACE se aplica solo a ficheros de datos en un tablespace non-SYSTEM. Utilizar el comando del sistema operativo para mover o copiar los ficheros.dbf’. TO ‘filename’ [.. ‘filename’].. Ejecutar el comando ALTER TABLESPACE RENAME DATAFILE. ‘filename’]. Movimiento De Ficheros De Datos: ALTER DATABASE • • La base de datos tiene que estar montada. 4. Ejemplo: ALTER DATABASE RENAME FILE ‘/DISK1/system01. que no contenga segmentos rollback activos o temporales: ALTER TABLESPACE tablespace RENAME DATAFILE ‘filename’ [. ‘filename’]. Poner el tablespace on-line Utilice un comando del sistema operativo para borrar el fichero si es necesario.

2. Cerrar la BD . 3. Ejemplo DROP TABLESPACE app_data INCLUDING CONTENTS. Para poner un tablespace sólo-lectura de forma que se pueda escribir en él. Montar la BD. Nota: • • Usar el Storage Manager. Expandir el nodo del Tablespace y seleccionar el fichero de datos. OEN 1. Utilizar un comando del sistema operativo para mover los ficheros. La forma recomendada para cumplir con estas restricciones es arrancar el instance en el modo restringido. no crean o mueven ficheros. Hacer clic en Aplicar. 5. Estos comandos verifican que el fichero existe en la nueva posición. todos los ficheros de datos en el tablespace tienen que estar on-line. En la página General de la hoja de propiedad. 4. Poner los tablespace en sólo lectura será la causa de que se realice un checkpoint en los ficheros de datos del tablespace. tiene que cumplir con varias condiciones. Borrado De Tablespaces BORRADO DE TABLESPACES ES NECESARIO PONERLO OFFLINE ANTES DE BORRARLO La siguiente sentencia elimina el tablespace APP_DATA y todos sus contenidos. Abrir la BD. 2. Creación de Tablespaces de Sólo-Lectura en un Soporte de Sólo-Lectura • Poner un tablespace en sólo-lectura. Administración de Bases de Datos . • Volver a nombrar los ficheros de datos para señalar la nueva posición. Tablespaces De Solo-Lectura EL ESTADO DEL TABLESPACE READ-ONLY Ejemplo: ALTER TABLESPACE app_data READ ONLY. 4.54 Utilice el proceso siguiente para volver a nombrar los ficheros en los tablespaces que no pueden ser puestos off-line: 1. Ejecutar el comando ALTER DATABASE RENAME FILE. 3. El tablespace APP_DATA esta disponible solo Para operaciones de lectura. • Copiar sus ficheros en un soporte de sólo-lectura. Antes que el DBA pueda poner un tablespace de sólo-lectura. Proporcionar siempre nombres de ficheros completos (incluidas las vías de acceso) para diferenciar los ficheros de datos antiguos de los nuevos. actualizar la información del fichero.

Cuando un tablespace es borrado. solo se borran los ficheros punteros del fichero de control de la BD asociada. Incluso si un tablespace está seleccionado en sólo-lectura puede ser borrado. puede eliminar un tablespace de la BD. Un tablespace que continua teniendo datos no puede ser borrado sin la opción INCLUDING CONTENTS. Seleccionar el tablespace->Eliminar. Información Del Diccionario De Datos OBTENCIÓN DE INFORMACIÓN DE TABLESPACE DBA_TABLESPACE • TABLESPACE_NAME • NEXT_EXTENT • MAX_EXTENTS • PCT_INCREASE • MIN_EXTLEN • STATUS • CONTENTS Para listar los nombres y los parámetros de almacenamiento por defecto de todos los tablespaces en una BD utilice la siguiente consulta en la vista DBA_TABLESPACES: SVRMGR> SELECT tablespace_name. max_extents. con segmentos dentro de él. pct_increase. Usar el Storage Manager. CASCADE CONSTRAINTS borra las restricciones de integridad referencial de las tablas fuera del tablespace que se refieren a las clave primaria y única de las tablas en el tablespace borrado. Expandir el nodo del Tablespace y seleccionar el tablespace. utilizando el comando DROP TABLESPACE: DROP TABLESPACE tablespace [INCLUDING CONTENTS [CASCADE CONSTRAINTS]] donde: tablespace INCLUDING CONTENTS nombre del tablespace que se quiere borrar. borra todos los segmentos del tablespace. cuando éste y su contenido no vayan a ser necesarios. 3. Los ficheros de la BD continúan existiendo y tienen que ser borrados explícitamente a nivel del sistema operativo. next-extent. Esto es posible ya que el comando DROP solo actualiza el diccionario de datos (que tiene que ser lectura-escritura). tablespace_name ----------------------SYSTEM RBS TEMP DATA01 4 rows selected initial_extent ----------------10240 10240 262144 204800 next-extent -------------10240 10240 262144 204800 max_extents ----------------121 121 999 999 pct_increase ----------------50 50 50 50 min_extlen -------------0 0 131072 51200 Administración de Bases de Datos .55 Ud. 4. Está recomendado que se ponga el tablespace off-line antes de borrarlo para asegurar que ninguna transacción accede ningún de los segmentos del tablespace. 2. min_extlen FROM 2 dba_tablespaces. initial_extent. Directrices • • • • • OEN 1. pero nos los ficheros físicos que conforman el tablespace. sus datos no están en la BD. Cuando un tablespace ha sido borrado. Hacer clic en OK.

dbf 5 rows selected.CREATE_BYTES V$TABLESPACE . enabled. tal como temporal o permanente y la disponibilidad de los ficheros de datos: SVRMGR> SELECT tablespace_name. file_name ------------------------------/DISK1/SYSTEM01.RFILE# . maxbytes. o READ ONLYde los ficheros de datos. bytes.56 Utilice la siguiente consulta para obtener información a cerca del tipo de tablespace.NAME .ENABLED . contents. Administración de Bases de Datos . tablespace_name ----------------------SYSTEM RBS TEMP DATA01 4 rows selected contents ------------------PERMANENT PERMANENT TEMPORARY PERMANENT status -------------ONLINE ONLINE ONLINE ONLINE Obtención De Información De Los Ficheros De Datos DBA_DATA_FILES • FILE_NAME • TABLESPACE_NAME • BYTES • AUTOEXTENSIBLE • MAXBYTES • INCREMENT_BY La siguiente consulta devuelve información a cerca del tablespace al que los ficheros de datos pertenecen y la selección de la opción AUTOEXTEND: SVRMGR> SELECT file_name.name FROM v$datafile d.TS# .-----------------31457280 NO 0 0 5242880 NO 0 0 5242880 NO 0 0 5242880 NO 0 0 512000 YES 15728640 512 OBTENCION DE INFORMACION DE TABLESPACES Y FICHEROS DE DATOS A PARTIR DEL FICHERO DE CONTROL V$DATAFILE . status.ts#.name. READ WRITE. bytes. ONLINE.STATUS .FILE# .dbf /DISK3/TEMP01.dbf /DISK4/DATA01.BYTES .NAME La siguiente consulta de la vista de rendimiento dinámico V$DATAFILE lista los nombres de los ficheros de datos y tamaño.ts#=d. d.-------------------. status FROM dba_tablespaces.------------. tables_name ------------------SYSTEM RBS TEMP DATA01 DATA02 bytes autoextensible maxbytes increment_by ------------.TS# . t. El nombre del tablespace al que los ficheros de datos pertenecen y la disponibilidad –el estado OFFLINE. increment_by FROM dba_data_files.dbf /DISK5/DATA02. v$tablespace t 2 WHERE t. autoextensible. SVRMGR> SELECT file#. create_bytes. tables_name.dbf /DISK2/RBS01.

tabla2 log=exp. sql> DROP TABLE tabla2. 2.------------. Método 1 Reubicación por Tabla Es posible mover una o varias tablas a otro tablespace. Consideraciones Para La Creación De Tablespaces GUIA • • • Utilice múltiples tablaspaces. Administración de Bases de Datos .dbf /DISK3/TEMP01.log Borrar tablas de su origen.57 FILE# -------1 2 3 4 5 RFILE -------1 2 3 4 5 #D.dbf /DISK5/DATA02. • Seleccionar los parámetros de almacenamiento para que un tablespace estime el tamaño de un objeto típico que vaya a ser creado en el mismo. la sólo-lectura o almacenamiento de segmentos temporales.------------------.-----------READ WRITE 31457280 31457280 SYSTEM READ WRITE 5242880 5242880 RBS READ WRITE 5242880 5242880 TEMP READ WRITE 5242880 5242880 DAT001 READ WRITE 512000 512000 DATA02 5 rows selected. Reserve los tablespaces para un tipo particular de uso de la BD. sql>ALTER TABLESPACE tablespace_destino COALESE. Hacer backup de tablespaces individualmente. Utilice Múltiples Tablespaces El uso de múltiples tablespaces le da más flexibilidad en la realización de operaciones con la BD. tal como la actividad de actualización. éste método puede aplicar en casos de tablas muy grandes y con un alto grado de criticidad. en esta ocasión se comentarán los métodos de reubicación por tabla y por usuario. Especificar los parámetros de almacenamiento para los tablespaces. Separar los fragmentos de rollback de los segmentos de datos. Movimiento De Objetos Entre TABLESPACES Existen diferentes métodos para reubicar objetos. Ejemplo sql> DROP TABLE tabla1. para los usuarios de la BD.a continuación se muestran los pasos: 1. Asignar Cuotas del Tablespace a los Usuarios. Asignar cuotas del tablespace.dbf /DISK4/DATA01. Ponga los tablespaces individuales off-line mientras otros permanecen on-line. Asignar cuotas de tablespaces para los usuarios.dbf STATUS ------------SYSTEM ONLINE ONLINE ONLINE ONLINE ENABLED BYTES CREATE_BYT T.dmp tables=tabla1. Separar los datos de aplicación de ambos.NAME -------------------.NAME -----------------------------------/DISK1/SYSTEM01. La columna FILE# contiene el numero absoluto de ficheros de datos y la columna RFILE# el número relativo de ficheros de datos del tablespace. • • • • • • • Separar los datos del usuario de los del diccionario. para prevenir un fallo del disco sea la causa de pérdida permanente de datos. Exportar la tabla o tablas que serán reubicadas. el siguiente comando nos puede ser de utilidad para eliminar las marcas de extents que han dejado algunas tablas modificadas en el tablespace destino. según sea necesario. Ejemplo exp usr/password file=exp.dbf /DISK2/RBS01. Es importante verificar si se cuenta con el espacio necesario para la reubicación de las tablas. Especificar los Parámetros de Almacenamiento para el Tablespace • Especificar los parámetros de almacenamiento por defecto para objetos que serán creados en un tablespace. Almacenar los ficheros de datos de diferentes tablespaces en controladores de discos distintos para reducir los conflictos I/O.

es necesario eliminar la opción UNLIMITED TABLESPACE. Editar el archivo resultante (sentencia.dmp owner=user1.tabla1 sql>DROP TABLE user2. “columna2” NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 10240 NEXT 10240 MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 50 FREELISTS 1 FREELIST GROUP 1 ) TABLESPACE “TABLESPACE_DESTINO”. Para el usuario con las tablas que serán reubicadas.dmp ignore=y tables=tables1. Ejemplo: Imp usr/password file=exp. Ejemplo: exp usr/password file=exp. es necesario quitar los comentarios “REM” de cada linea de dicho archivo.user2 exp usr/password file=exp.sql) para modificar la cláusula tablespace con el nuevo tablespace para las tablas. donde se alojarán las tablas: ALTER USER user1 QUOTA bytes ON tablespace_destino d) Si el usuario user1 tiene asignado el role de RESOURCE. Importar el archivo original (exp. REVOKE UNLIMITED TABLESPACE FROM user1.58 3. Ejecutar el archivo editado (sentencia. para actualizar las tablas con todos sus registros y Método 2 reubicar por usuario En ocasiones es necesario reubicar todas las tablas de un usuario en específico de un tablespace a otro: 1. Generar un export a nivel de usuario o general de la base de datos. Ejemplo: ALTER USER user1 DEFAULT TABLESPACE tablespace_destino b) Eliminar la quota en el tablespace original de las tablas. Ejemplo: imp usr/password file=exp. ALTER USER user1 QUOTA 0 ON tablespace_origen c) Agregar quota en el tablespace de destino. Ejemplo: CREATE TABLE “usr”. Borrar las tablas que serán reubicadas. Administración de Bases de Datos .dmp full=y 2.dmp indexfile=sentencia. Ejemplo: sql>DROP TABLE user1.sql full=y 4. 5. Ejecutar import del archivo creado en el export con el parámetro indexfile=y para obtener la sentencia de creación de las tablas.tables2 verificar que se inserten correctamente los registros de la tablas y se actualicen sus constraints. modificar las siguientes configuraciones: a) Modificar el parámetro DEFAULT_TABLESPACE con el nombre del nuevo tablespace de destino.tabla1” (“columna1” VARCHAR2(5). Para verificar y eliminar los roles asigandos al usuario user1: SELECT GRANTED ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE=’USER1’. 6.sql) para la creación de la estructura de la tabla. con ésta acción.tabla2 3. el usuario no tendrá espacio asigando dentro del tablespace.dmp) con el parámetro ignore=y características.

Después de verificar la correcta carga de los datos en el Nuevo tablespace. el import cargará los datos en su nuevo DEFAULT TABLESPACE. Si el usuario con el que se creó el export (user1) no tiene privilegios de creación de objetos en el tablespace original. Ejecutar un import a nivel de usuario para user1 Imp user/passwd file=exp. Es necesario verificar que el usuario (user1) no pueda crear objetos en el tablespace donde se encontraban las tables originalmente. entonces se eliminaron exitosamente los privilegios de creación de objetos en dicho tablespace. en caso de que el usuario lo tuviera originalmente.dmp fromuser=user1 6. 5. NO DEBE tener privilegios de creación de objetos en el tablespace de donde provienen los datos del export. Nota: el usuario del cual serán reubicados las tablas por medio del import. CREATE TABLE tabla1 (columna1 number ) TABLESPACE tablespace_origen Si recibe un ORA-01950 “No privileges on tablespace” como resultado de la creación de la tabla. Administración de Bases de Datos . activar nuevamente el role RESOURCE para agregar UNLIMITED TABLESPACE. Normalmente un import intenta cargar las tablas en el mismo tablespace donde fueron extraidas. Crear una tabla especificando el tablespace original.59 4.

Cluster (Agrupamiento) Las filas en un cluster son almacenadas basándose en los valores de la columna clave. Administración de Bases de Datos . Esta sección describe los tipos diferentes de segmentos: • • • • TABLA PARTICIÓN TABLA CLUSTER ÍNDICE Tabla Una tabla conocida también como una tabla no agrupada o no particionada. Índice Todas las entradas de un índice particular son almacenadas dentro de un segmento del índice. Cuando el segmento crece. Cuando un segmento se crea. Un cluster puede contener una o más tablas y es un tipo de segmento de datos. La razón de este segmento es mirar la posición de la filas en la tabla basada en una clave específica. que es un grupo de bloques contiguos. los datos dentro de una tabla tienen que ser almacenados en varias particiones. consta al menos de una extensión. llamado también bloque lógico. En estos casos. El uso de este tipo de segmentos requiere la opción de particionamiento en Oracle8 Enterprise Edition. es el medio más común de almacenamiento de datos dentro de la BD. Partición de una Tabla La escalabilidad y disponibilidad son los intereses mas importantes cuando hay una tabla en una BD de uso muy frecuente. El servidor Oracle normalmente soporta el particionamiento por rangos de valores de clave. cada una de las cuales reside en un tablespace diferente. Un bloque. es una unidad mínima utilizada para operaciones de lectura-escritura. Tipos De Segmentos Los segmentos son objetos que ocupan espacio en una BD. son utilizados tres segmentos de índice.60 Capítulo Nº 8 ESTRUCUTURA DE ALMACENAMIENTO Y RELACIONES VISTA GENERAL • • • • Una BD es agrupada lógicamente en tablespace. Todos los datos de la tabla no particionada tiene que ser almacenados en una tablespace. Las tablas de un cluster pertenecen al mismo segmento y comparten las mismas características de almacenamiento. Si una tabla es particionada cada una de las particiones es un segmento y pueden especificarse los parámetros de almacenamiento para controlarlos independientemente. Un tablespace puede constar de uno o más segmentos. y el administrador de la BD tiene muy poco control de la localización de las filas dentro de los bloques de la tabla. Si una tabla tiene tres índices. las extensiones se van añadiendo al segmento. Los datos dentro de una tabla son almacenados sin un orden determinado.

El almacenamiento de características del índice LOB puede ser especificado por el administrador de la BD. En estos casos.bsq cuando se crea una BD. el servidor Oracle almacena estos valores en segmentos separados conocidos como segmentos LOB. imágenes o videos. En este caso.61 Tipos De Segmentos • • • • Tabla organizada por índices Índices partición Segmento Rollback Segmento temporal Tabla organizada por índices En una tabla organizada por índices los datos son almacenados dentro del índice basado en el valor de la clave. Índices partición Un índice puede ser particionado y situado en varios tablespaces. SELECT DISTINCT y SELECT GROUP BY. como en la creación de índices de una tabla grande. all_lobs) Una columna o más de una tabla puede ser utilizada para almacenar grandes objetos (LOBs) tales como documentos de texto. Esto le permite al usuario deshacer los cambios realizados. Cuando una clasificación necesita mucho espacio. Tabla Anidada Una columna en una tabla puede estar formada por una tabla definida por el usuario como en el caso de elementos dentro de un orden. Este segmento ayuda a inicializar el diccionario de datos en la memoria en el arranque de la BD. Estas tablas no necesitan un buscador de tabla. es almacenada como un segmento separado. El uso de este tipo de segmento requiere la opción Particionamiento dentro de Oracle8 Enterprise Edition. Índice LOB Un índice LOB es creado implícitamente cuando un segmento LOB se crea. Segmento Rollback El segmento Rollback es utilizado por una transacción que está haciendo cambios en una BD. el valor anterior es almacenado en el segmento rollback. Antes de cambiar los datos o los bloques del índice. Segmento temporal Cuando un usuario ejecuta comandos tales como el CREATE INDEX. conocido también como el segmento oculto. la tabla interior que es conocida como una tabla anidada. se escriben en el disco resultados intermedios. El segmento bootstrap no puede ser consultado o actualizado y no necesita ningún mantenimiento por el administrador de la BD. Oracle intenta realizar tantas clasificaciones en la memoria como puede. El uso primario de un índice particionado es minimizar la contención separando la I/O en el índice. La tabla solo contiene un localizador o señalador de la localización de los datos LOB correspondiente. ya que todos los datos pueden ser recuperados directamente desde el árbol del índice. Es estos casos son creados los segmentos temporales. El uso de una tabla anidada requiere la opción Objetos de Oracle8 Enterprise Edition. Administración de Bases de Datos . Si la columna es grande. La razón del índice segmento LOB es permitir ver una columna de valores LOB específica. dba_lobs. Tipos De Segmentos • • • • Segmento LOB Índice LOB Tabla Anidada Segmento Bootstrap Segmento LOB (dba_segments. Segmento Bootstrap Un segmento Bootstrap. cada partición del índice se corresponde a un segmento y no puede abarcar múltiples tablespaces. users_lobs. es creado por el fichero de comandos sql.

las extensiones liberadas se añaden al pool de extensiones libres disponibles en un tablespace. La liberación y ocupación frecuentes de extensiones podría llevar a la fragmentación del espacio dentro de los ficheros de datos del tablespace. Cuando los segmentos liberan espacio. que es el primer bloque del fichero. A medida que se crean los segmentos. Asignación y Desasignación de Extensiones • Asignadas cuando el segmento es: o Creado o Extendido o Alterado Desasignadas cuando el segmento es: o Borrado o Alterado o Truncado o Automáticamente dimensionado (solo segmentos rollback) • Cuando se crea un tablespaces los ficheros de datos del mismo contienen los siguientes elementos: • Un bloque de cabecera.62 Control Del Uso De Extensiones Por Los Segmentos PRIORIDAD DE LA CLÁUSULA DE ALMACENAMIENTO Una columna de almacenamiento puede ser especificada a nivel del segmento para controlar cómo la extensiones son asignadas a ellos. El espacio continuo utilizado por el segmento recibe el nombre de extensión utilizada. • Una extensión libre que consta de la parte restante del fichero de datos. se va colocando en las extensiones libres de un tablespaces. Datafiles o Ficheros de Datos Parámetros De Utilización Del Espacio Del Bloque • • • • INITRANS MAXTRANS PCTFREE PCTUSED Administración de Bases de Datos .

MAXTRANS: tiene un valor por defeto de 255. selecciona el límite del número de transacciones concurrentes que pueden hacer cambios en un bloque de datos o un bloque de índice. tal como una tabla con PCTFREE = 20 y PCTUSED = 40 1. PCTUSED: La pista de bloques libres de un segmento es una lista de bloques que son candidatos para la acomodación de inserciones futuras. por defecto se cea con una pista de bloques libres. Un segmento. representa el porcentaje mínimo de espacio utilizado que el servidor oracle intenta mantener para cada bloque de datos de la tabla. Un bloque es puesto de nuevo en la pista de bloques libres cuando su espacio usado cae por debajo de PCTUSED. garantiza el mínimo de concurrencia. para un segmento de datos. El bloque no vuelve a estar disponible para inserciones cuando las filas ocupan el 80% del espacio para datos disponibles en el bloque. este valor restringe el uso de espacio para las entradas de transacción y de este modo garantiza que hay suficiente espacio en el bloque para ser usado por las filas o los datos del índice. seleccionando el parámetro FREELIST de la cláusula de almacenamiento. Cuando se selecciona. y 2 para un segmento de índice. que son creadas en un índice o en un bloque de datos. Este valor por defecto es 10 (%). esto es. Las filas son insertadas en el bloque hasta que la utilización alcanza el 80%. Administración de Bases de Datos . el espacio del bloque que permanece después de deducir el espacio de la cabecera del tamaño total del bloque. Tanto PCTFREE y PCTUSED son calculados como porcentaje de espacio de datos disponible. El valor por defecto es 40 (%). específica el porcentaje de espacio en cada bloque reservado para el crecimiento resultante de actualizaciones de filas en el bloque. Los segmentos pueden ser creados con un número mayor de pistas de bloques libres. Uso del espacio del bloque Los siguientes pasos explican como es utilizado el espacio dentro de un bloque para un segmento de datos. Parámetros Que Controlan El Uso Del Espacio De Datos PCTFREE: para un segmento de datos.63 Parametros Que Contronan La Concurrencia INITRANS y MAXTRANS: especifican el número máximo de entradas de transacciones. INTRANS: tiene un valor por defecto de 1 para un segmento de datos.

como resultado de una actualización. Unión de espacio libre ALTER TABLESPACE data01 COALESCE. el bloque está disponible para inserciones. se actualiza y se le signa un valor. El 20% restante puede ser utilizado para los incrementos de tamaño de las filas. block_id. por ejemplo. En el momento en que el espacio es desasignado. Este puede ser el caso.2. SELECT file_id. 3.2. • Cuando el servidor Oracle necesita asignar una extensión que requiere espacio de más de una extensión adyacente libre. en cualquiera de las siguientes condiciones: • Cuando SMON inicia una transacción de espacio para que se unan las extensiones adyacentes libres. El espacio contiguo puede ser librado cuando se desasignan varias extensiones dentro de un tablespace. block_id. Estas extensiones pueden unirse para formar una. Si las filas del bloque son borradas o si se reduce su tamaño como resultado de actualizaciones. a FILE_ID b BLOCK_ID c BLOCKS d BYTES 1 2 3 4 5 1 1 1 2 2 1801 1876 5107 5632 6232 75 175 525 600 2055 153600 358400 1075200 1228800 4208640 De esta forma se cumple que b1+c1=b2 y a1=a2. de dos tablas que son borradas. • Cuando lo solicita el administrador de la BD. bytes FROM dba_data_files WHERE tablespace_name=’SYSTEM’ ORDER BY 1. bytes FROM dba_free_space WHERE tablespace_name=’SYSTEM’ ORDER BY 1. SELECT file_id. Así la utilización del bloque puede exceder del 80%. la utilización del mismo se incrementa y el ciclo se repite empezando por el paso 1. pueden existir dos extensiones contiguas. ALTER TABLESPACE SYSTEM COALESCE. un bloque no se utiliza para inserciones hasta que su utilización no cae por debajo de PCTUSED que es del 40%. blocks. Nota: SMON une extensiones solo en los tablespaces en los que PCTINCREASE es mayor que cero. Como las filas son insertadas en el bloque. Cuando la utilización cae por debajo de PCTUSED.64 2. 4. No obstante. la utilización del bloque puede caer por debajo del 80%. el espacio contenido en d1 y d2 puede ser colapsado b2+c2<> b3 por lo tanto el espacio contenido en d3 seguirá igual. La selección PCTINCREASE=1 en la cláusula de almacenamiento por defecto para tablespaces que contienen objetos de usuario para habilitar la unión automática de espacio libre. FILE_ID BLOCK_ID BLOCKS BYTES 1 1 2 1801 5107 5632 250 525 2655 512000 1075200 5437440 Administración de Bases de Datos . por ejemplo. blocks. en el caso en que una columna que originalmente era null.

si es necesario. Bloque De La Base De Datos • • • • Unidad mínima de I/O. El espacio en el bloque es unido por el servidor Oracle cuando es necesario. Datos La fila de datos se inserta en el bloque de arriba abajo. Los bloques de cabecera crecen de arriba hacia abajo. percent_extents_coalesced FROM dba_free_space_coalesced WHERE percent_extents_coalesced <> 100. Definido en la creación de la BD. Expandir el nodo Tablespace. permitiendo tanto a la cabecera como a las filas espacio para crecer. Espacio Libre Está en el medio. Definido por DB_BLOCK_SIZE. directorio de filas y entradas de transacción que son utilizadas cuando las transacciones hacen cambios en la filas del bloque. Contenido del Bloque de la BD • • • Cabecera Espacio libre Datos Cabecera Contiene la dirección del bloque de datos. El espacio libre de un bloque es inicialmente contiguo. Utilice la siguiente consulta para obtener esta información: SVRMGR> SELECT tablespace_name. Utilice el Tablespace Manager.65 Unión baja demanda La visualización DBA_FREE_SPACE_COALESCED puede ser utilizada para encontrar si algún tablespace tiene extensiones que puedan ser unidas. 4. el directorio de tablas. 3. TABLESPACE -------------------RBS DATA01 2 rows selected TOTAL_EXPE -------------------3 9 PERCENT_EX -------------------33 22 La unión de espacio libre en un tablespace puede ser realizada ejecutando el comando ALTER TABLESPACE tablespace_name COALESCE OEM 1. No obstante. Administración de Bases de Datos . total_extents. Consta de uno o más boques de O/S. 2. Seleccionar Herramientas -> Unir Extensiones Libres. Seleccionar Tablespace. los borrados y actualizaciones pueden fragmentar este en el bloque.

Consulta De Información De Segmentos Consultar la vista DBA_SEGMENTS para controlar el número actual de extensiones y bloques situados en un segmento. excluyendo el fichero de la cabecera. se añade una fila al DBA_DATA_FILES. se añade una fila al DBA_TABLESPACES. blocks FROM dba_segments WHERE owner=’SCOTT’. mientras que se ajusta DBA_FREE_SPACE para mostrar el espacio inferior libre en los ficheros donde las extensiones han sido creadas por el segmento. block_id. Cuando se crea un tablespace con un fichero o más. Administración de Bases de Datos .66 Obtención De Información De Estructuras De Almacenaje VISTAS DEL DICCIONARIO DE DATOS Extensiones usadas DBA_EXTENTS Extensiones libres DBA_FREE_SPACE Segmentos DBA_SEGMENTS Ficheros de Datos DBA_DATA_FILES Tablespaces DBA_TABLESPACE Las relaciones entre tablespaces. En esta etapa. segmentos y extensiones (ambas. el espacio en cada fichero de datos. usadas y libres) pueden ser visualizadas consultando el diccionario de datos. datos. ficheros de datos. TABLESPACE_NAME -----------------------------DATA01 DATA01 DATA01 DATA01 DATA01 EXTENTS BLOCKS -------------.-----------5 55 1 5 1 5 1 5 1 5 SEGMENT_NAME ------------------------EMP DEPT BONUS SALGRADE DUMMY 5 rows selected. Todo el espacio de un fichero tiene que estar reconocido tanto en DBA_FREE_SPACE como en DBA_EXTENTS. Cuando se crea un segmento es visible una fila en DBA_SEGMENTS. SVRMGR> 2 3 4 SELECT extent_id. SVRMGR> 2 3 SELECT segment_name. file_id. El espacio situado en las extensiones de este segmento puede ser visualizado desde DBA_EXTENTS. Por cada fichero de la BD. blocks FROM dba_extents WHERE owner=’SCOTT’. se muestra en DBA_FREE_SPACE como una extensión libre. BLOCK_ID -------------2 27 32 42 57 BLOCKS -----------5 5 10 15 20 EXTENT_ID FILE_ID -------------------------0 4 1 4 2 4 3 4 4 4 5 rows selected. Obtencion De La Informacion De Extensiones Utilizadas Usar la vista DBA_EXTENTS para controlar las extensiones de un segmento dado. extents. tablespace_name. AND segment_name=’EMP’.

El siguiente listado nos muestra los diferentes tipos de objetos en orden creciente de propensión a la fragmentación: • Los objetos del diccionario de datos. • Los segmentos de datos e índices utilizados por las aplicaciones escritura-usuario pueden necesitar ser reorganizadas más frecuentemente que los repositorios. con la excepción de la tabla auditora. Así. estos objetos tienen muy poca propensión para la fragmentación. COUNT(*). nunca son borrados o truncados. MAX(blocks). Los segmentos temporales en tablespaces permanentes pueden liberar espacio frecuentemente y por ello tienen que estar situados en tablespaces separados. sus usos y propensiones de fragmentación se muestran en la tabla. SUM (blocks) FROM dba_free_space GROUP BY tablespace_name. SVRMGR> 2 3 SELECT tablespace_name. Administración de Bases de Datos . Está recomendado que sean situados en diferentes tablespaces para minimizar la pérdida de espacio.67 Control De La Información De Extensiones Libres Usar la vista DBA_FREE_SPACE para controlar las extensiones de un segmento dado. Tipos de Objetos y Fragmentación La estructura recomendada para el tablespace. tienen más tendencia a causar fragmentación en un sistema con gran actividad de actualización. tienen una mayor propensión para la fragmentación que los repositorios de aplicaciones. Dado que estas tablas son reorganizadas raramente. Los segmentos temporales son analizados en una lección posterior. Planeamiento De La Localización De Los Segmentos Organización de Tablespaces Basadas en la Propensión a la Fragmentación Tablespaces SYSTEM TOOLS DATAn INDEXn RBSn TEMPn Uso Datos del diccionario Aplicaciones Datos de segmentos Índice de segmentos Segmentos Rollback Segmentos Temporales Fragmentación Cero Muy Bajo Bajo Bajo Alto Muy Alto Los diferentes tipos de segmentos tiene propensiones varias para la fragmentación. • El espacio utilizado por los repositorios de aplicaciones tales como el Oracle Enterprise Manager y el Designer/2000 son solo asignados mientras se reorganizan estas estructuras. • Ya que los segmentos Rollback puedne desasignar extensiones automáticamente. y por ello no llevan a fragmentar el tablespace. COUNT(*) -------------2 3 1 1 1 MAX(BLOCKS) --------------------1284 2329 1023 5626 2431 SUM(BLOCKS) --------------------1533 2419 1023 5626 2431 TABLESPACE_NAME -----------------------------DATA01 RBS SORT SYSTEM TEMP 5 rows selected.

cada una de las cuales almacena filas que tiene un grupo de valores clave específico. Tabla Particionada Habilita la construcción de aplicaciones escalables. Las columnas de una fila se archivan en el orden en que están definidas y las columnas NULL restantes no son almacenadas.68 Capítulo Nº 9 MANEJO DE TABLAS Almacenamiento De Datos Del Usuario • • • • Tabla no agrupada Tabla Particionada Tabla de índices organizados Tablas agrupadas (Clustered) Tabla No Agrupada Es la forma más común utilizada para almacenar datos de usuario. Tiene las siguientes características: • • • • Una tabla particionada tiene una o más particiones. Cada fila en una tabla puede tener un número distinto de columnas. Es la tabla por defecto. Un administrador de BD tiene un control muy limitado en la distribución de filas en una tabla no agrupada. Cada partición en una tabla es un segmento y puede ser situado en un tablespace diferente. CLOB NCLOB. Hay disponibles comandos especiales para manejar particiones dentro de una tabla.S) DATE RAW(N) LONG BLOB. BFILE LONG. Tipos De Datos Oracle Tipo de Datos Definidos por el Usuario Integrados Escalar Colecciones Relación VARCHAR2(N) NVARCHER2(N) CHAR(N) NCAHR(N) NUMBER(P. Estructura De Una Fila Las filas de datos son almacenadas en los bloques de la BD como registros de longitud variable. Las particiones son útiles para tablas grandes que pueden ser consultadas o manipuladas utilizando varios procesos concurrentes. Las filas pueden ser almacenadas en cualquier orden dependiendo de la actividad de la tabla. LONG RAW ROWID VARRAY TABLE REF Administración de Bases de Datos .

Pueden almacenar hasta 38 dígitos significativos. NVARCHAR2 (solo utilizan el número de bytes necesarios para almacenar el valor de la columna actual y puede variar en tamaño por cada fila. tales como imágenes binarias.1 byte para el exponente .) • DATOS NUMERICOS: Son siempre almacenados como datos de longitud variable. Los tipos de datos LONG Y LONG RAW se han utilizado previamente para datos no estructurados.55 5. Long. Fija: CHAR. (incluido punto decimal). Administración de Bases de Datos . RAW Pequeños datos binarios. Estos tipos de datos son reemplazados por tipos de datos LOB.56 -555. Requieren:ç . Siempre incluye hora. Variable: VARCHAR2. documentos o información geográfica. LONG ROW Una única columna por tabla Hasta 2 gigabytes SELECT devuelve datos Datos almacenados in-line Sin soporte de tipo objeto Acceso secuencial a chuncks LOB CLOB y LONG : Datos de caracteres Múltiples columnas por tabla Hasta 4 gigabytes SELECT devuelve localizador Datos almacenados in-line o out--of-line Soporta de tipo objeto Acceso ocasional a chuncks NLOB : Datos de juegos de caracteres nacionales. del S. Tipos De Datos Para El Almacenamiento De Objetos Grandes LONG. LONG almacena todos los datos en la tabla. NCHAR (son almacenados con blancos de rellenos) Long. . al menos que el tamaño sea menor que el máximo para el tipo de dato varchar2 (4000 bytes).2 5 555. LOB devuelve el localizador. Comparación Lob y Long LOB permite múltiples columnas LOB por tabla. Tamaño máximo LONG es de 2 Gb. LONG devuelve datos.1 byte por cada 2 dígitos significativos de la mantisa. BLOB y LONG RAW : Datos no estructurados BFILE : datos no estructurados en fich. y LOB 4 Gb.1 byte por los números negativos si el número de dígitos significativos es menor de 38. minutos y segundos.56 3 bytes 3 bytes 2 bytes 4 bytes 5 bytes -555 5551 52 55555 -55 4 bytes 3 bytes 2 bytes 4 byets 3 bytes • • DATOS DATE Oracle almacena fechas de 7 bytes en campors de longitud fija. LOB almacena un localizador en la tabla y los datos en otra parte.69 TIPO DE DATOS ESCALARES • DATOS DE CARACTERES: Almacenados tanto como longitud fija como variable en la BD.O. LONG sólo una. EJEMPLO: 5. LOB permite guardar los datos en un segmento y tablespace separado o en un fichero host.

70
Tipo De Dato Rowid
• • Identificador único para una fila. Utilizado para localizar una fina

Formato ROWID oooooo
Identificador del objeto

FFF
Numero fichero relativo

BBBBBB
Número bloque

RRR
Número fila

ROWID es una pseudo columna que puede ser consultada con otras columnas de una tabla. Tiene las siguientes características: • ROWID es un identificador único para cada fila de la BD. • ROWID no es almacenado explícitamente como un valor. • Además el ROWID no da directamente la dirección física de una fila, puede ser utilizado para localizar la fila. • ROWID proporciona los medios más rápidos de acceso a una fila de una tabla. • Los ROWID están almacenados en índices para especificar filas con un grupo de valores clave dados.

Formato Rowid ROWID necesita 10 bytes de almacenamiento en disco y aparece utilizando 18 caracteres. • Identificador del Objeto: es asignado a cada objeto de datos, tal como tabla o índice cuando se crea, y es único en al tablespace. • Número Relativo del Fichero: es único para cada fichero dentro de un tablespace. • Número de Bloque: representa la posición del bloque que contiene la fila dentro del fichero. • Número de Fila: identifica la posición de la entrada en el directorio de filas en la cabecera del bloque. Internamente el número de objeto de datos necesita 32 bits, el número relativo del fichero necesita 10 bits, el número de bloque 22 bits y el número de fila necesita 16 bits, resultando hasta un total de 80 bits o 10 bytes. ROWID se muestra utilizando un esquema codificado de base 64, tres posiciones para el número relativo de ficheros, seis posiciones para el número de bloque y tres para el número de fila. El esquema codificado de base 64 utiliza los caracteres “A-Z”, “a-z”, “0-90”, “+”, y “/” –un total de 64 caracteres, como el siguiente ejemplo: SVRMGR> SELECT deptno, ROWID FROM scott.dept; DEPTNO ROWID ------------ ---------------------------------10 AAAArsAADAAAAUaAAA 20 AAAArsAADAAAAUaAAB 30 AAAArsAADAAAAUaAAC 40 AAAArsAADAAAAUaAAD En este ejemplo: • AAAArs es el número del objeto de datos • AAD es el número relativo del fichero • AAAAUa es el número de bloque • AAA es el número de fila para el departamento con DEPTNO=10

Localización de una Fila Usando ROWID
Dado que un segmento puede residir sólo en un tablespace, usando el número del objeto, el servidor Oracle puede determinar el tablespace que contiene la fila. El número relativo de fichero dentro del tablespace es utilizado para localizar el fichero, el número de bloque lo es para hacerlo con el bloque que contiene la fila y el número de fila es utilizado para localizar la entrada de la fila en el directorio de filas. La entrada del directorio de filas puede ser utilizado para localizar el inicio de la fila. Así, ROWID puede ser utilizado para localizar cualquier fila dentro de la BD.

Administración de Bases de Datos

71
ROWID RESTRINGIDO • • Puede identificar filas dentro de un segmento. Necesita menos espacio.

BBBBBBBB
Número bloque

RRRR
Número fila

FFFF
Número fichero

ROWID restringido es utilizado en objetos como índices o tablas no particionadas en los que todos las entradas de índices se refierene a filas dentro del mismo segmento.

Colecciones
Las colecciones son objetos que contiene objetos. • Los VARRAY definiciones ordenadas de elementos que contienen un contador y un límite. • Las tablas anidadas son tablas con una columna o variable del tipo de datos TABLE.

Hay dos tipos de colecciones de datos disponibles para almacenar datos respectivos para una fila dada de una tabla. Se necesita la opción de objetos para definir y utilizar las colecciones. A continuacion se analizan brevemente estos tipos.

Varrays
Son útiles para almacenar listas que contienen un pequeño número de elemetos, tales como número de telefonos para un cliente. Caracteristicas: • Un vector es un grupo ordenado de elementos de datos. • Todos los elementos de un vector dado son del mismo tipo de datos. • Cada elemento tiene un índice, que es un número correspondiente a la posición del elemento en el vector. • El número de elementos en un vector es el tamaño del mismo. • Oracle permite que vectores tengan tamaños variables, por lo que se les denomina VARRAY, pero el tamaño máximo tiene que ser especificado cuando se declara el tipo de vector.

Tablas Anidadas
Estas tablas, proporciona un medio para la definición de una tabla como una columna dentro de una tabla. Pueden ser utilizadas para almacenar grupos que pueden tener un gran número de registros tales como un número de líneas en un pedido. En este ejemplo, ORDERS es la tabla principal e ITEMS es la tabla anidada.

Las tablas anidadas tienen generalmente las siguientes características: • Es un grupo de registros o filas no ordenadas. • Las filas en una tabla anidada tiene la misma estructura. • Las filas en una tabla anidada son almacenadas separadas de la tabla principal con una entrada desde la fila correspondiente en la tabla principal. • Las características de almacenamiento de la tabla anidada puede ser definida por el administrador de la BD. • Para una tabla anidada no hay tamaño máximo predeterminado.

Tipos de Relación (REF) Los tipos de relación son utilizados como punteros dentro de la BD. El uso de estos tipos requieren la opción de Objetos. Como ejemplo, cada elemento de un pedido podría estar dirigido a, no hacer referencia a una fila en la tabla PRODUCTOS, sin tener que almacenar el código del producto. Tipos Definidos por el Usuario Oracle permite a un usuario definir tipos de datos abstractos y utilizarles dentro de la aplicación. El uso de esta función requiere la opción de Objetos.

Administración de Bases de Datos

72
Creación De Una Tabla

CREATE TABLE employees ( empno NUMBER(4), last_name VARCHAR2(30) deptno NUMBER(2)) PCTFREE 20 PCTUSED 50 STORAGE (INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE data01;

Sintaxis: CREATE TABLE [schema.] table (column datatype [,column datatype ] …) [TABLESPACE tablespace] [PCTFREE integer [PCTUSED integer [INITRANS integer [STORAGE storage_clause ] [ LOGGING | NOLOGGING] [CACHE | NOCACHE]

donde: schema table column datatype es el propietario de la tabla es el nombre de la tabla es el nombre de la columna es el tipo de dato de la columna

TABLESPACE identifica el tablespace donde será creada la tabla PCTFREE PCTUSED INITRANS MAXTRANS STORAGE LOGGING NOLOGGING CACHE es la cantidad de espacio reservado en cada bloque (en un porcentaje del espacio total menos el lo que de la cabecera) para el crecimiento de las filas. determina el límite menor de espacio utilizado en un bloque (después de que se llena PCTFREE) antes de que esté disponible para futuras inserciones de filas. específica el número de entradas de transacciones asignadas en cada bloque (por defecto es 1) limita el número de entradas de transacciones que pueden ser asignadas en cada bloque (por defecto es 255). identifica la cláusula de almacenamiento que determina como las extensiones serán asignadas a la tabla. específica que la creación de la tabla será anotada en el fichero redo log (también específica que todas las operaciones siguientes contra la tabla anotadas. Esto es por defecto). específica que la creación de la tabla y cierto tipo de datos no serán anotados en el fichero redo log . específica que los bloques recuperados para esta tabla se sitúan en el extremo más recientemente utilizado de la lista LRU en el buffer de la SGA incluso cuando se realiza una exploración total a una tabla. específica que los bloques recuperados para esta tabla están situados en el extremo menos recientemente utilizado de la lista LRU en el buffer de la SGA incluso cuando se realiza una exploración total a una tabla.

NOCACHE

Administración de Bases de Datos

73
Directriz Para La Creación De Tablas
• • Usa algunos tamaños de extensiones estándar para reducir la fragmentación del espacio. Usa la cláusula CACHE para tablas pequeñas frecuentemente utilizadas

• • • •

Sitúe las tablas en un tablespace separado –no en el tablespace que tenga segmentos rollback, segmentos temporales e índices. Usar algunos tamaños de extensión estándar que sean múltiples de 5*DB_BLOCK_SIZE para minimizar la fragmentación. Para mejorar el rendimiento de las exploraciones de toda la tabla, alinear los tamaños de las extensiones con DB_FILE_MULTIBLOCK_READ_COUNT, que es un parámetro de inicialización que define cuantos bloques son requeridos por los procesos del servidor en cada llamada de lectura del sistema operativo mientras se lee toda la tabla. Usar la cláusula CACHE para referenciar tablas pequeñas que parecen ser accedidas muy frecuentemente.

Definición De Pctfree Y Pctused
• Calcular PCTFREE ( Tamaño Fila Inicial - Tamaño Medio Fila ) * 100 Tamaño Fila Inicial • Calcular PCTUSED (Tamaño Medio Fila * 100) 100 – PCTFREE Espacio de datos disponibles

(max length – avg insert length) Pctfree = 100 * --------------------------------------------max length Pctused = 100 – pctfree – 100 * row space / block space

Pctfree = 100 * upd / (upd + ins) Pctused = 100 – pctfree * (ups – ins) / tamaño bloque Upd = cantidad media añadida por modificaciones Ins = media de la fila inicial sin inserciones.

Definiendo PCTFREE Un PCTFREE mayor ofrece más sitio para la actualizaciones dentro del bloque de una base de datos. Seleccionar el mayor número si la tabla tiene: • Columnas que inicialmente son nulas y más tarde son actualizadas con un valor. • Columnas que parecen que vayan a incrementar su tamaño como resultado de una actualización. Un PCTFREE mayor resultará con una densidad de bloque menor –cada bloque puede acomodar más filas. La formula especificada arriba asegura que hay suficiente espacio libre en el bloque para el crecimiento de la fila.

Definiendo PCTUSED Definir PCTUSED para asegurar que el bloque será devuelto a la lista libre solo cuando haya suficiente espacio para acomodar un porcentaje de filas. Si un bloque de la lista libre no contiene espacio suficiente para insertar una fila, el sevidor Oracle busca en el siguiente bloque de la lista libre. Usando la formula dada se reduce el tiempo de exploración de la lista libre incrementando la posibilidad de encontrar un bloque con el espacio libre requerido. En ocasiones se asigna a pctused un valor artificialmente elevado mientras que ocurre lo contrario con pctfree con la esperanza que Oracle empaquetara el bloque al máximo. A menudo se ven tablas creadas con los siguientes valores: pctfree 0 pctused 99. Esta forma de proceder se puede convertir en una pesadilla de E/S y puede provocar una caida espectacular de rendimiento del sistema cuando esta misma situación se repita para muchas tablas. Analizaremos la tabla ADDRESS que tiene una longitud media de fila de 41 bytes. Utilizando un valor del 99% (lo que supone que practicamente la totalidad de los 2048 bytes se encuentran disponibles para almacenar datos, aunque sabemos que esto no es así) se podrían marcar los bloques como disponibles para crear una nueva fila cuando sólo estuvieran ocupados 2028 bytes, es decir , sólo quedaran 20 bytes libres. Por supuesto, este espacio no es suficiente para almacenar una fila de tamaño medio y Oracle ejecutaría las siguientes operaciones cuando intentara crear una nueva fila: 1. 2. 3. Analizar la lista de bloques libres hasta encontrar un bloque que pueda dar acomodo a la nueva fila. Si se encuentra uno se insertará la fila y, si el espacio ocupado es todavía inferior a la cifra mencionada en el parámetro pctused de la tabla, dejar el bloque en la lista de bloques libres. Si no encuentra ninguno, se buscará en el diccionario de datos para encontrar la ubicación de un bloque capaz de aceptar los nuevos datos.

Administración de Bases de Datos

Es posible cuando la fila contiene columnas que son muy largas. Cuando una fila emigra.’KCBH’.’UB4’.74 Disponemos de una fórmula que utilizamos para asegurarnos de que esta situación no va a ocurrir: PCTUSED = FLOOR ( ( espacio_disponible – longitud_media_fila ) / tamaño_bloques * 100 ) = FLOOR ( ( 1501 –41 ) / 2048 * 100 = FLOOR ( 1460 / 2048 * 100 = 71 % Notas: SELECT type. Cuando esto sucede el Servidor Oracle moverá toda la fila a un bloque nuevo y dejará una señal en el bloque original hacia la nueva posición. IF tamaño columna < 250.KDBH 2) Espacio disponible para datos (ADS) = CEIL( SAD * (1 – PCTFREE / 100) ) – KDBT 3) Espacio utilizado por fila (SPR) = tamaño de la columna incluyendo la long. TYPE UB1 UB2 UB4 SB2 KCBH KTBIT KDBH KDBT KTBBH 1) DESCRIPTION UNSIGNED BYTE 1 UNSIGNED BYTE 2 UNSIGNED BYTE 4 SIGNED BYTE 2 BLOCK COMMON HEADER TRANSACTION VARIABLE HEADER DATA HEADER TABLE DIRECTORY ENTRY TRANSACTION FIXED HEADER TYPE_SIZE 1 2 4 2 20 24 14 4 48 Espacio disponible para datos (SAD) = tamaño de bloque – tamaño de cabecera del bloque Db_block_size – KCBH – UB4 – KTBBH –((initrans –1) * KTBIT) . type_size FROM v$type_size WHERE type IN (‘UB1’.’SB2’. Encadenamientos De Filas Sucede cuando una fila es demasiado larga para caber en un bloque. Si pctfree está definido con un valor bajo puede haber espacio insuficiente en un bloque para acomodar a una fila que crece como resultado de una actualización. ELSE 3) Para todas las columnas contenidas en LOC (suponiendo que la media de LOCATION_NAME es de 11 caracteres) LOC_ID LOCATION_NAME PROVINCIA_ID LOC_TYPE 6+1= 7 30 + 1 = 31 2+1= 3 2+1= 3 TOTAL = 44 bytes (TCS) 4) Tamaño de Fila (ROWSZ) 3 * UB1 + TCS = 3 * 1 + 44= 47 bytes 5) Espacio utilizado por Fila (SPROW) MAX ( UB1 * 3 + UB4 + SB2.’KDBT’). del byte = tamaño de la columna + ( 1. el rendimiento I/O sociado a esta fila decrece dado que el servidor oracle tiene que explorar dos bloques de datos para recuperar la fila. ROWSZ) + SB2 = 49 bytes 6) Nº Filas por bloque (RPB) FLOOR( ADS / SPROW) = 31 filas por bloque Migracion De Filas (Por bajos valores de PCTFREE). Este proceso recibe el nombre de Migración de Filas. El encadenamiento puede ser solucionado definiendo un tamaño de bloque más alto o disminuyendo el tamaño de las columnas.’KTBIT’. En este caso el Servidor Oracle divide la fila en piezas pequeñas que son almacenadas en bloques con punteros para recuperarlas.’UB2’. description. Administración de Bases de Datos .’KDBH’.

Las restricciones. Administración de Bases de Datos . • INITRANS Un cambio en INITRANS solo afecta a nuevos bloques. Minimizar la posibilidad de migración. • PCTUSED Cualquier cambio en PCTUSED afectará a todos los bloques de la tabla.employees. Si una fila es actualizada o borrada. Parámetros de utilización de bloques Los parámetros de utilización de bloques pueden ser cambiados para: • • Mejorar la utilización del espacio. Control De Espacio Utilizado Por Las Tablas CAMBIO DE LOS PARÁMETROS DE UTILIZACIÓN DEL BLOQUE Y ALMACENAMIENTO ALTER TABLE scott. AS SELECT * FROM scott. Solo pueden ser situados en la lista libre si su uso cae por debajo de PCTUSED. disparadores y privilegios de la tabla no son copiados a la nueva tabla que se crea de esta manera. Usar la cláusula NOLOGGING para suprimir la creación de las entradas redo log y acelerar la creación de la tabla. El valor NEXT especificado será redondeado al valor que sea múltiplo del tamaño del bloque mayor o igual valor especificado. Restricciones El valor INITIAL no puede ser modificado para una tabla. Los bloques que no son utilizados para inserciones porque han sido llenados hasta (100-PCTFREE) no se verán afectados hasta que sean devueltos a la lista libre. • MAXTRANS Un cambio en MAXTRANS afectará a todos los bloques de la tabla.75 Copiado De Una Tabla Existente CREATE TABLE new_emp STORAGE (INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50 NOLOGGING TABLESPACE data01. el bloque que contiene la fila será controlado por su uso y vuelto a utilizar para inserciones si el uso está por debajo de PCTUSED. Los efectos del cambio de los parámetros de utilización del bloque son los siguientes: • PCTFREE Un cambio de PCTFREE afectará a inserciones futuras.employees PCTFREE 30 PCTUSED 50 STORAGE (NEXT 500K MINEXTENTS 2 MAXEXTENTS 100).

Si la cláusula DROP. Los índices correspondientes también se truncan. Para controlar la distribución de extensiones de una tabla a través de ficheros. Sintaxis: TRUNCATE TABLE [ schema. no es utilizada. • Especificar las cláusula REUSE para retener todo el espacio utilizado por la tabla. Extent ID 0 1 Higth water mark Espcio libre El truncado de una tabla borra todas las filas de la misma y libera espacio no utilizado.DBF’). Antes de cargar los datos en masa para evitar la extensión dinámica de las tablas.employees ALLOCATE EXTENT (SIZE 500K DATAFILE ‘/DISK3/DATA01. . el servidor Oracle colocará la extensión en uno de los ficheros del tablespace que contenga la tabla. Administración de Bases de Datos .El valor de NEXT_EXTENT para la tabla se vuelve al tamaño de la extensión con la menor extent_id que ha sido designada –esto es.employees. el servidor Oracle usará el tamaño NEXT_EXTENT de DBA_TABLES para asignar la extensión.]table ALLOCATE EXTENT [ (SIZE integer [K|M]] [ DATAFILE ‘filename’ ]) ] Si se omite SIZE. si MINEXTENTS es 2. excepto por MINEXTENTS. Las extensiones pueden necesitar ser asignadas manualmente: • • Sintaxis: ALTER TABLE [schema. el tamaño NEXT_EXTENTS será seleccionado en el de la tercera extensión de la tabla. que lo es por defecto se utiliza: .Todas las extensiones.76 Asignación Manual De Extensiones ALTER TABLE scott.La high water mark vuelve a la del punto del primer bloque de la tabla. se desasignan.] table [ {DROP | REUSE } STORAGE ] Los efectos de utilizar este comando son los siguientes: • • • • • • Todas las filas de la tabla se borran. Los disparadores de borrados no se disparan cuando se utiliza este comando. Una tabla que está siendo referenciada por una clave ajena no puede ser truncada. El fichero especificado en la cláusula DATAFILE tiene que pertenecer al tablespace al que pertenece la tabla. Truncar Una Tabla TRUNCATE TABLE scott. No se genera ningún dato rollback y el comando se valida implícitamente ya que el TRUNCATE TABLE es un Comando DDL. . Si la cláusula DATAFILE.

sql. Utiliza la opción CASCADE para validar la estructura de todos los índices de la tabla. Administración de Bases de Datos . Otros usos del comando. como se muestra en la siguiente sección. Validar la estructura de la tabla. se puede seleccionar en TRUE.departement CASCADE CONSTRAINT. El parámetro de inicialización.ANALYZE_SCHEMA para analizar todos los objetos propiedad de un usuario. Validación De La Estructura De La Tabla • • El servidor Oracle verifica la integridad de cada bloque de datos. Generalmente el servidor Oracle busca corrupción en los bloques cuando estos son leídos. ANALYZE TABLE scott. incluyen: • • • Borrado de estadísticas relativas a la tabla del diccionario de datos. se verifica la integridad de todos los bloques. de cada bloque de datos cuando es escrito en el disco. y realiza la referencia cruzada entre la tabla y sus índices. DB_BLOCK_CHECKSUM.ANALYZE_DATABASE para analizar todos los objetos de la BD. Si están contiguas pueden ser unidas automáticamente o manualmente en la última etapa. Identificar filas emigradas y encadenadas de la tabla. Comando ANALYZE TABLE La función principal de este comando. Sintaxis: ANALYZE TABLE [schema. La opción CASCADE CONSTRAINT es necesaria si la tabla es la principal en una relación de clave ajena. ver el fichero de comandos dbmsutil.ANALYZE_OBJECT para analizar un objeto específico. DBMS_UTILITY.77 Borrado De Tablas DROP TABLE scott.employees VALIDATE STRUCTURE. Validación de la Estructura de la Tabla Cuando la estructura de una tabla se valida. Para más información sobre estos procedimientos.] table VALIDATE STRUCTURE [CASCADE] Nota: realizar los procedimientos siguientes en PL/SQL para analizar objetos: • • • DBMS_DDL. es recopilar estadísticas relativas a una tabla utilizada por el optimizador y almacenarlas en el diccionario de datos. para calcular un checksum y almacenarlo en la cabecera. Cuando se borra una tabla las extensiones utilizadas por ello se liberan. DBMS_UTILITY.

Cuando se generan las estadísticas. en tanto en que el ESTIMATE STATISTICS generará las basadas en una muestra. Sintaxis: analyze_schema( schema varchar2.employees ESTIMATE STATISTICS. method varchar2.78 Análisis De Todos Un Esquema Se puede utilizar el procedimiento ANALYZE_SCHEMA del paquete DBMS_UTILITY para analizar todo un esquema.] table (COMPUTE STATISTICS | ESTIMATE STATISTICS [SAMPLE integer (ROWS | PERCENT ) | ) La opción COMPUTE STATISTICS generará estadísticas basadas en una exploración total de la tabla. la columna CHAIN_CNT de la vista del diccionario de datos DBA_TABLES es actualizada con el número de filas que están encadenadas o emigradas. es necesario reorganizar la tabla para eliminar la emigracion.’ESTIMATE’). Si emigran un número grande de filas. estimate_percent number default null ) Ejemplo: analyze_schema(‘OINFGEST’. ANALYZE TABLE scott. Administración de Bases de Datos . Detención De La Migración De Filas • El servidor Oracle agrupa las estadísticas basadas en una muestra de los datos y actualiza el diccionario de datos. estimate_rows number default null. Sintaxis Usar el comando siguiente para generar estadísticas: ANALIZE TABLE [schema. • Controlar CHAIN_CNT SELECT chain_cnt FROM DBA_TABLES WHERE table_name=’EMPLOYEES’ AND owner=’SCOTT’ El comando ANALYZE también puede ser utilizado para controlar la emigracion o encadenamiento de filas en una tabla.

4 > v_segment_type VARCHAR2(30) := ‘TABLE’. 8 > v_unused_bytes NUMBER. 16 > dbms_output. v_segment_name. 5 > v_total_blocks NUMBER. 12 > 13 > BEGIN 14 > dbms_space.unused_space (v_owner. 6 > v_total_bytes NUMBER.put_line (INITCAP(v_segment_type)||’ : ‘||v_owner||’. v_unused_blocks. 17 > dbms_output.A medida que se introducen datos en una tabla la HWM se mueve para marcar el último bloque utilizado. v_total_bytes. 11 > v_last_used_block NUMBER.’||v_segment_name). 15 > v_ last_used_extent_file_id.79 High Water Mark . . v_segent_type. 19 > END. También esta información puede ser obtenida del diccionario de datos después de analizar la tabla. . .put_line(‘Total Blocks : ‘||TO_CHAR(v_total_blocks)). 20 > / Administración de Bases de Datos .put_line(‘Total Above HWM : ‘||TO_CHAR(v_unused_blocks)). 7 > v_unused_blocks NUMBER. Encontrar la HWM El paquete DBMS_SPACE contiene un procedimiento que puede ser utilizado para encontrar la HWM y el número de bloques por encima de la misma. El siguiente bloque PL/SQL encuentra e imprime el número de bloques situados en una tabla y el número de bloques no utilizados. lee todos los bloques hasta llegar a la HWM. v_total_blocks. . 10 > v_last_used_extent_block_id NUMBER. 3 > v_segment_name VARCHAR2(30) := ‘EMPLOYEES’. el paquete DBMS_SPACE habilita un acceso más rápido a la información sin afectar el entorno de optimización. v_last_used_block).La HWM no cambia cuando las filas se borran de la tabla. 18 > dbms_output. SVRMGR> DECLARE 2 > v_owner VARCHAR2(30) := ‘SCOTT’.La HWM para una tabla indica el último bloque que ha sido utiliazdo por la misma. v_last_used_extent_block_id. 9 > v_last_used_extent_file_id NUMBER.Cuando el servidor Oracle realiza exploraciones en toda la tabla.La HWM se almacena en la cabecera del segmento de la tabla.

sql y prvtutil. Si los MINEXTENTS son 5 para la tabla. Si el comando es utilizado sin la cláusula KEEP. En el caso de un campo long o long raw usar la funcion TO_LOB para convertirlo en BLOB Al analizar una tabla se puede consultar en la vista user_tables el campo avg_row_len. el servidor Oracle liberará las extensiones por encima de MINEXTENS. Para evitar este problema. es posible desasignar espacio manualmente de la tabla. Si MINEXTENTS para la tabla es 4 o inferior. el servidor Oracle desasignará todo el espacio no utilizado por encima de la HWM. Funciones Para Calcular El Tamaño De Una Tabla SELECT [SUM|AVG] ( NVL (VSIZE (campo). como se muestra. la longitud media de la columna. seleccionar MINIMUM EXTENT para los tablespaces. Si ésta está en una extensión menor que el valor de MINEXTENS. NOTA: dado que la desasignación de espacio utilizando este comando libera espacio no utilizado dentro de una extensión.]table DEALLOCATE UNUSED [KEEP integer [K|M] KEEP especifica el número de bytes por encima de la HWM que debería ser retenido. la longitud media de la tabla y en la vista user_tab_columns. Administración de Bases de Datos . use KEEP 0. Sintaxis: ALTER TABLE [schema.0)+ … ) FROM tabla. el campo avg_col_len. Designacion Del Espacio No Utilizado Si han sido asignadas extensiones grandes en una tabla pero no han sido totalmente utilizadas. el servidor Oracle no tiene espacio liberado desde la quita de estension.EMPLOYEES Total Blocks : 25 Total Above HWM : 23 El paquete DBMS_SPACE se crea cuando los ficheros de comandos dbmsutil. El espacio así liberado está disponible para usarlo por otros segmentos del tablespaces.0) + …… (DBMS_LOB.GETLENGTH(campo_blob).plb son invocados por catproc. Para liberar todo el espacio por encima de la HWM incluso si está por debajo de MINEXTENTS.80 Table : SCOTT. Considerar el gráfico (arriba). el servidor Oracle liberará todos los bloques no utilizados por encima de la HWM. Observe que la quita extensión (con ID=4) ahora tiene sólo 5 bloques.sql. el uso frecuente de este comando puede conducir a la fragmentación del espacio de los fichero de datos.

constraints y así sucesivamente. Un “insert” falla si la partition key es mayor o igual a la última partición. es decir. La administración de tablas muy grandes se torna difícil de administrar. tipos de datos. ya que al reorganizar o restaurar una tabla. todo el objeto es afectado por la operación. Por otro lado las tablas y los índices particionados pueden tener diferentes atributos físicos: “pctfree”. Actualizando los valores de clave en las particiones No es posible actualizar la columna clave en la partición si la actualización provoca que los registros sean movidos de una partición a otra. Las tablas particionadas no soportan columnas del tipo “long”. “large object (lob”. values less than deben ser especificados como una literal. el cual es mayor a la partición previa y menor al especificado por “values less than”. “tablespace”. Todas las particiones de una tabla o índices deben tener los mismos atributos lógicos. Esto hace que la administración sea más complicada y más lenta en tablas tan grandes. El partionamiento en claves multicolumna es utilizado cuando: • • Múltiples columnas están relacionadas. Todas las particiones excepto la primera tienen un valor implícito. “long raw”.81 Particionamiento De Tablas Algunas bases de datos crecen hasta cientos de Gbytes. Componentes del particionamiento • • • • • • • Particionamiento por rango (partition key). “maxtrans”. “storage”. el partition key puede estar compuesto de hasta 16 columnas. serán colocados en la partición donde el valor maxvalue sea especificado. las mismas columnas. mientras que los nulos no pueden ser especificados en la lista values less than. “pctused”. y el tamaño de las tablas y de los índices se incrementan proporcionalmente. Los datos que tengan un valor binario superior al valor de estos. Oracle soporta hasta 64000 partiones por tabla o índice. “initrans”. Los atributos físicos pueden ser determinados por partición. La única función “SQL” soportada en la especificación values less than es “to_date”. Pero ¿Por qué las tablas e índices particionados? Las tablas e índices pueden ser divididos en pequeñas partes denominadas particiones . ya que sus tablas son vulnerables a fallas y no son fáciles de administar. los cuales pueden tener también un tamaño de Gbytes. Estos atributos se deben especificar cuando se crea la tabla particionada. Conceptos Las tablas e índices particionados soportan mejor el funcionamiento de bases de datos muy grandes (contienen cientos de Gbytes e incluso algunos Tbytes) Las tablas e índices muy grandes requieren: • • Datos disponibles aunque se presente algunas fallas parciales Mejorar el “performance” aún con el crecimiento substancial en los volúmenes de datos. Administración de Bases de Datos . Una tabla partionada puede tener índices particionados o no partionados. y generalmente necesitan uno o varios índices asociados. La partición es particularmente útil en base de datos muy grandes. Las tablas superiores a los 10 Gbytes son comunes en sistemas “datawarehouse”. Maxvalue en values less than Un maxvalue puede ser especificado por una o más columnas en values less than. Una fecha representada mediante 3 columnas de tipo “NUMBER” en lugar de una columna de tipo “DATE”. también todas las aplicaciones que utilizan estas tablas e índices.

ord_day NUMBER(2).07.01) TABLESPACE data02.08.21. PARTITION P2 VALUES LESS THAN (1994.1). PARTITION P3 VALUES LESS THAN (1994. ord_month.01 1994. como se muestra a continuación al momento de crear la tabla: CREATE TABLE orden ( ord_year NUMBER(4). ord_id NUMBER(10) ) PARTITION BY RANGE (ord_year.01) TABLESPACE data01.06.82 Ejemplos CREATE TABLE orden ( ord_year NUMBER(4).09. Administración de Bases de Datos .01 1994. INSERT INTO orden PARTITION (P2) VALUES (1994.MAXVALUE. ord_day) ( (PARTITION P1 VALUES LESS THAN (1994. ord_day NUMBER(2). ord_month. ord_month NUMBER(2).08.08. Table created.21. NULL. Table created. 21.2).09.07.01) TABLESPACE data01.01 TABLESPACE -------------------DATA02 DATA03 DATA01 INSERT INTO orden PARTITION (P1) VALUES(1994.01) TABLESPACE data03). partition_name. ord_id NUMBER(10) ) PARTITION BY RANGE (ord_year. TABLE_NAME -------------------ORDEN ORDEN ORDEN PARTITION ---------------P2 P3 P1 HIGH_VALUE ------------------1994. PARTITION P2 VALUES LESS THAN (1994. COLUMN table_name COLUMN partition_name COLUMN high_value COLUMN tablespace_name FORMAT A15 FORMAT A10 FORMAT A20 FORMAT A20 SELECT table_name. SELECT * FROM orden PARTITION(P1).01) TABLESPACE data03). PARTITION P3 VALUES LESS THAN (1994. 3) ERROR at line 1: ORA-14400: inserted partition key is beyond hisghest legal partition key Este error ocurre porque los ordenamientos a NULL son mayors a cualquier otro valor . ORD_YEAR ---------------1994 ORD_MONTH ------------------6 ORD_DAY --------------21 ORD_ID --------------1 INSERT INTO orden VALUES(1994. ord_month NUMBER(2).07.07. el INSERT sería valido si se hubiera especificado el MAXVALUE en la columna ORD_MONTH en values less than. high_value. tablespace_name FROM user_tab_partitions WHERE table_name=’ORDEN’. ord_day) ( (PARTITION P1 VALUES LESS THAN (1994.01) TABLESPACE data02.

’YYYY.DD’)) TABLESPACE data01 STORAGE(INITIAL 10M NEXT 5M PCTINCREASE 0). Las operaciones de backup y restore pueden hacerse por particiones individuales. ord_id NUMBER(10).09. además de proporcionar una mayor disponibilidad de los datos. Beneficios del particionamiento • • • Las particiones pueden ser administradas independientemente.08. “ALTER TABLE ADD PARTITION” “ALTER TABLE DROP PARTITION” “ALTER TABLE TRUNCATE PARTITION” “ALTER TABLE MOVE PARTITION” “ALTER TABLE SLIPT PARTITION” “ALTER TABLE EXCHANGE PARTITION” • Las operaciones SELECT. Mejor Performance • • • • • El optimizador elimina las particiones que no necesitan ser barridas.01’.01’. Las particiones que no están disponibles no afectan las consultas ni las operaciones “DML” en otras particiones que usan las mismas tablas o índices. Se puede balancear la carga de las particiones a través de dispositivos físicos. adicionadas o truncadas.DD’)) TABLESPACE data02 STORAGE(INITIAL 20M NEXT 10M PCTINCREASE 0). inserciones o borrado en paralelo.DD’)) TABLESPACE data03 STORAGE(INITIAL 10M NEXT 5M PCTINCREASE 0). Una partición puede ser dividida en un valor definido por el usuario. Las particiones pueden ser barridas en paralelo.MM. El particionamiento puede mejorar el performance si se aplica en forma adecuada.’YYYY. (PARTITION P3 VALUES LESS THAN (TO_DATE(‘1997. Table created.07. INSERT y DELETE pueden ser aplicadas a nivel partición en lugar de ser aplicadas a nivel tabla.MM. (PARTITION P2 VALUES LESS THAN (TO_DATE(‘1997.01’. Administración de Bases de Datos .’YYYY. UPDATE. CONSTRAINT pk_orders PRIMARY KEY (ord_date. El tamaño de las tablas temporales utilizadas para ordenamientos puede ser reducido. Fácil administración • • • Una partición puede moverse de un tablespace a otro. También pueden hacerse actualizaciones. ord_id) ) PARTITION BY RANGE (ord_date) ( (PARTITION P1 VALUES LESS THAN (TO_DATE(‘1997.MM.83 EJEMPLO 2 CREATE TABLE orden2 ( ord_date DATE. Conclusion Las tablas e índices muy grandes pueden ser separadas en piezas más pequeñas las cuales son más fáciles de administrar (particiones). Las particiones pueden ser eliminadas.

Puede ser automática o manualmente por el DBA. Administración de Bases de Datos . Mecanismos de Autentificación El acceso a la BD pueden ser autentificado por: • Base de Datos • Sistema Operativo • Red de Trabajo Cuotas de Tablespace Controlan la cantidad de almacenamiento físico permitido a un usuario en los tablespaces de la BD. Límites de Fuentes Son analizadas en la sección “Manejo de Perfiles” Privilegios Directos Los privilegios son utilizados para controlar las acciones que un usuario pueda realizar en una BD.84 Capítulo Nº 10 GESTION DE USUARIOS Vista General Dominio de seguridad Define las selecciones que se aplican al usuario. Tablespace por Defecto Define la localización en la que los segmentos creados por un usuario están almacenados. Privilegios del Rol Un usuario puede tener privilegios a través de roles. Bloqueo de cuenta Las cuentas son bloqueadas para evitar que el usuario haga anotaciones en la BD. si éste no escecifica un tablespace en el momento en que se crea el segmento. Tablespace Temporal Define donde serán colocadas las extensiones por el servidor Oracle si la operación requiera la escritura de datos clasificados en el disco.

4. ningún usuario tiene una cuota en ningún tablespace. Por defecto. Decidir las cuotas para cada tablespace.Restricciones Índices Visualizaciones Secuencias Unidades almacenadas del programa Sinónimos Tipos de datos Enlace de BD Un esquema es una colección nombrada de objetos tales.Disparadores . 3. Creacion De Usuarios En La BD Lista de Control para la Creación de Usuarios 1.). La clave UNLIMITED es utilizada para especificar que los objetos poseídos por el usuario pueden utilizar tanto espacio como esté disponible en el tablespace.] [PASSWORD EXPIRE] [ACCOUNT [LOCK | UNLOCK]] [PROFILE [profile | DEFAULT]] donde: user BY password EXTERNALLY es el nombre del usuario. Elija el nombre y un mecanismo de autentificación. Sintaxis: CREATE USER user IDENTIFIED {BY password | EXTERNALLY [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE tablespace] [QUOTA [integer [K | M] | UNLIMITED ] ON tablespace [QUOTA [integer [K | M] | UNLIMITED ] ON tablespace] …. 6. Cuando se crea un usuario de BD. especifica que el usuario está autentificado por la BD y necesita proporcionar clave mientras realiza la anotación. 5. se crea también su esquema correspondiente con el mismo nombre. DEFAULT/TEMPORARY TABLESPACE Identifica el tablespace por defecto/temporal para el usuario QUOTA defiene el espacio máximo permitido para los objetos poseidos por el usuario en el tablespace tablespace (la cuota puede ser definida como Bytes integrados o Kilobytes y Megabytes. Administración de Bases de Datos . Un usuario solo puede estar asociado a un esquema del mismo nombre. Garantizar privilegios y roles al usuario. A) Creacion De Un Nuevo Usuario: Autentificación Del Servidor Seleccionar la clave inicial: CREATE USER peter IDENTIFIED BY my1stson DEFAULT TABLESPACE data01 TEMPORARY TABLESPACE temp QUOTA 15m ON data01 PASSWORD EXPIRE. etc.85 Esquema De La Base De Datos • • • • • • • • Tablas . Asignar el tablespace por defecto y el temporal. como tablas. 2. Crear un usuario. Identificar tablespaces en los que el usuario necesita almacenar objetos. visualizaciones. especifica que el usuario está autentificado por el Sistema Operativo.

el user15. Sí. solo necesita teclear en el comando siguiente del sistema operativo: $ sqlplus / NOTA: • El uso de OS_AUTHENT_PREFIX=OPS$ ofrece la flexibilidad de tener a un usuario autentificado por el sistema operativo o por Oracle. 3. Si hay un usuario en la BD que son autentificados por el sistema operativo. Usar el Security Manager Oracle. Así. Para seleccionar el prefijo en el valor NULL. Seleccionar Usuario->Crear. si lo hace desde un cliente remoto. Seleccionar un usuario y elegir Usuario->Crear Como para crear un usuario con las mismas cuotas privilegios que un usuario existente de BD. 2. Introducir la información del usuario en la página Genral de la hoja de propiedad. 4. USER15 está definido en la BD. especificar este parámetro de inicialización como: OS_AUTHENT_PREFIX=”” El ejemplo en la transpariencia nos muestra como un usuario. PROFILE es utilizado para controlar el uso de los recursos y especificar el mecanismo de control de la clave que tiene que utilizar el usuario. OEN 1. Nombre de Usuario para la Autentificación del Sistema Operativo El parámetro de inicialización OS_AUTHENT_PREFIX es utilizado para especificar el formato de los nombres de usuario para la autentificación del sistema operativo. • Administración de Bases de Datos . B) Creacion De Un Nuevo Usuario: Autentificación Del Sistema Operativo Utiliza OS_AUTHENT_PREFIX Ejemplo: O/S Usuario = usuario15 OS_AUTHENT_PREFIX OS_ Cadena vacia OPS$ (defecto) Usuario BD OS_USER15 USER15 OPS$USER15 (defecto) Posible Login remoto NO NO SI Usar la cláusula IDENTIFIED EXTERNALLY del comando CREATE USER para especificar que un usuario tiene que ser autentificado por el Sistema Operativo. 5. para usar SQL*Plus en la anotación en el sistema. cambiando OS_AUTHENT_PREFIX se puede prevenir que estos usuarios hagan anotaciones en la BD. Esto especifica que el usuario del sistema operativo user15. Utilizar este parámetro con cuidado dado que existe un problema de seguridad potencial. Este valor se vuelve OPS$ para hacerlo compatible hacia atrás con anteriores versiones del servidor Oracle. el usuario UNIX. será autorizado a acceder a la BD sin tener que ir a través de ninguna validación del servidor Oracle. Hacer clic en Crear. El valor por defecto FALSE indica que un usuario puede ser autentificado solo por la máquina que ejecuta el servidor Oracle. no necesita proporcionar una clave.86 PASSWORD EXPIRE fuerza al usuario a volver a seleccionar una clave cuando este escribe en la BD utilizando SQL*Plus (opción válida solo para usuarios autentificados por la BD) ACCOUNT LOCK/UNLOCK Puede ser utilizado para bloquear/desbloquear la cuenta del usuario explícitamente (por defecto es UNLOCK). Especificar las cuotas utilizando la página Cuotas. el DBA puede crear al usuario introduciendo un comando de la forma: CREATE USER ops$user IDENTIFIED BY password… Un usuario que anota en la máquina que ejecuta el servidor Oracle. En este caso. • Selección de otro parámetro de inicialización: REMOTE_OS_AUTHENT=TRUE especifica que un usuario puede ser autentificado por un sistema operativo remoto.

utilice QUOTA UNLIMITED con precaución. Administración de Bases de Datos . De formasimilar. 3. Sintaxis: ALTER TABLE user [ IDENTIFIED [BY password | EXTERNALLY ]] [ PASSWORD EXPIRE ] [ ACCOUNT [LOCK | UNLOCK]]. § Para desbloquear la cuenta de un usuario que ha sido bloqueada por el sistema. • Para cambiar la clave. Elegir Dsbloquear. 5. Asignar siempre tablespace temporales. Algunas situaciones en la que esto puede ser muy útil son: § Para volver a seleccionar una clave cuando un usuario la olvida. Aunque esto se haga SYSTEM. Si se cambia el bloqueo de cuenta o la clave caducada: 4. Desbloqueo de Usuario ALTER USER peter ACCOUNT UNLOCK. Restringir cuotas a algunos usuarios. la cancelación y los bloqueos no afectan a la sesión actual si el usuario ya se ha conectado. aparece el siguiente mensaje: ERROR: ORA-2800: the account is locked Warning: You are no longer connected to Oracle. Alteracion Y Eliminacion De Usuarios De Base De Datos Control del Bloqueo de la Cuenta y de la Clave ALTER USER peter IDENTIFIED BY hisgrandpa PASSWORD EXPIRE. Seleccionar el nombre de usuario. 2. los usuarios no necesitan tener ninguna cuota en los tablespaces temporales. DEFAULT TABLESPACE es una función de conveniencia. § Para bloquear explícitamente una cuenta. esta cláusula es muy útil cuando se vuelven a seleccionar las claves del usuario. El usuario necesita cuota en algunos tablespaces para almacenar sus objetos. Cuando la cuenta de un usuario se bloquea y este intenta conectarse. Ejemplo: Bloqueo de Usuario ALTER USER peter ACCOUNT LOCK. Bloquear o Caducada. Los cambios de clave. Ya que los segmentos temporales son creados y eliminados por el servidor Oracle. Será afectivo solo para las sesiones subsecuentes. un usuario no necesita tener ninguna cuota en los tablespaces asignados para segmentos rollback. Puede utilizar el comando ALTER USER para cambiar la clave y bloqueo de cuenta. § § § El tablespace temporal se hace SYSTEM y puede causar fragmentación del mismo. un usuario no puede crear ningún objeto en este tablespace a menos que se explicite el espacio asigando. así que es importante especificar el tablespace temporal para cada usuario. utilizar la autentificación O/S Use la palabra clave EXPIRE para forzar a los usuarios a restablecer sus claves. Usar Security Manager Oracle. Seleccionar Usuario->Cambiar el estado de Cuenta.87 Creacion De Un Nuevo Usuario Directrices • • • • • Elegir una clave estándar inicialmente. Educar usuarios: • Para conectar. OEM 1. § Para cancelar manualmente una clave. Expandir el nodo de Usuarios.

Cuando una aplicación se realza y necesita tablas o índices adicionales. Seleccionar el nombre del usuario. Cambio De Cuota Del Usuario En Tablespace ALTER USER peter QUOTA 0 ON data01 Se puede necesitar modificar las cuotas del tablespace en las siguientes situaciones: • • • Cuando las tablas que son propiedad del usuario tienen un crecimiento no anticipado. • Un usuario que está conectado actualmente al servidor Oracle no puede ser borrado. Expandir el nodo de Usuarios. OEM 1. Sintaxis DROP USER user [CASCADE] Directrices: • la opción CASCADE borra todos los objetos en el esquema antes del borrado del usuario. Administración de Bases de Datos . los objetos propiedad del usuario permanecen en el tablespace revocado pero no pueden ser colocados en ningún nuevo espacio. si existe una tabla que tiene 10 MB en el tablespace data01 y la cuota de este se cambia a 0. Esto tiene que ser especificado si el esquema contiene algún objeto. 3. Introducir los detalles en la página Cuotas de la hoja de propiedad. no se pueden situar nuevas extensiones para esta tabla. DROP USER peter CASCADE. Hacer clic en Aplicar. 5. bytes. Introducir los detalles en la página General de la hoja de propiedad. Cuando los objetos son reorganizados y situados en tablespaces diferentes. Ninguna opción no cambiada permanece no cambiada. Borrado De Usuarios DROP USER peter. Por ejemplo. Usar el Security Manager Oracle. Hacer clic en Aplicar.88 Si se cambia la clave o el modo de autentificación: 6. Sintaxis: Usar el siguiente comando para modificar las cuotas del tablespace o para reasignar tablespaces: ALTER USER user [ DEFAULT TABLESPACE tablespace ] [ TEMPORARY TABLESPACE tablespace ] [ QUOTA [integer [K | M] | UNLIMITED ] ON tablespace [ QUOTA [integer [K | M] | UNLIMITED ] ON tablespace ] …] Una vez cuota es asignada. tablespace. Consulta de quotas de usuarios en tablespaces SELECT username. Utilice la cláusula CASCADE si el esquema contiene objetos. 7. 2. max_bytes FROM dba_ts_quotas. 4.

Estado de la Cuenta del Usuario La siguiente consulta relaciona todos los usuarios. account_status. temporary_tablespace FROM dba_users.---------10 -1 20480 MAX_BYTES ------------------1 TABLESPACE_NAME -----------------------------DATA01 Un valor de –1 en MAX_BYTES o MAX_BLOCKS indica que el usuario tiene una cuota ilimitada en un tablespace. blocks. bytes.-------------------. max_blocks. el estado de sus cuentas y tablespaces temporales: SVRMGR> SELECT username. Administración de Bases de Datos .89 Monotorizacion De Información Respecto De Usuarios MONOTORIZACION DE USUARIOS DBA_USERS USERNAME USER_ID CREATED ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE DEFAULT_TABLESPACE TEMPORARY_TABLESPACE DBA_TS_QUOTAS USERNAME TABLESPACE_NAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS Cuotas de Tablespace Usar la siguiente consulta para verificar las cuotas del tablespace para el usuario SCOTT: SVRMGR> 2 3 SELECT tablespace_name. max_bytes FROM dba_ts_quotas WHERE username = ‘SCOTT’. BLOCKS MAX_BLOCKS BYTES -----------. TEMPORARY_TABLESPACE ---------------------------------------TEMP TEMP TEMP TEMP USERNAME ACCOUNT_STATUS -------------------------------------------SYS OPEN SYSTEM OPEN DBSNMP OPEN SCOTT OPEN 4 rows selected.

• Los privilegios que habilitan el manejo de objetos en cualquier esquema. El comando REVOKE elimina los privilegios. El comando GRANT concede un privilegio a un usuario o un grupo de ellos. UNLIMITED TABLESPACE no puede ser concedido a un rol. El usuario debe tener una cuota para el tablespace o tener UNLIMITED TABLESPACE. Los privilegios como CREATE TABLE. Administración de Bases de Datos . Estas incluyen la creación. por ejemplo. CREATE TABLESPACE. Pueden ser controlados con los comandos DDL GRANT y REVOKE. CREATE TABLE. es necesario el privilegio DROP ANY TABLE. procedimiento. los que añaden o revocan privilegios de sistema a usuario o a un rol (ver manejo de roles) 2. SYSTEM: permite a los usuarios realizar acciones particulares en la base de datos. Privilegios Del Sistema: Ejemplos Categoria INDEX Ejemplos CREATE ANY INDEX ALTER ANY INDEX DROP ANY INDEX CREATE TABLE CREATE ANY TABLE ALTER ANY TABLE DROP ANY TABLE SELECT ANY TABLE UPDATE ANY TABLE DELETE ANY TABLE CREATE SESSION ALTER SESSION RESTRICTED SESSION CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE UNLIMITED TABLESPACE TABLE SESSION TABLESPACE • • • • • No hay privilegio CREATE INDEX. secuencia. vistas. borrado y alteración de tablas. Privilegios de Objetos Cada privilegio de objetos permite a un usuario realizar una accion particular en un objeto especifico.90 Capítulo Nº 11 GESTION DE PRIVILEGIOS Dos Tipos De Privilegios 1. como un tabla. CREATE ANY TABLE. 2. por ejemplo. Privilegios Del Sistema • • • • Hay cerca de 80 privilegios de sistema (y el número continua creciendo) La palabra ANY en el nombre del privilegio indica que el usuario tiene el mismo en cualquier esquema. OBJECT: permite a los usuarios acceder y manipular un objeto específico. NOTA: Los usuarios con privilegios ANY pueden acceder a las tablas del diccionario excepto los prefijos USER_ALL y cualquier vista concedida PUBLIC. CREATE TABLE incluye CREATE INDEX y los comandos ANALYZE. Los privilegios pueden ser clasificados de la siguiente manera: • Los privilegios habilitan operaciones en todo el sistema. Privilegios del Sistema Cada privilegio del sistema permite a un usuario realizar una operación particular en una BD o una clase de operaciones de BD. vista. Para truncar una tabla. segmentos de rollback y procedimientos. • Los privilegios que habilitan el manejo de objetos en un esquema propiedad del usuario. CREATE SESSION. CREATE PROCEDURE o CREATE CLUSTER incluyen el borrado de estos objetos. 1. función o paquete. por ejemplo.

La conexión como SYSDBA de un usuario le da privilegios no restringidos para realizar cualquier operación en una BD o en los objetos dentro de la misma. 5. {user | role | PUBLIC ] … [WITH ADMIN OPTION] donde: system_priv role PUBLIC especifica el privilegio del sistema que ve a ser concedido. específica el nombre del rol que va a ser concedido. Seleccionar el Tipo de Privilegio: Privilegios del Sistema. 3. Seleccionar el privilegio del sistema que usted quiere conceder. OPTION puede conceder el privilegio del sistema rol. Fichero De Password Para Autentificación PRIVILEGIOS SYSDBA y SYSOPER Categoría Ejemplos STARTUP SYSOPER SHUTDOWN ALTER DATABASE OPEN | MOUNT ALTER DATABASE BACKUP CONTROLFILE ALTER DATABASE BEGIN/END BACKUP RECOVER DATABASE ALTER DATABASE ARCHIVELOG RESTRICTED SESSION SYSDBA SYSOPER privileges WITH ADMIN OPTION CREATE DATABASE RECOVER DATABASE UNTIL Solo los administradores deBD deberían tener la capacidad de conectarse a un BD con privilegios de administrador. 6. Administración de Bases de Datos .. 4. Cualquier usuario con el privilegio del sistema GRANT ANY ROLE puede conceder cualquier rol en una base de datos. Hacer clic en Apply. {system_priv | role } ] . tiene que haber sido concedido con WITH ADMIN. El receptor de WITH ADMIN OPTION puede conceder o revocar el privilegio del sistema a o desde cualquier usuario o rol de la base de datos. Directrices: • • • • OEN 1. TO {user | role | PUBLIC} [. Opcionalmente controlar la casilla WITH ADMIN OPTION.. WHIT ADMIN OPTION permite al que recibe el privilegio a rol el poder concederlo más adelante a otros usuarios o roles. Sintaxis: GRANT {system_priv | role} [. concede el privilegio del sistema a todos los usuarios.91 Concesión De Privilegios Del Sistema GRANT CREATE SESSION. Para conceder un privilegio de sistema. 2. GRANT CREATE SESSION TO scott WITH ADMIN OPTION. El receptor de WITH ADMIN. Usar Security Manager de Oracle. OPTION . Seleccionar el nombre de usuario o rol para el que usted quiera conceder el privilegio. CREATE TABLE TO user1.

Crear el fichero de passwords. 2.PRIVILEGE .92 Ficheros De Autentificación De Passwords 1. 3. SYSOP ---------TRUE TRUE USERNAME SYSDB -------------------------INTERNAL TRUE SYS TRUE 2 rows selected. Después de crear el fichero de passwords con la utilidad de passwords y de poner el parámetro de inicialización REMOTE_LOGIN_PASSWORD_FILE en EXCLUSIVE. Asigna REMOTE_LOGIN_PASSWORD_FILE = EXCLUSIVE. Solo los usuarios conectados normalemente como SYSDBA pueden conceder o revocar los privilegios del sistema SYSDBA o SYSOPER a otro usuario.GRANTEE . SVRMGR> SELECT * FROM v$pwfile_users. Estos privilegiosno pueden ser concedidos a roles. Concede a los usuarios los privilegios SYSOPER y SYSDBA. Visualizacion De Privilegios Del Sistema Nivel Base de Datos DBA_SYS_PRIVS . GRANTEE ------------------… SCOTT SYS SYS SYS SYS SYS SYS SYSTEM … PRIVILEGE --------------------------------------SELECT ANY TABLE DELETE ANY TABLE EXECUTE ANY TYPE INSERT ANY TABLE SELECT ANY SEQUENCE SELECT ANY TABLE UPDATE ANY TABLE UNLIMITED TABLESPACE ADM ------NO NO NO NO NO YES NO YES Administración de Bases de Datos . ya que un rol no está disponible antes de que una BD se arranque. WITH ADMIN OPTION no puede ser utilizado para conceder estos privilegios. 4. Consulta V$PWFILE_USERS para verificar los miembros del fichero de passwords. Consulte la vista V$PWFILE_USERS para mostrar los usuarios que poseen los privilegios SYSDBA o SYSOPER. el admin. de la BD puede añadir usuarios al fichero de passwords concediendo los privilegios del sistema SYSOPER y SYSDBA.PRIVILEGE Consultar el DBA_SYS_PRIVS para listar los privilegios del sistema concedidos a usuarios y roles: SVRMGR> SELECT * FROM dba_sys_privs.ADMIN OPTION Nivel Sesión SESSION_PRIVS .

Restricciones De Privilegios Del Sistema 07_DICTIONARY_ACCESSIBILITY = TRUE • • • Vuelve al comportamiento de Oracle7. Sintaxis: REVOKE {system_priv | role} [. Por ejemplo. {system_priv | role } ] . {user | role | PUBLIC ] … Administración de Bases de Datos .. El mecanismo de protección del diccionario en Oracle8 previene que usuarios no autorizados accedan a los objetos del diccionario. para el usuario SCOTT. FROM {user | role | PUBLIC} [. Valor por defecto en TRUE. mientras que SESSION_PRIVS muestra los privilegios actuales de la sesión desde privilegios concedidos y hasta los roles habilitados. los privilegios del sistema que permiten acceso a objetos en otros esquemas no permiten el acceso a objetos en el esquema diccionario. Si este parámetro está seleccionado en FALSE. Si el parámetro está seleccionado en TRUE. pero no habilita a Ud. Los privilegios del sistema que proporcionan acceso a objetos en otros esquemas no lo dan al diccionario de objetos. SVRMGR> SELECT * FROM session_privs. Revocación De Privilegios Del Sistema REVOKE CREATE TABLE FROM user1. que es el valor por defecto. El acceso a los objetos del diccionario está restringido a usuarios con los privilegios del sistema SYSDBA y SYSOPER. Elimina las restricciones de los privilegios del sistema con la palabra clave ANY. el privilegio SELECT ANY TABLE habilita el acceso a vistas y tablas en otros esquemas. a seleccionar los objetos del diccionario. el acceso a objetos en el esquema SYS está habilitado. PRIVILEGE CREATE SESSION ALTER SESSION CREATE TABLE SELECT ANY TABLE CREATE CLUSTER CREATE SYNONYM CREATE VIEW CREATE SEQUENCE CREATE DATABASE LINK CREATE PROCEDURE CREATE TRIGGER CREATE TYPE 12 rows selected.. Nota: la vista DBA_SYS_PRIVS muestra todos los privilegios del sistema concedidos a roles y usuarios nivel de la BD. REVOKE CREATE SESSION FROM scott.93 La vista SESSION_PRIVS muestra los privilegios que están disponibles en la sesión actual para un usuario –en nuestro ejemplo.

Administración de Bases de Datos . USER 1 crea una tabla. El siguiente escenario ilustra lo anterior: 1) 2) 3) 4) 5) El DBA garantiza el privilegio del sistema CREATE TABLE al USER 1 con ADMIN.94 • • El comando REVOKE puede revocar solo privilegios que haya sido soncedidos directamente por el comando GRANT. OPTION. si ha concedido SELECT ANY TABLE a un usuario y este tiene concedido cualquier procedimiento o vista que use una tabla en algún otro esquema. éste podría potencialmente revocar el privilegio al USER 1. Por ejemplo. El administrador de la BD revoca el privilegio del sistema CREATE TABLE al usuario USER 1 El resultado: 6) 7) La tabla de USER 1 continua existiendo pero el usuario no puede crear ninguna tabla nueva. incluso si ha sido concedido utilizando WITH ADMIN. la revocación del privilegio invalida los procedimientos o vistas. SCOTT continua teniendo la tabla y el privilegio del sistema CREATE TABLE. USER 1 garantiza el privilegio del sistema CREATE TABLE a SCOTT. OPTION a SCOTT. Revocación de Privilegios del Sistema Utilizando WITH ADMIN OPTION DBA USUARIO1 SCOTT GRANT DBA USUARIO1 SCOTT REVOKE Revocación de Privilegios del Sistema Utilizando WITH ADMIN OPTION RESULTADO DBA USUARIO1 SCOTT No hay efecto casada cuando un privilegio de sistema se revoca. Si en el paso 3 anterior el USER 1 garantiza privilegios con ADMIN. La revocación de privilegios del sistema puede tener un efecto en algunos objetos dependientes. OPTION. SCOTT crea una tabla.

WITH GRANT OPTION habilita al receptor a conceder los privilegios de objetos a otros usuarios. REFERENCES. • Por defecto si Ud. Concesión De Los Privilegios De Objetos GRANT EXECUTE ON dbms_pipe TO public. { user | role | PUBLIC } ]… [ WITH GRANT OPTION] Donde: Object_priv Column_list especifica el privilegio de objeto que va a ser concedido. • La opción WITH GRANT OPTION no puede ser utilizada para conceder privilegios a roles. La tabla anterior resume los privilegios de objetos que pueden ser concedidos en cada tipo de objeto. autoriza a realizar algunas operaciones en el objeto. Sintaxis: GRANT { object_priv [ ( column_list ) ] [.] object TO {user | role | PUBLIC } [. o UPDATE) ALL ON Object concede todos los privilegios del objeto que ha sido concedido WITH GRANT OPTION identifica el objeto en el que los privilegios están siendo garantaizado. • Tenga precaución cuando conceda privilegios de sus objetos a otros usuarios cuando concierna a la seguridad. todos los privilegios de este son automáticamente obtenidos. sal) ON emp TO user1 WITH GRANT OPTION.95 Privilegios De Objetos Objeto privado ALTER DELETE EXECUTE INDEX INSERT REFERENCES SELECT UPDATE √ √ √ √ √ √ √ √ √ Table √ √ √ √ View Sequence √ Procedure Cada privilegio de objeto que está concedido. Administración de Bases de Datos . GRANT UPDATE (ename. posee un objeto. Directrices: • Para garantizar privilegios el objeto tiene que estar en su esquema o a Ud. object_priv [ ( column_list ) ] ] … | ALL [PRIVILEGES]} ON [schema. específica una tabla o columna de vista (puede ser especificado solo cuando se concede los privilegios INSERT. le tienen que haber dado el privilegio WITH GRANT OPTION.

use la siguiente consulta: SVRMGR> SELECT * FROM dba_col_privs Revocacion De Privilegios De Objeto REVOKE execute ON dbms_pipe FROM scott.----. { user | role | PUBLIC } ]… [ CASCADE CONSTRAINTS ] Donde: Object_priv ALL ON FROM especifica el privilegio de objeto que va a ser revocado.TABLE_NAME .------------------RESUMES SYS READ GRA ------NO Para listar todos los privilegios específicos de columnas que han sido concedidos.OWNER .GRANTEE . GRANTEE OWNER ---------------------SCOTT SYS 1 row selected. identifica los usuarios o roles a los que los privilegios de objeto son revocados.PRIVILEGE .] object FROM {user | role | PUBLIC } [.PRIVILEGE . CASCADE CONSTRAINTS Borra cualquier restricción de integridad referencial que haya definido la revocación usando privilegios REFERENCES o ALL. object_priv ] … | ALL [PRIVILEGES]} ON [schema. identifica el objeto en el que han sido revocados los privilegios.COLUMN_NAME .GRANTOR . Administración de Bases de Datos .GRANTABLE Consultar el DBA_TAB_PRIVS para listar los privilegios del objeto concedidos al usuario especificado: SVRMGR> SELECT * FROM dba_tab_privs WHERE GRANTEE=’SCOTT’.GRANTEE .TABLE_NAME . TABLE_NAME GRA PRIVILEGE ------------------.OWNER .96 Mostrando Privilegios De Objetos DBA_TAB_PRIVS .GRANTABLE DBA_COL_PRIVS .GRANTOR . Sintaxis: REVOKE { object_priv [. revoca todos los privilegios del objeto que han sido concedido al usuario.

97
Restricción Los concesores pueden revocar privilegios solo a usuarios a los que ellos hayan concedido privilegios.

Revocación de Privilegios de Objetos Utilizando WITH GRANT OPTION
SCOTT USUARIO1 USUARIO2

GRANT

SCOTT

USUARIO1

USUARIO2

REVOKE

La revocación de privilegios será en Cascada cuando se haya dado con WITH GRANT OPTION. El siguiente escenario muestra lo anterior: 1. Al USER1 se le concede el privilegio de objeto SELECT con GRANT OPTION. 2. USER1 concede el privilegio SELECT en EMP al USER2. Resultado: 3. Más tarde, el privilegio SELECT es revocado a USER1. Esto hace que también le sea revocado a USER2.

Administración de Bases de Datos

98

Capítulo Nº 12
GESTION DE ROLES
VISTA GENERAL

Oracle facilita el manejo sencillo y controlado de privilegios a través de roles. Los roles, son grupos de privilegios relacionados, que se conceden a los usuarios u otros roles. Son designados para facilitar la administración de privilegios en la base de datos. Características de los roles • Se conceden y revocan a los usuarios con los mismos comandos utilizados para conceder y revocar los privilegios del sistema. • Pueden ser concedidos para cualquier usuario o rol, excepto para él mismo. • Pueden constar tanto de privilegios del sistema como de objeto. • Pueden ser habilitados para cada usuario que tenga concedido el rol. • Puede ser necesario una clave para habilitarlo. • Cada nombre de rol tiene que ser único entre los nombres existentes de usuario y de roles. • No son propiedad de nadie; no están en ningún esquema. • Tienen sus descripciones almacenadas en el diccionario de datos. Beneficio de los roles • Concesión reducida de privilegios. • Gestión de los privilegios dinámicos. • Disponibilidad selectiva de privilegios. • Concesión a través del Sistema Operativo. • Revocaciones sin cascada. • Rendimiento mejorado.

Concesión reducida de privilegios. En lugar de conceder el mismo grupo de privilegios a varios usuarios, puede conceder los privilegios a un ROL y este a cada uno de los usuarios. Gestión de los privilegios dinámicos. Si los privilegios asociados a un rol se modifican, todos los usuarios que tienen la concesión del rol obtienen automática e inmediatamente los privilegios asociados. Disponibilidad selectiva de privilegios. Los roles pueden ser habilitados para conectar o desconectar temporalmente los privilegios. También se puede utilizar la habilitación de un rol para verificar que uno de ellos está garantizado para un usuario.

Administración de Bases de Datos

99

Garantías por Medio del Sistema Operativo. Para asignar roles a usuarios de la BD, pueden utilizarse los comandos o utilidades del Sistema Operativo. Revocaciones sin cascada. Los privilegios de los objetos pueden ser revocados sin que la revocación se produzca en cascada. Rendimiento mejorado. Al inhabilitar roles, quedan muy pocos privilegios a verificar durante la ejecución de una sentencia. El uso de los mismos, reduce el número de garantías almacenadas en el diccionario de datos.

Creación Y Modificación De Roles

CREATE ROLE sales_clerk;

CREATE ROLE hr_clerk IDENTIFIED BY bonus;

CREATE ROLE hr_manager IDENTIFIED EXTERNALLY;

Sintaxis: CREATE ROLE role [ NOT IDENTIFIED | IDENTIFIED { BY password | EXTERNALLY } ] Donde: role NOT IDENTIFIED IDENTIFIED BY password EXTERNALLY es el nombre del rol. indica que no es necesaria verificación cuando se habilita el rol. indica que es necesaria verificación cuando se habilita el rol. proporciona la clave que el usuario tiene que especificar cuando habilita el rol. indica que un usuario tiene que estar autorizado por un servicio externo (como el sistema operativo o un servicio de terceras partes) antes de habilitar el rol.

OEM 1. 2. 3. 4. 5. Usar el Security Manager. Elegir Rol->Crear. Introducir el nombre del rol y seleccionar el método de identificación. Opcionalmente, GRANT los roles y privilegios en el nuevo rol haciendo clic en el tab Roles/Privilegios de Objeto (analizado en el capítulo anterior). Hacer clic en Crear.

Nota: el comando CREATE ROLE IDENTIFIED GLOBALLY específica que la verificación del rol tiene que ser hecha a través del Servidor de Seguridad Oracle. El Servidor de Seguridad Oracle es un producto que le habilita para de forma central iniciar roles y usuarios en un entorno Oracle distribuido. Los usuarios y roles que son definidos por el Servidor de Seguridad Oracle pueden ser utilizados en múltiples bases de datos. Estos usuarios y roles reciben el nombre de usuarios globales y roles globales. Para más información ver el manual Oracle8 Server Distribted Database Systems.

Administración de Bases de Datos

100
Uso De Roles Predefinidos
Nombre del Rol CONNECT RESOURCE DBA EXP_FULL_DATABASE IMP_FULL_DATABASE DELETE_CATALOG_ROLE SELECT_CTABLOG_ROLE Todos los privilegios del sistema WITH GRANT OPTION. Privilegios para exportar el BD. Privilegios para importar el BD. Privilegio de borrado del Diccionario de Datos. Privilegio de consultas en las tablas del Diccionario. Descripción Se suministran estos dos roles para compatibilidad con versiones anteriores

EXECUTE_CATALOG_ROLE Privilegio de ejecución sobre paquetes del Diccionario.

Los roles relacionados se definen automáticamente por las bases de datos Oracle. Los roles Connect y Resource se proporcionan para compatibilidad con anteriores versiones de Oracle y pueden ser modificados de la misma forma que cualquier otro rol en una base de datos Oracle. Los roles EXP_FULL_DATABASE y IMP_FULL_DATABASE se proporcionan por la conveniencia en el uso de las utilidades Importación y Exportación. Los roles DELTE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE y SELECT_CATALOG_ROLE se proporcionan para el acceso a las vistas del diccionario de datos y paquetes. Estos roles pueden ser concedidos a los usuarios que no tiene el rol DBA, pero requieren el acceso a las vistas y tablas del diccionario de datos. Otros Roles especiales Oracle también crea otros roles que lo autorizan a administra la base de datos. En muchos sistemas operativos, a estos roles se les llama OSOPER y OSDBA. Estos nombres pueden ser diferentes en su sistema operativo. Otros roles son definidos por los ficheros de comandos SQL proporcionados por la BD. Por ejemplo, los roles AQ_ADMINISTRATOR_ROLE y AQ_USER_ROLE son creados por el fichero de comandos dbmsaqad.sql. Estos roles son usados con la función Advanced Queuing.

Modificación De Roles

ALTER ROLE sales_clerk IDENTIFIED BY commission;

ALTER ROLE hr_clerk IDENTIFIED EXTERNALLY;

ALTER ROLE hr_manager NOT IDENTIFIED;

Un rol solo puede cambiarse para cambiar su método de autentificación. OEM 1. 2. 3. 4. 5. Usar el Security Manager. Expandir el nodo del Rol. Seleccionar el Rol. Indicar el método de identificación. Hacer clic en Aceptar.

Administración de Bases de Datos

habilita la posibilidad para conceder el rol a otros usuarios o roles. garantiza el rol de todos los usuarios. 8. Para conceder un rol a un usuario. es un rol que recibe un usuario. Añadir roles adicionales como sea necesario. ALTER USER scott DEFAULT ROLE ALL EXCEPT hr_clerk. 4. 6. es un rol que recibe un rol. Establecimiento De Roles Por Defecto ALTER USER scott DEFAULT ROLE hr_clerk. GRANT hr_clerk TO hr_manager. Hacer clic en la flecha hacia abajo para añadir el rol concedido en el listado. 9. Seleccionar el usuario o rol. OPTION es un rol para ser garantizado o para recibir el rol garantizado. OEM 1. 7. ALTER USER scott DEFAULT ROLE ALL. Administración de Bases de Datos . Hacer clic en Aceptar. 3. El usuario que crea un rol está implícitamente asignado al mismo con ADMIN. utilizar el mismo comando que fue utilizado para conceder un privilegio del sistema a un usuario. Seleccionar el tab Roles/Privilegios. role ] … TO {user | role | PUBLIC} [. GRANT hr_manager TO scott WITH ADMIN OPTION. ALTER USER scott DEFAULT ROLE NONE. Expandir el nodo Usuario o Rol. Sintaxis: GRANT role [ . {user | role | PUBLIC} ]… [ WITH ADMIN OPTION]. Seleccionar el Rol que va a ser concedido.101 Asignación De Roles GRANT sales_clerk TO scott. Usar Security Manager Oracle. Seleccionar los Roles como el Tipo de Privilegio. Donde: role user role PUBLIC WITH ADMIN. 5. OPTION. 2. Un usuario que no ha recibido un rol con ADMIN. necesita el privilegio del sistema GRANT ANY ROLE para conceder y revocar roles a otros. OPTION. sales_clerk.

El comando SET ROLE habilita e inhabilita roles. EXCEPT indica que los roles siguientes no deberían ser incluidos en los roles por defecto. Hacer clic en la flecha hacia abajo para añadir el rol concedido en el listado. Expandir el nodo Rol.102 Un usuario puede tener muchos roles asignados. Un default role es un subgrupo que se habilita automáticamente cuando el usuario se conecta. no obstante un rol no puede ser habilitado en un procedimiento almacenado. Hacer clic en Aceptar. Si un rol está inhabilitado. OEM 1. Por defecto. Sintaxis: ALTER USER user DEFAULT ROLE {role [. a menos que este privilegio esté concedido directamente para el usuario o para otro rol habilitado para este usuario. Especificación de Roles que van a ser Habilitados El comando SET ROLE y el procedimiento DBMS_SESSION. el usuario puede utilizar los privilegios concedidos para este rol.SET_ROLE habilitan todos los roles incluidos en el comando e inhabilita todos los demás roles. Puede ser necesaria una clave para la habilitación de un rol. Seleccionar el usuario o rol. En la siguiente. 4. Para habilitar un rol. el usuario no puede utilizar los privilegios asociados con este rol. Seleccionar el tab Roles/Privilegios. primero tiene que estar concedido para el usuario. Ud. todos los usuarios asignados a un usuario son habilitados al ser registrado en ellos. NONE hace que los roles concedidos al usuario no formen parte de los roles por defecto (los únicos privilegios que el usuario tiene cuando es creado son los que se le asignan directamente). Seleccionar Roles como el Tipo de Privilegio.. Habilitación E Inhabilitación De Roles • • • • • Inhabilita un rol para quitar temporalmente este a un usuario. 6. es el rol que forma parte del rol por defecto para el usuario. 3. igual que un rol sin una clave. Seleccionar el Rol que va a ser concedido. Los roles por defecto son asignados a un usuario no necesitan clave. 2. 5. hace que todos los roles concedidos forman parte de los roles por defecto. Los roles por defecto son habilitados para un usuario al conectarse. 8. Habilitar e inhabilitar roles para activar o desactivar temporalmente los privilegios asociados con los roles.DEFAULT ROLE para indicar que roles serán habilitados para un usuario en el momento de su anotación.role]… | ALL [ EXCEPT role [. 7. Cuando un rol está habilitado. Pueden ser habilitados desde cualquier herramienta del programa que permita comandos SQL. Limitar los roles por defecto para un usuario con el comando ALTER USER. Administración de Bases de Datos .. los role activos del usuario revertirán en los roles por defecto. Los roles se habilitan para una sesión. puede utilizar el comando ALTER USER.role]…] | NONE } donde: user role ALL es el nombre del usuario al que se garantizan los roles. Todos los demás roles son inhabilitados. Security Manager Oracle. excepto los listados en la cláusula EXCEPT (este es el por defecto). Puede ser requerida un clave para habilitar un rol. son habilitados en el momento de la conexión. La clave tiene que estar incluida en el comando SET ROLE para habilitar el rol. Habilita un rol para concederlo temporalmente.

los roles pueden ser habilitados e inhabilitados en bloques anónimos y procedimientos de aplicación ( por ejemplo. procedimientos Formas Oracle). pero no en los almacenados. Eliminación De Roles Desde Los Usuarios REVOKE sales_clerk FROM scott. Donde: role IDENTIFIED BY password ALL EXCEPT role NONE proporciona la clave necesaria para habilitar el rol. role ]… ] | NONE El comando SET ROLE desconecta cualquier otro rol garantizado al usuario. Así. Si un procedimiento almacenado contiene el comando SET ROLE se generará un erros. REVOKE hr_manager FROM PUBLIC. role]… FROM {user | role | PUBLIC} [. Sintaxis: REVOKE role [. EJEMPLOS: Habilitación e inhabilitación de roles SET ROLE sales_clerk IDENTIFIED BY commission. inhabilita todos los roles de la sesión actual (solo están activos los privilegios garantizados directamente al usuario). Sintaxis: SET ROLE { role [ IDENTIFIED BY PASSWORD ] [. SET ROLE NONE. {user | role | PUBLIC} ]… Administración de Bases de Datos . role [ IDENTIFIED BY PASSWORD ] ]… | ALL [ EXCEPT role [. no habilita estos roles. excepto los listados en la cláusula EXCEPT (no se puede utilizar esta opción para habilitar roles con claves). es el nombre del rol La opción ALL sin la cláusula EXCEPT funciona solo cuando todos los roles habilitados no tiene una clave. dado que esta acción puede cambiar en entorno de seguridad (grupo de privilegios) que permiten que el procedimiento sea llamado e primer lugar. en PL/SQL.103 Restricciones Un rol no puede ser habilitado desde un procedimiento almacenado. SET ROLE hr_clerk SET ROLE ALL EXCEPT sales_clerk. habilita todos los roles garantizados para el usuario actual.

Directrices Para La Creación De Roles Administración de Bases de Datos . Hacer clic en la flecha hacia arriba para eliminar el rol de la lista garantizada. Seleccionar el usuario o rol.104 Donde: role user PUBLIC es un rol que va a ser revocado o desde el que los roles son revocados. Expandir el nodo Rol. hace clic en YES. 8. es el usuario desde el que los privilegios del sistema o los roles son revocados. 4. Baja Garantizado. 4. 7. En la casilla de diálogo. Seleccionar los Roles como el Tipo de Privilegio. Eliminación De Roles DROP ROLE hr_manager. 5. seleccionar el Rol que va a ser revocado. A Ud. Expandir el nodo del Usuario o Rol. 6. OEM: 1. 3. OEM: 1. revoca el privilegio o rol desde todos los usuarios. Cuando se elimina un rol el servidor Oracle lo quita de todos los usuarios y roles para los que ha sido concedido. Usar Security Manager Oracle. Seleccionar el rol. 2. eliminandolo de la BD. Seleccionar Rol->Eliminar. 3. 2. 5. Seleccionar el tab Roles/Privilegios. Hacer clic en Aplicar. Usar Security Manager Oracle. le tiene que haber sido concedido el rol de ADMIN OPTION o tener el privilegio del sistema DROP ANY ROLE para eliminar el rol.

Privilegios del sistema concedidos a los roles. DIRECTRICES para el USO de CLAVES y ROLES por DEFECTO Uso de Claves • Las claves proporcionan un nivel adicional de seguridad cuando se habilita un rol. 1. Roles que son concedidos a roles. entonces el DBA necesita solo asignar los nuevos privilegios al rol de la aplicación. 4. Privilegios de tabla concedidos a los roles. y el usuario no conoce la clave de PAY_CLERK. Si una modificación en la aplicación requiere nuevos privilegios para realizar la tarea de la nómina. Privilegios del sistema concedidos a usuarios y roles. Crear un rol para cada tarea de aplicación. habilita PAY_CLERK proporcionando la clave. • Cuando el usuario se conecta en la aplicación nómina. como pay_clerk. el nombre del mismo es normalmente una tarea de trabajo. 5. PAY_CLERK y PAY_CLERK_RO. Roles concedidos a usuarios y roles. como la nómina. Crear un rol para cada tipo de usuario. Esta técnica se muestra en el el siguiente ejemplo: • El DBA ha garantizado al usuario dos roles.105 Dado que un rol incluye los privilegios necesarios para realizar una tarea. no privilegios individuales a usuarios de roles. Garantizar los roles de aplicación. para los nombres de rol. Roles que el usuario tiene normalmente habilitados. PAYROLL. • Al PAY_CLERK_RO (RO solo para lectura) le han sido concedidos los privilegios SELECT de las tablas necesarias para realizar la función nomina. 2. • El usuario se puede conectar a SQL*Plus para realizar preguntas pero no puede modificar ninguno de los datos. El nombre del usuario se corresponde a un título de trabajo. ya que el PAY_CLERK no es un rol por defecto. Por ejemplo. al usuario no se le solicita. Garantizar los roles de usuario y de la aplicación a los usuarios. El ejemplo anterior utiliza ambas tareas de aplicación y títulos de trabajo. • Visualización De Información Del Rol Visualización del Rol DBA_ROLES DBA_ROLE_PRIVS ROLE_ROLE_PRIVS DBA_SYS_PRIVS ROLE_SYS_PRIVS ROLE_TAB_PRIVS SESSION_ROLES Descripción Todos los roles que existen en la BD. Todos los usuarios que realizan normalmente esta tarea recibirán los nuevos privilegios. Asignar los privilegios necesarios para realizar las tareas en el rol de la aplicación. Las claves permiten habilitar un rol solo a través de una aplicación. • Al PAY_CLERK le ha sido garantizado todos los privilegios necesarios para realizar la función nómina. ya que este rol puede ser utilizado para extender cheques. Está codificacda en el programa. la aplicación puede que necesite un usuario para introducir una clave cuando se habilita un rol PAY_CLERK. 3. Administración de Bases de Datos . El nombre de rol de aplicación corresponde a una tarea en la misma.

PASSWORD ----------------NO NO NO NO NO NO NO NO NO NO NO NO YES EXTERNAL Administración de Bases de Datos . SVRMGR> SELECT role.106 Muchas de las vistas del diccionario de datos que contienen información de privilegios concedidos a los usuarios también contienen información de los privilegios de roles. password_required FROM dba_roles. ROLE ---------------------------------------------CONNECT RESOURCE DBA AQ_USER_ROLE SELECT_CATALOG_ROLE EXECUTE_CATALOG_ROLE DELETE_CATALOG_ROLE AQ_ADMINISTRATOR_ROLE RECOVERY_CATALAG_OWNER IMP_FULL_DATABASE EXP_FULL_DATABASE SNMPAGENT SALES_CLERK HR_CLERK 14 rows selected.

no tiene en cuenta la actividad de la aplicación. Asegura la desconexion por actividad. Creación de un Perfil: 1) Limite del recurso Sintaxis: CREATE PROFILE name LIMIT [session_per_cpu [cpu_per_session [cpu_per_call [connect_time [idle_time [logical_reads_per_session [logical_reads_per_call [composite_limit [private_sga Donde: max_value max_bytes composite_limit cpu_per_session sessions_per_user connect_time idle_time max_value] max_value] max_value] max_value] max_value] max_value] max_value] max_value] max_bytes]. Operaciones I/O. Nº de sesiones concurrentes por usuario. Tiempo de incatividad. Perfil Default Creado automáticamente por el servidor Oracle cuando se crea la BD. Tiempo de conexcion (minutos). Uso De Perfil Restringe a usuarios la realizacion de algunas operaciones que requieren un uso excesivo de los recursos. Tiempo de conexión. Espacio de memoria (área SQL privada solo para MTS). Verificacion de complejidad de la clave.107 Capítulo Nº 13 PERFILES Descripcion Son grupos nombrados de recursos y limites de clave: Tiempo de CPU. tiempo de inactividad (minutos). Bloqueo de la cuenta. Sesiones concurrentes. Clave actuante y caducidad. Se calcula para el proceso servidor. {integer | UNLIMITED | DEFAULT} {integer [K | M] | UNLIMITED | DEFAULT} Limita el coste total del recurso para una sesión expresado en unidades de servicio. Permite agrupar limites de recursos. Administración de Bases de Datos . Controla el uso de claves. Historia de la clave. coste = cpu_session + connect_time + logical_reads_per_session + private_sga Tiempo total del cpu (centésimas de segundos).

Nota: TRUE hablita el chequeo de límites.108 logical_reads_per_session Nº de bloques de datos (físicos y lógicos). es el número total de lecturas desde la memoria a disco. Administración de Bases de Datos . Es decir. Habilitación de los Límites Poner el parámetro de inicialización RESOURCE_LIMIT a TRUE ALTER SYSTEM SET resource_limit = TRUE. Alteración Y Borrado De Un PERFIL ALTER PROFILE developer_prof LIMIT session_per_user 5 CPU_per_call 3600 idle_time 30. Es para asegurar que ninguna sentencia de I/O intensiva pueda acumular memoria y cragar a los discos. DROP PROFILE developer_prof [cascade] cascade revoca el perfila de los usuarios a los que está asignado. ALTER USER scott PROFILE developer_prof. private_sga Espacio privado en la SGA (bytes) (sólo aplicable en MTS y especificado en M o K) Recurso a Nivel de Llamada cpu_per_call = tiempo de CPU * llamada (centésimas de segundos) logical_reads_per_call = Nº de bloques de datos. Ejemplo CREATE PROFILE developer_prof LIMIT session_per_user 2 CPU_per_session 10000 idle_time 60 connect_time 480.

resource_name . Los límites de claves son impuestos siempre.username DBA_PROFILES . o bien editando el fichero de inicialización INIT<ORACLE_SID>.resource_type (kernel) . Bloqueo de cuenta Habilita el bloqueo automático de una cuenta cuando un usuario no logra entrar en un número determinado de intentos. Maneja el uso de los recursos en sistemas de muchos usuarios de base de datos grandes.ora La asignación de perfiles no afecta a las sesiones actuales. incluso si RESOURCE_LIMIT para una instancia está seleccionado en False. Habilita los límites de recursos para los usuarios fácilmente. Los perfiles sólo son asignados a usuarios no a roles.limit Gestión De Claves El manejo de clave está controlado por el administrador de la BD con perfiles. Asignar perfiles con los comandos CREATE USER y ALTER USER. desbloqueos y caducidad de cuentas con CREATE o ALTER USER. Bloqueos. Administración de Bases de Datos . Gestión de Recursos con Perdiles § § § Crear perfiles “CREATE PROFILE” para determinar los límites de recursos y claves.109 Uso del Perfil § § § § § § Restringe a usuarios la realización de algunas operaciones que requieren un uso excesivo de recursos.profile . Asegura la desconexión de los usuarios de la base de datos cuando han dejado su sesión sin actividad durante algún tiempo. § § § § Visualización de los límites de los recursos DBA_USERS . Facilita la gestión de claves. Refuerza los límites de recursos con el comando ALTER SYSTEM.profile . Para mayor seguridad la siguiente sección describe las prestaciones del manejo de claves disponible. Controla el uso de claves.

Hace un control de conplejidad a la clave. Un período de gracia password_grace_time que empieza después del primer intento de login en la BD una vez caducada. Verificación de la complejidad de la clave Creación de un PERFIL: selección de claves 2) Selección de las claves CREATE PROFILE grace_s LIMIT failed_login_attempts 3 password_life_time 30 password_reuse_time 30 password_verify_function verify_function password_grace_time 5. Clave Activa y Expiración password_life_time selecciona el tiempo máximo de vida después debe ser cambiada. controla la clave nueva para asegurar que la misma no es reutilizada durante un período de tiempo al número de cambios de clave permitido. la cuenta puede ser bloqueada con ALTER USER pero no se desbloquea autmáticamente. Se genera un mensaje de aviso cada vez que el usuario intenta hacer un login hasta que finalice el período de gracia. Nº máximo de veces que una clave puede ser reutilizada. Nº de días que la cuenta permanecerá bloqueada después de la caducidad de la clave. Bloqueos De Cuentas El servidor Oracle bloquea automáticamente una cuenta después de alcanzar el valor failed_login_attempts. password_reuse_max obliga al usuario definir una clave que no sea idéntica a las anteriores. password_life_time password_grace_time password_reuse_time password_reuse_max Duración en días de la clave ántes que caduque. Se espera que el usuario cambie la clave dentro del período de gracia. La cuenta puede ser desdoblada automáticamente después de un tiempo especificado en password_lock_time o tiene que ser desbloqueada por el administrador con el comando ALTER USER. cuando la clave ha expirado. Nº de días antes de que una clave puede ser reutilizada. Estas verificaciones pueden ser implementadas por medio de password_reuse_time (especifica que un usuario no puede volver a utilizar una clave durante un número de días determinado). Administración de Bases de Datos . Período de gracia en días para cambiar la clave después del primer logín con éxito. Si la clave no se cambia. password_verify_function Función PL/SQL que hace el chequeo de la complejidad de la clave antes de que ésta sea asignada.110 Claves activas y caducadas Histórico de claves Habilita la clave con una vida limitada. failed_login_attempts password_lock_time Nº de intentos de login fallados antes del bloqueo de la cuenta. la cuenta será bloqueada. Historia de la Clave Verifica que el usuario no puede volver a utilizar una clave durante un período de tiempo determinado. después de la cual caduca y debe ser cambiada.

old_password_parameter IN VARCHAR2(30) ) return boolean devuelve TRUE para acierto y FALSE para fallo.resource_type (password) . Visualización De La Información De Claves DBA_USERS .limit Administración de Bases de Datos .lock_date . ALTER PROFILE default LIMIT password_life_time 60 password_grace_time 10 password_reuse_time 1800 password_reuse_max UNLIMITED failed_login_attempts 3 password_lock_type 1/1440 password_verify_funciton verify_function.account_status . Si la función causa una EXCEPCION se devuelve un error y el comando ALTER USER o CREATE USER finaliza. Oracle proporciona una función de verificacion de complejidad en forma de función PL/SQL. password_parameter IN VARCHAR2(30). Funcion de Verificación de clave verify_function § § § El número mínimo de caracteres debe ser 4.profile . La clave no debe ser igual al nombre del usuario. La clave debería diferir de la anterior al menos en 3 letras.profile .sql y que tiene que ser ejecutado bajo el esquema de SYS. El cual al ser ejecutado cambia el perfil DEFAULT con el siguiente comando.username . llamada verify_function en el fichero de comandos utlpwdmg.111 Función Clave Suministrada por el Usuario La función tiene que ser creada dentro del esquema SYS y debe tener la siguiente especificación: funciton_name ( userid_parameter IN VARCHAR2(30).resource_name .expiry_date DBA_PROFILES .

el valor de un segmento es escrito de nuevo en la fila. el servidor Oracle necesita hacer rollback a los cambios NO validados cuando se abre de nuevo la BD. Si se hace rollback a la transacción. como el ID del fichero y el bloque. La transacción puede usar un solo segmento de rollbak para almacenar todas las grabaciones rollback. Una BD tiene múltiples tablespaces. otros usuarios de la BD NO deberían ver ningún cambio no validado hecho por estas transacciones. Rollbak de una Transacción Cuando una transacción hace cambios en una fila de una tabla. Consistencia de Lectura Cuando las transacciones están siendo realizadas. Puede ser utilizado para los cambios de cualquier tablespace. la imagen antigua es salvada en el segmento de rollback. tal como era ántes de ser moficado. restableciendo el valor origianl. No System Administración de Bases de Datos . Este segmento sólo es utilizado para Cambios hechos en objetos del tablespace SYSTEM. Tipos de Segmentos System No System o o System Privado Público Es creado en el tablespace SYSTEM al mismo tiempo que es creada la BD. Público: estos forman parte de un pool de segmentos rollback disponibles en la BD. Los valores antiguos de los segmentos de rollback son utilizados también para proporcionar a los lectores una nueva imagen consistente para una sentencia dada. Este segmento es creado por el administrador. En un segmento rollbak se pueden escribir muchas transacciones concurrentes. Recuperación de Transacción Si el instance falla cuando las transacciones están siendo ejecutadas. Hay dos tipos: Privado: son sólo obtenidos por una instance.112 Capítulo Nº 14 MANEJO DE SEGMENTOS ROLLBACK Un segmento de rollback es utlizado para salvar el valor antiguo cuando un proceso está haciendo cambios de datos en la BD. Almacena información del bloque. datafile y también el dato. necesita al menos un segmento de rollback No-System.

De forma similar si el puntero intenta moverse a una extensión y esta está activa. Si no se hace esta solicitud el servidor Oracle elige el segmento con menor número de transacciones y le asigna la transacción. v$rollstat where dba_rollback_segs. Select substr(segment_name. min_extents "Min_ext". rssize "Tamaño Actual". La siguiente select muestra la configuración de cada segmento rollback y el valor requerido para el parámetro optimal. hwmsize "Max. Una transacción puede utilizar un segmento específico utilizando el siguiente comando: SET TRANSACTION USE ROLLBACK SEGMENT rollback_segment_name.SEGMENT_ID = v$rollstat. Si los parámetros optimal están especificados. El puntero no puede saltarse una extensión y moverse a la segunda o a cualquier otra.113 Uso De Los Segmentos Rollback Con Transacciones Asignación de un segmento de rollback Cuando una transacción empieza necesita que le sea asignado un segmento rollback. Si la primera está siendo utilizada. Alcanzado". optsize "Optimal". si ésta está libre.1. si es posible. Crecimiento de los Segmentos Rollback El puntero del segmento rollback se mueve a la extensión siguiente cuando la actual está llena. Administración de Bases de Datos . initial_extent+(next_extent*(min_extents-1)) "Min x Optimal" from dba_rollback_segs. initial_extent "Initial". Cuando la última extensión actualmente disponible esta llena. Cuando las transacciones inician su escritura en una nueva transacción se llama WRAP.12) "Nombre". la transacción asignará una extensión. La especificación optimal minimiza la pérdida de espacio en un segmento rollback. el puntero puede solo moverse al principio de la primera. Un segmento rollback puede crecer de esta manera hasta alcanzar el número máximo de extensiones especificado en el parámetro MAXEXTENTS. el segmento rollback colocará una extensión adicional. Contracción De Los Segmentos Rollback El parámetro OPTIMAL especifica el tamaño en bytes al que un segmento rollback tiene que disminuir. un segmento rollback puede liberar espacio al finalizar las transacciones que causa el crecimiento. next_extent "Next".usn order by 1.

depende de dos cosas: 1. . tamaño de extensiones mayores. Si Oracle no puede dar una imagen consistente recibirá un error ORA-1555 SNAPSHOT TOO OLD. Solución: mayores MINEXTENTS. Cuando el servidor Oracle empieza la ejecución de una sentencia SELECT determina el SCN actual y asegura que cualquier cambio no validado entes de este SCN no es procesado por la sentencia. Estimar el tamaño del segmento de rollback. 2. actualización o borrado). Se recomienda la creación de los mismos con MINEXTENTS=20 para reducir la posibilidad de crecimiento (extensión). el servidor Oracle construye una imagen de lectura consistente del bloque recuperando la imagen anterior de los cambios desde el segmento de rollback y aplicando los cambios a una copia del bloque de memoria. si un bloque tiene cambios que no fueron validados al inicio de la consulta. no son evitados con MAXEXTENTS.1 RBS / 4 transacciones concurrentes • BATCH Grandes. pero pocos. Administración de Bases de Datos . Planificación De Segmentos Rollback Cantidad: (número) • OLTP . Cuando: la transacción que hace el cambio ya se ha validado en la cabecera del rollback ha sido vuelta a usar . pero muchos segmentos. Los datos actuales que están siendo procesados. Número de Extensiones: El número de bytes necesario para almacenar información que es necesaria en caso de rollback. mayor optimal.114 Nota: se recomienda que optimal >= initial + next + min_extents (como mínimo min_extents >=2) Consistencia en la Lectura Oracle garantiza que una sentencia ve datos consistentes. y/o la imagen anterior ha sido vuelta a usuar.pequeños. Supongamos que realiza una consulta en el mismo momento que se están realizando cambios. ejecutando la transacción más larga esperada y controlar el tamaño del segmento rollback. Tipo de transacción que va ser realizada (inserción.

Poner Segmentos Rollback Operativos Cuando se crea un segmento rollback está OFFLINE y no puede ser utilizado. Seleccionar este valor en uno menor que el número de segmentos rollback NON-SYSTEM necesitado por la instance. si está especificado tiene que ser al menos igual al tamaño inicial del segmento rollback. está limitado por el parámetro MAX_ROLLBACK_SEGMENT. que es el espacio utilizado por el número de extensiones definidos por minextents. Un segmento está ONLINE hasta que la instance se cierra.115 Creación De Segmentos Rollback Ejemplo: CREATE ROLLBACK SEGMENT rbs01 TABLESPACE rbs STORAGE ( INITIAL 100K NEXT 100K OPTIMAL 4M MINEXTENTS 20 MAXEXTENTS 100 ). especificar el nombre del segmento en el fichero de parámetros como se muestra en el siguiente ejemplo: Rollback_segment=(rbs01) Administración de Bases de Datos . DIRECTRICES • • • • Utilizar siempre next = initial en segmentos rollback para asegurar que todas las extensiones son del mismo tamaño. Minextents >= 2 para un segmento rollback. El número de segmentos rollback que pueden ser puesto ONLINE para una instance. Evitar definir maxextents a UNLIMITED. Seleccionar el valor optimal basado en el espacio necesitado por un porcentaje de transacción. para minimizar contención y fragmentación. RESTRICCIONES • • • • Un segmento rollback puede ser especificado tanto como público o privado (por defecto) en el momento de la creación y no puede ser cambiado. Esto podría causar una extensión innecesaria de un segmento rollback y posiblemente de ficheros de datos debido a un error de programa. Pctincrease no puede ser especificado para un segmento rollback y está siempre en 0. Situar siempre los segmentos rollback en un tablespace separado y exclusivo. Para ponerlo en modo operativo usar: ALTER ROLLBACK SEGMENT name ONLINE. Para asegurarse que un segmento está ONLINE. Optimal.

tan pronto como todas las transacciones existentes se hayan terminado el segmento será puesto offline. como se ve en la vista de rendimiento v$rollstat. pero se detendrá si una extensión no puede ser desasignada porque esté inactiva. sin que se generen errores. Este comando intenta reducir el tamaño del segmento altamaño especificado. Si el valor de N es mayor que el número de segmentos rollback NON-SYSTEM disponibles en la instance. integer [K|M]] Desasignación de Espacio en los Segmentos Rollback Para desasignar manualmente espacio de un segmento rollback usar: ALTER ROLLBACK SEGMENT rbs01 SHRINK TO 4M. el estado se selecciona en pending offline. Si no hay suficientes segmentos rollback públicos. Como Poner Un Segmento Rollback OFFLINE ALTER ROLLBACK SEGMENT name OFFLINE. Cambio De Definiciones De Almacenamiento Del Segmento Rollback Los parámetros de un segmento rollback que pueden ser cambiados: ALTER ROLLBACK SEGMENT rbs01 [ STORAGE ( [NEXT [MINEXTENTS integer] [MAXEXTENTS integer|UNLIMITED] [OPTIMAL {integer [K|M] | null } ) ].116 Como Obtiene una Instance los Segmentos Rollback? 1) 2) La instance obtiene todos los los segmentos rollback que se nombran en el parámetro de inicialización ROLLBACK_SEGMENT Los parámetros TRANSACTIONS (T) y TRANSACTIONS_PER_ROLLBACK_SEGMENT (TPR) son utilizados para calcular el número de segmentos que necesita la instance: 3) 4) Si el valor de N es menor o igual al número de segmentos rollback NON-SYSTEM que ya se han obtenido. Si hay transacciones utilizando el segmento rollback. Si no se especifica el integer (4M) Oracle intentara desasignar las extensiones hasta que el tamaño del segmento rollback sea igual a optimal. obtendrá segmentos rollbacks adicionales para compensar la escasez. esta instance no necesita ningún segmento rollback más. Cuando se necesita poner un segmento rollback OFFLINE: Para evitar que nuevas transacciones usen un segmento rollback Si el segmento rollback necesita ser borrado. Administración de Bases de Datos . la base de datos permanecerá abierta y disponible para los usuarios.

La extensión y el número de bloque. Extendión del segmento rollback desde el que la transacción inicio la escritura.117 Borrado de Segmentos Rollback DROP ROLLBACK SEGMENT name. Dirección de la sesión (para unir con v$session). s. Obteniendo Configuración. s.name. s.rssize. si ya no se necesita o se quiere volverlo a crear con otra configuración. unir las vistas v$transaction y v$session.extents. Nº utilizado por la transacción . n. s. PUBLIC = público) ESTADÍSTICAS DE LOS SEGMENTOS ROLLBACK Unir las vistas v$rollstat y v$rollname SELECT FROM WHERE Columnas: Extents Rsize Xacts Optsize Hwmsize Avgactive Status Curext Curblk Nº de extensiones en el segmento rollback.usn. s. ACTIVIDAD ACTUAL DE LOS SEGMENTOS ROLLBACK Para controlar el uso del segmento rollback por las transacciones activas actuales.status v$rollname n.owner especifica el tipo de segmento (SYS = privado.usn = s. s. Especifican la localización actual en el segmento rollback donde la transacción está escribiendo. Tamaño máximo en bytes hasta que ha crecido este segmento desde su inicio. Estado del segmento. Nº de transacciones que usan este segmento.hwnsize. Tamaño actual de extensiones activas.xacts. Segmento rollback.. Administración de Bases de Datos . v$rollstat s n. Tamaño actual del segmento en bytes.optsize. Se puede necesitar borrar un segmento rollback. Un segmento rollback necesita estar offline ántes de ser borrado. promedio sobre el tiempo.. Localización actual de la cabercera. Usado como parte de la ID de la transacción. V$TRANSACTION Ses_addr Xidusn Ubafil Ubablk Ubasqn Ubarec Used_ublk Start_uext Start_ubablk Nº de bloques de rollback generados por la transacción. Nº de bloque del segmento rollback desde el que la transacción inicio la escritura. DBA_ROLLBACK_SEGS . valor optimal para este segmento.

• Permitir AUTOEXTEND a los ficheros de datos.start_uext –1) OR ((r. s. En estos casos un segmento rollback asigna una extensión adicional. SID 9 SERIAL# 27 START_TIME 10/30/97 21:10:41 XIDUSN USERNAME 2 SYSTEM Controlar si la transacción puede ser finalizada o si necesita ser eliminada y tomar las medidas necesarias.username v$session s.118 Solución de Problemas Insuficiente espacio para las transacciones (ORA-01562) Causa: • Sin espacio en el tablespace (ORA-01560) • El Nº de extensiones en el segmento de rollback ha alcanzado MAXEXTENTS y extensiones adicionales no puedn ser asignadas (ORA-01628). v$session.ses_addr AND t. Soluciones: • Extender los ficheros de datos del tablespaces. v$transaction t. Una transacción que ha hecho solo algunos cambios. y v$transaction para encontrar cualquier bloqueo de transacciones.usn AND ((r. el servidor Orace intenta volver a usar la siguiente extensión en el anillo. t.curext = t. v$rollstat r s. • Si el segmento rollback alcanzó el MAXEXTENTS: • • Incrementar maxextents para el segmento rollback.xidusn = r.xidusn. pero ha estado inactiva un período de tiempo grande podría ser la causa de que los segmentos rollback crezcan aunque haya muchas extensiones libres.serial#. Incluso si esta nueva extensión contiene una extrada activa no puede ser utilizada.extents –1) AND t.start_uext = 0)).sid. t.saddr = t. Borra y vuelve a crear el segmento rollback con tamaño de extensión mayor para evitar este problema. • Añadir fichero de datos al tablespaces. La transacción NO puede saltar una extensión en el anillo y continuar escribiendo en la siguiente. Administración de Bases de Datos . Sesión Bloqueante Cuando una extensión en un segmento rollback está llena. En estas situaciones hay mucho espacio desperdiciado y puede ser necesaria la intervención de un administrador de la BD para evitar que los segmentos rollback crezcan.start_time.curext = r. SELECT FROM WHERE s. Detención de Sesiones Bloqueantes Consultar las vistas v$rollstat. s.

Poner todos los segmentos rollback en el tablespace offline.Consultar DBA_ROLLBACK_SEGS para encontrar cuales segmentos rollback están en el tablespaces. .ses_addr.used_ublk v$session s. . V$transaction t s.addr = t. t. .Poner el tablespace OFFLINE. Como ver la Actividad Actual SELECT FROM WHERE xidusn used_ublk s.Terminar las sesiones si es necesario.xidusn.Controlar v$transaction para encontrar que transacciones están utilizando actualmente estos segmentos rollback. Número de segmento de undo Número de bloques del segmento de rollback utilizados.Usar v$session para obtener el nombre del usuario y la información de la sesión. t. Administración de Bases de Datos . .ubafil. . t.119 Error de Poner Tablespaces OFFLINE No se pueden poner tablespaces OFFLINE que contengan RBS activos (ORA-01546) .username.

Los ficheros redo log son utilizados sólo para la recuperación. Los ficheros redo log son usados en situaciones como el fallo de una instance para recuperar datos validados que no han sido escritos en los ficheros de datos. como en el caso de escrituras directas. Los ficheros redo log graban todos los cambios hechos a los datos en el buffer de datos. con algunas excepciones. Uso De Los Ficheros Redo En Línea GRUPOS y MIEMBROS Administración de Bases de Datos .120 Capítulo Nº 15 MANTENIMIENTO DE LOS FICHEROS REDO LOG Uso De Los Ficheros Redo Log Los ficheros redo log minimizan la pérdida de datos en la base de datos.

Creación De Los Ficheros Redo Log Iniciales El conjunto de grupos redo log activos inicial y sus miembros son creados durante la creación de la base de datos. Las entradas redo son escritas en uno de los grupo redo log activo. Administración de Bases de Datos . Un log switches es el caso durante el que LGWR detiene la escritura en un grupo redo log activo y comienza a escribir en otro. Cada vez que sucede un log switches y LGWR inicia la escritura en un nuevo grupo. Cuando el pool del buffer redo log se llena en un tercio.121 Grupo de Redo Log Activos • • • A un grupo de copias idénticas de ficheros redo log activos se le llama un grupo redo log. esto es. El proceso background LGWR escribe la misma información en todos los ficheros redo log activos de un grupo. Oracle necesita un mínimo de 2 grupos de fichero redo log activos para la operativa de la base de datos. para determinar el conjunto de entradas redo. cuando el grupo redo log activo está lleno. Buffer Redo Log Y El Proceso Background LGWR Oracle graba secuencialmente todos los cambios hechos a la BD en el buffer redo log. conocido como número de secuencia log. LGWR empieza a escribir en el siguiente grupo. Antes que el DBWR escriba los bloques modificados de los buffers de datos sobre los ficheros de datos. Cuando el último fichero redo log activo está lleno. LGWR vuelve al primer grupo redo log e inicia de nuevo la escritura. Log Switches LGWR escribe en los ficheros redo log secuencialmente (fig. El parámetro de inicialización LOG_FILES selecciona el Nº máximo actual de grupos que pueden ser abiertos en el momento de la ejecución de la base de datos y no puede ser excedido. se inicia un suceso checkpoint. el servidor oracle asigna un número. llamando redo log activo actual por el proceso LGWR en las siguientes situaciones: • • • • Cuando sucede una validación. 1). Los siguientes parámetros limitan el número de fichero redo log activos: • • • MAXLOGFILES en el comando CREATE DATABASE especifica el Nº máximo de grupos redo log activos (el límite es 255). Cuando sucede un LGWR TIMEOUT (cada 3 segundos). MAXLOGMEMBERS en el comando CREATE DATABASE especifica el Nº máximo de miembros por grupo. Cuando ocurre un log switches. Miembros de los Redo Log Activos • Cada fichero redo log activo de un grupo se llama miembro.

• Cuando una instancia ha sido cerrada. • El proceso background CKPT actualiza las cabeceras de todos los ficheros de datos y los ficheros de control. • Cuando es solicitado manualmente por el DBA. Un checkpoint sucede cuando: • En cada log switch. El valor por defecto es false. Archivo De Los Ficheros Redo Log Modo NOARCHIVELOG Los ficheros redo log activos son sobreescritos cada vez que un fichero redo log está lleno y cucede un log switch. Los checkpoints pueden suceder para todos los ficheros de datos o sólo praa ficheros especificados.122 Checkpoint Durante un checkpoint: • Todos los ficheros de datos modificados en el SGA se escriben en los ficheros de datos por el proceso DBWR. Administración de Bases de Datos . LGWR no sobreescribirá un grupo redo log hasta que se haya realizado el checkpoint de este grupo. La información de cada checkpoint es grabada en el fichero alert si el parámetro de inicialización log_checkpoint_to_alert está seleccionado en true. por lo tanto no anota checkpoints.

MEMBER que el grupo redo log no ha sido escrito nunca. ya que todos los cambios hechos en la BD son grabados en los ficheros redo log activo. Hay dos formas en que los ficheros redo log pueden ser archivados • • Manualmente Automáticamente. el DBA puede utilizar el backup físico y los ficheros archivados redo log para recuperar la BD sin pérdida de ningún dato validado debido a cualquier tipo de fallo. Por defecto. El parámetro de inicialización log_archive_start indica si el archivado debería ser manual o automático cuando la instancia es arrancada. Un comando del Server Manager tiene que ser ejecutado cada vez que se quiera archivar un fichero redo log activo.BYTES V$LOGFILE . el grupo no se necesita más para la recuperación de la instancia • Administración de Bases de Datos . Archivado automático. ARCH iniciará el archivado del grupo log lleno en cada log switch.SEQUENCE# Obtención de información sobre grupos y miembros • V$LOG .ARCHIVER • • Obtención de información sobre grupos Para ver el Nº de grupos log activos.CURRENT_GROUP# .LOG_MODE V$INSTANCE .NAME .GROUP# .MEMBERS . • True.SEQUENCE# . el grupo redo log actual (sobre el que se está escribiendo). grupo redo log activo pero no es el grupo actual. Indica que el DBA archivará los ficheros redo log llenos manualmente. V$DATABASE . Obtención De Información Sobre El Archivado • Comando del Server Manager ARCHIVE LOG LIST.GROUP . el grupo actual y el Nº de secuencia: • V$THREAD .123 Modo ARCHIVELOG Tienen que ser archivados ficheros redo log llenos inactivos. Todos los ficheros redo log o los específicos pueden ser archivados manualmente.STATUS: § unused: § current: § active: § inactive: .GROUPS . • False.

log' size 2M. 'log2c') SIZE 500K.rdo’ TO GROUP 1.rdo log2a. alter database add logfile member '/oracle/mount1/oradata/ochoi/redolog/redo03b.log' to group 3. ALTER DATABASE ADD LOGFILE MEMBER 'log2c' TO ('log2a'. El parámetro GROUP puede ser elegido para cada grupo de fichero redo log. Si se omite Oracle genera su valor automáticamente.rdo log1b. Multiplexado y Mantenimiento de Miembros y Grupos Para crear un nuevo grupo de ficheros redo log en línea. ALTER DATABASE ADD LOGFILE MEMBER ‘/disk4/log1b. El DBA puede forzar manualmente un checkpoint.. 'log2b')..rdo log2b. pero los log switches pueden forzados: svrmgr> ALTER SYSTEM SWITCH LOGFILE. Ejemplos probados: alter database add logfile group 3 '/oracle/mount3/oradata/ochoi/redolog/redo03.rdo’ TO GROUP 2.124 Control De Log Switches Y Checkpoint Son sucesos que ocurren automáticamente. ‘/disk4/log2b. utilizando: svrmgr> ALTER SYSTEM CHECKPOINT. log1a. Por ejemplo el grupo del fichero log activo no está lleno. ] ALTER DATABASE ADD LOGFILE ('log1c'.rdo GRUPO 1 GRUPO 2 Administración de Bases de Datos . utilizar: ALTER DATABASE [database] ADD LOGFILE [GROUP integer] filespec [. [GROUP integer] filespec ] . Añadir Miembros Redo Log ALTER DATABASE ADD LOGFILE MEMBER 'log2b' TO GROUP 2. Se especifica el nombre y lalocalización de los miembros en la cláusula “filespec”.

el fichero del sistema no se borra.125 Recolocación de ficheros Redo Log Activos Como recolocar los ficheros redo log activos: 1. 4. Cerrar la BD. Abrir la BD Eliminar Grupos Redo Log Activos y Miembros Se puede borrar un grupo redo log activo con el siguiente comando: ALTER DATABASE [database] DROP LOGFILE | GROUP integer | (‘filename’ [‘filename’]. • Si la BD está siendo ejecutada en el modo ARCHIVELOG y el grupo del fichero log no está archivado.. RESTRICCIONES: • Una instancia necesita al menos dos grupos de fichero redo log activos. 2. • No puede ser borrado un grupo redo log activo. • Si el grupo está activo se debe forzar un intercambio del fichero log antes de poder eliminar el miembro.rdo log1b. este miembro no puede ser eliminado. • Cuando un grupo redo log activo se borra. • Cuando un miembro redo log activo es eliminado. no se puede borrar el grupo. Borrado de los Miembros Redo Log en línea ALTER DATABASE DROP LOGFILE MEMBER ‘/disk4/log2b... Limpiando Los Ficheros Redo Log En Línea ALTER DATABASE CLEAR LOGFILE ‘/DISK3/log2a. Montar la BD.rdo’. los ficheros del sistema operativo no se borran. 3..rdo log2b. RESTRICCIONES: • El último miembro válido del grupo no puede ser eliminado.. ] .rdo log2a...... Administración de Bases de Datos . • Si la BD está en modo ARCHIVELOG y el grupo del fichero log al que pertence el miembro no está archivado.rdb’.log ALTER DATABASE DROP LOGFILE MEMBER 'log3c'. Ejecutar el comando ALTER DATABASE RENAME FILE 5. log1a.. ALTER DATABASE DROP LOGFILE GROUP 3. | GROUP . Se puede querer borrar un miembro redo log activo porque está invalid..) | [ . Copiar los ficheros redo log activos en la nueva posición..

El uso de este comando es equivalente a eliminar y añadir un fichero Redo Log Activo. para reducir el conflicto LGWR y DBWR. incluso si uno de los miembros no está disponible. Dimensionar ficheros Redo Log en Línea El tamaño mínimo de un fichero redo log en línea es de 50k y el máximo es específico del sistema operativo. Haciendo esto. No están disponibles todos los miembros del siguiente grupo. la instancia no se parará. No están disponibles todos los miembros del grupo actual. ficheros de datos y ficheros redo log activos en caso de un fallo del medio. Esto hará backups no utilizables si el fichero Redo Log Activo es necesario para recuperación.126 Si un fichero Redo Log está corrupto en todos sus miembros el ejemplo anterior reinicializa los ficheros. sitúa miembros de un grupo en discos diferentes. cuando no está archivado. Los miembros de diferentes grupos pueden tener tamaños diferentes. Cantidad de espacio en el medio de almacenamiento. Errores LGWR posibles • • • No está disponible un miembro de un grupo de dos o más. y el riesgo de pérdida entre ambos. Administración de Bases de Datos . ‘filename] …)} Planificación De Los Ficheros Redo Log En Línea Cuando Ud. Separe ficheros log archivados y los redo los activos en diferentes discos. multiplexa fichero redo log activos. Restricciones: • Puede limpiar un fichero Redo Log Activo tanto si está archivado como no. Las situaciones siguientes pueden influenciar la configuración de los ficheros redo log en línea: • • • Número de log switches y checkpoints Número y cantidad de entradas redo. pero otros si lo están. tiene que incluir la clabe unarchived. ALTER DATABASE [database] CLEAR [unarchived] LOGFILE {GROUP integer | (‘filename’ [. Sin embargo.

dbf’ SIZE 100M.dbf /u01/BBDD/redo/redo02.borrame_luego ALTER DATABASE ADD LOGFILE GROUP 2 ‘/u01/BBDD/redo/redo02.dbf.dbf /u01/BBDD/redo/redo02. // Comprueba que el “CURRENT” es ahora el 1 con SELECT a v$log ALTER DATABASE DROP LOGFILE GROUP 2.dbf /u01/BBDD/redo/redo03.borrame_luego Si tienes más de un miembro es básicamente lo mismo (mirar la documentación) Ejemplos de SINTAXIS. redo02. ALTER SYSTEM SWITCH LOGFILE.127 Ejemplo “Redimensionamiento De Ficheros Redo Log Activos” Supongamos que tenemos 3 grupos con un sólo miembro en /u01/BBDD/redo y que se llama redo01.dbf. 1) Mirar V$LOG cual es el que tiene el estado (STATUS9 “CURRENT”.dbf’ SIZE 100M.dbf’ SIZE 100M. ALTER DATABASE ADD LOGFILE GROUP 3 (‘diska: log3. ALTER DATABASE ADD LOGFILE GROUP 1 ‘…/…/log1a.dbf 3) Lo siguiente sería: ALTER DATABASE DROP LOGFILE GROUP 1.dbf (los podemos llamar . 1) ALTER DATABASE ADD LOGFILE MEMBER ‘…/…/redo01b. ALTER DATABASE DROP LOGFILE MEMBER ‘diskc: og3.dbf /u01/BBDD/redo/redo01.log’) SIZE 50K.rdo’ SIZE 150K 2) 3) 4) Administración de Bases de Datos . SQL>SELECT * FROM v$logfile. GROUP# 1 2 3 THREAD# 1 1 1 SEQUENCE# 1480 1481 1482 BYTES 20M 20M 20M MEMBERS 1 1 1 ARC NO NO NO STATUS INACTIVE INACTIVE CURRENT FIRST_CHANGE 2564078 2564362 2564886 FIRST_TIME 17/07/01 17/07/01 28/07/01 2) Miramos también en V$LOGFILE para comprobar situaciones de los miembros. ALTER SYSTEM SWITCH LOGFILE. GROUP# 1 2 3 STATUS MEMBER /u01/BBDD/redo/redo01. // Comprueba que el “CURRENT” es ahora el 3 con SELECT a v$log Si todo fue bien: !rm /u01/BBDD/redo/*.borrame_luego ALTER DATABASE ADD LOGFILE GROUP 1 ‘/u01/BBDD/redo/redo01. !mv /u01/BBDD/redo/redo03.dbf.dbf y redo03.dbf. !mv /u01/BBDD/redo/redo01. // Comprueba que el “CURRENT” es ahora el 2 con SELECT a v$log ALTER DATABASE DROP LOGFILE GROUP 3.borrame_luego ALTER DATABASE ADD LOGFILE GROUP 3 ‘/u01/BBDD/redo/redo03.dbf para no confundirse con ficheros log) y que tienen 20 MB y necesitamos que sean de 100 MB.dbf /u01/BBDD/redo/redo03. ALTER SYSTEM SWITCH LOGFILE.log’. Este no lo podemos tocar: SQL> SELECT * FROM v$log.log’ TO GROUP 1.log’ diskb: log3. En un horario que no haya mucha actividad en la BD (por aquello que no se está haciendo “log switch” cada milésima de segundo) y hayºa tiempo para hacer las cosas tranquilamente. !mv /u01/BBDD/redo/redo02.

disminuyendo conflictos en la búsqueda. En el nivel más bajo están los nodos de hoja. Índices ÚNICOS y NO ÚNICOS • • Un índice único garantiza que dos filas de una tabla no tienen valores duplicados en la columna que define el índice. Son usados en tablas particionadas. LOGICOS • Único o no único. Administración de Bases de Datos . una clave sencilla puede tener múltiples filas asociadas a él. está la raíz. Columna Simple o Índices Concatenados • • Índice de columna simple: Índice concatenado: tiene sólo una columna en la clave. . que contiene entradas que se dirigen a la siguiente del índice.128 Capítulo Nº 16 MANEJO DE INDICES Clasificación De Índices • Columna simple o concatenada. ÍNDICE DE ESTRUCTURA B*TREE Al principio del índice.La clasificación lógica agrupa índices a partir de la perpectiva de la aplicación. Índices Particionados y No Particionados Los índices particionados son utilizados para que las tablas grandes almacenen entradas de índices que correspondan a un índice en varios segmentos.Mientras que física se deriva de la forma en que los índices están almacenados. o índice compuesto. Pueden ser creado para cada partición de una tabla. que señalan hacia las filas de las tablas. se crea en múltiples columnas de una tabla. El número máximo de columnas en un índice compuesto es de 32. El tamaño combinado de todas las columnas no pueden exceder aproximadamente de un tercio del tamaño del bloque de datos. • Particionado o no particionado FISICOS • B*Tree o Bitmap (normal o clave inversa Un índice es una estructura en árbol que permite el acceso a una fila de una tabla. En el nivel siguiente están los bloque rama que a su vez están dirigidos hacia los bloques del siguiente nivel del índice. Los índices pueden ser clasificados basándose en su dieño lógico o en su implementación física. . La partición permite que un índice este en varios o muchos tablespaces. Un índice no único. que contienen las entradas de índices.

Características de las entradas de hoja del índice En un índice B*Tree de una tabla No Particionada: • • • Los valores de clave son repetidos si hay filas múltiples que tienen el mismo valor de clave. se almacena en el índice una calve de valor 8967. cuando se introduce el Nº del empleado siguiente 7782. una clave inversa de índice invierte los bytes de cada columna indexada (excepto el rowid) mientras que mantiene el orden de la columna. ya que todas las filas pertenecen al mismo segmento. se almacena la introduccion en el índice de 2877.129 Formato de las entradas de hojas del indice • • • Una cabecera: almacena el número de columnas e información de bloqueo. Administración de Bases de Datos . en la inserción del empleado Nº 7689 de la tabla. Se utiliza el Rowid restringido para dirigir hacia las filas de la tabla. En relación a esto se propaga el trabajo de carga por los múltiples bloques de índices. Por ejemplo. Parejas Valor – Longitud de la Columna Clave: define el tamaño de una columna clave seguida por un valor de la columna. Índices de Clave Inversa En contraste con un indice regular B*Tree. No hay entrada de índice que corresponda a una fila que tiene todas las columnas clave que sean null. Rowid de una fila: contiene los valores de la clave.

Otros temas. significa que la fila con el correspondiente Rowid contiene el valor clave. Estructura de un índice Bitmap También está organizado como B*Tree. superior al 0. Los índices b*tree pueden ser preferibles en un entorno OLTP para indexar tablas dinámicas.0155 (candidata) Nº de filas contenidas 12909 • • • Cuando las columnas utilizan frecuentemente una combinación de múltiples condiciones WHERE que relacionan al operador OR. porque los bitmap utilizan bloqueos a nivel segmentobitmap. Actualizaciones de columnas calve muy costosas.130 Índice Bitmap Los índice bitmap son más ventajosos que los B*Tree en ciertas ocasiones: • Cuando una tabla tiene millones de filas y las columnas clave tienen una cardinalidad baja (esto es. 2 x 100 = 0. Cardinalidad = Nº de valores únicos de la columna x 100 . una fila que se cubre con el bitmap no puede ser actualizada por otras transacciones hasta que no finalice la primera. Por ejemplo estos índices pueden ser preferibles a los de B*Tree para las columnas de sexo y estado civil de una tabla que contenga datos del pasaporte. tienen que ser modificados los bitmap. Cada Bit del Bitmap se corresponde a un posible Rowid y si el Bit está relacionado. Comparacion Entre Índices B*Tree E Índices Bitmap B*Tree Preferible para columnas de valor cardinal elevado. Muy útil para OLTP Bitmap Preferible para columnas de valor cardinal bajo. Eficiente para consultas utilizando predicados OR. mientras que un índice b*tree los bloqueos están en entradas correspondientes a filas individuales de la tabla.01 por 100) dicha columna NO es una candidata adecuada para un índice de mapa de bits. Menor lugar comprimido) de almacenamiento (se almacena en formato Las actualizaciones en las columnas clave de un índice bitmap son más caras. esto significa el bloqueo de los segmentos bitmap relevantes. regla 1: si la cardinalidad de una columna es superior a una centésima del 1 por 100 (es decir. mientras que los índices bitmap pueden ser muy útiles en entornos DSS donde se utilizan consultas complejas en tablas grandes y estáticas. Uso de un índice Bitmap El B*Tree es utilizado para localizar los nodos de hoja que contienen los segmentos bitmap para un valor dado de la clave. Ineficiente para consultas usando predicados OR. Cuando se realicen cambios en la columna clave de la tabla. Actualización de claves relativamente económicas. Muy útil para DSS. pero el nodo hoja almaena un bitmap para cada valor de clave en lugar de una lista de Rowid. Dado que los bloqueos se realizan en todo el segmento bitmap. Cuando hay actividad de sólo-lectura o pequeña actualización en las columnas. El Rowid inicial y los segmentos bitmap son utilizados para localizar las filas que contienen el valor clave. Administración de Bases de Datos . hay muy pocos valores distintos para las columna.

emp_lname_idx ON scott. Colocarlos en tablespaces separados. aunque se crea generalmente en la misma cuenta de la tabla. Definir PCTFREE alta si los nuevos valores clave pueden estar dentro del rango actual.] index_name ON [schema.131 Creación De Indices Creación de Índices B*Tree CREATE INDEX scott.] table_name (column_name [ASC | DESC] [column_name [ASC | DESC ] ] …) [TABLESPACE tablespace_name] [PCTFREE integer] [INITRANS integer] [MAXTRANS integer] [STORAGE CLAUSE] [LOGGING | NOLOGGING] [NOSORT] Donde: UNIQUE PCTFREE Es utilizado para especificar un indice único (por defecto es el no único) Es la cantidad de espacio reservado en cada bloque (en porcentaje del espacio total menos el bloque de la cabecera) en el momento de la creación para la acomodación de las nuevas entradas del índice. Considerar NOLOGGING para índices grandes. el servidor Oracle no tiene que clasificar las filas cuando crea el indice.employees(last_name) PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx01. NOSORT Directices: Creación de índices • • • • • Equilibrar las necesidades de consulta y DML. Administración de Bases de Datos . Un indice puede ser creado tanto en la cuenta del usuario propietario de la tabla como en una cuenta diferente. Uso de tamaños de extensión uniformes: múltiples de 5 bloques o tamaño MINIMUM EXTENT para tablespace. Especifica el Nº de entradas de transacciones preasignadas en cada bloque (el valor por defecto y minimo es 2) INITRANS MAXTRANS LOGGING Limita el Nº de entradas de transacciones que pueden ser colocadas en cada bloque (por defecto es 255) Especifica que la creación y las operaciones subsiguientes en el índice son anotadas en el fichero redo log (valor por defecto) Especifica que las filas son almacenadas en la base de datos en orden ascendente y por ello. Sintaxis Usar el siguiente comando para crear un índice de B*Tree: CREATE [UNIQUE] INDEX [schema.

las nuevas entradas en el índice siempre se añaden a las entradas existentes y no es necesario insertar una nueva entre dos existentes. Administración de Bases de Datos .ord_region_id_idx ON scott. Maximo número de filas – número incial de filas * 100 Número maximo de filas Creación de indices de Clave Inversa CREATE UNIQUE INDEX scott. En estos casos. Usar un bajo PCTFREE para índices de columnas que se incrementan monótonamente.ord(region_id) PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx01.] table_name (column_name [ASC | DESC] [column_name [ASC | DESC ] ] …) [TABLESPACE tablespace_name] [PCTFREE integer] [INITRANS integer] [MAXTRANS integer] [STORAGE CLAUSE] [LOGGING | NOLOGGING] REVERSE Nota: no se puede utilizar la palabra clave NOSORT para índice inversos de clave.] index_name ON [schema. para reservar el espacio de sus entradas. Un ejemplo de un índice que necesita un alto PCTFREE. Es utilizado sólo durante la creación del índice.ord(ord_no) REVERSE PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx01. como el número de envío en un sistema generado.132 Índices y PCTFREE El parámetro PCTFREE trabaja de forma diferente para un índice que para una tabla. Creación de Indices Bitmap CREATE BITMAP INDEX scott. En este caso es muy útil especificar un valor de PCTFREE como se indica en la siguiente ecuación.ord_ord_no_idx ON scott. es un índice en la columna de código del cliente de una tabla de envio. se invoca un borrado y luego una inserción. que puede ser necesario sean insertadas en el mismo bloque del índice. Sintaxis Usar el siguiente comando para crear un índice de claves inversa: CREATE [UNIQUE] INDEX [schema. Las entradas en el índice no son actualizadas. Cuando una columna clave se actualiza.

Administración de Bases de Datos .] index_name ON [schema. Reorganizacion De Indices Cambio de los Parámetros de Almacenamiento para los índices ALTER INDEX scott. Un uso común de este cambio es incrementar el MAXEXTENTS para un índice. el valor puede estar en KB en lugar de MB. El valor por defecto es 8 MB.emp_lname_idx STORAGE(NEXT 400K MAXEXTENTS 100). Los parámetros de utilización de un bloque pueden ser cambiados para garantizar niveles más altos de concorrencia en un bloque de índice. Como norma general a mayor cardinalidad. Algunos de los parametros de almacenamiento y los de utilizacion de bloque pueden ser modificados utilizando el comando ALTER INDEX.] index [ storage_clause ] [ INITRANS integer ] [ MAXTRANS integer ] Las implicaciones del cambio de los parametros de almacenamiento para un índice son las mismas que las del cambio de los de una tabla.] table_name (column_name [ASC | DESC] [column_name [ASC | DESC ] ] …) [TABLESPACE tablespace_name] [PCTFREE integer] [INITRANS integer] Un índice bitmap NO puede ser único [MAXTRANS integer] [STORAGE CLAUSE] [LOGGING | NOLOGGING] [NOSORT] CREATE_BITMAP_ÁREA_SIZE El parametro de inicialización CREATE_BITMAP_ÁREA_SIZE determina la cantidad de espacio que será utilizada para almacenar las segmentos BITMAP en la memoria. se necesita más memoria para un rendimiento óptimo. Sintaxis ALTER INDEX [schema. este valor puede ser seleccionado en un valor menor.133 Sintaxis Usar el siguiente comando para crear un índice bitmap: CREATE BITMAP INDEX [schema. Un valor mayor puede conducir a una mayor velocidad de creación del índice. Si la cardinalidad es muy pequeña. Por ejemplo si la cardinalidad es sólo 2.

134 Asignación Y Desasignación Del Espacio Del Índice ALTER INDEX scott. es necesario suficiente espacio para acomodar tanto el viejo como el nuevo índice en sus respectivos tablespaces. ALTER INDEX [schema. Asignación Manual de Espacio en un Índice Puede ser necesario añadir extensiones a un índice antes de un período de alta actividad de inserción en una tabla. Así éste índice utiliza el espacio más eficientemente.dbf’). Nota: el espacio del indice es desasignado cuando la tabla sobre la que el indice se construye es truncada. ALTER INDEX ord_ord_no_idx DEALLOCATE UNUSED. Reconstrucción De Índices ALTER INDEX scott. ALTER INDEX scott. Desasignación manual de espacio en un índice Usar la cláusula DEALLOCATE del comando ALTER INDEX para liberar espacio no utilizado sobre el HWM de un índice.ord_region_id_idx REBUILD TABLESPACE index02.dbf’). Al truncar una tabla se trunca también el índice asociado. Nota: El indice viejo se borra despues de que se haya construido el nuevo. La adición de extensiones previene la extensión dinámica de índices y la degradación del rendimiento resultante.ord_región_id_idx ALLOCATE EXTENT (SIZE 200K DATAFILE ‘/DISK6/indx01. El índice resultante no contiene ninguna entrada borrada.ord_ord_no_idx DEALLOCATE UNUSED. Durante la reconstrucción.] index_name {ALLOCATE EXTENT ([SIZE integer [K | M] ) [DATAFILE ‘filename’] | DEALLOCATE UNUSED [KEEP integer [K | M] ]} Ejemplo: ALTER INDEX ord_region_id_idx ALLOCATE EXTENT (SIZE 200K DATAFILE ‘/disk6/indx01. Administración de Bases de Datos .

como carga. En este caso el índice necesita ser borrado y vuelto a crear. Un índice normal existente necesita ser convertido en uno de clave inversa.----------------14 0 Verificar si existe corrupción en todos los bloques del índice. Administración de Bases de Datos . Llenar la vista INDEX_STATS con información del índice. • Mejora el rendimiento de la carga. consultar INDEX_STATS para obtener información del índice. Control De Validez Del Índice • • Sintaxis: ANALYZE INDEX [schema. como por ejemplo: SVRMGR> SELECT blocks. lf_rows. blocks --------25 pct_used …. por ejemplo.] index_name VALIDATE STRUCTURE. Borrado De Índices DROP INDEX index_name. Se puede utilizar eliminar un índice antes de realizar cargas masivas. Reorganizar el índice si tiene una proporción alta de filas borradas.135 Situaciones de reconstrucción de índices • • • El existente necesita ser movido a un tablespace diferente. la eliminación de un índice antes de la carga de grandes cantidades de datos y volver a crearlos después de la misma. cuando el porcentaje desde del_lf_rows a lf_rows excede del 30%. • Utiliza el espacio de índice de la carga. -----------11 lf_rows del_lf_rows -----------.] index_name REBUILD [TABLESPACE tablespace_name] [PCTFREE integer] [INITRANS integer] [MAXTRANS integer] [STORAGE CLAUSE] [LOGGING | NOLOGGING] [REVERSE | NOREVERSE] REVERSE y NOREVERSE sólo puede ser especificados para índices B*TREE. distinct_keys. del_lf_rows FROM index_stats. Sintaxis: ALTER INDEX [schema. Un índice puede ser marcado como invalid cuando un fallo es una instancia durante ciertos tipos de operaciones. pct_used. Un índice contiene muchas entradas borradas. Despues de ejecutar este commando.

136 Obtención De Información • • DBA_INDEXES DBA_IND_COLUMNS Administración de Bases de Datos .

Tipos de Segmentos Temporales Administración de Bases de Datos . Si el volumen de la ordenación excede de este tamaño. almacenándose resultados parciales en el disco..137 Capítulo Nº 17 MANEJO DE SEGMENTOS TEMPORALES Vista General Uso de los Segmentos Temporales Los segmentos temporales son utilizados cuando las sentencias tales como las siguientes son ejecutadas y el servidor Oracle no puede realizar la ordenación en la memoria: • • • • • SELECT . se necesitan varias ordenaciones.. NOTA: Ya que SORT_ÁREA_SIZE afecta a la memoria utilizada por cada sesión. Los segmentos temporales se crean y utilizan por el servidor Oracle en el tablespace que le ha sido asignado al usuario para ordenaciones. puede verse incrementar significativamente los requerimientos de memoria. ORDER BY CREATE INDEX SELECT DISTINCT SELECT … GROUP BY SELECT … UNION La cantidad de memoria utilizada por un proceso para ordenar es determinado por el parámetro SORT_AREA_SIZE. si se la aumenta.

el espacio libre del tablespace puede ser muy fragmentado. ser creados como Segmentos Temporales en un Tablespace Permanente El servidor Oracle puede crear un segmento temporal en un tablespace permanente si se satisfacen las siguientes condiciones: • • El usuario ejecuta una sentencia que necesite espacio de ordenación en disco. No hay límite para el número de extensiones en un segmento de ordenación creado en un tablespace TEMPORAL. Si son utilizados tablespaces TEMPORALES para segmentos temporales. controla este pool de extenciones libres. Una extensión no puede ser compartida por múltiples transacciones. Uso de Segmentos de Ordenación Un segmento de ordenación se crea por la primera sentencia que utiliza. para la ordenación. un instance puede tener más de un segmento temporal en el tablespace.138 Los segmentos temporales pueden ser creados en un tablespace PERMANENT o en un TEMPORARY. y cualquier sentencia que necesita asignar espacio para ordenaciones en el tablespace. Administración de Bases de Datos . Al usuario que ejecuta la sentencia le ha sido asignado un tablespace permanente para la ordenación. Un tablespace PERMANENT puede ser cambiado en uno TEMPORARY utilizando: ALTER TABLESPACE tablespace_name TEMPORARY. después del arranque. . Creado cuando sucede la primera ordenación en disco en la instance después del arranque. Segmentos Temporales en un Tablespace Temporal • • • • • Conocido como segmentos cortos. Un segmento de ordenación creado en un tablespace TEMPORAL es liberado sólo cuando se cierra. Sólo un segmento por tablespace e instance. A un usuario se le puede asignar uno de estos tipos de tablespaces para las ordenaciones. Un tablespace no puede contener ningún objeto permanente para que este comando se ejecute. Vuelto a utilizar por varias transacciones. Si son utilizados tablespaces PERMANENTES para la ordenación. . Liberado cuando se cierra la instance. Pueden TEMPORARY utilizando el siguiente comando: CREATE TABLESPACE tablespace_name TEMPORARY DATAFILE filespec [autoextent_clause] [ . Un segmento temporal es eliminado por SMON cuando finalice la ejecución de una sentencia y el espacio es liberado para ser utilizado por otros objetos. Tablespaces Temporales Es utilizado exclusivamente por segmentos temporales y no puede tener otro tipo de segmentos. Un tablespace temporal puede ser convertido en uno permanente utilizando el siguiente comando: ALTER TABLESPACE tablespace_name PERMANENT. un instance sólo crea un segmento de ordenación en este tablespace. un tablespace TEMPORAL. Así está recomendado que este tablespace sea utilizado exclusivamente para las ordenaciones. filespec [autoextent_clause]] . Pool de Segmento DE Ordenación El servidor Oracle mantiene los detalles del segmento de ordenación en el SGA en un área llamada Pool del Segmento de Ordenación. Si se utiliza un tablespace PERMANENTE para la ordenación. Esto disminuye la frecuente asignación y desasignación de extensiones por operaciones que necesitan ordenación y ayudan para mejorar el rendimiento. Varias transacciones que necesitan clasificaciones en disco pueden utilizar el mismo segmento.

v$sort_usage u WHERE s.session_addr. El parámetro MAXEXTENTS afecta sólo al segmento temporal si el tablespace es PERMANENTE. Especificaciones del Almacenamiento por Defecto Utilice las siguientes directrices para especificar el DEFAULT STORAGE: • Definir INITIAL = NEXT.blocks FROM v$session s.username. V$SORT_USAGE muestra las ordenaciones activas actuales en el instance. u.139 Asignación de Espacio en Segmentos Temporales Guía de los Segmentos Temporales • • Definición de diferentes tablespaces TEMPORALES basados en necesidades de ordenación.tablespace. Ya que un proceso siempre escribe datos igual a SORT_AREA_SIZE en el segmento temporal. Especificas DEFAULT STORAGE para estos tablespaces como se muestra: o o INITIAL = NEXT = (múltiplo de SORT_ÁREA_SIZE) + DB_BLOCK_SIZE PCTINCREASE = 0 Crear y usar tablespaces TEMPORALES de ordenacion para mejorar la concurrencia y disminuir la asignacion y desasignación frecuentes de espacio. Las columnas MAX_SORT_SIZE y MAX_SORT_BLOCKS especifican el número de extensiones y bloques utilizados por la mayor operación de clasificación que usa un segmento dado. un valor bueno para el tamaño de la extensión es (n * s + b) Donde: n s b es un entero positivo es el valor del parámetro de incialización SORT_ÁREA_SIZE es el valor del parámetro de incialización DB_BLOCK_SIZE Utilizando este valor se optimiza el uso del segmento temporal. Administración de Bases de Datos . dejando espacio suficiente para que sea almacenado en cada extensión un bloque de cabecera así como la ejecución de múltiple datos de ordenación.extents. u.saddr = u. u. u. u. Obtención de Información del Segmento Temporal Las siguientes vistas pueden ser utilizadas para obtener información a cerca de segmentos temporales y sus usos: • • • DBA_SEGMENTS V$SORT_SEGMENT da el estado del pool de extensiones de ordenación utilizado por el instance.contents. Los tamaños de las extensiones utilizados por un segmento temporal son asignados por la cláusula DEFAULT STORAGE especificada en el tablespace. Unir las visualizaciones V$SESSION y V$SORT_USAGE para obtener información en las ordenaciones activas actuales del instance: SELECT s.”USER”. Esta información puede ser muy útil para dimensionar los tablespaces TEMPORALES. • • Definir un PCTINCREASE a cero para asegurar que todas las extensiones son del mismo tamaño. Estadísticas de Ordenación del Segmento Consultar V$SORT_SEGMENT para controlar los tablespaces TEMPORALES que contienen segmentos de ordenación y sus estadísticas de uso respectivas.

140 USERNAME ---------------SYSTEM USER ------------SYS TABLESPACE -----------------------TEMP CONTENTS ----------------------TEMPORARY EXTENTS -------------1 BLOCKS ------------128 La columna USER en V$SORT_USAGE muestra siempre el usuario que está consultando esta vista y no el que realiza la ordenación. Obtener el nombre del usuario de la vista V$SESSION. La columna CONTENTS muestra si el segmento temporal está creado en un tablespace PERMANENTE o TEMPORAL Administración de Bases de Datos .

141 Capítulo Nº 18 AUDITORIA Vista General Categoría de Auditoría • Auditar operaciones privilegiadas o o • Auditadas siempre Encendido. cuantos I/O lógicos se han realizado y cuantos usuarios se conectan concurrentemente a las horas punta. utilizar una aplicación de auditoría. para proporcionar conocimiento de los usuarios con privilegios de administrador. Si los cambios de las columnas de la base de datos necesitan ser marcados y los valores de las columnas necesitan ser almacenados para cada cambio. si un usuario no autorizado está borrando datos de tablas. Administración de Bases de Datos . el administrador puede recoger estadísticas a cerca de qué tablas han sido actualizadas. Por ejemplo. la fecha y hora de inicio y si la auditoría de la base de datos estaba habilitada o no. Auditoría de la Base de Datos La auditoría de una base de datos es la monitorización de acciones seleccionadas de usuarios de la base de datos. Auditoría Basada en Valores La auditoría de la base de datos no puede grabar los valores de las columnas. apagado y conexiones SYSDBA Habilitada por el DBA No puede grabar valores de las columnas Implementada a través de código Puede grabar los valores de las columnas Utilizada para registrar los cambios a las tablas Auditoría de la Base de Datos o o • Auditoría basada en valor o aplicación o o o Auditoría de Operaciones Privilegiadas El servidor Oracle auditará siempre las siguientes acciones de la base de datos en el sistema auditor: • • • Arranque del instance: Se genera una grabación de auditoría que detalla el usuario del SO que arranca el instance. La información a cerca del suceso es almacenada en la marca de auditoría. Por ejemplo. el administrador de la base de datos puede decidir auditar todas las conexiones a la misma en conjunción con los intentos no fallidos y fallidos del borrado de filas en las tablas de la base de datos. Esta aplicación puede ser hecha bien a través del código de un cliente. procedimientos almacenados o disparadores de la base de datos. Parada del instance: Se genera una grabación de auditoría que detalla el usuario del SO que para el instance. La auditoría puede ser usada también para monitorizar y recoger datos a cerca de actividades específicas de la base de datos. el terminal. La marca de auditoría puede ser utilizada para investigar actividades sospechadas. Las conexiones a la base de datos con los provilegios del administrador: Se genera una grabación de auditoría que detalla eñ usuario SO que conecta con la base de datos como SYSOPER o SYSDBA. el terminal y la fecha y hora de finalización.

audit. Este disparador almacena los valores de columna de columna nuevos y antiguos._employee AFTER INSERT OR DELETE OR UPDATE ON scott. … . USER.empno.name . Sino. Uso de la Auditoría de la Base de Datos El administrador de la base de datos requiere un propósito claramente definido para la auditoría.142 Auditoría Basada en Valor: Un Ejemplo CREATE TRIGGER scott.emp FOR EACH ROW BEGIN INSERT INTO scott. … . END.name . y por ello. SYSDATE). el nombre del usuario que hace el cambio y la hora en que los cambios han sido hechos en la tabla de empleados.empno. :NEW. Valores Basados en Auditoría Utilizando Disparadores: Ejemplo En el ejemplo anterior se muestra un fichero de comandos que puede ser utilizado para crear un disparador para el valor basado en la auditoría.audit_employee VALUES ( :OLD. :NEW. Administración de Bases de Datos . es el foco principal de esta lección. la cantidad de información de auditoría generada puede hacer que crezca con información insignificante y de forma incontrolada la marca de la auditoría. La auditoría de la base de datos es una tarea del administrador. :OLD.

Especificar las Opciones de Auditoria A continuación.143 Habilitar la Auditoría de la Base de Datos Una vez que decida auditar. la grabacion de la marca de auditoría permanece intacta. objetos o provilegios auditar. Con este comando. seleccione el parámetro de inicialización AUDIT_TRAIL para habilitar la auditoría del instance. como sea necesario. puede desconectarla con el comando NOAUDIT. Dado que las visualizaciones y procedimientos pueden referirse a otros objetos de base de datos. un error de sintaxis. También puede indicar si debería ser generada una grabacion de auditoría para cada suceso o una para cada sesión. Este parámetro indica si la marca de auditoría está escrita en una tabla de la base de datos o en la marca de auditoría del SO. cuando la unidad del programa es ejecutado. Ud seleccciona las opciones especificadas de auditoría utilizando el comando AUDIT. el proceso del servidor examina las opciones de auditoría para determinar si la sentencia que está siendo ejecutada debería generar una grabacion de auditoría. haraá que no se genere la grabación de la marca de auditoría. si se hace rollback a una transacción de usuario. que sucede durante la fase de análisis. Revision de Información de Auditoría Examinar la información generada durante la auditoría seleccionando en las visualizaciones de la marca de auditoría del diccionario de datos o usando una utilidad del sistema operativo para visualizar la marca de auditoría del sistema operativo. pueden ser generadas varias grabaciones de auditoría como resultado de ejecutar una sentencia sencilla. El administrador de la Base de datos seleccciona el parametro de inicialización AUDIT_TRAIL para habilitar la auditoría en el instance. Si una opción de auditoría no es necesaria. Generacion de Datos de Auditoría La generacion e inserción de una grabacion de marca de auditoría depende de una transacción de usuario. Administración de Bases de Datos . Ya que la marca de auditoría es generada durante la fase de ejecución. Ejecución de Sentencias Cuando los usuarios ejecutan las sentencias PL/SQL y SQL. indica que comandos. Esta información es utilizada para investigar actividades sospechosas y para monitorizar la actividad de la base de datos. por ello. usuarios. Las sentencias SQL dentro de las unidades del programa PL/SQL se auditan individualmente.

.emp BY ACCESS WHENEVER SUCCESSFUL. Estas instrucciones pueden volverse a ver utilizando el Visualizador de Sucesos. AUDIT_FILE_DEST. la selección de AUDIT_TRAIL = OS genera ficheros de texto en el directorio especificado por el parámetro de incializacion. En estos sistemas operativos. WINDOWS NT: Marca de Auditoría del Sistema Operativo Windows NT permite a la marca de auditoría del sistema operativo registrar la información de auditoría de Oracle. • Privilegio de auditoría AUDIT select any table BY scott BY ACCESS. Aunque las sentencias SQL AUDIT y NOAUDIT pueden ser utilizadas en cualquier momento. Este parámetro se selecciona por defecto en $ORACLE_HOME/rdbms/audit. Opciones de Habilitación de Auditoría • Sentencia de auditoría AUDIT user. Nota: AUDIT_TRAIL puede estar seleccionado en TRUE (equivalente a BDA) o FALSE (equivalente a NONE) UNIX: Marca de Auditoría del Sistema Operativo En la mayor parte de los sistemas UNIX no se puede realizar la escritura de la información de auditoría en la marca de misma del sistema operativo.aud$) habilita la auditoría y dirige todas las grabaciones a la marca de auditoría del sistema operativo (se está permitido en el sistema operativo) inabilita la auditoría (valor por defecto) OS NONE Las grabaciones de auditoría no serán escritas en la marca de auditoría a menos que el DBA haya seleccionado el parámetro AUDIT_TRAIL en DB u OS. Administración de Bases de Datos .144 Sintaxis AUDIT_TRIAL = value where value DB puede ser: habilita la auditoría y dirige todas las grabaciones de la misma a la marca de auditoría de la base de datos (sys. • Esquema del objeto auditoría AUDIT LOCK ON scott. las grabaciones sólo serán escritas en la marca de auditoría si el DBA ha seleccionado el parámetro AUDIT_TRAIL en el fichero de inicialización.

Auditoría de Sentencia Ud. Sintaxis Usar el comando siguiente para habilitar las opciones de auditoría: Privilegio o Sentencia de Auditoría AUDIT { statement | system_priv } [. [ BY user [ . puede seleccionar la sentencia de auditoría para auditar a los usuarios seleccionados o cada usuario en la base de datos. ] [ BY { SESSION | ACCESS } ] [ WHENEVER [NOT] SUCCESSFUL ] Objeto de Auditoría AUDIT { statement [. { statement | system_priv } ] .145 Sucesos Auditados a Demanda Ud. dado que el usuario puede utilizar SELECT de la tabla sirviéndose de su privilegio como propietario. Cuando se audita. El ejemplo de la sentencia de autoria. Ud. . . identifica el objeto elegido para la auditoría. En el ejemplo. y como el inicio de la base de datos. desconexión y recuperación. se genera una entrada de auditoría. user ] . . para los que no ha recibido el privilegio SELECT. puede auditar utilizando un tipo de sentencia SQL o para un tipo de objeto. se auditarán todas las actividades de los usuarios) user Administración de Bases de Datos . ALTER y DROP USER para todos los usuarios. . Auditoria de Objetos en un Esquema Se audita las sentencias realizadas en un esquema de objeto específico. Las opciones sentencia de auditoría son amplias. AUDIT TABLE señala varias sentencias DDL sin tener en cuenta de la tabla de la que han salido. este se genera sólo si SCOTT consulta las tablas que pertenecen a otros usuarios. Auditoría de Privilegios La auditoría de privilegios audita el uso de los privilegios del sistema. especifica el privilegio del sistema para la auditoría. y lo selecciona de una tabla que le pertenece. selecciona las opciones del objeto especificado como las por defecto para los objetos que se creen después. se verifica primero los privilegios del propietario de usuario SELECT ANY TABLE está siendo auditado. audita todas las sentencias CREATE. auditando el uso de diversos tipos de acciones relacionadas por opción. ] object | DEFAULT } [ BY { SESSION | ACCESS } ] [ WHENEVER [NOT] SUCCESSFUL ] where : statement system_priv schema. se genera una entrada en la marca de auditoría cuando un usuario ejecuta de forma satisfactoria el comando LOCK en el objeto SCOTT.schema-object DEFAULT especifica el tipo de sentencia SQL o el esquema objeto para la auditoria. específica las opciones de auditoría utilizando el comando AUDIT. .EMP. el privilegio SELECT ANY TABLE no generará ninguna grabación de auditoría. cuando SCOTT utiliza el privilegio ANY TABLE. ON { [schema. indica auditar sólo a los usuarios relaciondos en la lista (si esta cláusula se omite. En el ejemplo. . Las conexiones de estos usuarios evitan ciertas funciones internas de Oracle para habilitar las operaciones administrativas. Por ejemplo. Estas grabaciones de auditoría no se generan nunca por las sesiones establecidas por el usuario SYS o por conexiones como INTERNAL. statement ] .

Si Ud. los enlaces de la base de datos. descomposición de errores. auditando las operaciones que afectan a la tabla base. Estas vistas son consultadas por el administraor de la base de datos para determinar que está siendo auditado. Puede ser utilizado la abreviatura ALL como una opción de auditoría para las opciones aplicables para el tipo de objeto. Oracle siempre audita por acceso. Por el contrario. puede auditar el acceso a estos objetos indirectamente.146 BY SESSION hace que Oracle inserte sólo una grabación por objeto de la bsae de datos en la marca de auditoría para cada sesión. permanecen las opciones del esquema creado previamente. sintener en cuenta el número de sentencias SQL del mismo tipo que estén sometidas (este es por defecto. Las sentencias que referencian a los clusters. Una vez que Ud. secuencias. paquetes. la siguiente consulta muestra las opciones de auditoría de privilegios que están seleccionados: Administración de Bases de Datos . procedimientos y funciones alamacenadas. Ya que estas vistas y procedimientos pueden referirse a objetos de otras bases de datos. índices o sinónimos no son auditados directamente. especificando el objeto en la cláusula ON del comando AUDIT. Ud. Sólo puede cambiar las opciones de un esquema existente. los cambios al esquema del objeto y opciones de auditoría son efectivas para las sesiones actuales. Las opciones de auditoría del esquema de objetos son siempre seleccionadas para todos los usuarios de la base de datos. Auditoría de Objetos del Esquema La auditoría de objetos de un esquema audita selectivamente las senetencias ejecutadas en objetos especificados. El objeto de Ud. cambia las opciones de auditoría por defecto. Ud. excepto para DDL) hace que Oracle inserte una grabacion en la marca de auditoria cada vez que una sentencia auditada esté sometida (para sentencias de Datos de Definición de Lenguaje “DDL”. específica que la auditoría no se realizará sólo cuando finaliza satisfactoriamente las sentencias SQL (por defecto. La tabla muestra las opciones de auditoría disponibles por tipo de objeto. Estas opciones no se pueden seleccionar para una lista específica de usuarios. snapshots. Observe que las opciones de auditoría por defecto de una vista son siempre la unión de las opciones de auditoría para las tablas bsae de la visualización. vistas. no puede ser cogida utiliando la cláusula WHENEVER UNSECCESSFUL. Opción DEFAULT de Auditoría de Objetos de un Esquema Puede utilizar la opción DEFAULT del comando AUDIT para especificar las opciones de auditoría para un esquema de objetos que todavía no han sido creados. ha establecido estas opciones de auditoría por defecto. ALL_DEF_AUDIT_OPTS DBA_STMT_AUDIT_OPTS DBA_PRIV_AUDIT_OPTS DBA_OBJ_AUDIT_OPTS Descripción Opciones de auditoría por defecto Opciones de auditoría de sentencias Opciones de auditoría de privilegios Opciones de auditoría de objetos de esquema Las vistas del diccionario de datos relaciondas. como TABLE R VIEW DOES NOT EXIST. contienen la información de las opciones de auditoría. El privilegio AUDI SYSTEM es necesario para seleccionar las opciones de auditoría DEFAULT. es ambas) BY ACCESS WHENEVER Nota: • • Dado que las grabaciones son generadas durante la fase de ejecución. cualquier objeto esquema creado posteriormente se audita automáticamente con estas opciones. puede auditar sentencias que referencien a tablas. No obstante. Visualización de Opciones de Auditoría Visualización de Datos Dicc. Los procecidmientos en los paquetes no pueden ser auditados individualmente. elige para auditar tiene que estar en su propio esquema o Ud. Por ejemplo. se pueden generar varias grabaciones de auditoría como resultado del uso de estos objetos. bibliotecas y directorios. tiene que tener privilegio del sistema AUDIT ANY. no a la sesión actual. Las opciones de sentencia y privilegio especificadas por el comando AUDIT se aplican sólo a seciones siguientes.

user ] . . PRIVILEGE ------------------------------------CREATE TABLE ALTER ANY TABLE ALTER ANY TABLE ALTER ANY PROCEDURE ALTER ANY PROCEDURE ANY PRIVILEGE SUCCESS -----------------BY ACCESS BY ACCESS BY ACCESS BY ACCESS BY ACCESS BY ACCESS FAILURE --------------------BY ACCESS NOT SET NOT SET NOT SET NOT SET BY ACCESS Opciones de Inahilitación de Auditoría NOAUDIT user WHENEVER SUCCESSFUL. Sintaxis Usar la sentencia NOAUDIT para detener la auditoria elegida por el commando AUDIT. ON { [schema. NOAUDIT { statement | system_priv } [. . statement ] . para inhabilitar la auditoría de todos los usuarios. USER_NAME ------------------SCOTT SYSTEM SCOTT SYSTEM SCOTT GRANT 6 rows selected. . Observe que la sentencia NOAUDIT tiene que tener la misma sintaxis de la AUDIT previa ya que sólo se invierte los efectos de esta sentencia en particular. NOAUDIT LOCK ON emp. . invierte la sentencia B pero permite que la sentencia A siga estando operativa. Administración de Bases de Datos .147 SVRMGR> SELECT * FROM dba_priv_audit. si una sentencia AUDIT (sentencia A) habilita la auditoría para un usuario específico._opts. [ BY user [ . una sentencia NOAUDIT. NOAUDIT create table BY scott. ] object | DEFAULT } [ WHENEVER [NOT] SUCCESSFUL ] Nota: Una sentencia NOAUDIT invierte el efecto de otra AUDIT previa. ] [ WHENEVER [NOT] SUCCESSFUL ] NOAUDIT { statement [. auditando al usuario en ella especificado. { statement | system_priv } ] . y una segunda sentencia (sentencia B) habilita la auditoría para todos los usuarios. . . Así.

Esta información es utilizada para investigar actividades sospechosas o la de monitorizar la BD. Cada grabación en la traza de auditoría incluye: o El usuario que ejecutó la senencia. llamada marce de auditoría de la base de datos.O. privilegio y objeto esquema. privilegio y objetos Las grabaciones de la auditoría son almacenadas en la tabla del diccionario de datos SYS. Localización de la Marca de Auditoría Las grabaciones de auditoría pueden ser almacenadas en la tabla del diccionario de datos. El DBA consulta una de las vistas del diccionario de datos asociada con la marca de auditoría para examinar la información generada durante la auditoría. o La fecha y hora en que fue utiliada la sentencia. La marca de auditoría almacena las grabaciones generadas por la auditoría de la sentencia. Se proporcionan varias vistas predefinidas para ayudarle a utilizar la información de esta tabla.AUD$. Administración de Bases de Datos .148 Visualización de los Resultados de Auditoría La Traza de Auditoría • • • Almacena las grabaciones generadas por las auditorias de sentencia. o en una marca de auditoría del sistema operativo. Contenido de la Marca de Auditoría Cada grabación en la marca de auditoría incluye: • El nombre del usuario • El identificador de la sesión • El identificador del terminal • El nombre del esquema objeto accedido • La operación realizada o que se ha intentado (código de acción) • El código de finalización de la operación • La fecha y hora de realización • Los privilegios del sistema utiliados Visualización de los Resultados de la Auditoría Objeto DBA_AUDIT_TRAIL DBA_AUDIT_EXISTS DBA_AUDIT_OBJECT DBA_UDIT_SESSION DBA_AUDIT_STATEMENT Descripción Todas la entradas de auditoría Grabaciones de AUDIT EXISTS / NOT EXISTS Grabaciones relatives a los objetos del esquema Todas la entradas de conexion y desconexión Grabaciones de Audit de sentencias El siguiente ejemplo muestra las grabaciones de auditoría generadas cuando son ejecutadas unas series de sentencias.AUD$ o en la traza de auditoría del S. o El comando utilizado (código de acción) o Cualquier privilegio referenciados en la sentencia. La marca de auditoría de la base de datos es la tabla del diccionario de datos SYS.

priv_used 2 > FROM sys. donde sea posible o Sólo usuario específicos o Por sesión o Con éxito / siin éxito • Mantenimiento de la traza de auditoría o Monitorizar el crecimiento de la traza de la auditoría. Enfoque de la Auditoría Restringir la auditoría identificando primero los requerimientos para la misma y seleccionando sus opciones mínimas que abastecerán a requerimientos. obj_name. Tiene que ser utilizada la auditoría del objeto.dba_audit_object 3 > WHERE owner = ‘SCOTT’ AND obj_name = ‘EMP’. o Proteger la traza de la auditoría de accesos no autorizados. actino_name. para reducir el número de entradas generadas. no ambos. la siguiente configuración puede minimizar la generación de auditoría: • Especificando los usuarios que se van a auditar. Estos resultados se obteinen solo cuando suceden ciertos sucesos en la base de datos. OBJ_NAME -------------------------EMP EMP EMP ACTION_NAME -------------------------SESSION REC SESSION REC SESSION REC PRIV_USED ------------------------------- DELETE ANY TABLE Directrices para la Auditoría Directrices de la Auditoría • Enfoque de la auditoría o Objeto de la auditoría. no por acceso.149 SVRMGR > SELECT username. o Limpiar los ficeros S. Si es necesario utilizar la auditoría de sentencia o privilegio. de auditoría. Administración de Bases de Datos .O. cuando se posible. • Auditar por sesión. • Auditar bien los acietos o los fallos. USERNAME ------------------SCOTT ADANS SYSTEM 3 rows selected.

Habilitar la auditoria del instance. 5. DROP TABLE AUD$. debería ser almacenada fuera del tablespaces del sistema. 7. 4. Para mover AUD$ al tablespace AUDIT_TAB: 1. 6. CREATE TABLE aud$_Temp. ses$tid) TABLESPACE AUDIT_IDX. 3. 2. Administración de Bases de Datos .150 Mover la Marca de Auditoría fuera del Tablespace del Sistema Al tiempo que nuevas grabaciones se insertan en la marca de auditoría de la base de datos. puede borrarla o truncarla de la marca ya que las filas están sólo para información y no son necesarias para la ejecución de Oracle. TABLESPACE AUDIT_TAB AS SELECT * FROM AUD$ WHERE 1 = 2. RENAME aud$_temp TO aud$ CREATE INDEX I_aud1 ON aud$(sessionid. Asegúrese de que la auditoría este actualmente inhabilitada. Aunque no debería eliminar la tabla AUD$. GRANT DELETE ON aud$ TO DELETE_CATALOG_ROLE. Dado que la tabla AUD$ crece y después empequeñece. Para proteger la tabla de auditoría de borrados no autorizados sólo el DBA debería tener el rol DELETE_CATALOG_ROLE. la tabla AUD$ puede crecer sin límite.

SQL*Loader Es una utilidad usada para la carga de datos de ficheros externos en tablas Oracle. SQL*Loader Inserción de carga directa Puede ser utilizado para copiar datos de una tabla a otra dentro de la misma base de datos. Vista General Hay varios métodos disponibles para la carga de datos en tablas de la bse de datos Oracle. Proporciona un medio de migración desde otros sistemas a Oracle. Acelera la operación de inserción. Administración de Bases de Datos . obviando el buffer y escribiendo los datos directamente en los ficheros de datos. Los que serán analizados a continuación son: • • Inserción de carga directa.151 Capítulo Nº 19 CARGA DE DATOS Objetivos • • Carga de datos utilizando la inserción carga directa Cargar datos en las tablas Oracle utilizando el SQL*Loader convencional y las vías de acceso directas.

Administración de Bases de Datos . modificar otras filas de la tabla. ] table [ [NO] LOGGING ] sub-query. Esta operación mantiena los índices y también impone todas las restricciones habilitadas. volviéndolo a seleccionar en LOGGING una vez la carga se haya finalizado. Si se van a producir varias modificaciones en los datos en línea. podría ser aconsejable seleccionar el atributo NOLOGGING antes de realizar la carga. where: schema table sub-query es el propietario de la tabla es el nombre de la tabla es la subconsulta utilizada para seleccionar las columnas y filas requeridas para la inserción. haciendo posible a recuperación completa en caso de fallos. También habilita a otros usuarios para. la operación genera entradas de redo. Las inserciones de carga directa se pueden realizar sólo cuando se utiliza el comando INSERT INTO SELECT. concurrentemente. Si se utiliza la opción NOLOGGING. el espacio puede desperdiciarse y las exploraciones totales a las tablas pueden ser relentizadas. Todos los datos insertados utilizando este método son cargados por encima de la high water mark. para operaciones como la colocación de una extensión. Esta opción no se puede realizar cuando se utiliza el comando INSERT INTO VALUES. Alguna anotación mínima continua produciéndose. Ambas inserciones de carga directa pueden ser utilizadas en tablas no particionadas como en las particionadas.152 Carga de Datos Utilizando la Inserción de Carga Directa Sintaxis La inserción de carga directa puede ser invocada utilizando la indicación APPEND como se muestra en el comando siguiente: INSERT / * + APPEND * / INTO [ schema. los cambios de los datos no se graban en el buffer redo log. Si la tabla contiene muchos bloques donde se han borrado filas. que es la por defecto. Modo Logging Cuando se inserta utilizando la opción LOGGING. Otras consideraciones Las inserciones de carga directa permiten a otras trnsacciones hacer cambios en la tabla de forma concurrente. El modo NOLOGGING es utilizado si este ha sido seleccionado para la tabla.

el servidor Oracle utiliza varios procesos para los cambios de datos en las tabla. Cuando una transacción se realiza. Cuando se realizan las inserciones de carga directa. las extensiones de estos segmentos individuales se hacen parte en la que las grabaciones son insertadas.153 Las inserciones de carga directa pueden ser hechas en paralelo utilizando uno de los siguientes métodos: • • Uso de una indicación PARALLEL en la sentencia INSERT como en el ejemplo. ver el capitulo “Ejecución Paralela “ en Oracle8 Server Reference manual. Un objeto que es modificado utilizando la inserción de carga directa paralela no puede ser requerido o modificado de nuevo dentro de la misma transacción. Para un análisis detallado de las inserciones de carga directa paralela. Creación de la tabla o su alteración para especificar la cláusula PARALLEL. conocidos como consultas paralelas esclavas. Nota: • • • El comando LATER SESSION ENABLE PARALLEL DML tiene que ser ejecutado al inicio de la transacción. Los segmentos temporales son colocados para almacenar los datos insertados por cada proceso eslcavo. Administración de Bases de Datos .

• Las funciones SQL pueden ser aplicadas en los datos de entrada antes de que se almacene la fila en la base de datos. • Pueden ser combinadas varias grabaciones de entrada en una grabación lógica para carga. pasando por el buffer de la base de datos. cinta o mangeras con nombre. • Los campos de entrada pueden tener una amplitud fija o variable. binario. Funciones SQL*Loader SQL*Loader realiza las siguientes funciones: • Pueden ser utilizados uno o más ficheros de entrada. Por ejemplo. • Los datos pueden ser cargados desde diferentes tipos de medios como discos.154 Carga de Datos Utilizando SQL*Loader SQL*Loader carga datos desde ficheros externos en tablas de una base de datos Oracle. • Los datos pueden ser cargados en varias tablas a la vez. decimal empaquetado. • Los datos de entrada pueden estar en cualquier formato – caracteres. • Los datos pueden ser cargados directamente dentro de la tabla. • Las opciones están disponibles tanto para sustituir como para añadir datos existentes en las tablas. fecha y con zona decimal. • Los valores de la columna pueden ser auto-generados basándose en las reglsa. un valor secuencial de clave puede ser generado y almacenado en una columna. Administración de Bases de Datos .

suministrado por Oracle. para almacenar todas las grabaciones que no cumplieran el criterio de selección. pero no puede ser utilizada en todas las situaciones. si es necesario. La generación redo log es controlada por el atributo logging de la tabla que está siendo cargada. • Log file: se crea por el SQL*Loader y contiene una grabación d la carga. La carga por vía directa utiliza las especificaciones del campo para construir todos los bloques de datos Oracle. Nota: El fichero de comando catldr. • Bad file: es utilzado por la utilidad para escribir las grabaciones que son rehusadas durante la carga (esto puede suceder durante la validación de una grabación de entrada por la utilidad o durante la inserción de la grabación por el servidor Oracle). • Datal file: contienen los datos en el formato definido en el fichero de control. se descomponen las grabaciones de entrada. Las entradas redo log no se generan a menos que la base de datos esté en el modo de archivo. Comparación De Las Vías De Acceso De Carga Directa Y Convencional Carga Convencional Utiliza los COMMIT para hacer cambios permanentes Entradas Redo Log generadas siempre Impone todas restricciones Dispara Triggers INSERT Puede cargarse en tablas agrupadas (CLUSTER) Otros usuarios pueden hacer cambios en las tablas Carga Directa en la Vía de Acceso Utiliza “Data Saves” Genere Redo Log en condiciones específicas (NO LOGGING) Se impone sólo a la clave primaria. • Parameter file: es un fichero opcional que puede ser utilizado para definir los parámetros de la línea del comando para la carga.sql. crea vistas que son utilizadas por la carga por vía directa. Las grabaciones que no conforman con las especificaciones de los campos son rechazadas y las grabaciones que no satisfacen los criterios de selección son descartados. Esta es invocada automáticamente cuando se ejecuta el fichero de comandos catalog. y una disposición de grabaciones se construye y es insertado en la tabla especificada en el fichero de control. La sección siguiente compara la vía de carga convencional con la directa y ofrece ejemplos de situaciones en las que cada una de ellas puede ser utiliada.155 Ficheros Utilizados por SQL*Loader SQL*Loader utiliza los siguientes ficheros: • Control file: específica el formato de entrada. Evita el paso por el buffer de la base de datos y accede al SGA sólo para manejar extensiones y ajustar la HWM. y escribe estos bloques directamente en los ficheros de datos Oracle. única y NOT NULL No se disparan los Triggers INSERT No puede cargarse en tablas agrupadas (CLUSTER) Otros usuarios no pueden hacer cambios en las tablas Administración de Bases de Datos .sql. • Discard file: es un fichero que puede ser creado. Generalmente la carga por vía directa es más rápida que la convencional. Las cargar por vía de acceso convencional pueden ser utilizadas para cargar datos tanto en las tablas agrupadas como en las que no lo están. basándose en el campo de las especificaciones. las tablas de salida y condiciones opcionales que pueden ser utilizadas para cargar sólo parte de las grabaciones encontradas en los ficheros de datos de entrada. Carga por Vía de Acceso Directo Esta vía de carga construye bloques de datos en la memoria y salva estos bloques directamente en las extensiones donde las tablas van a a ser cargadas. Cargas Convencionales y Directas SQL*Loader proporciona dos métodos para la carga de datos: • Vía de acceso convencional • Vía de acceso directa Carga por Vía de Acceso Convencional La carga por vía de acceso convencional construye una disposición de filas que se insertan y utiliza la sentencia SQL INSERT para cargar los datos. Mientras la vía convencional carga.

Las tablas agrupadas pueden ser cargadas sólo utilizando la vía convencional. todas las restriscciones que están habilitadas son impuestas como lo hubieran sido durante cualquier operación DML. • Son escritos después de la HWM de la tabla. y pueden estar habilitadas al finalizar la ejecución utilizando los comandos apropiados en el fichero de control. Carga en Tablas Agrupadas No pueden ser utilizadas cargas directas para la carga de filas en tablas agrupadas. sólo se escriben en la base de datos bloques enteros de la misma. La única excepción a esta regla es cuando son utilizadas concurrentemente varias sesiones de carga paralela directa. Las cargas paralelas directas son analizadas en la sección siguiente. • Salvar los datos no finaliza la transacción. Administración de Bases de Datos . Cada dato cargado puede relacionar varias transacciones.156 Método para Salvar Datos Las cargas por vía convencional utilizan el proceso SQL y la base de datos COMMIT’s para salvar datos. Las cargas por vía directa “data saves” para escribir los bloques de datos en los ficheros de datos Oracle. y pueden estar inahilitadas si son violadas. Si sólo un pequeño número de filas tienen que ser insertadas en una tabla grande. las restricciones son manejadas como se muestra a continuación: • Las restricciones NOT NULL son verificadas cuando se contruyen las formaciones. Bloqueo • Mientras una carga directa se está procesando. Durante las cargas directas. utiliza cargas convencionales. Las restricciones de clave ajena están inhabilitadas porque hacen referencia a otras filas o tabla. otras transacciones no pueden hacer cambios en las tablas que están siendo cargadas. Logging de Cambios La carga por vía convencional genera también entradas redo log como cualquier sentencia DML. • La base de datos está en el modo ARCHIVELOG. y las CHECK también están porque pueden utilizar funciones SQL. Cuando se utiliza una vía directa. • Los índices no son actualizados cada vez que se salvan los datos. y después de salvados los datos se mueve la HWM. • La clave primaria y las restricciones únicas son verificadas durante y al final de la ejecución. pero logging está inhabilitado (Logging puede ser inhabilitado al sellecionar el atributo NOLOG para la tabla o al utilizar la cláusula UNRECOVERABLE en el fichero de control) Imposición de Restricciones Durante una carga por vía convencional. no se genera la carga de entradas redo log si: • La base de datos está en modo NOARCHIVELOG. La inserción de una formación de grabaciones es seguida por una operación de commit. • Los recursos internos nos son liberados después de salvar los datos. • Las restricciones clave ajena y CHECK están inahilitadas. Las siguientes funciones diferencian unos datos salvados de un commit: • Cuando se salvan datos.

4. Estos segmentos temporales son creados en el tablespace que contiene la tabla que va a ser cargada. Uso de SQL*Loader UNIX: Comanado Línea Usar el comando siguiente en un sistema UNIX para realizar la carga de datos: $sqlldr [ keyword = ] value [ [ [. . Los parámetros de almacenamiento para estos segmentos pueden ser especificados por el usuario. estos segmentos utilizan los mismo atributos de almacenamiento que la tabla que va a ser cargada. Si el tablespace tiene varios ficheros de datos. Si los datos de la tabla tienen que ser reemplazados. para cada sesión. la única extensión en cada segmento temporal está dispuesta de forma que se desasigna el espacio no utilizado cuando finaliza la sesión. todos los segmentos temporales son combinados para formar un segmento al final de la ejecución. El segmento temporal resultante es añadido al segmento de la tabla.] keyword = ] value ] . Cuando se inician varias sesiones de carga paralela. el fichero de datos donde el segmento temporal va a ser creado. el cargado se realiza siguiendo los siguientes pasos: 1. 2. . Secuencia de Operaciones Usar diferentes ficheros de datos de entrada para cada sesión de carga paralela. • La integridad referencial. Por defecto. • Las filas sólo pueden ser añandidas a datos existentes. Cada session utiliza un segmento temporal para cargar los datos desde la entrada de fichero de datos.157 Las cargas paralelas directas permiten el uso de varias sesiones concurrentes de carga diecta en la carga de datos en una tabla sencilla. ya que las cargas individuales no están coordinadas. un usuario puede especificar. Restricciones Las siguintes restricciones son impuestas en las cargas por vía directa paralela: • los índices no son mantenidos por la carga. 3. Borrar índices antes de una carga paralela y volverlos a crear al finalizar la ejecución. where: keywork value es una de las palabras clave analizada en la seccion siguiente es el valor asignado a la palabra clave Administración de Bases de Datos . contrl de restricciones y disparadores tienen que estar inhabilitdos y tienen que ser habilitados de nuevo manualmente. truncar manualmente la tabla antes de la carga paralela.

De esta forma se usa la vía convencional. SKIP LOAD ERRORS ROWS BINDSIZE DIRECT PARFILE PARALLEL FILE Administración de Bases de Datos . Especifica el número de grabaciones a grabar. para cargas convencionales. Usar este parámetro como medida de seguridad para detener la ejecución si se especifican ficheros de entrada de errores. Especifica el nombre del fichero que contiene todos los parámetros de carga (Los definidos en la línea de comando sobreescribirán cualquier valor definido en el fichero de parámetros). que van a usarse para la construcción de una formación de filas que van a ser insertadas en cada llamada de base de datos. Especifica el número de filas que se ha de construir en la formacion antes de cada inserción para cargas convencionales (para las cargas por vía directa este define el número apropiado de filas leidas desde una enrtada por cada dato salvado. el SQL*Loader construirá tantas filas como se especifique en ROWS. Número máximo de grabaciones malas a evitar. 8. específica que se van a producir múltiples cargas paralelas directas. Usar el Data Manager Seleccionar Datos à Carga Introducir el nombre de la máquina y el nombre del fichero de control en la página de introducciones del Data Manager Wizard. Ficehro opcional de descarga donde se almacenan grabaciones no seleccionadas. La carga directa construye bloques enteros. Si hubiera sido ekegida una máquina remota en el paso 3. Aunque esta opción esté disponible. . antes de salvar los datos). Fichero que almacena todas las grabaciones rechazadas (defecto controlfile. usadas primeramente para continuar la carga (usar esta opción sólo si se carga a una tabla sencilla o para evitar un número identico de grabaciones para todas las tablas cargadas). . generalmente está recomendado el uso de palabras clave. Nombre del fichero de control. Numero máximo de rechazos que se permiten (por defecto permite todos los rechazos.158 Nota • • Si las palabras clave no están especificadas. Especificar las opciones de carga. que es el valor por defecto. Entrada de nombres de ficheros de datos. 3. los valores tienen que serlo en el orden correcto. 7.] keyword = ] value ] .log). Palabras Clave del Comando Línea A continuación se enumera algunas de las palabras clave y opciones de carga utilizadas normalmente y que se especifican en la página 3 del Data Manager Wizard. 4. después de evitar las especificadas en SKIP. especificar un programa en la página Programación. Si hubieran sido especificados una máquina remota y un proceso diferido en al paso 3. sometido al límite impuesto en INDSIZE) SQL*Loader utiliza la via directa si este parámetro está seleccionado en TRUE. 5. 6. que solo es válido para cargas directas. Específica el fichero en el que se va a crear el segmento temporal para una carga directa paralela. Numero de grabaciones a evitar.bad). Especifica el número máximo de bytes. OEM 1. Verificar las opciones en la página Resumen y hacer click en Finish. Como se muestra en el ejemplo. WINDOWS NT: Comanado Línea Usar el comando siguiente en Windows NT para realizar la carga de datos: $sqlldr [ keyword = ] value [ [ [. Introducir los nombres de otros ficheros de la página Ficheros Opcionales. Nombre del fichero log (defecto es controlfile. 2. especificar un destino en la casilla de diálogo. es posible especificar algunos de los primeros valores sin palabras clave y luego especificar otros con palabras clave. en la página Opciones Avanzadas. (Si el parámetro ROWS está especificado también. y luego ignora los rechazos y filas no validadas. Palabra Clave USERID CONTROL LOG BAD DATA DISCARD DISCARDMAX Significado Nombre del usuario Oracle y clave. incluyendo la vía de acceso. Este parámetro.

• Grabaciones que se deben evitar para cada tabla. • Operaciones de columnas como arreglo y sustitución de ceros por nulos. • La composición de una grabación lógica desde una física en los ficheros de datos de entrada. • Especificaciones de almacenamiento para segmentos temporales creados durante la carga paralela directa. SQL*Loader: Ficheros de Entrada o Fichero parámetro § Opciones de carga Fichero de datos § Grabaciones de entrada Fichero de control LOAD DATA INFILE ‘ulcase6. incluyendo posición. KEYWORD = VALUE Fichero de Control El contenido de un fichero de control incluye lo siguinete: • Los nombres de los ficheros de datos de entrada. Administración de Bases de Datos . que usan la claúsula FILEDS. o añadidos a unos datos existentes. que usan la cláusula INFILE. que usan cláusula como CONCATENATE y CONTINUEIF. o UNRECOVERABLE para suprimir la generacion de redo. • Parámetros de carga utiliando la cáusula OPTIONS. tipos de datos y especificaciones de condición de delimitadores.. o SORTED_INDEXES para especificar si los datos están preclasificados. o REENABLE para habilitar inhabilitar restricciones al final de la ejecución. Usar el fichero de parámetros para almacenar todos los utilizados normalmente. usando la cláusula WHEN. • Reglas para la generación de valores de columna. • Nombres de tablas y el método de carga – es decir si los datos van a ser cargados en una tabla vacía o insertandos o truncados en grabaciones existentes. • Columnas que van a ser cargadas. ) o o Fichero de Parámetros El fichero de parámetros puede ser utilizado para especificar los parámetros de una carga. y aplicando funciones SQL. ver el capitulo “SQL*Loader Command-Line Reference” del manula Oracle8 Server Utilities.159 Los parámetros también pueden ser definidos dentro del fichero de control. • Campo de especificaciones. utilizando cláusulas como RECNUM y SYSDATE. • Condiciones que se usarán para la selección de grabaciones que van a ser cargadas.dat’ INSERT INTO TABLE emp ( empno POSITION(01:04) integer EXTERNAL NULIFF empno=BLANKS. usando la cláusula INTO TABLE. .. utilizando la cláusula CONTINUE_LOAD. Este fichero usa el formato siguiente para definir los parámetros. Para tener una referencia completa. Nota Los parámetros definidos aquí no son exhaustivos. • Comentarios con el prefijo “--“ • Otras opciones de carga directa como: o SINGLEROW para mantener los índices de una fila en sus bases.

dada la falta de espacio. respectivamente. • • • • • SQL*Loader: Otros Archivos de Salida • Fichero malo o Grabaciones rechazadas o El mismo formato que los ficheros de datos Ficheros de descartados o Grabaciones que no satisfacen las condiciones. o Mismo formato que los ficheros de datos. sólo para ficheros de datos con error en los datos. Información global incluyendo: o Los nombres de todos los ficheros de entrada y salida. y utilizando BEGINDATA para señalar el principio de los datos. Información de campo y columna Información del fichero de datos mostrando grabaciones escartadas y rechazadas con razones. Si se utiliza esta opción. • Administración de Bases de Datos .160 Nota La selección del atributo NOLOG para la tabla usando la palabra clave NOLOGGING es equivalente al uso de la opción UNRECOVERABLE en el fichero de control. especificando INFILE*. • Contenido del Fichero Log • • • • • • Información de cabecera Información global: parámetros y nombre de ficheros Tabla de información: especificaciones de tabla y columna Información del fichero de datos: grabaciones procesadas Información de carga de tabla: errores y descargas Resumen. estadísticas El fichero log es obligatorio y la carga termina si este no puede ser creado. Información de tabla como: o Nombre de la tabla. • Se pueden encontrar varios casos que ilustran diferentes opciones y elementos del fichero de control en los directorios $ORACLE_HOME/rdbms/demo y %ORACLE_HOME%\RDBMS80\LOADER de UNIX y Windows NT. aunque excluyendo cualquier tiempo CPU utilizado por procesos background. o Condiciones de carga y método. El fichero de log contiene: • • Información de cabecera como la fecha de la ejecución y el número de versión del software. o Argumentos de la línea de comando. estadísticas que muestran los siguientes datos: o Cantidad de espacio colocado en la formación o Estadísticas de carga para todos los ficheros de datos o Inicio/final del tiempo de ejecución o Tiempo total pasado o Tiempo total de CPU incluyendo el de todos los ficheros I/O. • Los datos también pueden ser almacenados dentro del fichero de control. Fichero de Datos El fichero de datos contiene las grabaciones que van a ser procesadas en el formato definido en el fichero de control. todas las grabaciones que sigan a BEGINDATA serán interpretadas como datos. Información de carga de tabla como: o Número de filas crgadas o Número de filas que aunque calificadas para la carga han sido rehusadas debido a errores en los datos o Número de filas que fueron rechazadas o Número de filas en que los campos relevantes fueron todos nulos Resumen. o permiso.

pero puede desencadenar la inhabilitación de restricciones o índices inutilizables. o Clasificando los datos en el índice mayor. puede tener que detectar errores intentando crear una restricccion única en la columna indexada. La separación del fichero de control y el fichero de datos permite reutilizar el primero para varias sesiones de carga. Mejorar el rendimiento: o Colocando espacio suficiente. puede especificar la localización de los segmentos utilizados para la inserción de datos. Esto sucede si el índice no es consistente con la tabla. • Los datos no están en el orden especificado: los datos están cargados. especificar un fichero de la base de dato distinto con el fin de alcanzar el rendimiento máximo. La preasignacion de espacio basándose en el volumen de datos esperados. Cuando se utiliza la carga directa. usar la opción CONTINUE_LOAD del fichero de control para especificar el número de grabaciones que se deben evitar para cada tabla. • Espacio insuficiente: una carga puede terminar si el servidor Oracle no pudiera colocar espacio suficiente en las tablas cargadas para acomodar todas las filas insertadas. utilizar una tabla de excepciones para atrapar los errores y rectificarlos. Administración de Bases de Datos . Estos índices se unen con los existentes al final de la carga. En este caso. Si está inutilizable un índice único. Eliminar y volver a crear los índices que son utilizables. Las grabacionespueden ser utilizadas. especificar diferentes ficheros para segmentos temporales Seguir las siguientes directrices cuando se utilicen SQL*Loader para minimizar errores y mejorar el rendimiento: Usar un fichero de parámetros para especificar las opciones. SQL*Loader: Uso de las Directrices • • • Usar un fichero de parámetro para especificar las opciones línea de comando utilizadas comúnmente. todas las opciones excepto los nombres de ficheros pueden ser los mismos. si se hace la grabación en un almacén de datos cada semana. el uso del espacio de clasificación puede ser minimizado. pero en un estado no utilizable. • Controlar cualquier índice señalado unusable. proceda como sigue para completar la carga: • Si se está cargando a una tabla o si todas estas tienen el mismo número de grabaciones procesadas. evita la asignación dinámica de extensiones durante la carga y mejora la velocidad de la misma. - - SQL*Loader: Solución de Problemas Cuando se termina una carga de forma anómala. Para cada sesión de carga. En el caso de errores de restricciones. Por ejemplo. • Si varias tablas fueron cargadas y el número de grabaciones procesados no es el mismo en todas las tablas. después de rectificar los errores. reiniciar el instance y continuar la carga. Fichero de Descartados Este fichero contiene datos en el mismo formato que los ficheros de entrada de datos y es muy útil si los datos necesitan ser cargados selectivamente en tablas bien en diferentes bases de datos o en diferentes momentos. más comúnmente utilizadas del comando línea. utilice el parámetro del comando línea SKIP para continuar la carga. Las grabaciones en el fichero malo están en el mismo formato que las grabaciones de entrada. y corregir el problema. • El instance falla: investigar la razón del fallo. • Duplicar los valores en una clave primaria o columna o índices únicos: esto no abortará el proceso de carga. • Las filas no pueden ser insertadas por razones como violaciones de restricción. Al clasificar los datos de entrada en las claves del índice mayor.161 Fichero Malo El fichero malo contiene grabaciones que son descartadas durante su proceso debido a las siguientes razones: • Las grabaciones de entrada tienen errores tales como número insuficiente de campos o campos formateados erroneamente. o Para cargas paralelas. o los ficheros están llenos. para volver a cargar los datos. investigar la causa del problema –si es debido a insuficiente espacio en el disco. se está alcanzando MAXEXTENTS. Borrar los índices en este estado y volverles a crear después de finalizar la carga. Después de rectificado el problema como se analiza en los siguientes párrafos. se usan segmentos temporales para generar índices de los nuevos datos. Con cargas paralelas directas Ud. rectificarlo. Situar datos dentro del fichero de control sólo para una carga única pequeña. todos los datos han sido cargados hasta el punto del fallo. atrapar los errores en una tabla de excepción y corregirlos.

La sisntaxis y detalles de uso. Controlar y utilizar los ficheros correctos. Nota Las cláusula SORTED INDEXES es aplicable sólo a vías de carga directa. Los errores o descargas que exceden el límite seleccionado: esto sucede cuando una carga se aborta debido al número de grabaciones no válidas de las descartadas han excedido ERRORS o el DISCARDMAX especificado. consultar el capítulo “Referencia del Fichero de Control SQL*Loader” del manual Oracle8 Server Utilities. Administración de Bases de Datos . La cuasa más común de este problema es el uso de incorrectos ficheros de entrada de datos.162 • • BINDSIZE demasiado pequeño: usar un volumen mayor y cargar los datos.

en vez de todas las tablas. usuario y Base de Datos completa. Los Redo Log históricos no pueden ser aplicados a los objetos que han sido importados desde un fichero export. especificando parámetros. la utilidad Export preguntará las entradas. La utilidad Import es utilizada para leer un fichero Export válido para mover datos entre Bases de Datos. Este puede ser útil para crear una línea base de mantenimiento de una estructura de esquema dado. Si la línea de comandos es elegida. presentando los valores por defecto. Cualquier opción olvidada tomará el valor por defecto de la utilidad Export. usándolos para: • Crear un archivo histórico de un objeto de la BD o una BD entera. El DBA puede usar las utilidades Export e Import para realizar Backups normales del sistema operativo. Mover datos entre maquinas y BD o versiones de servidores Oracles. tales como para actualizar Oracle7 a Oracle8. MÉTODOS DE EJECUTAR LA UTILIDAD “EXPORT” • • • • Un diálogo interactivo La página “export” del Gestor de datos dentro del “Enterprise Manager” La interfaz de línea de comandos. Un usuario privilegiado puede exportar tablas especificas propiedad de otros usuarios. por lo tanto puede ocurrir pérdida de datos pero pueden ser minimizadas. donde el mismo puede accidentalmente borrar o truncar una tabla. Modo Export User Este modo exporta todos los objetos de un esquema de usuario. Por ejemplo cuando un esquema es modificado para soportar cambios de requerimientos del negocio. Salvar definiciones de tablas (con o sin datos). Usuarios privilegiados pueden exportar todos los objetos de los esquemas de un conjunto de usuarios especificados. Especificando el comando EXP en el sistema operativo sin parámetros.163 Capítulo Nº 17 UTILIDADES ORACLE DE EXPORTACIÓN E IMPORTACIÓN Vista General Utilidad Oracle “Export” e “Import” Vista General Estas utilidades proporcionan lo siguiente: • • • • Archivo histórico. Administración de Bases de Datos . MÉTODOS DE EXPORT • • • Diálogo interactivo. Proporcionar protección de fallos por errores de usuario. Este modo puede ser usado para realizar una exportación completa de la BD. La utilidad Export proporciona un backup lógico de un objeto o de toda la BD. Tres modos: tabla. • Salvar las definiciones de las tablas en un fichero binario. La página export del Gestor de Datos del Oracle Enterprise Manager. MODOS EXPORT Modo Export Table Este modo exporta tablas especificas en el esquema de usuario. • Las utilidades Export e Import son usados para mover datos de una versión a otra. • Ayuda a proteger contra errores de usuario. las opciones seleccionadas deben ser explícitamente especificadas en la línea de comandos.

164 Modo Base de Datos Completa Este modo exporta todos los objetos de la BD. value n) Ejemplo: Exp scott/tiger tables=(emp. Fichero para información y mensajes de error.dept) rows=y file=expincr1. Exporta la BD entera. Este fichero solo puede ser leído por la utilidad Import. usando el modo línea de comandos de la utilidad Export. Especifica los tablespaces que serán recuperados usando la recuperación “point-in-time” Nota: ésta lista no es la lista completa pero son aquellos que un DBA usa más frecuentemente para propósitos de restauración. Administración de Bases de Datos . emp y dept. Nombre del fichero de salida. excepto aquellos del esquema de SYS. Incluye las filas de la tabla en el fichero export. Tipo de nivel de exportación. del esquema scott incluyendo las filas. …. Tablas a exportar. Usuarios a exportar.dept) rows=y file=expincr1.dmp que incluya las tablas. Fichero de especificación de parámetros. $ exp scott/tigre tables=(emp. LINEA DE COMANDO EXPORT Sintaxis: exp keyword = value exp keyword = (value. value2. Descripción Tamaño del buffer Indica si la utilidad Export exporta o no uno o mas tablespaces de una BD Oracle. Solo usuarios privilegiados pueden exportar en este modo. Ejemplo Crear un fichero export llamado expincr1. Indices a exportar.dmp Parametros USERID FILE ROWS FULL OWNER TABLES INDEXES DIRECT INCTYPE PARFILE HELP LOG CONSISTENT Parametros BUFFER POINT_IN_TIME_RECOV ER RECOVER_TABLESPAC ES Descripción Usuario/password de los objetos del esquema a exportar.dmp se pueden copiar los datos de una BD en un fichero del sistema operativo. Vista “Read-consistent” de la BD cuando los datos son actualizados durante una exportación. Especifica modo directo de exportación. Presentar los parámetros de exportación en modo interactivo.

Nota: un export incremental puede no ser una buena estrategia para aplicaciones que a menudo acceden a unas pocas tablas grandes. las tablas 1. Cualquier modificación en (UPDATE. Ejemplo En el ejemplo anterior.3 y 6 tienen cambios desde el último last exports en el Tiempo 1. Seguidamente al export completo. no solo las filas cambiadas. que fue un export completo. Después de un período de tiempo dado. Un export incremental exporta las definiciones de tablas y todos sus datos. un export completo de la BD con todas las tablas y definiciones de datos. incrementales o acumulativos solamente en modo “full” de la BD (FULL=Y). 2) “EXPORT” INCREMENTAL Database Export file Table 1 Table 2 Table 1 Table 3 Table 4 Table 3 Table 5 Table 6 Table 6 Time 2 “Export” Incremental Un export incremental incluye los objetos que han sido cambiados desde el último export de cualquier clase. se deberá comenzar el ciclo otra vez con otro Exports completo.165 1) “EXPORT” COMPLETO Database Export file Table 1 Table 2 Table 1 Table 2 Table 3 Table 4 Table 3 Table 4 Table 5 Table 6 Table 5 Table 6 Time 1 “Export” Completo Si se utilizan exports acumulativos e incrementales. INSERT o DELETE) en una tabla cualifica automáticamente a esta tabla para un Export incremental. típicamente. Restricciones Se pueden realizar Exports completos. realizar frecuentemente exports incrementales y ocasionalmente Exports acumulativos. se realizan Exports incrementales más a menudo que acumulativos o completos. Es aplicable para aplicaciones departamentales donde los cambios son más dispersos en tablas pequeñas. Administración de Bases de Datos . Como se muestra en el ejemplo anterior. periódicamente debería realizarse una exportación completa para crear un backup base.

Exportar ficheros más pequeños.2 y 6 han cambiado desde el Tiempo 1 y la tabla 4 desde el Tiempo 2. CONCEPTOS DE “EXPORT DIRECT PATH” Export Generate SQL Commands Two Task common (TTC) Oracle Server SQL command processing Buffer cache manager Write blocks Export Dump file ¡ TTC buffer Evaluating buffer Buffer cache Read blocks Oracle8 Server Utilizando la característica “Direct Path”. las tablas 1. procesando comandos SQL. Beneficios del “Export” Incremental y Acumulativo • • • Restaura tablas accidentalmente borradas por los usuarios. • Menor tiempo de exportación porque sólo aquellos objetos que han cambiado desde el último export incremental o acumulativo son salvados. Los beneficios de este tipo de Exports incluyen: • La restauración por el DBA da tablas accidentalmente borradas por los usuarios. se pueden extraer datos mucho más rápidamente con la utilidad Export.166 3) “EXPORT” ACUMULATIVO Database Export file Table 1 Table 2 Table 1 Table 3 Table 4 Table 3 Table 4 Table 5 Table 6 Table 6 Time 3 “Export” Acumulativo Un export acumulativo salva las tablas que han tenido cambios desde el último Export acumulativo o completo. Administración de Bases de Datos . Los Exports incrementales y acumulativos ayudan a resolver problemas surgidos a los DBAs que trabajan en entornos donde muchos usuarios crean sus propias tablas. Ejemplo En el ejemplo superior. el export acumulativo por lo tanto salvará todas las tablas desde el último Export completo. Lee datos directamente de la capa de datos en vez de traerlos. • Pequeños ficheros de exportación porque menos datos son exportados. Menor tiempo para exportar.

lee bloques de la BD en un área privada usada por la sesión. Administración de Bases de Datos . ESPECIFICANDO “EXPORT DIRECT PATH” • Como argumento de la línea de comando del comando “Export”: exp userid=scott/tigre full=y direct=y • Como una palabra clave en un fichero de parámetros: exp parfile=filename Antes de usar “direct path export”.sql Métodos de uso del Parámetro DIRECT Opción Línea de Comando Se puede invocar “direct path export” usando el parámetro DIRECT en la línea de comandos del sistema operativo. el fichero de volcado de exportación y el fichero de log. Los datos son transferidos al cliente Export. • El Direct Path export usa un optimizado “SELECT * FROM table” sin predicados. fichero de volcado de export. y en fichero de log especificado con el parámetro LOG. La opción “direct path” de la utilidad Export introduce algunas características que la diferencias del “conventional path”.txt CARACTERÍSTICAS DE “EXPORT DIRECT PATH” • El tipo de exportación es indicada en la pantalla.dmp DIRECT=Y Para ejecutar el parámetro desde la línea de comandos del sistema operativo: $ exp parfile=exp_param. $ exp user=scott/tigre full=y direct=y Fichero de parámetros Un ejemplo de un fichero de parámetros. • Las filas son transferidas directamente al buffer TWO-Task Common (TTC) para su transporte.txt: USERID=scott/tigre TABLES=(emp. evitando innecesarias conversiones de datos. que escribe los datos dentro del fichero de exportación. • Utiliza un sentencia optimizada SQL SELECT. Nota: el formato de la columna de datos y especificación en el fichero de volcado de export difieren del “convencional-path” export.167 Mecanismo de Export “Direct Path” • La utilidad Export verifica el modo de lectura directa. así se evita una innecesaria conversión. exp_par.dept) FILE=exp_one. • Los datos en el buffer TTC está en el formato que la utilidad Export espera. se debe ejecutar el fichero de comandos actualizado catexp. “Direct Path” no compite con otros recursos si el modo directo está fijado en ON. • El modo de lectura directa. Características Direct Path • El tipo de Export es indicado en la salida de pantalla. • Los datos ya están en el formato que Export espera. • Los datos están en el formato que “Export” espera.

REF o tipo de objeto. No se puede utilizar la opción “direct path” para exportar filas que contienen LOB. La opción “direct path” de la utilidad Export tiene algunas restricciones que la diferencian de “convencional-path” export. no los datos. • El comando “Export” de Oracle6 (o anterior) no puede ser utilizado contra un BD de Oracle8. categorías de los objetos de la BD que no existen en la versión inferior son excluidas de la exportación. BFILE.168 RESTRICCIONES “Export Direct Path” • • • • La opción “direct-path” no puede ser invocada interactivamente” El juego de caracteres del Cliente y del Servidor deben ser iguales. Cuando la opción “direct path” es utilizada. • Intentar usar versiones superiores de Export con Import de servidores Oracle anteriores a menudo produce errores.3. Administración de Bases de Datos . COMPATIBILIDAD DE LA UTILIDAD “EXPORT” • Se puede utilizar la utilidad “EXPORT” desde cualquier versión Oracle7 para exportar a un servidor de Oracle8. Elementos • Se puede utilizar el export de Oracle7 contra una BD Oracle8 para crear un fichero de exportación Oracle7. • Sea cuidadoso con las diferentes versiones. El parámetro Buffer de la utilidad Export no tiene efecto en “direct path” Export. • Si una tabla fue creada usando la opción “direct path” entonces el fichero está en diferente formato y no puede ser leído por una utilidad Import anteior a Oracle7. es unicamente utilizada en la opción “conventional-path”. Restricciones Direct Path • • • • La característica “direct path” export no puede ser invocada usando una sesión interactiva EXP. Como DBA deber ser cuidadoso con los elementos de compatibilidad asociados a la utilidad Export. No se pueden exportar filas “direct path” que contengan tipos de datos LOB. BFILE. REF o tipos de objetos. el conjunto de caracteres del lado cliente debe ser igual al conjunto de caracteres del lado servidor. El parámetro Buffer no afecta. Solo la definición de datos para crear la tabla es exportada. • Cuando una versión inferior de la utilidad export corre contra una versión superior del servidor Oracle. ni columnas que incluyan VARRAY columnas y tablas “nested”. • El comando “Export” de Oracle6 (o anterior) no puede ser utilizado contra un BD de Oracle8.

. Importa desde un completo.dmp $ imp scott/tigre tables=(emp. Modo Import Tabla Este modo importa todas las tablas especificadas en el esquema de usuario. Importa todos los objetos del fichero de exportación. Usuarios privilegiados pueden importar todos los objetos de esquemas de un conjunto de usuarios especificados. normalmente todas las tablas. value2. Un usuario privilegiado puede importar tablas especificas propiedad de otros usuarios.dept) rows=y file=expincr1 Ejemplo Importar el esquema de scott. Importa todos los objetos que le pertenecen. usando el fichero de exportación llamado expincr1. MODOS DE “IMPORT” MODO Tabla Usuario BD Completa DESCRIPCIÓN “Import” específica tablas dentro de un esquema. Modo Import Usuario Este modo importa todos los objetos de un esquema de usuario. Extrae datos de un fichero valido de exportación. . excepto aquellos del esquema de SYS.dept) rows=y file=expincr1. La utilidad Import puede ser usada para recuperaciones de datos utilizando un fichero válido de la utilidad Export. incremental o acumulativo fichero de exportación. incluyendo las filas. Administración de Bases de Datos . Modo Base de Datos Completa Este modo importa todos los objetos de la BD. value n) Ejemplo: imp scott/tiger tables=(emp. LÍNEA DE COMANDOS “IMPORT” Sintaxis: imp keyword = value or keyword = (value. Recupera fallos de errores de usuario.169 USO DE LA UTILIDAD “IMPORT” PARA RECUPERACIONES • • • • Crea definiciones de tablas. las tablas emp y dept. .dmp nota: las opciones del modo línea de comandos son similares a las opciones del modo interactivo. Solo usuarios privilegiados pueden usar Import en este modo.

Debe ser fichero válido para la utilidad Export. Esto es por lo tanto una forma poco eficiente de recrear los índices. Los índices son popularizados. 4. Específica el tipo de import incremental. Los triggers son importados y las condiciones de integridad son habilitadas en las nuevas tablas. Nombre del fichero de entrada. CONSIDERACIONES NLS • • • El fichero de exportación identifica el esquema codificado de caracteres usados en el fichero de datos. Tienen los mismo datos y características que las tablas originales. y la clave ajena es importada primero. 5. Un punto clave es éste. Administración de Bases de Datos . Fichero de especificación de parámetros. el fichero de exportación es leído y las tablas y los datos son creados en el siguiente orden: 1. Fichero para información y mensajes de error. Esto también limitara el número de segmentos de rollback necesarios para soportar la importación. Nota: los índices son construidos cuando los datos son añadidos a la tabla. Los datos son importados.170 Parámetros Import Parametros USERID FILE ROWS FULL TABLES INDEXES INCTYPE PARFILE HELP LOG DESTROY FROMUSER TOUSERS INDEXFILE POINT_IN_TIME_R ECOVER Descripción Usuario/password de los objetos del esquema a importar. SECUENCIA DE PROCESO “IMPORT” Las tablas nuevas son creadas. Específica una lista de nombres de usuario cuyos esquemas serán importados. 1. 2. 3. Las opciones son SYSTEM y RESTORE. Esto es lógico porque los ficheros de log archivados no se aplicarán a estas tablas. Para una exportación completa de la BD esto no es problema. 3. Lista de esquemas conteniendo los objetos a importar. las estructuras de índices son construidas. Incluye las filas en la tabla del fichero import. ya que los logs archivados técnicamente no tienen actualizaciones en las referencias de las nuevas tablas creadas. Los datos son importados en las tablas. Cuando se importa una tabla. 2. Específica si los ficheros de datos existentes de la BD deberían ser reutilizados o no. Indica si un Import recupera o no. Un conjunto de caracteres “multibyte” del fichero de exportación deber ser importado en el sistema que tiene las mismas características. Indices a importar. entonces todas las filas que referencien a la clave primaria no serán expulsadas si las restricciones están habilitadas. El orden en que se importan las tablas puede ser importante. Los indices son definidos. 4. Presenta los parámetros import en modo interactivo. El DBA puede emplear menos tiempo en el proceso de importación fijando el parámetro INDEXES=N. Importa el fichero entero. pero en realidad están siendo nuevamente creadas en la BD. si la tabla con claves ajenas tiene un chequeo referencial en la tabla con la clave primaria. Por ejemplo. pero sólo si el parámetro ROWS=Y. Triggers son importados y las restricciones de integridad son habilitadas en las nuevas tablas. La utilidad “import” traslada datos al juego de caracteres de su sistema “host”. Las nuevas tablas son creadas. estas son técnicamente tablas Nuevas para Oracle. Los indices son compartidos. Tablas a importar. uno o más tablespaces en una BD Oracle en un momento anterior sin afectar al resto de la BD. Especifica un fichero con los comandos de creación de índices. creando la construcción de los índices seguidamente al proceso de Importación.

así moviendo datos de una BD en Español al Danés se producirá una conversión y por lo tanto una posible pérdida de aquellos caracteres. provoca que los caracteres Daneses extra que no son encontrados en el alfabeto Americano son convertidos a interrogaciones (?). asegúrese después que la conversión de datos ha sido realizada apropiadamente. causando posiblemente pérdida de datos.171 Cuando se mueven los datos de una BD a otra con diferentes conjuntos de caracteres. en este caso las interrogaciones sustituyen a los caracteres Daneses desconocidos. Ejemplos Cuando se convierten desde un conjunto de caracteres ASCII-bit. Cuando se convierte un conjunto de caracteres ASCII de 8-bit. Directrices • En los movimientos de datos de 8-bit a 8-bit. la conversión no es necesaria porque los caracteres tienen un carácter equivalente en el albafeto Danés. Los movimientos de datos multi-byte a multi-byte también dependen de los lenguajes específicos multi-byte. a un conjunto de caracteres de 8-bit como el Danés. el alfabeto Español tiene letras que no existen en el alfabeto Danés. Esto se puede hacer fijando la variable del entorno NLS_LANG con la definición del conjunto de caracteres de la BD donde los datos son exportados. si hay caracteres perdidos depende de los lenguajes específicos utilizados para los datos. como el Danés a un conjunto de 7-bit como el Inglés Americano. Por ejemplo. tal como inglés Americano. No fijar esto correctamente podría causar una conversión no deseada de caracteres en los datos. • Administración de Bases de Datos .

Un backup de BD cerrada se realizó con una secuencia de log 144. fichero de datos.Mientras la BD está en secuencia de log 145. Recuperación • Restaurar todos los ficheros de datos. incluso si solo un fichero de datos esta dañado o perdido. Nota: Para una BD en modo noarchivelog.Hay dos redo logs para una BD. no hay que restaurar todos los ficheros Oracle si el fichero de redo log no ha sido sobrescrito desde el último backup. Si se decide trabajar con BD de prueba o desarrollo en modo noarchivelog. un backup válido de la BD cerrada debe existir para la recuperación. deben estar sincronizados para abrir la BD. la BD esta en modo noarchivelog. • Ficheros de password o de parámetros solamente si están corrompidos o perdidos. Desventajas • • Los datos se pierden y tienen que ser reintroducidos manualmente. el fichero de datos 2 puede ser restaurado y recuperado manualmente. el fichero de datos 2 esta perdido. Recuerde que todos los ficheros Oracle. y redo logs. La BD es restaurada entera en el punto del último backup completo cerrado. sin embargo BD de prueba.Ya la secuencia de log 144 no ha sido sobrescrita. La BD en producción nunca debería estar en este modo. o corrupción. ficheros de control y redo logs. ficheros de control. • La recuperación es rápida reaplicando los datos al fichero batch.172 Capítulo Nº 14 RECUPERACIÓN ORACLE SIN “ARCHIVADO” Esta lección discute situaciones de recuperación para BD en modo noarchivelog. con poco riesgo de error. FALLA DE SOPORTE Fallo de Soporte y Recuperación Sin Archivado Fallo • Pérdida de disco. entonces considerar las siguientes ventajas y desventajas: Administración de Bases de Datos . Asegurese que los siguientes ficheros han sido restaurados. • Escenario . ya que todos los ficheros Oracle deben ser restaurados. • Cuando un fallo de soporte ocurre. • Por defecto. . • Tiempo recuperación = tiempo de restauración de todos los ficheros. Nota: • Solamente usar el modo noarchivelog si: • La pérdida de datos entre backups puede ser tolerada. Recuperación Sin “Archivado” Ventajas • Simple de realizar. • Resultado . • Restaurar ficheros de password y Ficheros de parámetros es opcional. • Si los tablespaces son sólo lectura o los datos raramente cambian. desarrollo o entrenamiento si pueden dependiendo de los requerimientos de gestión o de los usuarios. . • Todos los ficheros de datos.

RECUPERACIÓN DE FALLOS DE SOPORTE (modo Noarchivelog) 1 El disco 2 está dañado. Administración de Bases de Datos . • El tiempo total de recuperación es el tiempo empleado por el hardware para restaurar todos los ficheros. Desventajas: • Todos los datos introducidos por los usuarios desde el último backup estarán perdidos y deberán reintroducirse manualmente. no apagar la BD entes de la restauración o que el backup no sea válido. Para restaurar los ficheros: UNIX > !cp /disk/backup/* /disk/data/ NT > !copy \disk1\backup\*. Restauracion de Ficheros a una Localización Diferente 1 Si el fichero de control ha sido restaurado en una diferente localización. ya que solo es necesario una restauración de todos los ficheros desde el backup.Mostrar la Instance .ora. • La BD entera tiene que ser restaurada del último backup cerrado completo. 4 Notificar a los usuarios que necesitarán reintroducir los datos desde el último backup. entonces: .173 Ventajas: • Fácil de realizar. ya que el redo log 144 ha sido sobrescrito (esto debería ser confirmado si la recuperación fuese intentada). perdiéndose el fichero de datos número 2. que puede fácilmente resolverse con entrenamiento y procedimiento.dbf’. SVRMGR> alter database open. Por lo tanto. 2 Ya que el último backup fue tomando con número de secuencia de log 144 y el número de secuencia de log actual es 146. SVRMGR>startup pfile=initDB00. actualizar el fichero de parámetros. 2 Si el fichero de datos o redo log es restaurado en una localización o nombre diferente. SVRMGR> shutdown abort.ora. Incluso si sólo un fichero de datos se ha perdido. Esto no es el caso en el entorno NT.dbf’ TO ‘/disk2/data/user_01. no se puede recuperar el fichero de datos. apagar la BD y restaurar todos los ficheros Oracle. Solamente dos ficheros de log existen. RESTAURACIÓN DE FICHEROS DE DATOS Restauración en una Localización Diferente Renombrar el fichero o directorio de localización: SVRMGR> connect system/manager as sysdba SVRMGR> startup mount pfile=initDD00. El único riesgo es restaurar un backup equivocado. (para iniciar el instance) SVRMGR> alter database rename file ‘/disk1/data/user01. sobrescribir el backup.* \disk1\date\ 3 Cuando la copia ha finalizado.dbf’ TO ‘/disk2/data/user_01. nota: en el entorno UNIX los ficheros deben existir en la nueva localización previamente a la utilización del comando “alter database rename”. reiniciar la instance: SVRMGR>connect / as sysdba.Usar el comando “alter database” para actualizar el fichero de control con la nueva localización del fichero: SVRMGR> alter database rename file ‘/disk1/data/user01.dbf’.

y el comando “recover” no será necesario. En la restauración. restore controlfile to ‘disk1/data/control01.174 RMAN Restaurar Utilizando RMAN Restaurar una Base de Datos en modo noarchivelog: RMAN> rum ( allocate channel cl type disk. Si RMAN recupera una Base de Datos en modo archivelog. restore database. ya que no es una característica disponible la restauración del fichero de control. • El comando “alter database open resetlogs” es necesario ya que será restaurado un backup del fichero de control. • Cuando se restaure una BD. De esta manera todos los ficheros estarán sincronizados. channel=<name> from tag=<name> parms=<quoted_string> from[backupset|datafilecopy] Options nota: esta no es la sintaxis completa. Donde: Object controlfile to <location> database datafile <quoted_string> tablespace <quoted_string> archivelog all. todos los ficheros de la BD necesitaran ser restaurados. • Los ficheros de datos y el fichero de control deberían restaurarse desde un backup tomado al mismo tiempo. RESUMEN • • • • Utilizar el modo archivelog para la Base de Datos en producción. se debe incluir la sintaxis “restore controlfile” así como el comando “restore database” (de otra manera sólo los ficheros de datos serán restaurados. Recuerde.con’. RMAN utiliza el catálogo de recuperación o el fichero de control de la BD destino para decidir que backup completo o incremental. que logs archivados o copias de imágenes se usarán. hay que ser cuidadoso en las siguientes situaciones: • La BD destino debe estar montada para la restauración. Recuperación de fallos de soporte restaurando todos los ficheros Oracle de un Backup Los ficheros pueden ser restaurados en localizaciones nuevas. Sintaxis de Restauración Un comando “restore” es normalmente utilizado dentro de un comando “run” o “create script”: Restore <Object> <Options>. para una BD en modo noarchivelog. Administración de Bases de Datos . ya que un backup completo es necesario después de la restauración debido a la ejecución de un “resetlogs”. • Usar RMAN para restaurar la BD en modo archivelog no es el mejor método. Consideraciones com RMAN Cuando se restauran ficheros para una BD en modo noarchivelog. RMAN dará error si la BD está abierta. Gestor de Backup Actualmente no es posible restaurar una BD en modo archivelog utilizando el Gestor de Backup. un nuevo backup debería ser realizado inmediatamente. sql “alter database open resetlogs”. • Solamente se puede restaurar usando RMAN si el backup fue realizado con RMAN.

.. Se puede asegurar esto apagando la BD (todos los ficheros offline). • Tiempo de recuperación = Tiempo de restaurar ficheros perdidos y aplicar todos los logs archivados. Una BD en producción debería correr en modo archivelog. Lo siguiente son las siguientes ventajas y desventajas de configurar su BD en modo archivelog. • Restaurar solamente ficheros de datos perdidos o dañados.offline”. Las dos situaciones principales que se puede encontrar un DBA son: • Recuperación de un Fallo de la Instance. Nota: • Usar el modo archivelog si: • Por defecto. 2 Asegurarse que sólo restaura los ficheros perdidos o dañados desde el backup. offline” o “alter database datfile. Recuerde. • Recuperar ficheros de datos. fichero de datos. Administración de Bases de Datos . • Recupera todos los datos al momento del fallo. la BD esta en modo noarchivelog.. • Todos los logs archivados desde el backup deben ser restaurados en este momento. Cuando se produce un fallo de soporte con una BD en modo archivelog y se quiere recuperar completamente al momento del fallo. • No restaurar el fichero de control.175 Capítulo Nº 15 RECUPERACIÓN COMPLETA CON “ARCHIVADO” Esta lección trata situaciones de recuperación para BD en modo archivelog que necesiten ser recuperadas en el momento de un fallo. o usando los comandos “alter tablespace. entonces para recuperar: 1 Asegúrese que los ficheros que van a ser sobrescritos no están abiertos durante la restauración. que la restauración de todos los ficheros volverá la BD atrás en el tiempo. (lección 3) RECUPERACIÓN COMPLETA Fallo de Soporte y Recuperación con “Archivado” Fallo • Pérdida de disco. Pasos para la Recuperación Si se cumplen los anteriores requerimientos para una recuperación completa. ficheros de password o parámetros. Se debe cambiar el modo manualmente. ya que las perdidas de datos son normalmente inaceptables. Desventajas • Deben existir todos los logs archivados desde el backup que se está restaurando. o corrupción. Recuperación con “Archivado” (Recuperación Completa) Ventajas • Solamente se necesitan restaurar los ficheros perdidos... Recuperación • Los ficheros de datos a restaurar deben estar offline. • Recuperación de un Fallo de Soporte. 4 Recuperar los ficheros de datos utilizando el comando “recover”. se debe realizar lo siguiente: • Un backup válido conteniendo los ficheros de datos perdidos o dañados después que la BD fuese puesta enmodo Archivelog. redo logs. 3 Poner la BD modo montada o abierta.

• La Base de Datos completa. o fallo de soporte. Recuperación de Bases de Datos abierta: SVRMGR> recover tablespace user_data. Método 4: RECUPERACIÓN DE UNA FICHERO DE DATOS SIN BACKUP. o la mayoría de los ficheros de datos necesitan ser recuperados. 7 días a la semana. todos los ficheros de logs archivados necesitan estar disponibles en disco para Oracle. SVRMGR> recover datafile 2 SVRMGR> alter database recover database 2. esto es. segmentos de ficheros de rollback. Recuperación de ficheros de datos sin backup. Recuperación de Bases de Datos abiertas. El tiempo de apagado de la BD debe ser el mínimo. Si hay alguno perdido.176 Ventajas: • Sólo se necesitan restaurar los ficheros perdidos o dañados. Desventajas: Se deben tener todos los logs archivados desde el último backup. con Base de Datos inicialmente abierta: Para ficheros perdidos.dbf’ SVRMGR> alter database recover database. Método 3: RECUPERACIÓN DE UNA BASE DE DATOS ABIERTA. El tiempo de apagado de la BD debe ser el mínimo. Si están en cinta de backup primero hay que restaurarlos. SINTAXIS DE RECUPERACION Recuperación de Bases de Datos cerrada: SVRMGR> recover database. después el 146. • Los ficheros de recuperación pertenecen al sistema o con segmentos de rollback en el tablespace. SVRMGR> recover datafile ‘/disk1/data/dbf2. no se podría realizar una recuperación completa. Métodos Completos de Recuperación 1 2 3 4 Recuperación de Bases de Bases cerrada: por el sistema. o la base de Datos completa. 7 días a la semana. INICIALMENTE CERRADA Este método de recuperación es generalmente utilizado cuando: • Un fallo de soporte o hardware ha provocado la caída del sistema. • La Base de Datos es necesaria 24 horas al día. entonces el 145. Nota: Durante la recuperación. ya que todos los archivos necesitan ser aplicados en secuencia. y así sucesivamente. • Los ficheros restaurados no pertenecen al sistema o al tablespace de rollback. • Todos los logs archivados existen ya que fueron creados. • Los ficheros recuperados no pertenecen al SYSTEM o el tablespaces de rollback. • El tiempo total de recuperación es el tiempo empleado por el hardware en restaurar los ficheros necesarios y aplicar todos los redo logs archivados. • Los datos validados no se pierden. Restaurar los ficheros. • La Base de Datos es necesaria 24 horas al día. Este método de recuperación es generalmente utilizado cuando: • Un fallo de soporte o de usuario produce la pérdida de un fichero de datos del que nunca se había hecho backup. vuelve la BD al momento actual. Hay 4 métodos diferentes de realizar una recuperación completa: Método 1: RECUPERACIÓN DE UNA BASE DE DATOS CERRADA Este método de recuperación generalmente utiliza los comandos “recover database” o “recover datafile” cuando: • La Base de Datos no es necesaria 24 horas al día. log archivado 144. y aplicar los redo logs archivados. Recuperación de Bases de Datos abiertas. 7 días a la semana. Método 2: RECUPERACIÓN DE UNA BASE DE DATOS ABIERTA. • Los ficheros restaurados no pertenecen al sistema o a tablespace con segmentos de rollback. INICIALMENTE ABIERTA Este método de recuperación es generalmente utilizado cuando: • Hay corrupción de ficheros. perdida accidental de ficheros. lo cual no provoca que la BD se tenga que parar. con Base de Datos inicialmente cerrada: Por fallos hardware. Administración de Bases de Datos . • La recuperación puede realizarse mientras la BD está abierta (excepto los ficheros de datos de SYSTEM o aquellos que contienen segmentos de rollback online).

Administración de Bases de Datos . ORA-00279: change 308810…12/02/97 17:00:14 needed for thread 1 ORA-00289: suggestion : /disk1/archive/arch_35.Teclear “auto” cuando se pregunte por un fichero log archivado. automatic automáticamente aplica ficheros redo log y archivados.” Automáticamente aplicar los ficheros redo log: . usar el comando “alter system archive log. Restaurando Archivos en una Localización diferente Si los logs archivados no son restaurados en el directorio LOG_ARCHIVE_DEST. Donde: Nota: el comando “alter database” puede ser invocado delante del comando “recover” RECUPERACIÓN UTILIZANDO FICHEROS LOGS ARCHIVADOS Recuperación Utilizando Logs Archivados • • Para cambiar la localización. . ejecutar la sentencia del Gestor del Servidor: SVRMGR> set autorecovery on 2 Introducir “auto” cuando se pregunte por el fichero redo log: SVRMGR> recover datafile 4.. por • La localización y nombre mediante el prompt de “recover” Specify log: {<RET>=suggested | filename | AUTO |CANCEL} • • Utilizando el comando “alter system archive”: SVRMGR> alter system archive log start to <new location>...Activar “set autorecovery on” antes de comenzar la recuperación del soporte. Oracle sugiere el nombre del fichero de log a aplicar. entonces Oracle necesitará ser notificado antes o durante la recuperación.Usar el comando “”recover automatic .. • • recover [automatic] tablespace <number> | <name> Sólo puede ser usado para recuperar Bases de Datos abiertas. Oracle puede manualmente o automáticamente aplicar los ficheros redo log archivados para reconstruir los ficheros de datos. .” Durante la recuperación. Media recover complete.177 Sintaxis de Recuperación Uno de los siguientes comandos puede ser utilizado para recuperar la Base de Datos: • recover [automatic] database Sólo puede ser utilizado para recuperaciones de Bases de Datos cerrada. Utilizando el comando “recover from <location>”: SVRMGR> recover from ‘<new location>’ database.rdo ORA-00280: change 308810 for thread 1 is in sequence #35 Specify log: {<RET>=suggested | filename | AUTO |CANCEL } AUTO Log applied 3 Utilizar la opción “automatic” del comando de recuperación: SVRMGR> recover automatic datafile 4. Antes de ser aplicado un redo log. recover [automatic] datafile <number> | <name> Sólo puede usarse para la recuperación de Bases de Datos abiertas y cerradas. Aplicación Automática de Ficheros Redo Log 1 Antes de iniciar la recuperación desde el soporte.

Cache SMON DBWR PMON CKPT LGWR ARCH 4 Open the database 146 Data File 1 Parameter File 146 Data File 2 146 Data File 3 2 146 Control File 1 Mount Instance 146 Redo Log 1 Restore Data File 2 (log Seq 144) File 1 145 Redo Log 3 Apply Log Files File 2 144 Archived Log File Password File Database Cada uno de los cuatro métodos será trabajado más adelante para determinar como recuperar la Base de Datos.rdo … 1 43 04-DEC-97 /disk1/archive/arch_43. or Administración de Bases de Datos .rdo 1 44 04-DEC-97 /disk1/archive/arch_44.rdo SVRMGR> recover datafile 2.ora SVRMGR> recover datafile ‘/disk/data/df2. ORA-00279: change 288772…12/02/97 17:00:14 needed for thread 1 ORA-00289: suggestion : /disk1/archive/arch_34. Por lo tanto el método 1 debe ser utilizado: 1 Restaurar el fichero del backup (el más reciente si esta disponible): UNIX> !cp /disk/backup/df2. Recuperación Completa: Método 1 Instance User Process Server Process PGA Data Buffer Cache SGA Shared Pool Large Pool Redo Log Buffer Shared SQL & PL SQL Data Dict. consutar V$ARCHIVED_LOG para todos los archivos o V$RECOVERY_LOG para los archivos necesarios durante la recuperación: SVRMGR> select * from v$recovery_log.dbf d:\data\ 2 Iniciar la instance en modo montada y recuperar el fichero de datos: SVRMGR> startup mount pfile=initDB00.dbf’.178 LOCALIZACION DE LOGS ARCHIVADOS PARA APLICAR Para localizar ficheros log archivados. Recuperación Completa: Método 1 (Base de Datos Cerrada) Nuevas investigaciones revelan que hay bloques corruptos en el disco 2 donde los ficheros de datos 2 esta almacenado.rdo ORA-00280: change 288772 for thread 1 is in sequence #34 Specify log: {<RET>=suggested | filename | AUTO |CANCEL } De la información superior.-----------------------------------1 34 02-DEC-97 /disk1/archive/arch_34.--------------------. THREAD# SEQUECE# TIME ARCHIVE_NAME ------------------.----------------------.dbf /disk/data/ NT > !copy c:\backup\df2. De la documentación de la BD. se determina que el fichero de datos 2 es uno de los pertenecientes al tablespace system. los logs archivados del 34 en adelante son necesarios para completar la recuperacion del fichero de datos 2.

La BD actualmente esta abierta. F# ----1 2 3 FILE_NAME ------------------------------------/disk1/data/system_01. • Durante este método de recuperación. sino que accidentalmente se ha borrado el fichero de datos número 2 utilizando comandos del sistema operativo. Actualizar el fichero de datos al momento del fallo. tablespace. Recuperación Completa: Método 2 Instance User Process Server Process PGA Data Buffer Cache SGA Shared Pool Large Pool Redo Log Buffer Shared SQL & PL SQL Data Dict. SVRMGR> alter database open. así la BD entera es inaccesible a los usuarios durante el proceso de recuperación. Cuando la recuperación ha terminado. utilizar la característica “automatic” del comando “recover” o usar el siguiente comando del Gestor de Servidor: SVRMGR> set autorecovery on. así para determinar a que tablespace pertenece el fichero de datos. Cache SMON DBWR PMON CKPT LGWR ARCH 1 Offline Data File 2 146 Data File 1 Parameter File 146 Data File 2 146 Data File 3 146 Control File 1 146 Redo Log File 1 145 Redo Log 3 Apply Log Files 2 Restore Data File 2 (log Seq 144) File 2 144 Archived Log File 4 Online Data File 2 Password File Database Recuperación Completa: Método 2 (Base de Datos Abierta. todos los ficheros de datos están sincronizados. restaurar los ficheros archivados de redo log en la localización especificada por LOG_ARCHIVE_DEST.dbf / disk1/data/rbs01. file_name. • Si hay suficiente espacio disponible. notificar a los usuarios que la BD esta disponible para el uso. Nota: • Si hay muchos logs archivados para aplicar. la BD debe estar cerrada. SVRMGR> recover database.dbf TABLESPACE ---------------------SYSTEM USER_DATA RBS STATUS ------------------------AVAILABLE AVAILABLE AVAILABLE Administración de Bases de Datos . utilizar el comando siguiente: SQL> SELECT file_id#. … Media recovery complete. inicialmente Abierta) La formación en DBA inmediatamente informa que no hay un fallo de soporte. Abrir la BD. todos los logs archivados y redo logs serán aplicados.rdo ORA-00280: change 148448 for thread 1 is in sequence #6 Log applied.dbf / disk1/data/df2. y reintroducir cualquier dato que no estuviese validado antes del fallo del sistema. status FROM dba_data_files.179 ORA-00279: change 148448 … 11/29/97 17:04:20 17:04:20 needed for tread ORA-00289: suggestion : /disk1/archive/arch_6. 3 4 Después.

cuando un fichero de datos es puesto offline. puede ser restaurado satisfactoriamente: para UNIX > !cp /disk1/backup/df2. sólo los datos contenidos dentro de este fichero de datos no son accesibles.180 1 Ya que el fichero de datos no es un fichero de datos de system o de un segmento de rollback. f#.dbf /disk2/data/ para NT > !copy c:\backup\df2. SVRMGR> recover tablespace USER_DATA.------------------/disk1/data/system_01.status FROM v$datafile d.file#.STATUS --------------------------------------------------------------------------. Poner el fichero de datos online: SVRMGR> alter database datafile ‘/disk2/data/df2. se sabe que el fichero de datos 2 no es de system o de un segmento de rollback.dbf ONLINE ONLINE 2 3 4 Ya que el fichero esta offline.file#.NAME D. todos los ficheros de datos son puestos offline y no se puede acceder a ningún dato del tablespace. Antes de la recuperación.dbf’ online.dbf SYSTEM ONLINE /disk2/data/df2. o SVRMGR> alter tablespace USER_DATA online.file# = h.status. d. Recuperación Completa: Método 3 Instance User Process Server Process PGA Data Buffer Cache SGA Shared Pool Large Pool Redo Log Buffer Shared SQL & PL SQL Data Dict. todos los ficheros de datos están sincronizados. Administración de Bases de Datos . SVRMGR> recover datafile ‘/disk2/backup/df2. v$datafile_header h WHERE d. Por el conocimiento de la BD. Oracle ya tiene el fichero offline): SQL> SELECT d. se ha determinado que el fallo de soporte fue debido a un fallo de la controladora de disco.STATUS H.name. nota: • Oracle algunas veces detectará un problema de fichero y automáticamente lo pondrá offline. siempre chequear el log de alertas para cualquier error y comprobar el estado de los ficheros –los ficheros OFFLINE pueden requerir recuperación. h.dbf RECOVER OFFLINE /disk1/data/rbs_01. la cual afortunadamente sólo controla el disco 2. d. Para un tablespace de varios ficheros. El tablespace todavía permanece disponible. • Cuando un tablespace es puesto offline. o Cuando la recuperación ha terminado. ni impedirá a los usuarios obtener sus informes de final de mes. podemos utilizar el Método 2.dbf d:\data\ Utilizar los comandos “recover” o “alter database recover” para aplicar los redo logs archivados para restaurar el fichero de datos. inicialmente cerrada) Investigando. Determinemos si necesitamos tener el fichero de datos 3 offline (en este caso.dbf’. Cache SMON DBWR PMON CKPT LGWR ARCH 3 Open Database 1 Mount the database 2 Offline Data File 2 4 Restore Data File 2 (log Seq 144) Parameter File 146 Data File 1 146 Data File 2 146 Data File 3 146 Control File 1 146 Redo Log File 1 145 Redo Log 5 Apply Log Files File 2 144 Archived Log File 6 Online Data File 2 Password File Database Recuperación Completa: Método 3 (Base de Datos Abierta. F# --1 2 3 D.

la BD no se abrirá.dbf’ online. todos los ficheros de datos están sincronizados.file# = h. 6 Administración de Bases de Datos . Ya que no puede ser restaurado en el disco dañado 2. o SVRMGR> recover tablespace USER_DATA. y que deben reintroducir cualquier dato que no estuviese validado antes del fallo del sistema.dbf’ offline. Si no esta seguro del número de tablespace del fichero SVRMGR> SELECT d. FILE# -----1 2 3 2 TS# -----0 1 2 TABLESPACE NAME ERROR ------------------------------------------------------------/disk1/data/system01.ts#. SVRMGR> startup mount pfile=$HOME/initDB00. Nota: El comando “alter tablespace …offline” debería ser usado si todos los ficheros de datos del tablespace necesitasen recuperación. determinar el nombre del tablespace que “tiene” el fichero de datos: SQL> select file_id#. file_name.dbf FILE NOT FOUND /disk1/data/rbs01.181 1 Montar la BD. El siguiente comando debe por lo tanto ser ejecutado: SVRMGR> alter database datafile ‘/disk2/data/df2. 3 La BD puede ahora ser abierta: SVRMGR> alter database open. v$datafile_header h WHERE d. status from dba_data_files.file#.dbf 2 /disk3/data/df2. o SVRMGR> alter tablespace USER_DATA online.tablespace_name.error FROM v$datafile d. No se abrirá porque el fichero de datos 2 no puede ser abierto.file#.dbf /disk2/data/df2.dbf e:\data\ Oracle debe ahora ser informado de la nueva localización del fichero: SVRMGR> alter database rename file ‘/disk2/data/df2. 5 Usar los comandos “recover” o “alter database recover” para comenzar a aplicar los redo logs archivados al fichero de datos restaurado.name. F# FILE_NAME ------.----------------------------------------1 /disk1/data/system_01.dbf’.dbf’.dbf /disk3/data/ para NT > !copy c:\backup\df2. d. Nota: El comando “alter tablespace” no puede ser usado aquí ya que la BD no está abierta todavía. resultar el fichero.dbf’ to ‘/disk3/data/df2. Cuando la recuperación ha terminado. SVRMGR> recover datafile ‘/disk3/backup/df2. d.dbf Si el fichero de datos no esta offline. Se ha consultado V$DATAFILE y determinado que el fichero esta online. 7 Notificar a los usuarios que la BD esta disponible para el uso.dbf TABLESPACE -----------------------SYSTEM USER_DATA RBS STATUS ----------------------AVAILABLE AVAILABLE AVAILABLE 4 …. Ahora estos usuarios pueden acceder al sistema. Poner el fichero de datos online: SVRMGR> alter database datafile ‘/disk3/data/df2. Por lo tanto el fichero deberá ser puesto offline. se restaurará sobre el disco 3: para UNIX > !cp /disk1/backup/df2.ora Database monted. h. h. tablespace_name. Cuando la BD está abierta y el tablespace recuperado es requerido.dbf 3 /disk1/data/rbs01.

Si la BD esta abierta. Todos los ficheros de datos están ahora sincronizados. ya que sólo contiene un fichero de datos. durante la restauración se recibe un error que indica que el fichero no esta en el backup. Nota: La opción inmediata debe ser incluida para evitar que un checkpoint intente escribir en un fichero que no existe: SVRMGR> alter tablespace TABLE_DATA offline inmediate. Como variación pondremos el tablespace offline. inmediatamente hay que utilizar la cinta de backup.dbf’ As ‘disk1/data/df2. 6. Ya que el fichero de datos 2 no es de system ni un segmento de rollback. Esto permite a los usuarios. 4. el Método 4 es la mejor opción: 1. todos los logs archivados y redo logs deben ser aplicados. Administración de Bases de Datos . SVRMGR> SELECT * FROM v$recover_file. Cache SMON DBWR PMON CKPT LGWR ARCH 1 Offline Data File 2 146 Data File 1 Parameter File 146 Data File 2 146 Data File 3 146 Control File 1 146 Redo Log File 1 145 Redo Log 3 Apply Log Files 2 Restore Data File 2 (log Seq 144) File 2 144 Archived Log File 4 Online Data File 2 Password File Database Recuperación Completa: Método 4 (Pérdida de fichero de datos sin backup) Como el fichero de datos 2 está perdido. tener el fichero de datos (sin backup) offline. Todos los datos estan ahora recuperados. Si la BD esta cerrada. 5. poner el fichero de datos online: SVRMGR> alter tablespace TABLE_DATA online. Statement Processed. Para traer el fichero de datos al punto del fallo. entonces montar la BD. Statement Processed. y abrir la BD. FILE# -----------7 ONLINE -------------OFFLINE ERROR -------------CHANGE# --------------248621 TIME ---------01-DEC-97 2. FILE# -----------7 ONLINE -------------OFFLINE ERROR -------------CHANGE# --------------248621 TIME ---------01-DEC-97 3. que no necesiten el tablespace TABLE_DATA. Usar los comandos “recover” o “alter database recover” para comenzar a aplicar los redo logs archivados para recrear el fichero de datos: SVRMGR> recover tablespace TABLE_DATA. trabajar en el sistema. y que tenemos todos los logs archivados de los 2 últimos días.dbf’. poner el fichero de datos offline. Ahora es necesario recrear el fichero: SVRMGR> recover datafile create datafile ‘/disk2/backup/df2. Se puede confirmar el estado de la recuperación consultando V$RECOVER_FILE que chequea el estado del backup: SVRMGR> SELECT * FROM v$recover_file. Incluir el fichero en la estrategia de backup y notificar a los usuarios que el tablespace esta preparado para ser usado otra vez. Cuando la recuperación ha terminado.182 Recuperación Completa: Método 4 Instance User Process Server Process PGA Data Buffer Cache SGA Shared Pool Large Pool Redo Log Buffer Shared SQL & PL SQL Data Dict. Sin embargo.

SVRMGR> SELECT * FROM v$backup.-------------. • Los ficheros de la BD en modo “hot backup” no estarán sincronizados con la BD. Tener los ficheros offline no es válido. ya que no son necesarios leer y aplicar los ficheros redo ya que los datos están ya actualmente en el fichero de datos. Si esto ocurre: • Los ficheros del backup no serán utilizables si el sistema operativo no ha terminado el backup. un fallo de alimentación. ya que la cabecera esta “frozen” cuando el backup comienza. Fallo durante un “Host Backup” Durante un backup de BD abierta. La Solución Si no se esta seguro del fichero que se necesita recuperar. Hay que realizar el backup de los ficheros otra vez. end backup” no puede ser realizado en ficheros de datos offline.183 RECUPERACIÓN DESPUÉS DE UN FALLO “HOT BACKUP” • • • • Los ficheros de datos no están sincronizados si estando en modo “Host Backup” hay un fallo. FILE# -----------1 2 3 4 STATUS CHANGE# TIME ---------------.. Administración de Bases de Datos . simplemente ejecutar el comando: SVRMGR> alter database datafile 2 end backup. para abrir la BD para los usuarios: SVRMGR> alter database open. o si esta en modo “hot backup”.--------------NOT ACTIVE 0 ACTIVE 228596 30-NOV-97 NOT ACTIVE 0 NOT ACTIVE 0 Esto indica que el fichero número 2 esta actualmente en modo “hot backup”. se puede producir un error en el sistema como. la BD esta parada. Determinar que fichero(s) estaban en modo “Hot Backup” en el momento del fallo. ya que un “alter tablespace . consultar la vista V$BACKUP: SVRMGR> SELECT * FROM v$backup. El Problema El comando “alter tablespace” no puede ser ejecutado hasta BD o se puede abrir hasta que los ficheros estén sincronizados u offline..-------------. • Encontrar otra manera de sincronizar los ficheros. Para “unfree” la cabecera.--------------NOT ACTIVE 0 ACTIVE 228596 30-NOV-97 Todo esto necesita ser realizado ahora. Recuperación de Ficheros de un “Hot Backup” Hay dos métodos para la recuperación de este escenario: • Recuperación de los Ficheros de la BD utilizando un método de los ya mencionados. Recuperar la BD utilizando alguno de los métodos ya expuestos. FILE# -----------1 2 …… STATUS CHANGE# TIME ---------------. Nota: Esta opción es mucho más rápida que la recuperación del fichero. Finalizar el backup de los ficheros de datos.

Así. unrecoverable datafile” para borrar un fichero redo log.184 BORRADO REDO LOGS CORRUPTOS • Utilizando la opción “unarchived”: SQL> alter database clear unarchived logfile group 1. • Un log archivado probablemente no existirá para el fichero de log borrado.ora Administración de Bases de Datos .. el “alter database clear logfile” puede ser usado para crear o borrar los ficheros sin que la BD necesite ser parada. o • Borrar el tablespace que contiene los ficheros de datos irrecuperables. • Considerar hacer un backup inmediatamente después de usar este comando. Si un fichero redo log ha sido accidentalmente borrado o corrompido mientras la BD esta abierta. Cuando se utilice este comando. Si no se produce el archivado del log. Si los redo logs se han perdido o están corruptos. la recuperación completa no es posible. Esta situación es rara. incluso si los ficheros de datos offline necesitan el log para recuperación. • Los redo log han sido archivados. Determinación de Necesidades para la Recuperación Se han empleado 4 horas en la creación de la BD y se ha decidido poner la BD en modo archivelog. Se utiliza el comando “alter system” para cambiar los logs manualmente. Se decide chequear la creación de los logs archivados en el sistema. • El fichero redo log corrupto pertenece al grupo actual. ORA-00470: LGWR process terminated with error Inmediatamente nos damos cuenta que un proceso en background ha terminado anormalmente y aborta la instance. PERDIDA DE UN FICHERO REDO LOG Pérdida de un fichero Redo Log: • No es necesaria recuperación. Comando “Alter databse clear unarchived logfile” Este comando supera dos situaciones donde el borrado de reo logs no es posible: • Si hay sólo dos grupos de logs. No tenemos backup. Sin embargo. no habrá pérdida de datos en las siguientes circunstancias: • Los ficheros redo logs no son los actuales. considerar el realizar un backup inmediatamente después. Nota: • Los ficheros de datos offline que necesitan este log no serán utilizables después de este comando. reiniciaremos la instance: SVRMGR> startup pfile=$HOME/initDB00. y no queremos gastar otras 4 horas en recrear la BD. • Un fichero de log actual necesario para una recuperación no puede ser borrado.. la recuperación al momento del fallo no será posible. • Utilizando la opción “unrecoverable datafile”: SQL> alter database clear unarchived logfile group 1 Unrecoverable datafile. aunque si ocurre hay dos aproximaciones: • Restaurar todos los ficheros de datos y realizar una recuperación incompleta previa al borrado del fichero de log. • La BD esta apropiadamente configurada con ficheros redo log espejo. Borrando Logs Necesarios para Ficheros de Datos Offline Usar el comando “alter database clear logfile . Después de unos segundos se recibe el siguiente mensaje de error: SVRMGR> alter system switch logfile. • La pérdida de todos los ficheros redo log de un grupo no debería ocurrir “NUNCA” si la BD es configurada apropiadamente utilizando ficheros redo log espejos. • El archivado se produce utilizando un fcihero del grupo afectado. También proporciona un método eficaz para la recreación de ficheros de log dañados y para el borrado de ficheros de log corruptos mientras la BD está abierta. Nota: • Usar este comando cuidadosamente.

rdo /disk1/data/log1a. 5. utilizar la sentencia “clear logfile” La BD no puede ser abierta hasta que los redo logs hayan sido recreados.rdo’ size 150K. físicamente borrar el fichero del sistema operativo.185 ORACLE instance started.dbf’ Para determinar la seriedad de la situacion de los redo log. 4. se decide consultar V$LOG y se realizan tres importantes observaciones: SVRMGR> select * from v$log. Entonces. Statement processed. No se puede borrar un grupo de log. Recrear el log: SVRMGR> alter database add logfile group 1 ‘/disk1/data/log1a. Statement processed. Ahora se borra el grupo de log: SVRMGR> alter database drop logfile group 1. Alter database drop logfile group 1 * ORA-01567: dropping log 1 would leave less than 2 log files… ORA-00312: online log 1 thread 1: ‘/disk1/data/log1a. Ya que la información no se ha perdido (sólo el fichero de log). pero no esta. Statement processed.dbf’ Por lo tanto. Esto se puede hacer rápidamente usando los siguientes comandos: 1. ya que siempre debe haber al menos dos grupos de log: SVRMGR> alter database drop logfile group 1. • Alternativamente. abrir la BD rápidamente. Intentamos localizar el fichero en el sistema operativo. 6. la recuperación no es necesaria –sólo el fichero de log debe ser recreado. Administración de Bases de Datos . 3. indica un problema con el grupo de log 1. …..rdo 7. no hemos perdido ninguna información de recuperación. Borrar el otro grupo de log: SVRMGR> alter database drop logfile group 3. ORA-00313: open failed for members of log group 1 of thread 1 ORA-00312: online log 1 thread 1: ‘/disk2/DATA/logla. Esto reducirá la pérdida de datos. • Abrir la BD. $ rm /disk1/data/log3a. GROUP# ----------1 2 STATUS ----------STALE MEMBER ------------/disk1/data/log2a. Encontrar la localización de donde el fichero estuvo anteriormente situado: SVRMGR> select * from v$logfile.rdo’ size 150K.rdo 2. GROUP# THREAD#…BYTES --------------------------------1 1 153600 2 1 153600 MEMBERS ------------1 1 ARC -----YES NO STATUS -------------UNUSED CURRENT FIRST_CHAN …. 8. Abrir la Base de Datos SVRMGR> alter database open. se debe crear otro grupo temporal: SVRMGR> alter database add logfile group 1 ‘/disk1/data/log3a. por lo tanto el grupo 1 no esta activo. El grupo de log 2 es el grupo actual. Inmediatamente multiplexar todos los redo logs. El fichero del grupo 1 ha sido archivado (ARC column= YES). ---------------0 248720 El número FIRST_CHANGE es 0. • Recrear el log del grupo. Por lo tanto. • Borrar el log del grupo que contiene el fichero perdido. • • • RECREACIÓN DE REDO LOGS Regeneración de ficheros log: • Encontrar una localización para crear el redo log. Statement processed.

RECOVERY --------------------0 row selected. THREAD -------------1 SEQ_NEEDED SCN_NEEDED TIME_NEED -----------------------. Alter database recover datafile 2 * ORA-00279: change 148448…11/29/97 17:04:20 needed for thread 1 ORA-00289: suggestion : /disk/archive/arch_6. INFORMACIÓN DEL ESTADO DE RECUPERACION Visualización Información de Recuperación V$RECOVERY_FILE_STATUS • Ficheros que necesitan recuperación • Estado de la recuperación. SVRMGR> select * from v$recovery_status. • Secuencia numérica de Log necesaria. Nota: La información para estas vistas reside en la PGA del proceso servidor cuando el comando “alter database recover” es utilizado. • V$RECOVERY_FILE_STATUS: Contiene información de cada fichero de datos requerido en la recuperación. FILENUM FILENAME STATUS -------------.------------0 row selected. Administración de Bases de Datos . RECOVERY --------------------29-NOV-97 1 row selected.------------6 /disk/data/db3. • Estado del log anterior aplicado.--------------------------------. Ejemplo de Estado de Recuperación Del ejemplo previo donde se perdió el fichero de datos . Media recovery complete.----------------------. ejecutaremos el comando de recuperación mientras vemos la información de recuperación: SVRMGR> alter database recover datafile 2.dbf IN RECOVERY 1 row selected. FILENUM FILENAME STATUS -------------.--------------------PREV_LOG ------------------- SVRMGR> select * from v$recovery_file_status. los pasos 2 al 7 pueden ser realizados con dos simples comandos: SVRMGR> !cp /disk1/data/log2a. ORA-00279: change 148448…11/29/97 17:04:20 needed for thread ORA-00289: suggestion : /disk/archive/arch_6. V$RECOVERY_STATUS • Tiempo de inicio de la recuperación. Otras sesiones por lo tanto no pueden ver la información de recuperación. THREAD -------------SEQ_NEEDED SCN_NEEDED TIME_NEED -----------------------. Realizando la recuperación actual: SVRMGR> alter database recover automatic logfile ‘/disk1/archive/arch_6.--------------------------------. • La causa de la Recuperación necesita la intervención del usuario Hay dos vistas de la BD que proporcionan información de estado de los procesos de servidor y de usuario realizando una recuperación de soporte: • V$RECOVERY_STATUS: Contiene información sobre la recuperación de la BD.186 Borrando Redo Logs Online Cuando ambos grupos de log tienen el mismo tamaño.--------------------6 0 29-NOV-97 PREV_LOG ------------------NONE SVRMGR> select * from v$recovery_file_status.rdo ORA_00280: change 148448 for thread 1 is in sequence #6 SVRMGR> select * from v$recovery_status.rdo’.----------------------.rdo SVRMGR> alter database clear logfile ‘/disk1/data/log1a.rdo ORA_00280: change 148448 for thread 1 is in sequence #6 Log applied. ….rdo’.

187 GESTOR DE RECUPERACION Recuperación Utilizando RMAN: • Crear al menos un canal • Montar la BD o los ficheros perdidos offline • Para muchos ficheros. necesita ser recuperado. Nota: esta no es la sintaxis completa Utilizando el Gestor de Recuperación para Recuperar Una vez que un fichero ha sido restaurado. Nota: • Usar la sintaxis “set newname” para restaurar los ficheros de datos a la nueva localización. • La BD destino debe estar montada o abierta para recuperación. Son aplicados a un backup de nivel 0 durante la recuperación. utilizar el comando “set newname”: set newname for datafile <name> to <newname> El comando “switch” puede ser utilizado para hacer a los ficheros restaurados parte de la BD (“actual”) Switch datafile <name>. donde: object database <until_clause> tablespace <name> datafile <name>. Consideraciones del Gestor de Recuperación Cuando se restauran ficheros de una BD en modo archivelog. utilizar “set newname” • Restaurar los ficheros perdidos • Si se utiliza “set newname” o Copias de Imágenes en la restauración. • Sólo se puede restaurar utilizando RMAN si el backup fue tomado o registrado con RMAN. • Recuperar los ficheros nuevos • Abrir la BD o los ficheros de datos online Durante la restauración . sólo los ficheros perdidos deben ser restaurados. se necesitan tener cuidado con las siguientes situaciones: • Los ficheros restaurados deben estar offline. Recordar. para una BD en modo archivelog. La sintaxis de “restore” fue descrita en la lección anterior. Nota: • Esta es la sintaxis completa. RMAN opera de una forma similar a una recuperación de una BD normal. • Los backups incrementales con niveles mayores que 0 no son restaurados con el comando “restore”. Comando Set Newname Cuando se restauran muchos ficheros de datos a una nueva localización. excepto si tiene más opciones que sólo restaurar un fichero de datos y aplicar archivos (tales como aplicar incrementales) Sintaxis de “RECOVER” Un “recover” es usualmente ejecutado dentro de un comando “run” o “create script”: Recover <object>. RMAN utiliza el catálogo de recuperación o el fichero de control de la BD destino para decidir que backup completo o incremental. Administración de Bases de Datos . “switch” los ficheros. o copia de imagen utilizará.

Nota: El agente Inteligente debe estar corriendo en el nodo de la BD destino para que “restore” y “recovery” trabajen. Un canal debe ser primero creado ya que los ficheros serán modificados a nivel del OS. Recuperación con el Gestor de Backup (utilizando el método de recuperación de la BD Abierta. 4. Chequear la localización del fichero de datos en el disco 2.dbf /disk1/data/df2. En la caja de diálogo “Restore: Datafile” se debe introducir el nombre del canal. “switch” los ficheros. Chequear la ventana de la derecha para estar seguro de que existen backups disponibles para el fichero de datos. Ya que el fichero fue copiado en una nueva localización (utilizando “set newname”). bytes from v$datafile. acumulativos y redo logs al fichero restaurado. Ya que el fichero debe ser movido a un disco diferente. Cuando la recuperación ha terminado. seleccionar el elemento del menú Recover à “Restore. Notificar a los usuarios que la BD esta disponible para el uso. Asegúrese que el fichero está offline para que pueda ser restaurado satisfactoriamente utilizando el comando “restore”. la Base de Datos esta todavía abierta. para sincronizar la BD.dbf /disk1/data/rbs01.dbf BYTES --------------31457280 10485760 5242880 3. 3. 5. 2.”. Administración de Bases de Datos . Ocasionalmente los usuarios se están quejando de que no tienen acceso a la información del fichero de datos número 2: ORA-00376: file 2 cannot be read at this time ORA-01110: data file 2: ‘/disk2/data/df2.. seguir los siguientes pasos: 1.-----------------------------------1 2 3 … /disk1/data/system_01. Pulsar el Botón Ok para ejecutar el fichero de comandos del Gestor de recuperación (en forma de un comando “run”) del OEM Job Control System. poner el fichero de datos online.188 RECUPERACIÓN COMPLETA COM RMAN Recuperación Utilizando RMAN: • Crear al menos un canal • Montar la BD o los ficheros perdidos offline • Para muchos ficheros. Inicialmente Abierta) Nos damos cuenta que el disco 2 esta corrupto. Usar el comando “recover” para iniciar la aplicación de archivos. 5. Utilizar “Rename” si los ficheros necesitan ser restaurados en localizaciones diferentes. Seleccionar el fichero de datos que necesitamos restaurar. 4. Para restaurar los ficheros de datos. • Recuperar los ficheros nuevos • Abrir la BD o los ficheros de datos online (Utilizando el método de la Base de Datos Abierta.. 2. y reintroducir cualquier datos que no fuese validado antes del error del sistema. FILE# NAME -------. Inicialmente Abierta) Para restaurar una Base de Datos en modo archivelog utilizando el Gestor de Backup. el fichero debe ser declarado “current” notificando a Oracle la nueva localización del fichero usando el comando “switch”. Seleccionar la opción “Recover object after restore” si la recuperación es necesaria.. utilizar “set newname” • Restaurar los ficheros perdidos • Si se utiliza “set newname” o Copias de Imágenes en la restauración.dbf’ 1. 6. 7. Cambiar manualmente a offline el fichero de datos antes de la restauración y online después de la recuperación. 6. utilizando los comandos “restore” y “recover”. Conectar la BD destino utilizando el subsistema Gestor de Recuperación del Gestor de Backup Oracle8. utilizar el comando siguiente: SQL> select file#. incrementales. name.

SWITCH DATAFILE <name>. La recuperación “Hot Backup” es rápida.. tablespaces. el comando “switch” en RMAN debe ser utilizado. REFERENCIA RÁPIDA Contexto Referencia Parámetros Ninguno Vistas de V$BACKUP Rendimiento V$DATAFILE Dinámico V$DATAFILE_HEADER V$LOG V$LOGFILE V$RECOVER_FILE V$RECOVERY_STATUS V$RECOVERY_FILE_STATUS Vistas del DBA_DATA_FILES Diccionario de Datos Comandos ALTER DATABASE RENAME FILE .. La recuperación de fallos de soporte sólo restaura ficheros perdidos desde el backup. o ficheros de datos.189 RESUMEN • • • • • La recuperación completa recupera al momento del fallo. La recuperación completa es posible para las BD. RECOVER DATABASE. SET NEWNAME <name> TO <newname>. RECOVER TABLESPACE <name>. Administración de Bases de Datos .. RECOVER DATAFILE <name>. Para recuperaciones rápidas. ALTER TABLESPACE <name> BEGIN BACKUP: ALTER TABLESPACE <name> END BACKUP.

• Trabajar con una recuperación en tiempo determinado. . Nota: Esta situación resulta en la pérdida de datos de transacciones validadas después del momento de la recuperación. Administración de Bases de Datos . tal como: .Tablas importantes de la BD han sido borradas accidentalmente. Cache User Process Server Process PGA SMON DBWR PMON CKPT LGWR ARCH 146 Data File 1 146 Data File 2 146 Data File 3 146 Control File 1 146 Redo Log File 1 145 Redo Log Parameter File File 2 Password File Archived Log File Database Esta lección sólo discute situaciones de recuperación para BD en modo ARCHIVELOG que necesitan ser recuperadas al momento anterior del fallo Recuperación Incompleta Reconstrucción de la BD a un momento anterior (antes del fallo). • Usar RMAN en una recuperación incompleta. • Utilizar cuando un fallo grave ha ocurrido. • Realizar una recuperación incompleta de una BD. así sólo se realizará esta recuperación cuando sea absolutamente necesario. • Se necesitan todos los logs archivados desde el backup hasta el tiempo específico de la recuperación. VISTA GENERAL Instance User Process Server Process PGA Looks Data Buffer SGA Shared Pool Large Pool Redo Log Buffer Shared SQL & PL SQL Data Dict. • Recuperar después de perder los logs actuales y activos.Un fallo completo de una operación de recuperación. La recuperación incompleta puede ser por lo tanto difícil y costosa en tiempo.190 Capítulo Nº 16 RECUPERACIÓN INCOMPLETA CON “ARCHIVADO” Objetivos: • Identificar las situaciones de uso de una recuperación incompleta para recuperar el sistema. Estos datos tendrán que ser reintroducidos manualmente. Realizando Recuperación Incompleta • Es necesario un backup válido offline de todos los ficheros de la BD.

la BD es retrocedida en el tiempo. Desventajas • La BD vuelve atrás en tiempo (pérdida de datos) • Tiempo de recuperación = Tiempo de Backup + Tiempo de Restauración de todos los ficheros de datos + aplicar logs archivados necesarios. Ventajas • Recuperación al momento anterior al fallo. no hay un espejo del fichero de control. Recuperaciones utilizando un fichero de control de backup. un usuario borra una tabla equivocada. La recuperación no puede continuar aplicando el redo log perdido. • Pérdida del fichero de control: Por ejemplo. Recuperación utilizando un fichero de control de backup. así los datos posteriores a éste están perdidos y deben ser reintroducidos. Pérdida de todos los redo logs no archivados y ficheros de datos. Recuperaciones basadas en cambios (SCNs) Este tipo de Recuperación Incompleta usa el comando “recover database” Administración de Bases de Datos . • Proporciona recuperaciones en situaciones donde una recuperación completa no es posible. anterior a la aplicación del log archivado. • El tiempo de la recuperación total es el tiempo empleado por el hardware en realizar un backup de la BD existente. • Archivos Perdidos: Por ejemplo. • Proporciona recuperación cuando los logs archivados están perdidos o un fichero de redo logs actual esta dañado. y así sucesivamente. una operación completa de recuperación falla debido a un log archivado erróneo o perdido. no hay espejos de redo logs y se ha perdido un redo log antes de ser archivado. no se sabe la estructura de la BD. junto con un fichero de datos. Desventajas • Durante la recuperación. pero hay un backup de una copia binaria vieja. Causas Comunes • Error de Usuario: Por ejemplo. La recuperación sólo puede ser completada a un momento en el pasado. • Pérdida de redo logs: Por ejemplo.191 RAZONES PARA UNA RECUPERACIÓN INCOMPLETA • • • • Error de usuario. Fallo de una recuperación completa por pérdida de un log archivado. valida datos modificados con una cláusula “where” incorrecta. Recuperaciones basadas en cancelaciones. Esto proporciona recuperación de las tablas borradas o con datos cambiados en tablas importantes cuando se notifica inmediatamente el fallo. TIPOS DE RECUPERACIONES INCOMPLETAS • • • • Recuperaciones basadas en el tiempo. RECUPERACIÓN CON “ARCHIVADO” (Recuperación Incompleta) Ventajas • Recuperación al momento anterior al fallo. • Bases de Datos Distribuidas: La recuperación incompleta de una localización requiere una recuperación incompleta de todas las otras Bases de Datos en la red distribuida. restaurar todos los ficheros de datos y aplicar redo logs archivados.

El espejo del fichero de control (en discos diferentes) y guardar una versión texto actual de la sentencia “create controlfile” y reduce las posibilidades de utilizar este método. Hacer espejos de los logs debería prevenir la necesidad de este tipo de recuperación. • El tiempo aproximado de un redo log online no espejo llegue a ser corrupto. Se debe especificar en el comando “recover database” que una copia vieja del fichero de control sería usada para la recuperación. El siguiente comando es utilizado para realizar una ejecución de una recuperación incompleta: recover [automatic] database <Option> donde: automatic Option automáticamente aplicados a archivos redo log archivados. El tiempo de recuperación y la perdida de datos será mínima si el error es notificado inmediatamente. • Los log archivados necesarios para la recuperación están perdidos. Programas bien probados. y el tiempo de aproximación al momento del error es conocido. Nota: • La sintaxis de “alter database recover” puede ser usada en su lugar. o cambio) ha terminado o el fichero de control está recuperado. using backup control file. y un backup binario del fichero de control existe. COMANDO RECOVER Sintaxis del Comando “Recover” Recuperación de una Base de Datos hasta una cancelación: SVRMGR> recover database until cancel. y procedimientos deberían prevenir la necesidad de este tipo de recuperación. until time ‘YYYY-MM-DD:HH:MI:SS’. en un punto de tiempo anterior. Recuperación Basada en Cambios Este método de recuperación termina después que la BD haya validado todos los cambios de un específico “system change number” (SCN). until scn <integer>. Frecuentemente los backups y la duplicidad de archivos deberían prevenir la necesidad de este tipo de recuperación. introducir AUTO en el prompt de la recuperación. usar el comando SQL “recover automatic”. Recuperación Basada en Cancelación Este método de recuperación termina introduciendo “Cancel” en el prompt (en lugar del nombre del fichero de log). con una estructura diferente a la BD actual. Este método no es descrito en este curso. • Automáticamente aplicar ficheros redo log durante la recuperación. Usar este aproximación cuando la recuperación sea de BD en un entorno distribuido. • Restaurando una BD. Usar esta aproximación cuando: • Todos los ficheros de control están perdidos. until cancel. Recuperación de una Base de Datos hasta un tiempo: SVRMGR> recover database until time ‘1997-12-04:14:22:03’. Usar esta opción cuando: • Cambios de datos no deseados fueron realizados o tablas importantes fueron borradas. tiempo.192 Recuperaciones Basada en el Tiempo Este método de recuperación termina después que la BD haya validado todos los cambios en un punto específico del tiempo. Administración de Bases de Datos . Usar esta opción cuando: • Un fichero redo log actual o grupo esta dañado y no esta disponible para recuperación. se puede usar el comando del Gestor de Servidor “set autorecovery on”. Recuperación usando un fichero de control de backup: SVRMGR> recover database until time ‘1997-12-04:14:22:03’ using backup controlfile. Recuperación usando un Backup del Fichero de Control Este método de recuperación termina cuando el método específico de recuperación (cancelación. Los ficheros espejo deberían normalmente prevenir la necesidad de este tipo de recuperación. seguridad. el fichero de control no puede ser recreado.

La restauración se debería haber hecho a los 11:39a. los ficheros de password o de parámetros. 5 Abrir la BD utilizando la opción “resetlogs” y asegurarse que el problema de la BD ha sido eliminado (sino. en caso de recuperación fallida realizarla otra vez. al menos archivar los redo logs actuales (“alter system archive log current”) y el fichero de control (“alter database backup controlfile to <location>”). Realizar un backup completo de la BD cerrada (incluyendo ficheros de control y redo logs) antes de comenzar una recuperación incompleta. mejor que del backup anterior que necesita aplicación de los archivados. Salvar el fichero de control regularmente.m. • Todos los logs archivados. Montar la BD y recuperar los ficheros de datos antes del momento del fallo. los redo logs. Restaurar todos los ficheros de datos. desde el backup restaurado. a menos que haya un backup de estos ficheros.m. . Hacer un backup del fichero de control siempre que la estructura de la BD cambie.Esto puede ocurrir si un usuario notifica que la tabla fue borrada a las 11:45a. 6 Realizar un backup competo de la BD. recuperar en un punto anterior al deseado). se sabe que después de la recuperación la tabla no estaba alli. . Nota: Si un backup completo no es realizado. recuperar otra vez). LÍNEAS GENERALES DE UNA RECUPERACIÓN INCOMPLETA • • • • • • • Seguir todos los pasos porque la mayoría de los errores ocurren con este tipo de recuperación. Abrir la BD con “resetlogs” Realizar un backup de la BD cerrada. redo logs y ficheros de control no pueden ser usados para la siguiente recuperación. se debe tener lo siguiente para recuperar: • Un backup válido offline u online que contenga todos los ficheros de datos.Recuperación de un error: Si la recuperación falla (por ejemplo. Realizar un backup completo cerrado después de la recuperación exitosa.Ahorrar tiempo si la recuperación falla.193 PASOS DE UNA RECUPERACION 1) 2) 3) 4) 5) 6) Apagar y hacer un backup de la Base de Datos. 4 Poner la BD en modo montada y recuperar la BD. 3 Restaurar todos los ficheros de datos y retroceder la BD en el tiempo. En esta situación. ya que un backup de un fichero de control debe ser usado si la estructura de la BD actual es diferente de la estructura en el tiempo que se quiere recuperar.La recuperación fue a las 11:44a. No restaurar el fichero de control. ya que todos los ficheros de datos serán restaurados del backup anterior (incluyendo ficheros de datos del sistema). Pasos de Recuperación Requerimientos para una recuperación incompleta: 1 Realizar un backup completo cerrado de la BD existente 2 Asegúrese que la BD esta parada. Salvar logs archivados.m (antes de que la tabla fuese borrada). ya que la mayoría de los problemas con la recuperación son causados por errores el DBA durante la recuperación incimpleta. Administración de Bases de Datos . Recuperación Incompleta Cuando un fallo ocurre y requiere una recuperación incompleta (sólo con una BD en modo archivelog). hasta antes del momento del fallo. incluyendo archivados. . se pueden restaurar los ficheros de datos desde el nuevo backup. Esto previene complicaciones si la recuperación es necesaria antes del siguiente backup programado. Hacer un backup completo de la BD antes y después de la recuperación para poder realizar futuras recuperaciones. Esto previene de dos maneras: .Se descubre que el reloj del usuario está cinco minutos adelantado. Siempre chequear si la recuperación es correcta. Siempre verificar que los fallos han sido solucionados antes de permitir a los usuarios volver al sistema. . • • • Es importante seguir todos los pasos de la recuperación.

rdo.log Media Recovery Log ORA-279 … RECOVER database until time ‘1997…. si hay ficheros de redo log perdidos.Los logs archivados arch_120. Tue Dec 09 11:55:13 1997 ALTER DATABASE RECOVER CONTINUE DEFAULT Media Recovery Log /disk1/archive/arch_34.Después de 120 cambios de log. la información del proceso es almacenada en el log de alerta.rdo. .Más tarde. sugerencias y SCN.rdo al arch_143. Esta es la razón por la que todos los ficheros restaurados para la BD deben ser vueltos atrás en el tiempo. Un fallo al restaurar todos los ficheros de datos (desincronización) impedirá que la BD sea abierta. .Después de realizar una recuperación incompleta. . de otra manera se producirá un error. La información es almacenada en BACKGRUND_DUMP_DEST. Durante la recuperación. Realizar un backup (y después borrar) los logs archivados del sistema para prevenir mezclas de archivos de diferentes incarnations de Bases de Datos.log Este chequeo es útil para encontrar errores de recuperación. • La tabla debe ser recuperada. .rdo será sobrescrito. La actividad transaccional sólo puede realizar un “roll forward” a un tiempo deseado.rdo a arch_143. la BD debe ser abierta con la opción “resetlogs” para sincronizar todos los ficheros de la BD. Salvar y limpiar frecuentemente. una nueva incarnation BD es creada.rdo son ahora parte de la vieja incarnation BD. El comando del Gestor del Servidor “recover database” es normalmente más fácil de usar que “alter database”.rdo). si la recuperación necesita el arch_124. Administración de Bases de Datos . con una secuencia de log a 0. es necesario asegurar que el log archivado restaurado del backup es el correcto para la incarnation de la BD. . La información es grabada durante la recuperación. el log archivado arch_120. no regresa a ese tiempo. • • EL LOG DE ALERTA Chequeando el Log de Alerta • • • • • • Chequear antes y después de la recuperación. Por ejemplo: $ vi /disk1/BDUMP/alert_DB00. son automáticamente recreados. El nombre del fichero es alert_<sid>.Por ejemplo una BD con secuencia de log 144 tiene logs archivados desde arch_120.rdo hasta arch_143. y será salvado con los otros archivos (incluyendo los logs viejos archivados arch_121. Este fichero debería ser siempre verificado antes y después de la recuperación. Con este comando.194 • • Después de una recuperación incompleta.rdo Incomplete recovery done UNTIL CHANGE 309121 Media Recovery Complete Completed: ALTER DATABASE RECOVER COTINUE DEFAULT Tue Dec 09 11:55:13 1997 Alter database open resetlogs RECUPERACIÓN BASADA EN TIEMPO Recuperación Basada en Tiempo Escenario: • La fecha actual es 12 PM del 9-DIC-97 • Su Instructor acaba de anunciar que ha borrado la tabla de empleados (EMP). • La tabla fue borrada sobre las 11:45 AM • La actividad de la BD es mínima porque la mayoría del personal está en una reunión.

. 4 5 6 6 Administración de Bases de Datos . Si hay espacio disponible suficiente.dbf /disk1/data/ UNIX > !cp /disk2/backup/*. pararla con las opciones “normal” o “inmediate”. Statement proceseed. abrir la BD utilizando la opción “resetlogs”: SVRMGR> alter database open resetlogs.dbf d:\data\ NT > … Puede ser necesario restaurar los logs archivados. restaurar en la localización LOG_ARCHIVE_DEST o usar los comandos SQL “alter system archive log start to <location>” o “set logsource <location>” para cambiar la localización. ORA-00279: change 148448 … 11/29/97 17:04:20 needed for thread ORA-00289: suggestion : /disk1/archive/arch_6. Ya que el momento aproximado del fallo es conocido y la estructura de la BD no ha cambiado desde las 11:44 AM.rdo ORA-00280: change 148448 for thread 1 is in sequence #6 Log applied. Montar la Base de Datos Restaurar todos los ficheros de datos desde el backup (del más reciente si es posible): UNIX > !cp /disk1/backup/*. Recuperar la Base de Datos: SVRMGR> recover database until time ‘1997-12-09:11:44:00’. Cache User Process Server Process PGA SMON DBWR PMON CKPT LGWR ARCH 6 1 Shutdown and backup the database 2 Mount database 1 Data File 1 Open Database “Resetlogs” 1 Control Files 1 Redo Log File 1 1 Redo Log 3 Restore all Parameter Data Files (log Seq 144) File 1 Data Emp File 2 1 Data File 3 5 File 2 144 Archived Log File 7 Backup database Password File 4 Database Inmediatamente parar la BD y comenzar la recuperación. podremos usar el método “until time”: Leyenda Número 1 2 3 Explicación Si la Base de Datos esta abierta.195 RECUPERACIÓN INCOMPLETA USANDO HASTA FECHA RECUPERACIÓN “Until Time” Instance User Process Server Process PGA Looks Data Buffer SGA Shared Pool Large Pool Redo Log Buffer Shared SQL & PL SQL Data Dict. … media recovery complete.dbf c:\data\ NT > !copy d:\backup\*. ….dbf /disk2/data/ UNIX > … NT > !copy c:\backup\*. Sincronizar los ficheros de datos con los ficheros de control y redo logs. SVRMGR> archive log list.

…. … FIRST_CHANGE FIRST_TIME ----------------------. de otra forma realizar el backup.196 (cont. Recuperación Basada en Cancelación Suposiciones: • Los Redo logs no están multiplexados. …SEQ# BYTES … ------------------… 49 153600 … 48 153600 …. consultar la tabla EMP para asegurar que existe. FIRST_TIME --------------------97-12-09:11:55 97-12-09:11:34 SVRMGR> select * from v$logfile. owner from dba_tales where table_name=’EMP’ TABLE_NAME OWNER ----------------------. 319512889 …. 7 Nota: 8 Si no hay filas seleccionadas. • La tabla fue borrada sobre las 11:45 AM Nos enteramos de la corrupción de bloques de la tabla EMP por un error de disco. Ya que los redo logs están contenidos en el mismo disco. Consultando V$LOG_HISTORY confirmamos la ausencia de la secuencia de log 48 (log2a.rdo’ no puede ser localizado y no ha sido archivado. notamos que el redo log ‘log2a. …. decidimos verificar el estado de los redo logs y de los logs archivados: SVRMGR> select * from v$logfile. Es necesario recuperar en un punto del tiempo anterior. 318531466 …. • Los usuarios pueden recuperar sus datos.. • Los ficheros de Log existen en el disco conteniendo el fichero de datos de empleados. Cuando la recuperación acaba y el backup está terminado. GROUP# STATUS -----------------------2 3 G# ---1 2 MEMBER ---------------------------------------------/disk1/data/log2a.rdo): SVRMGR> select * from v$log_history.---------------------88330 97-11-28:12:43 309067 97-12-09:11:26 Administración de Bases de Datos .m) necesitará ser reintroducido. Después de la búsqueda en el directorio /disk1/data. • El redo log contiene información de las 11:34 AM • Veintiséis minutos de datos han sido perdidos.) oldest online log sequence 0 next log sequence to archive 1 current log sequence 1 Antes de realizar un backup completo de la BD cerrada.-----------------------EMP PETER 1 row selected. Por lo tanto no podemos recuperar en este punto. entonces la tabla no ha sido restaurada correctamente.rdo /disk1/data/log1a. • Uno de los redo logs online está perdido.rdo MEMBERS ------------1 1 ARC ----NO NO STATUS ------------CURRENT INACTIVE …. RECUPERACIÓN INCOMPLETA USANDO Hasta Cancel Recuperación Basada en Cancelación Escenario: • La fecha actual es 12 PM del 9-DIC-97 • Su Instructor ha borrado la tabla de empleados (EMP) mientras intentaba arreglar los bloques erróneos. Si se obtine el siguiente error: ORA-00942: table or view does not exits Then locate the schema for the table using: SVRMGR> select table_name. RECID ----------1 47 STAMP ---------------. notificar a los usuarios que la BD esta disponible para su uso y que cualquier data introducido después de la hora de recuperación (11:44 a. ….

no la tabla. Los usuarios no están felices de perder su trabajo.…. INACTIVE ….. …. …. RECUPERACIÓN INCOMPLETA DEL FICHERO CONTROL del BACKUP Escenario: • La fecha actual es 12 PM del 9-DIC-97 • Su Instructor ha borrado el tablespace de empleados entero. 2 Ya tenemos un backup válido. cuidadosamente tomar la información de la estructura de la BD por si fuese necesaria: SVRMGR> select * from v$log.197 Ya que este es un sistema OLTP.rdo ORA-00280: change 309012 for thread 1 is in sequence #48 Specifi log: {<RET>=suggested | filename | AUTO | CANCEL} cancel Media recovery cancelled. FIRST_NAME ---------------------97-12-09:11:55 97-12-09:11:34 3 Administración de Bases de Datos . 3 Recuperar todos los ficheros de datos del backup más reciente.rdo’. • El error ocurrió sobre las 11:45 am. Ya que el fichero de control actual ha sido reemplazado. Verificar que la tabla EMP existe realizando un simple select.. …. notificar a los usuarios que la BD esta disponible para su uso.rdo ORA-00280: change 148448 for thread 1 is in sequence #34 Log applied. ….. GROUP# ------------1 2 …. • Muchos registros de empleados fueron actualizados esta mañana antes de las 11:00 am. 1 2 El formador borra la tabla EMP con este comando: SVRMGR> drop tablespace emp_ts including contents. la salida de V$LOG muestra un trabajo extra de 10 minutos que se perderá si la BD es recuperada antes de aplicar ‘log2a. Mientras esperamos a que todos los usuarios salgan y las sesiones sobrantes son canceladas. Cuando la recuperación ha tenido éxito. …. • Los backups se realizan cada noche. colocar la BD en modo restringido para prevenir posteriores accesos: SVRMGR> alter system enable restricted session. y que cualquier dato introducido después del momento de recuperación (11:43 am) necesitará ser reintroducido. 5 6 7 Abrir la BD utilizando la opción “resetlogs”. pero pueden recuperarlo. CURRENT …. se monta la instance. Por lo tanto se debe comenzar restaurando la BD: 1 Apagar la Base de Datos. 4 Recuperar la BD hasta la secuencia de log 48: SVRMGR> recover database until cancel ORA-00279: change 148448 … 12/02/97 12:45:20 needed for thread ORA-00289: suggestion : /disk1/archive/arch_34.. Inmediatamente se pide a los usuarios que salgan y guarden los registros de datos introducidos en los últimos 15 minutos. Durante la investigación. … ORA-00279: change 309012 … 12/02/97 11:33:56 needed for thread 1 ORA-00289: suggestion : /disk1/archive/arch_48. …. SEQ# BYTES -----------------61 153600 60 153600 …. ARC ------NO NO STATUS --------------. …. se localiza un fichero de control binario del backup de la última noche.

o es necesaria más recuperación (imposible aquí).---------------------------------OEM_TS /disk1/data/emp_01.. abrir la BD con la opción “resetlogs”: 9 Verificar que la tabla EMP existe realizando un simple select. 7 Realizar la recuperación: SVRMGR> recover database until time ‘1997-12-09:11:44:00’ using backup controlfile. ORA-01152: file 7 was not restored from a sufficiently old backup ORA-01110: datafile 7: ‘/disk1/data/newfile01. Nota: Si el siguiente error aparece en vez de “Media recovery complete”. Administración de Bases de Datos . file_name from dba_data_files where tablespace_name=’EMP_TS’. • El fichero de datos 4 es offline.---------------. media recovery complete. Tue Dec 09:44:54 1997 Drop tablespace oem_ts including contents ….---------------. Después intentar abrir la BD. • El tablespace de empleados tiene un fichero de datos. TABLESPACE_NAME FILE_NAME -------------------------------.---------------. Apagar la BD.----------------4 OFFLINE 288772 02-DEC-99 6 SVRMGR> alter database datafile 4 online. ya que cualquier fichero offline puede ser irrecuperable después de una recuperación: SVRMGR> select * from v$recover_file.198 RECUPERACIÓN INCOMPLETA DEL FICHERO CONTROL del BACKUP Suposiciones: • El backup de la última noche contiene ficheros de datos y ficheros de control necesarios para la recuperación. • El número de secuencia del log actual es 61. • Se confirma que el tablespace fue borrado a las 11:44:54 am del 9-DIC-97. salvar los ficheros de control. entonces restaurar todos los ficheros de datos y ficheros de control en un momento donde el tablespace existiese. notificar a los usuarios que la BD esta disponible para su uso. expected sequence # doesn´t match ORA-00312: online log 1 thread 1: ‘/disk1/data/log1a. SVRMGR> select tablespace_name. el error siguiente nos indicará que los redo logs y los ficheros de control no están sincronizados: ORA-00314: log 1 of thread 1. ….log …. indica que los ficheros de datos necesitan ser restaurados de un backup anterior.dbf 4 5 Confirmar el momento del error mediante el log de alerta: UNIX > vi /disk1/BDUMP/alert*.log o NT > notepad c:\BDUMP\alert_DB00.rdo’ Verificar si hay algún fichero de datos offline y ponerlo online. 10 Cuando la recuperación ha tenido éxito.dbf’ 8 Para sincronizar los ficheros de datos con los ficheros de control y redo logs. FILE# ONLINE ERROR CHANGE# TIME ------. y que cualquier dato introducido después de las 11:44 am necesitará ser reintroducido.

.. Se debería por lo tanto inmediatamente realizar un backup completo cerrado.. Hay dos posibilidades de recuperación cuando el redo log online “actual” se ha perdido: • • La Base de Datos esta abierta.. Si la BD falla debido a un error de soporte antes del siguiente backup.. NO CURRENT ….---------------... ya que el fichero de log será sobrescrito en caso de corrupción. Bases de Datos Cerrada a causa de un Fallo Si la BD esta cerrada. 61 2 .. ORA-00313: open failed for members of log group 2 of thread 1 ORA-00312: online log 2 thread 1: ‘/disk1/archive/log2a. Usar los pasos siguientes para retificar el problema de la BD “colgada”: 1 Determinar que grupo es el “actual”: SVRMGR> select * from v$log.. NO CURRENT …..rdo’ La recuperación incompleta es necesaria. ….. FIRST_TIME -----------------------97-12-09:11:55 97-12-09:11:34 2 3 4 Borrar el fichero de log actual utilizando el siguiente comando: SVRMGR> alter database clear unarchivied logfile group 1..---------------.. ---------------.. 153600 .. • Realizar un backup completo de la BD.. un fallo de soporte puede ocurrir o un proceso en background puede haber terminado. NO INACTIVE .... PERDIDAS DE REDO LOGS ONLINE ACTUALES Si la Base de Datos está CERRADA: • Intentar abrir la BD.. éste no habrá sido archivado. 153600 . • Recuperar la BD hasta la cancelación. o recreado en caso de fichero perdido... Primero se debe tomar nota del número de secuencia de log actual: SVRMGR> select * from v$log... • Abrir la BD usando “resetlogs”. 60 BYTES ….... ARC STATUS -----. pero es estado “colgada”.. 61 2 . NO INACTIVE . • Realizar un backup completo de la BD...rdo’ ORA-27037: unable to obtain file status SVR4 Error: 2: No such file or directory Additional information: 3 Ya que el grupo de log 2 es el grupo de log actual.. SEQ# ---------------------1 .... 153600 . GROUP#….. La Base de Datos esta cerrada debido a un fallo de soporte o la terminación de un proceso en background. entonces la recuperación incompleta será necesaria ya que la información de recuperación ha sido borrada... ARC STATUS -----.. El comando “clear logfile” no podrá usarse ya que: SVRMGR> alter database clear unarchivied logfile group 2. Usar los pasos siguientes para retificar la situación: 1 Al intentar abrir la BD notificará inmediatamente el grupo de redo log actual mediante el siguiente mensaje: Database mounted.199 PERDIDAS DE REDO LOGS ONLINE ACTUALES Si la Base de Datos está ABIERTA: • Determinar el grupo de log actual... 153600 . SEQ# ---------------------1 . FIRST_TIME -----------------------97-12-09:11:55 97-12-09:11:34 2 3 Administración de Bases de Datos . 60 BYTES …. …. • Usar el comando “clear logfile” • Abrir la Base de Datos utilizando “resetlogs”.. GROUP#….... • Encontrar el número de sequencia del log actual. ORA-01624: log 2 needed for crash recovery of thread 1 ORA-00312: online log 2 thread 1: ‘/disk1/archive/log2a.. La BD debería estar operacional. Base de Datos Abierta... el fichero puede estar corructo o accidentalmente borrado...... pero en Estado “Colgada” Si la BD esta abierta.... ---------------..

Incomplete recovery done UNTIL CHANGE 309121 Media Recovery Complece …. • Todos los logs archivados y redo logs online están presentes para la recuperación. • No hay backup después de “resetlogs” • No hay backup anterior a “reserlogs” • Los ficheros de control existen antes y después de “resetlogs”.3 (o superior) así como los resetlogs. Prerrequisitos Para utilizar este método. sin saltar ninguno.3 y posterior. • No hay un backup completo de la BD cerrada o abierta anterior a “resetlogs”. usar los comandos “alter database drop logfile group” y “alter database add log group” para manualmente crear los ficheros de log. la BD debería ser salvada ahora. 3 Montar la BD. localizar el número de cambio calculado al final de la operación “resetlogs” previa. 5 6 Abrir la BD utilizando la opción “resetlogs”. 7 días a la semana. Si no está seguro contactar con soporte de Oracle: 1 Copiar los ficheros de control de la BD actual a otra localización. Nota: Si los ficheros de log necesarios son recreados en otro disco debido a un fallo de soporte.rdo ORA-00280: change 309043 for thread 1 is in sequence #61 ORA-00278: log file … no longer needed for this recovery Specifi log: {<RET>=suggested | filename | AUTO | CANCEL} cancel Media recovery cancelled. • Logs archivados y redo logs son accesibles. Sin embargo. 4 Del log de alerta. • El log de alerta contiene información de anteriores “resetlogs”. Procedimiento Seguir cada paso en este procedimiento. Por lo tanto. se realizan backups de la BD abierta después de la recuperación. . 2 Restaurar los ficheros de datos y ficheros de control del backup antes de la última operación de “resetlogs”. ORA-00279: change 309043 … 12/02/97 14:50:14 needed for thread 1 Administración de Bases de Datos . • No hay un backup completo de la BD cerrada o abierta después de “resetlogs”.200 4 Restaurar todos los ficheros de datos de un backup previo y utilizar la recuperación hasta la cancelación para parar antes de que el redo log 61 sea aplicado..3. esta recuperación podría ser necesaria. y si un fallo de soporte ocurriese antes de que el backup terminase. ORA-00279: change 309012 … 12/02/97 19:50:14 needed for thread 1 ORA-00289: suggestion : /disk1/archive/arch_46. este procedimiento nunca debería ser realizado. • El log de alerta contiene información “resetlog”.3. Cuando Usar este Proceso Realizando backups después de cada recuperación incompleta. Ya que se ha realizado una recuperación incompleta.. se deben seguir los siguientes criterios: • La BD debe ser Oracle RDBMS versión 7.. grandes BD con disponibilidad de 24 horas al día. requieren reducir el tiempo de recuperación. • Existen ficheros de control antes y después de “resetlogs”. SVRMGR> recover database until cancel. ya que los ficheros de log perdidos serán recreados. La BD debería ser operacional. 5 Recuperar la BD hasta el número de cambio localizado anteriormente: SVRMGR> recover database until change 309121 using backup controlfile. 7 RECUPERACIÓN A TRAVÉS DE RESETLOGS Utilizar este proceso sólo cuando: • La versión de la BD es 7.rdo ORA-00280: change 309043 for thread 1 is in sequence #46 Specifi log: {<RET>=suggested | filename | AUTO | CANCEL} ORA-00279: change 309141 … 12/02/97 19:50:14 needed for thread 1 ORA-00289: suggestion : /disk1/archive/arch_61.

entonces este método nunca será necesario.. Exportar objetos desde la BD (clone). 10 Copiar los ficheros clonados a la BD primaria. Montar la BD. Esta sección es una introducción al concepto de TSPITR.201 ORA-00289: suggestion : /home/disk1/user4/archive/arch_46. 3 Preparar la BD primaria para el TSPITR. 5 Preparar la BD clonada para el TSPITR. Salvar la BD para prevenir la recuperación por reset logs RECUPERACIÓN TABLESPACE EN UN MOMENTO CONCRETO (TSPITR) • • • • • • • Chequear dependencias y restricciones. • La tabla debe ser recuperada. En este caso. 2 Investigar y resolver dependencias en la BD primaria. De la transpariencia. Borrar objetos en la BD primaria. Media Recovery Complete. Administración de Bases de Datos . 4 Preparar los ficheros de parámetros para la BD clonada. Si procedimientos de backup y recuperación son realizados. sólo necesita un tablespace y sus dependencias para volver para atrás dos días. vease “Oracle8: Guía de Backup y Recuperación”. Por ejemplo: • Los usuarios notifican después de un par de días que un programa de aplicación no esta trabajando correctamente y hay datos incorrectos en una tabla.rdo ORA-00280: change 309043 for thread 1 is in sequence #46 Specifi log: {<RET>=suggested | filename | AUTO | CANCEL} Auto …. TSPITR Requerimientos Se deben cumplir los siguientes requerimientos antes de usar TSPITR: • Todos los ficheros de datos que son parte del tablespace que necesita recuperación deber estar presente. Importar objetos en la BD primaria. 8 Preparar la BD clonada para exportación. Crear una copia de la BD (clone). Preparar la BD primaria para TSPITR. ya que hay muchos usuarios realizando diferentes tareas en la BD. Realización de TSPITR Si se requiere más información para realizar una recuperación de un tablespace en un momento determinado. Validar los datos que se han intentado recuperar. • Volver atrás la BD dos días es una tarea imposible. Utilizando TSPITR Este método de recuperación puede ser usado si un error de usuario ha ocurrido y la BD no puede ser vuelta atrás. 11 Importar en la BD primaria. Consultar V$LOG para asegurar la recuperación al correcto número de secuencia de log. Recuperar la BD usando el comando de nuestra elección. 6 7 8 9 10 11 12 13 Parar la BD usando la opción “normal”. La utilización de este método de recuperación debería ser escasa y utilizado junto al Soporte Oracle. no un conocimiento a bajo nivel. 7 Abrir la BD clonada. un fallo de soporte probablemente producirá una recuperación completa. Abrir la BD. • Debe haber suficiente espacio en disco y memoria para iniciar una BD clonada. Restaurar los ficheros de control actuales de la localización especificada en el paso 1. Los siguientes pasos son necesarios para un TSPITR: 1 Averiguar si los objetos serán perdidos cuando se realice el TSPITR. 9 Exportar la BD clonada. • Se debe realizar un backup del fichero de control utilizando el comando “alter database backup controlfile to <name>”. TSPITR. 6 Recuperar la BD clonada. Recuperar la BD (clone).

• La BD destino debe ser montada o abierta para recuperación.202 12 Preparar la BD primaria para el uso. El proceso de restauración y recuperación para recuperaciones incompletas sigue el mismo procedimiento y sintaxis que una recuperación completa. Abrir la BD utilizando “resetlogs” Realizar un backup completo de la BD. Recuperar la BD utilizando tiempo. GESTOR DE RECUPERACIÓN Recuperación Usando RMAN • • • • • • Crear uno o más canales que asistan la paralelización. • Los ficheros restaurados deben estar offline y sólo se pueden restaurar usando RMAN si el backup fue realizado o registrado con RMAN. Montar la BD. Administración de Bases de Datos . 13 Salvar los Tablespaces recuperados en la BD primaria. Restaurar todos los ficheros de datos. Donde: Object database <until_clause> tablespace<until_clause> Nota: • Esta no es la sintaxis completa. excepto todos los ficheros de datos necesarios para ser restaurados. Sintaxis de Recuperación Un “recover” es normalmente ejecutado en un comando “run” o “create script”. cancelación o cambio. Recover <Object>.

y que los datos no validados antes de fallo del sistema deberán ser reintroducidos. Antes de iniciar RMAN. El momento aproximado de fallo es conocido y la estructura de la BD no ha cambiado desde las 11:44 am. no ficheros de control. > recover database..} 9 Verificar que la tabla existe y realizar el backup. 3 Comenzar el Gestor de Recuperación y conectar con la BD. Se puede utilizar el método “hasta fecha”: 1 Si la BD esta abierta. apagarla usando las opciones “normal” o “inmediate” 2 Montar la BD destino. deberían configurarse las variables de entorno NLS_LANG y NLS_DATE_FORMAT: $ NLS_LANG=american $ NLS_DATE_FORMAT=’YYYY-MM-DD:HH24:MI:SS’ $ RMAN target rman/rman@DB00 rcvcat rman/rman@RCVCAT 4 Crear el comando “run” que realizará la restauración y la recuperación: RMAN> run {allocate change cl type DISK. Nota: No salvar la BD cuando se usa RMAN. inmediatamente se para la BD y comienza la recuperación después de determinar que la tabla de empleados ha sido borrada. 11 Si se usa un catálogo de recuperación.. RMAN escogerá estos ficheros basándose en el comando “set until”: RMAN> . set until time = ‘1997-12-09:11:44:00’. > restore database. > allocate channel c2 type DISK. restaurar en la localización LOG_ARCHIVE_DEST o usar los comandos SQL “alter system archive log start to <location>” para cambiar la localización. > set until time = ‘1997-12-09:11:44:00’. RMAN> … restore database: Nota: El comando “restore database” sólo restaura ficheros de datos. > sql “alter database open resetlogs”. 5 Restaurar todos los ficheros de datos del backup que permitiran una recuperación incompleta con éxito. Administración de Bases de Datos . ni redo logs o logs archivados. 6 Se puede necesitar restaurar los logs archivados.203 RECUPERACIÓN INCOMPLETA CON RMAN Recuperación Usando RMAN Restauración y recuperación incompleta: RMAN > run ( > allocate channel c1 type DISK. Si hay suficiente especio en disco disponible. utilizando pasos similares a los de la recuperación completa. preferiblemante utilizando un catálogo de recuperación. ya que los ficheros del nuevo backup pueden ser usados en lugar de los anteriores si la sintaxis “set until” no es utilizada. 7 Recuperar la BD en el momento especificado en el comando “set until”: RMAN> … recover database: 8 Abrir la BD utilizando la opción “resetlogs”: RMAN> … sql “alter database open resetlogs”. registrar el nuevo incarnation de la BD: RMAN> reset database: Gestor de Backup Se pueden restaurar los ficheros de datos y realizar una recuperación incompleta en la BD en modo archivelog utilizando el Gestor de Backup.) Recuperacion Incompleta con RMAN A las 12 pm el Martes 9-DIC-97. 10 Notificar a los usuarios que la BD esta disponible para su uso.

Administración de Bases de Datos . Recuperación “basada en cancelación” es utilizada para logs archivados perdidos o redo logs actuales online. Se debe utilizar la opción “resetlogs” cuando la BD está abierta.204 Resumen • • • • • Recuperación “basada en tiempo” es usada cuando el tiempo del error es conocido. Hacer backups antes y después de la recuperación. El “fichero de control de Backup” es usado cuando las estructuras actuales de la BD y del Backup son diferentes.

Sign up to vote on this title
UsefulNot useful