Sie sind auf Seite 1von 188

Curso de Oracle 11g

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

1
Curso de Oracle 11g

Í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

2
Curso de Oracle 11g

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

3
Curso de Oracle 11g

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.

4
Curso de Oracle 11g

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

5
Curso de Oracle 11g

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;

6
Curso de Oracle 11g

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

7
Curso de Oracle 11g

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;

8
Curso de Oracle 11g

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.

9
Curso de Oracle 11g

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.

10
Curso de Oracle 11g

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

11
Curso de Oracle 11g

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

12
Curso de Oracle 11g

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

13
Curso de Oracle 11g

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.

14
Curso de Oracle 11g

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;

15
Curso de Oracle 11g

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.

16
Curso de Oracle 11g

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.

17
Curso de Oracle 11g

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.

18
Curso de Oracle 11g

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.

19
Curso de Oracle 11g

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.

20
Curso de Oracle 11g

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 Repite el comando SQL antes de mostrar su
OFF (desactivado) resultado
TIMING ON (activado) y Permite mostrar estadísticas sobre el tiempo de
OFF (desactivado) ejecución en cada consulta SQL que se ejecute
HEADING ON (activado) y Hace que el encabezado con los alias de las
OFF (desactivado) columnas se active o no
WRAP ON (activado) y Activado, trunca un texto si sobrepasa la anchura
OFF (desactivado) 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 Permite activar y desactivar la posibilidad de usar
(activado) y OFF variables de sustitución. Indicando el carácter
(desactivado) 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 Hace que se muestren el número total de registros de
OFF (desactivado) 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.

21
Curso de Oracle 11g

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]

22
Curso de Oracle 11g

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

23
Curso de Oracle 11g

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.

24
Curso de Oracle 11g

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:

25
Curso de Oracle 11g

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

26
Curso de Oracle 11g

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));

27
Curso de Oracle 11g

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

28
Curso de Oracle 11g

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

29
Curso de Oracle 11g

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.

30
Curso de Oracle 11g

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]

31
Curso de Oracle 11g

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.

32
Curso de Oracle 11g

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.

33
Curso de Oracle 11g

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.

34
Curso de Oracle 11g

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.

35
Curso de Oracle 11g

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.

36
Curso de Oracle 11g

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

37
Curso de Oracle 11g

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.

38
Curso de Oracle 11g

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.

39
Curso de Oracle 11g

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:

40
Curso de Oracle 11g

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:

41
Curso de Oracle 11g

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.

42
Curso de Oracle 11g

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:

43
Curso de Oracle 11g

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:

44
Curso de Oracle 11g

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:

45
Curso de Oracle 11g

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:

46
Curso de Oracle 11g

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:

47
Curso de Oracle 11g

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:

48
Curso de Oracle 11g

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:

49
Curso de Oracle 11g

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:

50
Curso de Oracle 11g

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:

51
Curso de Oracle 11g

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.

52
Curso de Oracle 11g

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.

53
Curso de Oracle 11g

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.

54
Curso de Oracle 11g

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

55
Curso de Oracle 11g

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.

56
Curso de Oracle 11g

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.

57
Curso de Oracle 11g

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.

58
Curso de Oracle 11g

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.

59
Curso de Oracle 11g

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.

60
Curso de Oracle 11g

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.

61
Curso de Oracle 11g

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

62
Curso de Oracle 11g

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.

63
Curso de Oracle 11g

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.

64
Curso de Oracle 11g

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.

65
Curso de Oracle 11g

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:

66
Curso de Oracle 11g

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

67
Curso de Oracle 11g

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';

68
Curso de Oracle 11g

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.

69
Curso de Oracle 11g

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

70
Curso de Oracle 11g

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.

71
Curso de Oracle 11g

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:

72
Curso de Oracle 11g

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:

73
Curso de Oracle 11g

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.

74
Curso de Oracle 11g

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

75
Curso de Oracle 11g

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.

76
Curso de Oracle 11g

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.

77
Curso de Oracle 11g

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

78
Curso de Oracle 11g

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

79
Curso de Oracle 11g

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

