Manual Oracle

188
Curso de Oracle 11g 1 Autores: Reingeniería, Tecnología y Comunicaciones, S.L. Calle Agustín de Foxá, 25 28036 Madrid De la edición: © Centro de Estudios Adams, Ediciones Valbuena, S.A. Doctor Esquerdo, 136, 7ª Planta 28007 Madrid www.adams.es ISBN: 978-84-9943-459-9

description

Curso de Oracle 11gAcademia Adams

Transcript of Manual Oracle

Curso de Oracle 11g

1

Autores:

Reingeniería, Tecnología y Comunicaciones, S.L. Calle Agustín de Foxá, 25 28036 Madrid

De la edición:

© Centro de Estudios Adams, Ediciones Valbuena, S.A. Doctor Esquerdo, 136, 7ª Planta 28007 Madrid www.adams.es

ISBN: 978-84-9943-459-9

Curso de Oracle 11g

2

ÍNDICE

1. INTRODUCCIÓN A ORACLE 11g: SQL....................................................................................... 4 1.1 Introducción ................................................................................................................................ 4 1.2 Recuperación de Datos mediante la Sentencia SQL SELECT ................................................... 5 1.3 Restricción y Ordenación de Datos Restricción ......................................................................... 6 1.4 Uso de Funciones de Una Sola Fila para Personalizar la Salida ................................................. 9

1.4.1. Funciones de caracteres ...................................................................................................... 9 1.4.2. Funciones de transformación .............................................................................................. 9 1.4.3. Funciones numéricas ......................................................................................................... 10 1.4.4. Funciones de fecha ............................................................................................................ 11

1.5 Uso de Funciones de Conversión y Expresiones Condicionales .............................................. 13 1.5.1 Funciones de conversión .................................................................................................... 13 1.5.2 Funciones condicionales .................................................................................................... 14

1.6 Informes de Datos Agregados con Funciones de Grupo .......................................................... 16 1.6.1 Funciones de cálculo con grupos ....................................................................................... 17 1.6.2 Condiciones HAVING ....................................................................................................... 17

1.7 Visualización de Datos de Varias Tablas.................................................................................. 18 1.8 Las Subconsultas ....................................................................................................................... 20 1.9 Uso de los Operadores SET ...................................................................................................... 21 1.10 Manipulación de Datos ........................................................................................................... 22 1.11 Uso de Sentencias DDL para Crear y Gestionar Tablas ......................................................... 25 1.12 Creación de Otros Objetos de Esquema.................................................................................. 33

2. ADMINISTRACIÓN DE BASES DE DATOS ORACLE 11g ..................................................... 35 2.1 Exploración de la Arquitectura de una Base de Datos Oracle .................................................. 35 2.2 Preparación del entorno de una Base de Datos ......................................................................... 39 2.3 Creación de una Base de Datos Oracle ..................................................................................... 43 2.4 Gestión de una instancia Oracle ................................................................................................ 54 2.5 Configuración de un entorno de red Oracle .............................................................................. 56 2.6 Gestión de estructuras de almacenamiento Oracle ................................................................... 65

2.6.1 Oracle Warehouse Builder ................................................................................................. 65 2.6.2 Oracle XML DB ................................................................................................................ 66

2.7 Administración de seguridad de Usuario .................................................................................. 69 2.8 Gestión de Objetos del esquema ............................................................................................... 72 2.9 Gestión de datos y concurrencia ............................................................................................... 75 2.10 Gestión de datos Undo ............................................................................................................ 77 2.11 Implementación de seguridad en bases de datos Oracle ......................................................... 85 2.12 Mantenimiento de una Base de Datos ..................................................................................... 89 2.13 Gestión del rendimiento .......................................................................................................... 95 2.14 Conceptos de Backup y Recuperación .................................................................................. 100 2.15 Backup de Base de Datos ...................................................................................................... 101 2.16 Recovery (Recuperación) de Base de Datos ......................................................................... 104 2.17 Traspaso o movimiento de Datos .......................................................................................... 107 2.18 Mejora de las posibilidades de la base de datos .................................................................... 110

3. ADMINISTRACIÓN AVANZADA DE BASES DE DATOS ORACLE 11g............................ 112 3.1 Arquitectura de Oracle Database y ASM................................................................................ 112 3.2 Configuración de Recuperabilidad ......................................................................................... 117 3.3 Uso del Catálogo de Recuperación de RMAN ....................................................................... 119 3.4 Configuración de Especificaciones de Copia de Seguridad ................................................... 123 3.5 Creación de Copias de Seguridad (Export e Import de la BBDD) ......................................... 126

Curso de Oracle 11g

3

3.6 Realización de Copia de Seguridad y Recuperación Gestionada por Usuario (copia de seguridad personalizada) ............................................................................................................... 128 3.7 Uso de RMAN para Realizar Recuperaciones Valores de Recuperación ............................... 130 3.8 Uso de RMAN para Duplicar una Base de Datos ................................................................... 134 3.9 Realización de una Recuperación Point-in-Time de Tablespaces .......................................... 144 3.10 Control y Ajuste de RMAN (Creación de un catálogo) ........................................................ 145 3.11 Uso de la Tecnología de Flashback ...................................................................................... 148 3.12 Uso de Flashback de Base de Datos ..................................................................................... 149 3.13 Diagnóstico de la Base de Datos (ADDM) ........................................................................... 154 3.14 Gestión de la Memoria Administración Automática de Memoria ........................................ 157 3.15 Gestión del Rendimiento de la Base de Datos ...................................................................... 159 3.16 Uso del Asesor de Segmentos ............................................................................................... 167 3.17 Gestión de Recursos .............................................................................................................. 172 3.18 Automatización de Tareas con el Planificador (Oracle Scheduler) ...................................... 177 3.19 Administración del Planificador ........................................................................................... 178 3.20 Globalización ........................................................................................................................ 182

GLOSARIO ...................................................................................................................................... 184 LINKS ............................................................................................................................................... 187 BIBLIOGRAFIA .............................................................................................................................. 188

Curso de Oracle 11g

4

1. INTRODUCCIÓN A ORACLE 11g: SQL

1.1 Introducción

La versión de Oracle que tratremos en ete manual corresponde a la 11g R1, es un DBMS portable ya que se puede instalar en los sistemas operativos más comunes en el mercado, la capacidad de base de datos (en adelante BBDD) es alta ya que soporta hasta 4 petabytes de información. Cuenta con administración de usuarios así como la administración de roles, además de soportar trigers y storeprocedures, cuenta con conectividad JDBC y ODBC, disponiendo de los drivers adecuados para la misma. Es un DBMS muy seguro ya que cuenta con un proceso de sistema de respaldo y recuperación de información. Soportando Data Warehouse, lo que facilita el acceso a la información y una mayor versatilidad.

Oracle es un sistema de gestión de base de datos relacional o RDBMS por el acrónimo en inglés de Relational Data Base Management System, desarrollado por Oracle y considerado como uno de los sistemas de BBDD más completos, destacando en:

• Soporte de transacciones.

• Estabilidad.

• Escalabilidad.

• Soporte multiplataforma.

La base de datos Oracle en Windows ha ido evolucionado desde un nivel básico de integración del sistema operativo hasta utilizar servicios más avanzados en la plataforma Windows, incluyendo los sistemas Itanium y AMD64.

Para el desarrollo de aplicaciones en Oracle se necesita PL/SQL, store procedures y SQL. Si bien, PL/SQL es un lenguaje de programación incrustado en Oracle, que soporta consultas y manipulación de datos que se usan en SQL (lenguaje declarativo, que permite realizar ciertas operaciones en las bases de datos).

Ahora veremos algunos aspectos, procedimientos, operadores, funciones, etc., de SQL para utilizarlos con Oracle 11g.

Curso de Oracle 11g

5

1.2 Recuperación de Datos mediante la Sentencia SQL SELECT

Posiblemente el comando más versátil de SQL es el comando SELECT. Este permite:

• Obtener datos de una tabla

• Obtener registros de una tabla bajo ciertos criterios de selección

• Mezclar datos obtenidos de diferentes tablas.

Su sintaxis es bastante sencilla, veamos un ejemplo y lo comentémoslo:

Caso 1:

/* Selección de todos los registros de la tabla clientes */ SELECT * FROM Clientes;

En este caso, utilizamos el símbolo del asterisco, como carácter “comodin”, para seleccionar todo el contenido de la tabla clientes.

Caso 2:

/* Selección de algunos campos*/ SELECT nombre, apellidos FROM Clientes;

En esta consulta, limitamos los datos a obtener de la tabla “clientes” a meramente obtener el nombre y los apellidos.

Ahora, dado el tipo de consulta que queremos realizar y dado que se puede dar el caso de obtener valores duplicados, podríamos utilizar el parámetro “DISTINCT”, que hace que no se muestren los valores duplicados, quedando por tanto la consulta de la siguiente forma:

/* Selección de algunos campos*/ SELECT {[DISTINCT] nombre, apellidos} FROM Clientes;

De igual forma, además de esta “clausula”, podemos añadir otros elementos a nuestra consulta para mostrar los datos de una forma más adecuada, como por ejemplo usando “as”, para renombrar la cabecera de los datos a obtener:

SELECT nombreArt, precio, precio AS "precio con iva" FROM articulos;

De esta forma la cabecera de “precio”, que corresponde al nombre del campo de la tabla “artículos”, lo sustituiremos en nuestra consulta por “precio con iva”, aportando más claridad al usuario de los datos mostrados.

Otro parámetro que podemos tener en cuenta, son los “condicionales”, en SQL, utilizaremos la clausula “where”, de la siguiente forma, por ejemplo:

SELECT nombre,apellidos FROM clientes WHERE edad>=25 AND edad<=30;

Además se pueden usar otro tipo de valores de comparación, lógicos, etc. Esto lo veremos en el siguiente subcapítulo, “Restricciones y Ordenación de datos”.

Curso de Oracle 11g

6

1.3 Restricción y Ordenación de Datos Restricción

Como vimos en anteriormente, se pueden realizar consultas que restrinjan los datos obtenidos de una consulta. Para ello utilizaremos la cláusula WHERE. Esta cláusula permite especificar una condición que deben cumplir todos los registros y los que no la cumplan deben aparecer en el resultado de la misma.

SELECT nombre,apellidos FROM clientes WHERE edad>=25 AND edad<=30;

Se pueden utilizar en la cláusula WHERE, son:

• > Mayor que

• < Menor que

• >= Mayor o igual que

• <= Menor o igual que

• = Igual

• <> Distinto

• != Distinto

Estos operadores, se pueden utilizar tanto para comparar:

• Números

• Textos

• Fechas

Además para el caso de los textos, la comparación se hace en un estricto orden alfabético. Es decir en el orden de los caracteres de la tabla de códigos. Si bien se deben tener en cuenta una serie de premisas, ya que en estos casos la ordenación puede fallar:

• Con la letra Ñ

• Las vocales acentuadas

• Las mayúsculas según la tabla de códigos, van antes que las minúsculas, siendo la letra 'Z' menor que la 'a'.

Valores lógicos:

AND: Devuelve verdadero si las expresiones a su izquierda y derecha son verdaderas OR: Devuelve verdadero si cualquiera de las expresiones a izquierda y derecha son verdaderas NOT: Invierte la lógica de la expresión de su derecha. Si es verdadera, mediante NOT pasa a falso.

Por ejemplo:

/* Obtiene a las personas de entre 25 y 30 años SELECT nombre,apellidos FROM personas WHERE edad>=25 AND edad<=30;

/*Obtiene a la gente de más de 60 años o de menos de 20 SELECT nombre,apellidos FROM personas WHERE edad>60 OR edad<20;

Curso de Oracle 11g

7

Además en SQL, existen otros comandos que nos permiten restringir y ordenar aun más la consulta, como por ejemplo:

• BETWEEN: El operador BETWEEN nos permite obtener datos que se encuentren en un rango.

SELECT tipo,modelo,precio FROM piezas WHERE precio BETWEEN 3 AND 8;

Saca piezas cuyos precios estén entre 3 y 8 (ambos incluidos).

• IN: Permite obtener registros cuyos valores estén en una lista:

SELECT tipo,modelo,precio FROM piezas WHERE precio IN (3,5, 8);

Obtiene piezas cuyos precios sea 3, 5 u 8, sólo uno de esos tres.

• LIKE: Se usa sobre todo con textos, permite obtener registros cuyo valor en un campo cumpla una condición textual. LIKE utiliza una cadena que puede contener estos símbolos:

% Una serie cualquiera de caracteres

_ Un carácter cualquiera Ejemplos:

Selecciona los nombres que comienzan por la letra “S”:

SELECT nombre FROM personas WHERE nombre LIKE 'S%';

Selecciona las personas cuyo apellido sea “Gil”, o cualquier variación en la letra “a”:

SELECT apellido1 FROM Personas WHERE apellido1 LIKE 'G_l;

• IS NULL: Devuelve verdadero o true si una expresión contiene un nulo:

SELECT nombre,apellidos FROM personas WHERE dni IS NULL

Con esta consulta seleccionamos a la gente que no tiene dni

A veces, las consultas que se realizan en una consulta SELECT son muy extensas y es muy difícil saber cuál de las condiciones se evalúa primero, veamos:

Orden de según el Operador:

1. *(Multiplicación) / (división)

2. + (Suma) - (Resta)

3. || (Concatenación)

4. Comparadores (>, <, !=, ...)

5. IS [NOT] NULL, [NOT ]LIKE, IN

6. NOT

7. AND 8. OR

Curso de Oracle 11g

8

Ordenación

El orden inicial de los registros obtenidos de una consulta (SELECT), guarda solo una relación respecto al orden en el que fueron introducidos en la BBDD. Para ordenar con otros criterios, se utiliza la cláusula ORDER BY.

En esta cláusula se coloca una lista de campos que indican la forma de ordenación. Siendo este orden, el primer campo de la esa lista, en el caso de que existieran coincidencias por el segundo y si ahí también las hubiese, por el tercero, y así sucesivamente.

Además, se pueden utilizar las palabras ASC (ascendente) O DESC (descendente), aunque por defecto se colocaran en orden ASC.

Por lo tanto la sintaxis completa de nuestro SELECT, seria:

SELECT expresiones FROM table [WHERE condición] ORDER BY listaCampos;

Veamos un ejemplo:

SELECT nombre, apellidos FROM usuarios [WHERE nombre =’Oscar’] ORDER BY ASC;

Curso de Oracle 11g

9

1.4 Uso de Funciones de Una Sola Fila para Personalizar la Salida

Oracle incorpora unas funciones que permiten realizar cálculos avanzados, o facilitar la escritura de ciertas expresiones. Todas las funciones reciben datos para poder operar (parámetros) y por tanto, devuelven un resultado que depende de los parámetros enviados a la función. Estos argumentos o parámetros se pasan entre paréntesis:

nombreFunción[(parámetro1[, parámetro2,...])]

Si no precisamos parámetros, no hace falta colocar los paréntesis. Y las hay de dos tipos; Funnciones que operan con una sola fila y funciones que operan con varias filas. En este capítulo sólo veremos las primeras.

1.4.1. Funciones de caracteres

Estas funciones se utilizan para la conversión del texto a mayúsculas y minúsculas:

• LOWER(texto): Convierte el texto a minúsculas

• UPPER(texto): Convierte el texto a mayúsculas

• INITCAP(texto): Coloca la primera letra de cada palabra en mayúsculas

1.4.2. Funciones de transformación

• RTRIM(texto): Elimina los espacios a la derecha del texto

• LTRIM(texto): Elimina los espacios a la izquierda del texto

• TRIM(texto): Elimina los espacios en blanco a la izquierda y derecha del texto, junto con los espacios dobles del interior.

• TRIM(caracteres FROM texto): Elimina del texto los caracteres indicados. Por ejemplo:

TRIM('s' FROM nombre)

Elimina las “eses” de la columna nombre.

• SUBSTR(texto,n[,m]): Obtiene los m siguientes caracteres del texto a partir de la posición n, si m no se define, se cogen desde n hasta el final.

• LENGTH(texto): Obtiene la longitud del texto

• INSTR(texto, textoBuscado [,posInicial [, numAparición]]): Obtiene la posición en la que se encuentra el texto buscado. Pudiendo empezar a buscar a partir de una posición concreta e incluso indicar el número de aparición. Por ejemplo, si buscamos la letra a y ponemos 2 en numAparición, nos devuelve la posición de la segunda letra a encontrada. Si no la encontrase, nos devolvería 0.

• REPLACE(texto, textoInicial, textoReemplazo): Busca el texto inicial y lo remplaza por el indicado.

• LPAD(texto, anchuraMáxima, caracterDeRelleno) y RPAD(texto, anchuraMáxima, caracterDeRelleno): Rellena el texto a la izquierda (LPAD) o a la derecha (RPAD) con el carácter indicado, ocupando así la anchura indicada. Si el texto es más grande que la anchura indicada, este se recorta.

Curso de Oracle 11g

10

1.4.3. Funciones numéricas

De redondeo:

• ROUND(n,decimales): Redondea los decimales del número al siguiente número indicado más cercano. ROUND(8.239,2) devuelve 8.3

• TRUNC(n,decimales): Sólo aparecerán el número de decimales n indicados.

• FLOOR(n): Obtiene el entero más grande o igual que n

• CEIL(n): Por el contrario nos da el entero más pequeño o igual que n

Matemáticas

• MOD(n1,n2): Devuelve el resto resultado de dividir n1 entre n2

• POWER(valor,exponente): Eleva el valor al exponente indicado

• SQRT(n): Calcula la raíz cuadrada de n

• SIGN(n): Devuelve 1 si n es positivo, cero si vale cero y -1 si es negativo

• ABS(n): Calcula el valor absoluto de n

• EXP(n): Calcula el exponente, es decir en base e del número n

• LN(n): Logaritmo neperiano de n

• LOG(n): Logaritmo en base 10 de n

• SIN(n): Calcula el seno de n (n tiene que estar en radianes)

• COS(n): Calcula el coseno de n (n tiene que estar en radianes)

• TAN(n): Calcula la tangente de n (n tiene que estar en radianes)

• ACOS(n): Devuelve en radianes el arco coseno de n

• ASIN(n): Devuelve en radianes el arco seno de n

• ATAN(n): Devuelve en radianes el arco tangente de n

• SINH(n): Devuelve el seno hiperbólico de n

• COSH(n): Devuelve el coseno hiperbólico de n

• TANH(n): Devuelve la tangente hiperbólica de n

Otras

• BITAND(n1,n2): Realiza una operación AND de bits sobre los valores n1 y n2 que tienen que ser enteros sin signo dando como resultado también un entero.

• VSIZE(valor): Tamaño en bytes que utiliza Oracle en almacenar ese valor.

Funciones de trabajo con nulos

Permiten definir valores a utilizar en el caso de que las expresiones tomen el valor nulo.

• NVL(valor,sustituto): Si el valor es NULL, devuelve el valor sustituto; si no, devuelve valor.

Curso de Oracle 11g

11

• NVL2(valor,sustituto1, sustituto2): Variante de la anterior, solo que devuelve el valor sustituto1 si valor no es nulo. Si valor es nulo devuelve el sustituto2

• NULLIF(valor1,valor2): Devuelve nulo si el valor1 y el valor2 son iguales. En el caso de que no lo sean devuelve el valor1

• COALESCE(valor1,valor2 [,valor3...]): Devuelve el valor1 si no es nulo; si lo es devuelve el valor2 si este a su vez no es nulo. Si ambos son nulos, devuelve el tres si no es nulo, y así sucesivamente

1.4.4. Funciones de fecha

Las fechas se utilizan muchísimo en todas las bases de datos. Oracle proporciona dos tipos de datos para manejar fechas, los tipos DATE y TIMESTAMP.

• DATE: Almacena una fecha concreta (que puede contener la hora).

• TIMESTAMP: Almacena un instante de tiempo más concreto que puede llegar a incluir fracciones de segundo.

Hay que tener en cuenta que a los valores de tipo fecha se les pueden sumar números, entendiendo que esta suma es de días. Si tiene decimales se suman días, horas, minutos y segundos.

Intervalos

Los intervalos son datos relacionados con fechas, pero que no lo son. Hay dos tipos de intervalos:

• INTERVAL DAY TO SECOND: que sirve para representar días, horas, minutos y segundos

• INTERVAL YEAR TO MONTH: que representa años y meses.

Para obtener la fecha y hora actual

• SYSDATE: La fecha y hora actuales

• SYSTIMESTAMP: Obtiene la fecha y hora actuales en formato

• TIMESTAMP DBTIMEZONE: Devuelve la zona horaria actual

• CURRENT_DATE: Obtiene la fecha y hora actuales e incluye la zona horaria

• CURRENT_TIMESTAMP: Obtiene la fecha y hora actuales en formato TIMESTAMP e incluye la zona horaria calcular fechas.

Calcular fechas

• ADDMONTHS(fecha,n): Añade a la fecha el número de meses indicado por n

• MONTHS_BETWEEN(fecha1, fecha2): Obtiene la diferencia en meses entre las dos fechas (puede ser decimal)

• NEXT_DAY(fecha,día): Indica cual es el día que corresponde a añadir a la fecha el día indicado. El día puede ser el texto 'Lunes', 'Martes', 'Miércoles',... (si la configuración está en español) o el número de día de la semana (1=lunes, 2=martes,...)

• LAST_DAY(fecha): Obtiene el último día del mes al que pertenece la fecha, devolviendo un valor DATE.

Curso de Oracle 11g

12

• EXTRACT(valor FROM fecha): Extrae un valor de una fecha concreta. El valor puede ser day (día), month (mes), year (año), etc.

• GREATEST(fecha1, fecha2,..): Devuelve la fecha más moderna la lista.

• LEAST(fecha1, fecha2,..): Devuelve la fecha más antigua la lista.

• ROUND(fecha [,'formato']: Redondea la fecha al valor a aplicar en el formato a la fecha. El formato puede ser:

-'YEAR' Año completo

-'MONTH' Mes completo más cercano a la fecha

-'HH24' Redondea la hora a las 00:00 más cercanas

-'DAY’ Dia

• TRUNC(fecha [formato]): Igual que el anterior pero trunca la fecha en lugar de redondearla.

Curso de Oracle 11g

13

1.5 Uso de Funciones de Conversión y Expresiones Condicionales

1.5.1 Funciones de conversión

Oracle puede convertir datos automáticamente para que la expresión final tenga sentido. Las más sencillas son las conversiones de texto a número y viceversa. Por ejemplo:

SELECT 5+'3' FROM DUAL /*El resultado es 8 */

SELECT 5 || '3' FROM DUAL /* El resultado es 53 */

También se realiza con la conversión de textos a fechas. De hecho es una de las formas más habituales de asignar fechas.

TO_CHAR

Obtiene un texto a partir de un número o una fecha. Se utiliza especialmente con fechas.

Fechas

En el caso de las fechas, el formato de conversión, es una cadena que puede incluir estos símbolos:

• YY: Año en formato de dos cifras o YYYY: Año en formato de cuatro cifras

• MM: Mes en formato de dos cifras

• MON: Las tres primeras letras del mes

• MONTH: Nombre completo del mes

• DY: Día de la semana en tres letras DAY: Día completo de la semana DD: Día en formato de dos cifras

• D: Día de la semana (del 1 al 7) DDD: Día del año

• Q: Semestre o WW: Semana del año

• AD y A.D.: Indicador de periodo Anno Domini (después de Cristo)

• BC y B.C.: Indicador de periodo. Aparecen fechas anteriores al año cero (en español AC)

• J: Año juliano

• RN: Método Romano de numeración

• AM: Indicador AM o PM: Indicador PM

• HH12: Hora de 1 a 12 o HH24: Hora de 0 a 23

• MI: Minutos (0 a 59)

• SS: Segundos (0 a 59) o SSSS: Segundos desde medianoche

• / . , Posición de los separadores

Por ejemplo:

SELECT TO_CHAR(SYSDATE, 'DD/MONTH/YYYY, DAY HH:MI:SS') FROM DUAL

Esto nos daría: 13/SEPTIEMBRE/2010, LUNES 16:00:00, por ejemplo

Curso de Oracle 11g

14

Números

Se utiliza para convertir números a textos, cuando se desean características especiales. En ese caso en el formato se pueden utilizar estos símbolos:

9 -Posición del número

0 -Posición del número, mostrando los ceros

S -En esa posición se coloca el signo del número, tanto si es negativo como si es positivo.

$ -Formato dólar

L -Símbolo local de la moneda

C -Símbolo internacional de moneda

D -Posición del símbolo decimal, en español, la coma

G -Posición del separador de grupo, en español el punto

RN -Numeración romana en mayúsculas

Rn -Numeración romana en minúsculas

PR -Se muestran los negativos entre símbolos < y >

. - Separador internacional del decimal

, - Separador internacional del separador de miles

TO_NUMBER

Convierte textos en números. Se debe indicar el formato de la conversión, utilizando los mismos símbolos comentados anteriormente.

TO_DATE

Convierte textos en fechas. Como segundo parámetro se debe indicar el formato de la conversión, usando igualmente los símbolos comentados anteriormente.

1.5.2 Funciones condicionales

Instrucción CASE

Es una instrucción que permite establecer condiciones de salida (parecido a if-then-else de otros lenguajes). Su sintaxis es:

CASE expresión WHEN valor1 THEN resultado1 [ WHEN valor2 THEN resultado2 .... ... ELSE resultadoElse ]

END

Su funcionamiento es muy sencillo, pasamos a explicarlo a continuación:

1. Primero se evalúa la expresión

2. Si esa expresión es igual al valor1 del primer WHEN, devuelve el primer resultado, este puede ser cualquier valor excepto nulo.

Curso de Oracle 11g

15

3. Si la expresión no es igual al valor1, entonces se comprueba si es igual que el valor2. De no ser así se continúa con el siguiente WHEN y así sucesivamente.

4. El resultado que indiquemos en el ELSE sólo se escribe si no coincide ninguno de los valores.

Por ejemplo:

SELECT CASE cotizacion WHEN caso1 THEN salario *1

WHEN caso2 THEN salario *2 WHEN caso3 THEN salario *3 ELSE salario

END FROM empleados;

Función DECODE

Similar a la instrucción CASE pero siendo esta una función. Se evalúa una expresión y se colocan a continuación los pares valor, es decir:

Si se la expresión equivale al valor, se obtiene el resultado indicado.

Se puede indicar un último parámetro con el resultado a efectuar en caso de no encontrar ninguno de los valores indicados en la expresión siendo este parámetro similar al ELSE del CASE. Si sintaxis es:

DECODE(expresión, valor1, resultado1 [,valor2, resultado2,...] [,valorPordefecto])

Utilizaremos este ejemplo a fin de poder comparar este ejemplo con el de la instrucción CASE:

SELECT DECODE(cotizacion,1, salario*1, 2, salario *2, 3, salario *3, salario) FROM empleados;

Curso de Oracle 11g

16

1.6 Informes de Datos Agregados con Funciones de Grupo

Es muy común utilizar consultas en las que se desee agrupar los datos a fin de realizar cálculos. Para ello se utiliza GROUP BY que permite indicar en base a qué registros se realiza la agrupación, de forma que el SELECT queda:

SELECT listaExpresiones FROM listaTablas [JOIN tablasRelacionadasYCondiciones] [WHERE condiciones] [GROUP BY grupos] [HAVING condiciones de grupo] [ORDER BY columnas];

En el apartado GROUP BY, se indican las columnas por las que se agrupa. La función de este apartado es crear un único registro por cada valor distinto en las columnas del grupo.

Por ejemplo agrupando en base a las columnas tipo y modelo en una tabla de vehiculos, se creará un único registro por cada tipo y modelo distintos:

SELECT tipo,modelo

FROM vehiculos

GROUP BY tipo,modelo;

Si la tabla de existencias sin “GROUP BY tipo, modelo”:

TIPO MODELO TODOTERRENO EXPLORER DEPORTIVO ASTON MARTIN TODOTERRENO EXPLORER TODOTERRENO EXPLORER DEPORTIVO ASTON MARTIN DEPORTIVO ASTON MARTIN TODOTERRENO EXPLORER DEPORTIVO EXPLORER DEPORTIVO ASTON MARTIN MONOVOLUMEN ESPACE

La consulta con “GROUP BY tipo,modelo”:

TIPO MODELO TODOTERRENO EXPLORER DEPORTIVO ASTON MARTIN MONOVOLUMEN ESPACE

Es decir es un resumen de los datos anteriores.

Curso de Oracle 11g

17

1.6.1 Funciones de cálculo con grupos

Lo interesante de la creación de grupos son las posibilidades de cálculo que ofrece. Para ello se utilizan funciones que permiten trabajar con los registros de un grupo son:

COUNT(*): Cuenta los elementos. Con el asterisco no hay que indicar el nombre de la columna

SUM(expresión): Suma los valores de la expresión

AVG(expresión): Calcula la media aritmética

MIN(expresión): Mínimo valor de la expresión indicada

MAX(expresión): Máximo valor de la expresión indicada

STDDEV(expresión): Calcula la desviación estándar

VARIANCE(expresión): Calcula la varianza

1.6.2 Condiciones HAVING

A veces se desea restringir el resultado de una expresión agrupada, por ejemplo con:

SELECT tipo,modelo, cantidad, SUM(Cantidad) FROM existencias WHERE SUM(Cantidad)>500 GROUP BY tipo,modelo;

Pero devuelve un error, la razón es que Oracle calcula primero el WHERE y luego los grupos. Y en esta condición no se puede realizar al no estar establecidos los grupos. Para realizar este tipo de consultas se utiliza la cláusula HAVING, que se efectúa una vez realizados los grupos de esta forma:

SELECT tipo,modelo, cantidad, SUM(Cantidad) FROM existencias GROUP BY tipo,modelo HAVING SUM(Cantidad)>500;

Eso no implica que no se pueda usar WHERE:

SELECT tipo,modelo, cantidad, SUM(Cantidad) FROM existencias WHERE tipo!='AR' GROUP BY tipo,modelo HAVING SUM(Cantidad)>500;

En definitiva, el orden de ejecución de la consulta marca lo que se puede utilizar con WHERE y lo que se puede utilizar con HAVING.

Curso de Oracle 11g

18

1.7 Visualización de Datos de Varias Tablas

Es normal necesitar una consulta de datos que se encuentran distribuidos en varias tablas. Las bases de datos relacionales se basan en que los datos se distribuyen en tablas y estas se pueden relacionar entre sí, mediante un campo que permite integrar los datos de las tablas.

Por ejemplo si disponemos de una tabla de usuarios cuya clave es el dni y otra tabla de tareas que se refiere a tareas realizadas por los usuarios, lo normal sería que en la tabla de tareas aparecerá el dni del usuario que realizó la tarea.

Producto cruzado o cartesiano de tablas

En el ejemplo que ponemos a continuación se quiere obtener una lista de los datos de las tareas y los usuarios, realizándose de la siguiente forma:

SELECT cod_tarea, descripcion_tarea, dni_usuarios, nombre_usuarios FROM tareas, usuarios;

La sintaxis es correcta ya que en el apartado FROM se pueden indicar varias tareas separadas por comas. Pero eso produce un vínculo cruzado, aparecerán todos los registros de las tareas relacionados con todos los registros de empleados.

Este tipo de consulta es útil para realizar consultas complejas, pero en el caso de consultas simples no lo es. Necesitamos discriminar esa información para que sólo aparezcan los registros de las tareas relacionadas con sus empleados correspondientes. A eso se le llama: asociar (join) tablas.

La forma de realizar correctamente la consulta anterior, es decir asociando las tareas con los empleados que la realizaron, sería:

SELECT cod_tarea, descripcion_tarea, dni_usuarios, nombre_usuarios FROM tareas,usuarios WHERE tareas.dni_usuarios= usuarios.dni;

IMPORTANTE: Véase que se utiliza tabla.columna para evitar la ambigüedad, ya que el mismo nombre de campo se puede repetir en ambas tablas.

A las relaciones descritas anteriormente se las llama relaciones en igualdad (equijoins), ya que las tablas se relacionan a través de campos que contienen valores iguales en ambas.

CROSS JOIN

Utilizando la opción CROSS JOIN se realiza un producto cruzado entre las tablas indicadas.

NATURAL JOIN

Establece una relación de igualdad entre las tablas a través de los campos que tengan el mismo nombre en ambas:

SELECT * FROM piezas NATURAL JOIN existencias;

En el ejemplo anterior se obtienen los registros de piezas relacionados en existencias a través de los campos que tengan el mismo nombre en ambas tablas.

Curso de Oracle 11g

19

JOIN USING

Permite establecer relaciones indicando qué campo/s común a las dos tablas hay que utilizar:

SELECT * FROM piezas JOIN existencias USING(tipo,modelo); JOIN ON

Permite establecer relaciones cuya condición se establece manualmente, lo que permite realizar asociaciones más complejas o asociaciones cuyos campos en las tablas no tienen el mismo nombre.

SELECT * FROM piezas JOIN existencias ON(piezas.tipo=existencias.tipo AND piezas.modelo=existencias.modelo);

Relaciones externas

La última posibilidad es obtener relaciones laterales o externas (outer join). Su sintaxis es:

SELECT * FROM piezas LEFT OUTER JOIN existencias ON(piezas.tipo=existencias.tipo AND piezas.modelo=existencias.modelo);

En este consulta además de las relacionadas, aparecen las piezas no relacionadas en existencias. Si el LEFT lo cambiamos por un RIGHT, aparecerán las existencias no presentes en piezas.

La condición FULL OUTER JOIN produce un resultado en el que aparecen los registros no relacionados de ambas tablas.

Curso de Oracle 11g

20

1.8 Las Subconsultas

Se trata de un sistema que permite utilizar el resultado de una tabla SELECT en otra consulta SELECT. Solucionando problemas en los que el mismo dato aparece dos veces. La sintaxis es:

SELECT listaExpresiones FROM tabla WHERE expresión operador (SELECT listaExpresiones FROM tabla);

Se puede colocar el SELECT dentro de las cláusulas WHERE, HAVING o FROM. El operador puede ser >,<,>=,<=,!=, = o IN. Ejemplo:

SELECT nombre_empleado, paga FROM empleados WHERE paga < (SELECT paga FROM empleados WHERE nombre_empleado='Martina');

Lógicamente el resultado de la subconsulta debe incluir el campo que estamos analizando. Se pueden realizar subconsultas tantas veces como haga falta:

SELECT nombre_empleado, paga FROM empleados WHERE paga < (SELECT paga FROM empleados WHERE nombre_empleado='Martina') AND paga > (SELECT paga FROM empleados WHERE nombre_empleado='Luis');

En esta consulta obtenemos los empleados cuyas pagas están entre lo que ganan Luis y Martina.

Una subconsulta que utilice valores >,<,>=,... tiene que devolver un único valor, si no produce un error.

La subconsulta necesaria para ese resultado mostraría los sueldos del departamento de ventas. Pero no podremos utilizar un operador de comparación directamente ya que compararíamos un valor contra muchos. La solución es utilizar instrucciones especiales entre operador y consulta. Esas son:

ANY: Compara con cualquier registro de la consulta. La instrucción es válida si hay un registro en la subconsulta que permite que la comparación sea cierta

ALL: Compara con todos los registros de la consulta. La instrucción resulta cierta si es cierta toda comparación con los registros de la subconsulta

IN: No usa comparador, ya que sirve para comprobar si un valor se encuentra en el resultado de la subconsulta

NOT IN: Comprueba si un valor no se encuentra en una Subconsulta

Por ejemplo:

SELECT nombre, sueldo FROM empleados WHERE sueldo >= ALL (SELECT sueldo FROM empleados)

Esa consulta obtiene el empleado que más cobra. Otro ejemplo:

SELECT nombre FROM empleados WHERE dni IN (SELECT dni FROM directivos)

En ese caso se obtienen los nombres de los empleados cuyos dni están en la tabla de directivos.

Curso de Oracle 11g

21

1.9 Uso de los Operadores SET

Este comando permite cambiar el valor de las variables de entorno del programa. Su uso es:

SET nombreVariable valor

Las variables más interesantes a utilizar son:

VARIABLE VALORES EXPLICACIÓN ECHO ON (activado) y

OFF (desactivado) Repite el comando SQL antes de mostrar su resultado

TIMING ON (activado) y OFF (desactivado)

Permite mostrar estadísticas sobre el tiempo de ejecución en cada consulta SQL que se ejecute

HEADING ON (activado) y OFF (desactivado)

Hace que el encabezado con los alias de las columnas se active o no

WRAP ON (activado) y OFF (desactivado)

Activado, trunca un texto si sobrepasa la anchura máxima.

COMPATIBILITY V7, V8, NATIVE Permite indicar la versión con la que se comprueba la compatibilidad de los comandos. NATIVE indica que el propio servidor Oracle decide la compatibilidad

DEFINE &, carácter, ON (activado) y OFF (desactivado)

Permite activar y desactivar la posibilidad de usar variables de sustitución. Indicando el carácter utilizado para la sustitución de variables

PAGESIZE n Indica el número de filas que se muestran antes de repetir el encabezado de la consulta

LINESIZE n Indica la anchura máxima de la línea de la consulta. Si una línea de la consulta sobrepasa este valor, los datos pasan a la siguiente. También influye sobre los tamaños y posiciones de los encabezados y pies de los informes

NULL valor Indica qué valor se muestra cuando hay nulos NUMFORMAT formato Permite especificar un formato que se aplicará a

todos los números. NUMWIDTH valor Indica la anchura máxima utilizada para mostrar

números. Si un número sobrepasa esta anchura, es redondeado

FEEDBACK n, ON (activado) y OFF (desactivado)

Hace que se muestren el número total de registros de la consulta cuando el resultado supera los n registros.

LONG ancho Anchura máxima para los campos de tipo LONG

SHOW

El comando SHOW seguido del nombre de uno de los parámetros de la tabla anterior, permite mostrar el estado actual del parámetro indicado. Si se usa SHOW ALL, se muestran todos.

Curso de Oracle 11g

22

1.10 Manipulación de Datos

Es una de las partes fundamentales de SQL. El DML (Data Manipulation Language) lo forman instrucciones capaces de modificar los datos de las tablas. El conjunto de instrucciones DML que se ejecutan consecutivamente, son las transacciones y se pueden anular o aceptar, ya que esta instrucción no se efectúa hasta que no se realiza el commit. En estas consultas, el dato devuelto por Oracle es el número de registros modificados.

Inserción de datos

La adición de datos a una tabla se realiza mediante la instrucción INSERT. Su sintaxis es:

INSERT INTO tabla [(listaDeCampos)] VALUES (valor1 [,valor2 ...])

La tabla representa la tabla a la que queremos añadir el registro y los valores que siguen a VALUES son los valores que damos a insertar. Si no se especifica la lista de campos, la lista de valores debe seguir el orden de las columnas según fueron creados (este orden lo devuelve el comando DESCRIBE).

La lista de campos a rellenar se indica si no queremos rellenar todos los campos. Los campos no rellenados explícitamente con la orden INSERT, se rellenan con su valor por defecto (DEFAULT) o bien con NULL si no se indicó valor alguno. Si algún campo tiene restricción de tipo NOT NULL, da un error.

Relleno de registros a partir de filas de una consulta

La consulta de adición de datos, permite rellenar datos de una tabla copiando el resultado de una consulta. Esto es una consulta SELECT que posee los datos a añadir. Ejemplo de su sintaxis:

INSERT INTO tabla (campos…) SELECT campoCompatible1, campoCompatible2 FROM tabla(s)

Ejemplo:

INSERT INTO clientes2004 (dni, nombre) SELECT dni, nombre FROM clientes;

Actualización de registros

La modificación de los datos de los registros lo implementa la instrucción UPDATE. Su sintaxis es:

UPDATE tabla SET columna1=valor1 [,columna2=valor2...] [WHERE condición]

Se modifican las columnas indicadas en el apartado SET con los valores indicados. La cláusula WHERE permite especificar qué registros serán modificados. Por ejemplo:

UPDATE clientes SET provincia='Ourense' WHERE provincia='Orense';

El primer dato actualiza la provincia de los clientes de Orense para que aparezca como Ourense. Hay que tener en cuenta que las actualizaciones no pueden saltarse las reglas de integridad de las tablas.

Borrado de registros

Se realiza mediante la instrucción DELETE:

DELETE [FROM] table [WHERE condición]

Curso de Oracle 11g

23

Ejemplo:

DELETE FROM empleados WHERE seccion=23;

Hay que tener en cuenta que el borrado de un registro no puede provocar fallos de integridad y que la opción de integridad ON DELETE CASCADE hace que se borren los todos registros relacionados.

Comando MERGE

Este comando sirve para actualizar los valores de los registros de una tabla a partir de valores de registros de otra tabla o consulta. Permite combinar los datos de dos tablas a fin de actualizar la primera.

La sintaxis del comando MERGE es:

MERGE INTO tabla alias USING (instrucción SELECT) alias ON (condiciónUnión) WHEN MATCHED THEN UPDATE SET col1=valor1 [col2=valor2] WHEN NOT MATCHED THEN INSERT (listaDeColumnas) VALUES (listaDeValores)

MERGE compara registros de ambas tablas según la condición indicada en el ON. Compara cada registro de la tabla con cada registro del SELECT. Los apartados de la sintaxis significan lo siguiente:

• tabla es el nombre de la tabla que queremos modificar

• USING. En esa cláusula se indica un SELECT que muestra la tabla que contiene los datos a partir de los cuales se modifica la tabla

• ON. Indica la condición que permite relacionar los registros de la tabla con los del SELECT

• WHEN MATCHED THEN. El UPDATE que sigue a esta parte se ejecuta cuando la condición indicada en el apartado ON sea cierta para los dos registros actuales.

• WHEN NOT MATCHED THEN. El INSERT que sigue se ejecuta para cada registro de la consulta SELECT que no pudo ser relacionado con ningún registro de la tabla.

Para el ejemplo descrito antes la instrucción MERGE sería:

MERGE INTO localidades l USING (SELECT * FROM clientes) ON (l.localidad=clientes.localidad) WHEN MATCHED THEN UPDATE SET l.provincia=c.provincia WHEN NOT MATCHED THEN INSERT (localidad, provincia) VALUES (c.localidad, c.provincia)

El resultado es la siguiente tabla de localidades:

Localidad Provincia

Cigales Valladolid

Palencia Palencia

Aranda de Duero Burgos

Curso de Oracle 11g

24

Transacciones

Como se ha comentado, una transacción está formada por instrucciones DML. Una transacción comienza con la primera instrucción DML que se ejecute y finaliza con alguna de estas circunstancias:

• Una operación COMMIT o ROLLBACK • Una instrucción DDL (como ALTER TABLE por ejemplo) • Una instrucción DCL (como GRANT) • El usuario abandona la sesión • Caída del sistema

Hay que tener en cuenta que cualquier instrucción DDL o DCL da lugar a un COMMIT implícito, es decir todas las instrucciones DML ejecutadas hasta ese instante pasan a ser definitivas.

COMMIT

La instrucción COMMIT hace que los cambios realizados por la transacción sean definitivos e irrevocables. Sólo se debe utilizar si estamos de acuerdo con los cambios. Además el cierre correcto de la sesión da lugar a un COMMIT, aunque siempre conviene ejecutar explícitamente esta instrucción y asegurarnos de lo que hacemos.

ROLLBACK

Esta instrucción regresa a la instrucción anterior al inicio de la transacción, normalmente el último COMMIT, la última instrucción DDL o DCL o al inicio de sesión. Anula definitivamente los cambios, por lo que conviene también asegurarse de esta operación. Un abandono de sesión incorrecto o un problema de comunicación o de caída del sistema dan lugar a un ROLLBACK implícito.

SAVEPOINT

Esta permite establecer un punto de ruptura. El problema de la combinación ROLLBACK/COMMIT es que un COMMIT acepta todo y un ROLLBACK anula todo. SAVEPOINT permite señalar un punto intermedio entre el inicio de la transacción y la situación actual. Su sintaxis es:

...instrucciones... SAVEPOINT nombre

....instrucciones...

Para regresar a un punto de ruptura concreto se utiliza ROLLBACK TO SAVEPOINT seguido del nombre del punto de ruptura.

Estado de los datos durante la transacción

Si se inicia una transacción usando comandos DML hay que tener en cuenta que:

• Se puede volver a la instrucción anterior a la transacción cuando se desee • Los SELECT realizados por el usuario que inició la transacción muestran los datos

modificados. • El resto de usuarios ven los datos tal cual estaban antes de la transacción. Esos usuarios no

podrán modificar los valores de dichos registros.

Tras la transacción todos los usuarios ven los datos tal cual quedan tras el fin de transacción.

Curso de Oracle 11g

25

1.11 Uso de Sentencias DDL para Crear y Gestionar Tablas

Creación de tablas

Los nombres de las tablas, deben cumplir las siguientes reglas:

• Deben comenzar con una letra

• No deben tener más de 30 caracteres

• Sólo se permiten utilizar letras del alfabeto (inglés), números o el signo de subrayado (también el signo $ y #, pero esos se utilizan de manera especial y no son recomendados)

• No puede haber dos tablas con el mismo nombre para el mismo usuario

• No puede coincidir con el nombre de una palabra reservada de Word

CREATE TABLE

Es la orden que permite crear una tabla. Por defecto se almacena en el tablespace por defecto del usuario que crea la tabla. Sintaxis:

CREATE TABLE [esquema.] nombreDeTabla (nombreDeLaColumna1 tipoDeDatos [, ...]);

Ejemplo:

CREATE TABLE proveedores (nombre varchar2(25));

Crea una tabla con un solo campo de tipo varchar2.

Sólo se podrá crear la tabla si el usuario posee los permisos necesarios para ello. Si la tabla pertenece a otro esquema, se antepone al nombre de la tabla, el nombre del esquema:

CREATE TABLE otroUsuario.proveedores (nombre varchar2(25));

DESCRIBE

El comando DESCRIBE, permite obtener la estructura de una tabla. Ejemplo:

DESCRIBE proveedores;

INSERT

Permite añadir datos a las tablas. Su sintaxis básica es:

INSERT INTO tabla [(columna1 [, columna2...])] VALUES (valor1 [,valor2]);

Indicando la tabla se añaden los datos que se especifiquen tras el apartado values en un nuevo registro. Los valores deben corresponderse con el orden de las columnas. Si no es así se puede indicar tras el nombre de la tabla y entre paréntesis. Ejemplo:

INSERT INTO proveedores(nombre, CIF) VALUES (‘Araja SA’,’14244223Y’);

Borrar tablas

La orden DROP TABLE seguida del nombre de una tabla, permite eliminar la tabla. Al borrar una tabla:

Curso de Oracle 11g

26

• Desaparecen todos los datos

• Cualquier vista y sinónimo referente a la tabla seguirán existiendo, pero no funcionarán

• Las transacciones pendientes son aceptadas (COMMIT)

• Sólo es posible realizarlo si es el propietario de la tabla o con el privilegio DROP ANY TABLE

El borrado de una tabla es irreversible, y no hay ninguna petición de confirmación.

Cambiar de nombre

La orden RENAME permite el cambio de nombre de cualquier objeto. Sintaxis:

RENAME nombreViejo TO nombreNuevo

Borrar contenido de tablas

La orden TRUNCATE TABLE seguida del nombre de una tabla, hace que se elimine solo el contenido de la tabla. Incluso borra del archivo de datos el espacio ocupado por la tabla.

La versátil ALTER TABLE permite hacer cambios en la estructura de una tabla.

Añadir columnas

ALTER TABLE nombreTabla ADD(nombreColumna TipoDatos [Propiedades]…

Permite añadir nuevas columnas a la tabla. Se deben indicar su tipo de datos y sus propiedades si es necesario (tipo CREATE TABLE). Las nuevas se añaden al final y no se puede indicar otra posición.

Borrar columnas

ALTER TABLE nombreTabla DROP(columna);

Elimina la columna indicada junto con sus datos.

Modificar columna

Permite cambiar el tipo de datos y propiedades de una determinada columna. Sintaxis:

ALTER TABLE nombreTabla MODIFY(columna tipo [propiedades]

Los cambios que se permiten son:

• Incrementar precisión o anchura de los tipos de datos

• Sólo se puede reducir la anchura, si la anchura máxima del campo de esa columna posee nulos en todos los registros, valores o no hay registros.

• Se puede pasar de CHAR a VARCHAR2 y viceversa, si no se modifica la anchura

• Se puede pasar de DATE a TIMESTAMP y viceversa

Añadir comentarios a las tablas

Se le pueden poner comentarios a las tablas y las columnas. Un comentario es un texto descriptivo utilizado para documentar la tabla. Sintaxis:

Curso de Oracle 11g

27

COMMENT ON { TABLE NombreTabla | COLUMN tabla.nombreColumna } IS ‘Comentario’

Para mostrar los comentarios se usan las vistas del diccionario de datos mediante un SELECT:

• USER_TAB_COMMENTS. Comentarios de las tablas del usuario actual.

• USER_COL_COMMENTS. Comentarios de columnas del usuario actual.

• ALL_TAB_COMMENTS. Comentarios de las tablas de todos los usuarios (sólo administradores)

• ALL_COL_COMMENTS. Comentarios de columnas de todos los usuarios (sólo administradores)

Valor por defecto

A cada columna se le puede asignar un valor por defecto a su creación mediante la propiedad DEFAULT. Se puede poner esta propiedad durante la creación o modificación de la tabla, añadiendo la palabra DEFAULT tras el tipo de datos del campo y detrás el valor que se desea por defecto. Ejemplo:

CREATE TABLE articulo (cod NUMBER(7), nom VARCHAR2(25), precio NUMBER(11,2) DEFAULT 3.5);

Restricciones

Una restricción es una condición de obligado cumplimiento para una o más columnas de la tabla. A cada restricción se le dá un nombre, en caso de no ponerselo entonces el propio Oracle le coloca el nombre que es un mnemotécnico con el nombre de tabla, columna y tipo de restricción. Su sintaxis general es:

{CREATE TABLE nombreTabla | ALTER TABLE nombreTabla {ADD | MODIFY}} (campo tipo [propiedades] [,...] CONSTRAINT nombreRestricción tipoRestricción (columnas)...)

Las restricciones tienen nombre, eero si es Oracle el que se lo asigna, este será críptico.

Los nombres de restricción no se pueden repetir en el mismo esquema, por lo que se debe incluir de el nombre de la tabla, los campos involucrados y el tipo de restricción en el nombre de la misma. Ejemplo; pieza_id_pk, podría indicar que el campo id de la tabla pieza tiene una clave principal (PRIMARY KEY).

Prohibir nulos

La restricción NOT NULL permite prohibir los nulos en una determinada tabla. Eso obliga a que la columna tenga que tener obligatoriamente un valor para que sea almacenado el registro.

Se puede colocar durante la creación o modificación del campo con la palabra NOT NULL tras el tipo:

CREATE TABLE cliente(dni VARCHAR2(9) NOT NULL);

En ese caso el nombre le coloca Oracle. La otra forma (que admite nombre) es:

CREATE TABLE cliente(dni VARCHAR2(9) CONSTRAINT dni_sinnulos NOT NULL(dni));

Curso de Oracle 11g

28

Valores únicos

Las restricciones de tipo UNIQUE obligan a que el contenido de uno o más campos no puedan repetir valores. Nuevamente hay dos formas de colocar esta restricción:

CREATE TABLE cliente(dni VARCHAR2(9) UNIQUE);

En ese caso el nombre de la restricción la coloca el sistema Oracle. Otra forma es:

CREATE TABLE cliente(dni VARCHAR2(9) CONSTRAINT dni_u UNIQUE);

Esta forma permite poner un nombre a la restricción. Si la repetición de valores se refiere a varios campos, la forma sería:

CREATE TABLE alquiler(dni VARCHAR2(9), cod_pelicula NUMBER(5), CONSTRAINT alquiler_uk UNIQUE(dni,cod_pelicula) ;

La coma tras la definición del campo cod_pelicula hace que la restricción sea independiente de ese campo. Eso obliga a que, tras UNIQUE se indique la lista de campos. Los campos UNIQUE son las claves candidatas de la tabla, que habrán sido detectadas en la fase de diseño de la base de datos.

Clave primaria

La clave primaria de una tabla la forman las columnas que indican a cada registro de la misma. La clave primaria hace que los campos que la forman sean NOT NULL (sin posibilidad de quedar vacíos) y que los valores de los campos sean de tipo UNIQUE (sin posibilidad de repetición).

Si la clave está formada por un solo campo basta con:

CREATE TABLE cliente(dni VARCHAR2(9) PRIMARY KEY,nombre VARCHAR(50)) ;

O, poniendo un nombre a la restricción:

CREATE TABLE cliente(dni VARCHAR2(9) CONSTRAINT cliente_pk PRIMARY KEY, nombre VARCHAR(50)) ;

Si la clave la forman más de un campo:

CREATE TABLE alquiler(dni VARCHAR2(9),cod_pelicula NUMBER(5), CONSTRAINT alquiler_pk PRIMARY KEY(dni,cod_pelicula) ;

Clave secundaria o foránea

Una clave secundaria o foránea, son uno o más campos de una tabla que están relacionados con la clave principal de los campos de otra tabla. La forma de indicar una clave foránea es:

CREATE TABLE alquiler(dni VARCHAR2(9), cod_pelicula NUMBER(5), CONSTRAINT alquiler_pk PRIMARY KEY(dni,cod_pelicula), CONSTRAINT dni_fk FOREIGN KEY (dni) REFERENCES clientes(dni), CONSTRAINT pelicula_fk FOREIGN KEY (cod_pelicula) REFERENCES peliculas(cod));

Esta completa forma de crear la tabla alquiler incluye sus claves foráneas, el campo dni hace referencia al campo dni de la tabla clientes y el campo cod_pelicula que hace referencia al campo cod de la tabla peliculas. También hubiera bastado con indicar sólo la tabla a la que hacemos

Curso de Oracle 11g

29

referencia, si no se indican los campos relacionados de esa tabla, se toma su clave principal (que es lo normal).

Esto forma una relación entre dichas tablas, que obliga al cumplimiento de la integridad referencial. Esta integridad obliga a que cualquier dni incluido en la tabla alquiler tenga que estar obligatoriamente en la tabla de clientes. De no ser así el registro no será insertado en la tabla (ocurrirá un error).

Otra forma de crear claves foráneas (sólo válida para claves de un solo campo) es:

CREATE TABLE alquiler(dni VARCHAR2(9) CONSTRAINT dni_fk REFERENCES clientes(dni),cod_pelicula NUMBER(5) CONSTRAINT pelicula_fk REFERENCES peliculas(cod) CONSTRAINT alquiler_pk PRIMARY KEY(dni,cod_pelicu ));

Esta definición es idéntica a la anterior, sólo que no hace falta colocar el texto FOREIGN KEY.

La integridad referencial es una herramienta imprescindible de las bases de datos relacionales. Pero provoca varios problemas. Por ejemplo, si borramos un registro en la tabla principal que está relacionado con uno o varios de la secundaria ocurrirá un error, ya que de permitírsenos borrar el registro ocurrirá fallo de integridad (habrá claves secundarios refiriéndose a una clave principal que ya no existe).

Por ello Oracle nos ofrece dos soluciones a añadir tras la cláusula REFERENCES:

• ON DELETE SET NULL. Coloca nulos a todas las claves secundarias relacionadas con la borrada.

• ON DELETE CASCADE. Borra todos los registros cuya clave secundaria es igual que la del registro borrado.

Si no se indica esta cláusula, no se permite el borrado de registros relacionados.

Existe otro problema si se desea cambiar el valor de la clave principal en un registro relacionado con claves secundarias. La solucion es:

• Implementar un TRIGGER para que cuando se actualice el registro se actualicen las claves secundarias (su funcionamiento es parecido al que se indica en el siguiente párrafo).

• Añadir un registro igual que el que se quiere cambiar en la tabla principal, pero con el nuevo valor de la clave. Mediante un UPDATE actualizar a ese valor de clave todos los registros de la tabla secundaria cuyo valor coincida con la antigua clave. Finalmente borrar el registro en la tabla principal con el valor antiguo de la clave.

La sintaxis completa para añadir claves foráneas es:

CREATE TABLE tabla(lista_de_campos CONSTRAINT nombreRestriccion FOREIGN KEY (listaCampos) REFERENCES tabla(clavePrincipalRelacionada) [ON UPDATE {SET NULL | CASCADE}]);

Si es de un solo campo existe esta alternativa:

CREATE TABLE tabla(lista_de_campos tipos propiedades, nombreCampoClaveSecundaria

Curso de Oracle 11g

30

CONSTRAINT nombreRestriccion REFERENCES tabla(clavePrincipalRelacionada) [ON UPDATE {SET NULL | CASCADE}]);

Restricciones de validación

Son restricciones que dictan una condición que deben cumplir los contenidos de una columna. La expresión de la condición es cualquier expresión que devuelva verdadero o falso, con estas premisas:

• No puede hacer referencia a números de fila

• No puede hacer referencia a objetos de SYSTEM o SYS

• No se permiten usar las funciones SYSDATE, UID, USER y USERENV

• No se permiten referencias a columnas de otras tablas (si a las de la misma tabla)

Una misma columna puede tener múltiples CHECKS en su definición (se ponen CONSTRAINT seguidos, sin comas). Ejemplo:

CREATE TABLE ingresos(cod NUMBER(5) PRIMARY KEY, concepto VARCHAR2(40) NOT NULL, importe NUMBER(11,2) CONSTRAINT importe_min CHECK (importe>0) CONSTRAINT importe_max CHECK (importe<8000));

Para hacer referencia a otras columnas hay que construir la restricción independiente a la columna:

CREATE TABLE ingresos(cod NUMBER(5) PRIMARY KEY, concepto VARCHAR2(40) NOT NULL, importe_max NUMBER(11,2), importe NUMBER(11,2), CONSTRAINT importe_maximo CHECK (importe<importe_max));

Añadir restricciones

Es posible querer añadir restricciones tras la creación de la tabla. En ese caso se utilizará esta sintaxis:

ALTER TABLE tabla ADD [CONSTRAINT nombre] tipoDeRestricción(columnas);

Donde tipoRestricción es el texto CHECK, PRIMARY KEY o FOREIGN KEY. Las restricciones NOT NULL deben indicarse mediante ALTER TABLE .. MODIFY colocando NOT NULL en el campo que se modifica.

Borrar restricciones

Sintaxis:

ALTER TABLE tabla DROP PRIMARY KEY | UNIQUE(campos) | CONSTRAINT nombreRestricción [CASCADE]

La opción PRIMARY KEY elimina la clave principal, también quitará el índice UNIQUE sobre las campos de la clave. UNIQUE elimina índices únicos. La opción CONSTRAINT elimina la restricción indicada.

Curso de Oracle 11g

31

La opción CASCADE hace que se eliminen en cascada las restricciones de integridad que dependen de la restricción eliminada. Por ejemplo en:

CREATE TABLE curso( cod_curso CHAR(7) PRIMARY KEY, fecha_inicio DATE, fecha_fin DATE, titulo VARCHAR2(60), cod_siguientecurso CHAR(7), CONSTRAINT fecha_ck CHECK(fecha_fin>fecha_inicio), CONSTRAINT cod_ste_fk FOREIGN KEY(cod_siguientecurso) REFERENCES curso ON DELETE SET NULL);

Tras esa definición de tabla, esta instrucción:

ALTER TABLE curso DROP PRIMARY KEY;

Se puede producir este error:

ORA-02273: a esta clave única/primaria hacen referencia algunas claves ajenas

Para ello habría que utilizar esta instrucción:

ALTER TABLE curso DROP PRIMARY KEY CASCADE;

Esa instrucción elimina la clave secundaria antes de eliminar la principal. Pero también produce error:

ALTER TABLE curso DROP(fecha_inicio); ERROR en línea 1: ORA-12991: se hace referencia a la columna en una restricción de multicolumna

El error se debe a que no es posible borrar una columna que forma parte de la definición de una instrucción. La solución es utilizar CASCADE CONSTRAINT elimina las restricciones en las que la columna a borrar estaba implicada:

ALTER TABLE curso DROP (fecha_inicio) CASCADE CONSTRAINTS;

Esta instrucción elimina la restricción de tipo CHECK en la que aparecía la fecha_inicio y así se puede eliminar la columna.

Desactivar restricciones

A veces conviene temporalmente desactivar una restricción para saltarse las reglas que impone:

ALTER TABLE tabla DISABLE CONSTRAINT nombre [CASCADE]

La opción CASCADE desactiva también las restricciones dependientes de la que se desactivó.

Activar restricciones

Anula la desactivación. Formato:

ALTER TABLE tabla ENABLE CONSTRAINT nombre [CASCADE]

Curso de Oracle 11g

32

Sólo se permite volver a activar si los valores de la tabla cumplen la restricción que se activa. Si hubo desactivado en cascada, habrá que activar cada restricción individualmente.

Cambiar de nombre a las restricciones

Para hacerlo se utiliza este comando:

ALTER TABLE table RENAME CONSTRAINT nombreViejo TO nombreNuevo;

Mostrar restricciones

La vista del diccionario de datos USER_CONSTRAINTS permite identificar las restricciones colocadas por el usuario (ALL_CONSTRAINTS permite mostrar las restricciones de todos los usuarios, pero sólo está permitida a los administradores). En esa vista aparece toda la información que el diccionario de datos posee sobre las restricciones.

En el diccionario de datos hay otra vista que proporciona información sobre restricciones, se trata de USER_CONS_COLUMNS, en dicha tabla se muestra información sobre las columnas que participan en una restricción. Así si hemos definido una clave primaria formada por los campos uno y dos, en la tabla USER_CONS_COLUMNS aparecerán dos entradas, una para el primer campo del índice y otra para el segundo. Se indicará además el orden de aparición en la restricción.

Curso de Oracle 11g

33

1.12 Creación de Otros Objetos de Esquema

Cada usuario de una BBDD posee un esquema. El esquema tiene el mismo nombre que el usuario y sirve para almacenar los objetos de esquema, es decir los objetos que posee el usuario.

Esos objetos pueden ser: tablas, vistas, secuencias, índices, sinónimos e instantáneas. Estos son manipulados y creados por los usuarios. En principio sólo los administradores y los usuarios propietarios pueden acceder a cada objeto, salvo que se modifiquen los privilegios del objeto.

Finalmente se incluyen esquemas de usuario que permiten mostrar tareas de la BBDD y experimentar sin poner en peligro a los esquemas reales.

Puede consultarse en DBA_USERS aquellos esquemas de usuario con contraseñas sensibles o no a mayúsculas (columna password_versions).

alter system set sec_case_sensitive_logon=true;

Oracle no borra esquemas de usuario no vacíos a menos que se indique CASCADE, realiza un borrado de objetos previo, o se hayan eliminado con anterioridad los objetos. Por esta razón es conveniente estudiar las implicaciones que sobre otros esquemas tiene el borrado del usuario y de su esquema:

• Se invalida vistas o sinónimos para objetos en el esquema borrado.

• Se invalidan procedimientos almacenados, funciones, o paquetes que consulten objetos pertenecientes al esquema eliminado.

• Las vistas materializadas en otros esquemas basados en tablas pertenecientes al esquema borrado no podrán refrescarse.

• Se borran todos los disparadores, “triggers”, del esquema.

• No se eliminan roles creados por el usuario.

Sintaxis:

DROP USER <usuario> <CASCADE>;

Las referencias a través de esquemas no se importan para usuarios no privilegiados. “Esquema de usuario” (parámetro SCHEMAS). Sólo se cargan objetos propiedad de los esquemas indicados.

Si se posee rol DATAPUMP_IMP_FULL_DATABASE pueden indicarse una serie de esquemas y estos se crean en la BBDD, incluyendo permisos sobre privilegios de sistema, además de los objetos que contengan.

Las referencias a través de esquemas no se importan para usuarios no privilegiados a menos que exista un mapeo de esquemas.

SCHEMAS =<lista de esquemas>

Permite indicar que se realizará una importación de esquemas. Por defecto referencia el esquema de usuario, para otros es necesario el rol DATAPUMP_IMP_FULL_DATABASE.

Curso de Oracle 11g

34

En la imagen inferior, también se puede observar la vista desde la pestaña de esquemas de la versión “Enterprise” de la consola de Administración de Oracle 11g, desde el explorador Internet Explorer.

Curso de Oracle 11g

35

2. ADMINISTRACIÓN DE BASES DE DATOS ORACLE 11g

2.1 Exploración de la Arquitectura de una Base de Datos Oracle

Cuando se ejecuta en Windows, Oracle Database 11g presenta las mismas características y la misma funcionalidad que las distintas plataformas Linux y UNIX soportadas por Oracle. Pero la interface entre la base de datos y el sistema operativo ha sido especialmente modificada para aprovechar los servicios de Windows a fin de mejorar el desempeño, la confiabilidad y la estabilidad.

Modelo de Threads

Comparado con la base de datos Oracle en UNIX, el cambio de arquitectura más significativo en Oracle Database 11g en Windows es la conversión de un servidor basado en procesos a un servidor basado en threads. En Windows, todos los procesos se implementan como threads. Esto significa que para cada instancia de la base de datos Oracle, hay un solo proceso ejecutándose en Windows para el propio servidor de base de datos Oracle.

Nota: Existen otros procesos Oracle en Windows para otros servicios de base de datos, como por ejemplo la Consola de Base de Datos de Enterprise Manager

Existen otros beneficios que surgen de la arquitectura basada en threads. Estos incluyen switches de contexto más rápidos para el sistema operativo entre los threads, a diferencia de los procesos; una rutina de asignación del Área del Sistema Global (SGA) mucho más simple que no requiere del uso de memoria compartida; productividad más rápida de nuevas conexiones debido a que los threads se crean más velozmente que los procesos; menor utilización de la memoria debido a que los threads comparten más estructuras de datos que los procesos; y finalmente, la idea de que un modelo basado en threads sea en cierto modo más “parecido a Windows” que uno basado en procesos.

Internamente, el código para implementar el modelo basado en threads es compacto y muy aislado de la parte principal del código Oracle. Menos de 20 módulos ofrecen toda la infraestructura necesaria para implementar el modelo de threads. Asimismo, la solidez se ha incorporado a la arquitectura a través del uso de encargados de excepciones y también a través de rutinas utilizadas para rastrear y rechazar los recursos.

NOTA: La base de datos Oracle se ejecuta como servicio Windows, que representa un proceso en segundo plano que puede ser iniciado por Windows cuando éste se reinicia.

Servicios

Es un servicio de Windows, que básicamente implica un proceso en segundo plano registrado con el sistema operativo y que se ejecuta conforme a un contexto de seguridad particular.

Cuando se inicia el servicio de base de datos Oracle, no hay threads típicos de Oracle ejecutándose en el proceso. En cambio, el proceso básicamente espera un pedido de conexión e inicio de SQL*Plus, que provocará el funcionamiento de un thread en primer plano y luego, eventualmente, provocará la creación del thread en segundo plano de SGA. Cuando se cierra la base de datos, todos los threads que se crearon finalizarán, pero el proceso continuará ejecutándose y esperará hasta el próximo pedido de conexión y comando de inicio.

Oracle Net Listener se considera un servicio ya que también debe ejecutarse antes de que los usuarios puedan conectarse a la base de datos.

Curso de Oracle 11g

36

Mejoras de Escalabilidad

Uno de los principales objetivos de Oracle Database 11g en Windows es explotar por completo cualquier tecnología de hardware y sistema operativo que pueda ayudar a aumentar la escalabilidad, el rendimiento y la capacidad de la base de datos.

Recientemente, los administradores de base de datos Windows han podido aumentar aún más su recuento de usuarios al implementar nuevo hardware de 64 bits, ya sea Itanium o AMD64/EM64T, y Oracle Real Application Clusters (RAC). Oracle RAC permite el acceso de múltiples servidores a los mismos archivos de base de datos, aumentando así la capacidad de las conexiones de usuarios y al mismo tiempo aumentando el resultado. Debido a que se pueden incorporar commodities de hardware como nodos adicionales a un cluster RAC, este ha sido una solución tradicional para la alta disponibilidad y el escalamiento económico.

Ajuste RAM de 4GB

Cuando clustering y Windows de 64 bits no son opciones disponibles, es necesario maximizar los recursos existentes en los sistemas Windows de 32 bits. El beneficio de la base de datos Oracle es que se dispone de un 50% más de memoria para el uso de la base de datos, lo cual puede utilizarse para aumentar el tamaño SGA o el total de conexión.

Memoria Extendida (Very Large Memory -VLM)

La característica de Memoria Extendida (Very Large Memory - VLM) comúnmente utilizada en las aplicaciones Windows, es una característica clave de ajuste de memoria, permite a la base de datos Oracle en Windows superar el límite de espacio de 3GB normalmente impuesto por Windows de 32 bits. Específicamente, una sola instancia de base de datos puede ahora tener acceso a buffers de base de datos de 64GB cuando se ejecuta en una máquina y un sistema operativo que soportan tanta cantidad de memoria física. Este soporte en Oracle Database 11g se encuentra estrechamente integrado con el código de caché de buffers de base de datos dentro del núcleo kernel de base de datos, permitiendo así el uso eficiente de una gran cantidad de RAM disponible para los buffers de base de datos. Al configurar una base de datos con una gran cantidad de buffers, más datos se agrupan en caché en la memoria. Esto reduce la cantidad I/O en disco, lo cual es considerablemente más lento que recuperar datos de la memoria. Utilizar esta característica lleva al correspondiente aumento de desempeño y rendimiento de la base de datos.

Paginación

El Soporte de Paginación es una característica que ofrece un aumento del desempeño para instancias de base de datos de mucha memoria. Oracle puede hacer un uso más efectivo de los recursos de acceso al procesador utilizando esta característica. La paginación se utiliza para SGA. Todos los componentes SGA con inclusión de los caché de buffers, los grupos compartidos, los grupos extensivos, entre otros, son asignados desde estas página.

Esta característica es particularmente útil cuando el caché de buffer de Oracle tiene varios gigabytes de tamaño. Las configuraciones de menor tamaño también advertirán una ventaja al utilizar la Paginación, pero esta ventaja no será tan amplia como cuando se accede a grandes cantidades de memoria. Para activar esta nueva característica, la variable de registro ORA_LPENABLE debería establecerse en 1 en la clave Oracle del Registro Windows.

Curso de Oracle 11g

37

Configuración de Prioridades y Afinidades

La base de datos Oracle soporta la modificación tanto de las configuraciones de afinidad y prioridad para el proceso de base de datos como de los threads individuales en el proceso, cuando el proceso se realiza en Windows.

Al modificar el valor de configuración del registro ORACLE_PRIORITY, un administrador de base de datos puede asignar diferentes prioridades Windows a los threads de segundo plano individuales y también poner en primer plano a todos los threads. Del mismo modo, también puede modificarse la prioridad de todo el proceso Oracle.

Al igual que la configuración ORACLE_PRIORITY, la configuración del registro ORACLE_AFFINITY permite al administrador de base de datos asignar todo el proceso Oracle o los threads individuales en ese proceso a una CPU particular o a grupos de CPU en el sistema.

Acceso a Memoria No Uniforme

Con la incorporación del soporte al Acceso a Memoria No Uniforme (NUMA) en el Servidor Windows, Oracle ahora puede explotar mejor el hardware NUMA en el cual un solo servidor físico de gran capacidad se compone de varios “nodos”. Debido a que cada nodo en una máquina NUMA tiene acceso a distintas partes de RAM físicas de diferentes velocidades, es elemental que la base de datos pueda determinar la topología de una máquina NUMA y ajustar su programación, sus asignaciones de memoria y las operaciones internas adecuadamente.

Mejoras I/O de Archivos

Otra área sobre la que se ha trabajado mucho en cuanto al código de base de datos Oracle se refiere al soporte de archivos en cluster, archivos grandes, y archivos binarios. El sistema de archivos en cluster de Oracle es parte integral de Oracle Database 11g que facilita la administración e instalación de los clusters de Oracle. Asimismo, se soportan los archivos binarios lógicos y físicos para los archivos de control, los archivos testigo y los archivos de datos a fin de permitir un mejor desempeño utilizando Oracle RAC y bases de datos de instancia única en Windows.

Sistema de Archivos en Cluster

La capacidad de administración de Oracle RAC se ha mejorado enormemente a través del sistema de archivos en cluster de Oracle (CFS). CFS de Oracle fue creado para ser utilizado específicamente con RAC. Los procesos ejecutables de Oracle RAC se instalan en cualquier CFS o en archivos binarios. En el último caso, al menos una sola instancia de base de datos se ejecuta en cada nodo del cluster.

En una sola instalación base de Oracle con CFS, la base de datos estará en el almacenamiento compartido, generalmente un sistema con características de “storage array”. CFS permite a todos los nodos en el cluster acceder al software Oracle, pero éste no es controlado por ninguno de ellos.

Todas las máquinas CFS tienen igual acceso a todos los datos y pueden procesar cualquier transacción. De este modo, RAC con CFS garantiza la redundancia de software de toda la base de datos para los clusters Windows al tiempo que simplifica la instalación y administración.

I/O de Archivos de 64 Bits

Internamente, todas las rutinas I/O de archivos de la base de datos Oracle soportan la compensación de archivos de 64 bits, lo cual significa que cuando se trata de archivos de control, archivos testigo o de datos, como en el caso de alguna otra plataforma, no existe la limitación de tamaños de archivo de

Curso de Oracle 11g

38

2GB o 4GB. De hecho, los límites establecidos son limitaciones genéricas de Oracle en todos los puertos.

Estos límites incluyen bloques de base de datos de 4 millones por archivo, un tamaño máximo de bloque de 16KB, y archivos de 64K por base de datos. Si se multiplican estos valores, el tamaño máximo de archivo para un archivo de base de datos en Windows se calcula en 64GB, mientras que el tamaño máximo de base de datos soportado (con bloques de bases de datos de 16KB) es de 4 petabytes.

Soporte de Archivos Binarios

Windows soporta el concepto de archivos binarios, que son básicamente particiones no formateadas de disco que pueden utilizarse como un solo archivo extenso. No obstante, el inconveniente de utilizar archivos binarios es la capacidad de administración, ya que los comandos Windows estándar no soportan la manipulación ni el back up de los archivos binarios. Por consiguiente, los archivos binarios son generalmente utilizados solo por instalaciones especializadas y por Oracle Real Application Clusters, lo cual requiere un desempeño optimizado. Para utilizar un archivo binario, todo lo que Oracle requiere es que el nombre de archivo especifique qué letra o partición de la unidad utilizar para el archivo.

Cuando se especifica el nombre de los archivos binarios en Oracle, se debe tener cuidado al seleccionar el número de partición o la letra de la unidad adecuados, ya que Oracle simplemente sobrescribirá cualquier parámetro en la unidad especificada cuando agregue el archivo a la base de datos, incluso si ya se trata de una unidad formateada FAT o NTFS.

Para Oracle, los archivos binarios no difieren de otros archivos de base de datos Oracle. Son tratados del mismo modo por Oracle y pueden realizarse backups y almacenarse por medio del Administrador de Recuperación como cualquier otro archivo.

Cliente Direct Network File System

Oracle Database 11g puede configurarse para acceder a los servidores Network File System (NFS) Versión 3 directamente utilizando un cliente interno de Oracle Direct Network File System.

Esta característica se implementa como parte del núcleo kernel de la base de datos Oracle para la biblioteca Oracle Disk Manager. Los sistemas basados en Network Attached Storage (NAS) utilizan NFS para acceder a los datos.

Curso de Oracle 11g

39

2.2 Preparación del entorno de una Base de Datos

Aunque vamos a partir de la base de que ya tenemos instalado Oracle 11g en Windows y que por supuesto tenemos permisos de Administrador para poder crear nuestra base de datos (en adelante BBDD), podemos observar en las siguientes capturas, las comprobaciones previas realizadas durante el proceso de instalación y que nos guiara durante la configuración y preparación de la BBDD que desde el asistente de instalación, se realiza por defecto.

En esta captura vemos como pasa a realizar la configuración automatizada de las BBDD.

Curso de Oracle 11g

40

Y posteriormente a esta captura, se inicia de forma automática el asistente de configuración de las BBDD de Oracle.

1. Copiado de archivos de BBDD:

2. Creación e instanciación de Oracle:

Curso de Oracle 11g

41

3. Finalizando la creación de BBDD:

4. En este punto se nos confirma la creación de las BBDD, más concretamente la que se define como “Global” (en nuestro caso por defecto: orcl, tal y como hemos comentado anteriormente) y nos permite iniciar la configuración de las contraseñas de acceso a las BBDD:

Curso de Oracle 11g

42

Para desbloquear, basta con hacer clic en la columna ¿Bloquear..? y en el usuario seleccionado, introducir la contraseña y confirmarla.

Una vez desbloqueado y asignado contraseñas a los usuarios, “Aceptamos” y finaliza este proceso.

Curso de Oracle 11g

43

2.3 Creación de una Base de Datos Oracle

Para la creación de nuestra BBDD, utilizaremos el asistente que tiene Oracle, accediendo a este a través del menú “Inicio” – “Oracle” – “Herramientas de configuración” – “Asistente de Configuración de BBDD”.

Una vez lanzado el asistente se nos muestra la siguiente imagen:

Curso de Oracle 11g

44

Pulsamos en siguiente y seleccionamos “Crear Base de Datos”:

Seleccionamos el tipo de plantillas que se incluirán en nuestra BBDD:

Vamos a darle un nombre a nuestra BBDD:

Curso de Oracle 11g

45

Y elegimos la configuración de esta:

Asignaremos nombre a las cuentas de usuario, pudiendo dar distintas contraseñas dependiendo de este usuario:

O bien dar una contraseña común a todos ellos, este será nuestro caso:

Curso de Oracle 11g

46

Seleccionamos el mecanismo de almacenamiento a utilizar en la BBDD, nosotros utilizaremos el de “Sistemas de archivo” que está marcado por defecto:

E igualmente lo haremos para establecer las ubicaciones de los archivos:

Establecemos los valores por defecto para las operaciones de backup y copia de seguridad:

Curso de Oracle 11g

47

Y especificaremos el uso de los esquemas de ejemplo:

Por el momento no especificaremos el uso de ninguna instrucción o comando SQL al inicio de nuestra BBDD, pulsamos en siguiente:

La siguiente pantalla nos muestra la configuración de los parámetros de inicialización de nuestra BBDD, comenzando por la memoria que se le va a dedicar:

Curso de Oracle 11g

48

El tamaño del bloque de almacenamiento (unidad más pequeña) y el número máximo de procesos a realizar de forma simultánea:

El juego de caracteres por defecto:

Y su modo de conexión, este dependerá del número de conexiones simultáneas que deba recibir nuestra BBDD:

Curso de Oracle 11g

49

Dejamos marcado por defecto el mantener los valores de Seguridad mejorados de Oracle 11g y pulsamos en siguiente:

Y marcaremos la gestión automática de las tareas de mantenimiento de nuestra BBDD:

Esta pantalla nos muestra la información relativa a nuestra BBDD y nos da una serie de avisos y consejos a tener en cuenta con ella:

Curso de Oracle 11g

50

Ahora llegamos al punto para indicarle que se cree la BBDD, si bien también nos permite el guardar una plantilla con os parámetros seleccionados o generar unos archivos con los comandos de creación de nuestra BBDD:

Así comienza la creación de forma automática de nuestra BBDD, dividida en tres pasos tal y como se aprecie en las siguientes figuras:

Curso de Oracle 11g

51

Finalmente nos informa de que la creación de nuestra BBDD esta completada y nos permite establecer las contraseñas de los usuarios, tal y como vimos anteriormente:

Curso de Oracle 11g

52

Una vez terminada esta tarea, pulsaremos sobre “Aceptar”, volviendo a la pantalla anterior y pulsearemos sobre “Salir”.

Ahora vamos a conectarnos a nuestra BBDD, a través del menú “Inicio” – “Oracle” – “Database Control – PruebasADAMS”.

Introducimos el Usuario, en nuestro caso “SYS”, la contraseña que dimos al inicio de la creación de la BBDD y el método de conexión.

Curso de Oracle 11g

53

Dándonos acceso a la consola de Oracle, conectada a nuestra BBDD (PruebasADAMS), con el siguiente aspecto:

A partir de este punto podemos comenzar a trabajar con nuestra BBDD, creando tablas, etc.

Curso de Oracle 11g

54

2.4 Gestión de una instancia Oracle

Generalidades

En este capítulo no se tratará en detalle cómo crear una instancia o activar sus servicios porque se supone conocido el mecanismo de conectarse a una base de datos o instancia ya creada. Sin embargo, se repasarán los principales comandos que un DBA debiera reconocer para configurarla aunque siempre utilizará alguna herramienta gráfica que permita crear instancias y cree automáticamente los archivos de configuración. En la operación de instalación se nos preguntará si deseamos crear una instancia y, posteriormente, una base de datos dentro de ella.

La instancia Oracle

Una instancia de Oracle está formada por varios procesos y espacios de memoria compartida que son necesarios para acceder a la información contenida en la BBDD. La instancia está conformada por procesos del usuario, procesos que se ejecutan en el background de Oracle y los espacios de memoria que comparten estos procesos.

El Área Global del Sistema (SGA)

El SGA es un área de memoria compartida que se utiliza para almacenar información de control y de datos de la instancia. Se crea cuando la instancia es levantada y se borra cuando ésta se deja de usar. La información que se almacena en esta área reside en los siguientes elementos:

• El buffer de caché (database buffer cache): Almacena los bloques de datos utilizados recientemente. Al utilizarse este buffer se reducen las operaciones de entrada y salida y así se mejora el rendimiento.

• El buffer de redo log: Guarda los cambios efectuados en la base de datos. Estos buffers escriben en el archivo físico de redo log. Este último archivo se utiliza para recuperar la base de datos ante eventuales fallos del sistema.

• El área shared pool: Esta área almacena estructuras de memoria compartida, tales como las áreas de código SQL compartido e información interna del diccionario. Una cantidad insuficiente de espacio asignado a esta área podría redundar en problemas de rendimiento.

• El caché de biblioteca: se utiliza para almacenar código SQL compartido. Aquí se manejan los árboles de parsing y el plan de ejecución de las queries. Si varias aplicaciones utilizan la misma sentencia SQL, esta área compartida garantiza el acceso por parte de cualquiera de ellas en cualquier instante.

• El caché del diccionario de datos: está formado por un grupo de tablas y vistas. La información que se almacena aquí guarda relación con la estructura lógica y física de la base de datos. El diccionario de datos contiene información tal como los privilegios de los usuarios, restricciones de integridad definidas para algunas tablas, nombres y tipos de datos de todas las columnas y otra información acerca del espacio asignado y utilizado por los objetos de un esquema.

Procesos de la Instancia

Los procesos que se implementan en una instancia de Oracle y su función principal son los siguientes:

• DBWR (database writer): Es el responsable de la escritura en disco de toda la información almacenada en los buffers de bloques que no se han actualizado.

Curso de Oracle 11g

55

• LGWR (log writer): Escribe la información desde el buffer de log hacia el archivo redo log.

• CKPT (checkpoint): Es el responsable de advertir al proceso DBWR de efectuar un proceso de actualización en el disco de los datos mantenidos en memoria, incluyendo los datafiles y control files. Este proceso es opcional, si no está presente, es el proceso LGWR quien asume la tarea.

• PMON (process monitor): Monitoriza los procesos del servidor y toma acciones correctivas cuando alguno de ellos se interrumpe, limpiando la caché y liberando los posibles recursos que pudieran estar asignados en ese momento. También restablece el proceso interrumpido.

• SMON (system monitor): Levanta una instancia cuando se le da la instrucción de partida. Limpia los segmentos temporales, recupera las transacciones que pudieran haberse interrumpido debido a un fallo del sistema y agrupa aquellas extensiones libres que existen dentro de la BBDD.

• ARCH (archiver): Este proceso respalda la información almacenada en los archivos redolog cuando se llenan. Está siempre activo cuando se ha establecido el modo ARCHIVELOG.

Arranque de la Instancia

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

Cada instancia Oracle tiene su grupo de dos o más archivos REDO LOG, en los cuales se van a ir almacenando los cambios que se han producido en la información de la instancia a la que representan. A la hora de arrancar una instancia se suceden tres fases:

1. Arranque de la Instancia

2. Montaje de la Base de Datos

3. Apertura de la Base de Datos

El Área Global de Programas (PGA)

Esta área de memoria contiene datos e información de control para los procesos que se ejecutan en el servidor de Oracle. El tamaño y contenido de PGA depende de las opciones del servidor instaladas.

Las Transacciones

El término transacción describe a una unidad lógica de trabajo que está compuesta de una o más sentencias SQL, que deben terminar con una instrucción commit o rollback. En ese instante, una nueva transacción dará comienzo y estará activa hasta que se ejecute alguno de esos dos comandos otra vez.

Nota: Una transacción no se considera confirmada hasta que ésta se termina de escribir en el archivo de redo log.

Curso de Oracle 11g

56

2.5 Configuración de un entorno de red Oracle

ORACLE NET MANAGER

Oracle NET Manager es el Gestor de Red de Oracle combina funciones de configuración con control de componentes para proporcionar un entorno integrado para la configuración y gestión de Red de Oracle.

Usuarios del Gestor de Red de Oracle

Pueden utilizarlo los administradores de redes responsables de establecer conexiones del cliente a servicios. Este Gestor de Red permite centrarse en la configuración de áreas específicas de la red.

Éstos son algunos de los puntos más interesantes para comenzar:

• Visión General de la Red de Oracle

• Visión General de la Conectividad de Red de Oracle

• Visión General de la Configuración de Red de Oracle

• Funciones Clave del Gestor de Red de Oracle

Visión General del Entorno del Gestor de Red de Oracle

Los Servicios de Red de Oracle proporcionan soluciones de conectividad para toda la empresa en entornos informáticos distribuidos. Facilita la configuración y gestión de la red, maximiza el rendimiento y mejora el diagnóstico de la red.

Curso de Oracle 11g

57

Este componente, permite una sesión de red desde la aplicación cliente a un servidor de base de datos Oracle. Una vez establecida una sesión de red, la Red de Oracle actúa como intermediario para la aplicación cliente y el servidor de la base de datos.

Las sesiones de red se establecen con la ayuda de un listener. Éste es un proceso distinto que reside en el servidor de la base de datos. El listener recibe las solicitudes de conexión cliente y gestiona el envío de las mismas al servidor. Cada vez que un cliente solicita una sesión de red con un servidor, el listener recibe la solicitud real, si la información del cliente coincide con la información del listener, éste establece la conexión con servidor

Visión General de la Conectividad de Red de Oracle

La Red de Oracle permite conexiones a distintos servicios, como bases de datos Oracle u otras bases de datos, gateways y procedimientos externos. Los usuarios inician una solicitud de conexión mediante el envío de un nombre de usuario y una contraseña junto con un identificador del servicio al que se desean conectar. Dicho identificador, identifica:

• El servicio de destino.

• La ruta de acceso o ruta de red, en la red para obtener dicho servicio.

Los identificadores de conexión se especifican de varias formas. Una de las más comunes es mediante el uso del nombre de un servicio de red, otro nombre para el servicio, que se corresponde con un descriptor de conexión. Estos descriptores contienen información de rutas de red y servicios de destino.

El servicio deseado se indica mediante el nombre de servicio de las BBDD o el identificador del sistema Oracle (SID). La ruta de red proporciona la ubicación del listener mediante una dirección de red.

Curso de Oracle 11g

58

Ahora, se muestra un servicio de red denominado sales asignado a un descriptor de conexión:

sales= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server1)(PORT=7521)) (CONNECT_DATA=(SERVICE_NAME=sales.es.rtc.com))

El identificador de conexión y el descriptor de conexión correspondiente están almacenados en al menos un método de nomenclatura. Durante la conexión, el cliente resuelve el identificador de conexión (sales en el ejemplo anterior) en un descriptor de conexión mediante un método de nomenclatura.

A continuación, el cliente entra en contacto con el listener especificado en el descriptor de conexión, el listener, mediante un protocolo, acepta la conexión del cliente y compara la información del cliente con la recibida del servicio de BBDD mediante el registro del servicio y la información que ha almacenado en su propio archivo de configuración, listener.ora, si coincide la información, se establece la conexión.

Visión General de la Configuración de Red de Oracle

El Gestor de Red permite configurar numerosos elementos de la red, entre ellos, los métodos de nomenclatura, los perfiles del cliente y el servidor y los listeners.

Métodos de Nomenclatura

Define nombres sencillos para identificar la ubicación de un servicio. Estos nombres, denominados identificadores de conexión, se asignan a descriptores de conexión, que contienen la situación de la red y la identificación. Con el Gestor de Red, puede configurar distintas formas en que los identificadores de conexión se resuelven en descriptores de conexión a través de los métodos de nomenclatura.

Perfiles del Cliente y el Servidor

Configure preferencias para activar y configurar las funciones de la Red de Oracle en clientes y el servidor mediante perfiles. Con estos, puede definir preferencias que establezcan la prioridad de los métodos de nomenclatura, activar las funciones de Oracle Advanced Security, activar el registro y el rastreo o dirigir las conexiones.

Configuración del Listener en el Servidor

Configure el listener para recibir las conexiones del cliente. El listener se debe configurar con una o más direcciones de protocolo.

Curso de Oracle 11g

59

Información de servicio sobre el servicio de destino

Las direcciones de protocolo se configuran en el archivo de configuración del listener, listener.ora. La información de servicio puede estar configurada o no en el archivo listener.ora: La base de datos registra automáticamente información concreta con el listener, como los nombres de servicio, los nombres de instancia, los manejadores y la información de carga. Esta función, denominada registro del servicio, no necesita configuración en el archivo listener.ora.

El Gestor de Red

Este Gestor le ayudará a configurar y gestionar no solo su entorno de redes Oracle, sino también las funciones y componentes siguientes:

• Nomenclatura de Servicios: Puede crear o modificar descripciones de red para servicios de base de datos en un archivo tnsnames.ora, servidor de directorios o un Oracle Names Server. Las descripciones de red o descriptores de conexión, se asignan a identificadores de conexión que los clientes utilizan en las cadenas de conexión durante la conexión a una BBDD.

• Listener: Puede crear o modificar un listener, que es un proceso del servidor que recibe y responde a las solicitudes de conexión cliente a un servicio de bases de datos.

• Perfil: Puede crear o modificar un perfil, que es una colección de parámetros que determinan el modo en que el cliente se conecta a la red Oracle. Puede configurar parámetros del cliente para métodos de nomenclatura, registro, rastreo, nomenclatura externa y Oracle Advanced Security.

Estructura de Árbol y Carpetas Jerárquicas

El Gestor muestra una vista gráfica en forma de árbol de los objetos de red y de los objetos que contienen, organizados en jerarquías de carpetas. Puede utilizar el panel del navegador para visualizar, modificar, agregar y suprimir objetos en cada carpeta. Al seleccionar un objeto, aparece información sobre el mismo en el panel de la derecha del Gestor de Red de Oracle.

Directorio

Muestra nombres sencillos, llamados identificadores de conexión, configurados en un servidor de directorios.

Curso de Oracle 11g

60

Local

Muestra elementos de red configurados en archivos de configuración local: Nombres de servicio de red del archivo tnsnames.ora Listeners del archivo listener.ora Perfiles del archivo sqlnet.ora Oracle Names Servers Muestra Oracle Names Servers

Barra de Herramientas

La barra de herramientas, situada a la izquierda del Gestor de Red de Oracle, contiene iconos que corresponden a los objetos de red de las jerarquías de carpetas. Los botones de la barra de herramientas se activan según los objetos que aparezcan o se seleccionen en un panel. La barra contiene los siguientes iconos:

• Icono +: Crea nuevos nombres de servicio de red, listeners y un Oracle Names Server para esta computadora.

• Icono X: Esta opción suprime los objetos de nomenclatura de servicios y de listeners.

• Icono : Seleccione esta opción para verificar la conectividad del objeto de nomenclatura de servicios seleccionado a un servicio de base de datos.

• Icono ?: Muestra la ayuda en pantalla.

Nota: Algunos comandos sólo están disponibles si selecciona el tipo de objeto adecuado.

Curso de Oracle 11g

61

Menú Archivo

El menú Archivo permite:

• Abrir Configuración de Red: Abre archivos de configuración local.

• Guardar Configuración de Red: Guarda la configuración actual en la ubicación por defecto.

• Guardar como: Guarda la configuración actual en una ubicación que no es la de por defecto.

• Volver a la Configuración Guardada: Recupera la última configuración guardada.

• Salir: Cierra el Gestor de Red de Oracle

Menú Editar

El menú Editar permite: Agregar, eliminar o cambiar de nombre un nombre de servicio de red, un listener o un Oracle Names Server de las carpetas abiertas.

• Crear: Seleccione esta opción para crear un objeto de red.

• Suprimir: Seleccione esta opción para suprimir un objeto de red.

• Cambiar Nombre: Seleccione esta opción para cambiar el nombre de un objeto de red.

Menú Comando

El menú Comando permite realizar las siguientes operaciones:

• Directorio: Contiene comandos que realizan acciones en un servidor de directorios.

• Oracle Context Es un árbol secundario del directorio que almacena las entradas de Oracle, incluidos servicios de BBDD y nombres de servicios para su uso con la nomenclatura de directorios. Al seleccionar uno nuevo, aparecen los objetos de la carpeta Configuración de Red de Oracle > Directorio > Nomenclatura de Servicios del navegador para el nuevo Oracle Context.

• Definir Autenticación: Define credenciales de autenticación para el servidor de directorios.

• Exportar Nombres de Servicio de Red: Permite iniciar el Asistente de Migración del Servidor de Directorios. Este asistente exporta los nombres de servicio de red almacenados en un archivo tnsnames.ora a un servidor de directorios. Nota: El menú Directorio sólo aparece si se ha configurado el acceso al directorio.

Curso de Oracle 11g

62

• Servicio de Prueba: Permite conectarse a un servicio de base de datos mediante la información del descriptor de conexión almacenada en el archivo tnsnames.ora o en un servidor de directorios.

Visión General de la Nomenclatura de Directorios

La nomenclatura de directorios es uno de los principales métodos de nomenclatura utilizado para resolver un identificador de conexión en un descriptor de conexión que el cliente utiliza para conectarse a una BBDD.

La nomenclatura de directorios almacena los identificadores de conexión y sus descriptores de conexión en un servidor de directorios compatible con LDAP. Los identificadores de conexión se almacenan en un árbol secundario de Oracle Context que contiene entradas que se pueden utilizar con el software Oracle.

Los usuarios finales introducen una cadena de conexión que incluye un identificador de conexión:

CONNECT usuario/contraseña@identificador_conexión

En el siguiente ejemplo, sales es el identificador de conexión que se consulta en el directorio:

CONNECT eba/rtc@sales

El descriptor de conexión vuelve al cliente e incluye: La ubicación de la dirección de protocolo del listener.

El nombre de servicio de la base de datos

El cliente utiliza la información de dirección de protocolo para conectarse al listener y éste, configurado con la misma información de dirección, recibe la solicitud. Si el listener recibe solicitudes del mismo servicio de BBDD especificado en el descriptor de conexión, se establece la conexión. Para que se produzca la nomenclatura de directorios, configure un servidor de directorios para las funciones de Servicios de Red de Oracle y configure el acceso de los clientes al directorio.

Entradas de Red de Oracle en un Directorio

Las entradas de un directorio se organizan en una estructura jerárquica en forma de árbol basada en el nombre diferenciado (DN). Este árbol de entradas de directorio se denomina árbol de información de directorios (DIT). Cada entrada contiene los atributos que la describen y estas en un DIT pueden ser:

• Un servicio de base de datos creado durante la creación de la base de datos

• Un nombre de servicio de red

• Alias de servicio de red

Todas las entradas de Red de Oracle aparecen en un árbol secundario del Oracle Context que almacena las entradas de Oracle. Este árbol secundario se crea en una ubicación especificada por el usuario en el DIT durante la instalación personalizada en el servidor. Los clientes se configuran con el uso del directorio y un Oracle Context por defecto del que se van a consultar las entradas. Cada entrada contiene uno o más atributos que la describen y cada atributo tiene un tipo y un valor.

Curso de Oracle 11g

63

Visión General de la Configuración de la Nomenclatura de Directorios

Configuración del Servidor durante la Instalación

Durante una instalación personalizada del servidor, el Asistente de Configuración de Red solicita que:

• Seleccione el tipo de servidor de directorios

• Identifique la ubicación del directorio

• Seleccione o cree un Oracle Context desde el que el servidor puede consultar, crear y modificar los identificadores de conexión.

• Configure la nomenclatura de directorios como método de nomenclatura preferido que se va a utilizar. Si está bien configurado, el Asistente intenta conectar con el directorio y registrar una entrada de servicio de BBDD. La entrada de servicio de BBDD se configura con un descriptor de conexión, que contiene información sobre:

Dirección del listener

Nombre del servicio de base de datos

Configuración del Cliente durante la Instalación

Durante todas las instalaciones de clientes, el Asistente solicita que configure los siguientes valores:

• Especifique el tipo de directorio Identifique la ubicación del directorio

• Seleccione un Oracle Context por defecto desde el que el cliente puede consultar los identificadores de conexión.

Configuración con el Asistente de Configuración de Red de Oracle después de la Instalación

El Asistente de Configuración de Red de Oracle se puede ejecutar en modo autónomo para:

• Configurar el cliente o el servidor.

• Crear el esquema de Oracle.

• Crear un Oracle Context.

Configuración con el Gestor de Red de Oracle

El Gestor de Red de Oracle permite:

• Modificación de Oracle Context

• Cambiar las credenciales de autenticación.

• Crear nombres del servicio de red

• Crear alias del servicio de red

• Configurar varias rutas a un listener mediante diferentes direcciones de protocolo.

• Configuración avanzada de CONNECT_DATA para un nombre de servicio de BBDD o de red.

• Migrar entradas desde un archivo tnsnames.ora a un servidor de directorios.

Curso de Oracle 11g

64

Para acceder a la configuración de nomenclatura de directorios, desde el panel del navegador, seleccione Nomenclatura de Servicio de Directorios.

Requisitos de Nomenclatura de Directorios para el Gestor de Red de Oracle

El Gestor de Red de Oracle permite crear información de la ruta de red para un servicio de BBDD, así como nombres de servicio de red, en un servidor de directorios. Para que se escriba en un directorio:

• El directorio debe estar configurado con un esquema de Oracle.

• La computadora en la que se ejecuta el Gestor de Red de Oracle debe estar configurada con un Oracle Context por defecto para acceder y escribir en las entradas.

Estas configuraciones se realizan con el Asistente de Configuración de Red de Oracle. Oracle Net Manager no dispone de esta función.

Si no se configura el acceso a directorios, la carpeta Configuración de Red de Oracle > Directorio del panel del navegador y el menú Comando > Directorio, no estarán disponibles.

Curso de Oracle 11g

65

2.6 Gestión de estructuras de almacenamiento Oracle

Oracle Database 11g Release1, es una herramienta comúnmente conocida por su capacidad para ofrecer seguridad en la información y un gran sistema de almacenaje, capaz de soportar grandes cantidades de datos.

Oracle incluye en su paquete de Base de Datos 11g una herramienta llamada “Oracle Warehouse Builder” (OWB) especializada en la creación de Almacenes de Datos y su posterior manejo de información de manera eficiente. Y rambien se ha incorporado información sobre un nuevo paquete capaz de tratar directamente con documentos XML a través de un tipo de dato llamado “XML Type”. Gracias a esto, se da la posibilidad de extraer el contenido de los documentos XML fuente y crear unas tablas relacionales donde almacenar su información de manera automática.

Por tanto, cabe destacar Oracle Warehouse Builder y Oracle XML DB, que veremos a continuación.

2.6.1 Oracle Warehouse Builder

Se trata de un entorno bastante intuitivo e idóneo para comprender cuáles son los pasos necesarios a realizar en la construcción de un Almacén de Datos y para entender cuál es su funcionamiento una vez creado. En cuanto a su modelo de persistencia, OWB crea un repositorio de metadatos en la BBDD, donde el usuario elige durante el período de instalación. En este repositorio, OWB crea tablas, procedimientos, vistas, triggers, etc. para que la herramienta pueda funcionar correctamente.

Una vez creada la estructura del Almacenes de Datos, cuando llega la hora de desplegar cada una de sus partes, se generan objetos de Oracle, principalmente procedimientos almacenados, que serán los elementos a los que se llame en realidad cuando se ejecuta un proceso.

El control de todo el proceso reside en los objetos de la BBDD, pero la información que se ofrece en el entorno visual corresponde a los metadatos. Esta información, además de ser accesible mediante el entorno visual, también se puede extraer directamente de los objetos del repositorio, pero estos objetos están pensados básicamente para servir a la herramienta, no para que se les consulte directamente. Además, buscar información directamente en el repositorio es muy complicado.

1) Explorador de Proyectos

Muestra la estructura del árbol de objetos que contiene cada uno de los proyectos creados. Dentro de este árbol de objetos, cabe destacar algunos:

• Tablas externas, encargadas de extraer los metadatos de los ficheros fuente y almacenarlos en una estructura. Tendremos una por cada fichero.

• Tablas (relacionales), generadas automáticamente tras la creación de un objeto. Se encargan de almacenar en tablas “reales” de Base de Datos toda la información.

• Dimensiones, contine las Dimensiones del proyecto, que almacena la información de cada Hecho.

• Cubo, contiene el/los Cubos creados y almacenan los Hechos del Almacén de Datos.

• Correspondencias, son las encargadas de definir el proceso a seguir a la hora de ejecutar el proceso ETL. Indicará las tablas de donde se extrae la información las Dimensiones y el Cubo, etc.

Curso de Oracle 11g

66

2) Explorador de Localizaciones

Muestra la estructura del árbol de objetos que contiene cada una de las localizaciones que hemos creado para dar soporte a los módulos de cada proyecto. Las localizaciones actúan como almacenes para los metadatos generados en diferentes partes de un proyecto. La creación de estos almacenes es necesaria a la hora de crear un flujo de trabajo, un esquema de usuario nuevo o un nuevo proyecto entre otros.

3) Explorador Global

Muestra la estructura del árbol de objetos global del sistema, pero para el propósito de este proyecto, únicamente se conocera el funcionamiento de esquemas de usuarios y sus roles en el nodo “Seguridad”.

A la hora de crear un usuario, o más bien añadir un esquema de usuario al proyecto, se puede realizar de dos maneras, seleccionando un usuario de los disponibles en la lista o creando un nuevo usuario, debiendo en tal caso tener privilegios de Administrador de Base de Datos.

Una vez que hemos creado la estructura del Almacén de Datos, debemos realizar el despliegue de los objetos para crear sus correspondientes instancias, necesarias para la futura ejecución.

2.6.2 Oracle XML DB

Oracle XML DB permite almacenar los datos XML en una columna de una tabla a través del tipo XMLType, crear tablas en función de la estructura del documento o guardar el propio documento en forma binaria en una columna de tipo CLOB. Los aspectos a destacar de Oracle XML DB son:

• XML Type Para proporcionar flexibilidad y versatilidad, Oracle XML DB está construido sobre la abstracción XML Type para almacenar, consultar, acceder, transformar y manipular datos XML.

• Repositorio de Oracle XML DB El repositorio de Oracle XML DB es un componente de la BBDD de Oracle que ha sido optimizado para manejar datos XML. Este repositorio contiene ciertos recursos, que pueden ser tanto carpetas (directorios o contenedores) como ficheros

• Registrar XML Schema en Oracle XML DB Los documentos creados externamente pueden ser introducidos en la base de datos de dos formas diferentes: bien mediante transferencia FTP al repositorio de Oracle o bien a través de la creación de una instancia de XML con una sentencia SQL. En ambos casos el documento XML debe llevar en la cabecera (en el atributo del espacio de nombres xmlns) la ruta del XML Schema contra el que se valida.

El primer paso para la integración del contenido XML en la base de datos consiste en registrar un XML Schema que defina la estructura de los documentos XML que se quieren almacenar. Cuando se registra un XML Schema, se generan automáticamente los tipos (que heredan de XMLType) y las tablas necesarias.

El proceso de registrar un XML Schema en la Base de Datos se realizará a través de la siguiente sentencia PL/SQL:

Curso de Oracle 11g

67

Begin dbms_xmlschema.registerSchema('/home/OE/xsd/Fichero_Info.xsd',

xdbURIType('/home/OE/xsd/Fichero_Info.xsd'), TRUE, TRUE, FALSE, TRUE); end;

El procedimiento registerSchema pertenece al paquete dbms_xmlschema, utilizado para el manejo de XML Schemas. Los parámetros que admite son: la URL que identificará unívocamente el XML Schema a registrar, el contenido del XML Schema en sí y una serie de variables booleanas con diferentes opciones sobre la generación de objetos y de tablas.

Para indicarle al SGBD que tiene que obtener el contenido del XML Schema de una dirección concreta se utiliza una URI con la sentencia xdbURIType.

Si queremos borrar el esquema previamente registrado (así como las estructuras de tipos y tablas creadas internamente) deberemos utilizar una sentencia similar a la siguiente:

Begin dbms_xmlschema.deleteSchema('/home/OE/xsd/Fichero_Info.xsd', dbms_xmlschema.DELETE_CASCADE_FORCE); end;

Ahora vemaos un diagrama base de la Arquitectura de almacenamiento físico de documentos XML en Almacén de Datos

• Gestión de documentos XML con XML DB

Tras el registro de un XML Schema en XML DB de Oracle, el sistema está preparado para almacenar y gestionar documentos XML definidos bajo el XML Schema registrado. A continuación, se detallarán las operaciones básicas en la gestión de información (inserción, modificación, consulta y borrado) desde la perspectiva del repositorio como sistema de ficheros y mediante el uso de sentencias SQL.

• Añadir un documento Como ya se ha comentado, es posible añadir un nuevo documento XML al repositorio solamente copiándolo físicamente al directorio XML creado (vía FTP, por ejemplo). Dado

Curso de Oracle 11g

68

que el documento XML tiene una referencia en su cabecera al esquema que sigue, el gestor de XML DB reconoce automáticamente que ese fichero es una instancia del XML Schema registrado, descomponiendo su contenido en las correspondientes tablas objeto-relacionales.

También es posible insertar información en las tablas creadas durante el registro del esquema con una tradicional sentencia INSERT de SQL. Si además se pretende obtener un documento XML físico almacenado en el repositorio, se puede hacer mediante un procedimiento PL/SQL que trabaje con la instrucción dbms_xdb.createResource.

• Editar y/o actualizar un documento XML Una vez que se ha añadido un documento XML, es posible manipular esta información. Existen dos métodos posibles:

El primero emplea el protocolo FTP para llegar al fichero en cuestión y a continuación, editarlo con una herramienta que admita el procesamiento del lenguaje XML.

Por otro lado, también es posible la modificación de los documentos XML mediante la utilización de la sentencia SQL “update” sobre las filas de las tablas que guardan la información de dichos documentos. En el siguiente ejemplo se puede observar una actualización en la que se modifica el precio de los productos (de 9.95€ a 10€).

UPDATE tabla_ventas t SET value(t) = UPDATEXML (value(t),

'/starpackage/dimensions/producto/precio()', „10') WHERE EXTRACTVALUE(value(t),

/starpackage/dimensions/producto/precio‟) = '9.95';

• Borrado de documentos XML Al igual que en las anteriores operaciones, la operación de borrado puede llevarse a cabo sobre una instancia XML completa o desde sentencias SQL.

En el primero de los casos de borrado de un documento se puede realizar mismamente desde el Explorador de Windows. Es asimismo posible mediante un procedimiento PL/SQL que trabaje con la instrucción dbms_xdb.deleteResource.

Mediante sentencias SQL bastaría con lanzar una sentencia “delete” sobre la fila de la tabla deseada borrando de este modo el documento XML. En el siguiente ejemplo se eliminan los dependientes cuya edad es 18.

DELETE FROM tabla_ventas t WHERE EXTRACTVALUE (value(t), '/starpackage/dimensions/dependiente/edad')='18';

Curso de Oracle 11g

69

2.7 Administración de seguridad de Usuario

En este capítulo se conocerá cómo se definen y modifican los usuarios, perfiles y roles de una BBDD.

Es una tarea bastante común de cualquier DBA, ya que constantemente se están incorporando nuevos usuarios al sistema o modificando las opciones de éstos. Repasaremos todas las opciones que permiten manejar estas características y se aprenderá a simplificar la carga mediante la administración de perfiles y roles, que son conceptos que controlan diferentes tipos de recursos.

• Rol: Un rol es utilizado para asignar privilegios a los usuarios y permitirles acceder a diferentes objetos y operaciones.

• Perfil: Un perfil indica la cantidad de recursos del sistema que se permite consumir a un usuario o grupo de ellos.

Un usuario puede ser incluido en ambas entidades al mismo tiempo.

Creación de Usuarios

Cuando se da de alta a un usuario basta, con indicar el nombre y el password de la cuenta (esquema) que se está creando. Enseguida se asigna un espacio físico al nuevo esquema dentro de la base de datos con los parámetros por defecto.

Para crear un usuario especificando las opciones adecuadas sin considerar los valores por defecto, se debería respetar la siguiente sintaxis:

CREATE USER nombre_usuario IDENTIFIED BY password [DEFAULT TABLESPACE nombre_tablespace] [TEMPORARY TABLESPACE nombre_tablespace] [QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace1 ] [, QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace2] [PROFILE nombre_perfil] [PASSWORD EXPIRE] [ACCOUNT LOCK o ACCOUNT UNLOCK]

Donde los parámetros corresponden a lo siguiente:

• Username: Nombre del usuario que se está creando.

• Password: Clave de inicio que se le otorga al usuario y que luego podrá reemplazarla.

• Default Tablespace: Es el tablespace por defecto al que se conectará el usuario cada vez que acceda a la base de datos y donde guardará todos sus objetos. Por defecto”tablespace system.”

• Temporary Tablespace: Es el temporal que utilizará el usuario en todas sus conexiones.

• Quota: Cuota de disco (espacio) que se le asigna al usuario en cada uno de los tablespaces a los que puede acceder. Con “UNLIMITED” podrá utilizar todo el espacio que quiera.

• Profile: Es el nombre del perfil que ha sido asignado a este usuario.

• Password expire: Password del usuario que expirará en forma automática y que deberá cambiarlo al iniciar su próxima sesión.

Curso de Oracle 11g

70

• Account lock (o unlock): Permite establecer si la cuenta debe permanecer bloqueada o no inmediatamente después de crearla.

Modificación de Usuarios

La forma de modificar usuarios a través de comandos es utilizando la opción Alter User, cuya sintaxis completa es muy similar a la de creación de usuarios. Pueden modificarse con esta instrucción:

ALTER USER nombre_usuario IDENTIFIED BY password [DEFAULT TABLESPACE nombre_tablespace] [TEMPORARY TABLESPACE nombre_tablespace] [QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace1 ] [, QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace2] [PROFILE nombre_perfil] [PASSWORD EXPIRE] [ACCOUNT LOCK o ACCOUNT UNLOCK]

Eliminación de Usuarios

Para eliminar un usuario se ejecuta la siguiente instrucción:

DROP USER nombre_usuario [CASCADE]

Y la opción Cascade se hace obligatoria cuando el usuario posee objetos en su esquema (tablas, vistas, etc.) y debemos borrarlos junto con él. Sin esta opción no podríamos eliminar un usuario con objetos.

Creación de Perfiles

Los perfiles se crean para limitar las posibilidades de los usuarios del sistema de base de datos. Por ejemplo, podriamos establecer 3 tipos de usuarios:

• Administradores: Otorgarles acceso ilimitado a recursos dentro del sistema.

• Desarrolladores: Diponene de un número ilimitado de sesiones pero limitar el uso de CPU.

• Otros.

En síntesis, los perfiles se utilizan para “suavizar” tareas de administración de seguridad, manteniendo bajo control el acceso a los recursos de todos los usuarios, por muchos que éstos puedan llegar ser.

Los perfiles se crean y modifican con los comandos CREATE PROFILE y ALTER PROFILE. La sintaxis de estos comandos no necesitan ser repetidas aquí; sólo vale la pena destacar que algunas de las cláusulas hacen referencia a cuánto ciclo de CPU se le asigna al usuario, sesiones concurrentes, etc.

Creación de Roles

Los Roles constituyen la forma más segura y rápida de asignar recursos a los grupos de usuarios. Es una tarea muy tediosa para cualquier DBA tener que asignar o revocar permisos a todos los usuarios, de a uno por uno, y es por eso que agrupando un conjunto de usuarios bajo las mismas características es posible manejar sus permisos como un grupo.

Curso de Oracle 11g

71

Para crear roles se utiliza la siguiente sintaxis:

CREATE ROLE nombre_rol NOT IDENTIFIED o IDENTIFIED BY password

Y para asignar el rol a un usuario o para comenzar a asignar / quitar ciertos privilegios al rol se debe utilizar los comandos siguientes:

• Grant: Otorga privilegios a un rol (o a un usuario) o también asigna un rol a un usuario.

• Revoke: Elimina privilegios otorgados previamente a un rol (o a un usuario).

Los roles o privilegios se pueden asignar varios al mismo usuario o grupo en una sola línea de comandos, siguiendo la sintaxis siguiente:

GRANT nombre_rol o nombre_privilegio [, nombre_rol o nombre_privilegio ] TO nombre_usuario o nombre_rol o PUBLIC [, nombre_usuario o nombre_rol] [WITH ADMIN OPTION]

Si los privilegios se otorgan con la cláusula “with admin option” esto quiere decir que los usuarios que reciben los privilegios pueden a su vez otorgarlos a otros.

Ejemplo:

1. Creación del rol ROLE_DML:

CREATE ROLE role_dml NOT IDENTIFIED;

2. Asignar el privilegio de Select al rol recién creado:

GRANT select TO role_dml;

3. Asignar el rol a los usuarios JPEREZ y LGONZALEZ:

GRANT role_dml TO jperez, lgonzalez;

Esto hace que los usuarios anteriores posean el privilegio de SELECT. Cada uno de los usuarios que se incorporen a este rol, tendrá el mismo privilegio recién mencionado.

Curso de Oracle 11g

72

2.8 Gestión de Objetos del esquema

Un esquema es una colección de objetos lógicos, utilizados para organizar de manera más comprensible la información, conocidos como objetos del esquema. Una descripción sus objetos es la siguiente:

• Tabla: Es la unidad lógica básica de almacenamiento. Contiene filas y columnas y se identifica por un nombre. Las columnas tienen nombre y deben especificar un tipo de datos. Una tabla se guarda dentro de un tablespace (o varios, en el caso de las tablas particionadas).

• Cluster: Un cluster es un grupo de tablas almacenadas en conjunto físicamente como una sola tabla y que comparten una columna en común. Si a menudo se necesita recuperar datos de dos o más tablas basado en un valor de la columna que tienen en común, es más eficiente organizarlas en cluster, ya que la información podrá ser recuperada con menos operaciones de lectura.

• Indice: Un índice es una estructura creada para ayudar a recuperar datos de una manera más rápida y eficiente. Un índice se crea sobre una o varias columnas de una misma tabla. De esta manera, cuando se solicita recuperar datos de ella mediante alguna condición (cláusula where), ésta se puede acelerar si se dispone de algún índice.

• Vista: Una vista implementa una selección de varias columnas de una o diferentes tablas. Una vista no almacena datos; sólo los presenta en forma dinámica. Simplificando la visión del usuario sobre un conjunto de tablas, haciendo más transparente la obtención de datos.

• Procedimiento Almacenado: Son programas que permiten independizar el manejo de datos desde una aplicación y efectuarla directamente desde el motor de base de datos, disminuyendo así el tráfico de información y mejorando el rendimiento de los procesos implementados.

• Trigger: Un trigger es un procedimiento que se ejecuta en forma inmediata cuando ocurre un evento especial. Estos eventos sólo pueden ser la inserción, actualización o eliminación de datos.

• Secuencias: El generador de secuencias de Oracle se utiliza para generar números únicos y utilizarlos, por ejemplo, como claves de tablas.

Vamos a ver en tres sencillos pasos cómo crear un nuevo esquema-usuario de Oracle. Para poder realizar estos pasos es necesario iniciar la sesión en la base de datos con un usuario con permisos de administración, lo más sencillo es utilizar directamente el usuario SYSTEM. Pero antes explicaremos un brevemente, que son los espacios de tablas o Tablespace, ya que lo usaremos para este comentido.

Este ordenador tendrá la instancia de la BBDD que va a ser utilizada por los clientes. Para un funcionamiento óptimo, tendrá un disco donde se recogen los espacios de tablas (tablespace) por defecto, los de auditoría y un espacio de tabla que contendrá el esquema utilizado por los clientes.

El siguiente esquema muestra los Tablespace requeridos por la instancia de la BBDD del servidor:

Curso de Oracle 11g

73

El espacio de tablas SYSTEM es creado automáticamente en la instalación, y es usado para gestionar la base de datos, ya que tiene el diccionario de datos. También contiene las tablas y vistas que utiliza el administrador de la base de datos dentro del esquema SYS.

El espacio de tablas SYSAUX está creado como soporte auxiliar al espacio de tablas SYSTEM, y así reducir la carga de éste.

El espacio de tablas UNDO contiene información de tipo “deshacer” para poder utilizar el comando rollback.

El espacio de tablas USERS contiene las tablas y los datos permanentes de los usuarios, por defecto.

Sin embargo, para tener más seguro el esquema que va a ser utilizado por los usuarios, se creará otro espacio de tablas llamado ESQUEMA para simbolizar y tener más controlado el esquema que es usado por los usuarios.

Creación de un tablespace para datos y otro para índices.

Estos tablespaces son la ubicación donde se almacenarán los objetos del esquema que crearemos. El tablespace para datos, con tamaño inicial de 1024 Mb, y auto extensible:

CREATE TABLESPACE "APPDAT" LOGGING DATAFILE '/export/home/oracle/oradata/datafiles/APPDAT.dbf' SIZE 1024M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO Tablespace para índices, con tamaño inicial de 512 Mb, y auto extensible CREATE TABLESPACE "APPIDX" LOGGING DATAFILE '/export/home/oracle/oradata/datafiles/APPIDX.dbf' SIZE 512M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

Creación del usuario que va a trabajar sobre estos tablespaces, y que será el propietario de los objetos que se se creen en ellos:

CREATE USER "APP" PROFILE "DEFAULT" IDENTIFIED BY "APPPWD" DEFAULT TABLESPACE "APPDAT" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;

Si no se especifica un tablespace, la BBDD le asignará el tablespace USERS, que es el tablespace que se utiliza por defecto para nuevos usuarios.

Sólo falta asignarle los permisos necesarios. Si se le asignan los roles 'Connect' y 'Resource' ya tiene los permisos mínimos, podrá conectarse y poder realizar las operaciones más habituales de consulta, modificación y creación de objetos en su propio esquema:

Curso de Oracle 11g

74

GRANT "CONNECT" TO "APP"; GRANT "RESOURCE" TO "APP";

Completamos la asignación de permisos con privilegios específicos sobre objetos para asegurarnos de que el usuario pueda realizar todas las operaciones que creamos necesarias:

GRANT ALTER ANY INDEX TO "APP"; GRANT ALTER ANY SEQUENCE TO "APP"; GRANT ALTER ANY TABLE TO "APP"; GRANT ALTER ANY TRIGGER TO "APP"; GRANT CREATE ANY INDEX TO "APP"; GRANT CREATE ANY SEQUENCE TO "APP"; GRANT CREATE ANY SYNONYM TO "APP"; GRANT CREATE ANY TABLE TO "APP"; GRANT CREATE ANY TRIGGER TO "APP"; GRANT CREATE ANY VIEW TO "APP"; GRANT CREATE PROCEDURE TO "APP"; GRANT CREATE PUBLIC SYNONYM TO "APP"; GRANT CREATE TRIGGER TO "APP"; GRANT CREATE VIEW TO "APP"; GRANT DELETE ANY TABLE TO "APP"; GRANT DROP ANY INDEX TO "APP"; GRANT DROP ANY SEQUENCE TO "APP"; GRANT DROP ANY TABLE TO "APP"; GRANT DROP ANY TRIGGER TO "APP"; GRANT DROP ANY VIEW TO "APP"; GRANT INSERT ANY TABLE TO "APP"; GRANT QUERY REWRITE TO "APP"; GRANT SELECT ANY TABLE TO "APP"; GRANT UNLIMITED TABLESPACE TO "APP";

Ahora en la imagen siguiente se ve el ejemplo de un esquema XML completo.

Curso de Oracle 11g

75

2.9 Gestión de datos y concurrencia

Oracle está concebido con el fin de manejar grandes cantidades de información, además de admitir conexiones concurrentes de multitud de usuarios hacia los mismos datos. La elección del entorno de trabajo (hardware, S.O. y tipología de la estructura cliente/servidor) será una decisión que estará acorde con las necesidades del propio sistema de información. Dos de sus principales funcionalidades aportadas por todo el SGBD Oracle son:

• Soporte y tratamiento de una gran cantidad de datos (Gbytes).

• Soporte de una gran cantidad de usuarios accediendo concurrentemente a los datos.

NOTA: Con el término “concurrencia” nos referimos a la capacidad de permitir el acceso a datos y a muchas funciones al mismo tiempo. Oracle provee a muchos usuarios el acceso simultáneo a sus servicios, implementando de esta forma la concurrencia.

Como se ha mencionado anteriormente, una de las tareas fundamentales de un DBA consiste en la eficiente y completa manipulación de los conjuntos de datos que componen la BBDD de los sistemas que se encuentran en explotación y desarrollo.

Con Oracle 11g, la gestión de datos, se puede realizar desde la consola principal, es decir desde el Oracle Enterprise Manager. Esta consola al ser un entorno gráfico, facilita enormemente cualquier tarea a realizar con nuestras BBDD, en la imagen inferior vemos concretamente las pestañas “Inicio” y “Movimiento de Datos”.

Curso de Oracle 11g

76

Como se puede observar en ambas pestañas, se tienen un gran número de opciones, desde configuración, preferencias y ayuda, hasta las propias de gestión de datos, como exportar e importar archivos, importar BBDD, clonación, transporte de Tablespaces, etc.

Desde esta consola realizaremos la mayoría de nuestras operaciones, a excepción de las instrucciones SQL.

Curso de Oracle 11g

77

2.10 Gestión de datos Undo

Tal y como explicamos anteriormente, UNDO es un tablespaces que contiene información de tipo “deshacer” para poder utilizar el comando rollback.

Espacio de “undo”: Conjunto de registros que guardan información, relativa a acciones realizadas por una transacción, necesaria para:

• -Recuperación de la base de datos. • -Proporcionar consistencia en lectura (imagen de los datos). • -Retroceder transacciones (“rollback”). • -Análisis de datos previos usando Oracle Flashback Query o recuperación lógica usando

Oracle Flashback (permite ver o recuperar datos en un momento dado del tiempo).

En caso de producirse una caída del sistema y quedar transacciones activas (sin validación –commit- ni retroceso – rollback-), Oracle recupera la información del espacio de “undo” y una vez hecho se realiza el “rollback” de dichas transacciones.

En la recuperación de base de datos y una vez aplicados los cambios guardados en los ficheros de “redo”, el espacio de “undo” sirve para deshacer los efectos de transacciones no validadas. Este proceso recibe el nombre de “rolling back” o “transaction recovery”.

Se usa la información en el espacio de “undo” para proporcionar una imagen coherente de un conjunto de datos respecto a un punto en el tiempo, aun cuando se estén produciendo cambios sobre el mismo.

Al validar la transacción (realización del “commit”) se libera la información pero no se destruye inmediatamente sino que permanece un tiempo para asegurar la consistencia en lectura de las consultas que comenzaron antes de la validación.

Los cambios realizados por otras transacciones que suceden durante la ejecución de la consulta no son tenidos en cuenta por esta. Los bloques alterados son reconstruidos a partir del espacio de “undo” y los datos obtenidos enviados a la consulta.

En ciertos casos, no pude devolverse un conjunto coherente de resultados, “snapshot”, para una consulta muy voluminosa. Ocurre porque no puede almacenarse suficiente información en el espacio de “undo”como para reconstruir los datos requeridos. Generalmente se produce si existe una gran actividad que fuerza a que se sobrescriban datos necesarios para lograr la consistencia. Y se genera el error:

ORA-01555 snapshot too old: rollback segment number “string” with name "string" too small

La solución es disponer de más espacio de “undo”.

Retroceder una transacción (“rolling back”) es deshacer cualquier cambio realizado a los datos por sentencias SQL de una transacción no validada.

En el retroceso de una transacción:

• Se aplican todos los cambios almacenados en orden inverso hasta llegar al dato original.

• Se libera cualquier bloqueo de datos efectuado por la transacción.

• Finaliza la transacción.

Curso de Oracle 11g

78

Existen dos formas de gestionar el espacio de “undo”:

• Usando espacios de almacenamiento de “undo” (modo automático). Es la forma recomendada por ser menos compleja de implementar y más eficiente en cuanto a gestión y se trata de la forma por defecto. Al crear la BBDD se crea automáticamente un espacio de “undo” llamado UNDOTBS1.

• Usando segmentos de “rollback” (modo manual). Esta tiende a desaparecer.

Ambas formas NO pueden simultanearse. La forma de gestión, manual o automática, puede determinarse mediante el parámetro de inicialización UNDO_MANAGEMENT.

MODO MANUAL

La inicialización UNDO_MANAGEMENT debe tener el valor MANUAL. Siendo una forma de gestión obsoleta basada en el uso de segmentos de “rollback” y es incompatible con el modo automático.

MODO AUTOMÁTICO

SYSTEM es el espacio de almacenamiento original y el primero que se crea. Contiene información para el funcionamiento de la misma, como el diccionario de datos y el segmento de “rollback” SYSTEM.

El espacio de almacenamiento SYSTEM tiene restricciones como el no poder renombrarse, borrarse o ponerse fuera de línea. El segmento de rollback SYSTEM no puede borrarse y el parámetro de inicialización UNDO_MANAGEMENT debe tener el valor AUTO o ser nulo (es el valor por defecto).

UNDO_MANAGEMENT = AUTO

Al arrancar se busca el primer espacio de “undo” disponible (existente desde la creación de la BBDD o creado posteriormente). Si no existe, se almacena la información de “undo” en el espacio de almacenamiento SYSTEM. Esta situación, genera un mensaje de error en el fichero de alertas.

Otros parámetros de inicialización relacionados son:

• UNDO_RETENTION. Parámetro dinamico (alter system set undo_retention= <valor>) que indica en segundos (por defecto 900), cuánto tiempo ha de permanecer, al menos, la informacion de “undo” disponible.

• Para espacios de “undo” autoextensibles, AUTOEXTEND, el sistema retiene la información de “undo” al menos el tiempo indicado mediante UNDO_RETENTION y ajusta el periodo de retención para satisfacer las necesidades de las consultas.

• Para espacios de “undo” de tamaño fijo, se ajusta al máximo posible basándose en el tamaño del espacio de “undo” y su historial de uso, e ignora UNDO_RETENTION a menos que se habilite “retention guarantee”.

• El ajuste automático de este parámetro no está soportado en LOBs, en este caso el periodo de permanencia de la información lo marca UNDO_RETENTION.

• UNDO_RETENTION se respeta si hay suficiente espacio. Si una transacción necesita espacio de “undo” y no hay el sistema empieza reutilizando espacio que guarda datos que no han expirado. Esto puede provocar que ciertas consultas fallen y muestren el mensaje “snapshot too old".

Curso de Oracle 11g

79

• -El tiempo que la información de “undo” se retiene en el espacio de almacenamiento de “undo” puede consultarse en la columna TUNED_UNDORETENTION de la vista dinámica V$UNDOSTAT.

Sólo en ciertas circunstancias es necesario fijar el parámetro de “Espacio de almacenamiento” con la opción AUTOEXTEND.

Fijar el periodo de retención para LOB (no se soporta ajuste automático dado que la información de “undo” se guarda en el propio segmento y no en el espacio de “undo”, así la BBDD intenta satisfacer el periodo de permanencia indicado mediante UNDO_RETENTION. Si no hay espacio, puede sobreescribirse información).

Se desea especificar la “retention guarantee”.

• UNDO_TABLESPACE. Parámetro dinámico que indica el espacio de almacenamiento de “undo” a usar en el arranque. Si se indica en modo manual, provoca error y falla el arranque.

• Si se omite, se elige el primer espacio de almacenamiento de “undo” disponible. Si no existe ninguno, se arranca sin esp.alm. de “undo” y las transacciones se ejecutan en el segmento de “rollback”.

• Un espacio de “undo” puede ser sustituido por otro mientras la instancia está ejecutándose.

NOTA: Al arrancar en modo automático, se ignora cualquier parámetro relativo al modo manual usado en el fichero de parámetros.

Para el uso en modo automático es necesario al menos un espacio de almacenamiento (“tablespace”) de “undo”. Al crear la BBDD con Database Configuration Assistant (DBCA), se crea un espacio de almacenamiento de “undo” autoextensible de nombre UNDOTBS1.

A pesar de que puedan existir múltiples “tablespaces de undo”, cada instancia sólo puede tener activo uno de ellos. Los datos de “undo” se manejan usando segmentos de “undo” que se crean y mantienen por el sistema. Son diversas las operaciones que pueden llevarse a cabo con este tipo de espacios de almacenamiento:

• Creación.

• Modificación.

• Borrado.

• Intercambio entre distintos espacios de “undo”.

• Modificar la clausula de retención.

Al crear la base de datos, mediante la clausula UNDO TABLESPACE de la sentencia CREATE DATABASE:

CREATE DATABASE CURSO25 ... UNDO TABLESPACE undotbs_01 DATAFILE

'/u03/oradata/CURSO25/undo01.dbf';

La operación de creación de la BBDD falla al completo si no es posible crear el espacio de “undo”.

Curso de Oracle 11g

80

Mediante la sentencia CREATE UNDO TABLESPACE (similar a CREATE TABLESPACE):

CREATE UNDO TABLESPACE undotbs1 DATAFILE '/u03/oradata/CURSO25/undo01.dbf'

SIZE 10M AUTOEXTEND ON RETENTION GUARANTEE;

Restricciones:

En la creación sólo puede especificarse la clausula DATAFILE, determinando Oracle el resto de atributos. Puede crearse más de un espacio de “undo” pero sólo uno estará activo.

Mediante la sentencia ALTER TABLESPACE. Se permite:

• Añadir un fichero de datos:

ALTER TABLESPACE UNDOTBS ADD DATAFILE '/u03/oradata/CURSO25/undo02.dbf' AUTOEXTEND

ON NEXT 1M MAXSIZE UNLIMITED;

• Redimensionar un fichero de datos:

ALTER DATABASE DATAFILE '/u03/oradata/CURSO25/undo01.dbf' RESIZE 20M

AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED; ALTER DATABASE DATAFILE

'/u03/oradata/CURSO25/undo01.dbf' RESIZE 100M;

• Comenzar o terminar una copia del fichero de datos.

• Renombrar un fichero de datos:

ALTER DATABASE RENAME FILE '/u03/oradata/CURSO25/undo01.dbf' TO

'/u03/oradata/CURSO25/tbsp_undo01.dbf';

• Poner en línea o fuera de línea un fichero de datos:

ALTER DATABASE DATAFILE '/u03/oradata/CURSO25/undo01.dbf' ONLINE/OFFLINE;

• Modificar claúsula “RETENTION”:

NO preservar los datos de “undo” que son aun válidos:

ALTER TABLESPACE UNDOTBS RETENTION NOGUARANTEE;

Preservar los datos de “undo” que son aun válidos.

ALTER TABLESPACE UNDOTBS RETENTION GUARANTEE;

Se emplea la sentencia DROP TABLESPACE:

DROP TABLESPACE <nombre_tbsp>;

Curso de Oracle 11g

81

Sólo es posible borrar si el espacio de “undo” no está en uso. Al borrar se elimina todo su contenido, incluso aquella información que no haya expirado. Se usa la sentencia ALTER SYSTEM SET para asignar un nuevo espacio de “undo”, que sustituye al que anteriormente se utilizaba:

ALTER SYSTEM SET UNDO_TABLESPACE=<nombre_tbsp>;

Se producirá error en caso de que el nuevo espacio de almacenamiento no exista, no sea de “undo” o se esté usando por otra instancia.

La BBDD permanece en línea mientras se realiza la operación y pueden ejecutarse transacciones. Al terminar el intercambio, todas aquellas transacciones comenzadas después de la sentencia, se asignan al nuevo espacio de “undo”.

Si existen transacciones pendientes de “commit”, en el antiguo espacio de “undo”, este pasa al estado PENDINGOFFLINE. Las transacciones siguen su curso pero no se usa para nuevas transacciones. Un espacio de “undo” puede existir en el estado PENDING OFFLINE incluso después de producirse el intercambio. En esta situación no puede usarse por otra instancia ni puede borrarse. Una vez finalizadas todas las transacciones pasa al estado OFFLINE.

Si se indica ALTER SYSTEM SET UNDO_TABLESPACE=''; se deasigna el espacio de “undo” actual y se pasa al siguiente disponible.

Oracle Database Resource Manager permite establecer a través del parámetro UNDO_POOL la cantidad de espacio de “undo” empleado en transacciones no validadas para un grupo de usuarios (es ilimitado por defecto). Cuando se excede dicho límite, la transacción que este generando dicha información de “undo” finaliza y no puede proseguirse generando “undo” para el grupo.

Resource Manager se gestiona a través de distintos paquetes PL/ SQL y permite optimizar la asignación de recursos entre sesiones concurrentes de BBDD:

(DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA, DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP,

DBMS_RESOURCE_MANAGER.CREATE_PLAN...)

• V$UNDOSTAT: Estadísticas para monitorizar y ajustar el espacio de “undo”.

• V$ROLLSTAT: Informa sobre el comportamiento de los segmentos “undo” del espacio de “undo”.

• V$TRANSACTION: Transacciones activas en el sistema.

• DBA_TABLESPACES.

• DBA_UNDO_EXTENTS: Extensiones en el espacio de “undo”.

• DBA_HIST_UNDOSTAT: Estadísticas de consumo de espacio de “undo”, concurrencia de transacciones, longitud de las consultas ejecutadas, etc.

Puede dimensionarse de tres formas:

• Empleando espacios de almacenamiento autoextensibles, de forma que incrementa su tamaño conforme es necesario (cláusula AUTOEXTEND).

• Cálculo usando método manual.

• Cálculo usando método automático: Undo Advisor.

Curso de Oracle 11g

82

V$UNDOSTAT muestra información, entre otras cosas, sobre el espacio de “undo” y puede usarse para estimar el mismo. Muestra estadísticas recogidas en intervalos de 10 minutos.

El espacio de “undo” necesario para retener la información un tiempo determinado (UNDO_RETENTION) es:

Espacio = UR * (Tasa_transaccion * tamaño_bloque)

Donde UR es el valor de UNDO_RETENTION, en segundos, y la tasa de transaccion el número máximo de bloques “undo” por segundo. Es preciso añadir al valor obtenido entre un 10% y un 20% de forma que pueda hacerse frente a situaciones imprevistas.

El ajuste automático del periodo de permanencia da mejores resultados con un espacio de almacenamiento de “undo” de tamaño fijo. Si el espacio NO es autoextensible puede estimarse su valor óptimo usando el “Undo Advisor”, empleando el paquete DBMS_ADVISOR.

“Undo Advisor” depende del repositorio Automatic Workload Repository (AWR). AWR es un registro de información histórica de rendimiento que incluye estadísticas de sistema, sesiones, sentencias SQL... La BBDD almacena las estadísticas recientes en la SGA, el proceso MMON las recoge cada hora y crea una instantánea AWR que se guarda en el espacio SYSAUX (registro histórico de uso de la BBDD).

Operaciones a seguir:

a. Determinar el periodo de tiempo a analizar (seleccionando los identificadores de instantánea, “snap”, apropiados). La vista DBA_HIST_SNAPSHOT muestra la información sobre instantáneas en el AWR (número de instantánea y fecha).

SQL >select snap_id, begin_interval_time, end_interval_time from DBA_HIST_SNAPSHOT

where begin_interval_time > '...' and end_interval_time < '...' order by end_interval_time desc;

b. Invocar Undo Advisor para determinar el número de tarea.

DECLARE tid NUMBER; tname VARCHAR2(30); oid NUMBER; BEGIN DBMS_ADVISOR.CREATE_TASK('Undo Advisor', tid, tname, 'Undo Advisor Task'); DBMS_ADVISOR.CREATE_OBJECT(tname, 'nombre_tbsp_undo', null, null, null, 'null',oid); DBMS_ADVISOR.SET_TASK_PARAMETER(tname, 'TARGET_OBJECTS', oid); DBMS_ADVISOR.SET_TASK_PARAMETER(tname, 'START_SNAPSHOT', snap_id_inicial); DBMS_ADVISOR.SET_TASK_PARAMETER(tname, 'END_SNAPSHOT', snap_id_final); DBMS_ADVISOR.SET_TASK_PARAMETER(tname, 'INSTANCE', 1); DBMS_ADVISOR.execute_task(tname); DBMS_OUTPUT.PUT_LINE ('Identificador de trabajo es: ' || tid ||' '|| tname); end; /

Curso de Oracle 11g

83

c. Consultar la vista DBA_ADVISOR_FINDINGS para averiguar las recomendaciones.

SQL >select owner, task_id, task_name, type, message, more_info from dba_advisor_findings where task_id= <numero_tarea -tid->

Puede generarse un informe de texto o HTML mediante AWR ejecutando:

SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql

También puede consultarse el resultado en Enterprise Manager a través del Automatic Database Diagnostic Monitor.

Tras validar, “commit”, una transacción la información de “undo” no es necesaria para retroceder la transacción ni para recuperaciones. No obstante, es útil para garantizar la consistencia en lectura y “flashback”. Por tanto, cuanto más tiempo se retenga, mejor.

Hay un valor que indica el periodo “undo retention” actual, esto es el periodo de permanencia: la cantidad mínima de tiempo que retiene la información de “undo” antes de sobreescribirse. Aquella información más antigua que este valor podrá sobreecribirse (“expired”) y aquella que tiene menor antigüedad que este valor es válida (“unexpired”) y se mantiene.

La BBDD ajusta automáticamente el valor para el periodo de permanencia en función del tamaño del espacio de almacenamiento de “undo” e información estadística de uso. Además puede fijarse un valor mínimo para el periodo de permanencia a través de la variable UNDO_RETENTION (por defecto son 900 segundos).

• Para espacios de “undo” de tamaño fijo. Se ignora y la BBDD ajusta al máximo posible, hasta que haya espacio, basándose en el tamaño del espacio de “undo” y la carga del sistema (a menos que “RETENTION GUARANTEE” esté activa). En este caso el periodo de permanencia suele ser mayor que la duración de la consulta activa más larga. No obstante, si el tamaño del espacio de “undo” es demasiado pequeño pueden producirse fallos en operaciones DML, o producirse un “snapshot too old" al no poder garantizar la consistencia en lectura.

• Para espacios de “undo” autoextensibles, AUTOEXTEND (como UNDOTBS1). El sistema retiene la información de “undo” al menos el tiempo indicado mediante UNDO_RETENTION. Si falta espacio, no sobreescribe y se autoextiende. Si se alcanza un tamaño máximo, indicado por la clausula MAXSIZE, comienza a sobreescribir la información. No obstante, este periodo de permanencia puede ser insuficiente para operaciones “flashback” y generar “snapshot too old”. En dicho caso, puede fijarse el valor del parámetro UNDO_RETENTION a un valor igual a la mayor operación “flashback” que se pretenda realizar o cambiar a espacio de “undo” de tamaño fijo.

En definitiva, se intenta soportar la consulta más larga y evitar el error “snapshot too old”. Es necesario suponer que el ajuste automático del periodo de permanencia no es soportado por LOB. Para estos objetos, el valor es el fijado por el parámetro UNDO_RETENTION.

En operaciones DML de gran carga no se garantiza UNDO_RETENTION. Para asegurar que el espacio de “undo” necesario siempre estará disponible durante el periodo indicado se emplea la claúsula RETENTION GUARANTEE.

El tiempo de permanencia de los datos en el espacio de “undo” puede consultarse en la columna TUNED_UNDORETENTION de la vista V$UNDOSTAT. La vista presenta estadísticas en periodos de diez minutos, una fila de datos por periodo, para los últimos 4 días (más allá de este

Curso de Oracle 11g

84

tiempo han de consultarse en la vista DBA_HIST_UNDOSTAT).El valor de “tuned_undoretention” está en segundos.

select to_char(begin_time, 'DD-MON-RR HH24:MI') begin_time, to_char(end_time, 'DD-MON-RR HH24:MI') end_time, tuned_undoretention from v$undostat order by end_time;

BEGIN_TIME END_TIME

04-JUL-10 00:01 04-JUL-10 00:11 12100

TUNED_UNDORETENTION

07-JUL-10 23:21 07-JUL-10 23:31 86700

La cláusula “RETENTION GUARANTEE” permite garantizar el éxito de consultas de larga duración u operaciones “flashback”. Al activar la claúsula se garantiza el mínimo “undo_retention” especificado, de forma que la BBDD nunca sobreescribe datos incluso aunque las transacciones puedan fallar por falta de espacio en el espacio de “undo”. Esto puede hacer fallar operaciones DML, sin embargo. Para desactivar la garantía de retención debe usarse la cláusula “RETENTION NOGUARANTEE”.

Esta cláusula puede usarse al crear el espacio de almacenamiento de “undo” (CREATE UNDO TABLESPACE o CREATE DATABASE) o con ALTER TABLESPACE. Y su valor actual puede consultarse en la vista DBA_TABLESPACES (columna RETENTION, con valores GUARANTEE, NOGUARANTEE o NOT APLY -espacios de almacenamiento que no son de “undo”-).

Curso de Oracle 11g

85

2.11 Implementación de seguridad en bases de datos Oracle

Oracle Database 11g manifiesta una precisa integración con el sistema de seguridad nativo de Windows para proteger mejor las aplicaciones.

En un entorno cliente/servidor, existen tres opciones para los sitios que desean aprovechar al máximo las credenciales Windows o los servicios de autenticación para unirse a la BBDD de Oracle:

• La BBDD Oracle incluye Windows Native Authentication Adapter, que se instala automáticamente con Oracle Net en el servidor cliente. Este adaptador permite a los usuarios de base de datos tener capacidades de conexión única al utilizar las credenciales de los usuarios Windows para la autenticación de la base de datos. Para utilizar esta característica, los usuarios de Windows deben estar definidos como usuarios de base de datos externos. Estos usuarios pueden tener roles externos asignados en Microsoft Active Directory Services.

• Oracle Advanced Security, una opción de base de datos, soporta la autenticación de la base de datos utilizando tickets Kerberos emitidos por Microsoft Key Distribution Center (MSKDC). Esta capacidad permite a los usuarios a los que se les ha emitido un ticket Kerberos válido conectarse a sus cuentas de BBDD sin tener que introducir el usuario y la contraseña.

• La opción Oracle Advanced Security también soporta la autenticación de base de datos sobre SSL. Microsoft Certificate Store (MCS) puede emitir este certificado. Para utilizar esta característica, el certificado debe estar contenido en un Oracle Wallet configurado en el cliente. Oracle Wallet puede almacenarse tanto en el área del perfil de usuario de Windows Registry como en la ubicación de un archivo del cliente.

Para los entornos web, la integración con MCS es posible a través de Oracle Fusion Middleware (FMW).

Además de respaldar los mecanismos de autenticación basados en contraseñas, Oracle FMW respalda la autenticación basada en certificados. Esta certificación puede ser generada por MCS. Para utilizar la autenticación basada en certificados, un certificado de usuario debe completarse en el wallet browser y en el ingreso de usuario correspondiente en Oracle Internet Directory.

Oracle Wallets en Windows Registry

Oracle Database wallets puede almacenarse en Windows Registry, brindando una mayor seguridad para los clientes Windows. Sin esta característica, los wallets de Oracle a menudo se almacenan en el sistema de archivos Windows. Si los permisos de archivos del sistema operativo no son seguros, los wallets de Oracle tampoco lo son.

En los sistemas Windows, por consiguiente, la seguridad de la infraestructura de claves públicas (PKI) se mejora al almacenar Oracle wallets en el área del perfil de usuarios de Windows Registry. Esta área de registro es accesible solamente para el usuario debidamente registrado. Se pueden utilizar y almacenar múltiples Oracle wallets en el área de los perfiles.

La conexión única para las aplicaciones PKI de Oracle se configura a través de las herramientas de Oracle Wallet Manager y Oracle Enterprise Login Assistant. Wallet Manager crea Oracle wallets encriptados, mientras que Enterprise Login Assistant crea wallets desencriptados. Los wallets desencriptados son luego utilizados por las aplicaciones PKI de Oracle para la autenticación SSL. Ambas herramientas han sido mejoradas para soportar el almacenamiento y la ubicación de Oracle wallets en el registro, así como el sistema de archivos por defecto, en caso de ser necesario.

Curso de Oracle 11g

86

Integración con Microsoft Certificate Store

La integración de la base de datos Oracle con Microsoft Certificate Store permite a las aplicaciones PKI de Oracle interoperar con los productos que utilizan Windows PKI. Cuando esta característica está activada, la seguridad de Oracle PKI utiliza Microsoft CryptoAPIs para acceder a Microsoft Certificate Store. Los CryptoAPI se utilizan para operaciones, como el ingreso, la encriptación, la desencriptación y la validación. Wallet Resource Locator (WRL) determina el tipo PKI y brinda toda la información necesaria para localizar el wallet.

Con esta característica, las aplicaciones Oracle, y las que no lo son, pueden aprovechar el mismo grupo de credenciales PKI (por ejemplo, certificados, claves, lista de revocaciones y puntos de confianza) para los servicios de seguridad de claves públicas, como la autenticación y la encriptación.

Características de Seguridad de Windows

La implementación de Kerberos en Oracle utiliza los algoritmos de encriptación segura como 3DES y AES que están disponibles en DES. Esto hace que utilizar Kerberos sea más seguro. El mecanismo de autenticación de Kerberos en la BBDD Oracle respalda los siguientes tipos de encriptación:

• DES3-CBC-SHA

• RC4-HMAC

• AES128-CTS

• AES256-CTS

La implementación de Kerberos ha sido mejorada para interoperar sin dificultades con Microsoft Key Distribution Center. Asimismo, el nombre principal de Kerberos ahora puede contener más de 30 caracteres. La cantidad de caracteres permitidos en el nombre del usuario de base de datos ya no está restringida. Estas mejoras permiten asegurar mejor las aplicaciones con las bases de datos Oracle y Windows.

Características de seguridad y cumplimiento de normas:

• Cifrar datos en la base de datos

• Cifrado a nivel de tablespaces

• Protección de clave maestra basada en hardware

• Cifrar Backups (Oracle Secure Backup)

• Backup compression

• Añade controles de acceso a usuarios administradores (Database Vault)

• Consolidar y monitorizar información de auditoría (Audit Vault)

Para lograr una mayor seguridad en ORACLE 11g, y como vimos en el apartado “Administración de seguridad de usuario”, hay que prestar especial atención a la creación de los usuarios y sus roles, esto no lo volveremos a explicar en este cápitulo pero veremos sus privilegios y la política de Password.

Curso de Oracle 11g

87

Garantizando y Revocando Privilegios

Tipos de privilegios:

Objetos:

Permisos sobre objetos: tablas, índices, stored procedures, etc. Con este podemos permitir un privilegio de objeto a un usuario y este pueda también dar este privilegio (WITH GRANT OPTION), no está disponible cuando el que va hacer garantizado es un rol.

Observación: Cuando revocamos un privilegio a un usuario y este a la vez entregó privilegios a un tercero, el tercero perderá el privilegio de acceder al objeto del primero.

Privilegio de Objetos: select, insert, update, delete, alter table, debug, execute, etc.

Sistema:

Permisos sobre BBDD tales como: crear usuarios, alterar la base de datos, etc. Permite privilegios de sistema a un usuario y este usuario dar el privilegio WITH ADMIN OPTION.

Observación: Si un usuario otorga privilegios de sistema a otro usuario con la opción with admin option y a la vez este segundo usuario le da privilegios a un tercero. Luego cuando se haga un revoke al segundo, el tercero sigue manteniendo el privilegio otorgado.

Privilegio de Sistema: alter database, alter system, audit system, create any (table – index – job – procedure – sequence – trigger - view), debug any procedure, execute any program, create procedure, create role, create session, lock any table, flashback any table, sysdba, sysoper, etc.

Roles:

Permite agrupar privilegios de objetos y sistemas. Para habilitar un rol: set role nombre_rol identified by password.

El password se setea de la siguiente forma: create rol nombre_rol identified by password.

Con: alter user nombre default role lista_roles. Carga automáticamente los roles del usuario

Las vistas más utilizadas son: dba_role_privs (Privilegio de roles), dba_tab_privs (Privilegio de objetos de tablas) y dba_sys_privs (Privilegio de Sistemas). Adicionalmente tenemos:

• session_privs = Muestra los privilegios de sistema y objetos asignado s a la sesión.

• sessions_roles = Muestra los roles asignados a la sesión.

Podemos crear roles con password: create role rol1 identified by mipassword;

Para habilitar un rol con password en una sesión:

set role rol1 identified by mipassword, rol2;

set role all except rol1

set role none => Deshabilita todos.

Curso de Oracle 11g

88

Aplicando Políticas de Passwords

Forzando a n intentos fallidos de password el bloqueo del user por un tiempo determinado:

ALTER PROFILE nombre LIMIT FAILED_LOGIN_ATTEMPTS #intentos PASSWORD_LOCK_TIME nMinutos (Vuelve a desbloquearlo) | UNLIMITED PASSWORD_LIFE_TIME x PASSWORD_GRACE_TIME y

El password_life_time especifica el máximo número de días que un password se puede mantener vigente. El password_grace_time es el número de días después del primer login que comenzará a recordarle del vencimiento del password. Limita el password a m dias y durante n dias le recordará esto.

ALTER PROFILE nombre LIMIT PASSWORD_LIFE_TIME m-n dias PASSWORD_GRACE_TIME n dias

Reuso de Passwords

Especifica el número de días que un password puede ser reusado y después de cuantos passwords cambiados.

CREATE PROFILE nombre LIMIT PASSWORD_REUSE_TIME #dias | UNLIMITED PASSWORD_REUSE_MAX n | UNLIMITED

Requiere que al menos n passwords cambien y durante #dias para poder reusar un password.

Nota: Existe un archivo en llamado $ORACLE_HOME/rdbms/admin/utlpwdmg.sql el cual contiene una función PL/SQL con complejidad alta para poderla asociar a un profile.

Ejemplo:

ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION verify_function;

Curso de Oracle 11g

89

2.12 Mantenimiento de una Base de Datos

Una vez más nos remitiremos a la instalación de Oracle 11g, concretamente al “Paso 11”, de su instalación, donde una de las opciones es el “Activar tareas de mantenimiento automáticas”, de esta forma permitimos que sea Oracle, el que gestione de forma automática las tareas de mantenimiento, como por ejemplo, las estadísticas e informes.

Estas tareas se pueden modificar a traves del “Enterprise Manager” de Oracle en cualquier momento. Ya que con una sola interfaz de su administración, características de autodiagnóstico y autoajuste, Oracle Database 11g simplifica el mantenimiento de su Almacén de Datos en constante expansión.

Otros tipos de estas tareas de Mantenimiento rutinario de la base de datos son:

• Copia de seguridad periódica de la base de datos.

• Y asegurarse de que haya suficiente espacio libre en disco para las operaciones normales y aumentar el espacio en disco según sea necesario.

Para acceder a la configuración de “Mantenimiento automático” desde la consola “Enterprise Manager”, basta con pulsar en “Central de Planificadores”, en la zona inferior de cualquiera de las pestañas. Este vínculo nos da acceso a la ficha “Planificadores”, desde la cual vemos el vínculo a “Tareas de mantenimiento automáticas”, tal y como se aprecia en la imagen.

Curso de Oracle 11g

90

Y una vez que pulsemos en él, accederemos a la ficha de “Tareas de mantenimiento automáticas”.

Curso de Oracle 11g

91

Utilice la página de Tareas de Mantenimiento Automáticas para:

• Ver las tareas de sistema ejecutadas y las ventanas planificadas para un período de tiempo.

• Acceder a una página en la que puede configurar las tareas de sistema.

• Acceder a las páginas de resúmenes y las recomendaciones para los tipos de tareas del sistema.

Elemento Descripción

Configurar Se puede configurar los valores para los tres tipos de tareas de sistema y asignar grupos de ventanas de día de la semana para el mantenimiento automático.

Fecha de inicio e intervalo Seleccione una fecha y un intervalo de tiempo y, a continuación, haga clic en este botón para ver las tareas y las ventanas planificadas para este período de tiempo.

Asesor de Segmentos Permite ir a la página Recomendaciones del Asesor de Segmentos para ver el resumen de espacio para los segmentos evaluados del tablespace.

Asesor de Ajustes SQL Automático

Permite ir a la página Resumen de Resultados de Ajustes SQL Automáticos en la que puede ver un gráfico resumido de las actividades que muestra la ventana de las actividades de tarea en el SQL de carga.

Entre las distintas tareas a realizar, podemos acceder a su configuración pulsando en el botón de configurar que se encuentra en la parte superior izquierda.

Curso de Oracle 11g

92

Utilice la página Configuración de Tareas de Mantenimiento Automáticas para:

• Activar, desactivar o configurar los tres tipos de tareas automáticas de sistema.

• Asignar una o más ventanas de día de la semana a uno o más tipos de tareas automáticas de sistema.

Elemento Descripción Mostrar SQL Nos dirige a la página Mostrar SQL en la que se puede ver el código

SQL creado al modificar la configuración de las tareas de mantenimiento.

Estado Global Seleccione la opción Desactivado de este conmutador global desactivando así los tres valores de tarea, independientemente de sus valores individuales.

Valores de Tareas Permite activar o desactivar los valores para las siguientes tareas de sistema:

• Recopilación de Estadísticas del Optimizador: Haga clic en Configurar para editar los parámetros por defecto de las tareas de estadísticas del optimizador.

• Ajustes SQL Automáticos: Haga clic en Configurar para proporcionar los valores de ajustes SQL automáticos.

Asignación de Grupos de Ventanas de Mantenimiento

Utilice esta tabla para seleccionar una combinación de tareas de sistema y ventanas de día de semana asociadas que desee automatizar. Si desea incluir o excluir ventanas de la tabla de asignaciones, haga clic en Editar Grupo de Ventanas. Si desea modificar únicamente alguna ventana de día específica, haga clic en Editar cuando aparezca la página Ver Ventana.

Desde aquí, a su vez podemos profundizar aun más en esta configuración, esto no esta detallado en el presente manual, pero si le invitamos que explore usted las distinas opciones de pantalla en su consola.

Otra opción a examinar es la “Página Mantenimiento de la Base de Datos de Cluster”.

Mantenimiento de la Base de Datos de Cluster

Utilice la página Mantenimiento de la Base de Datos de Cluster para realizar tareas, como importar y exportar datos a archivos y de archivos, cargar datos en una base de datos Oracle desde un archivo, y recopilar, estimar y suprimir estadísticas a la vez que mejora el rendimiento de las consultas SQL frente a los objetos de BBDD.

La página Mantenimiento de la Base de Datos de Cluster está formada por las siguientes secciones:

• Alta Disponibilidad

• Movimiento de Datos

• Tabla Instancias

Curso de Oracle 11g

93

Sección Alta Disponibilidad

Utilice las funciones de la sección Alta Disponibilidad para:

• Planificar Copia de Seguridad: Utilice al Asistente de Copia de Seguridad para realizar la copia de seguridad del contenido de la base de datos en disco, cinta o ambos.

• Realizar Recuperación: Utilice el Asistente de Recuperación para restaurar o recuperar una BBDD, tablespaces, archivos de datos, logs o realizar flashbacks de tablas o recuperar objetos.

• Gestionar Copias de Seguridad Actuales: Se puede utilizar para buscar y mostrar una lista de juegos de copias de seguridad o copias de seguridad, así como para realizar operaciones como comprobaciones cruzadas y supresiones de copias, archivos o juegos seleccionados.

• Gestionar Puntos de Restauración: Utilice esta función para crear o suprimir puntos de restauración definidos a los que pueda volver en el futuro.

• Informes de Copia de Seguridad: Muestra trabajos de copia de seguridad para la base de datos.

• Valores de Copia de Seguridad: Configura los valores para la utilidad de copia de seguridad.

• Valores de Recuperación: Configura los valores para la utilidad de recuperación.

• Valores del Catálogo de Recuperación: Registra la BBDD con un catálogo de recuperación.

• Dispositivo y Medio Físico de Oracle Backup: Funciones de administración de medios físicos, dispositivos y hosts para operaciones de restauración y copia de seguridad en cinta.

• Copia de Seguridad y Restauración de Sistema de Archivos: Realiza una copia de seguridad o restaura el sistema de archivos de base de datos.

• Servicios de Base de Datos Gestionados por Cluster: Utilice esta página para ver una lista de servicios para el cluster, las instancias en las que se está ejecutando actualmente cada servicio y el estado de cada servicio. También puede iniciar o parar un servicio, activarlo o desactivarlo.

Sección Movimiento de Datos

Utilice las funciones de la sección Movimiento de Datos para realizar las siguientes tareas:

• Exportar a Archivos de Exportación: Utilice el Asistente de Exportación para exportar el contenido de una BBDD, de los objetos de los esquemas del usuario y de las tablas.

• Importar de Archivos de Exportación: Utilice el Asistente de Importación para importar el contenido de objetos y de tablas.

• Importar de Base de Datos: Utilice el asistente de importación de BBDDpara importar el contenido de una BBDD.

• Cargar Datos de Archivos de Usuario: Utilice el Asistente de Carga de Datos de Archivo para cargar datos de una BBDD que no es Oracle en una base de datos Oracle.

• Controlar Trabajos de Importación y Exportación: Utilice esta función para controlar el estado de trabajos de importación y exportación actuales y terminados.

Curso de Oracle 11g

94

• Transportar Tablespaces: Utilice esta función para mover un subjuego de una BBDD Oracle de una base de datos Oracle a otra, incluso entre plataformas diferentes.

• Configuración de Streams: Establece las opciones de configuración de Streams.

• Gestión de Streams: Gestiona Streams, que proporcionan las capacidades necesarias para crear y operar aplicaciones y empresas distribuidas, almacenes de datos y soluciones de alta disponibilidad.

Tabla Instancias

En la tabla Instancias se muestran las instancias de la BBDD de cluster, disponibilidad, alertas, violaciones de política, etc. Haga clic en un nombre de instancia para ir a la página de dicha instancia.

Curso de Oracle 11g

95

2.13 Gestión del rendimiento

Gestionar y optimizar el rendimiento de los procesos contra la BBDD. Esta será una de las funciones más importantes del administrador, porque de nada sirve tener una buena infraestructura montada si los colapsos y la lentitud en los accesos son constantes. Para acceder, seleccionamos en la ventana principal del “Enterprise Manager”, el uso de CPU del HOST, pulsando en el gráfico directamente.

Otra página realcionada con el rendimiento es la de rendimiento de la BBDD, que explicamos a continuación.

Página Rendimiento de la Base de Datos

Utilice esta página para obtener un repaso rápido de las estadísticas de rendimiento para esta base de datos que forma parte del entorno Enterprise Manager. Con esta información, se puede determinar si debe agregar o redistribuir los recursos de memoria.

Algunas de las tareas disponibles en esta página son:

• Ver los problemas potenciales fuera y dentro de la base de datos actual. • Identificar la causa de los cuellos de botella. • Acceder a la información para SQL, sesiones, archivos y objetos principales. • Ejecutar ADDM para realizar un análisis de rendimiento. • Generar un informe de diagnóstico de rendimiento según los datos de ejemplo de sesión. • Cambiar al modo Acceso a Memoria para sistemas lentos o bloqueados. • Acceder a otros enlaces de control.

Curso de Oracle 11g

96

Puede desplegar los enlaces que aparecen junto a los diagramas para realizar las siguientes tareas:

• Identificar la causa de los problemas de rendimiento y resolverlos.

• Decidir si es necesario agregar o redistribuir recursos para resolver problemas de rendimiento.

• Ajustar su plan SQL y su esquema para una mejor optimización.

Elemento Descripción

Valores Haga clic en este botón para ir a la página Valores de Rendimiento, y elegir las opciones siguientes:

• Seleccionar cuál de los cuatro separadores de la página Rendimiento deberían aparecer inicialmente como valor por defecto.

• Seleccionar qué diagramas desea que aparezcan como valores por defecto para los separadores Rendimiento Global y E/S.

• Seleccionar si desea mostrar los valores de línea base en los diagramas de Media de Sesiones Activas, E/S, Rendimiento Global y Servicios.

Ver Datos El intervalo de refresco que seleccione afectará al tipo de dato mostrado y a la disponibilidad de determinados tipos de enlaces de control adicionales. Si selecciona Tiempo Real en la lista Ver Datos, estarán disponibles:

• Bloqueos de Instancia • Sesiones Bloqueantes • Actividad de Instancias • Consumidores Principales • Instantáneas • Sesiones de Búsqueda • SQL Duplicado • Actividad de Sesión Superior • Análisis de Bloqueo • Buscar SQL • Líneas Base AWR • Juegos de Ajustes SQL

Si selecciona Histórico en la lista desplegable Ver Datos, aparecerá otra página con el diagrama Selección de Intervalo Histórico. Arrastre el recuadro sombreado al intervalo de 24 horas deseado para actualizar los diagramas. La vista histórica proporciona los siguientes enlaces de control:

• Actividad de Instancias • Instantáneas • SQL Histórico • Juegos de Ajustes SQL

Diagrama Host

Este muestra los problemas potenciales fuera de la BBDD. La carga media es una media móvil de la longitud de la cola de ejecución. Esta indica el nivel de contención para el tiempo de CPU. Si la carga media no está disponible, se mostrará el uso de CPU. Haga clic en la leyenda Carga Media situada a la derecha del diagrama para ir a la página Rendimiento del Host.

Curso de Oracle 11g

97

Ejecutar ADDM Ahora

Este botón crea una nueva instantánea AWR y ejecutar ADDM en esta y la anterior. Además, en el diagrama Sesiones pueden aparecer uno o varios iconos ADDM. Al hacer clic en un icono, se accede al Monitor de Diagnóstico de Base de Datos Automático (ADDM) donde puede ver un análisis de rendimiento de la base de datos, ver detalles de instantánea, imprimir un informe completo del análisis o ejecutar ADDM de forma inmediata para un análisis nuevo de rendimiento.

Ejecutar Informe ASH

Haga clic para generar un informe Historial de Sesiones Activas (ASH). Este informe de diagnóstico del rendimiento de la BBDD se basa en datos de ejemplo de sesión en un período de tiempo determinado.

Diagrama Media de Sesiones Activas

Muestra posibles problemas dentro de la BBDD. Las categorías, llamadas clases de espera, muestran qué volumen de la BBDD está esperando un recurso, como CPU o E/S del disco. El diagrama muestra la carga de la instancia e identifica cuellos de botella del rendimiento. Para identificar áreas de problemas de forma rápida, el diagrama muestra un bloque de color más grande para indicar problemas más graves. Haga clic en la clase de espera mayor en el punto más alto, o bien haga clic en la clase de espera correspondiente (resaltada en amarillo) en Detalles de la Actividad. Cualquiera de estas acciones lleva a la página Sesiones Activas en Espera para la clase de espera seleccionada, que muestra SQL principal, sesiones, archivos y objetos para la clase de espera y los eventos de espera asociados. Haga clic en el enlace Actividad de Sesión Superior para ir a Actividad de Sesión Superior, para mostrar todas las clases de espera y estadísticas de estas métricas:

• Sesiones Activas • SQL Principal • Sesiones Principales • Servicios Principales • Módulos Principales • Acciones Principales • Archivos Principales • Objetos Principales • PL/SQL Principal

Diagramas de Rendimiento Global

Los diagramas muestran cualquier contención que aparezca en el diagrama Media de Sesiones Activas y también cuánto trabajo está realizando la BBDD del usuario.

• La vista Por Segundo muestra las conexiones, las transacciones, las lecturas físicas y el tamaño de redo por segundo.

• La vista Número por Transacción muestra sólo las lecturas físicas por transacción y el tamaño de redo por transacción.

Diagramas de E/S

• Latencia para Lecturas de Único Bloque Síncrono. La mayoría de sistemas muestran un rendimiento correcto si este diagrama muestra una latencia inferior a 10 mseg.

• Diagramas de Función: Muestran componentes como RMAN, lecturas directas y escrituras directas. Haga clic en una de las leyendas en la parte derecha de los diagramas para ir a la página Detalles de E/S, donde puede ver datos históricos o en tiempo real para detalles en MB de E/S o solicitudes de E/S.

Curso de Oracle 11g

98

• Diagramas de Tipo de E/S: Muestran componentes como lecturas pequeñas, escrituras pequeñas, lecturas grandes y escrituras grandes.

• Diagramas de Grupo de Consumidores: Muestran grupos de consumidores de recursos.

Gráficos de Ejecución en Paralelo

Muestran las métricas de sistema relacionadas con consultas paralelas. Los diagramas muestran consultas paralelas que estaban esperando un evento de espera concreto que ha significado los mayores porcentajes de actividad de sesión.

Diagrama Servicios

Muestra los servicios principales en espera para el evento de espera correspondiente durante el período de tiempo mostrado. Sólo se muestran servicios activos. Haga clic en una de las leyendas de servicio en la parte derecha de los diagramas para ir a la página Actividad de Servicio, donde puede ver datos en tiempo real que muestran la carga de las sesiones para todas las clases de espera asociadas al servicio.

Interpretación del Diagrama Host

Los valores altos indican que hay muchos usuarios en espera en línea para el tiempo de CPU. Compare los valores con los de CPU del diagrama Sesiones. Si el valor de sesiones es bajo y el de la longitud de la cola de ejecución es alto, indica que hay algo más en el host que no es la BBDD que consume CPU.

Si ha seleccionado el modo Acceso a Memoria, el diagrama Host no muestra inicialmente datos históricos, excepto si la pantalla se ha cargado recientemente y los datos históricos en caché están disponibles. Los datos del Host se almacenan en caché a partir de la hora a la que se accedió a la pantalla por primera vez y llenan gradualmente el historial en el diagrama Host.

Interpretación del Diagrama Media de Sesiones Activas

El recuento de sesiones se calcula clasificando el tiempo que han consumido todas las sesiones activas en el último intervalo de ejemplo en diferentes clases de espera, sumándole la cantidad de cada clase de espera y dividiéndolo por el intervalo. Por ejemplo, si hay 3 sesiones activas en el último intervalo de 15 segundos y cada una ha empleado la mitad del tiempo en la CPU (7,5 segundos cada una) y la otra mitad han estado inactivas, aparecerán 3 x 7,5 / 15 = 1,5 sesiones activas en la CPU para este intervalo.

Compare los máximos del diagrama Media de Sesiones Activas con los de los diagramas Rendimiento Global de Instancia. Si el diagrama Media de Sesiones Activas muestra numerosas sesiones en espera, lo que indica contención interna, pero el rendimiento global es alto, la situación será aceptable. Probablemente, el rendimiento de la base de datos sea también eficaz si la contención interna es baja y el rendimiento global es alto. No obstante, si la contención interna es alta y el rendimiento global es bajo, habrá que considerar un ajuste en la base de datos.

Seleccionar el modo Acceso a Memoria para sistemas lentos o bloqueados.

Puede hacer clic en el enlace Controlar Modo de Acceso a Memoria en la sección Enlaces Relacionados para activar el modo Acceso a Memoria. La página Rendimiento de la BBDD reaparece con un botón Desactivar Modo de Acceso a Memoria y un botón Cambiar a Modo de Acceso SQL en la esquina superior derecha.

Curso de Oracle 11g

99

Puede desactivar temporalmente el modo Acceso a Memoria haciendo clic en este botón, con lo que reaparece la página Rendimiento de la BBDD en modo Acceso SQL. Para volver a activar el modo Acceso a Memoria, haga clic en el enlace Controlar Modo de Acceso a Memoria y después en Activar Modo de Acceso a Memoria cuando reaparezca la página Rendimiento de la BBDD.

En el modo Acceso a Memoria, se recuperan estadísticas de rendimiento directamente desde el Área Global Compartida (SGA) mediante las llamadas optimizadas/sencillas a nivel de sistema como una alternativa para SQL. El modo Acceso a Memoria evita el cálculo asociado al análisis y ejecución de sentencias SQL, por lo tanto es perfecto para casos graves de contención de caché de biblioteca que pueden evitar que la instancia se controle en modo SQL. Se debe cambiar al modo Acceso para sistemas lentos o bloqueados.

Las páginas en modo Acceso a Memoria contienen datos de ejemplo a una frecuencia mayor que las páginas en modo SQL. Por este motivo, los diagramas pueden ser algo diferentes del modo SQL. Enterprise Manager proporciona mejor información acerca del lugar de inicio y finalización de los eventos y puede también manejar eventos de corta duración que de otro modo, se podrían perder.

Capacidades de SVG

Los diagramas, como los que aparecen en la página Rendimiento, están diseñados para beneficiarse de las capacidades de SVG.

Curso de Oracle 11g

100

2.14 Conceptos de Backup y Recuperación

Para conseguir un funcionamiento seguro de la BBDD y una pronta recuperación ante fallos se necesita planear una estrategia de copias de seguridad (backup), y de recuperación (Recovery). Y el primer paso es definir las características fundamentales de la implantación. El segundo paso es establecer unos planes de copias de seguridad y recuperación que nos permitan asegurar los objetivos.

El Servicio de Copias de Respaldo (VSS) en Windows permite realizar backups de volumen mientras las aplicaciones, como Oracle, continúan realizando escrituras en los volúmenes. Una copia “de respaldo” es una snapshot de los datos de un volumen o componente en un momento determinado. Un grupo de copias de “respaldo” es una recopilación de copias tomadas en el mismo momento. Oracle ahora se integra con VSS para permitir el backup y la recuperación de los archivos de la BBDD Oracle.

VSS incluye una interfase específica de Windows que permite la coordinación entre las personas que solicitaron el backup de datos, las personas que actualizan los datos en el disco y los proveedores que administran el almacenamiento. Un beneficio clave es la capacidad de utilizar una aplicación activada por VSS para realizar un backup online de toda la BBDD.

El escritor VSS de Oracle es un servicio de Windows que coordina una instancia de BBDD Oracle y otros componentes VSS. El servicio del escritor, el cual se inicia conforme a una cuenta de usuario con privilegios SYSDBA, se ejecuta de modo separado desde la instancia de BBDD. El escritor Oracle VSS soporta las copias de respaldo basadas en componentes, que son un grupo de archivos de la BBDD. Durante el backup, el escritor VSS de Oracle guarda el redo generado durante la creación de una snapshot en un documento de metadatos. Durante una operación de restauración, el escritor automáticamente extrae el redo de un documento de metadatos y lo aplica a los archivos restaurados de una snapshot.

El escritor VSS de Oracle también soporta copias de respaldo basadas en volúmenes, las cuales son una snapshot de volúmenes o unidades completas. La BBDD Oracle colocará sus archivos en el estado adecuado para crear copias de respaldo. Por ejemplo, los archivos de datos se colocan en modo de backup activo y se crea un nuevo archivo de control de snapshots para la BBDD, en modo ARCHIVELOG. El escritor VSS de Oracle excluye archivos como el archivo de control actual y los archivos redo online de las copias de respaldo. El escritor emite un error si no se pudo sacar la snapshot. Por ejemplo, si una base de datos NOARCHIVELOG se abre en modo de lectura/escritura, luego el escritor emite un error indicando que la snapshot no ha sido posible.

Curso de Oracle 11g

101

2.15 Backup de Base de Datos

Planificar Copia de Seguridad

Utilice la página Estrategia del Asistente de Planificación de Copia de Seguridad para:

• Planificar Copia de Seguridad Sugerida por Oracle o Planificar Copia de Seguridad Personalizada como estrategia para el trabajo de copia de seguridad.

• Especificar si se debe crear una copia de seguridad de la base de datos completa, de archivos específicos o de todos los archivos de recuperación.

• Introducir las credenciales de host. Planificar Copia de Seguridad Sugerida por Oracle, que es automática y se basa en el disco,

la cinta o la configuración de disco y cinta.

Planificar Copia de Seguridad Personalizada, que permite desarrollar una estrategia utilizando opciones avanzadas. Según la opción seleccionada, el Asistente de Copia de Seguridad mostrará distintas páginas.

Puede configurar el área de recuperación desde el enlace Configurar Valores de Recuperación delseparador de la página de inicio de la BBDD. Con Área de Recuperación, Enterprise Manager puede automatizar la gestión de espacio en el disco para las copias de seguridad. Cuando lo haya planificado, la configuración de la BBDD no influirá en el trabajo de copia de seguridad.

En la página Planificar Copia de Seguridad están disponibles los campos y los botones siguientes:

Elemento Descripción

Botón Planificar Copia de Seguridad Sugerida por Oracle

Permite planificar una copia de seguridad utilizando la estrategia de copia de seguridad automática de Oracle. El procedimiento creará una copia de seguridad de la base de datos completa en un intervalo diario o semanal. Utilice la estrategia de copia de seguridad Sugerido por Oracle para planificar un trabajo de copia de seguridad diario con el mínimo de configuración.

Botón Planificar Copia de Seguridad Personalizada

Permite seleccionar los objetos que se incluirán en la copia de seguridad. Esta opción proporciona opciones de copia de seguridad avanzadas que permiten planificar los trabajos de copia de seguridad con más flexibilidad. La configuración de la base de datos que se puede ver en la hoja de propiedades Valores de Copia de Seguridad influye en los trabajos de copia de seguridad personalizados. Puede sustituir estos valores mediante la página Valores de Sustitución. Los trabajos de copia de seguridad que sustituyan a estos valores siempre se ejecutarán con los valores especificados.

Toda la Base de Datos

Crea una copia de seguridad de la base de datos completa. Si está abierta en el momento de realizar la copia de seguridad, se cerrará y se montará antes. La base de datos se volverá a abrir una vez finalizada la copia de seguridad.

Todos los Archivos de Recuperación en el Disco

Permite especificar si se deben incluir todos los archivos de recuperación del disco. Entre ellos se incluyen los archive logs y las copias de seguridad en disco que no se han realizado en cinta.

Credenciales de Host

Debe introducir las credenciales del host (Usuario y Contraseña) y, a continuación, indicar si las credenciales se deben guardar mediante la opción Guardar como Credencial Preferida.

Curso de Oracle 11g

102

Página Gestionar Copias de Seguridad Actuales: Copias de Imágenes

Esta página, la utilizaremos para:

• Buscar y mostrar una lista de copias de imágenes.

• Realizar operaciones de gestión en copias, juegos o archivos seleccionados.

Nota: Si se conecta a Enterprise Manager con privilegios SYSDBA, cualquier usuario del sistema operativo del host válido que tenga permisos de ejecución podrá planificar y ejecutar tareas que necesiten las credenciales del sistema operativo del host. Si no tiene privilegios SYSDBA, debe proporcionar las credenciales de un usuario desde el grupo del DBA del sistema operativo del host para poder planificar o ejecutar tareas que soliciten credenciales.

En la página Gestionar Copias de Seguridad Actuales - Copias de Imágenes están disponibles los campos, botones y opciones siguientes:

Elemento Descripción

Estado Permite buscar copias de imágenes o copias mediante los filtros Disponible y Obsoleto para aislar objetos específicos.

Contenido Permite filtrar aún más la lista de resultados al incluir o eliminar tipos de archivo, por ejemplo, Archivo de Datos, Redo Log Archivado, SPFILE o Archivo de Control.

Hora de Finalización Busca copias de imágenes que se han finalizado dentro de un período de tiempo especificado. Con la lista desplegable seleccionamos el tiempo.

Curso de Oracle 11g

103

Tabla Resultados Muestra los resultados de la búsqueda seleccionada. La tabla de resultados enumera los elementos Clave, Etiqueta, Hora de Finalización, Contenido, Tipo de Dispositivo, Estado, Mantener y Partes para cada copia de imágenes.

Credenciales de Host Permite proporcionar las credenciales de conexión del sistema operativo para acceder a la base de datos destino y realizar operaciones de gestión de copias de seguridad. Introduzca el Usuario, la Contraseña y, opcionalmente, seleccione usar la opción Guardar como Credencial Preferida para guardar las credenciales y usarlas en el futuro.

Catalogar Archivos Adicionales

Permite catalogar partes de copias de seguridad en disco o agregar metadatos al repositorio de Recovery Manager cuando no dispone de ningún registro de estos archivos.

Realizar Comprobación Cruzada de Todos

Permite asegurarse de que los datos sobre las copias de imágenes en el catálogo de recuperaciones o en el archivo de control están sincronizados con los datos correspondientes en el disco o en el catálogo de gestión de medios físicos mediante la función Realizar Comprobación Cruzada de Todos. Las comprobaciones cruzadas pueden actualizar la información del repositorio RMAN anticuada sobre las copias de seguridad cuyos registros de repositorio no coinciden con su estado físico.

Suprimir Todos los Registros Obsoletos

Permite eliminar las copias de imágenes obsoletas o las que determinemos. Puede utilizar la función para crear un trabajo que elimine los archivos físicos, los registros del catálogo de recuperación (si ha utilizado un catálogo) y actualiza los registros del archivo de control de destino al estado SUPRIMIDO.

Suprimir Todos los Registros Vencidos

Elimina los registros vencidos. Utilice primero la función Realizar Comprobación Cruzada de Todos para determinar si las copias de imágenes registradas en el repositorio existen todavía en disco o en cinta. Si Enterprise Manager no ha encontrado las copias de imágenes, actualizará sus registros al estado VENCIDO. A continuación, podrá utilizar la función Suprimir Todos los Registros Vencidos para eliminar los registros.

Curso de Oracle 11g

104

2.16 Recovery (Recuperación) de Base de Datos

Valores de Recuperación

Utilice esta página para:

• Establecer los parámetros de la recuperación de fallo de las instancias y los medios físicos.

• Cambiar del modo ARCHIVELOG al modo NOARCHIVELOG.

• Especificar la ubicación y el tamaño del área de recuperación de flash.

• Activar Flashback de Base de Datos

• Especifíca hasta qué punto en el pasado se desea realizar el flash de la BBDD en el futuro.

La reconstrucción de datos se realiza a través de la recuperación del medio físico, que se refiere a distintas operaciones implicadas en la restauración, aplicación de transacciones pendientes y en la realización de rollback de una copia de seguridad de los archivos de la base de datos.

Puede recuperar un archivo de datos restaurado aplicando los redo logs archivados y los redo logs en línea a un proceso actualizado. Después de restaurar los archivos necesarios, el usuario debe iniciar la recuperación de medios físicos para esta recuperación se pueden utilizar redo logs archivados y redo logs en línea recuperando los archivos de datos.

La recuperación de fallo, es la recuperación de una BBDD en una configuración de instancia única o en una configuración de Oracle Real Application Clusters en la que todas las instancias han fallado.

Curso de Oracle 11g

105

La página Valores de Recuperación consta de las secciones, campos, botones y tablas siguientes:

Elemento Descripción

Sección Recuperación de Instancia

Utilice la Recuperación de Instancia para designar el tiempo medio deseado para recuperar la instancia en minutos o segundos. El parámetro de inicialización FAST_START_MTTR_TARGET especifica el número de segundos estimado para la recuperación de fallo. Puede ignorar este tiempo de recuperación definiendo FAST_START_MTTR_TARGET en 0 e introduciendo el tiempo medio de recuperación en el campo Tiempo Medio Deseado para la Recuperación. Nota: Para las BBDD de cluster, si el valor Tiempo Medio Deseado para la Recuperación no es el mismo para todas las instancias, el campo aparecerá en blanco con un mensaje que indica que las instancias tienen distintos valores. En ese caso, si introduce un número en este campo, se definirá el tiempo medio de recuperación de todas las instancias de la base de datos.

Sección Recuperación del Medio Físico

Utilice esta sección para definir los parámetros necesarios para la recuperación del medio físico. Primero debe activar Modo Archive Log para que la BBDD se pueda recuperar de un fallo de disco, haciendo clic en el recuadro de opción Modo Archive Log. Despues puede activar el archivo automático para archivar los archivos redo log archivados automáticamente. Puede definir el formato que se utilizará en el archivo introduciendo el tipo de archivo en el campo Formato del Nombre de Archivo de Archive Log. Nota: Para las BBDD de cluster, si el valor Destino de Archive Log no es el mismo para todas las instancias, el campo aparece en blanco con un mensaje que indica que tienen distintos valores en ese campo. Para ello, se definirá la misma ubicación del archive log de todas las instancias de la BBDD.

Curso de Oracle 11g

106

Sección Recuperación de Flash

El área de recuperación de flash es un directorio gestionado por Oracle, un sistema de archivos o un grupo de discos de gestión automática de almacenamiento que proporciona una ubicación de disco centralizada para los archivos de copia de seguridad y de recuperación. Oracle crea archive logs en el área de recuperación de flash. Pero esto lo veremos mas adelante.

Activar Flashback de Base de Datos

El área de recuperación de flash se debe definir para activar el registro de flashback. Pero esto lo veremos mas adelante

Curso de Oracle 11g

107

2.17 Traspaso o movimiento de Datos

Movimiento de Datos de la Base de Datos

La página Movimiento de Datos de la BBDD se utiliza para realizar tareas como la exportación e importación de datos desde y hacia los archivos, la carga de datos en una base de datos Oracle desde un archivo y la recopilación, estimación y supresión de estadísticas para mejorar el rendimiento de consultas SQL frente a los objetos de BBDD.

Esta página está organizada en las siguientes secciones:

Página Movimiento de Datos: Sección Mover Datos de Fila

Mover Datos de Fila

Utilice estas funciones para realizar las siguientes tareas:

• Exportar a Archivos de Exportación: Utilice el Asistente de Exportación para exportar el contenido de la BBDD, de los objetos de los esquemas del usuario y de las tablas.

• Importar de Archivos de Exportación: Utilice el Asistente de Importación para importar el contenido de objetos y tablas.

• Importar de Base de Datos: Utilice el Asistente de Importación de la BBDD para importar el contenido de una BBDD.

• Cargar Datos de Archivos de Usuario: Utilice el Asistente de Carga de Datos de Archivo para cargar datos de una BBDD que no es Oracle en una BBDD Oracle.

Curso de Oracle 11g

108

• Controlar Trabajos de Importación y Exportación: Utilice esta función para controlar el estado de trabajos de importación y exportación actuales y terminados.

Página Movimiento de Datos: Sección Mover Archivos de Base de Datos

Mover Archivos de Base de Datos

Esta sección se utiliza para:

• Transportar Tablespaces: Utilice esta función para mover un subjuego de una BBDD Oracle de una BBDD Oracle a otra, incluso entre plataformas diferentes.

• Clonar Base de Datos: El Asistente de Clonación de BBDD duplica la BBDD actual. Para ello, realice primero una copia de seguridad y, a continuación, transfiera la base de datos actual a un directorio raíz de Oracle de destino.

Página Movimiento de Datos: Sección Flujos

Flujos

La sección Flujos de la página Movimiento de Datos de la BBDD se utiliza para acceder a la función Flujos. Cada unidad de información compartida se denomina mensaje. Estos mensajes se pueden compartir en un flujo.

El flujo puede propagar información dentro de la base de datos o desde una base de datos a otra. El flujo direcciona la información especificada a destinos determinados. Los flujos proporcionan las capacidades necesarias para crear y manejar empresas y aplicaciones distribuidas, almacenes de datos y soluciones de alta disponibilidad.

Se puede controlar la información que se incluye en un flujo, cómo se mueve o se direcciona el flujo entre BBDD , qué les ocurre a los mensajes de los flujos a medida que se mueven en la BBDD y cómo termina el flujo. Si se configuran capacidades específicas de flujos, se pueden satisfacer requisitos específicos. Streams puede capturar, almacenar en zona intermedia y gestionar automáticamente mensajes de la base de datos, incluyendo cambios de lenguaje de manipulación de datos (DML) y de lenguaje de definición de datos (DDL).

Página Movimiento de Datos: Sección Replicación Avanzada

Replicación Avanzada

La sección Replicación Avanzada de la página Movimiento de Datos de la Base de Datos se utiliza para copiar y mantener objetos de base de datos como tablas, en varias bases de datos que componen un sistema de base de datos distribuida. Oracle Enterprise Manager admite los tipos de replicación siguientes:

Replicación de Varios Maestros: La replicación de varios maestros está compuesta por varias ubicaciones maestras que participan por igual en un modelo de actualización en cualquier ubicación. Las actualizaciones realizadas en una ubicación maestra individual se propagan (envían) a todas las demás ubicaciones maestras participantes mediante enlaces de base de datos.

Replicación de Vista Materializada: La replicación de vista materializada permite crear réplicas completas o parciales de tablas de la base de datos origen (denominada ubicación maestra) en una o más bases de datos destino (denominadas ubicaciones de vistas materializadas).

Curso de Oracle 11g

109

Transacciones con Errores: Éstas son las transacciones de otra ubicación maestra o ubicación de vista materializada que no se pueden aplicar correctamente a la ubicación maestra actual. Puede eliminar, reintentar o ver los detalles del error en la página de error de la transacción.

Transacciones Diferidas: Éstos son los cambios de lenguaje de manipulación de datos (DML) de una tabla almacenados en una cola en un entorno de replicación asíncrona. Las transacciones diferidas se propagan a los destinos a intervalos planificados o a petición. El usuario puede eliminar, transferir la transacción manualmente o ver los detalles de la transacción en la página Transacción diferida.

Enlaces Planificados: Un enlace planificado es un enlace de BBDD con una planificación definida por el usuario para transferir transacciones diferidas. Determina cómo una ubicación maestra propaga sus transacciones diferidas a otra ubicación maestra, o bien cómo una ubicación de vista materializada propaga sus transacciones diferidas a su ubicación maestra. En la página Enlace Planificado, el usuario puede planificar todos los enlaces y también definir las opciones adicionales como, por ejemplo, propagación, parar en error, etc.

Curso de Oracle 11g

110

2.18 Mejora de las posibilidades de la base de datos

Mejoras de Escalabilidad

Uno de los principales objetivos de Oracle en Windows es explotar por completo cualquier tecnología de hardware y sistema operativo que pueda ayudar a aumentar la escalabilidad, el rendimiento y la capacidad de la BBDD. Se han asumido muchas actividades para soportar grandes cantidades de usuarios conectados a la BBDD en Windows. Al utilizar la arquitectura de servidor compartido de Oracle, que limita la cantidad de threads que se ejecutan en el proceso de BBDD Oracle, se han logrado más de 10000 conexiones simultáneas a una sola instancia de BBDD. Asimismo, las características de grupos de conexión y multiplexores de red pueden permitir una configuración extensiva para lograr una mayor cantidad de usuarios conectados a una sola instancia de BBDD.

Recientemente, los administradores de BBDD en Windows han podido aumentar aún más su recuento de usuarios al implementar Oracle Real Application Clusters (RAC). Oracle RAC permite el acceso de múltiples servidores a los mismos archivos de BBDD, aumentando así el número de conexiones de usuarios y el resultado. Debido a que se pueden incorporar commodities de hardware como nodos adicionales a un cluster RAC, RAC ha sido por tanto, una solución tradicional para la alta disponibilidad y el escalamiento económico.

Mejoras I/O de Archivos

Otra área sobre la que se ha trabajado mucho en cuanto al código de BBDD Oracle se refiere al soporte de archivos en cluster, archivos grandes, y archivos binarios. El sistema de archivos en cluster de Oracle es parte integral de Oracle 11g que facilita la administración e instalación de los clusters de Oracle.

Para poder garantizar que todas las características de Windows se aprovechen al máximo, la BBDD soporta I/O de archivos de 64 bits para permitir tamaños de archivos superiores a 4GB. Asimismo, se soportan los archivos binarios lógicos y físicos para los archivos de control, los archivos testigo y los archivos de datos a fin de permitir un mejor desempeño utilizando Oracle RAC y BBDD de instancia única en Windows.

Mejora aplicaciones.

Cuando un usuario ejecuta una determinada aplicación pueden activarse, o desactivarse, selectívamente roles en función de nuestro interés. Los roles también pueden protegerse con claves y siendo activados sólo si una aplicación proporciona la clave correcta.

Mejora de la productividad.

El uso de roles disminuye el numero de “grants” almacenados en el diccionario de datos.

Mejora de la Compresión

Como los clientes buscan almacenar grandes volúmenes de datos, la compresión es una solución natural. Los algoritmos de compresión de Oracle (oscilan entre 2:1 y 5:1) ofrecen un mecanismo exclusivo para comprimir los datos almacenados en tablas relacionales sin casi ningún impacto negativo sobre el desempeño de las consultas. Esta compresión se ha mejorado para mejorar actualizaciones y entradas frecuentes y pequeñas. Esta mejora ofrece beneficios de compresión para las tablas de data warehouse con ‘pocos suministros’ o que se actualizan con frecuencia.

Curso de Oracle 11g

111

Mejora de las Consultas

El rendimiento de la consulta se mejora sustancialmente, puesto que el optimizador puede reconocer que solamente se tiene que acceder a un subconjunto de las particiones de una tabla con el fin de resolver la consulta.

El optimizador puede reconocer que en una reunión no es necesario intentar hacer corresponder todas las filas en una tabla con todas las filas en la otra, pero que las reuniones se necesitan realizar solamente entre pares coincidentes de divisiones esto correponde a la reunión por particiones.

Mejora de ajustes en SQL

En Oracle 11g, el proceso de ajuste SQL se ha mejorado y automatizado para mantener las BBDD ejecutándose al máximo nivel de desempeño. SQL Tuning Advisor ahora se ejecuta automáticamente a través de las ventanas de mantenimiento del sistema como una tarea de mantenimiento. En cada ejecución, éste selecciona automáticamente consultas SQL más pesadas en el sistema y genera recomendaciones para ajustarlas. Para validar la recomendación, SQL Tuning Advisor realiza una ejecución de prueba de las sentencias SQL con el nuevo plan de ejecución para el cual se recomienda un Perfil SQL. Esto aumenta radicalmente la precisión y confiabilidad del Perfil SQL.

Búsquedas LOB Más Rápidas

ODP.NET 11g mejora el desempeño de recuperación de LOB pequeñas al reducir la cantidad de recorridos hacia la BBDD necesarios para buscar los metadatos LOB. Esta mejora es transparente para el desarrollador, quien no necesita ningún cambio de código para utilizar esta característica.

Caché Optimizado de Sentencias

ODP.NET 11g mejora la actual infraestructura del caché de sentencias para poner en caché los contextos de parámetros ODP.NET. Esta mejora funciona con cualquier versión del servidor de base de datos Oracle actualmente soportada. Los desarrolladores .NET advertirán una mejora de desempeño al ejecutar consultas de sentencias en caché. Esta mejora es transparente para los desarrolladores, y no requiere cambios de código.

Oracle Wallets en Windows Registry

Oracle wallets puede almacenarse en Windows Registry, brindando una mayor seguridad para los clientes Windows. Sin esta característica, los wallets de Oracle se almacenan en el sistema de archivos Windows. Si los permisos de archivos del sistema operativo no son seguros, los wallets de Oracle tampoco lo son. En los sistemas Windows, por consiguiente, la seguridad de la infraestructura de claves públicas (PKI) se mejora al almacenar Oracle wallets en el área del perfil de usuarios de Windows Registry. Esta área de registro es accesible solamente para el usuario debidamente registrado y se pueden utilizar y almacenar múltiples Oracle wallets.

La conexión única para las aplicaciones PKI de Oracle se configura a través de las herramientas de Oracle Wallet Manager y Oracle Enterprise Login Assistant. Wallet Manager crea Oracle wallets encriptados, mientras que Enterprise Login Assistant crea wallets desencriptados. Los wallets desencriptados son luego utilizados por las aplicaciones PKI de Oracle para la autenticación SSL. Ambas herramientas han sido optimizadas para soportar el almacenamiento y la ubicación de Oracle wallets en el registro, así como el sistema de archivos por defecto, en caso de ser necesario.

Curso de Oracle 11g

112

3. ADMINISTRACIÓN AVANZADA DE BASES DE DATOS ORACLE 11g 3.1 Arquitectura de Oracle Database y ASM

En Oracle se usan dos términos muy habitualmente entre los profesionales en BBDD Oracle instancia (instance) y BBDD (database). El termino database se refiere al almacenamiento físico de la información, mientras que instance se refiere al software que se esta ejecutando en un servidor y provee acceso a los datos. Una instancia corre en un computador donde esta almacenada la BBDD en disco.

Oracle usa un área de memoria compartida llamada System Global Area (SGA) y un área de memoria privada para cada proceso llamada Program Gobal Area (PGA). Una instancia puede ser parte de solo una database y multiples instancias pueden ser parte de la misma database. Una instancia puede ser definida como un puente hacia la base de datos como se muestra en la figura.

ESTRUCTURA LÓGICA DE ORACLE

Tablespace

Un tablespace es una estructura lógica que esta formado por estructuras físicas llamadas datafiles; cada tablespace contiene uno o más datafiles. Cuando se crea una tabla, se puede especificar el tamaño de la tabla en la cual se creará. Los tablespace se utilizan para mantener unidos los datos de usuarios o de aplicaciones para facilitar su mantenimiento o mejorar las prestaciones del sistema.

Un tablespace puede quedarse offline debido a un fallo de disco, permitiendo que el SGBD continúe funcionando. Los tablespace pueden estar montados sobre dispositivos ópticos y permiten distribuir a nivel lógico/físico los distintos objetos de las aplicaciones. Son una unidad lógica de almacenamiento, pueden usarse para aislar completamente los datos de diferentes aplicaciones.

Oracle permite realizar los backup/recovery a nivel de tablespace mientras la BD sigue funcionando.

Curso de Oracle 11g

113

Archivos de una Base de Datos

Hay tres tipos de archivos físicos en una BBDD que representan la BBDD física:

1. Archivos de Control

2. Archivos de datos

3. Archivos de Redo log

Archivos de control

Contiene las localizaciones de otros archivos físicos de la BBDD, además de información acerca del contenido y el estado de la BBDD como:

• El nombre de a base de datos

• Fecha de creación

• Nombres y localizaciones de los archivos de datos y ficheros redo log

• Información del tablespace.

Una BBDD debería tener como mínimo dos archivos de control en diferentes discos físicos. Si no hay una copia de un archivo de control, se corre el riesgo de perder fracciones de la BBDD. Aunque se pueden reconstruir estos archivos, no sin ciertos riesgos al momento de reconstruirlo.

Se puede especificar multiples copias del archivo de control en los parámetros del archivo así:

control_files = (/u00/oradata/control.001.dbf, /u01/oradata/control.002.dbf, /u02/oradata/control.003.dbf)

Archivos de Datos

Los archivos de datos contienen los datos almacenados actualmente en la BBDD, las tablas e índices, el diccionario de datos que mantiene información acerca de estas estructuras de datos. Y tienen las siguientes características:

• Un fichero sólo puede estar asociado con una BBDD.

• Los ficheros de datos pueden reservar automáticamente extensiones cuando se acaba el espacio.

• Uno o más ficheros de datos forman una unidad lógica de almacenamiento llamada tablespace.

• Número de secuencia del redo log en curso

• Información de checkpoint

• Información de los archivo redo log

• Información de backup

Se trata de un fichero binario, sin el cual no es posible arrancar la BBDD. Por ello es conveniente mantener varias copias del mismo, en diferentes discos. Este se lee al montar la BBDD.

Curso de Oracle 11g

114

Su tamaño es fijo, y depende de los parámetros indicados al crear la BBDD con CREATE DATABASE; como por ejemplo MAXLOGFILES y MAXDATAFILES.

Archivos Redo log

Estos archivos contienen una grabación de los cambios hechos a la BBDD como resultado de transacciones y actividades internas de Oracle. Esto puede servir para hacer un control de las transacciones en el caso de algún fallo para recuperar la BBDD.

Los ficheros redo log se organizan en grupos. Una BBDD requiere al menos dos grupos y cada fichero redo log dentro de un grupo se llama miembro.

La idea es que cada grupo tenga tantos miembros como discos disponemos para mantener las copias de los redo, siendo lo usual tener 3 grupos de redo con 2 miembros cada uno.

Los ficheros redo log se usan de manera circular: cuando uno se llena, el LGWR comienza a escribir en el siguiente grupo (“log switch”), hasta volver al primero. Cuando ocurre un “log switch”, también ocurre un “checkpoint”; y se actualiza el fichero de control. Podemos forzar un log switch o un checkpoint con:

• ALTER SYSTEM SWITCH LOGFILE;

• ALTER SYSTEM CHECKPOINT;

El LGWR escribe al hacer commit, o cada 3 segundos, o si el buffer redo log se llena 1/3, y antes de que el DBWR vuelque los cambios de los buffers de datos a los ficheros de la BBDD.

Añadir grupos y miembros de redo

Añadir grupos al Redo Log Online:

ALTER DATABASE ADD LOGFILE GROUP 3 (‘/u04/oradata/CURSO98/redo03a.log’, ‘/u03/oradata/CURSO98/redo03b.log’) SIZE 1M;

Añadir miembros Redo Log Online:

ALTER DATABASE ADD LOGFILE MEMBER ‘/u03/oradata/CURSO98/redo01b.log’ TO GROUP 1, ‘/u03/oradata/CURSO98/redo02b.log’ TO GROUP 2;

Eliminar grupos y miembros de redo

Eliminar grupos del Redo Log Online:

ALTER DATABASE DROP LOGFILE GROUP 3;

No puede haber menos de 2 grupos y no se puede borrar el grupo activo, al borrar un grupo no se eliminan los ficheros del sistema operativo.

Eliminar miembros Redo Log Online:

ALTER DATABASE DROP LOGFILE MEMBER ‘/u03/oradata/CURSO98/redo03b.log’;

Curso de Oracle 11g

115

Automatic Storage Management (ASM)

¿Qué es ASM?

• Es un sistema de ficheros de alto rendimiento

• Elimina la necesidad de gestores de volúmenes

• Realiza la optimización de las operaciones de E/S de manera automática

• Es capaz de utilizar el balanceo de datos y “mirroring” entre todos los discos

Particularidades de ASM

Maneja el espacio en forma de grupos de discos. Divide cada fichero en extensiones (de 128K o 1M) y las reparte entre los discos de un grupo (striping). Permite mirror y lo hace a nivel de fichero, gestionando el mirror a nivel de extensión.

Dispone de varias opciones de mirror (a nivel de grupos de discos):

2-way mirroring (1 copia por extensión), 3- way (2 copias) y unprotected (sin mirror).

Y opciones de striping:

fine (128Kb) y coarse (1M).

Además, se puede desactivar mirror y/o striping.

• Al añadir nuevo disco a un grupo, rebalancea los datos online. Si esto genera mucha E/S, se puede “frenar” con ASM_POWER_LIMIT (en el init de la propia instancia ASM).

• ASM necesita un tipo de instancia especial: Tiene init y orapw, pero no DD. Usuarios SYS y SYSTEM con autenticación SO Instancia: mount o no mount (nunca open). Memoria: de 60M a 120M. Comandos de gestión propios: “create | alter | drop diskgroup”. Nuevos procesos background:

• RBAL: coordina el rebalanceo de discos en cada grupo.

• ORBn (n=0...9): ejecuta el rebalanceo, moviendo extensiones entre discos. Cada BD q usa ASM, tiene dos procesos en background: OSMB: comunicación entre BD y la instancia ASM.

RBAL: abre y cierra los discos en los grupos, en la parte de la BD.

Curso de Oracle 11g

116

• Parámetros del init (para instancia ASM y/o BD q la usa):

instance_type = ASM (para una BD es RDBMS)

db_unique_name = +ASM (valor por defecto)

asm_power_limit = 1 (máximo 11; velocidad rebalanceo; 1 = lento)

asm_diskstring (limita los disp. de disco usables para grupos de discos; ejemplo: '/dev/hd*').

asm_diskgroups (nombres de grupos de discos que se mostarán automáticamente; por defecto vale NULL y los monta todos).

large_pool_size (al menos 8M, para ejecutar los paquetes internos de uso de ASM)

• Ejemplo de init de una instancia ASM:

instance_type=ASM db_unique_name=+ASM asm_power_limit=1 asm_disk_string=’/dev/vgora01/rdsk/*’, ‘/dev/vgora02/rdsk/*’ asm_disk_groups=diskgrp1, diskgrp2 large_pool_size=16M

Curso de Oracle 11g

117

3.2 Configuración de Recuperabilidad

Una de las tareas que debemos realizar, para asegurarnos de la recuperabilidad en Oracle es agregar un servidor de administración y utilizar Oracle Secure Backup

Agregar Servidor de Administración

Debemos utilizar Oracle Secure Backup para proteger datos desde cualquier punto de una red de sistemas de un solo proveedor o de varios proveedores. Oracle Secure Backup permite configurar servidores de administración y servidores de medio físico y, además de permitir gestionar configuraciones de dispositivos y medios. Puede realizar copias de seguridad y recuperar datos en unidades de cinta y bibliotecas a las que sólo se accede a través de Network Data Management Protocol (NDMP).

En Enterprise Manager, utilice la página Agregar Servidor de Administración para agregar un servidor de administración a su configuración de Oracle Secure Backup. Si está utilizando la consola de Database Control, el servidor de administración debe ser el mismo servidor que en el que se esté ejecutando Enterprise Manager.

El servidor de administración es una máquina del dominio que contiene una copia de Oracle Secure Backup y las bases de datos que incluyen los valores de configuración y que almacenan el historial de copias de seguridad.

NOTA: Necesita un servidor de administración para cada dominio administrativo.

Esta página muestra los siguientes campos:

Campo Descripción

Servidor de Administración

El nombre del servidor de administración y el icono Buscar.

Directorio Raíz de Oracle Secure Backup

Ruta de acceso para la instalación de Oracle Secure Backup

Usuario Nombre de usuario de todas las operaciones remotas. En Usuario se introduce el nombre de usuario que se utiliza para acceder a Oracle Secure Backup para todas las operaciones. El nombre de usuario se transfiere a la interfaz de la línea de comandos como argumento de la línea de comandos.

Contraseña Al instalar Oracle Secure Backup, se crea el usuario "admin". La contraseña de este usuario está en blanco por defecto.

Una de las formas de recuperar una BBDD es utilizar un punto de restauración. Puede utilizar uno de estos puntos, como un punto especifico en el tiempo para restaurar la base de datos.

Utilizaremos la página Gestionar Puntos de Restauración para:

• Buscar o mostrar una lista de puntos de restauración disponibles.

• Seleccionar un punto de restauración para suprimir.

• Crear un punto de restauración nuevo o crear un punto de restauración garantizado.

Curso de Oracle 11g

118

Un punto de restauración es un nombre asociado a un punto anterior en el tiempo de la BBDD. Puede realizar un flashback de la BBDD a un punto de restauración si los logs de flashback y los archive logs necesarios existen. El punto de restauración garantizado permanece en la base de datos a menos que se suprima expresamente.

IMPORTANTE: Los puntos de restauración no garantizados caducan automáticamente.

En Gestionar Puntos de Restauración encontraremos los siguientes campos:

Campo Descripción

Nombre de Punto de Restauración

Permite introducir un nombre de punto de restauración para filtrar el número de puntos de restauración de que disponemos.

Botón Ir Permite iniciar la búsqueda.

Botón Crear Crea un punto de restauración nuevo y muestra la página Crear Punto de Restauración.

Tabla Puntos de Restauración

Esta tabla muestra los puntos de restauración con estos elementos: • Nombre de Punto de Restauración • Hora de Punto de Restauración • Tipo de Punto de Restauración • Tamaño de Almacenamiento • SCN de Creación.

En la columna Tipo de Punto de Restauración se indica si se trata de un punto de restauración garantizado. La columna Tamaño de Almacenamiento indica la cantidad de espacio de almacenamiento que utiliza el punto de restauración y el espacio máximo que se puede recuperar al suprimir este punto de restauración.

Nota: Debe tener privilegios SYSDBA para crear/suprimir un punto de restauración garantizado.

Curso de Oracle 11g

119

3.3 Uso del Catálogo de Recuperación de RMAN

La utilidad RMAN, permite realizar copias y recuperaciones en la BBDD y automatiza la administración de las mismas, estas siglas pertenecen a: “Recovery Manager” (RMAN) es un programa que permite realizar una copia de datos. Esisten dos formas de utilizar RMAN, una es utilizar el comando RMAN BACKUP, RMAN por defecto crea un conjunto de copia de seguridad y la otra es con el comando RESTORE se restauraría la información, todo esto en un formato “propietario” por lo que se necesita RMAN para la recuperación, o bien la que trataremos en este manual, a través de la consola “Enterprise Manager”.

Accederemos a la ficha “Disponibilidad” y al apartado “Configuración” de “Copia de Seguridad/Recuperación”.

Valores del Catálogo de Recuperación

Un catálogo de recuperación es un esquema lógico complementario, creado en una BBDD distinta de la que se está realizando la copia de seguridad, que contiene una copia del repositorio de RMAN. RMAN siempre almacena la copia primaria del repositorio de RMAN en el archivo de control de la BBDD destino, de forma que el catálogo de recuperación no será necesario si se utiliza RMAN. El catálogo de recuperación es útil para centralizar la información sobre copias de seguridad de varias BBDD y puede ayudar bastante en la recuperación de la pérdida de un archivo de control.

Se puede utilizar la página Valores del Catálogo de Recuperación para especificar dónde almacenar los metadatos sobre la BBDD de destino, seleccionar si la información de metadatos debe almacenarse en el archivo de control o en un catálogo de recuperación o agregar un catálogo de recuperación. Si selecciona un catálogo de recuperación para el que no está registrada una base de datos, la base de datos afectada se registrará automáticamente haciendo clic en Aceptar.

Curso de Oracle 11g

120

En la página Valores del Catálogo de Recuperación están disponibles los campos, los botones y las tablas siguientes:

Campo Descripción

Usar Archivo de Control Permite seleccionar el uso del archivo de control.

Mantener Registros de RMAN (días)

Permite especificar el número de días que se deben conservar los registros de RMAN en el archivo de control antes de que se puedan volver a utilizar. Nota: El parámetro Mantener Registros de RMAN (en días) sólo se aplica a los registros del archivo de control que se vuelven a utilizar de manera recurrente, como los registros de archive log y diferentes registros de copias de seguridad. No se aplica a archivos de datos, tablespaces ni registros de threads de redo, que nunca se vuelven a utilizar a menos que se borre el objeto correspondiente del tablespace.

Usar Catálogo de Recuperación

Si decide utilizar un catálogo de recuperación, puede seleccionar uno de la lista Catálogo de Recuperación o puede seleccionar Agregar Catálogo de Recuperación para crear uno nuevo. También puede usar esta página para ir a otras páginas que permiten registrar o anular el registro de una base de datos desde un catálogo de recuperación o para volver a sincronizar los metadatos de RMAN para el destino de base de datos de un catálogo de recuperación. Consulte los enlaces a estas funciones en Temas Relacionados.

Catálogo de Recuperación

Lista desplegable que muestra los catálogos de recuperación configurados actualmente.

Botón Agregar Catálogo de Recuperación

Muestra la página Agregar Catálogo de Recuperación en la que puede agregar un catálogo de recuperación.

Credenciales de Contraseña

Si la BBDD no está registrada en el catálogo seleccionado, agregue el usuario de host y la contraseña necesarios. Para guardar las credenciales, seleccione la opción Guardar como Credenciales Preferidas.

Nota: Si se conecta a Enterprise Manager con privilegios SYSDBA, cualquier usuario del sistema operativo del host válido que tenga permisos de ejecución podrá planificar y ejecutar tareas que necesiten las credenciales del sistema operativo del host. Si no tiene privilegios SYSDBA, debe proporcionar las credenciales de un usuario desde el grupo del DBA del sistema operativo del host para realizar operaciones como Copia de Seguridad, Valores de Copia de Seguridad, Gestión de Copias de Seguridad y Valores de Recuperación.

Curso de Oracle 11g

121

Agregar/Editar Catálogo de Recuperación: Base de Datos

Un catálogo de recuperación es un esquema lógico complementario, creado en una BBDD distinta de la que se está realizando la copia de seguridad, que contiene una copia del repositorio de RMAN. RMAN siempre almacena la copia primaria del repositorio de RMAN en el archivo de control de la BBDD destino, de forma que el catálogo de recuperación no será necesario si se utiliza RMAN. El catálogo de recuperación es útil para centralizar la información sobre copias de seguridad de varias BBDD y puede ayudar bastante en la recuperación de la pérdida de un archivo de control.

Utilice la página Agregar/Editar Catálogo de Recuperación para seleccionar un destino de BBDD para el catálogo de recuperación que está creando o modificando. Como alternativa, puede especificar una BBDD que no sea un destino de Oracle Enterprise Manager. Para ello, introduzca el host, el puerto y la información SID. Si especifica una BBDD de destino que no sea de Enterprise Manager, el catálogo de recuperación ya debe existir en la BBDD. Esta página dispone de los campos siguientes:

Campo Descripción

Host Permite agregar o editar el nombre de host de la base de datos con un catálogo de recuperación existente.

Puerto Permite agregar o editar el número de puerto de la base de datos.

SID Permite agregar o editar el SID.

Usuario de Catálogo de Recuperación

Permite editar el usuario del catálogo de recuperación. Si se especifica el host, puerto y SID, también se debe especificar el usuario y la contraseña del catálogo de recuperación.

Curso de Oracle 11g

122

Contraseña de Catálogo de Recuperación

Permite editar la contraseña del catálogo de recuperación. Si se especifica el host, puerto y SID, también se debe especificar el usuario y la contraseña del catálogo de recuperación.

Nota: Debe almacenar el catálogo de recuperación en una BBDD dedicada y ubicada en un disco distinto de la BBDD destino, así como crear periódicamente una copia de seguridad de dicho catálogo.

Curso de Oracle 11g

123

3.4 Configuración de Especificaciones de Copia de Seguridad

Como ya conocemos, accederemos a “Enterprise Manager” – “Planificar copia de seguridad” – “Planificar Copia sugerida”, aquí veremos la configuración y especificaciones para realizarla.

Una vez hemos accedido a la planificación de las copias de seguridad sugeridas por Oracle 11g, veremos que hay que introducir algunos valores en la página “Dispositivo”, que veremos a continuación.

Valores de Copia de Seguridad: Página Dispositivo

Puede utilizar Oracle Enterprise Manager para proteger la BBDD contra la pérdida de datos y para reconstruirlos si se produce esta pérdida. Una copia de seguridad es una copia de los datos que se puede utilizar para reconstruir partes de la BBDD. Esta copia de seguridad puede incluir partes importantes de la BBDD, como por ejemplo, el archivo de control y los archivos de datos.

La página Dispositivo de la hoja de propiedades Valores de Copia de Seguridad se utiliza para:

• Definir los valores de configuración de disco y de cinta.

• Defina la Ubicación de Copia de Seguridad en Disco y, a continuación, utilice Probar Copia de Seguridad en Disco para asegurarse de que la copia de seguridad funciona correctamente.

• Indicar el número de unidades de cinta que van a utilizar en la copia de seguridad y sus parámetros.

Curso de Oracle 11g

124

• Utilizar Probar Copia de Seguridad en Cinta para realizar una prueba de la configuración de la cinta. Antes de realizar esta prueba, debe montar la unidad de cinta.

• Introducir las credenciales de host.

Los campos, botones y tablas siguientes están disponibles en Valores Copia de Seguridad - Dispositivo:

Campo Descripción

Paralelismo Número de flujos simultáneos en unidades de disco

Ubicación de Copia de Seguridad en Disco

Directorio o grupo de discos en los que se realizará la copia de seguridad de los archivos de BBDD. Si no se especifica se creará en la ubicación por defecto de la plataforma del directorio raíz de Oracle. Se recomienda configurar el área de recuperación de flash y la ubicación para la copia.

Configurar Área de Recuperación de Flash

Si aún no se ha confiigurado ninguna área de recuperación de flash, haga clic en este enlace para pasar al área de recuperación de flash de la página Valores de Recuperación y configurarla.

Probar Copia en Disco Permite asegurarse de que la copia de seguridad se funciona correctamente.

Tipo de Copia de Seguridad en Disco

Seleccione un tipo de copia de seguridad de las tres opciones disponibles:

• Juego de Copias de Seguridad, que es un formato de archivo que permite realizar copias de seguridad más eficaces intercalando varios archivos de copia de seguridad en un único archivo de salida.

• Juego de Copias de Seguridad Comprimidas, que es un juego de copias de seguridad en el que los datos se comprimen.

• Copia de Imagen, que es una copia bit por bit de los archivos de BBDD que se pueden utilizar tal cual para realizar una recuperación.

Unidades de Cinta Permite introducir el número de flujos simultáneos a unidades de cinta.

Probar Copia en Cinta Permite asegurarse de que la copia de seguridad se funciona correctamente.

Tipo de Copia de Seguridad en Cinta

Seleccione el tipo de copia en cinta de entre las dos opciones disponibles:

• Juego de Copias de Seguridad, que es un formato de archivo que permite realizar las copias más eficaces intercalando varios archivos de copia de seguridad en un único archivo de salida.

• Juego de Copias de Seguridad Comprimidas, que es un juego de copias de seguridad de Oracle en el que los datos se comprimen.

Sección Oracle Secure Backup

Permite registrar una configuración de Oracle Secure Backup para configurar los servidores administrativos, los hosts de servidor de medio físico y los hosts de cliente, así como para gestionar las configuraciones de dispositivos y medios físicos. En esta sección se muestra Versión en

Curso de Oracle 11g

125

Servidor de Base de Datos, Servidor de Administración y Selectores de Almacenamiento de Copia de Seguridad. Para crear una copia de seguridad de la BBDD, se necesita al menos un selector de almacenamiento de copia de seguridad.

Sección Valores de Gest. Med. Físicos

Permite especificar los parámetros de la biblioteca para configurar un administrador de medios físicos de otro proveedor.

Credenciales de Host Para guardar los valores de copia de seguridad, especifique las credenciales de conexión del sistema para obtener acceso a la BBDD destino. Introduzca el nombre y la contraseña. Estas se pueden guardar con la opción Guardar como Credencial Preferida.

Nota: Los valores de copia de seguridad cambian los valores de toda la base de datos y se aplican a cualquier copia de seguridad que no sustituya los valores de nivel de copia de seguridad.

Curso de Oracle 11g

126

3.5 Creación de Copias de Seguridad (Export e Import de la BBDD)

Utilice el Asistente de Exportación para exportar el contenido de la base de datos, de los objetos de los esquemas del usuario y de las tablas. El Asistente proporciona cuatro pasos principales para realizar la exportación de los objetos seleccionados, según el tipo de exportación seleccionado en la página Tipo de Exportación, puede existir un paso adicional a realizar antes de iniciar el proceso de exportación.

Los trabajos de importación y exportación de Enterprise Manager para una BBDD se implementan como trabajos de pump de datos. Si el trabajo de pump de datos subyacente se suspende, el trabajo de Enterprise Manager asociado mostrará el estado de "Fallo". Haga clic en el botón "Controlar Trabajo de Pump de Datos" en la página de resumen del trabajo de Enterprise Manager para reanudar un trabajo de pump de datos suspendido. Los trabajos de pump de datos que han fallado realmente no se pueden reanudar; si intenta hacerlo, se genera un mensaje. Si el trabajo de pump de datos se ha realizado correctamente, el trabajo de Enterprise Manager tendrá el estado de "Correcto".

El Asistente de Exportación está compuesto por las siguientes páginas:

• Tipo de Exportación

Utilice esta página para designar el tipo de exportación que desea realizar. Si selecciona Esquema, el asistente mostrará la página Esquema como el siguiente paso de la secuencia. Si selecciona Tabla, la página Tablas. El siguiente paso es la página Opciones.

En la página Tipo de Exportación, debe seleccionar el tipo de exportación que desea realizar. Puede ser; Base de Datos, Esquema, Tabla o Tablespaces e introducir Usuario y Contraseña.

• Esquemas

Esta página sólo aparece cuando selecciona Esquemas en la página Tipo de Exportación. Utilicela para seleccionar los esquemas cuyos objetos desea exportar. Con la función Agregar se agrega un esquema a la lista de esquemas disponibles.

• Tablas

Esta sólo aparece cuando selecciona Tablas. Utilicela para seleccionar las tablas o particiones que desea exportar de la lista Tablas Disponibles, a la lista Tablas Seleccionadas.

• Tablespaces

Esta página se muestra únicamente al seleccionar Tablespaces. Utilice esta página para exportar tablas de uno o más tablespaces. Sólo se exportan las tablas, no los tablespaces en sí.

• Opciones

Utilice la página Opciones para definir opciones de thread, calcular el espacio en disco y especificar archivos opcionales para la operación de exportación.

• Archivos

Utilice esta página para especificar el nombre del directorio, el nombre de archivo y el tamaño máximo de los archivos de exportación.

• Planificar

Utilice la página Planificación para planificar el trabajo de exportación.

Curso de Oracle 11g

127

• Revisar Utilice la página Revisar para mostrar el código PL/SQL para el comando de exportación generado por las selecciones realizadas en las páginas anteriores del asistente. Puede ver el código manualmente o hacer clic en Ejecutar Trabajo para iniciar el proceso de exportación.

Importar de la Base de Datos

Utilice el Asistente de Importación de la BBDD para importar el contenido de una BBDD. Puede acceder al Asistente de Importación de la BBDD haciendo clic en Importar de la BBDD en la sección Mover Datos de Fila del separador Movimiento de Datos de la página inicial de la BBDD.

Este Asistente proporciona tres pasos principales para realizar la importación de los objetos seleccionados. Según el tipo de opciones y tipos de importación que seleccione en la página Origen, puede que existan pasos adicionales que tenga que realizar antes de iniciar el proceso de importación.

El Asistente de Importación está compuesto por las siguientes páginas:

• Origen Utilice Origen para designar el enlace de BBDD desde la que desea realizar la importación. El campo Tipo toma el valor BBDD automáticamente. También puede especificar la importación de esquemas, tablas o tablespaces. A continuación, debe especificar el Usuario y Contraseña.

• Volver a Asignar Utilice esta página para volver a asignar esquemas, tablespaces y archivos de datos en diferentes esquemas, tablespaces y archivos de datos de la nueva BBDD.

• Esquema Esta página sólo aparece cuando selecciona Esquema en la página Origen. Usela para seleccionar el esquema cuyos objetos desea importar.

• Tablas Esta página sólo aparece cuando selecciona Tablas en la página Origen. Usela para seleccionar las tablas o particiones que desea importar de la lista Tablas Disponibles y desplácelas a la lista Tablas Seleccionadas.

• Tablespaces Esta página sólo aparece si ha seleccionado previamente Tablespace en Origen. Esta página permite importar tablas de uno o más tablespaces. Los tablespaces en sí no se importarán y deben existir en la BBDD.

• Opciones Utilice la página Opciones para definir el número máximo de threads en un trabajo de importación, calcular la cantidad de espacio en disco que consumirá la importación, generar archivos opcionales y definir opciones sobre el contenido que desea importar.

• Planificar Utilice Planificar para planificar el proceso de importación como un trabajo del sistema de trabajos.

• Revisar Utilice la página Revisar para mostrar el código PL/SQL para el comando de importación generado por las selecciones realizadas en las páginas anteriores del asistente. Puede editar el código PL manualmente o hacer clic en Ejecutar Trabajo para iniciar el proceso de importación.

Curso de Oracle 11g

128

3.6 Realización de Copia de Seguridad y Recuperación Gestionada por Usuario (copia de seguridad personalizada)

Asistente de Planificación de Copia de Seguridad

Utilice el Asistente de Planificación de Copia de Seguridad para realizar copias de seguridad del contenido de la BBDD en disco, en cinta o en ambos. Las copias de seguridad online sólo están disponibles si la BBDD está en modo ARCHIVELOG.

Las copias de seguridad copian las partes importantes de la BBDD, como el archivo de control y los archivos de datos. Si se pierden los datos originales, puede reconstruirlos utilizando una copia de seguridad. Para realizar la copia la BBDD se cierra y monta para realizar el trabajo de copia de seguridad, es posible que tenga que esperar hasta que termine la operación de copia de seguridad.

Desde la página Planificar Copia de Seguridad puede planificar una copia de seguridad sugerida por Oracle utilizando la estrategia de copia de seguridad automatizada, que permite realizar una copia de seguridad de toda la BBDD a intervalos concretos o puede planificar una copia de seguridad personalizada, que permite seleccionar los objetos de los que va a realizar copias de seguridad. Igualmente se pueden sustituir los valores de copia de seguridad y elegir si va a realizar las copias de seguridad de los archivos en un disco o en una cinta.

Planificiar Copia de Seguridad Personalizada: Opciones

Utilice la página Opciones del Asistente de Planificación de Copia de Seguridad Personalizadas para seleccionar:

• Una copia de seguridad completa o una copia de seguridad incremental

• Si desea suprimir copias de seguridad obsoletas

• Si desea utilizar una copia proxy soportada por software de gestión de medios físicos

• Para ver el número máximo de archivos por juego de copias de seguridad

Tipo de Copia de Seguridad

Permite seleccionar un de copia de seguridad. En la sección Tipo de Copia de Seguridad están disponibles los siguientes campos:

Campo Descripción

Copia de Seguridad Completa

Esta realiza una copia de todos los bloques en un juego de copias de seguridad, saltando sólo los bloques que nunca se han utilizado. El proceso del servidor no salta los bloques al realizar una copia de seguridad de todos los redo logs archivados o de los archivos de control. Una copia de seguridad completa no afecta a las copias de seguridad incrementales, por lo que no se considera parte de la estrategia incremental.

Copia de Seguridad Incremental (Nivel 1)

Una copia de seguridad incremental de nivel 1 incluye todos los bloques cambiados desde la copia de seguridad de nivel 0 más reciente.

Refrescar la última copia del archivo de datos a la hora actual utilizando la copia incremental

Esta función aplica los cambios de la copia de seguridad incremental a la copia de imagen de la BBDD, de forma que la copia de la imagen contiene los cambios más recientes.

Curso de Oracle 11g

129

Avanzada

En esta sección se muestran los campos siguientes:

Campo Descripción

Suprimir copias de seguridad obsoletas

Permite suprimir las copias de seguridad que ya no se necesitan. Puede suprimir copias de seguridad obsoletas para bases de datos, tablespaces y archivos de datos completos.

Usar la copia proxy soportada por el software de gestión de medios físicos para realizar una copia de seguridad

Seleccione esta opción para que Recovery Manager realice una copia de seguridad convencional cuando la copia proxy de los archivos seleccionados no está soportada. Si activa esta opción, en caso de que falle la copia proxy, podrá seleccionar si desea continuar o parar la copia de seguridad. La copia proxy es un tipo especial de copia de seguridad en el que RMAN controla la transferencia de datos al gestor de medios físicos que soporta esta función.

Máximo de Archivos por Juego de Copias de Seguridad

Permite establecer el máximo de archivos por juego de copias de seguridad al realizar copias de seguridad de BBDD, tablespaces, archivos de datos y archive logs completos. Puede establecer un número máximo de corrupciones para las copias de seguridad de archivos de datos para copias de seguridad de Oracle.

Proteger la copia de seguridad con cifrado de Recovery Manager

Permite cifrar la copia de seguridad con Oracle Encryption Wallet, con una contraseña proporcionada por el usuario.

Algoritmo de Cifrado Permite seleccionar el tipo de algoritmo de cifrado.

Modo de Cifrado Permite especificar si el cifrado se realizará con Oracle Encryption Wallet o con una contraseña.

Contraseña y Confirmar Contraseña

Si se utiliza la contraseña para cifrar la copia de seguridad, debemos posteriormente confirmarla.

Las opciones de archive log sólo están disponibles si se realiza una copia de seguridad de la BBDD y la BBDD destino está en modo ARCHIVELOG. Puede realizar una copia de seguridad de todos los archive logs en disco y, a continuación, suprimir todos los logs del disco cuando se haya realizado la copia de seguridad de los mismos.

Las copias de seguridad se descifran automáticamente durante las operaciones de restauración y recuperación, siempre que estén disponibles las claves de descifrado necesarias.

Curso de Oracle 11g

130

3.7 Uso de RMAN para Realizar Recuperaciones Valores de Recuperación

Utilice esta página para:

• Establecer los parámetros de la recuperación de fallo de las instancias y los medios físicos.

• Cambiar del modo ARCHIVELOG al modo NOARCHIVELOG.

• Especificar la ubicación y el tamaño del área de recuperación de flash.

• Activar Flashback de BBDD

• Permite especificar hasta qué punto en el pasado se realizará el flash de la BBDD en el futuro.

La reconstrucción de datos se realiza a través de la recuperación del medio físico, que se refiere a distintas operaciones implicadas en la restauración, aplicación de transacciones pendientes y en la realización de rollback de una copia de seguridad de los archivos de la BBDD.

Puede realizar la recuperación aplicando los redo logs archivados y los redo logs en línea a un proceso actualizado. Después de restaurar los archivos necesarios, el usuario debe iniciar la recuperación de medios físicos, para esto puede utilizar redo logs archivados y redo logs en línea.

La recuperación de fallo es la recuperación de una BBDD en una configuración de instancia única o en una configuración de Oracle Real Application Clusters en la que todas las instancias han fallado.

La página Valores de Recuperación consta de las secciones, campos, botones siguientes:

Elemento Descripción

Sección Recuperación de Instancia

Utilice esta sección para designar el tiempo medio deseado para recuperar la instancia en incrementos de minutos o segundos. El parámetro de inicialización FAST_START_MTTR_TARGET especifica el número de segundos estimado para la recuperación de fallo. Oracle convierte este número en parámetros internos y define el tiempo de recuperación en un número que se aproxime a estos parámetros. Puede ignorar este tiempo de recuperación definiendo FAST_START_MTTR_TARGET en 0 e introduciendo el tiempo en el campo Tiempo Medio Deseado para la Recuperación.

Sección Recuperación del Medio Físico

Utilice esta sección para definir los parámetros necesarios para la recuperación del medio físico. Primero debe activar Modo Archive Log para que la base de datos se pueda recuperar de un fallo de disco. Puede activar el modo Archive Log haciendo clic en el recuadro de opción Modo Archive Log. A continuación puede activar el archivo automático para archivar los archivos redo log archivados automáticamente haciendo clic en la opción Archivado Automático (no aplicable en Oracle10i). Puede definir el formato que se utilizará en el archivo introduciendo el tipo de archivo en el campo Formato del Nombre de Archivo de Archive Log.

Sección Recuperación de Flash

Nota: Esta sección aparece sólo para bases de datos de cluster Oracle10i. En la página Valores de Recuperación de Instancias de la BBDD de Cluster no se muestra.

Curso de Oracle 11g

131

El área de recuperación de flash es un directorio gestionado por Oracle, un sistema de archivos que proporciona una ubicación para los archivos de copia de seguridad y de recuperación. Enterprise Manager almacena sus copias de seguridad en este area y las utiliza cuando restaura archivos. Los componentes de recuperación de Oracle interactúan con esta área, garantizando la recuperación de la BBDD. Todos los archivos necesarios para recuperar la base de datos que siguen a un fallo del medio físico forman parte del área de recuperación de flash. Utilice la sección “Área de Recuperación de Flash” para determinar su ubicación y tamaño. Esta sirve como una caché de disco para copias de seguridad en cinta, lo que reduce los tiempos de recuperación, realizando una gestión automatizada. Definir la ubicación, asegúrese de que tenga suficiente espacio en disco. Defina el tamaño del área de recuperación de flash y sus unidades. Active el registro de flashback para recuperación point-in-time junto con el tiempo de retención de flashback.

Activar Flashback de Base de Datos

Para activar el registro de flashback se debe definir el área de recuperación de flash. Si utiliza logs de flashback, puede recuperar toda la BBDD hasta un punto en el pasado sin restaurar los archivos. Flashback es el método de recuperación point-intime designado en el Asistente. Defina también el parámetro de retención para la BBDD de flashback en el campo Tiempo de Retención de Flashback.

Curso de Oracle 11g

132

Se accede a las páginas de recuperación, desde la consola “Enterprise Manager” – “Diponibilidad” – “Valores del catalogo de recuperación”, mostrándonos la siguiente ventana:

Realizar Recuperación

Desde esta página podemos:

• Restaurar o recuperar una BBDD, tablespaces, archivos de datos y archive logs.

• Recuperar los tablespaces hasta un punto en el tiempo según un registro de hora, el número de cambio del sistema (SCN) o el número de secuencia de log.

• Recuperar los bloques de datos de archivo de datos que estén marcados como corruptos o basados en el identificador de bloque de archivo de datos y direcciones de bloque de tablespace.

• Realizar flashback de BBDD o tablas a un SCN o registro de hora.

La operación Realizar Recuperación incluye varios pasos que implementan el proceso de restauración o recuperación de un objeto.

En la página Realizar Recuperación están disponibles los campos, botones y secciones siguientes:

Curso de Oracle 11g

133

Campo Descripción

Fallos Detectados

Muestra el número de fallos detectados por el Asesor de Recuperación de Datos según sus estados de Crítico, Alto y Bajo. Haga clic en el número asociado a cada estado clasificado para mostrar la página Ver y Gestionar Fallos.

Descripción del Fallo

Descripción del tipo de fallo.

Botón Aconsejar y Recuperar

Muestra la página Ver y Gestionar Fallos para analizar y sugerir consejos de recuperación de fallos que surjan durante las operaciones de la BBDD. Se pueden seleccionar uno o más fallos sobre los que desee obtener consejos y corregir los fallos o utilizar las opciones de recuperación automática que sugiere Oracle. Opcionalmente, se pueden cerrar los fallos, cambiar su prioridad o bien filtrar o regenerar la lista de fallos desde la BBDD. Igualmente, se puede enviar un trabajo para ejecutar el consejo de recuperación sugerido.

Ámbito de Recuperación

Permite seleccionar la recuperación de la BBDD completa o las Tablas de la lista.

Botón Recuperar

Inicia la operación de recuperación.

Tipo de Operación

Si en el campo Ámbito de Recuperación ha seleccionado toda la BBDD, seleccione Restaurar Todos los Archivos de Datos en el campo Tipo de Operación. Se debe especificar la hora, el SCN o la secuencia de log. Si ha seleccionado Tablas en Ámbito de Recuperación, puede seleccionar Realizar Flashback en Tablas Existentes o Realizar Flashback en Tablas Borradas.

Descifrar Copias de Seguridad

Si los objetos se están recuperando de copias de seguridad cifradas con contraseña, proporcione una lista de contraseñas separadas por comas.

Credenciales de Host

Para realizar operaciones de recuperación, proporcione las credenciales de conexión del sistema para acceder a la BBDD destino. Introduzca el usuario y la contraseña del host. Puede guardar las credenciales para usarlas más adelante seleccionando la opción Guardar como Credencial Preferida.

Nota: Puede determinar la secuencia de log o SCN que se utilizará al realizar una recuperación haciendo referencia a la información de la página Archive Logs.

Curso de Oracle 11g

134

3.8 Uso de RMAN para Duplicar una Base de Datos

Vamos a explicar paso a paso como utilizar el comando DUPLICATE ACTIVE DATABASE de RMAN. Este comando de Oracle11g, permite realizar la copia de una BBDD y generarla en la máquina que queramos, sin necesidad de pasar por un respaldo.

1. Vamos primero a generar un listener, el cual contenga las entradas de la instancia nueva y claro, el origen de donde sacaremos los datos.

LISTER11G = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle11g.inmotion.cl)(PORT = 1521)) ) SID_LIST_LISTER11G = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = /u01/app/oracle/product/11.1.0/db_1) (SID_NAME = orcl) ) (SID_DESC = (GLOBAL_DBNAME = copia) (ORACLE_HOME = /u01/app/oracle/product/11.1.0/db_1) (SID_NAME = copia) ) )

2. Al momento de levantar el listener, debe estar proporcionando disponibilidad a ambos servicios

[oracle@oracle11g admin]$ lsnrctl start LISTER11G LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 21-AUG-2009 12:00:03 Copyright (c) 1991, 2007, Oracle. All rights reserved. Starting /u01/app/oracle/product/11.1.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.1.0.6.0 - Production System parameter file is /u01/app/oracle/product/11.1.0/db_1/network/admin/listener.ora Log messages written to /u01/app/oracle/diag/tnslsnr/oracle11g/lister11g/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle11g.inmotion.cl)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle11g.inmotion.cl)(PORT=1521))) STATUS of the LISTENER Alias LISTER11G Version TNSLSNR for Linux: Version 11.1.0.6.0 -Production Start Date 21-AUG-2009 12:00:03 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication

Curso de Oracle 11g

135

SNMP OFF Listener Parameter File /u01/app/oracle/product/11.1.0/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/oracle11g/lister11g/alert/log.xml Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle11g.inmotion.cl)(PORT=1521))) Services Summary... Service "copia" has 1 instance(s). Instance "copia", status UNKNOWN, has 1 handler(s) for this service... Service "orcl" has 1 instance(s). Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully [oracle@oracle11g admin]$

3. Se debe añadir la siguiente entrada al archivo tnsnames.ora

copia = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle11g.inmotion.cl)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = copia) ) )

4. Necesitamos generar un archivo de inicialización pfile, el cual contenga sólo un parámetro, el db_name, el resto de los parámetros serán seteados con el DUPLICATE ACTIVE DATABASE

[oracle@oracle11g dbs]$ ls -ltr initcopia.ora -rw-r--r-- 1 oracle oinstall 14 Aug 21 12:02 initcopia.ora [oracle@oracle11g dbs]$ more initcopia.ora db_name=copia

5. Se debe generar un archivo de password, dado que el DUPLICATE ACTIVE DATABASE se conecta mediante SYSDBA a la instancia remota. Como observación, la password debe ser exactamente la misma , entre la instancia de origen y la de destino.

[oracle@oracle11g dbs]$ orapwd file=orapwcopia password=oracle entries=5 [oracle@oracle11g dbs]$ ls -ltr *copia* -rw-r--r-- 1 oracle oinstall 14 Aug 21 12:02 initcopia.ora -rw-r----- 1 oracle oinstall 2048 Aug 21 12:06 orapwcopia [oracle@oracle11g dbs]$

6. Se debe iniciar la instancia auxiliar en estado NOMOUNT , en esta instancia es donde quedarán los datos de la primaria

[oracle@oracle11g dbs]$ export ORACLE_SID=copia [oracle@oracle11g dbs]$ sqlplus /nolog

SQL*Plus: Release 11.1.0.6.0 -Production on Fri Aug 21 12:07:52 2009

Curso de Oracle 11g

136

Copyright (c) 1982, 2007, Oracle. All rights reserved.

SQL> conn / as sysdba Connected to an idle instance. SQL> startup nomount ORACLE instance started.

Total System Global Area 146472960 bytes Fixed Size 1298472 bytes Variable Size 92278744 bytes Database Buffers 50331648 bytes Redo Buffers 2564096 bytes SQL>

7. Nos conectamos a RMAN , con la instancia primaria , la base de datos debe estar abierta

[oracle@oracle11g dbs]$ rman target sys/oracle@orcl Recovery Manager: Release 11.1.0.6.0 - Production on Fri Aug 21 12:09:22 2009 Copyright (c) 1982, 2007, Oracle. All rights reserved. connected to target database: ORCL (DBID=1218194307) RMAN>

8. Nos conectamos a través de RMAN a la instancia auxiliar

RMAN> connect auxiliary sys/oracle@copia connected to auxiliary database: COPIA (not mounted) RMAN>

NOTA: Se debe recordar que esta entrada (@copia) fue creada en el punto 3

9. Se generamos todos los directorios nuevos que vamos a utilizar en nuestra nueva instancia

10. Ahora podemos ejecutar el comando DUPLICATE DATABASE mediante RMAN, así:

run { set newname for datafile '/u01/app/oracle/oradata/orcl/users01.dbf' to '/u01/app/oracle/oradata/copia1/users01.dbf'; set newname for datafile '/u01/app/oracle/oradata/orcl/undotbs01.dbf' to '/u01/app/oracle/oradata/copia2/undotbs01.dbf'; set newname for datafile '/u01/app/oracle/oradata/orcl/sysaux01.dbf' to '/u01/app/oracle/oradata/copia3/sysaux01.dbf'; set newname for datafile '/u01/app/oracle/oradata/orcl/system01.dbf' to '/u01/app/oracle/oradata/copia4/system01.dbf';

duplicate target database to copia from active database db_file_name_convert '/u01/app/oracle/oradata/orcl' , '/u01/app/oracle/oradata/copia' spfile parameter_value_convert = '/u01/app/oracle/admin/orcl' , '/u01/app/oracle/admin/copia' set log_file_name_convert = '/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/copia' set audit_file_dest='/u01/app/oracle/admin/copia/adump' set log_archive_dest_1='' set memory_target='183001600'

Curso de Oracle 11g

137

set dispatchers='(PROTOCOL=TCP) (SERVICE=copiaXD)' set control_files='/u01/app/oracle/oradata/copia1/control01.ctl','/u01/app/oracle/oradata/copia2/control02.ctl','/u 01/app/oracle/oradata/copia3/control03.ctl' set db_recovery_file_dest_size = '2294967296'; }

11. Mediante el anterior script, se comienza a generar la copia de la base de datos.

executing command: SET NEWNAME using target database control file instead of recovery catalog

executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME

Starting Duplicate Db at 22-AUG-09 allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=97 device type=DISK

contents of Memory Script: { backup as copy reuse file '/u01/app/oracle/product/11.1.0/db_1/dbs/spfileorcl.ora' auxiliary format '/u01/app/oracle/product/11.1.0/db_1/dbs/spfilecopia.ora' ; sql clone "alter system set spfile= ''/u01/app/oracle/product/11.1.0/db_1/dbs/spfilecopia.ora''"; } executing Memory Script

Starting backup at 22-AUG-09 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=154 device type=DISK Finished backup at 22-AUG-09

sql statement: alter system set spfile= ''/u01/app/oracle/product/11.1.0/db_1/dbs/spfilecopia.ora''

contents of Memory Script: { sql clone "alter system set db_name = ''COPIA'' comment= ''duplicate'' scope=spfile"; sql clone "alter system set log_file_name_convert = ''/u01/app/oracle/oradata/orcl'', ''/u01/app/oracle/oradata/copia'' comment= '''' scope=spfile"; sql clone "alter system set audit_file_dest = ''/u01/app/oracle/admin/copia/adump'' comment= '''' scope=spfile"; sql clone "alter system set log_archive_dest_1 = '''' comment= '''' scope=spfile"; sql clone "alter system set memory_target = 183001600 comment= '''' scope=spfile"; sql clone "alter system set dispatchers = ''(PROTOCOL=TCP) (SERVICE=copiaXD)'' comment= '''' scope=spfile"; sql clone "alter system set control_files = ''/u01/app/oracle/oradata/copia1/control01.ctl'', ''/u01/app/oracle/oradata/copia2/control02.ctl'', ''/u01/app/oracle/oradata/copia3/control03.ctl'' comment= '''' scope=spfile";

Curso de Oracle 11g

138

sql clone "alter system set db_recovery_file_dest_size = 2294967296 comment= '''' scope=spfile"; shutdown clone immediate; startup clone nomount ; } executing Memory Script

sql statement: alter system set db_name = ''COPIA'' comment= ''duplicate'' scope=spfile sql statement: alter system set log_file_name_convert = ''/u01/app/oracle/oradata/orcl'', ''/u01/app/oracle/oradata/copia'' comment= '''' scope=spfile sql statement: alter system set audit_file_dest = ''/u01/app/oracle/admin/copia/adump'' comment= '''' scope=spfile sql statement: alter system set log_archive_dest_1 = '''' comment= '''' scope=spfile sql statement: alter system set memory_target = 183001600 comment= '''' scope=spfile sql statement: alter system set dispatchers = ''(PROTOCOL=TCP) (SERVICE=copiaXD)'' comment= '''' scope=spfile sql statement: alter system set control_files = ''/u01/app/oracle/oradata/copia1/control01.ctl'', ''/u01/app/oracle/oradata/copia2/control02.ctl'', ''/u01/app/oracle/oradata/copia3/control03.ctl'' comment= '''' scope=spfile sql statement: alter system set db_recovery_file_dest_size = 2294967296 comment= '''' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started) Oracle instance started

Total System Global Area 184127488 bytes

Fixed Size 1298752 bytes Variable Size 142610112 bytes Database Buffers 37748736 bytes Redo Buffers 2469888 bytes

contents of Memory Script: { set newname for datafile 1 to "/u01/app/oracle/oradata/copia4/system01.dbf"; set newname for datafile 2 to "/u01/app/oracle/oradata/copia3/sysaux01.dbf"; set newname for datafile 3 to "/u01/app/oracle/oradata/copia2/undotbs01.dbf"; set newname for datafile 4 to "/u01/app/oracle/oradata/copia1/users01.dbf"; backup as copy reuse datafile 1 auxiliary format "/u01/app/oracle/oradata/copia4/system01.dbf" datafile auxiliary format "/u01/app/oracle/oradata/copia3/sysaux01.dbf" datafile auxiliary format "/u01/app/oracle/oradata/copia2/undotbs01.dbf" datafile auxiliary format "/u01/app/oracle/oradata/copia1/users01.dbf" ; sql 'alter system archive log current'; } executing Memory Script executing command: SET NEWNAME executing command: SET NEWNAME

Curso de Oracle 11g

139

executing command: SET NEWNAME executing command: SET NEWNAME

Starting backup at 22-AUG-09 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf output file name=/u01/app/oracle/oradata/copia4/system01.dbf tag=TAG20090822T205622 RECID=0 STAMP=0 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:07 channel ORA_DISK_1: starting datafile copy input datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf output file name=/u01/app/oracle/oradata/copia3/sysaux01.dbf tag=TAG20090822T205622 RECID=0 STAMP=0 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:56 channel ORA_DISK_1: starting datafile copy input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf output file name=/u01/app/oracle/oradata/copia1/users01.dbf tag=TAG20090822T205622 RECID=0 STAMP=0 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25 channel ORA_DISK_1: starting datafile copy input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf output file name=/u01/app/oracle/oradata/copia2/undotbs01.dbf tag=TAG20090822T205622 RECID=0 STAMP=0 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07 Finished backup at 22-AUG-09

sql statement: alter system archive log current sql statement: CREATE CONTROLFILE REUSE SET DATABASE "COPIA" RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 ( '/u01/app/oracle/oradata/copia/redo01.log' ) SIZE 50 M REUSE, GROUP 2 ( '/u01/app/oracle/oradata/copia/redo02.log' ) SIZE 50 M REUSE, GROUP 3 ( '/u01/app/oracle/oradata/copia/redo03.log' ) SIZE 50 M REUSE DATAFILE '/u01/app/oracle/oradata/copia4/system01.dbf' CHARACTER SET WE8MSWIN1252

contents of Memory Script: { backup as copy reuse archivelog like "/u01/app/oracle/product/11.1.0/db_1/dbs/arch1_25_690413581.dbf" auxiliary format "/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_%u_.arc" archivelog like "/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2009_08_22/o1_mf_1_25_591

Curso de Oracle 11g

140

54osg_.arc" auxiliary format "/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_%u_.arc" ; catalog clone recovery area; switch clone datafile all; } executing Memory Script

Starting backup at 22-AUG-09 using channel ORA_DISK_1 channel ORA_DISK_1: starting archived log copy input archived log thread=1 sequence=25 RECID=19 STAMP=695595606 output file name=/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_0lknbsj5_.arc RECID=0 STAMP=0 channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting archived log copy input archived log thread=1 sequence=25 RECID=20 STAMP=695595606 output file name=/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_0mknbsjs_.arc RECID=0 STAMP=0 channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:02 Finished backup at 22-AUG-09

searching for all files in the recovery area

List of Files Unknown to the Database ===================================== File Name: /u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_0lknbsj5_.arc File Name: /u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_0mknbsjs_.arc File Name: /u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_23_0fkn9m61_.arc File Name: /u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_23_0gkn9m6i_.arc cataloging files... cataloging done

List of Cataloged Files ======================= File Name: /u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_0lknbsj5_.arc

Curso de Oracle 11g

141

File Name: /u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_0mknbsjs_.arc File Name: /u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_23_0fkn9m61_.arc File Name: /u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_23_0gkn9m6i_.arc

datafile 4 switched to datafile copy input datafile copy RECID=1 STAMP=695595667 file name=/u01/app/oracle/oradata/copia1/users01.dbf datafile 3 switched to datafile copy input datafile copy RECID=2 STAMP=695595668 file name=/u01/app/oracle/oradata/copia2/undotbs01.dbf datafile 2 switched to datafile copy input datafile copy RECID=3 STAMP=695595668 file name=/u01/app/oracle/oradata/copia3/sysaux01.dbf

contents of Memory Script: { set until scn 1066933; recover clone database delete archivelog ; } executing Memory Script

executing command: SET until clause

Starting recover at 22-AUG-09 allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=153 device type=DISK

starting media recovery

archived log for thread 1 with sequence 25 is already on disk as file /u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_0mknbsjs_.arc archived log file name=/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_0mknbsjs_.arc thread=1 sequence=25 media recovery complete, elapsed time: 00:00:02 Finished recover at 22-AUG-09

contents of Memory Script: { shutdown clone immediate; startup clone nomount ; } executing Memory Script

Curso de Oracle 11g

142

database dismounted Oracle instance shut down

connected to auxiliary database (not started) Oracle instance started

Total System Global Area 184127488 bytes

Fixed Size 1298752 bytes Variable Size 146804416 bytes Database Buffers 33554432 bytes Redo Buffers 2469888 bytes sql statement: CREATE CONTROLFILE REUSE SET DATABASE "COPIA" RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 ( '/u01/app/oracle/oradata/copia/redo01.log' ) SIZE 50 M REUSE, GROUP 2 ( '/u01/app/oracle/oradata/copia/redo02.log' ) SIZE 50 M REUSE, GROUP 3 ( '/u01/app/oracle/oradata/copia/redo03.log' ) SIZE 50 M REUSE DATAFILE '/u01/app/oracle/oradata/copia4/system01.dbf' CHARACTER SET WE8MSWIN1252

contents of Memory Script: { set newname for tempfile 1 to "/u01/app/oracle/oradata/copia/temp01.dbf"; switch clone tempfile all; catalog clone datafilecopy "/u01/app/oracle/oradata/copia3/sysaux01.dbf"; catalog clone datafilecopy "/u01/app/oracle/oradata/copia2/undotbs01.dbf"; catalog clone datafilecopy "/u01/app/oracle/oradata/copia1/users01.dbf"; switch clone datafile all; } executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/oradata/copia/temp01.dbf in control file

cataloged datafile copy datafile copy file name=/u01/app/oracle/oradata/copia3/sysaux01.dbf RECID=1 STAMP=695595722

cataloged datafile copy datafile copy file name=/u01/app/oracle/oradata/copia2/undotbs01.dbf RECID=2 STAMP=695595723

cataloged datafile copy datafile copy file name=/u01/app/oracle/oradata/copia1/users01.dbf RECID=3 STAMP=695595724

Curso de Oracle 11g

143

datafile 4 switched to datafile copy input datafile copy RECID=3 STAMP=695595724 file name=/u01/app/oracle/oradata/copia1/users01.dbf datafile 3 switched to datafile copy input datafile copy RECID=2 STAMP=695595723 file name=/u01/app/oracle/oradata/copia2/undotbs01.dbf datafile 2 switched to datafile copy input datafile copy RECID=1 STAMP=695595722 file name=/u01/app/oracle/oradata/copia3/sysaux01.dbf

contents of Memory Script: { Alter clone database open resetlogs; } executing Memory Script

database opened Finished Duplicate Db at 22-AUG-09

RMAN>

Y así finalizamos con el duplicado de la BBDD. Ahora veremos algunos comandos más de RMAN, para la realización de copias de BBDD, aunque ya han sido tratados en capitulos anteriores

• Abrir una sesión con autenticación contra un catálogo de recuperación:

oracle@srv:> rman target=/ catalog nombre_catalogo@sid

• Listar las copias realizadas:

RMAN> list backup;

• Realizar una copia completa de la base de datos al disco flash:

RMAN> backup database include current controlfile plus archivelog;

• Realizar una copia completa de la base de datos a un dispositivo de cinta:

RMAN> backup device type sbt_tape database include current controlfile plus archivelog;

• Lanzar una copia de archivelog con borrado del no necesario:

RMAN> backup archivelog all not backed up delete all input;

• Mantenimiento y limpieza de copias obsoletas:

RMAN> crosscheck backup; RMAN> delete obsolete;

• Recuperación de un datafile borrado:

RMAN> restore datafile 'ruta_al_datafile'; RMAN> recover datafile 'nombre_datafile';

• Recuperación de un datafile dañado:

RMAN> recover datafile 'nombre_datafile';

Curso de Oracle 11g

144

3.9 Realización de una Recuperación Point-in-Time de Tablespaces

Oracle Enterprise Manager permite recuperar uno o más tablespaces (no el tablespace SYSTEM) a una hora que sea anterior al resto de la BBDD a través de una recuperación point-in-time de tablespaces.

Puede utilizar la página Point-in-Time del Asistente de Realización de Recuperaciones para designar si se deben recuperar los tablespaces hasta la hora actual o hasta un punto anterior especificado. Si decide recuperar hasta un punto en el pasado, debe introducir la fecha, el número de cambio de sistema (SCN) o un número de secuencia de log y la ubicación del disco existente como ubicación auxiliar.

Por defecto, Enterprise Manager realiza una copia de seguridad de tablespaces del juego de recuperación antes de ponerlos en línea después de la operación de recuperación point-in-time. No se recomienda desactivar esta opción.

Agregamos los tablespaces en que los que queremos realizar la recuperación. Se realiza una comprobación de dependencias en los tablespaces seleccionados. Si encuentra conflictos durante la comprobación, debemos resolverlos agregando o eliminando algun tablespaces antes de continuar.

Pasos:

1. Contar con un backup completo de la BBDD.

2. Crear un directorio vacío.

3. Realización del: recover tablespace nombre_tablespace

until time TO_DATE(fecha) auxiliary destination 'ruta';

4. Poner el tablespace en modo online.

Ejemplo:

Para saber que objetos se borraran después del Recovery, consultamos la vista:

TS_PITR_OBJECTS_TO_BE_DROPPER (Filtrar por el campo CREATION_TIME>Tiempo_Recovery_Incomplete)

Restricciones:

1. No podemos hacer recovery en el tiempo a un tablespace donde tenga objetos que dependan de otros y estos se ubiquen en otro tablespace. En este caso hay que mover el tablespace y los tablespaces dependientes.

2. Si renombramos un tablespace ya no podemos retroceder en el tiempo a menos que saquemos otro backup y ese sería el nuevo punto de partida.

3. En tablespaces que contienen los siguientes objetos no puden aplicársele el Recovery Incomplete: Tablas master de replicación, particiones de tablas particionadas (debe ser toda la tabla y sus particiones), tablas externas, tablas con tipo de datos VARRAY y Nested Table, tablespaces con undo o rollback segments y objetos del owner SYS.

Curso de Oracle 11g

145

3.10 Control y Ajuste de RMAN (Creación de un catálogo)

Crear y Configurar un Catálogo RMAN

Es esta una labor que compete tanto al operador de copias como al propio DBA. En la presente entrada me centro únicamente en las labores a realizar por el dba en el entorno de RMAN.

Como primer paso, hay que crear un usuario en la BBDD de repositorio (basicamente se encargará de llevar un diario de las copias). Para ello se puede usar el siguiente script:

CREATE USER rman_user IDENTIFIED BY contraseña DEFAULT TABLESPACE rman_ts QUOTA UNLIMITED ON rman_ts; GRANT RECOVERY_CATALOG_OWNER TO rman_user; GRANT CONNECT, RESOURCE TO rman_user;

Una vez creado el usuario, desde el host anfitrión de la BBDD que se quiere configurar, nos conectamos al catálogo RMAN usando el usuario creado, rman_user, y se crea el catálogo de recuperación:

$ rman RMAN> CONNECT CATALOG rman_user@cadena_conexión; RMAN> CREATE CATALOG TABLESPACE rman_ts; RMAN> exit;

Creado el catálogo, hay que registrar la base de datos en el mismo:

$ rman target=/ catalog rman_user@cadena_conexión RMAN> REGISTER DATABASE; RMAN> exit;

Ahora habrá que configurar el canal de copias al dispositivo de cinta. Para ello, y como se ha dicho al principio, por ejemplo, el TDP Oracle (para copias a un dispositivo tipo TSM).

$ rman target=/ catalog rman_user@cadena_conexión RMAN> CONFIGURE CHANNEL DEVICE TYPE ‘SBT_TAPE’ PARMS ‘ENV=(TDPO_OPTFILE=/opt/tivoli/tsm/client/oracle/bin/tdpo_bd.opt)’; RMAN> exit;

Si se quiere, se puede indicar que se haga autobackup (con cada copia) del control file y del spfile:

$ rman target=/ catalog rman_user@cadena_conexión RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

Finalmente, se lanza una copia total de la base de datos:

$ rman target=/ catalog rman_user@cadena_conexión RMAN> BACKUP DEVICE TYPE SBT_TAPE DATABASE;

Como curiosidad, si se quiere comprobar el estado de la copia se puede ejecutar lo siguiente:

RMAN> RESTORE VALIDATE DATABASE;

Curso de Oracle 11g

146

Recuperar Base de Datos usando RMAN

Vamos a explicar, de forma sencilla y resumida, los pasos a seguir para recuperar una BBDD Oracle haciendo uso de la herramienta RMAN. La forma inmediata de recuperar la BBDD es haciendo uso de RMAN. Con este procedimiento:

• Parar la base de datos:

SQL> SHUTDOWN IMMEDIATE;

• Entrar a RMAN.

$ rman target=/ catalog rman_user@cadena_conexión RMAN> STARTUP MOUNT; RMAN> RESTORE DATABASE; RMAN> RECOVER DATABASE; RMAN> ALTER DATABASE OPEN RESETLOGS; RMAN> EXIT;

• Bajar la base de datos, desde SQLPLUS.

SQL> SHUTDOWN IMMEDIATE;

• Levantar la base de datos.

SQL> CONN / AS SYSDBA SQL> STARTUP;

Borrar catálogo RMAN

Borrar un catalogo, no es algo habitual, pero debemos conocer el procedimiento. Es bastante más simple que crear el catálogo. En primer lugar, nos conectamos al catálogo de recuperación:

$ rman target=/ catalog rman_user@cadena_conexión

Hay que borrar todas las copias antes de eliminar el catálogo. Para ello se hace un crosscheck de los backups, seguido de un delete obsolete y un delete expired, para compactar el repositorio de copias:

RMAN> crosscheck backup; RMAN> delete obsolete; RMAN> delete expired;

Se borran los backups restantes: RMAN> delete backup;

Para comprobar que los deletes han hecho efecto, se puede ejecutar:

RMAN> list backup;

Finalmente, se borra el catálogo:

RMAN> drop catalog;

El sistema nos avisará entonces de que estamos intentando borrar el catálogo de recuperación, y nos pedirá que insertemos otra vez la orden para confirmarlo.

Curso de Oracle 11g

147

Recuperar datafile con RMAN

Recreemos una situación específica para ver su proceso. La BBDD está operativa y en funcionamiento pero, una o varias aplicaciones que acceden a esta BBDD dan un error tipo e indican que no pueden acceder a un datafile. Al realizar una consulta desde SQLPLUS comprobamos lo siguiente:

SQL> select file_name,status, online_status from dba_data_files where file_name like '%nombre%'; FILE_NAME STATUS ONLINE_

Como se puede observar, el datafile se encuentra en estado RECOVER. Lo inmediato en este momento sería lanzar un comando recover desde la propia consola de SQLPLUS. Si el problema es reciente, esto puede funcionar, pero si no, lo más probable es que el intento dé un error, similar a este:

+DG/sid/datafile/nombre.366.650544699 AVAILABLE RECOVER

SQL> recover datafile ‘+DGANCD/ancri/datafile/know.366.650544699'; ORA-00279: ORA-00279: el cambio 7306246681017 generado en 05/24/2009 02:45:57 es necesario para el thread 1 ORA-00289: sugerencia: +DG/sid/1_15322_619033057.dbf ORA-00280: el cambio 7306246681017 para el thread 1 está en la secuencia número 15322 Especificar log: {<RET>=sugerido | nombre_archivo | AUTO | CANCEL} ORA-00308: no se puede abrir el archive log '+DG/sid/1_15322_619033057.dbf' ORA-17503: ksfdopn:2 Fallo al abrir el archivo +DG/sid/1_15322_619033057.dbf ORA-15173: entry '1_15322_619033057.dbf' does not exist in directory 'sid'En este momento entra en juego RMAN.

Accedemos RMAN ya que para la recuperación del datafile va a ser necesario uno o varios ficheros de archivelog, que pueden haber sido copiados a algún dispositivo externo. Lanzamos el comando:

RMAN> recover datafile '+DG/sid/datafile/nombre.366.650544699'; Iniciando recover en 25/05/09 canal asignado: ORA_DISK_1 canal ORA_DISK_1: sid=619 instancia=SID devtype=DISK canal asignado: ORA_SBT_TAPE_1 canal ORA_SBT_TAPE_1: sid=628 instancia=SID devtype=SBT_TAPE canal ORA_SBT_TAPE_1: Data Protection for Oracle: version 5.4.1.0 iniciando la recuperación del medio físico recover terminado en 25/05/09

Al terminar, se lanza la misma consulta del estado del datafile desde SQLPLUS. Con este resultado:

SQL> select file_name,status,online_status from dba_data_files where file_name like '%nombre%'; FILE_NAME STATUS ONLINE_ +DG/sid/datafile/nombre.366.650544699 AVAILABLE OFFLINE El datafile ha sido recuperado, en estado OFFLINE. Para finalizar el proceso, se pone ONLINE. SQL> alter database datafile '+DG/sid/datafile/nombre.366.650544699' online; Base de datos modificada. SQL> select file_name,status,online_status from dba_data_files where file_name like '%nombre%'; FILE_NAME STATUS ONLINE_ +DG/sid/datafile/nombre.366.650544699 AVAILABLE

Curso de Oracle 11g

148

3.11 Uso de la Tecnología de Flashback

La tecnologia Flashback, permite la corrección de errores recuperando datos históricos. Oracle 11g, introduce Oracle Flashback Data Archive. Esta nueva función transparente sigue la pista a los cambios de todos los datos de Oracle en un medio altamente seguro y eficiente.

En la página “Valores de Recuperación” encontraremos:

Sección Recuperación de Flash

El área de recuperación de flash es un directorio gestionado por Oracle, un sistema de archivos o un grupo de discos de gestión automática de almacenamiento que proporciona una ubicación de disco centralizada para los archivos de copia de seguridad y de recuperación. Enterprise Manager puede almacenar sus copias de seguridad en el área de recuperación de flash y las utiliza cuando restaura archivos durante la recuperación de medios físicos. Los componentes de recuperación de Oracle interactúan con el área de recuperación de flash, garantizando de este modo que la BBDD se puede recuperar mediante los archivos del área de recuperación de flash. Utilice la sección de Área de Recuperación de Flash para establecer la ubicación y el tamaño del área de recuperación. Esta área es como una caché de disco para copias de seguridad en cinta, lo que permite reducir los tiempos de recuperación y realizar una gestión de copias automatizada.

• Defina la ubicación del área de recuperación de flash. Asegúrese de que la ubicación que especifique tenga suficiente espacio en disco para cubrir el tamaño del área de recuperación de flash.

• Defina el tamaño del área de recuperación de flash y las unidades.

• Active el registro de flashback para una recuperación point-in-time junto con el tiempo de retención de flashback.

Activar Flashback de Base de Datos

El área de recuperación de flash se debe definir para activar el registro de flashback. Si utiliza logs de flashback, puede recuperar toda la BBDD hasta un punto en el pasado sin restaurar los archivos. Flashback es el método de recuperación point-in-time designado en el Asistente de Recuperación. Defina igualmente el parámetro de retención para la BBDD de flashback en el campo Tiempo de Retención de Flashback.

Y desde la página “Mantenimiento de la Base de Datos de Cluster”, dentro de la sección “Alta Disponibilidad”, podremos utilizar las funciones de “Alta Disponibilidad” para realizar las tareas de recuperación, utilizando el Asistente de Recuperación para restaurar o recuperar una BBDD, tablespaces, archivos de datos, archive logs o realizar flashbacks de tablas o recuperar objetos.

Curso de Oracle 11g

149

3.12 Uso de Flashback de Base de Datos

El modelo de concurrencia de Oracle se utiliza como base para Flashback Query. Esta característica permite a un usuario establecer un cierto número SCN o tiempo de reloj en su sesión y ejecutar consultas sobre los datos que existían en esa fecha. Normalmente en un sistema de BBDD, una vez que se ha realizado el cambio no hay forma de retroceder al estado anterior de los datos a menos que se realicen restauraciones desde copias de seguridad. Sin embargo, la recuperación de una BBDD muy grande puede ser muy costosa, especialmente si el objetivo es solamente recuperar algunos datos, para esto la característica Flashback Query proporciona un sistema más simple para tratar estas incidencias.

Flashback Data Archive

Implementación:

1. Se crea usuario administrador con privilegios FLASBACK ARCHIVE ADMINISTER

2. Se otorgan el privilegio flashback archive a un usuario

3. Se crea área de archive:

SQL> create flashback archive <nombre> tablespace <nombre_tbs> retention xxx year; Mínima performance, mínimo storage (compress)

4. Se otorgan privilegios sobre el área de FlashBack Data Archive:

SQL> alter table <nombre tabla> flashback archive <nombre fbda>;

Flujo proceso Background FBDA (Flashback Data Archive)

• Se inicia con la BBDD

• FBDA trabaja primero sobre el Undo en el Buffer Cache

• Si el dato ya no esta en el buffer cache, lo va a buscar a los UNDO Segments

• Toda la información capturada , es dejada en las tablas correspondientes en el FDA

Flashback Transaction Backout

• Permite devolver transacciones ya comiteadas y sus dependencias

• Mediante OEM

• DBMS_FLASHBACK. TRANSACTION_BACKOUT

• V$TRANSACTION

Consulta de Flashback de Versiones: SQL de Consulta de Flashback de Versiones

Durante la operación de flashback en tablas, puede evaluar los cambios de fila y transacciones de una tabla para decidir el SCN o registro de hora que se va a utilizar. Utilice los Filtro de Consulta de Flashback de Versiones para definir las condiciones del filtro que permitirán generar un juego de filas que muestre los cambios realizados en una tabla y así decidir el SCN o registro a utilizar en el flashback.

Utilice la página SQL de Consulta de Flashback de Versiones para visualizar el SQL generado a partir de las selecciones realizadas en la página Filtro de Consulta de Flashback de Versiones. Se

Curso de Oracle 11g

150

puede acceder a esta página seleccionando Mostrar SQL de Consulta de Flashback de Versiones en la página Filtro de Consulta de Flashback de Versiones.

Haga clic en Aceptar para volver a la página Filtro de Consulta de Flashback de Versiones.

Realizar Flashback en Tablas

Usaremos esta página para especificar las tablas en las que desea realizar un flashback y mostrar la página Agregar Tabla y agregar tablas a la lista en el campo Tablas para Flashback.

En la página Realizar Flashback en Tablas están disponibles siguientes los campos y los botones:

Elemento Descripción

Ámbito de Recuperación

Muestra el ámbito de recuperación, por ejemplo, Tablas, Tablespaces o Archivos de Datos.

Tipo de Operación Muestra el tipo de operación para recuperación, por ejemplo, Realizar Flashback en Tablas Existentes.

Hora de Flashback Muestra la hora de flashback seleccionada con anterioridad en el asistente.

SCN de Flashback Muestra el SCN de flashback seleccionado con anterioridad en el asistente

Botón Agregar Tablas

Permite agregar tablas a la lista en la que se realizará el flashback.

Tablas para Flashback

Muestra las tablas en las que se realizará el flashback. Al seleccionar estas tablas, Enterprise Manager compara el SCN/registro de hora de entrada con el SCN/registro de hora del log de deshacer más antiguo. Si el SCN/registro de hora de entrada es más antiguo que el del log de deshacer, aparece un mensaje de advertencia que le permite volver a la página Opciones de Registro de Hora/SCN para introducir un nuevo o seleccionar otro método para recuperar los datos.

Nota: Si ninguna tabla depende de las tablas que ha seleccionado, el asistente saltará las páginas Opciones de Dependencia y Dependencias y se desplazará a la página Revisar.

Realizar Flashback de Tablas: Página Seleccionar SCN

Utilice la página Seleccionar SCN de la función Realizar Flashback en Tablas para:

• Ver resultados de la operación de filtro en la página Filtro de Consulta de Flashback de Versiones.

• Seleccionar el número SCN o el registro de hora en el que desea realizar el flashback.

La operación de flashback sólo se realizará en las tablas seleccionadas en la página Realizar Flashback en Tablas del Asistente de Realización de la Recuperaciones.

Curso de Oracle 11g

151

En la página Seleccionar SCN están disponibles los campos, botones y secciones siguientes:

Elemento Descripción

Ámbito de Recuperación

Muestra el ámbito de la recuperación, por ejemplo, Tablas, Tablespaces o Archivos de Datos.

Tipo de Operación Muestra el tipo de operación para la recuperación, por ejemplo, Realizar Flashback en Tablas Existentes.

Nombre de la Tabla Muestra el nombre de la tabla en la que intenta realizar el flashback.

Tabla Resultado de Consulta de Flashback de Versiones

Muestra el historial de la fila. Puede seleccionar la versión que desee eliminar. Se desharán todas las operaciones realizadas en la tabla desde el punto del SCN o registro de hora que seleccione hasta la hora actual. Para ver los detalles de una transacción específica, haga clic en ella. La tabla muestra las columnas siguientes: SCN de Flashback, Registro de Hora de Flashback, Identificador de Transacción y Operación, así como las cabeceras de columna de la tabla.

Filtro de Consulta de Flashback de Versiones

Durante la operación Realizar Flashback en Tablas, tiene la opción de evaluar los cambios en las filas y las transacciones de la tabla para decidir qué número SCN o registro de hora quiere utilizar.

Se puede utilizar la página Filtro de Consulta de Flashback de Versiones para:

• Establecer las condiciones de filtro que permiten generar un juego de filas que muestren a su vez los cambios realizados a la tabla especificada, decidiendo qué número SCN o registro de hora indicar para el flashback.

• Especificar una cláusula WHERE según las columnas seleccionadas para reducir la búsqueda.

• Especificar un rango de las versiones de fila para obtener las versiones necesarias y analizar un fallo en concreto.

En esta página están disponibles los campos, botones y secciones siguientes:

Elemento Descripción

Ámbito de Recuperación Muestra el ámbito de la recuperación.

Tipo de Operación Muestra el tipo de operación para la recuperación.

Botón Mostrar SQL de Consulta de Flashback de Versiones

Permite mostrar el SQL generado de las selecciones realizadas en esta página.

Nombre de la Tabla Muestra el nombre de la tabla en la que intenta realizar el flashback.

Sección Seleccionar Columnas Permite seleccionar columnas de la tabla en la que se realiza el flashback. Se puede realizar un ajuste de orden de las columnas seleccionadas mediante los controles situados a la derecha del recuadro selector Columnas Seleccionadas.

Curso de Oracle 11g

152

Sección Enlazar Valor de Fila Utilice la opción Enlazar Valor de Fila para introducir una sentencia SQL y filtrar las filas a visualizar.

Sección Seleccionar Intervalo de Tiempo

Utilice la sección Seleccionar Intervalo de Tiempo para especificar el período de tiempo para el que desea visualizar las filas. Tambien, puede seleccionar Mostrar Todo el Historial de Filas o especificar un rango de registros de hora mediante la opción Especificar Registro de Hora.

Asistente de Realización de Flashback en Transacción

Mostrar SQL de Deshacer

La función Realizar Flashback en Transacción de Enterprise Manager permite buscar e identificar el identificador de una transacción que se desea deshacer. Realizar Flashback en Transacción también muestra información sobre transacciones dependientes que se verían afectadas en cualquier acción de deshacer. En cuanto se identifica la transacción, tenemos la opción de deshacerla junto con sus transacciones dependientes.

La página Mostrar SQL de Deshacer se utiliza para mostrar las sentencias SQL del flashback en transacción actual en el orden en que se ejecutarán. A esta página se accede haciendo clic en Mostrar Archivo de Comandos SQL de Deshacer desde la página Revisar del Asistente de Realización de Flashback en Transacción.

Si hacemos clic en Aceptar volvemos a la página Revisar del Asistente de Realización de Flashback en Transacción.

Realizar Deshacer

La función Realizar Flashback en Transacción de Enterprise Manager permite buscar e identificar el identificador de una transacción que se desea deshacer. Realizar Flashback en Transacción también muestra información sobre transacciones dependientes que se verían afectadas en cualquier acción de deshacer.

Seleccionar Transacción

Utilizela para seleccionar la transacción que desea deshacer y si hacemos clic en una transacción nos muestra los detalles de transacciones específicas. Tambien muestra resultados parciales o completos de la consulta. Si fuera necesario, hacer clic en Refinar Consulta para parar la consulta y volver a la página Realizar Consulta para ajustar los parámetros de búsqueda.

La sección Resultados de Consulta muestra los siguientes elementos:

Elemento Descripción

Identificador de Transacción Número de identificación de la transacción que desea deshacer.

Versiones: Hora de Inicio Hora de inicio de las transacciones que desea deshacer.

Versiones: SCN de Inicio SCN de la transacción que desea deshacer.

Flashback Realizado Indica si el flashback se ha realizado o no.

Curso de Oracle 11g

153

La sección Resultados de Consulta en curso muestra los siguientes elementos:

Elemento Descripción

Personalizar Permite seleccionar la columna para la búsqueda, agregando texto SQL para identificar columnas para filtrar los registros.

Refinar Consulta Para la consulta actual y vuelve a la página de consulta para ajustar los parámetros de búsqueda.

Tabla Resultados Muestra la información relacionada.

Parar Consulta Para la consulta.

Mostrar Detalles Muestra la página Detalles de Transacción.

Realizar Flashback en Tablas Existentes:

Página Revisar

Utilice la página Revisar para mostrar la lista de todos los cambios que se realizarán en las tablas seleccionadas para flashback. Y seleccione Mostrar Cambios de Fila para visualizar una tabla con la vista anterior y posterior de cada fila de datos. Después de revisar las selecciones realizadas para el asistente, haga clic en Ejecutar para iniciar el trabajo o para realizar un flashback en las tablas inmediatamente.

Nota: Las tablas se bloquean mientras se muestran las filas en la página Mostrar Cambios de Fila. La tabla se desbloquea al seleccionar Cancelar, Atrás o cuando se el flashback.

Página Opciones de Tabla Dependiente

Al realizar un flashback en las tablas, utilice la página Opciones de Tabla Dependiente para definir las opciones de las tablas dependientes que están relacionadas con las tablas seleccionadas para el flashback.

Puede seleccionar realizar un flashback en las tablas seleccionadas y en todas las tablas dependientes,

o realizarlo independientemente en cada una de ellas. Si elige una de las dos últimas opciones, se pueden producir datos inconsistentes. Puede visualizar las tablas dependientes de las tablas seleccionadas haciendo clic en Mostrar/Ocultar.

Nota: Se puede tardar bastante tiempo en mostrar las tablas dependientes.

Para ampliar la información sobre la tecnología Flashback, puede consulta la ayuda activa de su BBDD Oracle 11g.

Curso de Oracle 11g

154

3.13 Diagnóstico de la Base de Datos (ADDM)

Oracle Database 10g introdujo el Automatic Database Diagnostic Monitor – ADDM; (Monitoreo Automático de Diagnóstico de BBDD). ADDM utiliza un enfoque integrado para ofrecer un análisis de desempeño de toda la BBDD, abarcando la administración de recuperación y backup, aplicaciones y SQL, espacios, recursos del sistema y almacenamiento. Ofrece a los DBA un análisis proactivo y está disponible para resolver rápidamente problemas de desempeño.

En Oracle Database 11g se amplia el ADDM al ofrecer análisis de desempeño de todo el cluster para bases de datos de Real Application Clusters (RAC). Para los entornos RAC, ADDM analiza el cluster de RAC e informa los problemas que afectan a toda la BBDD, así como sus instancias individuales.

Los DBA pueden utilizar ADDM para realizar un análisis de los recursos globales de toda la BBDD, como SQL de gran carga, el tráfico global de interconexiones de caché, los problemas de latencia de red, la asimetría en los tiempos de respuesta de las instancias, la capacidad I/O, etc. También tienen la capacidad de restringir el análisis ADDM de algunas instancias específicas de un cluster RAC.

Se pueden suprimir los resultados de ADDM utilizando directivas para filtrar y desplegar solamente los resultados de interés. Para comprender mejor el impacto de los resultados a través del tiempo, cada resultado tiene un nombre descriptivo que facilita la búsqueda, un enlace a los acontecimientos previos en las últimas 24 horas, y a las instancias afectadas.

Ejecutar ADDM

Haga clic en este botón “Ejecutar ADDM” para crear una nueva instantánea AWR y ejecutar ADDM en esta instantánea y la anterior.

Además, en el diagrama Sesiones pueden aparecer uno o varios iconos ADDM. Al hacer clic en uno, se accede al ADDM donde puede ver un análisis de rendimiento de la BBDD, ver detalles de instantánea, imprimir un informe completo del análisis o ejecutar ADDM de forma inmediata para un análisis nuevo de rendimiento.

Curso de Oracle 11g

155

Utilice la página Ejecutar ADDM para:

• Analizar el rendimiento de la instancia actual.

• Analizar el rendimiento de la instancia anterior.

Al analizar el rendimiento de la instancia anterior, se crea una tarea ADDM adicional para las instantáneas no adyacentes. Por ejemplo, podmeos seleccionar una instantánea del repositorio de carga de trabajo como punto de inicio y otra como punto de finalización.

Por defecto, ADDM analiza la BBDD según las instantáneas existentes del repositorio de carga de trabajo y que se capturan de forma automática en intervalos predefinidos. ADDM ejecuta una tarea frente a cada instantánea disponible, además se pueden buscar fácilmente los resultados de estas tareas ADDM utilizando Central de Asesores.

Elemento Descripción

Ejecutar ADDM para analizar el rendimiento de la instancia actual

Seleccione este botón y haga clic en Aceptar. Aparece una página de confirmación que le preguntará si desea crear una instantánea de AWR y ejecutar ADDM en esta instantánea y en la anterior. Despues aparece la página Conclusiones de Rendimiento de la Tarea ADDM, que permite a su vez, consultar las conclusiones de rendimiento para la consulta.

Ejecutar ADDM para analizar el rendimiento de la instancia anterior

Seleccionando este botón y a continuación, el botón Hora de Inicio de Período, haga clic en el icono de debajo del diagrama que represente la hora de inicio deseada. Para seleccionar una hora anterior a la que aparece en el diagrama, utilice la tecla de flecha hacia la izquierda que aparece debajo del diagrama. Los datos AWR están disponibles para los 7 días anteriores. Si seleccionamos el botón de Hora de Finalización de Período y, a continuación, haciendo clic en el icono de cámara situado debajo del diagrama que represente la hora de finalización deseada, pulsamos en Aceptar, aparece la página Conclusiones de Rendimiento de la Tarea ADDM, que le permite ver las conclusiones de rendimiento de la consulta.

Utilice la página Tarea ADDM para:

• Ver los resultados de la tarea ADDM seleccionada.

• Ejecutar ADDM para examinar el rendimiento de otro rango de instantáneas.

• Ver los detalles de la sesión activa, clase de espera o evento de espera.

• Ver el gráfico de sesiones activas para la tarea ADDM seleccionada.

• Examinar las conclusiones de la tarea ADDM.

• Ver filtros, instantáneas e informes para esta tarea ADDM.

Curso de Oracle 11g

156

Elemento Descripción

Ejecutar ADDM Haga clic en este botón para ir a la página Ejecutar ADDM, donde se puede analizar el rendimiento de instancia actual y anterior.

Historial de Conclusiones

Haga clic en este botón para ver el gráfico Historial de Conclusiones en el que puede ver cómo una conclusión ha contribuido al tiempo de BBDD durante un período de tiempo. Tenga en cuenta que, ya que no está en el contexto de una conclusión de esta página, aparecerá una página intermedia en la que se le solicitará que seleccione una conclusión ADDM.

Diagrama Sesiones Activas

Utilice las siguientes directrices para identificar la tarea seleccionada o para seleccionar una tarea ADDM distinta:

• La tarea seleccionada actualmente se identifica con el icono resaltado que hay debajo del diagrama Sesiones Activas.

• Cada icono situado debajo del gráfico representa una tarea ADDM diferente. Haga clic en el enlace Leyenda de Iconos para obtener descripciones de todos los iconos de instantánea y ADDM.

• Cada tarea ADDM corresponde a un par de instantáneas individuales de la BBDD, que se guardan en el repositorio de carga de trabajo.

Tabla Análisis de Rendimiento de ADDM

Las conclusiones generadas por las tareas ADDM seleccionadas se muestran en esta tabla.

• Impacto: Esta columna se utiliza para determinar la seriedad de la conclusión. Intente resolver antes los problemas asociados a las conclusiones de alto impacto, porque la resolución de estos problemas tendrá el mayor impacto en el rendimiento de la BBDD.

• Conclusiones: Haga clic en un enlace Conclusiones para ir a la página Detalles de Conclusiones de Rendimiento que proporciona el tiempo total de la base de datos transcurrido durante el período del análisis correspondiente, así como el impacto de la conclusión. Si implementa las recomendaciones que se muestran, podrá reducir el impacto de dicha conclusión.

• Incidencias: Haga clic en un enlace Incidencias para ir a la página Historial de Conclusiones en la que puede ver cómo la conclusión ha contribuido al tiempo de BBDD durante un período de tiempo.

Filtros Haga clic en este botón para ir a la página Filtros de ADDM.

Ver Instantáneas Haga clic en este botón para ir a la página Detalles de la Instantánea, donde se puede ver información detallada.

Ver Informe Haga clic en este botón para ir a la página Ver Informe, y ver un informe HTML para la tarea seleccionada.

Curso de Oracle 11g

157

3.14 Gestión de la Memoria Administración Automática de Memoria

Las estructuras de memoria de Oracle Database básicamente constan de una memoria compartida o Area Global del Sistema (SGA) y una memoria privada o Area Global del Programa (PGA).

En Oracle Database 11g, la administración de memoria se ha automatizado. Toda la memoria, PGA y SGA, es administrada centralmente con la ayuda de la característica de Administración Automática de Memoria. Los DBA deben especificar un solo parámetro, MEMORY_TARGET, y Oracle automáticamente establece el tamaño del Area Global del Programa (PGA) y el Area Global del Sistema (SGA) sobre la base de la carga de trabajo.

Al utilizar la transferencia de memoria indirecta, la BBDD transfiere la memoria de SGA a PGA y viceversa para responder a la carga. La transferencia indirecta utiliza el mecanismo del sistema operativo para liberar memoria compartida y la asignación de memoria para otros componentes que requieren memoria, por ej., de PGA a SGA. La asignación dinámica de memoria se ajusta en intervalos frecuentes para optimizar la memoria en uso con los requisitos de carga de trabajo a fin de maximizar la utilización de la memoria y evitar errores fuera de la memoria. Los usuarios pueden opcionalmente establecer los parámetros de SGA y PGA al utilizar la característica de Administración Automática de Memoria. Esto garantiza que los tamaños de SGA y PGA no disminuirán por debajo de los valores especificados por sus parámetros objetivos respectivos en el modo de autoajuste.

Página Rendimiento de la Base de Datos

Utilice esta página para obtener un repaso rápido de las estadísticas de rendimiento para esta BBDD que forma parte del entorno Enterprise Manager y así poder determinar si debe agregar o redistribuir los recursos de memoria.

Desde esta página podrá acceder a la tarea “Cambiar al modo Acceso a Memoria para sistemas lentos o bloqueados”. Puede desplegar los enlaces que aparecen junto a los diagramas o al final de la página para decidir si es necesario agregar o redistribuir recursos para resolver problemas de rendimiento.

Interpretación del Diagrama Host

Los valores altos indican que hay demasiados usuarios en espera en línea para el tiempo de CPU. Compare los valores con los de CPU utilizados en el diagrama Sesiones. Si el valor de sesiones es bajo y el de la longitud de la cola de ejecución es alto, indica que hay algo más en el host que no es la base de datos que está consumiendo CPU.

Curso de Oracle 11g

158

Si ha seleccionado el modo Acceso a Memoria, el diagrama Host no muestra inicialmente datos históricos, excepto si la pantalla se ha cargado recientemente y los datos históricos en caché están todavía disponibles. Los datos del Host se almacenan en caché a partir de la hora a la que se accedió a la pantalla por primera vez y llenan gradualmente el historial en el diagrama Host.

Seleccionar el modo Acceso a Memoria para sistemas lentos o bloqueados.

Puede hacer clic en el enlace Controlar Modo de Acceso a Memoria en la sección Enlaces Relacionados para activar el modo Acceso a Memoria. La página Rendimiento de la BBDD reaparece con un botón Desactivar Modo de Acceso a Memoria y un botón Cambiar a Modo de Acceso SQL en la esquina superior derecha.

Puede desactivar temporalmente el modo Acceso a Memoria haciendo clic en este botón, con lo que reaparece la página Rendimiento de la BBDD en modo Acceso SQL. Para volver a activar el modo Acceso a Memoria, vuelva a hacer clic en el enlace Controlar Modo de Acceso a Memoria y después en Activar Modo de Acceso a Memoria cuando reaparezca la página Rendimiento de la BBDD.

En el modo Acceso a Memoria, se recuperan estadísticas de rendimiento directamente desde el Área Global Compartida (SGA) mediante las llamadas optimizadas/sencillas a nivel de sistema como una alternativa para SQL. El modo Acceso a Memoria evita el cálculo asociado al análisis y ejecución de sentencias SQL, por lo tanto es perfecto para casos de contención de caché de biblioteca que pueden evitar que la instancia se controle en modo SQL. Se debe cambiar al modo Acceso a Memoria para sistemas lentos o bloqueados.

Las páginas en modo Acceso a Memoria contienen datos de ejemplo a una frecuencia mayor que las páginas en modo SQL. Por este motivo, los diagramas pueden ser algo diferentes del modo SQL.

Curso de Oracle 11g

159

3.15 Gestión del Rendimiento de la Base de Datos

Rendimiento de la Base de Datos

Utilice esta página para obtener un repaso rápido de las estadísticas de rendimiento para la BBDD que forma parte del entorno Enterprise Manager. Con esta información, puede determinar si debe agregar o redistribuir los recursos de memoria.

Algunas de las tareas disponibles en esta página son:

• Ver los problemas potenciales fuera y dentro de la base de datos actual.

• Identificar la causa de los cuellos de botella.

• Acceder a la información para SQL, sesiones, archivos y objetos principales.

• Ejecutar ADDM para realizar un análisis de rendimiento.

• Generar un informe de diagnóstico de rendimiento según los datos de ejemplo de sesión.

• Cambiar al modo Acceso a Memoria para sistemas lentos o bloqueados.

• Acceder a otros enlaces de control.

Puede desplegar los enlaces que aparecen junto a los diagramas o al final de la página para realizar las siguientes tareas:

• Identificar la causa de los problemas de rendimiento y resolverlos.

• Decidir si es necesario agregar o redistribuir recursos para resolver problemas de rendimiento.

• Ajustar su plan SQL y su esquema para una mejor optimización.

Elemento Descripción

Valores Haciendo clic en el botón para ir a la página Valores de Rendimiento, puede elegir las siguientes opciones:

• Seleccionar cuál de los cuatro separadores de la página Rendimiento deben aparecer inicialmente como valor por defecto.

• Seleccionar qué diagramas desea que aparezcan como valores por defecto para los separadores Rendimiento Global y E/S.

• Seleccionar si desea mostrar los valores de línea base en los diagramas de Media de Sesiones Activas, E/S, Rendimiento Global y Servicios.

Diagrama Host El diagrama muestra los problemas potenciales fuera de la BBDD. La carga media es una media móvil de la longitud de la cola de ejecución. Esta longitud indica el nivel de contención para el tiempo de CPU. Haga clic en la leyenda Carga Media situada a la derecha del diagrama para ir a la página Rendimiento del Host.

Ejecutar ADDM Ahora

Haga clic en este botón para crear una nueva instantánea AWR y ejecutar ADDM en esta instantánea y la anterior.

Curso de Oracle 11g

160

Ejecutar Informe ASH Haga clic en este botón para generar un informe Historial de Sesiones Activas (ASH).

Ver Datos El intervalo de refresco que seleccione afectará al tipo de dato mostrado y a la disponibilidad de determinados tipos de enlaces de control adicionales. Si selecciona Tiempo Real en la lista desplegable Ver Datos, estarán disponibles los siguientes enlaces:

• Bloqueos de Instancia • Actividad de Instancias • Instantáneas • SQL Duplicado • Análisis de Bloqueo • Líneas Base AWR • Sesiones Bloqueantes • Consumidores Principales • Sesiones de Búsqueda • Actividad de Sesión Superior • Buscar SQL • Juegos de Ajustes SQL

Si selecciona Histórico en la lista desplegable Ver Datos, aparecerá otra página con el diagrama Selección de Intervalo Histórico. Arrastrando el recuadro sombreado al intervalo de 24 horas deseado para actualizar los diagramas de la página, la vista histórica proporciona los siguientes enlaces de control:

• Actividad de Instancias • Instantáneas • SQL Histórico • Juegos de Ajustes SQL

Diagrama Media de Sesiones Activas

El diagrama muestra posibles problemas dentro de la BBDD. Las categorías, llamadas clases de espera, muestran qué volumen de la BBDD está esperando un recurso, como CPU o E/S del disco. Tambien muestra la carga de la instancia e identifica cuellos de botella del rendimiento. Para identificar problemas, el diagrama muestra un bloque de color más grande para indicar problemas más graves. Si hacemos en alguna de estas clases, nos lleva a la página Sesiones Activas en Espera para la clase seleccionada. Haga clic en el enlace Actividad de Sesión Superior para ir a la página Actividad de Sesión Superior para mostrar todas las clases de espera y estadísticas relacionadas para estas métricas:

• Sesiones Activas • Sesiones Principales • Módulos Principales • Archivos Principales

Curso de Oracle 11g

161

• PL/SQL Principal • SQL Principal • Servicios Principales • Acciones Principales • Objetos Principales

Diagramas de Rendimiento Global

Los diagramas muestran cualquier contención que aparezca en el diagrama Media de Sesiones Activas y también cuánto trabajo está realizando la BBDD.

• La vista Por Segundo muestra las conexiones, las transacciones, las lecturas físicas y el tamaño de redo por segundo.

• La vista Número por Transacción muestra sólo las lecturas físicas por transacción y el tamaño de redo por transacción.

Diagramas de E/S La mayoría de sistemas muestran un rendimiento correcto si este diagrama muestra una latencia inferior a 10 mseg.

• Diagramas de Función: Muestran componentes como RMAN, lecturas directas y escrituras directas. Haga clic en una de las leyendas en la parte derecha de los diagramas para ir a la página Detalles de E/S, donde puede ver datos históricos o en tiempo real para detalles en MB de E/S o solicitudes de E/S.

• Diagramas de Tipo de E/S: Muestran componentes como lecturas pequeñas, escrituras pequeñas, lecturas grandes y escrituras grandes.

• Diagramas de Grupo de Consumidores: Muestran grupos de consumidores de recursos.

Gráficos de Ejecución en Paralelo

Muestran las métricas de sistema relacionadas con consultas paralelas.

Diagrama Servicios Muestra los servicios principales en espera para el evento de espera correspondiente durante el período de tiempo mostrado. Sólo se muestran servicios activos. Haga clic en una de las leyendas de servicio en la parte derecha de los diagramas para ir a la página Actividad de Servicio, donde puede ver datos en tiempo real que muestran la carga de las sesiones para todas las clases asociadas al servicio.

Interpretación del Diagrama Host

Los valores altos indican que hay demasiados usuarios en espera en línea para el tiempo de CPU. Compare los valores con los de CPU utilizados en el diagrama Sesiones. Si el valor de sesiones es bajo y el de la longitud de la cola de ejecución es alto, indica que hay algo más en el host que no es la BBDD que está consumiendo CPU.

Si ha seleccionado el modo Acceso a Memoria, el diagrama Host no muestra inicialmente datos históricos, excepto si la pantalla se ha cargado recientemente y los datos históricos en caché están todavía disponibles. Los datos del Host se almacenan en caché a partir de la hora a la que se accedió a la pantalla por primera vez y llenan gradualmente el historial en el diagrama Host.

Curso de Oracle 11g

162

Interpretación del Diagrama Media de Sesiones Activas

El recuento de sesiones se calcula clasificando el tiempo que han consumido todas las sesiones activas en el último intervalo en diferentes clases de espera, sumándole la cantidad de cada clase de espera y dividiéndolo por el intervalo de ejemplo.

Compare los máximos del diagrama Media de Sesiones Activas con los de los diagramas Rendimiento Global de Instancia. Si el diagrama Media de Sesiones Activas muestra numerosas sesiones en espera, lo que indica contención interna, pero el rendimiento global es alto, la situación será aceptable. Probablemente, el rendimiento de la BBDDsea también eficaz si la contención interna es baja y el rendimiento global es alto. No obstante, si la contención interna es alta y el rendimiento global es bajo, habrá que considerar un ajuste en la BBDD.

Seleccionar el modo Acceso a Memoria para sistemas lentos o bloqueados.

Puede hacer clic en el enlace Controlar Modo de Acceso a Memoria en la sección Enlaces Relacionados para activar el modo Acceso a Memoria. La página Rendimiento de la BBDD reaparece con un botón Desactivar Modo de Acceso a Memoria y un botón Cambiar a Modo de Acceso SQL en la esquina superior derecha.

Puede desactivar temporalmente el modo Acceso a Memoria haciendo clic en este botón, con lo que reaparece la página Rendimiento de la BBDD en modo Acceso SQL. Para volver a activar el modo Acceso a Memoria, vuelva a hacer clic en el enlace Controlar Modo de Acceso a Memoria y después en Activar Modo de Acceso a Memoria cuando reaparezca la página Rendimiento de la BBDD.

Capacidades de SVG

Los diagramas, como los que aparecen en la página Rendimiento, están diseñados para beneficiarse de las capacidades de SVG.

Rendimiento de la Base de Datos de Cluster

Utilice la página Rendimiento de la BBDD de Cluster para un repaso rápido de las estadísticas de rendimiento de la BBDD, que forma parte del entorno de Enterprise Manager. Con esta información, puede determinar si debe agregar o redistribuir los recursos. Las estadísticas se van acumulando en todas las instancias de la base de datos de cluster.

Algunas de las tareas disponibles en esta página son:

• Ver los problemas potenciales fuera y dentro de la base de datos actual. • Identificar la causa de los cuellos de botella. • Acceder a la información para SQL, sesiones, archivos y objetos principales. • Ejecutar ADDM para realizar un análisis de rendimiento. • Generar un informe de diagnóstico de rendimiento según los datos de ejemplo de sesión. • Acceder a otros enlaces de control.

Puede desplegar los enlaces que aparecen junto a los diagramas o al final de la página para realizar las siguientes tareas:

• Identificar la causa de los problemas de rendimiento y resolverlos. • Decidir si es necesario agregar o redistribuir recursos para resolver problemas de

rendimiento. • Ajustar su plan SQL y su esquema para una mejor optimización.

Curso de Oracle 11g

163

Interpretación del Diagrama Carga Media de Host de Cluster

Si la carga media es superior a la media del número total de CPU en todos los hosts del cluster, existen demasiados procesos esperando recursos de CPU. A menudo, las sentencias SQL que no están ajustadas producen un uso intensivo de CPU. Compare los valores de carga media con los de CPU que ha utilizado en el diagrama Media de Sesiones Activas. Al igula que en casos anteriores, si el valor de las sesiones es bajo y el valor de la carga media es alto, esto indica que en el host hay algo, que no es la base de datos, que está consumiendo los recursos de la CPU.

Interpretación del Diagrama Latencia de Acceso de Bloque de Caché Global

Si al acceder a un bloque de la BBDD de cualquier clase no se localiza una copia en buffer en la caché local, se iniciará una operación de caché global. Antes de leer un bloque desde el disco, se realiza un intento de buscar el bloque en la caché de buffers de otra instancia. Si el bloque está presente en otra instancia, se puede enviar una versión del bloque. Hay dos tipos de bloques: los bloques de lectura actuales y los consistentes. El tiempo medio de recepción de bloque representa el tiempo transcurrido completo o latencia para una solicitud de bloque.

Las latencias prolongadas se pueden deber a:

• Un alto número de solicitudes debidas a sentencias SQL que no están ajustadas.

• Un gran número de procesos en cola de ejecución que esperan retrasos de planificación o CPU.

• Valores de parámetros del sistema operativo específicos de la plataforma que afectan a la planificación de procesos o al almacenamiento en buffer del IPC.

• Interconexiones lentas, ocupadas o con fallos. En estos casos, busque paquetes borrados, retransmisiones o errores de comprobación de redundancia cíclicos (CRC). Compruebe que la red es privada y que el tráfico entre instancias no está dirigido a través de una red pública. Puede acceder a la página Interconexiones de Cluster desde la página Coherencia de Caché de Cluster para controlar la transferencia y estadísticas relacionadas para las interconexiones.

Interpretación del Diagrama Media de Sesiones Activas

A nivel de BBDD de cluster, el diagrama Media de Sesiones Activas muestra las estadísticas de clases de espera agregadas en todas las estancias. La comparación del tiempo de CPU con el tiempo de espera ayuda a determinar qué parte del tiempo de respuesta se consume en trabajo útil en lugar de esperando a recursos utilizados potencialmente por otros procesos.

El recuento de sesiones se calcula clasificando el tiempo que han consumido todas las sesiones activas en el último intervalo de ejemplo en diferentes clases de espera, sumándole la cantidad de cada clase de espera y dividiéndolo por el intervalo de ejemplo.

Compare los máximos del diagrama Media de Sesiones Activas con los de los diagramas Rendimiento Global de la BBDD. Si el diagrama Media de Sesiones Activas muestra numerosas sesiones en espera, lo que indica contención interna, pero el rendimiento global es alto, la situación será aceptable. Probablemente, el rendimiento de la BBDD sea también eficaz si la contención interna es baja y el rendimiento global es alto. No obstante, si la contención interna es alta y el rendimiento global es bajo, habrá que considerar un ajuste en la BBDD .

Para identificar rápidamente áreas de problemas, el diagrama muestra un bloque de color más grande para indicar problemas más graves, que puede seleccionar para acceder a la información almacenada

Curso de Oracle 11g

164

a nivel de instancia en Sesiones Activas a través de las páginas de Instancias. También puede hacer clic en las leyendas de clase de espera junto al diagrama Media de Sesiones Activas para acceder a las mismas páginas.

Instancias de Rendimiento Global

La página Instancias de Rendimiento Global muestra el desglose por instancia activa del gráfico de rendimiento global de la BBDD acumulado de la página Rendimiento de la BBDD de Cluster. Utilice esta página para ver el rendimiento global de una determinada instancia, lo que puede ayudarle a diagnosticar problemas de rendimiento global.

Utilicela tambien para ver el gráfico de rendimiento de la categoría Rendimiento de la BBDD seleccionada en la página Rendimiento de la BBDD de Cluster. El rendimiento de cada una de las instancias está representado en el gráfico.

Interpretación y Uso del Diagrama

Haga clic en un nombre de instancia en la leyenda bajo el gráfico para ir a la página Sesiones Principales, que contiene información sobre las sesiones que consumen más recursos. Puede ver el gráfico de resumen de las instancias o el gráfico de mosaico de cada instancia. Los gráficos de resumen muestran datos de las N instancias principales en un cluster. Puede personalizar el número de instancias que deben mostrarse haciendo clic en Personalizar.

En la vista del gráfico de resumen o de mosaico, haga clic en un nombre de la leyenda debajo del gráfico o en la columna Nombre de la Instancia para ver la página Sesiones Principales de la instancia que seleccione. En dicha página, puede seleccionar diferentes métricas dentro de dicha categoría desde la lista desplegable.

El gráfico Máximo, Media y Mínimo muestra los valores máximos, medios y mínimos de la categoría Rendimiento Global de la BBDD de las instancias de cluster. La tabla Datos de Instancia muestra los valores actuales, medio y máximo de la última hora para cada instancia.

Personalización del Diagrama

Al acceder por primera vez a esta página, el diagrama muestra datos de hasta cuatro instancias. Si el sistema ejecuta más de cuatro instancias, la tabla siguiente muestra los datos para las cuatro instancias del diagrama más el resto de instancias que no aparecen en el diagrama. Los cuatro valores principales actuales de la tabla determinan qué instancias se muestran en el diagrama.

Data Guard

Utilice la página Data Guard - Visión General de Rendimiento para mostrar estadísticas detalladas relacionadas con el rendimiento de la configuración de Data Guard mediante el uso de diagramas de rendimiento. Estos proporcionan un resumen gráfico de toda la actividad de redo log de la configuración. El intervalo de recopilación por defecto es de un minuto y se puede modificar.

Notas de Uso

En esta página se recopila información relacionada con el rendimiento de todas las BBDD de la configuración. Todos los diagramas están representados por métricas. Por lo general, los diagramas muestran dos horas válidas de datos. Y se puede hacer clic en cualquier diagrama para ver datos históricos (por ejemplo, 24 horas, 7 días, 31 días). Los ratios se calculan determinando la cantidad de redo (aplicado o generado) dividido entre el intervalo de recopilación (el valor por defecto es 1 minuto para la página de rendimiento y de 5 para métricas).

Curso de Oracle 11g

165

• Ratio de Generación de Redo: Este diagrama muestra el ratio de generación de redo (KB/seg) en la BBDD primaria.

• Tiempos de Demora: Muestra la demora de transporte, correspondiente al número de segundos aproximado de redo aún no disponibles en la base de datos en espera y la demora de aplicaciones que es el número de segundos aproximado que la base de datos en espera se encuentra por detrás de la primaria.

• Ratio de Aplicaciones: Muestra el ratio de aplicaciones en espera (KB/seg). El ratio de generación de redo actual muestra el último valor. El valor Aplicar Ratio cuando Esté Activo muestra el ratio de aplicación actual promedio en los últimos tres archivos de log.

• Aplicación de Prueba: La aplicación de prueba es una aplicación incorporada que genera una carga de trabajo en la BBDD primaria. Constituye una de las formas más sencilla de ver las métricas de rendimiento cuando la BBDD primaria está en proceso de carga.

• Visión General: Muestra el nombre y estado de la BBDD primaria.

Nota: El estado de la página de rendimiento se muestra directamente de la métrica de estado que se ejecuta a intervalos de recopilación de 5 minutos. El estado de la página Visión General de Data Guard se actualiza siempre con cada refrescamiento.

Página Detalles de Conclusiones de Rendimiento

Utilice la página Detalles de Conclusiones de Rendimiento para ver las recomendaciones que ha generado una conclusión de ADDM determinada. Cada conclusión puede dar lugar a una o varias recomendaciones. Esta, proporciona el tiempo total de la BBDD transcurrido durante el período del análisis correspondiente, así como el impacto de la búsqueda. Si implementa las recomendaciones de la búsqueda que se muestran en la página, podrá reducir el impacto de dicha búsqueda. Tanto el impacto de la búsqueda como la ventaja de cada recomendación de búsqueda se muestran en forma de gráfico de barras como porcentaje del tiempo total de la BBDD.

Elemento Descripción

Historial de Conclusiones

Haga clic en este botón para ir a la página Historial de Conclusiones en la que puede ver cómo la conclusión ha contribuido al tiempo de BBDD.

Filtros Haga clic en este botón para ir a la página Filtros de ADDM en la que puede crear, visualizar o editar un filtro, y ver una lista de los filtros de la conclusión.

Planificar Asesor de Ajustes SQL

Para planificar una ejecución del Asesor de Ajustes SQL, seleccione la casilla de control de la izquierda y haga clic en este botón para definir el ámbito y la planificación de la ejecución del asesor.

Ejecutar Asesor ahora

Si se puede implementar una recomendación de ajuste SQL utilizando el Asesor de Ajustes SQL, Enterprise Manager incluye este botón para que se pueda ejecutar el asesor directamente.

Ver Historial de Ajustes

Este botón sólo está disponible si ha ejecutado anteriormente el Asesor de Ajustes SQL para esta sentencia SQL. Y haciendo clic en este botón para ir al separador Información de Ajuste de la página Detalles de SQL.

Ejecutar Asesor de Segmentos

Para recomendaciones de ajuste de segmento, este botón inicia el Asesor de Segmentos para el objeto de BBDD correspondiente.

Curso de Oracle 11g

166

Implementar Para recomendaciones relacionadas con la modificación de parámetros init.ora, este botón está disponible para modificar el parámetro al valor recomendado.

Tabla Ruta de Acceso de Búsquedas

ADDM localiza los problemas en la BBDD mediante un enfoque vertical. Identifica primero a los mayores consumidores de CPU y a los componentes o servicios que están experimentando el mayor tiempo de espera. A continuación, puede desplegar para identificar los motivos específicos de un cuello de botella de rendimiento. El árbol de búsquedas inversas se muestra para la búsqueda concreta en la tabla de búsqueda de ruta de acceso.

Página Informe de Datos de Rendimiento

Desde aquí se puede generar un informe Historial de Sesiones Activas (ASH). Este informe de diagnóstico del rendimiento de la BBDD se basa en datos de ejemplo de sesión en un período de tiempo determinado. Este informe resulta muy útil para diagnosticar picos de rendimiento pequeños (de 5 a 10 minutos) cuya media se puede obtener y, por lo tanto, ocultar o minimizar por otros problemas en el informe AWR de 1 hora.

Puede ejecutar este informe entre dos momentos determinados dentro del intervalo de retención (1 semana definida por defecto) del repositorio de carga de trabajo automática (AWR). Este informe no necesita instantáneas AWR para marcar los puntos finales del análisis del informe.

Además de las fechas y horas de inicio y finalización, esta página incluye los siguientes elementos:

Elemento Descripción

Generar Informe Para producir un informe ASH, este informe se agrega a la página.

Filtro Seleccione una opción de filtro y proporcione una cadena de búsqueda si desea limitar el informe.

Curso de Oracle 11g

167

3.16 Uso del Asesor de Segmentos

Configurar

Utilice el área Búsquedas de Segmento del área Uso de Espacio para ayudar a identificar problemas relacionados con el almacenamiento y ofrecer mejoras de rendimiento. Puede mostrar las búsquedas leves de espacio que puedan estar afectando actualmente al rendimiento del sistema.

Tambien para designar los problemas que se deben detectar y para seleccionar los tablespaces que se deben comprobar durante el procedimiento de comprobación de la fragmentación. Puede especificar el porcentaje de espacio desperdiciado por debajo del límite superior a partir del cual se van a detectar los segmentos de tabla. Igualmente puede especificar el porcentaje de encadenamiento de filas por encima del cual se van a detectar los segmentos de tabla.

Si desactiva las opciones Espacio Desperdiciado Excesivo y Encadenamiento de Filas Excesivo, se desactiva la comprobación de la fragmentación. AL reactivarlas, introduzca valores en los campos Espacio Desperdiciado (%), Espacio Desperdiciado (MB) y Encadenamiento de Filas (%) y seleccione los tablespaces que se van a detectar. Especifique la cantidad de espacio desperdiciado más pequeña que se deba indicar.

Un segmento sólo se marcará como espacio desperdiciado si el porcentaje de espacio desperdiciado excede el porcentaje especificado en el campo Espacio Desperdiciado (%) y es superior al especificado en el campo Espacio Desperdiciado (MB). Sus valores por defecto son 50%, 10 MB y 10%.

Los siguientes segmentos no se comprueban durante la ejecución de la utilidad:

• Objetos que pertenecen a un cluster

• Tablas anidadas

• Subparticiones

• Índices

• Segmentos con 1 sola extensión

• Segmentos que pertenecen a SYS en bases de datos pre10 g

• Segmentos del tablespace SYSTEM

• Segmentos de los tablespaces temporal y deshacer

Para tablespaces sin gestión automática de espacio de segmento, sólo se comprueba el espacio desperdiciado de la tabla y los segmentos de partición de la tabla.

Nota: El usuario de control es el usuario de la BBDD que utiliza Oracle Enterprise Manager para conectarse a la BBDD y controlar su rendimiento. Para que la comprobación de búsquedas de segmentos se realice correctamente, el usuario de control debe tener los siguientes privilegios SELECT ANY DICTIONARY y ANALYZE ANY.

Asesor de Segmentos Automático

Enterprise Manager utiliza el Asesor de Segmentos para aconsejar si un objeto es un buen candidato para realizar una operación de reducción basada en el nivel de fragmentación de espacio dentro de

Curso de Oracle 11g

168

un objeto. Utilice esta información para obtener una planificación de la capacidad y para tomar una decisión sobre qué segmentos reducir.

Utilicela para ver los valores de la configuración actual del trabajo de Asesor de Segmentos Automático y para mostrar la información de la última ejecución del trabajo. La página proporciona información sobre el estado del trabajo, la hora de la próxima ejecución programada y el Historial de Ejecución. Puede editar la configuración haciendo clic en Configurar.

Ejecución del Asesor de Segmentos

Para ejecutar el asistente del Asesor de Segmentos debe tener los privilegios ADVISOR y CREATE JOB o CREATE ANY JOB. Si no tiene los privilegios adecuados, se mostrará un mensaje de error. Se accede a esta página haciendo clic en el enlace asociado en la sección Enlaces Relacionados de la página Recomendaciones del Asesor de Segmentos.

Conclusiones de Segmentos: Configurar - Agregar Tablespaces

Utilice el área Conclusiones de Segmentos del área Uso de Espacio para ayudar a identificar problemas relacionados con el almacenamiento. Puede mostrar las conclusiones de espacio que puedan estar afectando actualmente al rendimiento del sistema.

Utilice la página Agregar Tablespaces para agregar tablespaces a la lista de tablespaces en los que desea comprobar si hay problemas durante el proceso de detección de segmentos. Puede acceder a esta página desde la página Conclusiones de Segmentos: Configurar.

Los siguientes segmentos no se comprueban durante la ejecución de la utilidad Conclusiones de Segmentos:

• Objetos que pertenecen a un cluster

• Tablas anidadas

• Subparticiones

• Índices

• Segmentos con 1 sola extensión

• Segmentos que pertenecen a SYS en bases de datos pre10 g

• Segmentos del tablespace SYSTEM

• Segmentos de los tablespaces temporal y deshacer

Para tablespaces sin gestión automática de espacio de segmento, sólo se comprueba el espacio desperdiciado de la tabla y los segmentos de partición de la tabla.

Segmentos de Tabla

Puede utilizar Oracle Enterprise Manager para crear nuevas tablas, editar las construcciones y parámetros de las tablas existentes o suprimir tablas. Puede utilizar la página Editar: Segmentos de Tabla para:

• Mostrar los segmentos dependientes de la tabla.

• Mostrar la tendencia creciente de los segmentos mediante el período de tiempo especificado.

Curso de Oracle 11g

169

La página Editar: Segmentos de Tabla muestra los siguientes elementos:

Elemento Descripción

Tabla Segmentos Dependientes

Muestra los segmentos dependientes de la tabla. La tabla contiene los valores de Esquema, Nombre de Segmento, Tipo, Tablespace, Espacio Usado, Espacio Asignado y el porcentaje de espacio desperdiciado. Puede seleccionar un segmento y consultar la tendencia si hace clic en Refrescar. Nota: Los segmentos mostrados no incluyen el segmento de desbordamiento IOT, el segmento de tabla de asignación IOT, LOB ni los segmentos de índice LOB.

Gráfico de Tendencia de Uso de Espacio de la Tabla

Muestra la tendencia de crecimiento de los segmentos seleccionados mediante el período de tiempo especificado. Introduzca un rango de fechas y, a continuación, haga clic en Refrescar el gráfico. La tabla traza el uso del espacio en el eje Y y la fecha/hora en el eje X y muestra la cantidad de espacio asignado y utilizado. Si especifica una fecha futura, se generará una predicción sobre el uso de espacio en esa fecha. La traza de la tendencia puede tardar algún tiempo al refrescar.

Menú Acciones Sólo está disponible en modo de edición. Para ejecutar otras funciones de comando para una tabla, haga clic en Ir para ejecutar el comando seleccionado de la lista desplegable Acciones. Otras acciones que puede seleccionar son Crear Índice, Crear Sinónimo, Crear Disparador, Generar DDL, Privilegios de Objeto, Gestionar Estadísticas del Optimizador, Reorganizar, Ejecutar Asesor de Segmentos, Reducir Segmento, Mostrar Dependencias, Ver Datos, Realizar Flashback en Tabla, Consulta de Flashback de Versiones y Flashback de Transacciones.

Botón Planificar Trabajo

Muestra la página Planificar Trabajo, en la que se ejecutará un trabajo para crear la tabla. El trabajo se puede ejecutar inmediatamente o no. Este sólo aparece en la página Editar Tabla.

Botón Mostrar SQL Muestra la sintaxis SQL creada una vez introducida toda la información en la página.

Botón Revertir Sólo está disponible en modo de edición. Este botón permite volver al estado anterior de la tabla antes de realizar los cambios.

Botón Aplicar Sólo está disponible en modo de edición. Permite guardar los cambios realizados en la tabla.

Editar Segmentos de Índice

Puede utilizar Oracle Enterprise Manager para gestionar índices que aceleran la ejecución de sentencias SQL en una tabla. Un índice de Oracle proporciona una ruta de acceso más rápida a los datos de la tabla. Puede utilizar Oracle Enterprise Manager para crear nuevos índices, editar los parámetros opcionales y de almacenamiento de los índices existentes o suprimir los índices. Y puede utilizar la página Editar Segmentos de Índice para, mostrar los segmentos dependientes del índice y la tendencia creciente de los segmentos seleccionados mediante el período de tiempo especificado.

Curso de Oracle 11g

170

La página Editar Segmentos de Índice muestra los siguientes elementos:

Elemento Descripción

Tabla Segmentos Dependientes

Muestra los segmentos dependientes del índice. La tabla contiene los valores de Esquema, Nombre de Segmento, Tipo, Tablespace, Espacio Usado, Espacio Asignado y el porcentaje de espacio desperdiciado. Puede seleccionar un segmento y consultar la tendencia de uso de espacio si hace clic en Refrescar.

Gráfico de Tendencia de Uso de Espacio del Índice

Muestra la tendencia de crecimiento de los segmentos seleccionados mediante el período de tiempo especificado. Introduzca un rango de fechas en los campos De y A y, a continuación, haga clic en Refrescar el gráfico.

Menú Acciones Disponible sólo en modo de edición. Para realizar otras funciones de comando para un índice, haga clic en Ir para ejecutar el comando seleccionado de la lista desplegable Acciones. Otras acciones que puede seleccionar son Generar DDL, Gestionar Estadísticas del Optimizador, Reorganizar, Ejecutar Asesor de Segmentos, Reducir Segmento y Mostrar Dependencias.

Botón Planificar Trabajo

Muestra la página Planificar Trabajo, en la que se esjecutará un trabajo para crear el índice. El trabajo se puede ejecutar inmediatamente o no. Este aparece sólo en la página Crear Índice.

Botón Mostrar SQL Muestra la sintaxis SQL creada una vez introducida toda la información en la página.

Botón Revertir Disponible sólo en modo de edición. Este botón permite volver al estado anterior del índice antes de realizar los cambios.

Botón Aplicar Disponible sólo en modo de edición. Permite guardar los cambios realizados en el índice.

La página Segmentos es una de las páginas de la serie que compone la hoja de propiedades Índice.

Recomendaciones de Última Ejecución de Trabajo de Asesor de Segmentos Automático

Enterprise Manager utiliza el Asesor de Segmentos para aconsejar si un objeto es un buen candidato para realizar una operación de reducción basada en el nivel de fragmentación de espacio dentro de un objeto.

Nota: Para ejecutar el asistente del Asesor de Segmentos debe tener los privilegios ADVISOR y CREATE JOB o CREATE ANY JOB. Si no tiene estos privilegios, se muestra un mensaje de error.

Cuando termina un trabajo del Asesor de Segmentos, la salida del trabajo contiene los problemas de espacio encontrados y las recomendaciones del asesor para resolverlos. Para ver las recomendaciones del trabajo más recientementes, navegue hasta Recomendaciones desde la página Recomendaciones de Última Ejecución de Trabajo de Asesor de Segmentos Automático. Utilice esta página para:

Curso de Oracle 11g

171

• Ver una tabla que muestra el espacio reclamable por segmento o por tablespace.

• Ir a cualquier representación de la tabla mediante el enlace que se muestra sobre la tabla.

Se accede a esta página haciendo clic en el enlace asociado en la sección Enlaces Relacionados de la página Recomendaciones del Asesor de Segmentos.

Las recomendaciones se basan en la tendencia de crecimiento del segmento. Si la tendencia de crecimiento está disponible, el uso de espacio indicado será los datos previstos y puede que no sea igual al espacio utilizado en el momento de la evaluación. Oracle recomienda reducir o reorganizar estos segmentos para liberar espacio no utilizado.

Curso de Oracle 11g

172

3.17 Gestión de Recursos

Gestión de los recursos de la BBDD

Un administrador de la BBDD necesita poder controlar cómo se divide la potencia de procesamiento entre los usuarios y grupos de usuarios. Algunos grupos pueden ejecutar consultas interactivas donde el tiempo de respuesta es crítico; otros pueden ejecutar informes largos que se pueden ejecutar como tareas de procesos por lotes en segundo plano cuando la carga del sistema sea baja. También es importante poder evitar que un usuario envíe inadvertidamente una consulta ad hoc extremadamente complicada que retrasará demasiado al resto.

La característica de gestión de los recursos de la BBDD permite al administrador de la BBDD dividir los usuarios entre grupos consumidores de recursos con distintas prioridades y propiedades.

Por ejemplo, un grupo de usuarios interactivos de alta prioridad pueden tener garantizado al menos un 60 por ciento de UCP. El resto, más alguna parte del 60 por ciento no utilizado por el grupo de alta prioridad, se asignaría entre los grupos de consumidores de recursos con baja prioridad. Un grupo de realmente baja prioridad podría tener asignado un 0 por ciento, lo que significaría que las consultas enviadas por este grupo se ejecutarían solamente cuando hubiera disponibles ciclos de CPU no utilizados. Se pueden establecer para cada grupo límites para el grado de paralelismos para la ejecución en paralelo. El administrador de la BBDD también puede establecer límites de tiempo sobre cuánto tiempo máximo de ejecución se permite a una instrucción SQL. Cuando un usuario envía una instrucción, el gestor de recursos estima cuánto tiempo tardaría enejecutarse y devuelve un error si la instrucción viola el límite. El gestor de recursos también puede limitar el número de sesiones de usuario que se pueden activar simultáneamente para cada grupo de consumidores de recursos.

Plan de Recursos: General

Utilice Enterprise Manager para asignar recursos entre grupos de consumidores. Estos planes de recursos contienen directivas que especifican los recursos que se proporcionarán a cada y grupo y que se pueden especificar de modo jerárquico utilizando subplanes. Podemos usar esta página para:

• Crear o editar información general sobre un plan de recursos.

• Seleccionar grupos/subplanes disponibles que incluir en el plan de recursos agregándolos a la tabla Asignaciones de Recursos.

• Seleccionar el porcentaje de recursos de CPU asignados a un grupo.

Nota: Para las bases de datos de cluster, la página Plan de Recursos, muestra las instancias en las que el plan de recursos está activo. Si se hace clic en Editar podrá cambiar las instancias activas del plan.

La tabla Plan de Recursos: General incluye los siguientes campos, tablas y botones:

Elementos Descripción

Plan Nombre del plan de recursos.

Descripción Descripción textual del plan de recursos.

Activar este plan Si activa el plan, también puede activar el Cambio Aut. de Plan.

Menú Acciones En modo de edición, puede ejecutar acciones en el plan de recursos seleccionando una acción desde en lista desplegable y pulsando Ir. Puede seleccionar Crear como o Generar DDL.

Curso de Oracle 11g

173

Tabla Asignaciones de Recursos

Muestra los grupos de consumidores y los subplanes que forman parte del plan. Puede además agregar grupos de consumidores y subplanes a la tabla Asignaciones haciendo clic en Modificar. Esta tabla muestra los grupos/subplanes y los niveles.

Botón Mostrar SQL

Muestra la sintaxis SQL creada una vez introducida toda la información de la página.

Botón Revertir Utilice Revertir para cancelar todos los cambios realizados y volver a los valores anteriores del plan.

Botón Aplicar Utilice Aplicar para aplicar los cambios realizados en el plan. Este botón sólo está disponible en el modo de edición.

Grupo de Consumidores de Recursos: General

Puede utilizar Enterprise Manager para gestionar grupos de usuarios (o sesiones) que se agrupan según sus necesidades de procesamiento. Utilice los grupos de consumidores de recursos para especificar los usuarios y los roles a cuyas sesiones se permite iniciar o cambiar en cada grupo de consumidores.

Utilice esta página para:

• Crear o editar el grupo de consumidores y su descripción.

• Seleccionar usuarios que asignar al grupo agregando o suprimiendo miembros de la tabla Usuarios Seleccionados.

La página Grupo de Consumidores de Recursos - General contiene los siguientes campos, tablas y botones:

Elementos Descripción

Grupo de Consumidores Muestra el nombre del grupo de consumidores de recursos.

Descripción Descripción textual del grupo de consumidores de recursos.

Política de Planificación Seleccione Asignación en Rueda (Round-Robin) o Ejecutar para Terminar.

Menú Acciones En el modo de edición, puede ejecutar acciones en el grupo de consumidores de recursos seleccionando una acción en la lista desplegable y pulsando Ir.

Tabla Usuarios que Pueden Ejecutar en este Grupo de Consumidores

Muestra los usuarios a los que se permite ejecutar en este grupo de consumidores. Puede agregar miembros al grupo haciendo clic en Agregar.

Botón Agregar Muestra la página Agregar Usuarios Disponibles en la que puede agregar nuevos miembros a la tabla Usuarios.

Botón Mostrar SQL Muestra la sintaxis SQL creada una vez introducida toda la información de la página.

Botón Revertir Utilice Revertir para cancelar todos los cambios realizados y volver a los valores anteriores del grupo de consumidores.

Botón Aplicar Utilice Aplicar para aplicar los cambios realizados en el grupo de consumidores.

Curso de Oracle 11g

174

Paralelismo

Utilice Enterprise Manager para asignar recursos entre grupos de consumidores. Utilice la página Plan de Recursos - Paralelismo para definir el grado máximo de paralelismo para cada grupo que forma parte del plan de recursos actual.

La página Plan de Recursos - Paralelismo incluye los siguientes campos, tablas y botones:

Elementos Descripción

Tabla Paralelismo Especifica un límite sobre el grado de paralelismo de cualquier operación emitida por este grupo de consumidores. Puede introducir un valor numérico o UNLIMITED para indicar que no hay límite.

Menú Acciones En el modo de edición, puede ejecutar acciones en el plan de recursos seleccionando una acción de la lista desplegable y pulsando Ir.

Botón Mostrar SQL Muestra la sintaxis SQL creada una vez introducida toda la información de la página.

Botón Revertir Utilice Revertir para cancelar todos los cambios realizados y volver a los valores anteriores del plan.

Botón Aplicar Utilice Aplicar para aplicar los cambios realizados en el plan.

Tiempo de Ejecución

La hoja de propiedades Plan de Recursos permite seleccionar los grupos/subplanes disponibles que se van a incluir en el plan de recursos, seleccionar el porcentaje de recursos de CPU asignados a un grupo, especificar el número máximo de servidores de ejecución paralelos asociados a una única operación para cada grupo de consumidores de recursos, el número máximo de sesiones activas simultáneas permitidas en un grupo de consumidores, el máximo de kilobytes en la cantidad total de deshacer generados por un grupo de consumidores, el tiempo de ejecución máximo en segundos permitido para una operación si no existe ningún otro trabajo en el sistema, los criterios que provocan el cambio automático de sesiones a otro grupo de consumidores y, a continuación, activar el plan.

Utilice la página Tiempo de Ejecución de la hoja de propiedades Plan de Recursos para definir el tiempo estimado de ejecución en segundos para cada grupo que compone el plan de recursos actual.

Umbral

Utilice la página Plan de Recursos - Umbral para:

• Especificar la duración o los límites de recursos bajo los que se puede ejecutar una sesión en un grupo de consumidores.

• Cambiar a otro grupo de consumidores, cancelar la operación SQL de una sesión o matar una sesión si se excede alguno de los límites.

Esta página incluye los siguientes campos, tablas y botones:

Curso de Oracle 11g

175

Elementos Descripción

Tabla Umbral Especifica la duración o los límites de recursos bajo los que se puede ejecutar una sesión en un grupo. Puede introducir un valor numérico o UNLIMITED para designar que no hay límite en los campos Límite de Tiempo de Ejecución (Seg) , Límite de E/S (MB) o Límite de Solicitud de E/S (Solicitudes). Si excede alguno de los límites, la sesión puede cambiarse a otro grupo de consumidores que se muestre en el campo Acciones, puede cancelarse la operación SQL de la sesión o puede matarse la operación. Se tiene que asignar una Acción a cada grupo. Y activar la opción ¿Desea revertir después de la llamada? Para anular el cambio al final de la llamada.

Menú Acciones En el modo de edición, puede seleccionar ejecutar acciones en el plan de recursos eligiendo una acción en la lista desplegable y pulsando Ir.

Botón Mostrar SQL Muestra la sintaxis SQL creada una vez introducida toda la información de la página.

Botón Revertir Utilice Revertir para cancelar todos los cambios realizados y volver a los valores anteriores del plan.

Botón Aplicar Utilice Aplicar para aplicar los cambios realizados en el plan.

Roles

Utilice la página Grupos de Consumidores de Recursos - Roles para mostrar o seleccionar los roles que desea agregar al grupo de consumidores de recursos actual.

La página incluye las siguientes tablas y botones:

Elementos Descripción

Lista Roles Disponibles

Muestra la lista de roles disponibles desde la que puede seleccionar para el grupo de consumidores de recursos actual. Utilice los recuadros selectores para mover roles desde y hacia las columnas Roles Disponibles y Roles Seleccionados.

Lista Roles Seleccionados

Muestra la lista de roles seleccionados para el grupo de consumidores actuales.

Botón Mostrar SQL Muestra la sintaxis SQL creada una vez introducida toda la información de la página.

Botón Aceptar Utilice Aceptar para confirmar la selección de roles que se agregarán al grupo de consumidores de recursos.

Tiempo de Inactividad

Utilice la página Plan de Recursos: Tiempo de Inactividad para definir los valores de Tiempo Máximo de Inactividad en segundos y Tiempo Máximo de Inactividad si se Bloquea Otra Sesión (seg) en segundos. Igualmente puede especificar el valor UNLIMITED para indicar que no se ha definido ningún tiempo máximo. Está incluye los siguientes campos, tablas y botones:

Curso de Oracle 11g

176

Elementos Descripción

Tabla Tiempo de Inactividad

Especifica el tiempo máximo que puede estar inactiva una sesión del grupo de consumidores.

Menú Acciones En el modo de edición, puede ejecutar acciones en el plan de recursos seleccionando una acción de la lista desplegable y pulsando Ir.

Botón Mostrar SQL Muestra la sintaxis SQL creada una vez introducida toda la información de la página.

Botón Revertir Utilice Revertir para cancelar todos los cambios realizados y volver a los valores anteriores del plan.

Botón Aplicar Utilice Aplicar para aplicar los cambios realizados en el plan.

Pool de Sesiones

Utilice la página Pool de Sesiones para:

• Definir el número máximo de sesiones permitidas para un grupo que forme parte del plan de recursos.

• Definir el valor de timeout en segundos, para cada sesión.

La página Pool de Sesiones muestra una tabla que contiene todos los grupos y los valores de Número Máximo de Sesiones y Timeout de Cola de Activación (seg).

La página contiene los siguientes campos, tablas y botones:

Elementos Descripción

Tabla Pool de Sesiones Especifica un límite sobre el número máximo de sesiones activas simultáneamente para cada grupo de consumidores. Todas las demás sesiones esperarán en una cola de activación.

Menú Acciones En el modo de edición, puede ejecutar acciones en el plan de recursos seleccionando una acción de la lista y pulsando Ir.

Botón Mostrar SQL Muestra la sintaxis SQL creada una vez introducida toda la información de la página.

Botón Revertir Utilice Revertir para cancelar todos los cambios realizados y volver a los valores anteriores del plan.

Botón Aplicar Utilice Aplicar para aplicar los cambios realizados en el plan.

Seleccionar Grupos/Subplanes

Utilice la página Plan de Recursos: Seleccionar Grupos/Subplanes para agregar o eliminar planes y grupos de la tabla de la página Plan de Recursos: General que muestra los grupos y subplanes asociados al plan de recursos actual. Mueva los grupos o los subplanes entre las listas Grupos/Subplanes Disponibles y Asignaciones de Recursos. Haga clic en Aceptar para aceptar las selecciones y volver a la página Planes de Recursos: General.

Puede acceder a la página Seleccionar Grupos/Subplanes seleccionando Modificar desde la página Plan de Recursos: General.

Curso de Oracle 11g

177

3.18 Automatización de Tareas con el Planificador (Oracle Scheduler)

Enterprise Manager utiliza el planificador para permitir a los administradores de BBDD y a los desarrolladores de aplicaciones controlar cuándo y dónde tienen lugar varias tareas en el entorno de la BBDD. Con el planificador, se puede mejorar la gestión y la planificación de dichas tareas. El planificador ofrece un enfoque modular para la gestión de tareas dentro del entorno de Oracle. Al separar una tarea en sus componentes, como el tiempo, la ubicación y el objeto de BBDD, el planificador ofrece una forma más fácil de gestionar el entorno de la BBDD.

Utilice la sección Oracle Scheduler de la página Servidor de Base de Datos para:

• Crear trabajos mediante un trabajo simple, donde la acción y el esquema se especifican al crear el trabajo o mediante el uso de programas y planificaciones existentes.

• Usar las cadenas para crear trabajos que se ejecuten en múltiples pasos. Tras haber definido una cadena, un trabajo planificado puede apuntar a una cadena y no apuntar a un único programa.

• Ver una lista de planificaciones existentes, crear nuevos esquemas o clonar uno existente como plantilla, acceder a la página Ver Planificación, a la página Editar Planificación, a la página Crear Planificación o suprimir planificaciones existentes.

• Ver una lista de programas del planificador existentes, crear nuevos programas o clonar uno existente como plantilla, acceder a la página Ver Programa, acceder a la página Editar Programa y suprimir los programas existentes.

• Ver una lista de clases de trabajos existentes, crear una clase de trabajo o clonar una existente como plantilla, editar una clase de trabajo o suprimir una existente. Las clases de trabajo definen el grupo de consumidores de recursos en el que se ejecutará un trabajo.

• Ver una lista de ventanas existentes, acceder a las páginas Ver Ventana, Editar Ventana, Crear Ventana, suprimir ventanas existentes y abrir o cerrar ventanas inmediatamente. Las ventanas permiten cambiar asignaciones de recursos durante un período de tiempo, como una hora del día o del año de ventas, lo que permite controlar el nivel de prioridad de los grupos de usuarios especificados.

• Ver una lista de grupos de ventanas existentes, acceder a las páginas Ver Grupos de Ventanas, Editar Grupos de Ventanas, suprimir y duplicar un grupo ventanas existentes. Puede agrupar ventanas para facilitar su uso y poder controlar mejor la ejecución de los trabajos.

• Cambiar uno o más valores por defecto establecidos para atributos globales, ejecutar múltiples bases de datos (sólo Grid Control) o mostrar SQL para verificar los valores correctos.

• Ver tareas del sistema ejecutadas y ventanas planificadas para el período de tiempo que especifique, acceder a la página en la que puede configurar el sistema de tareas y acceder a páginas donde puede ver resúmenes y recomendaciones para los tres tipos de tareas del sistema.

Curso de Oracle 11g

178

3.19 Administración del Planificador

Vamos a mostrar las distintas opciones desde la página principal de la consola de Oracle Scheduler.

Página Trabajos Planificados

Utilice la página Trabajos Planificados para:

• Ver los trabajos planificados, Crear nuevos trabajos o clonar uno existente como plantilla.

• Acceder a la página Ver Trabajo, Editar Trabajo.

• Acceder a la página Ver Usuario.

• Ir a la página Editar Clase de Trabajo, Suprimir trabajos y Ejecutar un trabajo inmediatamente.

Elemento Descripción

Crear Crear un trabajo, su planificación y especificar opciones de ejecución.

Ver Definición del Trabajo

Ver detalles para el trabajo que selecciona en la columna Nombre.

Editar Definición del Trabajo

Seleccione un trabajo y, a continuación, haga clic en este botón para editar el trabajo, su planificación y sus opciones de ejecución.

Suprimir Suprimir el trabajo que selecciona en la columna Nombre.

Ejecutar Ahora Ejecuta inmediatamente el trabajo seleccionado en la columna Nombre.

Crear como Duplicar un trabajo existente (previamente seleccionado) y cambia partes concretas. Aparece la página Crear Programa.

Nombre Ver detalles del trabajo

Esquema Ver detalles del esquema para el nombre seleccionado

Clase de Trabajo Editar una clase de trabajo. Aparece la página Editar Clase de Trabajo.

Curso de Oracle 11g

179

Página Ver Trabajo

Utilice la página Ver Trabajo para:

• Ver una versión de solo lectura de los atributos del trabajo especificado.

• Acceder a la página Editar Trabajo.

• Acceder a la página Ver Usuario.

• Acceder a la página Detalle de Operación.

Elemento Descripción

Editar Haga clic en este botón para ir a la página Editar Trabajo, donde puede modificar los parámetros del trabajo.

Esquema Accede a la página Ver Usuario, donde puede ver los privilegios, cuotas, roles e información general del usuario.

Clase de Trabajo Dirige a la página Ver Clase de Trabajo, donde puede ver una versión de sólo lectura de los atributos de la clase especificada.

Ver Seleccione un identificador de log y, a continuación, haga clic en este botón para ir a la página Detalle de Operación, podrá ver los detalles de ejecución de este trabajo. También puede hacer clic en Identificador de Log para ir al enlace Detalle de Operación.

Curso de Oracle 11g

180

Página Trabajo: General

Utilice la página Trabajo: General para:

• Ajustar o modificar los parámetros de un trabajo.

• Acceder a la página Crear Clase de Trabajo.

• Acceder a la página Seleccionar Opción de Comando.

• Ejecutar el trabajo en varias bases de datos (solo Grid Control).

• Mostrar el SQL que ha proporcionado.

Elemento Descripción

Ejecutar en Varias Bases de Datos (sólo Grid Control)

Nos dirige a la página Ejecutar SQL, en la que puede realizar operaciones de administración en varias BBDD dentro del contexto de Enterprise Manager. Se pueden introducir comandos SQL, SQL*Plus o PL/SQL, ejecutarlos en una o más BBDD y ver los resultados interactivamente.

Mostrar SQL Nos muestra la página Mostrar SQL, donde se puede ver la SQL que se debe ejecutar según las entradas de las páginas Crear Clase de Trabajo o Editar Clase de Trabajo.

Nombre Proporcione un nombre necesario para este trabajo.

Esquema Busque y seleccione un esquema para este trabajo.

Activada Si especifica Sí para activar el trabajo, éste se ejecuta conforme a su planificación predeterminada. Si especifica No para desactivar el trabajo, éste se crea pero no se ejecuta.

Descripción Si lo desea, proporcione una descripción opcional.

Nivel de Registro La opción por defecto es "Registrar sólo Ejecuciones de Trabajo." Otras opciones son, Registrar Todo y Sin Registro.

Clase de Trabajo Especifique la clase a la que pertenece el trabajo. Si no especifica una clase de trabajo, el trabajo se asigna a la clase por defecto. Y si especifica un valor no válido, se genera un error. Puede crear una clase de trabajo haciendo clic en Crear Clase de Trabajo para visualizar la página Crear Clase de Trabajo. El propietario de un trabajo debe tener los privilegios EXECUTE.

Comando Utilice esta sección para crear un trabajo indicando un programa guardado o especificando una acción en línea. Para utilizar un programa existente debe ser el propietario del programa o tener los privilegios EXECUTE de éste. Haga clic en Cambiar Tipo de Comando para acceder a la página Seleccionar Opción de Comando. Y en esta página especificar si desea utilizar un programa existente o especificar un programa en línea para que se ejecute al definir o modificar un trabajo.

Curso de Oracle 11g

181

Resolución de un Fallo SQL Parcial

Si se produce un fallo parcial SQL al hacer clic en Aceptar, aparece un mensaje de error. Si intenta solucionar un problema y, a continuación, hace clic de nuevo en Aceptar, aparece otro mensaje de error indicando que el trabajo ya existe. Si ocurriese esto, vuelva a la página Trabajos, suprima la planificación con fallos y luego vuelva a la página Crear Trabajo y creando un trabajo de nuevo.

Curso de Oracle 11g

182

3.20 Globalización

El termino “globalización” de las bases de datos, afecta a Oracle 11g en varios puntos, pero principalmente:

• Descripción de Unicode

• Juegos de Caracteres de la Base de Datos y Juegos de Caracteres Nacionales

• Parámetros Dependientes del Idioma y el Territorio

• Ordenación y Búsqueda Lingüística

• Ordenación y Búsqueda no Sensibles a Mayúsculas/Minúsculas ni a Acentos

• Conversión de Datos de NLS con Utilidades de Oracle

Nuevas funciones de la globalización

Soporte para Unicode 5.0, una versión mayor del estándar Unicode que sustituye a todas las versiones anteriores de la norma.

• Las nuevas asignaciones se han hecho con el estándar Unicode. Estas se incluyen para: cirílico, griego, hebreo, Canarés, latín, matemáticas, las extensiones de fonética, los símbolos.

• Guiones, añadiendose: Bali, fenicios, cuneiforme, etc.

• Mejoras en el uso de caracteres, por ejemplo, sus propiedades o los algoritmos de visualización.

• Además, han sido re-clasificados los del sudeste de Asia.

A destacar:

• "Visión general de la Globalización de apoyo y Apoyo a bases de datos multilingüe con Unicode"

Recomendaciones que establece la BBDD de caracteres y la Declaración de la Dirección

Una lista de conjuntos de caracteres ha sido compilados y que se recomienda para el uso como la BBDD de carácter conjunto. Para la implementación del nuevo sistema, el conjunto de caracteres de BBDD está limitado a esta lista de juegos de caracteres recomendados.

• "La elección de un conjunto de caracteres y datos de configuración regional" Mejora del rendimiento para la conversión de caracteres.

Nueva sección de informe de BBDD de Carácter escáner conjunto, que proporciona información acerca de XML binario compacto (CSX) de datos en el Diccionario de Datos.

• "Conjunto de caracteres en Utilidades del escáner" GINSTALL, utilidad para agregar archivos personalizados de localización para los componentes de Java.

• "Personalización de datos de configuración regional" Tres nuevas lenguas: Albania, Belarús e irlandés, y dos nuevos territorios: Albania y Bielorrusia.

Curso de Oracle 11g

183

• "Datos de configuración regional"

Índice de apoyo lingüístico para su cotejo sensible en SQL y la condición LIKE.

• "Clasificación Lingüística y búsqueda de cadenas" Soporte para Unicode 4.0. mejorado, para soportar la última versión del estándar Unicode.

• "Apoyo a BBDD multilingüe con Unicode" La BBDD de caracteres del escáner conjunto (CSSCAN) introduce dos nuevos parámetros, consultar y columna, que ofrecen un mayor control en la ejecución de exploración selectiva. Apoyo a varrays multinivel y tablas anidadas.

El lenguaje y juego de caracteres File Scanner (LCSSCAN) ahora soporta la detección de archivos HTML. La calidad de detección de cadenas de texto más cortas también se ha mejorado.

• "Conjunto de caracteres Utilidades del escáner" Kit de desarrollo de la globalización. El Kit de desarrollo de la globalización (GDK) para PL/SQL proporciona nuevas funciones de cartografía regional, y ofrece soporte para la conversión Kana japonés utilizando la función de transliteración en el paquete UTL_I18N.

• "La globalización de Oracle Development Kit" Apoyo a literales de cadena NCHAR. SQL literales NCHAR utilizados en las instrucciones de inserción y actualización que ya no se basan en el carácter de BBDD establecidas para la conversión. Esto significa que los datos multilingüe se pueden agregar sin restricciones, tales como tener que proporcionar valores hexagonales Unicode. Esta característica está disponible en SQL, PL/SQL, la OCI, y JDBC.

• "NCHAR literales de cadena de sustitución y Programación con Unicode" De acuerdo Apoyo Lingüístico de pedido. El soporte para todas las funciones de SQL y los operadores para el valor NLS_SORT ya está disponible con la nueva LINGÜÍSTICA NLS_COMP. Esta característica garantiza que todas las comparaciones de cadenas SQL son consistentes, y que siguen la convención lingüística como se especifica en el parámetro NLS_SORT.

Curso de Oracle 11g

184

GLOSARIO La siguiente es una lista contine los términos más utilizados de trabajo con bases de datos Oracle. Estas definiciones pretenden ayudar a comprender con mayor claridad algunos de los conceptos que se mencionan en este manual.

Administrador de Base de Datos

El administrador o DBA es el principal responsable de la operación, configuración y rendimiento de una base de datos. Su principal tarea consiste en resguardar la integridad de los datos almacenados en la base, proveyendo para esto mecanismos de respaldo, efectuando monitorizaciones periódicas al sistema, implementando medidas de seguridad, etc.

Bloque

Un bloque es la unidad más pequeña de almacenamiento en una base de datos Oracle. El tamaño mínimo es de 2 KB y el máximo no debiera superar los 16 KB.

Buffer

Este término se refiere a una cantidad de memoria utilizada para almacenar información. Un buffer comúnmente almacena datos que están a punto de ser usados o se acaban de utilizar recientemente. En la mayoría de los casos son copias exactas de datos que se encuentran almacenados en el disco y se mantienen en memoria con el fin de lograr un acceso más rápido y ayudar de esa manera a mejorar el rendimiento de un sistema. En Oracle, los buffers del SGA almacenan los bloques de datos usados más recientemente. El conjunto de buffers que guardan estos bloques reciben el nombre de database buffer cache; y aquellos que se utilizan para guardar temporalmente las entradas del tipo redo log hasta que se escriben en el disco, se conocen como redo log buffers.

Caché

Es un área de almacenamiento implementada en la memoria RAM del computador que permite accesos más rápidos a la información ya que es mucho más veloz que la memoria. En Oracle, los buffers de bloques y el área shared pool son consideradas áreas caché. Estas guardan los datos que se utilizan con mayor frecuencia y los mantienen disponibles por si son requeridos en los procesos de consulta hasta que nuevos datos más frecuentemente usados los reemplazan.

Checkpoint

Un checkpoint es una operación que fuerza a que todos los cambios registrados en bloques de datos en memoria, sean escritos en el disco.

Clean buffer

Un buffer de este tipo es aquel que no ha sido modificado y que por lo tanto el proceso DBWR no utilizará para confirmar los cambios en el disco (porque no ha sufrido cambios).

Concurrencia

Este término se refiere a la capacidad de permitir muchas funciones al mismo tiempo. Oracle provee a muchos usuarios el acceso simultáneo a sus servicios, implementando de esta forma la concurrencia.

DBA

Vea Administrador de la Base de Datos

Curso de Oracle 11g

185

DBMS

El database management system o DBMS corresponde al software y grupo de herramientas que permiten manejar la base de datos. Un RDBMS es un DBMS relacional, es decir, cuya naturaleza es la formación de relaciones al interior del mismo.

DDL (comandos DDL)

Los comandos DDL (data definition language) son utilizados en la creación y modificación de objetos del esquema. Proveen la habilidad de crear, alterar e incluso eliminar objetos de un esquema, otorgar y revocar privilegios y roles a los usuarios, establecer opciones de auditoria e incluso agregar comentarios al diccionario de datos del sistema. Estos comandos están estrechamente relacionados con las labores de administración de la base de datos.

Diccionario de Datos

El diccionario de datos es un grupo de tablas de Oracle que se utilizan para almacenar información sobre el resto de las tablas, índices, clusters y otros objetos de la base de datos.

DML (comandos DML)

Los comandos DML (data manipulation language) son menos poderosos que los comandos DDL en cuanto a administración se refiere, de hecho, implementan modificaciones sobre la información que se guarda en los objetos de una base de datos. Estas sentencias son del tipo DELETE, INSERT, SELECT y UPDATE, principalmente.

Esquema

Un esquema es una colección de objetos asociados dentro de una base de datos.

Función

Una función es un grupo de sentencias SQL, escritas generalmente en PL/SQL que implementan una serie de rutinas que devuelven un valor. Son casi idénticas a los procedimientos y sólo se diferencian en esa última condición. Implementando funciones en el servidor de base de datos se reduce el tráfico de comunicaciones en la red, ya que sólo se envían a la función los parámetros de entrada y ésta sólo devuelve el valor al final de todo el proceso, el que es ejecutado en la misma máquina donde reside la base de datos mejorando así el rendimiento general del sistema.

Memoria Virtual

Indica la memoria que puede ser utilizada por programas que corren en un sistema operativo y que está implementada físicamente en sectores del disco y no en la RAM. El proceso de copiar datos de la RAM al disco (o memoria virtual) se llama paginación (paging, en inglés). El archivo resultante es llamado el “swap file” y cada vez que un programa accede a esta memoria virtual disminuye el rendimiento del mismo debido a que realmente está accediendo al disco y no a la RAM.

Procedimiento

Un Procedimiento almacenado es un grupo de sentencias SQL o PL/SQL que implementan un programa que se ejecuta en el servidor de base de datos, pero que a diferencia de las funciones, no devuelve un valor. Al igual que las funciones su implementación permite reducir el tráfico en la red, potenciando el rendimiento del sistema.

Curso de Oracle 11g

186

Query

Es una consulta efectuada contra la base de datos en lenguaje SQL. Se genera utilizando la sentencia SELECT. Su principal característica es que no efectúa cambios en la base de datos; por este motivo es llamada también una transacción de sólo lectura.

System Global Area (SGA)

El SGA es un área compartida de memoria que utiliza Oracle para guardar información de control en una instancia. Se asigna un espacio a esta área en cuando la instancia se levanta (startup) y se elimina cuando ésta se baja (shutdown). Cada instancia de Oracle maneja su propia SGA y guarda información de los buffers y la shared pool.

Tablas de rendimiento dinámicas

Estas tablas son creadas cuando se levanta una instancia y se usan para guardar información acerca del rendimiento de ésta.. Esta información incluye notas acerca de la conexión, datos que manejan los procesos de entrada/salida, valores de los parámetros de inicialización, entre otros.

Transacción

Una transacción es una unidad lógica de trabajo que consiste de una o más sentencias SQL, que pueden finalizar con un commit o un rollback. Las métricas de rendimiento utilizan comúnmente las unidades “transacciones por segundo” o “transacciones por minuto”.

Trigger

Un trigger es un mecanismo que permite escribir procedimientos que son ejecutados en forma automática (sin una orden explícita del usuario o programador) cuando ocurre un evento de INSERT, UPDATE o DELTE sobre una tabla o vista. Generalmente se utilizan los triggers para forzar las restricciones de integridad entre las tablas o automatizar alguna otra función específica.

Unidad de Almacenamiento

La información es almacenada dentro del computador en forma binaria. Las unidades que se refieren a estos conceptos (datos binarios) son las siguientes:

Término Definición

Bit La unidad más pequeña de almacenamiento. Un bit representa un 1 ó un 0

nibble 4 bits Este término no se utiliza con demasiada frecuencia

byte 8 bits Es la unidad de almacenamiento más utilizada

Word Término que depende de la arquitectura. En muchos sistemas, una “palabra” corresponde a 16 bits. También puede representar 32 ó 64 bits

Kilobyte (KB) En términos computacionales, un kilobyte equivale a 1024 bytes

Megabyte (MB) Este término denota a 1024 KB o 1048576 bytes

Gigabyte (GB) Un gigabyte corresponde a 1024 megabytes o 1,073,741,824 bytes

Terabyte (TB) Un terabyte son 1024 gigabytes o 1,099,511,627,776 bytes

Curso de Oracle 11g

187

LINKS www.oracle.es

http://wiki.oracle.com

http://www.zonaoracle.com/

www.forums.oracle.com

www.education.oracle.com

www.technothenet.com

http://asktom.oracle.com

Curso de Oracle 11g

188

BIBLIOGRAFIA

TÍTULO: Oracle Database 11g: backup and recovery AUTOR: Hart, Matthew EDITORIAL: McGraw-Hill

TÍTULO: OCA/OCP Oracle database 11g all-in-one: exam guide AUTOR: Watson, John EDITORIAL: McGraw-Hill Digital

TÍTULO: Oracle 11g: administración AUTOR: Heurtel, Olivier EDITORIAL: Eni

TÍTULO: Oracle Database 11g: the complete reference AUTOR: Loney, Kevin EDITORIAL: McGraw-Hill

TÍTULO: Oracle database 11g PL/SQL programming AUTOR: McLaughlin, Michael EDITORIAL: McGraw-Hill

TÍTULO: Beginning Oracle database 11g administration: from novice to professional AUTOR: Fernández, Iggy EDITORIAL: Apress

TÍTULO: Oracle essentials: Oracle Database 11g AUTOR: Greenwald, Rick EDITORIAL: O'Reilly