80
Curso de Oracle 11g

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.

81
Curso de Oracle 11g

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; /

82
Curso de Oracle 11g

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

83
Curso de Oracle 11g

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 TUNED_UNDORETENTION


04-JUL-10 00:01 04-JUL-10 00:11 12100
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”-).

84
Curso de Oracle 11g

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.

85
Curso de Oracle 11g

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.

86
Curso de Oracle 11g

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.

87
Curso de Oracle 11g

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;

88
Curso de Oracle 11g

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.

89
Curso de Oracle 11g

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

90
Curso de Oracle 11g

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 Permite ir a la página Resumen de Resultados de Ajustes SQL
Automático 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.

91
Curso de Oracle 11g

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 Utilice esta tabla para seleccionar una combinación de tareas de
Ventanas de sistema y ventanas de día de semana asociadas que desee
Mantenimiento 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

92
Curso de Oracle 11g

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.

93
Curso de Oracle 11g

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

94
Curso de Oracle 11g

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.

95
Curso de Oracle 11g

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 Este muestra los problemas potenciales fuera de la BBDD. La carga media es una
Host 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.

96
Curso de Oracle 11g

Ejecutar Este botón crea una nueva instantánea AWR y ejecutar ADDM en esta y la anterior.
ADDM Además, en el diagrama Sesiones pueden aparecer uno o varios iconos ADDM. Al
Ahora 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 Haga clic para generar un informe Historial de Sesiones Activas (ASH). Este
Informe informe de diagnóstico del rendimiento de la BBDD se basa en datos de ejemplo de
ASH sesión en un período de tiempo determinado.
Diagrama Muestra posibles problemas dentro de la BBDD. Las categorías, llamadas clases de
Media de espera, muestran qué volumen de la BBDD está esperando un recurso, como CPU o
Sesiones E/S del disco. El diagrama muestra la carga de la instancia e identifica cuellos de
Activas 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 Los diagramas muestran cualquier contención que aparezca en el diagrama Media
de de Sesiones Activas y también cuánto trabajo está realizando la BBDD del usuario.
Rendimiento • La vista Por Segundo muestra las conexiones, las transacciones, las lecturas
Global 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 • Latencia para Lecturas de Único Bloque Síncrono. La mayoría de sistemas
de E/S 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.

97
Curso de Oracle 11g

• 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 Muestran las métricas de sistema relacionadas con consultas paralelas. Los
Ejecución diagramas muestran consultas paralelas que estaban esperando un evento de espera
en Paralelo concreto que ha significado los mayores porcentajes de actividad de sesión.

Diagrama Muestra los servicios principales en espera para el evento de espera correspondiente
Servicios 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.

98
Curso de Oracle 11g

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.

99
Curso de Oracle 11g

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.

100
Curso de Oracle 11g

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 Permite planificar una copia de seguridad utilizando la estrategia de copia de
Copia de Seguridad seguridad automática de Oracle. El procedimiento creará una copia de
Sugerida por seguridad de la base de datos completa en un intervalo diario o semanal.
Oracle 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 Permite seleccionar los objetos que se incluirán en la copia de seguridad. Esta
Copia de Seguridad opción proporciona opciones de copia de seguridad avanzadas que permiten
Personalizada 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 Crea una copia de seguridad de la base de datos completa. Si está abierta en
Datos 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 Permite especificar si se deben incluir todos los archivos de recuperación del
de Recuperación en disco. Entre ellos se incluyen los archive logs y las copias de seguridad en
el Disco disco que no se han realizado en cinta.
Credenciales de Debe introducir las credenciales del host (Usuario y Contraseña) y, a
Host continuación, indicar si las credenciales se deben guardar mediante la opción
Guardar como Credencial Preferida.

101
Curso de Oracle 11g

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.

102
Curso de Oracle 11g

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 Permite catalogar partes de copias de seguridad en disco o agregar
Adicionales metadatos al repositorio de Recovery Manager cuando no dispone de
ningún registro de estos archivos.
Realizar Permite asegurarse de que los datos sobre las copias de imágenes en el
Comprobación catálogo de recuperaciones o en el archivo de control están sincronizados
Cruzada de Todos 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 Permite eliminar las copias de imágenes obsoletas o las que
Registros Obsoletos 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 Elimina los registros vencidos. Utilice primero la función Realizar
Registros Vencidos 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.

103
Curso de Oracle 11g

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.

104
Curso de Oracle 11g

La página Valores de Recuperación consta de las secciones, campos, botones y tablas siguientes:

Elemento Descripción
Sección Utilice la Recuperación de Instancia para designar el tiempo medio deseado
Recuperación de para recuperar la instancia en minutos o segundos. El parámetro de
Instancia 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 Utilice esta sección para definir los parámetros necesarios para la
Recuperación del recuperación del medio físico. Primero debe activar Modo Archive Log para
Medio Físico 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.

105
Curso de Oracle 11g

Sección El área de recuperación de flash es un directorio gestionado por Oracle, un


Recuperación de sistema de archivos o un grupo de discos de gestión automática de
Flash 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 El área de recuperación de flash se debe definir para activar el registro de
de Base de Datos flashback. Pero esto lo veremos mas adelante

106
Curso de Oracle 11g

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:

Mover Datos de Fila


Página Movimiento de Datos: Sección 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.

107
Curso de Oracle 11g

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

Mover Archivos de Base de Datos


Página Movimiento de Datos: Sección 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.

Flujos
Página Movimiento de Datos: Sección 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).

Replicación Avanzada
Página Movimiento de Datos: Sección 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).

108
Curso de Oracle 11g

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.

109
Curso de Oracle 11g

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.

110
Curso de Oracle 11g

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.

111
Curso de Oracle 11g

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.

112
Curso de Oracle 11g

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.

113
Curso de Oracle 11g

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’;

114
Curso de Oracle 11g

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.

115
Curso de Oracle 11g

• 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

116
Curso de Oracle 11g

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 El nombre del servidor de administración y el icono Buscar.
Administración
Directorio Raíz de Ruta de acceso para la instalación de Oracle Secure Backup
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.

117
Curso de Oracle 11g

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 Permite introducir un nombre de punto de restauración para filtrar el
Restauración 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 Esta tabla muestra los puntos de restauración con estos elementos:
Restauración • 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.

118
Curso de Oracle 11g

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.

119
Curso de Oracle 11g

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 Permite especificar el número de días que se deben conservar los
RMAN (días) 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 Si decide utilizar un catálogo de recuperación, puede seleccionar uno
Recuperación 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 Lista desplegable que muestra los catálogos de recuperación
Recuperación configurados actualmente.
Botón Agregar Catálogo Muestra la página Agregar Catálogo de Recuperación en la que puede
de Recuperación agregar un catálogo de recuperación.
Credenciales de Si la BBDD no está registrada en el catálogo seleccionado, agregue el
Contraseña 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.

120
Curso de Oracle 11g

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 Permite editar el usuario del catálogo de recuperación. Si se especifica


Recuperación el host, puerto y SID, también se debe especificar el usuario y la
contraseña del catálogo de recuperación.

121
Curso de Oracle 11g

Contraseña de Catálogo Permite editar la contraseña del catálogo de recuperación. Si se


de Recuperación 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.

122
Curso de Oracle 11g

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.

123
Curso de Oracle 11g

• 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

Directorio o grupo de discos en los que se realizará la copia de seguridad de


Ubicación de Copia
los archivos de BBDD. Si no se especifica se creará en la ubicación por
de Seguridad en
defecto de la plataforma del directorio raíz de Oracle. Se recomienda
Disco
configurar el área de recuperación de flash y la ubicación para la copia.

Configurar Área de Si aún no se ha confiigurado ninguna área de recuperación de flash, haga


Recuperación de clic en este enlace para pasar al área de recuperación de flash de la página
Flash Valores de Recuperación y configurarla.

Probar Copia en
Permite asegurarse de que la copia de seguridad se funciona correctamente.
Disco

Tipo de Copia de Seleccione un tipo de copia de seguridad de las tres opciones disponibles:
Seguridad en Disco • 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
Permite asegurarse de que la copia de seguridad se funciona correctamente.
Cinta

Tipo de Copia de Seleccione el tipo de copia en cinta de entre las dos opciones disponibles:
Seguridad en Cinta • 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 Permite registrar una configuración de Oracle Secure Backup para
Secure Backup 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

124
Curso de Oracle 11g

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 Permite especificar los parámetros de la biblioteca para configurar un


Gest. Med. Físicos 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.

125
Curso de Oracle 11g

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.

126
Curso de Oracle 11g

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

127
Curso de Oracle 11g

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 Esta realiza una copia de todos los bloques en un juego de copias de
Completa 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 Una copia de seguridad incremental de nivel 1 incluye todos los
Incremental (Nivel 1) bloques cambiados desde la copia de seguridad de nivel 0 más reciente.
Refrescar la última copia Esta función aplica los cambios de la copia de seguridad incremental a
del archivo de datos a la la copia de imagen de la BBDD, de forma que la copia de la imagen
hora actual utilizando la contiene los cambios más recientes.
copia incremental

128
Curso de Oracle 11g

Avanzada
En esta sección se muestran los campos siguientes:

Campo Descripción
Suprimir copias de seguridad Permite suprimir las copias de seguridad que ya no se
obsoletas necesitan. Puede suprimir copias de seguridad obsoletas para
bases de datos, tablespaces y archivos de datos completos.
Usar la copia proxy soportada por Seleccione esta opción para que Recovery Manager realice
el software de gestión de medios una copia de seguridad convencional cuando la copia proxy de
físicos para realizar una copia de los archivos seleccionados no está soportada. Si activa esta
seguridad 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 Permite establecer el máximo de archivos por juego de copias
Copias de Seguridad 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 Permite cifrar la copia de seguridad con Oracle Encryption
cifrado de Recovery Manager 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 Si se utiliza la contraseña para cifrar la copia de seguridad,
Contraseña 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.

129
Curso de Oracle 11g

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 Utilice esta sección para designar el tiempo medio deseado para recuperar
Recuperación de la instancia en incrementos de minutos o segundos. El parámetro de
Instancia 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 Utilice esta sección para definir los parámetros necesarios para la
Recuperación del recuperación del medio físico. Primero debe activar Modo Archive Log
Medio Físico 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 Nota: Esta sección aparece sólo para bases de datos de cluster Oracle10i.
Recuperación de En la página Valores de Recuperación de Instancias de la BBDD de Cluster
Flash no se muestra.

130
Curso de Oracle 11g

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 Para activar el registro de flashback se debe definir el área de recuperación
Base de Datos 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.

131
Curso de Oracle 11g

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:

132
Curso de Oracle 11g

Campo Descripción
Fallos Muestra el número de fallos detectados por el Asesor de Recuperación de Datos
Detectados 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 Descripción del tipo de fallo.
del Fallo
Botón Muestra la página Ver y Gestionar Fallos para analizar y sugerir consejos de
Aconsejar y recuperación de fallos que surjan durante las operaciones de la BBDD. Se
Recuperar 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 Permite seleccionar la recuperación de la BBDD completa o las Tablas de la
Recuperación lista.
Botón Inicia la operación de recuperación.
Recuperar
Tipo de Si en el campo Ámbito de Recuperación ha seleccionado toda la BBDD,
Operación 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 Si los objetos se están recuperando de copias de seguridad cifradas con
Copias de contraseña, proporcione una lista de contraseñas separadas por comas.
Seguridad
Credenciales Para realizar operaciones de recuperación, proporcione las credenciales de
de Host 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.

133
Curso de Oracle 11g

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)(POR
T=1521)))
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle11g.inmotion.cl)(PO
RT=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

134
Curso de Oracle 11g

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)(POR
T=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

135
Curso de Oracle 11g

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'

136
Curso de Oracle 11g

set dispatchers='(PROTOCOL=TCP) (SERVICE=copiaXD)'


set
control_files='/u01/app/oracle/oradata/copia1/control01.ctl','/u01/app/oracle/oradata/c
opia2/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";

137
Curso de Oracle 11g

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

138
Curso de Oracle 11g

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

139
Curso de Oracle 11g

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_2
5_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_2
5_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_0lkn
bsj5_.arc
File Name:
/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_0mk
nbsjs_.arc
File Name:
/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_23_0fkn
9m61_.arc
File Name:
/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_23_0gkn
9m6i_.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_0lkn
bsj5_.arc

140
Curso de Oracle 11g

File Name:
/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_25_0mk
nbsjs_.arc
File Name:
/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_23_0fkn
9m61_.arc
File Name:
/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_23_0gkn
9m6i_.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_0mk
nbsjs_.arc
archived log file
name=/u01/app/oracle/flash_recovery_area/COPIA/archivelog/2009_08_22/o1_mf_1_2
5_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

141
Curso de Oracle 11g

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

142
Curso de Oracle 11g

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';

143
Curso de Oracle 11g

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.

144
Curso de Oracle 11g

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;

145
Curso de Oracle 11g

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.

146
Curso de Oracle 11g

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_
+DG/sid/datafile/nombre.366.650544699 AVAILABLE RECOVER
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:
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

147
Curso de Oracle 11g

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 El área de recuperación de flash es un directorio gestionado por Oracle, un


Recuperación de sistema de archivos o un grupo de discos de gestión automática de
Flash 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 El área de recuperación de flash se debe definir para activar el registro de
de Base de Datos 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.

148
Curso de Oracle 11g

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

149
Curso de Oracle 11g

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 Muestra el ámbito de recuperación, por ejemplo, Tablas, Tablespaces o
Recuperación 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 Permite agregar tablas a la lista en la que se realizará el flashback.
Tablas
Tablas para Muestra las tablas en las que se realizará el flashback. Al seleccionar estas
Flashback 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.

150
Curso de Oracle 11g

En la página Seleccionar SCN están disponibles los campos, botones y secciones siguientes:

Elemento Descripción
Ámbito de Muestra el ámbito de la recuperación, por ejemplo, Tablas, Tablespaces
Recuperación 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 Muestra el historial de la fila. Puede seleccionar la versión que desee
Consulta de Flashback eliminar. Se desharán todas las operaciones realizadas en la tabla desde
de Versiones 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 Permite mostrar el SQL generado de las selecciones realizadas
de Flashback de Versiones 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.

151
Curso de Oracle 11g

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 Utilice la sección Seleccionar Intervalo de Tiempo para
Tiempo 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.

152
Curso de Oracle 11g

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.

153
Curso de Oracle 11g

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.

154
Curso de Oracle 11g

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 Seleccione este botón y haga clic en Aceptar. Aparece una página de
analizar el rendimiento de confirmación que le preguntará si desea crear una instantánea de
la instancia actual 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 Seleccionando este botón y a continuación, el botón Hora de Inicio
analizar el rendimiento de de Período, haga clic en el icono de debajo del diagrama que
la instancia anterior 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.

155
Curso de Oracle 11g

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 Haga clic en este botón para ver el gráfico Historial de Conclusiones en el
Conclusiones 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 Utilice las siguientes directrices para identificar la tarea seleccionada o
Activas 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 Las conclusiones generadas por las tareas ADDM seleccionadas se
Rendimiento de muestran en esta tabla.
ADDM • 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.

156
Curso de Oracle 11g

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.

157
Curso de Oracle 11g

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.

158
Curso de Oracle 11g

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 Haga clic en este botón para crear una nueva instantánea AWR y ejecutar
Ahora ADDM en esta instantánea y la anterior.

159
Curso de Oracle 11g

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 El diagrama muestra posibles problemas dentro de la BBDD. Las
Sesiones Activas 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

160
Curso de Oracle 11g

• PL/SQL Principal
• SQL Principal
• Servicios Principales
• Acciones Principales
• Objetos Principales
Diagramas de Los diagramas muestran cualquier contención que aparezca en el
Rendimiento Global 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 Muestran las métricas de sistema relacionadas con consultas paralelas.
en Paralelo
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.

161
Curso de Oracle 11g

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.

162
Curso de Oracle 11g

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

163
Curso de Oracle 11g

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

164
Curso de Oracle 11g

• 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 Haga clic en este botón para ir a la página Historial de Conclusiones en la
Conclusiones 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 Para planificar una ejecución del Asesor de Ajustes SQL, seleccione la
Ajustes SQL 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 Si se puede implementar una recomendación de ajuste SQL utilizando el
ahora Asesor de Ajustes SQL, Enterprise Manager incluye este botón para que se
pueda ejecutar el asesor directamente.
Ver Historial de Este botón sólo está disponible si ha ejecutado anteriormente el Asesor de
Ajustes 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 Para recomendaciones de ajuste de segmento, este botón inicia el Asesor de
Segmentos Segmentos para el objeto de BBDD correspondiente.

165
Curso de Oracle 11g

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 ADDM localiza los problemas en la BBDD mediante un enfoque vertical.
Acceso de Identifica primero a los mayores consumidores de CPU y a los
Búsquedas 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.

166
Curso de Oracle 11g

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

167
Curso de Oracle 11g

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.

168
Curso de Oracle 11g

La página Editar: Segmentos de Tabla muestra los siguientes elementos:

Elemento Descripción
Tabla Segmentos Muestra los segmentos dependientes de la tabla. La tabla contiene los
Dependientes 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 Muestra la tendencia de crecimiento de los segmentos seleccionados
de Uso de Espacio de mediante el período de tiempo especificado. Introduzca un rango de
la Tabla 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 Muestra la página Planificar Trabajo, en la que se ejecutará un trabajo
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.

169
Curso de Oracle 11g

La página Editar Segmentos de Índice muestra los siguientes elementos:

Elemento Descripción

Tabla Segmentos Muestra los segmentos dependientes del índice. La tabla contiene los
Dependientes 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 Muestra la tendencia de crecimiento de los segmentos seleccionados


Tendencia de Uso de mediante el período de tiempo especificado. Introduzca un rango de fechas
Espacio del Índice 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 Muestra la página Planificar Trabajo, en la que se esjecutará un trabajo


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:

170
Curso de Oracle 11g

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

171
Curso de Oracle 11g

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.

172
Curso de Oracle 11g

Tabla Muestra los grupos de consumidores y los subplanes que forman parte del plan.
Asignaciones de Puede además agregar grupos de consumidores y subplanes a la tabla
Recursos Asignaciones haciendo clic en Modificar. Esta tabla muestra los
grupos/subplanes y los niveles.
Botón Mostrar Muestra la sintaxis SQL creada una vez introducida toda la información de la
SQL 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 Muestra los usuarios a los que se permite ejecutar en este grupo de
Pueden Ejecutar en este consumidores. Puede agregar miembros al grupo haciendo clic en
Grupo de Consumidores 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.

173
Curso de Oracle 11g

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:

174
Curso de Oracle 11g

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 Muestra la lista de roles disponibles desde la que puede seleccionar para el
Disponibles 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 Muestra la lista de roles seleccionados para el grupo de consumidores
Seleccionados 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:

175
Curso de Oracle 11g

Elementos Descripción
Tabla Tiempo de Especifica el tiempo máximo que puede estar inactiva una sesión del grupo
Inactividad 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.

176
Curso de Oracle 11g

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.

177
Curso de Oracle 11g

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 Ver detalles para el trabajo que selecciona en la columna Nombre.
Trabajo
Editar Definición del Seleccione un trabajo y, a continuación, haga clic en este botón para editar
Trabajo 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.

178
Curso de Oracle 11g

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.

179
Curso de Oracle 11g

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 Nos dirige a la página Ejecutar SQL, en la que puede realizar operaciones
Bases de Datos (sólo de administración en varias BBDD dentro del contexto de Enterprise
Grid Control) 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.

180
Curso de Oracle 11g

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.

181
Curso de Oracle 11g

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.

182
Curso de Oracle 11g

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

183
Curso de Oracle 11g

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

184
Curso de Oracle 11g

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.

185
Curso de Oracle 11g

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

186
Curso de Oracle 11g

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

187
Curso de Oracle 11g

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

188

Das könnte Ihnen auch gefallen