Está en la página 1de 316

Administracin Bsica de Oracle 11g.

1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA 6.
ESPACIO DE UDO!
"DES#ACE$%.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA 6.
ESPACIO DE UNDO.
Concepto de transaccin.
Espacio de UNDO (DESHACER).
Cadas del sistema. Redo log.
Consistencia en lectura.
Retroceso de transaccin. Flashback.
Gestin automtica de UNDO (DESHACER).
Parmetros obsoletos.
Parmetros de inicializacin.
Cuota de UNDO.
Espacio almac. creacin, modificacin, borrado e intercambio.
Vistas.
Dimensionado del espacio de undo.
Periodo de permanencia. Retention guarantee.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TRANSACCIN.
Unidad lgica de tra(a)* que contiene una o ms
sentencias SQL; se trata de una unidad indivisible o
atmica. Los efectos de las sentencias de una transaccin
pueden ser todos validados (aplicados a la base de datos)
o retrocedidos.
Comienza en la primera sentencia SQL ejecutable.
Termina cuando es validada o retrocedida, de forma
explicita, mediante las sentencias COMMIT o ROLLBACK, o
implcitamente, en el caso de sentencias DDL.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ESPACIO DE UNDO (DESHACER).
Espacio de undo: Conjunto de registros que guardan
informacin, relativa a acciones realizadas por una
transaccin, necesaria para:
Recuperacin de la base de datos.
Proporcionar consistencia en lectura (imagen de los datos).
Retroceder transacciones (rollback).
Anlisis de datos previos usando Oracle Flashback Query o
recuperacin lgica usando Oracle Flashback (permite ver o
recuperar datos en un momento dado del tiempo).
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ESPACIO DE UNDO (DESHACER).
CADAS DEL SISTEMA.
En caso de producirse una ca-da del sistema y quedar
transacciones activas (sin validacin -commit- ni retroceso
- rollback-), Oracle recupera la informacin del espacio de
undo y una vez hecho se realiza el rollback de dichas
transacciones.
En la recuperacin 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.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ESPACIO DE UNDO (DESHACER).
CADAS DEL SISTEMA.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ESPACIO DE UNDO (DESHACER).
CONSISTENCIA EN LECTURA.
Se usa la informacin en el espacio de undo para
proporcionar una imagen c*/erente de 0n c*n)0nt* de
dat*s res1ect* a 0n 10nt* en el tiem1*, aun cuando
se estn produciendo cambios sobre el mismo .
Al validar la transaccin (commit) se libera la
informacin pero no se destruye inmediatamente sino que
permanece un tiempo para asegurar la consistencia en
lectura de las consultas que comenzaron antes de la
validacin.
Los cambios realizados por otras transacciones que
suceden durante la ejecucin 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.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ESPACIO DE UNDO (DESHACER).
CONSISTENCIA EN LECTURA.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ESPACIO DE UNDO (DESHACER).
CONSISTENCIA EN LECTURA.
En ciertos casos, no pude devolverse un conjunto
coherente de resultados, snapshot, para consulta
voluminosa. Ocurre porque no puede almacenarse
suficiente informacin en el espacio de undocomo 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. Se genera el error:
ORA-01555 snapshot too old: rollback segment
number string with name "string" too small
La solucin es disponer de ms espacio de undo.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
14
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ESPACIO DE UNDO (DESHACER).
RETROCESO DE TRANSACCION.
Retroceder una transaccin (rolling back) es deshacer
cualquier cambio realizado a los datos por sentencias SQL
de una transaccin no validada.
En el retr*ces* de 0na transaccin5
Se aplican todos los cambios almacenados en orden inverso
hasta llegar al dato original.
Se libera cualquier bloqueo de datos efectuado por la
transaccin.
Finaliza la transaccin.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
11
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
GESTION DE ESPACIO DE UNDO
(DESHACER).
Existen dos formas de gestionar el espacio de undo:
Usando es1aci*s de almacenamient* de 0nd*! "m*d*
a0t*mtic*%. Es la forma recomendada por ser menos compleja
de implementar y ms eficiente en cuanto a gestin y se trata de
la 6*rma 1*r de6ect* a partir de la BD 11g. Al crear la BD se
crea automticamente un espacio de undo llamado UNDOTBS1.
Usando segmentos de rollback (modo manual). A desaparecer.
Ambas formas NO pueden simultanearse.
La forma de gestin, manual o automtica, puede determinarse
al arrancar la base de datos mediante el parmetro de
inicializacin UNDO_MANAGEMENT.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
1&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO MAUA7 DE UDO!
"DES#ACE$%
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
1'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO MANUAL UNDO (DESHACER).
PARAMETROS INICIALIZACION.
El parmetro de inicializacin UNDO_MANAGEMENT debe
tener el valor MANUAL.
UNDO_MANAGEMENT = MANUAL
Es una 6*rma de gestin *(s*leta basada en el uso de
segmentos de rollback (conjunto de extensiones que
contiene todos los datos para una estructura lgica de
undo en un tablespace).
Es incompatible con el modo automtico.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
1+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO DE UDO!
"DES#ACE$%
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
1,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SYSTEM es el espacio de almacenamiento original en
cualquier BD y el primero que se crea. Contiene
informacin bsica 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 lnea.
El segmento de rollback SYSTEM no puede borrarse.
ESPACIO DE UDO!
MODO AUTOMATICO UNDO (DESHACER).
SEGMENTO ROLLBACK SYSTEM.
Administracin Bsica de Oracle 11g.
16
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
PARAMETROS INICIALIZACION.
El parmetro de inicializacin UNDO_MANAGEMENT debe
tener el valor AUTO o ser nulo (es el 8al*r 1*r de6ect*).
UNDO_MANAGEMENT = AUTO
Al arrancar se busca el primer espacio de almacenamiento
de undo disponible (existente desde la creacin de la
bd o creado posteriormente).
Si no existe, se almacena la informacin de undo en el
espacio de almacenamiento SYSTEM. Esta situacin, no
recomendable, genera un mensaje de error en el fichero
de alertas. Error!.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
1.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
PARAMETROS INICIALIZACION.
Otros parametros de inicializacin relacionados son:
UNDO_RETENTION. Parmetro dinamico (alter system set undo_retention=
<valor>) que indica en segundos -por defecto 900-, cuanto tiempo ha de
permanecer, al menos, la informacion de undo disponible -importante en largas
transacciones, consistencia en lectura, y utilidades Flashback -.
Para espacios de undo autoextensibles, AUTOEXTEND, el sistema
retiene la informacin de undo al menos el tiempo indicado mediante
UNDO_RETENTION y ajusta el periodo de retencin para satisfacer las
necesidades de las consultas.
Para espacios de undo de tamao fijo, se ajusta al mximo posible
basndose en el tamao del espacio de undo y su historial de uso, e
ignora UNDO_RETENTION a menos que se habilite retention
guarantee.
El ajuste automtico de este parmetro no est soportado en LOBs,
en este caso el periodo de permanencia de la informacin lo marca
UNDO_RETENTION.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
12
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
PARAMETROS INICIALIZACION.
UNDO_RETENTION se respeta si hay suficiente espacio. Si una
transaccin 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".
El tiempo que la informacin de undo se retiene en el espacio de
almacenamiento de undo puede consultarse en la columna
TUNED_UNDORETENTION de la vista dinmica V$UNDOSTAT.

Slo en ciertas circunstancias es necesario fijar este parmetro:
Esp. de alm. con la opcin AUTOEXTEND.
Fijar el periodo de retencin para LOB (No se soporta ajuste automtico dado que la
informacin de undo se guarda en el propio segmento y no en el espacio de undo, as la
BD intenta satisfacer el periodo de permanencia indicado mediante UNDO_RETENTION. Si no
hay espacio, puede sobreescribirse informacin).
Se desea especificar la retention guarantee.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
13
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
PARAMETROS INICIALIZACION.
- UNDO_TABLESPACE. Parmetro dinmico (alter system ...) 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
SYSTEM Error!.
Un espacio de undo puede ser sustituido por otro mientras la
instancia est ejecutndose.
Al arrancar en m*d* a0t*mtic*9 se ign*ra c0al:0ier 1armetr*
relati8* al m*d* man0al 0sad* en el 6ic/er* de 1armetr*s.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
&4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
ESPACIO DE ALMACENAMIENTO.
Para el uso en modo automtico es necesario al menos un
espacio de almacenamiento (tablespace) de undo. Est
reservado exclusivamente para esta funcin (no pueden crearse
all objetos de datos).
Al crear la BD con Database Configuration Assistant (DBCA), se
crea un espacio de almacenamiento de undo autoextensible de
nombre UNDOTBS1 cuyo tamao mximo es de 32,767 MB.
A pesar de que puedan existir mltiples tablespaces de undo,
cada instancia slo puede tener activo uno de ellos -puede ser de
tipo bigfile-.
Los datos de undo se manejan usando segmentos de undo
que se crean y mantienen por el sistema.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
&1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
ESPACIO DE ALMACENAMIENTO.
Son diversas las operaciones que pueden llevarse a cabo
con este tipo de espacios de almacenamiento:
Creacin.
Modificacin.
Borrado.
Intercambio entre distintos espacios de undo.
Modificar la clausula de retencin.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
&&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
CREACION DE ESPACIO UNDO.
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 operacin de creacin de la BD falla al completo si no es
posible crear el espacio de undo.
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;
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
&'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
CREACION DE ESPACIO UNDO.
Restricciones:
En la creacin slo puede especificarse la clausula DATAFILE
(localizacin del fichero), determinando Oracle el resto de
atributos.
Puede crearse ms de un espacio de undo pero slo uno de
ellos estar activo en un instante determinado.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
&+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
MODIFICACION ESPACIO UNDO.
Mediante la sentencia ALTER TABLESPACE. Se permite:
Aadir 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.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
&,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
MODIFICACION ESPACIO UNDO.
Renombrar un fichero de datos.
ALTER DATABASE RENAME FILE
'/u03/oradata/CURSO25/undo01.dbf' TO
'/u03/oradata/CURSO25/tbsp_undo01.dbf';
Poner en lnea o fuera de lnea un fichero de datos.
ALTER DATABASE DATAFILE
'/u03/oradata/CURSO25/undo01.dbf' ONLINE/OFFLINE;
Modificar clasula RETENTION.
NO preservar los datos de undo que son aun vlidos.
ALTER TABLESPACE UNDOTBS RETENTION NOGUARANTEE;
Preservar los datos de undo que son aun vlidos.
ALTER TABLESPACE UNDOTBS RETENTION GUARANTEE;
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
&6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
BORRADO ESPACIO UNDO.
Se emplea la sentencia DROP TABLESPACE:
DROP TABLESPACE <nombre_tbsp>;

Slo es posible borrar si el espacio de undo no est en uso. Al
borrar se elimina todo su contenido, incluso aquella informacin
que no haya expirado.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
&.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
INTERCAMBIO ESPACIO UNDO.
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 este usando
por otra instancia.
La BD permanece en lnea mientras se realiza la operacin y
pueden ejecutarse transacciones. Al terminar el intercambio,
todas aquellas transacciones comenzadas despus de la
sentencia se asignan al nuevo espacio de undo.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
&2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
INTERCAMBIO ESPACIO UNDO.
Si existen transacciones pendientes de validar, commit, en el
antiguo espacio de undo, este pasa al estado PENDING
OFFLINE. Las transacciones siguen su curso pero no se usa para
nuevas transacciones.
Un espacio de undo puede existir en el estado PENDING
OFFLINE incluso despus de producirse el intercambio. En esta
situacin 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.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
&3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
CUOTAS EN ESPACIO UNDO.
Oracle Database Resource Manager permite establecer a travs
del parmetro UNDO_POOL la cantidad de espacio de undo
empleado en transacciones no validadas para un grupo de
usuarios (por defecto es ilimitado).
Cuando se excede dicho lmite, la transaccin que este
generando dicha informacin de undo finaliza y no puede
proseguirse generando undo para el grupo.
Resource Manager se gestiona a travs de distintos paquetes PL/
SQL y permite optimizar la asignacin de recursos entre sesiones
concurrentes de bd
(DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA,
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP,
DBMS_RESOURCE_MANAGER.CREATE_PLAN...)
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
'4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
VISTAS.
V$UNDOSTAT. Estadsticas para monitorizar y ajustar el espacio
de undo.
V$ROLLSTAT. Informa sobre el comportamiento de los
segmentos undo en el espacio de undo.
V$TRANSACTION. Transacciones activas en el sistema.
DBA_TABLESPACES.
DBA_UNDO_EXTENTS. Extensiones en el espacio de undo.
DBA_HIST_UNDOSTAT. Estadsticas acerca de consumo de
espacio de undo, concurrencia de transacciones, longitud de las
consultas ejecutas en la instancia, ... (contiene vistas de
V$UNDOSTAT).
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
'1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
DIMENSIONANDO EL ESPACIO UNDO.
Puede dimensionarse de tres formas:
Empleando esp. de almacenamiento autoextensibles, de forma
que incrementa su tamao conforme es necesario (clusula
AUTOEXTEND).
Clculo usando mtodo manual.
Clculo usando mtodo automtico: Undo Advisor.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
'&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
DIMENSIONADO MANUAL.
V$UNDOSTAT muestra informacin, entre otras cosas, sobre el
espacio de undo y puede usarse para estimar el mismo.
Muestra estadsticas recogidas en intervalos de 10 minutos.
El espacio de undo necesario para retener la informacion un
tiempo determinado (UNDO_RETENTION) es:
Espacio = UR * (Tasa_transaccion * tamao_bloque)
Donde UR es el valor de UNDO_RETENTION, en segundos, y la
tasa de transaccion el nmero mximo de bloques undo por
segundo (columna UNDOBLKS de V$UNDOSTAT).
Es preciso aadir al valor obtenido entre un 10% y un 20% de
forma que pueda hacerse frente a situaciones inesperadas.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
''
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
DIMENSIONADO AUTOMATICO.
El ajuste automtico del periodo de permanencia da mejores
resultados con un espacio de almacenamiento de undo de
tamao 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 informacin histrica
de rendimiento que incluye estadsticas de sistema, sesiones,
sentencias SQL... La BD almacena las estadsticas recientes en la
SGA, el proceso MMON las recoge cada hora y crea una
instantnea AWR que se guarda en el espacio SYSAUX (registro
histrico de uso de la bd).
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
'+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
DIMENSIONADO AUTOMATICO.
Operaciones a seguir:
a) Determinar el periodo de tiempo a analizar (seleccionando los
identificadores de instantnea, snap, apropiados). La vista
DBA_HIST_SNAPSHOT muestra la informacin sobre instantneas
en el AWR (nmero de instantnea 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;
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
',
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
DIMENSIONADO AUTOMATICO.
b) Invocar Undo Advisor para determinar el nmero 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;
/
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
'6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
DIMENSIONADO AUTOMATICO.
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/awrrpts!"
Tambin puede consultarse el resultado en Enterprise Manager a travs del
Automatic Database Diagnostic Monitor.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
'.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
PERIODO DE PERMANENCIA UNDO.
Tras validar, commit, una transaccin la informacin de undo
no es necesaria para retroceder la transaccin ni para
recuperaciones. No obstante, es til para garantizar la
consistencia en lectura y flashback. Por tanto, cuanto ms
tiempo se retenga esta informacin... mejor.
Siempre hay un valor que indica el periodo undo retention
actual -periodo de permanencia-: cantidad mnima de tiempo que
se intenta retener la informacin de undo antes de
sobreescribirse.
Aquella informacin ms antigua que este valor podr
sobreecribirse (expired) y aquella que tiene menor antigedad
que este valor es vlida (unexpired) y, por tanto, se mantiene.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
'2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
PERIODO DE PERMANENCIA UNDO.
La BD ajusta automticamente el valor para el periodo de
permanencia en funcin del tamao del espacio de
almacenamiento de undo e informacin estadstica de uso.
Adems puede fijarse un valor mnimo para el periodo de
permanencia a travs de la variable UNDO_RETENTION (su valor
por defecto son 900 segundos).
Para espacios de undo de tamao fijo. Se ignora y la BD ajusta al
mximo posible, hasta que haya espacio, basndose en el tamao
del espacio de undo y la carga del sistema (a menos que
RETENTION GUARANTEE est activa).
El periodo de permanencia suele ser mayor que la duracin de la
consulta activa ms larga. No obstante, si el tamao del espacio
de undo es demasiado pequeo pueden producirse fallos en
operaciones DML, al no tener sitio para nuevos datos, o producirse
un snapshot too old" al no poder garantizar la consistencia en
lectura.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
'3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
PERIODO DE PERMANENCIA UNDO.
Para espacios de undo autoextensibles, AUTOEXTEND (como
UNDOTBS1). El sistema retiene la informacin de undo al menos
el tiempo indicado mediante UNDO_RETENTION (en todo caso,
ms que la duracin de la consulta activa ms larga). Si falta
espacio, no sobreescribe y se autoextiende el espacio de
almacenamiento. Si se alcanza un tamao mximo, indicado por la
clausula MAXSIZE, puede comenzarse a sobreescribir informacin.
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 parmetro
UNDO_RETENTION a un valor igual a la mayor operacin
flashback que se pretenda realizar o cambiar a espacio de
undo de tamao fijo.
En definitiva, se intenta soportar la consulta ms larga y evitar el
error snapshot too old.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
+4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
PERIODO DE PERMANENCIA UNDO.
Es necesario considerar que:
El ajuste automtico del periodo de permanencia no es soportado por
LOB. Para estos objetos, el valor es el fijado por el parmetro
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 clasula RETENTION
GUARANTEE.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
+1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
CONSULTA PERIODO PERMANENCIA UNDO.
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 estadsticas en periodos de diez minutos, una fila de
datos por periodo, para los ltimos 4 das (ms all de este tiempo han
de consultarse en la vista DBA_HIST_UNDOSTAT).
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-FEB-10 00:01 04-FEB-10 00:11 12100
...
07-FEB-10 23:21 07-FEB-10 23:31 86700
...
El valor de tuned_undoretention se muestra en segundos.
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
+&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODO AUTOMATICO UNDO (DESHACER).
RETENTION GUARANTEE.
La clusula #RETENTION GUARANTEE$ permite garantizar el
xito de consultas de larga duracin u operaciones flashback.
Al activar la clasula se garantiza el mnimo undo_retention
especificado, de forma que la bd 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 garanta de retencin debe usarse la clusula
#RETENTION NOGUARANTEE$.
Esta clusula puede usarse al crear el esp. 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
almacenamieno que no son de undo-).
ESPACIO DE UDO!
Administracin Bsica de Oracle 11g.
+'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA ..
;ESTI< DE USUA$IOS =
$ECU$SOS.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
++
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA 7.
GESTIN DE USUARIOS Y RECURSOS.
Usuarios y su autentificacin.
Creacin, modificacin y borrado de usuarios.
Grupos de espacios temporales.
Espacio de almacenamiento SYSAUX.
Perfiles. Parmetros. Funcin de verificacin.
Creacin, modificacin, asignacin y borrado de perfiles.
Privilegios. Privilegios de sistema y sobre objetos.
Privilegios de sistema. Otorgar y revocar. Restricciones.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
+,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA 7.
GESTIN DE USUARIOS Y RECURSOS.
Privilegios sobre objetos. Otorgar y revocar privilegios
sobre objetos.
Roles. Beneficios de los roles. Roles predefinidos.
Creacin, modificacin, asignacin y deasignacin de roles
a usuarios.
Parmetro max_enabled_roles.
Borrado de roles.
Roles por defecto. Activacin y desactivacin de roles.
Vistas.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
+6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
USUA$IOS
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
+.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
USUARIOS Y SU AUTENTIFICACIN.
Cada base de datos tiene una lista vlida de usuarios a los que
permite la conexin y cuyo nombre previamente se ha definido.
Para cada usuario debe haberse creado una c0enta de 0s0ari*
y especificado un nombre de usuario, mtodo de autentificacin,
espacios de almacenamiento por defecto y temporal, otros
espacios de almacenamiento y cuotas, perfil de usuario.
Acceder a la BD supone que un usuario ejecute una aplicacin y
se conecte a la instancia usando un nombre valido. Tras la
autentificacin, puede autorizarse, o no, el acceso a
determinados elementos y la ejecucin de ciertas acciones.
Las formas ms comunes de autentificar a un usuario son bien
por base de datos, bien por sistema operativo (autentificacin
externa).
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
+2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
USUARIOS Y SU AUTENTIFICACIN.
En la autentificacin por base de datos la administracin de la
cuenta de usuario, contrasea, que se guarda encriptada, y la
autentificacin es realizada por Oracle.
En la autentificacin externa la cuenta es mantenida por Oracle
pero la administracin de la contrasea y la autentificacin de
usuario es realizada externamente. Tras autentificarse por SO
pueden conectar a BD sin necesidad de indicar nombre de
usuario o clave. Por ejemplo:
sqlplus /
SQL> connect /
El ejemplo ms comn de la autentificacin por sistema
operativo son los usuarios identified externally. El prefijo a
usar viene determinado por el parmetro de inicializacin,
fichero init.ora, OS_AUTHENT_PREFIX (define el prefijo a
aadir al comienzo de toda cuenta de usuario identificado por
s.o. y su valor por defecto es OPS$).
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
+3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CUENTAS DE USUARIO PREDEFINIDAS.
Diversas cuentas de usuario se crean durante la instalacin. As
toda BD incluye las c0entas de administracin S=S9 S=STEM9
S=SMA > DBSMP (cuentas privilegiadas y necesarias para
tareas de administracin como el arranque y la parada de bd,
gestin de memoria y almacenamiento, creacin y gestin de
usuarios, monitorizacin y gestin de la BD -cuenta DBSNMP del
agente Database Control ...).
Las contraseas de estas cuentas se asignan al crear la BD con el
Database Configuration Assistant (DBCA). Estas cuentas NO
deben borrarse.
Tambin se crean determinadas c0entas !internas!, int%rna"
a&&o'nts, para ciertas utilidades o componentes de la BD como,
por ejemplo, Oracle Application Express. Estas cuentas
inicialmente estn bloqueadas y su clave ha expirado. NO deben
borrarse y tampoco usarse para conectar a la BD.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
,4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CUENTAS DE USUARIO PREDEFINIDAS.
Finalmente se incluyen es:0emas de 0s0ari* que permiten
mostrar tareas de la BD y experimentar sin poner en peligro a los
esquemas reales. Por ejemplo, el esquema hr contiene un
conjunto de tablas de aplicacin ligada a recursos humanos.
Estas cuentas inicialmente estn bloqueadas y su clave ha
expirado.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
,1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CUENTAS DE USUARIO PREDEFINIDAS.
SYS y SYSTEM.
Ambas se crean con la contrasea indicada durante la instalacin
y se les asigna el rol DBA.
S(S
Posee el privilegio SYSDBA lo que permite realizar tareas de
administracin.
Puede realizar todas las tareas de administracin. Las tablas y
vistas del diccionario de datos se almacenan en el esquema
SYS (dichas tablas se gestionan por la BD y no deben ser
modificadas por ningn usuario). No deben crearse tablas en
el esquema SYS.
S(STEM
Permite realizar todas las tareas de administracin excepto
Backup y recovery y actualizacin de la BD, Database
upgrade. No obstante, Oracle recomienda crear cuentas
especficas para administracin y monitorizacin de la BD.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
,&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE USUARIOS.
Necesario el privilegio de sistema CREATE USER. Normalmente
slo lo tiene el usuario administrador.
No es posible la conexin del usuario creado a menos que posea
el privilegio de sistema CREATE SESSION.
Si el usuario accede a Enterprise Manager tambin debe
asignrsele inicialmente el privilegio SELECT ANY DIRECTORY.
Sintaxis bsica:
CREATE USER <usuario>
IDENTIFIED BY <contrasea>/EXTERNALLY
DEFAULT TABLESPACE <espacio>
TEMPORARY TABLESPACE <espacio>/<grupo_espacios>
QUOTA <xx>/UNLIMITED ON <espacio>
PROFILE <perfil>
PASSWORD EXPIRE
ACCOUNT LOCK/UNLOCK;
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
,'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE USUARIOS.
Nombre de usuario.
Debe ser nico respecto a otros nombres de usuario y roles.
Cada usuario tiene asociado un esquema y dentro del mismo
cada objeto debe tener un nico nombre.
CREATE USER AUTOCONTENCION ...
Identificacin.
Un usuario autentificado de forma externa se ha de crear
con la clusula IDENTIFIED EXTERNALLY.
CREATE USER AUTOCONTENCION
IDENTIFIED BY BIOSFERA ...
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
,+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE USUARIOS.
Las contraseas no deben exceder los 30 caracteres o 30
bytes.
En esta versin muchas de las cuentas por defecto estn
bloqueadas y sus claves han expirado (hr, oe y scott, p.ej.).
Para mayor seguridad, estas claves deben modificarse. Para
localizar las cuentas, bloqueadas o no, con claves por
defecto:
a) conectar como SYSDBA a SQLPLUS
b) consultar la vista DBA_USERS_WITH_DEFPWD:
select d.username, u.account_status from
dba_users_with_defpwd d, dba_users u where
d.username=u.username order by 2,1:
Se recomienda no asignar a estas cuentas contraseas
usadas en versiones anteriores (como scott/tiger).
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
,,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE USUARIOS.
FUNCIN VERIFICACIN DE CLAVES
La funcin de verificacin por defecto del ejecutable
UTLPWDMG.SQL (en $ORACLE_BASE/
$ORACLE_HOME/RDBMS/ADMIN) comprueba si la contrasea
tiene entre 8 y 30 caracteres y su complejidad, si es distinta
al nombre de usuario o al nombre del servidor -o de este
combinado con nmeros de 1 al 100-, que la clave contiene,
al menos, un numero y un carcter alfabtico y que difiere
de la clave anterior en, al menos, 3 caracteres.
Esta caracterstica debe activarse -no lo est por defecto-:
a) CONNECT SYS AS SYSDBA
b) Ejecutar UTLPWDMG.SQL
c) En el perfil DEFAULT o en aquel asignado al usuario modificar
PASSWORD_VERIFY_FUNCTION (alter profile default limit
password_verify_function verify_function_11G;).
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
,6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE USUARIOS.
SENSIBILIDAD CLAVES A MAYSCULAS
Por defecto, las contraseas diferencian maysculas y
minsculas. Esta caracterstica, recomendada y que no
suceda en anteriores versiones, puede controlarse con el
parmetro de inicializacin SEC_CASE_SENSITIVE_LOGON
(con un valor TRUE est activa, recomendado, y si es FALSE
est inactiva).
Puede consultarse en DBA_USERS aquellos esquemas de
usuario con contraseas sensibles o no a maysculas
(columna password_versions).
alter system set sec_case_sensitive_logon=true;
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
,.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE USUARIOS.
DEFAULT TABLESPACE.
Indica aquel espacio de almacenamiento donde se
crearn los objetos del esquema del usuario cuando al hacerlo
no se indica ninguno en particular.
No puede indicarse un espacio de almacenamiento temporal
gestionado localmente o por diccionario, ni un espacio de undo como
espacio por defecto.
Si se omite la clusula, los objetos se crean en el %sp a") por
d%*%&to p%r)an%nt% d% "a BD (default user tablespace) que se
indica durante la creacin de la misma o mediante la sentencia: a"t%r
data+as% d%*a'"t ta+"%spa&% , (si no se especifica otro distinto, el
espacio por defecto es SYSTEM Error!). El espacio alm. por defecto
permanente no puede borrarse a menos que se indique previamente
otro.
CREATE USER AUTOCONTENCION
IDENTIFIED BY BIOSFERA DEFAULT TABLESPACE TIERRA...
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
,2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE USUARIOS.
TEMPORARY TABLESPACE.
Indica el espacio o grupo de espacios de almacenamiento
para los segmentos temporales requeridos por el usuario.
No debe indicarse cuota. Si se omite la clusula, el espacio
temporal por defecto es el SYSTEM (Error!) a menos que se haya
fijado el valor del %sp t%)pora" por d%*%&to d% "a BD (default
temporary tablespace) durante la creacin de la misma o mediante la
sentencia: a"t%r data+as% d%*a'"t t%)porar- ta+"%spa&% , .
El espacio de almacenamiento asignado debe ser un espacio
temporal con un tamao de bloque estndar y no debe ser un espacio
de undo o un espacio con gestin automtica del espacio de
segmentos.
CREATE USER AUTOCONTENCION
IDENTIFIED BY BIOSFERA DEFAULT TABLESPACE TIERRA
TEMPORARY TABLESPACE HUMANO...
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
,3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE USUARIOS.
QUOTA.
Indica la cantidad mxima de espacio que un usuario
puede utilizar en un determinado espacio de almacenamiento
(excepto en espacios de alm. temporales). Puede indicarse
cuota en mltiples espacios al tiempo.
Por defecto un usuario no tiene cuota en ningn espacio
de almacenamiento.
El creador del usuario puede indicar cuota sobre espacios
de almacenamiento aunque l no las posea. Pueden usarse
distintas abreviaturas para indicar el tamao: kilobytes (K),
megabytes (M), gigabytes (G), terabytes (T), petabytes (P), o
exabytes (E). Indicando UNLIMITED, el espacio a usar es
ilimitado.
CREATE USER AUTOCONTENCION IDENTIFIED BY BIOSFERA
DEFAULT TABLESPACE TIERRA QUOTA 500K ON TIERRA ...
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
64
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE USUARIOS.
Puede revocarse el acceso a un espacio de
almacenamiento asignando cuota cero en el mismo. Los
objetos ya creados permanecen pero no pueden crecer ni
crearse ninguno ms.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
61
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE USUARIOS.
PROFILE.
Indica el perfil a asignar al usuario (especifica
limitaciones en recursos del sistema y restricciones en cuanto
a contraseas). Si se omite se asigna el perfil DEFAULT.
CREATE USER AUTOCONTENCION IDENTIFIED BY BIOSFERA
DEFAULT TABLESPACE TIERRA QUOTA 500K ON TIERRA
TEMPORARY TABLESPACE HUMANO
PROFILE CONSERVAR...
PASSWORD EXPIRE.
Fuerza el cambio de clave antes de conectar a BD.
ACCOUNT.
ACCOUNT LOCK, bloquea la cuenta de usuario y
deshabilita el acceso. ACCOUNT UNLOCK, desbloquea la
cuenta de usuario y permite al acceso.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
6&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
GRUPOS ESPACIOS TEMPORALES.
Un grupo de espacios de alm. temporales (temporary tablespace
group) es un sinnimo que engloba a un conjunto de espacios
de almacenamiento temporales.
Tiene las siguientes caractersticas:
Contiene al menos un espacio de almac. No hay lmites en cuanto a
su mximo.
Su nombre no puede coincidir con el de ningn otro espacio de
almacenamiento.
Puede asignarse a la BD o a un usuario particular como temporal.
El grupo se crea cuando se aade el primer espacio temporal al
mismo (no puede estar vacio, por lo que, al menos, tiene un
miembro). Si se eliminan todos sus componentes, el grupo deja
de existir.
Los grupos y sus miembros pueden consultarse en la vista
DBA_TABLESPACE_GROUPS
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
6'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
GRUPOS ESPACIOS TEMPORALES.
Creacin de grupos:
alter tablespace <nombre_temporal> tablespace group
<nombre_grupo_temporales>;
create temporary tablespace <nombre_temporal> tempfile
'/.../... .dbf' size ... tablespace group <nombre_grupo>;
Asignar grupos como temporales por defecto:
alter database BD default temporary tablespace
<nombre_grupo>;
Si se asigna un grupo como temporal, no puede borrarse
ninguno de sus miembros (abra que deasignar primero el
grupo).
Eliminar un temporal de un grupo:
alter tablespace <nombre_temporal> tablespace group '';
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
6+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODIFICACIN DE USUARIOS.
Los usuarios pueden cambiar sus propias claves, sin embargo
para cambiar cualquier otro parmetro es necesario el privilegio
ALTER USER.
Sintaxis bsica:
ALTER USER <usuario>
IDENTIFIED BY <contrasea>/EXTERNALLY
DEFAULT TABLESPACE <espacio>
TEMPORARY TABLESPACE <espacio>/<grupo_espacios>
QUOTA <xx>/UNLIMITED ON <espacio>
DEFAULT ROLE <role>/ALL/ALL EXCEPT <role>/NONE
PROFILE <perfil>
PASSWORD EXPIRE
ACCOUNT LOCK/UNLOCK;
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
6,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PASSWORD.
Si el cambio de contrasea se realiza con ALTER USER, la
contrasea se muestra en pantalla por lo que, en su lugar,
puede usarse la sentencia PASSWORD.
PASSWORD
Changing password for your_password
Old password: *****
New password: *****
Retype new password: *****
Password changed
;ESTI< DE USUA$IOS =
$ECU$SOS
MODIFICACIN DE USUARIOS.
Administracin Bsica de Oracle 11g.
66
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
QUOTA.
Si la cuota especificada es inferior a la primitiva:
Si el usuario ha excedido la nueva cuota, los objetos del
usuario no pueden reclamar ms espacio hasta que la
suma combinada del tamao de los mismos sea inferior a
la nueva cuota.
Si no se ha excedido la cuota, o si el espacio usado por todos
sus objetos es inferior, puede reclamarse ms espacio
hasta alcanzar la nueva cuota indicada.
Puede revocarse el acceso a un espacio de
almacenamiento asignando cuota cero en el mismo. Los
objetos ya creados permanecen pero no pueden crecer ni
crearse ninguno ms.
;ESTI< DE USUA$IOS =
$ECU$SOS
MODIFICACIN DE USUARIOS.
Administracin Bsica de Oracle 11g.
6.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODIFICACIN DE USUARIOS.
DEFAULT ROLE.
Indica los roles habilitados por defecto al usuario en la
conexin. Se refiere a roles otorgados de forma directa al
usuario (con la sentencia GRANT).
Oracle activa los roles indicados sin necesidad de
especificar sus contraseas.
Al crear el usuario los roles por defecto son todos los
asignados (ALL). Se limitan posteriormente mediante ALTER
USER.
ALTER USER AUTOCONTENCION DEFAULT ROLE
DECRECIMIENTO;
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
62
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
BORRADO DE USUARIOS.
Es necesario tener el privilegio de sistemas DROP USER.
Al borrar un usuario el esquema asociado, con todos sus objetos,
desaparecen. Tambin se eliminan los contenidos relacionados
del recycle bin.
Una posible solucin para que permanezca el usuario y los
objetos pero impedir la conexin es revocar el privilegio CREATE
SESSION.
No es posible eliminar un usuario que permanezca conectado a la
base de datos. Debe esperarse a que concluya o forzar su
terminacin (ALTER SYSTEM KILL SESSION). Por ejemplo:
SQL> select sid, serial#, username from v$session;
SQL> alter system kill session '111,2010';
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
63
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
BORRADO DE USUARIOS.
Oracle no borra esquemas de usuario no vacos a menos que se
indique CASCADE, realiza un borrado de objetos previo, o se
hayan eliminado con anterioridad los objetos.
Es conveniente estudiar las implicaciones que sobre otros
esquemas tiene el borrado del usuario y de su esquema
(consultando la vista DBA_OBJECTS, SQL> select owner,
object_name from dba_objects where owner like '...';):
-Se invalida vistas o sinnimos 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 podrn refrescarse.
-Se borran todos los disparadores, triggers, del esquema.
-No se eliminan roles creados por el usuario.
Sintaxis:
DROP USER <usuario> <CASCADE>;
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
.4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ESPACIO DE ALMACENAMIENTO SYSAUX.
SYSAUX es un espacio de almacenamiento auxiliar del espacio de
alm. SYSTEM y se crea al instalar la BD. Proporciona espacio
para distintas aplicaciones y funcionalidades.
La vista dinmica V$SYSAUX_OCCUPANTS indica, entre otras
cosas, las aplicaciones que usan SYSAUX, el espacio utilizado, el
nombre del esquema propietario de la mismas y el nombre del
procedimiento que debe emplearse para desplazar determinado
contenido desde SYSAUX hasta otra localizacin:
Select occupant_name, schema_name, space_usage_kbytes,
move_procedure from V$SYSAUX_OCCUPANTS;
El Automatic Workload Repository (AWR) y el repositorio del
Enterprise Manager son dos de los componentes que ocupan
el SYSAUX.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
.1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PE$?I7ES
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
.&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PERFILES.
Est constituido por un conjunto de lmites de recursos y
parmetros de contrasea de la base de datos que
restringen el uso de la BD y recursos de la instancia para
un usuario.
Diferentes perfiles pueden ser asignados a diferentes
usuarios. De forma previa a la creacin de perfiles y el
ajuste de lmites a travs suya, deben determinarse los
valores apropiados para cada lmite mediante la
recopilacin de informacin estadstica para cada tipo de
recurso (auditoria de sesiones, monitorizacin de
estadsticas a travs de Enterprise Manager...).
Cada usuario tiene slo un perfil asignado en un instante
del tiempo.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
.'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PERFILES.
Para cada usuario puede fijarse un lmite en el uso de recursos,
algo especialmente interesante en entornos multiusuario amplios.
Pueden limitarse recursos:
- A nivel de sesin de usuario o de llamada de sentencia
- Tiempo de UCP
- Lecturas lgicas (operaciones de entrada-salida)
- Sesiones concurrentes de usuario
- Tiempo inactivo, tiempo de conexin y memoria por sesin
Habilitar o deshabilitar la limitacin de recursos mediante perfiles
puede hacerse (no aplicable a los parmetros de contrasea que
siempre estn habilitados):
-Mediante el parmetro de inicializacin RESOURCE_LIMIT
(init.ora), asignando valores TRUE o FALSE (por defecto).
-Mediante la sentencia ALTER SYSTEM SET RESOURCE_LIMIT
= TRUE/FALSE.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
.+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE PERFILES.
Es necesario el privilegio de sistema CREATE PROFILE.
Existe un perfil por defecto o DEFAULT. Inicialmente todos
los recursos designados en l tienen valor UNLIMITED, por
lo que es conveniente modificarlo (sentencia ALTER
PROFILE).
Un usuario al que no se le asigna perfil posee el perfil
DEFAULT.
Aquellos recursos para los que en el perfil asignado no se
ha definido un valor, o se ha indicado DEFAULT, toman el
valor designado en el perfil por defecto.
Sintaxis:
CREATE PROFILE <nombre_perfil>
LIMIT <parmetros> <valor>/UNLIMITED/DEFAULT;
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
.,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE PERFILES.
PARMETROS DE RECURSOS.
Par.)%tros d% r%&'rsos/
SESSIONS_PER_USER. Nmero de sesiones concurrentes.
CPU_PER_SESSION. Tiempo de UCP por sesin (centsimas de segundo).
CPU_PER_CALL. Tiempo de UCP para una llamada (parse, execute, o
fetch) en centsimas de segundo.
CONNECT_TIME. Tiempo total para una sesin (minutos).
IDLE_TIME. Tiempo de inactividad continua en una sesin (minutos).
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
.6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE PERFILES.
PARMETROS DE RECURSOS.
LOGICAL_READS_PER_SESSION. Numero de bloques de datos ledos en
una sesin (memoria o disco).
LOGICAL_READS_PER_CALL. Numero de bloques de datos para una
llamada de una SQL (parse, execute, o fetch).
PRIVATE_SGA. Cantidad de espacio, en bytes, para uso privado
reservado en la shared pool de la SGA (se emplea K o M para indicar
kilobytes o megabytes). Solo en Shared Server.
COMPOSITE_LIMIT. Coste total en recursos por sesin expresado en
unidades de servicio (CPU_PER_SESSION, CONNECT_TIME,
LOGICAL_READS_PER_SESSION, y PRIVATE_SGA).
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
..
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE PERFILES.
PARMETROS DE CONTRASEA.
Par.)%tros d% &ontras%0a/
FAILED_LOGIN_ATTEMPTS. Nmero mximo de intentos fallidos de
conexin antes del bloqueo.
PASSWORD_LIFE_TIME. Nmero de das en que la clave actual es vlida
para autentificacin.
Si se indica un valor para PASSWORD_GRACE_TIME, la clave expira si
no se cambia en este periodo. Si no se indica valor para
PASSWORD_GRACE_TIME, por defecto UNLIMITED, se genera un aviso
pero el usuario puede seguir conectndose.
PASSWORD_GRACE_TIME. Periodo de gracia donde se permite la
conexin pero se notifica la necesidad de cambiarla antes de expirar.
PASSWORD_REUSE_TIME . Nmero de das durante los cuales la
contrasea no puede reutilizarse.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
.2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE PERFILES.
PARMETROS DE CONTRASEA.
PASSWORD_REUSE_MAX . Nmero de cambios de clave necesarios antes
de poder reutilizar la clave actual.
OTA5 PASSWORD_REUSE_TIME y PASSWORD_REUSE_MAX deben usarse
conjuntamente. Si se indica un entero para ambos parmetros, el usuario no
puede reutilizar la contrasea hasta que ha cambiado el nmero de veces
indicado en PRM y el nmero de das indicado debe haber transcurrido desde
que la antigua clave fue usada por ltima vez. Si alguno de los dos tiene valor
UNLIMITED, nunca se podr reutilizar la contrasea. Si ambos tiene valor
UNLIMITED, la bd los ignora.
PASSWORD_LOCK_TIME. Nmero de das que la cuenta estar bloqueada
despus de un cierto nmero de fallos de conexin indicado. Despus se
desbloquea. Un valor UNLIMITED de la cuenta debe desbloquearse
explcitamente con ALTER USER. Tras una conexin exitosa, el nmero de
intentos fallidos toma el valor de cero.
PASSWORD_VERIFY_FUNCTION. Permite indicar como argumento un
script PL/SQL que verifica la complejidad de la clave. Si se indica NULL
no se usa funcin alguna. Oracle proporciona una funcin por defecto:
verify_function.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
.3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE PERFILES.
Valor UNLIMITED. Si es un parmetro de recurso indica que
puede usarse una cantidad ilimitada del mismo, en el caso de
parmetros de contrasea que no ha sido fijado limite.
Valor DEFAULT. Si se indica DEFAULT o se omite en el perfil
algn parmetro, al ser asignado a un usuario toma para dicho
parmetro el valor indicado en el perfil DEFAULT.
E)em1l* de creacin de 1er6il.
CREATE PROFILE perfil_2 LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LIFE_TIME 60
PASSWORD_REUSE_TIME 60
PASSWORD_REUSE_MAX 5
PASSWORD_VERIFY_FUNCTION verify_function
PASSWORD_LOCK_TIME 1/24
PASSWORD_GRACE_TIME 10;
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
24
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODIFICACIN DE PERFILES.
Es necesario poseer el privilegio de sistema ALTER
PROFILE.
Los valores modificados no afectan a las sesiones en
curso.
Sintaxis:
ALTER PROFILE <perfil>
LIMIT <parmetros> <valor>/UNLIMITED/DEFAULT;
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
21
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ASIGNACIN DE PERFILES.
Los perfiles no pueden asignarse a roles ni a otros perfiles,
solo a usuarios.
Se puede realizar durante la creacin del usuario (CREATE
USER) o posteriormente (ALTER USER).
Un usuario slo puede tener un perfil asignado a la vez.
Las asignaciones de perfiles no afectan a las sesiones
activas.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
2&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
BORRADO DE PERFILES.
Debe poseerse el privilegio de sistema DROP PROFILE. El
perfil DEFAULT no puede borrarse.
Para eliminar un perfil asignado a un usuario debe usarse
la opcin CASCADE. Si se borra un perfil asociado a un
usuario, a este se le asigna de forma automtica el perfil
DEFAULT.
El borrado de un perfil no afecta a las sesiones en
curso.
Sintaxis:
DROP PROFILE <perfil>;
DROP PROFILE <perfil> CASCADE;
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
2'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
VISTAS. USUARIOS Y PERFILES.
;ESTI< DE USUA$IOS =
$ECU$SOS
Perfiles y lmites. DBA_PRO1ILES
Informacin sobre objetos en la BD. DBA_OB2ECTS
USER_RESOURCE_
LIMITS
Parmetros de contrasea asignados al usuario.
USER_PASS3ORD
_LIMITS
Cuotas de espacio para usuarios.
DBA_TS_4UOTAS
USER_TS_4UOTAS
Describe el usuario actual. USER_USERS
Usuarios visibles al usuario actual. ALL_USERS
Usuarios de la base de datos. DBA_USERS
Parmetros de recursos asignados al usuario.
Administracin Bsica de Oracle 11g.
2+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
VISTAS. USUARIOS Y PERFILES.
;ESTI< DE USUA$IOS =
$ECU$SOS
Nombres de estadsticas decodificados para las
estadsticas mostradas en V$SESSTAT.
V5STATNAME
V5SESSTAT
Informacin de sesin. V5SESSION
Objetos accesibles al usuario actual. ALL_OB2ECTS
Objetos pertenecientes al usuario actual. USER_OB2ECTS
Coste por recurso en trminos de UCP por sesin,
lecturas por sesin, tiempo conexin y SGA.
RESOURCE_COST
Usuarios con claves por defecto.
DBA_USERS_3IT6
_DE1P3D
Estadsticas de sesin.
Administracin Bsica de Oracle 11g.
2,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
P$I@I7E;IOS
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
26
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS.
Derecho a ejecutar un tipo determinado de sentencia SQL,
acceder a un objeto de otro usuario, ejecutar un
paquete... Pueden asignarse a usuarios explcitamente o,
preferiblemente, a roles. Es importante no excederse en la
concesin de privilegios.
Se distinguen dos tipos:
De sistema: Permite realizar determinadas acciones de
administracin en la base de datos (Por ejemplo, crear espacios
de almacenamiento, crear usuarios, .) o en cualquier esquema.
Por ejemplo, CREATE USER o CREATE TABLE.
Sobre objetos: Permite a un usuario acceder y manipular o
ejecutar objetos concretos (tablas, vistas, secuencias,
procedimientos, funciones o paquetes). Por ejemplo, borrar o
consultar filas de una tabla concreta.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
2.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS DE SISTEMA.
DATABASE.
ALTER DATABASE
ALTER SYSTEM
AUDIT SYSTEM
DATABASE LINKS
CREATE DATABASE LINK
CREATE PUBLIC DATABASE LINK
DROP PUBLIC DATABASE LINK
TABLAS - INDICES
CREATE TABLE
CREATE ANY TABLE / CREATE ANY INDEX
ALTER ANY TABLE / ALTER ANY INDEX
DROP ANY TABLE / DROP ANY INDEX
DELETE ANY TABLE / DROP ANY TABLE / INSERT ANY TABLE / UPDATE
ANY TABLES/ SELECT ANY TABLE
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
22
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS DE SISTEMA.
PROCEDURE
CREATE PROCEDURE
CREATE ANY PROCEDURE
ALTER ANY PROCEDURE
DROP ANY PROCEDURE
EXECUTE ANY PROCEDURE
PROFILES
CREATE PROFILE
ALTER PROFILE
DROP PROFILE
ROLES
CREATE ROLE
ALTER ANY ROLE
DROP ANY ROLE
GRANT ANY ROLE
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
23
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS DE SISTEMA.
ROLLBACK SEGMENTS
CREATE ROLLBACK SEGMENT
ALTER ROLLBACK SEGMENT
DROP ROLLBACK SEGMENT
SESSIONS
CREATE SESSION
ALTER SESSION
TABLESPACES
CREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
MANAGE TABLESPACE
UNLIMITED TABLESPACE
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
34
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS DE SISTEMA.
USUARIO
CREATE USER
ALTER USER
DROP USER
OTROS
ANALYZE ANY
AUDIT ANY
COMMENT ANY TABLE
SELECT ANY DICTIONARY (permite consultar objetos en el esquema SYS,
no est incluido en GRANT ALL PRIVILEGES y debe otorgarse
explcitamente o a travs de rol al usuario que lo requiera)
...
*ta: Consultar Oracle Database SQL Language Reference para una lista
completa de privilegios de sistema.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
31
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS DE SISTEMA.
La clusula ANY en cualquier privilegio indica que los usuarios a
los que se les conceda tienen dicho privilegio en cualquier
esquema.
Notas:
- No existe el privilegio CREATE INDEX.
- CREATE TABLE incluye las sentencias CREATE INDEX y
ANALYZE.
- Privilegios como CREATE TABLE o CREATE PROCEDURE
incluyen el borrado de dichos objetos.
- UNLIMITED TABLESPACE no puede otorgarse a un rol. Este
privilegio permite usar una cantidad ilimitada de espacio
en cualquier espacio de almacenamiento de la bd y se
antepone a cualquier cuota explcita asignada al usuario
(Error!).Si se revoca, las cuotas asignadas explcitamente
toman efecto.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
3&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
OTORGAR
PRIVILEGIOS DE SISTEMA.
Para que un usuario pueda otorgar un priv.de sistema bien debe
haberse otorgado con ADMIN OPTION, permite a aquel a quien
se le concede el privilegio poder otorgarlo (peligro!), o haber
sido concedido el privilegio GRANT ANY PRIVILEGE.
Sintaxis:
GRANT <privilegio>/ALL PRIVILEGES TO
<usuario>/<rol>/PUBLIC;
GRANT <privilegio>/ALL PRIVILEGES TO
<usuario>/<rol>/PUBLIC WITH ADMIN OPTION;
Al especificar ALL PRIVILEGES se otorgan todos los privilegios de
sistema (Peligro!).
La clusula PUBLIC otorga el privilegio a todos los usuarios
(Peligro!).
En DBA_SYS_PRIVS pueden consultarse los privilegios de
sistema otorgados.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
3'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
OTORGAR
PRIVILEGIOS DE SISTEMA.
La clusula WITH ADMIN OPTION implica:
- Poder ser otorgado o revocado a cualquier otro usuario o rol
de la BD (un usuario no puede revocar un rol a s mismo).
- Poder ser otorgado con ADMIN OPTION.
- Poder modificar o borrar el rol.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
3+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RESTRICCIONES
EN PRIVILEGIOS DE SISTEMA.
El parmetro de inicializacin, fichero init.ora,
O7_DICTIONARY_ACCESSIBILITY permite restringir los
privilegios de sistema. Impide el acceso al esquema SYS a
travs de los privilegios que conceden acceso a cualquier
esquema (privilegios ANY).
Por defecto su valor es FALSE, el acceso a objetos en este
esquema est entonces restringido a SYS y aquellos
usuarios que se conectan con el privilegio SYSDBA. En
este caso, por ejemplo, SELECT ANY TABLE permite
acceder a vistas y tablas en otros esquemas pero no
seleccionar objetos del esquema SYS (diccionario de
datos).
Si su valor es TRUE, se permite el acceso a los objetos del
esquema SYS (Error!).
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
3,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
REVOCAR
PRIVILEGIOS DE SISTEMA.
Sintaxis:
REVOKE <privilegio>/ALL PRIVILEGES FROM
<usuario>/<rol>/PUBLIC;
Cualquier usuario con la opcin ADMIN OPTION sobre un privilegio
puede revocarlo. Quien lo hace no tiene porque ser el usuario que
originalmente lo otorgo.
Al retirar ciertos privilegios determinados objetos pueden quedar
inconsistentes (procedimientos o vistas consultadas merced al
privilegio SELECT ANY TABLE).
En el caso de ADMIN OPTION no hay un efecto en cascada cuando
se retira un privilegio referente a operaciones DDL (por ej. CREATE
TABLE); si lo hay cuando se revoca un privilegio referente a
operaciones DML (por ejemplo SELECT ANY TABLE).
Si se retira un privilegio de sistema de PUBLIC, pero existen
usuarios a los que se ha otorgado aquel directamente o a travs de
roles, estos siguen pudiendolo usar.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
36
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS DE SISTEMA:
SYSDBA y SYSOPER.
Son privilegios de administracin de alto nivel que permiten
operaciones como crear, arrancar, parar, recuperar o copiar la BD.
SYSDBA tiene plena capacidad administrativa y SYSOPER permite
realizar tareas bsicas pero no consultar datos de usuario.
SYSDBA y SYSOPER permiten acceder a la instancia aunque la BD
no este abierta. Por ejemplo, con el privilegio SYSDBA puede
conectarse a la BD con AS SYSDBA.
En la instalacin, a SYS se le otorga automticamente el privilegio
SYSDBA. Al conectarse como SYS, es necesario conectarse a la BD
como SYSDBA, privilegio SYSDBA, o SYSOPER, privilegio SYSOPER
(Oracle Enterprise Manager Database Control no permite la conexin
SYS sin hacerlo como SYSDBA o SYSOPER).
Al conectarse con los privilegios SYSDBA o SYSOPER, se conecta con
un esquema por defecto: SYS en el caso de SYSDBA -con privilegios
ilimitados sobre las tablas del diccionario de datos, cuidado!- y
PUBLIC en el caso de SYSOPER.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
3.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS DE SISTEMA:
SYSDBA y SYSOPER.
SYSDBA tiene todos los privilegios de sistema con ADMIN OPTION
(incluido SYSOPER) y permite la creacin de la BD (create database)
y recuperacin basada en el tiempo (time-based).
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
32
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS SOBRE OBJETOS.
TABLAS
ALTER - DELETE - FLASHBACK
INDEX - INSERT - REFERENCES
SELECT - UPDATE
VISTAS
DELETE - FLASHBACK - INSERT
REFERENCES - SELECT - UPDATE
SECUENCIAS
ALTER - SELECT
FUNCIONES, PAQUETES Y PROCEDIMIENTOS
EXECUTE
*ta: Consultar Oracle Dat.SQL Reference y Oracle DB Security Guide para lista
completa privilegios sobre objetos.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
33
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
OTORGAR
PRIVILEGIOS SOBRE OBJETOS.
Mediante GRANT pueden otorgarse privilegios sobre objetos a roles y
usuarios. Para otorgar un privilegio sobre objeto debe cumplirse alguna
de estas condiciones:
- Se es propietario del objeto.
- Se posee el privilegio de sistema GRANT ANY OBJECT
PRIVILEGE.
- Se especific la clusula WITH GRANT OPTION al otorgar el
privilegio sobre objeto.
Nota: privilegios de sistema y roles no pueden otorgarse junto con privilegios
sobre objeto en la misma sentencia GRANT
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
144
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
OTORGAR
PRIVILEGIOS SOBRE OBJETOS.
Sintaxis:
GRANT <privilegio>/ALL PRIVILEGES <columna>/ON <esquema>.objeto
TO <usuario>/<rol>/PUBLIC;
GRANT <privilegio>/ALL PRIVILEGES ON <esquema>.objeto
TO <usuario>/<rol>/PUBLIC WITH GRANT OPTION;
Con ALL PRIVILEGES se otorgan todos los privilegios sobre el objeto
(Peligro!).
Con PUBLIC otorga el privilegio a todos los usuarios (Peligro!).
La clusula GRANT OPTION permite a aquel a quien se le concede el
privilegio poder otorgarlo (Peligro!).
Otorgar privilegios sobre una tabla, vista, secuencia, procedimiento,
funcin o paquete puede hacerse tambin a travs de su sinnimo.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
141
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
OTORGAR
PRIVILEGIOS SOBRE OBJETOS.
Ejemplos:
GRANT ALL PRIVILEGES ON nomina.retenciones
TO gestor WITH GRANT OPTION;
GRANT REFERENCES (dni_empleado), UPDATE (dni_empleado,
sueldo_base) ON nomina.empleados TO gestor;
GRANT INSERT (empleado, trabajo) ON nomina.empleados TO gestor; (ojo
en las columnas NOT NULL!)
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
14&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
OTORGAR
PRIVILEGIOS SOBRE OBJETOS.
Otorgar un privilegio WITH GRANT OPTION permite:
- Aquel a quien se concede puede otorgar el privilegio sobre
objeto a cualquier usuario, con o sin GRANT OPTION, o rol.
- Si se reciben privilegios de objeto sobre una tabla con GRANT
OPTION y se tiene el privilegio de sistema CREATE VIEW o
CREATE ANY VIEW, aquel al que se le ha otorgado el privilegio
puede crear vistas sobre la tabla y otorgar los privilegios
correspondientes a las mismas.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
14'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
El privilegio de sistema GRANT ANY OBJECT PRIVILEGE permite
otorgar y revocar cualquier privilegio sobre objeto.
Forma parte del rol predefinido DBA y se otorga, con ADMIN
OPTION, a los usuarios que se conectan AS SYSDBA (usuario
SYS). Slo puede ser otorgado, como el resto de privilegios de
sistema, por un usuario que lo tenga con ADMIN OPTION.
En la vista DBA_TAB_PRIVS se reflejan los privilegios sobre
objetos otorgados, a quin se otorgaron y quin lo hizo.
Quien otorga un privilegio de objeto es bien el propietario del
objeto, bien el usuario con el privilegio GRANT ANY OBJECT
PRIVILEGE. Si quien otorga tiene este ltimo y no tiene el
privilegio con GRANT OPTION, aparece el propietario del objeto
como quien lo otorg. Si quien lo otorga tiene el privilegio con
GRANT OPTION este figura como tal (en AUDIT siempre aparece
el usuario actual que realiza el GRANT).
;ESTI< DE USUA$IOS =
$ECU$SOS
OTORGAR
PRIVILEGIOS SOBRE OBJETOS.
Administracin Bsica de Oracle 11g.
14+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
REVOCAR
PRIVILEGIOS SOBRE OBJETOS.
Sintaxis:
REVOKE <privilegio>/ALL PRIVILEGES ON <esquema>.objeto
FROM <usuario>/<rol>/PUBLIC <CASCADE CONSTRAINTS>;
CASCADE CONSTRAINTS elimina cualquier clusula de integridad
referencial que aquel a quien se retiran los permisos haya
definido usando REFERENCES o ALL PRIVILEGES.
No pueden revocarse permisos otorgados sobre columnas
especficas. Debe revocarse el privilegio para todas las columnas
y, despus, realizar el grant especfico requerido.
Quien otorgo privilegios solo puede revocarlos a aquellos
usuarios a quienes se los ha concedido.
No obstante, en el caso de GRANT OPTION hay un efecto en
cascada cuando se retira un privilegio. Si los privilegios sobre
objeto se retiran de un usuario, y estos se propagaron con
GRANT OPTION, tambin se revocarn.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
14,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
OTORGAR Y REVOCAR.
TIEMPO DE EFECTO.
Cuando se otorga o revoca privilegios de sistema o sobre objetos
a cualquier destino (usuario, rol, PUBLIC) toma efectos
inmediatamente.
Cuando se otorgan o revocan roles sobre cualquier destino
(usuario, rol, PUBLIC) toman efecto slo cuando una sesin
actual de usuario ejecuta un SET ROLE que rehabilita los roles
tras otorgar o revocar, o cuando se crea una nueva sesin de
usuario.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
146
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
$O7ES
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
14.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ROLES.
Es un grupo de privilegios, de sistema o sobre objetos y
roles, a los que se les da un nombre y pueden ser
asignados a otros usuarios y roles de forma simultnea.
Caractersticas:
Pueden otorgarse a cualquier usuario o rol, pero no a si mismo y
tampoco de forma circular.
Pueden tener contrasea. En este caso no puede otorgarse
indirectamente a un usuario ni convertirse en un rol por defecto.
Su nombre es nico en la bd, distinto a cualquier otro nombre de
usuario o rol.
No pertenecen a ningn esquema.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
142
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ROLES. BENEFICIOS.
Simplifican el manejo de privilegios. Los permisos pueden
asignarse a un rol y este a los diferentes usuarios.
Manejo de privilegios dinmico. Si se modifican los privilegios
asociados al rol, todos los usuarios que lo posean los adquieren
de forma inmediata.
Disponibilidad de privilegios selectiva. Los roles asignados a un
usuario pueden ser activados o desactivados temporalmente.
Mejora aplicaciones. Cuando un usuario ejecuta una determinada
aplicacin puede activarse, o desactivarse, selectvamente roles
en funcin de nuestro inters. Los roles tambin pueden
protegerse con claves y estos activarse slo si la aplicacin
suministra la correcta.
Mejora de la productividad. El uso de roles disminuye el numero
de grants almacenados en el diccionario de datos.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
143
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ROLES PREDEFINIDOS.
Oracle proporciona r*les 1rede6inid*s como ayuda a la
administracin de base de datos, entre los que se encuentran:
CONNECT. Incluye slo el privilegio CREATE SESSION (permite
conectar a la BD, si el usuario se crea con Database Control este rol
se asigna automticamente al mismo).
RESOURCE. Incluye CREATE CLUSTER, CREATE INDEXTYPE,
CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE,
CREATE TABLE, CREATE TRIGGER y CREATE TYPE. Otorga adems
el privilegio UNLIMITED TABLESPACE -desaparecer en un futuro del
mismo-.
DBA. Todo privilegio de sistema WITH ADMIN OPTION. No incluye
arrancar o parar la BD (SYS y SYSTEM lo poseen).
DATAPUMP_EXP_FULL_DATABASE. Privilegios para realizar
exportaciones con Data Pump.
DATAPUMP_IMP_FULL_DATABASE. Importaciones con Data Pump.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
114
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ROLES PREDEFINIDOS.
DELETE_CATALOG_ROLE. Privilegio de borrado en la tablas de
auditora SYS.AUD$ y SYS.FGA_LOG$.
EXECUTE_CATALOG_ROLE. Privilegio de ejecucin sobre objetos en
el diccionario de datos.
SELECT_CATALOG_ROLE. Privilegio de consulta sobre objetos del
diccionario de datos.
SCHEDULER_ADMIN. Permite ejecutar los procedimientos del
paquete DBMS_SCHEDULER.
Los roles CONNECT, RESOURCE y DBA se mantienen por
compatibilidad con versiones anteriores. No se asegura que sigan
existiendo en un futuro (consultar Oracle DB Security Guide).
Se recomienda crear roles especficos en cada bd y asignarles los
permisos necesarios, evitando el uso de roles predefinidos, con lo
que no surgirn problemas si estos quedan obsoletos en futuras
versiones.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
111
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CREACIN DE ROLES.
Debe poseerse el privilegio CREATE ROLE.
El nombre debe ser diferente a cualquier nombre de rol o
usuario existente. Un rol no pertenece a ningn esquema
y, al crearlo, no tiene privilegios asociados.
Sintaxis:
CREATE ROLE <rol> IDENTIFIED BY <contrasea>;
CREATE ROLE <rol> NOT IDENTIFIED/<>;
La clusula IDENTIFIED BY indica como debe ser
autorizado el usuario antes de ser activado el rol para su
uso (con SET ROLE) por un usuario al que se la ha
otorgado.
SET ROLE DECRECIMIENTO IDENTIFIED BY...
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
11&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODIFICACIN DE ROLES.
Un rol solo puede modificarse para cambiar su mtodo de
autentificacin.
Debe poseerse el privilegio de sistema ALTER ANY ROLE o
haber sido sido otorgado el rol con la opcin ADMIN.
No se ven afectadas las sesiones en las que el rol est ya
activo.
Sintaxis:
ALTER ROLE <rol> NOT IDENTIFIED/ IDENTIFIED BY
<contrasea>;
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
11'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ASIGNAR ROLES A USUARIOS.
Sintaxis:
GRANT <rol> TO <usuario>/<rol>/PUBLIC;
GRANT <rol> TO <usuario>/<rol>/PUBLIC WITH ADMIN
OPTION;
Para que un usuario pueda otorgar un rol debe habrsele
concedido con ADMIN OPTION, poseer el privilegio GRANT
ANY ROLE, o haberlo creado.
El usuario que crea el rol implcitamente lo tiene asignado
con ADMIN OPTION.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
11+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ASIGNAR ROLES A USUARIOS.
La clusula WITH ADMIN OPTION implica:
- Poder ser otorgado o revocado a cualquier otro usuario o rol
de la BD (un usuario no puede revocar un rol a s mismo).
- Poder ser otorgado con ADMIN OPTION.
- Poder modificar o borrar el rol.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
11,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PARMETRO MAX_ENABLED_ROLES.
Este parmetro est obsoleto y slo se mantiene por
compatibilidad. Es preferible NO usarlo.
Es un parmetro de inicializacin que define el numero mximo
de roles de base de datos activos concurrentemente, incluyendo
aquellos contenidos dentro de otros roles, que un usuario puede
poseer.
Un usuario puede activar como mximo
2+MAX_ENABLED_ROLES puesto que cada usuario tiene dos
roles adicionales (PUBLIC y y el propio rol del usuario).
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
116
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ROLES POR DEFECTO.
Un rol por defecto es aquel que automticamente se activa
al conectarse. Cuando un usuario se conecta, se activan
todos los privilegios otorgados explcitamente al usuario y
todos los privilegios en los roles por defecto del usuario.
Cuando un usuario se crea, los roles por defecto son
todos.
Con la sentencia ALTER USER se limitan los roles por
defecto asignados a un usuario. La clusula puede slo
indicar roles otorgados directamente al usuario con una
sentencia GRANT o que han sido creados por el usuario
con el privilegio CREATE ROLE.
Sintaxis:
ALTER USER <usuario> DEFAULT ROLE <rol1>,.<roln>/
ALL [EXCEPT rol1 [,role2]... ] / NONE;
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
11.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ROLES POR DEFECTO.
Pueden otorgarse tantos roles como se quiera a un usuario
pero NO puede tener ms de 148 roles activos por
defecto. En caso contrario, al conectar a la BD el usuario
recibe el error ORA-28031: maximum of 148 enabled
roles exceeded.
Se contabilizan tambin los roles otorgados indirectamente
a travs de otros roles.
Este nmero de roles por defecto se controla con ALTER
USER.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
112
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ROLES POR DEFECTO.
La clusula DEFAULT ROLE se aplica solo a los roles
otorgados de forma directa, y no para roles no asignados
al usuario o asignados a travs de otros roles.
ALL hace que todos los roles sean por defecto excepto
aquellos indicados en la clusula EXCEPT.
EXCEPT indica que los roles que le siguen no sern por
defecto.
NONE hace que ninguno de los roles sea por defecto, y los
nicos privilegios al efectuarse la conexin sern aquellos
asignados directamente.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
113
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DEASIGNACIN DE ROLES.
Puede hacerlo cualquier usuario con la opcin ADMIN
OPTION para un rol, tambin aquellos usuarios con el
privilegio GRANT ANY ROLE (pueden revocar cualquier
rol).
Sintaxis:
REVOKE <rol1>, .<roln>
FROM <usuario>|<rol>|PUBLIC
[, <usuario>|<rol>} ]...
Con PUBLIC se deasigna el rol de todos los usuarios.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
1&4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
BORRADO DE ROLES.
Debe poseerse el privilegio DROP ANY ROLE o haber sido
concedido el rol con ADMIN OPTION.
Sintaxis:
DROP ROLE <rol>;
Al borrar un rol se deasigna de todos los usuarios y roles,
y se elimina de la base de datos. Las sesiones en las que
el rol est activo no se ven afectadas, pero ninguna otra lo
podr usar.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
1&1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DESHABILITACIN DE ROLES.
La tabla PRODUCT_USER_PROFILE, perteneciente al esquema
SYSTEM, permite deshabilitar determinadas sentencias SQL y
SQLPlus para un usuario (es una prestacin de SQLPlus).
Incluso permite restringir el acceso a las sentencias GRANT,
REVOKE y SET ROLE.
Adems es posible indicar roles que no se desean sean activados
por aplicacin.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
1&&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ACTIVACIN Y
DESACTIVACIN DE ROLES.
Durante una sesin, el usuario o una aplicacin puede usar la
sentencia SET ROLE para modificar los roles activos en la sesin.
Previamente los roles deben haber sido asignados al usuario.
Al crear un usuario todos los roles asignados son por
defecto, a menos que se limite con ALTER USER.
No podr hacerse uso de los privilegios otorgados a travs del rol
inactivo a menos que tambin se hayan otorgado de forma
directa o a travs de otros roles.
En la siguiente sesin, los roles activos vuelven a ser los roles
por defecto.
La vista SESSION_ROLES informa de aquellos roles que, para el
usuario actual, estn activos en un momento determinado.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
1&'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ACTIVACIN Y
DESACTIVACIN DE ROLES.
Sintaxis:
SET ROLE <rol> [ IDENTIFIED BY <contrasea>]
[, <rol> [ IDENTIFIED BY <contrasea>]]./
ALL [ EXCEPT <rol1> , . ,<roln> ] ...]
/NONE
IDENTIFIED BY indica la contrasea del rol al activarlo.
ALL activa todos los roles excepto los que aparecen en la clusula
EXCEPT (no puede usarse esta opcin para activar roles con
contrasea).
NONE desactiva todos los roles en la sesin (solo son activos los
privilegios otorgados directamente).
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
1&+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
VISTAS. PRIVILEGIOS Y ROLES.
DATABASE_PROPERTIES ... Propiedades de la bd.
DBA_ROLES ... Roles existentes en la bd.
DBA_ROLE_PRIVS ... Roles concedidos a usuarios y roles de forma
directa.
DBA_S(S_PRIVS ... Privilegios de sistema a usuarios y roles.
DBA_TAB_PRIVS ... Permisos sobre objetos en la bd.
DBA_TABLESPACE_GROUPS ... Grupos de espacios temporales.
DBA_COL_PRIVS ... Permisos sobre columnas de objetos en bd.
DBA_TS_4UOTAS ... Cuotas de espacio para usuarios.
DBA_PRO1ILES ... Perfiles en la bd.
;ESTI< DE USUA$IOS =
$ECU$SOS
Administracin Bsica de Oracle 11g.
1&,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ROLE_ROLE_PRIVS ... Roles concedidos a otros roles.
ROLE_S(S_PRIVS ... Privilegios de sistema concedidos a roles.
ROLE_TAB_PRIVS ... Privilegios sobre objetos concedidos a roles.
DBA_CONNECT_ROLE_GRANTEES ... Usuarios con privilegio
CONNECT.
SESSION_PRIVS ... Privilegios disponibles en la sesin.
SESSION_ROLES ... Roles activos en la sesin.
;ESTI< DE USUA$IOS =
$ECU$SOS
VISTAS. PRIVILEGIOS Y ROLES.
Administracin Bsica de Oracle 11g.
1&6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA 2.
T$ABAAOS.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1&.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA 8.
TRABAJOS (JOBS).
PLANIFICADOR (SCHEDULER).
ARQUITECTURA DEL PLANIFICADOR.
PRIVILEGIOS PLANIFICADOR.
PROCEDIMIENTOS PLANIFICADOR.
CREATE_JOB. INTERVALO EJECUCION.
SET _ATTRIBUTE.
SET _ATTRIBUTE_NULL.
COPY.
ENABLE.
DISABLE.
RUN_JOB.
STOP_JOB.
DROP_JOB.
VISTAS.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1&2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
Los trabajos son el resultado de la combinacin de una
planificacin y un programa, p.ej. cdigo PL/SQL, junto con los
argumentos requeridos por dicho programa. Se lanzan a la cola
de trabajos, especificando la periodicidad con que deben ser
ejecutados. Por tanto, un trabajo es una tarea programada para
ejecutarse una o ms veces.
Las funciones de planificacin y gestin de la cola de trabajos se
ofrecen a travs del paquete DBMS_SCHEDULER (en versiones
antiguas se empleaba el paquete DBMS_JOB, mucho ms
rudimentario).
Dentro del paquete DBMS_SCHEDULER existen diversos
procedimientos como CREATE_JOB, DROP_JOB, STOP_JOB, ...
que permiten planificar los trabajos automatizados.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1&3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
DBMS_SCHEDULER permite usar, por ejemplo, ejecutables de
S.O. y existen mltiples componentes que incrementan la
capacidad de planificacin, incluso es posible la planificacin
basada en eventos, la ejecucin de trabajos en BD remotas o la
ejecucin en mltiples BD de un mismo trabajo (multiple
destination job).
Con DBMS_SCHEDULER los intervalos de planificacin pueden
definirse en lenguaje natural y mediante expresiones tipo fecha.
DBMS_SCHEDULER proporciona gran detalle en cuanto al estado
del trabajo y sus fallos. Esta informacin puede consultarse en el
diccionario de datos.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1'4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
EJEMPLO: CREACION DE TRABAJOS.
BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'job1',
job_type => 'PLSQL_BLOCK',
job_action => 'INSERT INTO employees VALUES (7935,
''SALLY'', ''DOGAN'', ''sally.dogan@xyzcorp.com'', NULL,
SYSDATE,''AD_PRES'', NULL, NULL, NULL, NULL);');
start_date => SYSDATE,
repeat_interval => 'FREQ = DAILY; INTERVAL = 1');
END;
/
T$ABAAOS
Administracin Bsica de Oracle 11g.
1'1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
EJEMPLO: MODIFICACION DE TRABAJOS.
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => 'JOB1',
attribute => 'job_action',
value => 'INSERT INTO employees VALUES (7935, ''TOM'',
''DOGAN'', ''tom.dogan@xyzcorp.com'', NULL, SYSDATE,
''AD_PRES'', NULL, NULL, NULL, NULL);');
END;
/
T$ABAAOS
Administracin Bsica de Oracle 11g.
1'&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
EJEMPLO: BORRADO DE TRABAJOS.
BEGIN
DBMS_SCHEDULER.DROP_JOB('myjob1');
END;
/
T$ABAAOS
Administracin Bsica de Oracle 11g.
1''
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PLANIFICADOR (SCHEDULER).
Mediante el planificador puede controlarse cundo y dnde
se ejecutarn los trabajos automatizados. Permite, por
ejemplo:
- Planificar trabajos de mantenimiento de la bd como copias
de seguridad u otras tareas a realizar durante horas de
menor actividad.
- Planificar la ejecucin de trabajos en una fecha
determinada o basndose en eventos.
- Agrupar trabajos en clases y priorizar entre las mismas
(incluso modificar la priorizacin en funcin del tiempo).
- Gestionar y monitorizar trabajos.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1'+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ARQUITECTURA DEL PLANIFICADOR.
En la arquitectura del planificador se distinguen distintos
componentes:
Tabla de trabajos.
Proceso coordinador.
Procesos esclavos.
T$ABAAOS

Administracin Bsica de Oracle 11g.
1',
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ARQUITECTURA DEL PLANIFICADOR.
Tabla de trabajos.
Hay una por base de datos y almacena informacin tal
como el propietario, nivel de log o si el trabajo se elimina al
finalizar - opcin por defecto - (visible mediante la vista
DBA_SCHEDULER_JOBS o las anlogas ALL_... y USER_...).
Proceso coordinador.
Proceso background, cjqNNN, que arranca
automticamente cuando un trabajo debe ejecutarse y se
desactiva tras un periodo de inactividad. Se encarga de:
-Controlar y crear los procesos esclavos.
-Consultar la tabla de trabajos.
-Coger los trabajos de la tabla y colocarlos en memoria
cache. Darlos a los esclavos para su ejecucin.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1'6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ARQUITECTURA DEL PLANIFICADOR.
-Limpiar el conjunto de esclavos cuando no son necesarios.
-Desactivarse cuando no hay trabajos planificados.
-Despertar cuando debe ejecutarse un nuevo trabajo o se ha
creado un trabajo.
-Recuperar los trabajos en ejecucin tras el arranque
posterior a un cierre anormal de la bd (p.ej. cada del
sistema o shutdown abort).
Existe slo un proceso coordinador por instancia.
El intervalo de tiempo con el que el proceso coordinador
chequea la tabla de trabajos se fija por el sistema.
Procesos esclavos.
Su nmero se ajusta de forma automtica y dinmica por
el planificador. Son despertados por el coordinador cuando
hay trabajos por ejecutar.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1'.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ARQUITECTURA DEL PLANIFICADOR.
Los procesos esclavos se encargan de:
-Ejecutar el trabajo y realizar las operaciones asociadas
(abrir sesin, comenzar la transaccin, comenzar la
ejecucin, finalizar la transaccin y cerrar sesin).
-Actualizar el estado del trabajo en la tabla de trabajos
reflejando el estado del trabajo.
-Actualizar la cuenta de ejecuciones o fallos del trabajo.
-Buscar nuevos trabajos a ejecutar (o ir a dormir si no hay
ninguno)...
El coordinador determina automticamente cuantos procesos
esclavo arrancar basndose en la carga del sistema y el
nmero de trabajos en espera. Puede limitarse el mximo
nmero de estos procesos fijando un valor para el parmetro
MAX_JOB_SLAVE_PROCESSES mediante el procedimiento
DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
T$ABAAOS
Administracin Bsica de Oracle 11g.
1'2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ARQUITECTURA DEL PLANIFICADOR.
En un intervalo dado pueden estar ejecutndose un gran nmero
de trabajos de forma concurrente. As:
1. El proceso coordinador (CJQ0) se arranca y para de forma
automtica cuando es necesario por el Oracle Scheduler. Este
proceso selecciona de forma peridica trabajos a ejecutar de
la tabla JOB$. Los nuevos trabajos se ordenan por tiempo.
2. El proceso coordinador llama de forma dinmica a los procesos
esclavo (Jnnn) para ejecutar los trabajos.
3. El proceso esclavo ejecuta uno de los trabajos seleccionados
por el proceso CJQ0 para ejecucin. Cada proceso ejecuta un
trabajo hasta su final.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1'3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ARQUITECTURA DEL PLANIFICADOR.
4. Tras finalizar la ejecucin del trabajo, reclama ms trabajos.
Si no hay trabajos planificados , pasa a un estado latente del
que despierta a intervalos peridicos y vuelve a reclamar
trabajos. Si sigue sin haber nuevos trabajos, termina.
El parmetro de inicializacin JOB_QUEUE_PROCESSES permite
indicar el mximo nmero de procesos esclavo que pueden
ejecutarse de forma concurrente en una instancia. No obstante,
no presupone que todos los procesos esclavo hayan de estar
disponibles para la ejecucin de trabajos.
El proceso coordinador no arranca si el valor del parmetro
JOB_QUEUE_PROCESSES se fija en 0, cero.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1+4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PLANIFICADOR. RAC.
El planificador usa una tabla de trabajos por cada base de datos
y un proceso coordinador para cada instancia. Los coordinadores
comunican entre s para guardar informacin actualizada.

T$ABAAOS
Administracin Bsica de Oracle 11g.
1+1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
NOMENCLATURA OBJETOS.
Los objetos del planificador se nombran de la misma forma que
cualquier otro objeto de la base de datos:
[esquema_usuario].nombre. Los objetos deben ser nicos en el
espacio de nombres.
Por defecto, los nombres de objetos se almacenan en maysculas
a menos que estn encerrados en dobles comillas.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1+&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS PLANIFICADOR.
Para administrar el planificador debe poseerse el rol
SCHEDULER_ADMIN (generalmente slo administradores).
Es necesario ser restrictivos con la concesin de estos permisos,
siendo aconsejable la concesin de privilegios concretos, por
ejemplo:
GRANT CREATE JOB TO scott; -crear trabajos,... en su esquema-
GRANT ALTER myjob1 TO scott;
Una alternativa para administrar el planificador es el privilegio
MANAGE SCHEDULER (El usuario podr crear, modificar, o borrar
ventanas de ejecucin, clases de trabajo o grupos de
ventanas...). Por ejemplo:
GRANT MANAGE SCHEDULER TO <usuario>;
T$ABAAOS
Administracin Bsica de Oracle 11g.
1+'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PLANIFICADOR. PRIVILEGIOS SISTEMA.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1++
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
El rol SCHEDULER_ADMIN se crea con los privilegios de sistema
anteriores (con la opcin ADMIN). El rol SCHEDULER_ADMIN se
otorga a DBA (con la opcin ADMIN).
A PUBLIC se otorgan los privilegios sobre objeto siguientes:
SELECT ALL_SCHEDULER_*, SELECT USER_SCHEDULER_*
(consulta sobre vistas), SELECT SYS.SCHEDULER$_
JOBSUFFIX_S (para generar un nombre de trabajo -job-) y
EXECUTE SYS.DEFAULT_JOB_CLASS.
T$ABAAOS
PLANIFICADOR. PRIVILEGIOS SISTEMA.
Administracin Bsica de Oracle 11g.
1+,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
T$ABAAOS
PLANIFICADOR. PRIVILEGIOS OBJETO.
Administracin Bsica de Oracle 11g.
1+6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PROCEDIMIENTOS PLANIFICADOR.
T$ABAAOS T$ABAAOS
Administracin Bsica de Oracle 11g.
1+.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO CREATE_JOB.
Para crear un trabajo en el propio esquema debe tenerse el
privilegio CREATE JOB y el CREATE ANY JOB para crear un
trabajo en cualquier esquema salvo SYS.
Debe indicarse tipo, accin, planificacin y atributos del trabajo.
El propietario del trabajo es el usuario en cuyo esquema se ha
creado, el creador del trabajo es el usuario que ha creado el
mismo. Un trabajo puede crearse en otro esquema indicando
esquema.nombre_trabajo.
Los trabajos se ejecutan con los privilegios del esquema en el
cual se crean. El entorno del trabajo cuando se ejecuta es aquel
que exista en el momento de su creacin.
Cualquier trabajo puede consultarse usando las vistas
*_SCHEDULER_JOBS. Por defecto los trabajos se crean
deshabilitados y necesitan activarse para ser ejecutados.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1+2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO CREATE_JOB.
Sintaxis:
DBMS_SCHEDULER.CREATE_JOB (
job_name IN VARCHAR2,
job_type IN VARCHAR2,
job_action IN VARCHAR2,
number_of_arguments IN PLS_INTEGER DE1AULT 7,
start_date IN TIMESTAMP WITH TIME ZONE DE1AULT NULL,
repeat_interval IN VARCHAR2 DE1AULT NULL,
end_date IN TIMESTAMP WITH TIME ZONE DE1AULT NULL,
job_class IN VARCHAR2 DE1AULT 8DE1AULT_2OB_CLASS8,
enabled IN BOOLEAN DE1AULT 1ALSE,
auto_drop IN BOOLEAN DE1AULT TRUE,
comments IN VARCHAR2 DE1AULT NULL);
T$ABAAOS
Administracin Bsica de Oracle 11g.
1+3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO CREATE_JOB.
job_name
Identificador unvoco del trabajo. Si el trabajo reside en otro esquema
debe indicarse el nombre de esquema. Para generar el nombre puede
usarse el procedimiento GENERATE_JOB_NAME. Pueden crearse incluso
trabajos en una BD remota.
DBMS_SCHEDULER.GENERATE_JOB_NAME (prefijo IN VARCHAR2 DEFAULT
'JOB$_') RETURN VARCHAR2;
job_type
Tipo de trabajo creado. Algunos de los tipos soportados, referidos a
trabajos de BD, son:
a) 'PLSQL_BLOCK'. Bloque PL/SQL. En este caso no pueden indicarse
argumentos.
b) 'STORED_PROCEDURE'. Procedimiento almacenado o subprograma
C externo (slo procedimientos, no funciones con valor de retorno, son
soportados).
T$ABAAOS
Administracin Bsica de Oracle 11g.
1,4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO CREATE_JOB.
job_action
Para un bloque PL/SQL, la accin es ejecutar un cdigo PL/SQL. Estos
bloques deben acabar con un ; (my_proc(); o BEGIN my_proc();
END; ...)
Para un procedimiento almacenado la accin es el nombre del mismo
(puede usarse el nombre de esquema para su identificacin).
number_of_arguments.
Nmero de argumentos para el trabajo (0-255, por defecto 0).
program_name. Nombre del programa asociado al trabajo.
start_date.
Fecha en que el trabajo arrancar. Si start_date y repeat_interval son
nulos, el trabajo se inicia tan pronto sea habilitado.
event_condition. Expresin de eventos.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1,1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO CREATE_JOB.
queue_spec. Cola de eventos.
repeat_interval. Intervalo de ejecucin. Si no se indica el trabajo slo se
ejecuta una vez en la fecha indicada por start date.
job_class. Clase con la que est asociado el trabajo.
schedule_name. Nombre de la planificacin, window, o window group
asociada al trabajo.
end_date.
Fecha tras la que el trabajo no se ejecutar ms (si auto drop es FALSE,
el STATE del trabajo se asigna a COMPLETED y se deshabilita; si es TRUE,
se borra). Si no se indica fecha, el trabajo se repetir indefinidamente a
menos que se alcance max_runs o max_failures en cuyo caso el
trabajo para.
job_priority. Prioridad del trabajo entre los que integran la clase (de 1
-mxima- a 5 -mnima-, por defecto 3).
T$ABAAOS
Administracin Bsica de Oracle 11g.
1,&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO CREATE_JOB.
comments. Comentarios.
enabled.
Indica si el trabajo se crea habilitado o no (TRUE o FALSE). Por defecto su
valor es FALSE, por tanto el planificador lo ignora y no se enva a
ejecucin. Para ser ejecutado el argumento debe tener valor TRUE o ser
activado con el procedimiento ENABLE.
auto_drop.
Si su valor es TRUE, el trabajo ser borrado tras ser deshabilitado o
completarse su ejecucin (cuando llega a su fecha final, alcanza el
nmero de ejecuciones indicadas por max_runs -fijadas con
SET_ATTRIBUTE- o slo debe ejecutarse una vez). Un trabajo se
deshabilita cuando falla las veces indicadas por max_failures (fijadas
con SET_ATTRIBUTE).
Si el valor es FALSE, el trabajo no se borra hasta hacerlo explcitamente
con el procedimiento DROP_JOB.
Por defecto los trabajos se crean con auto_drop igual a TRUE.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1,'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO CREATE_JOB.
Ejemplo:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (job_name => 'my_emp_job1',
job_type => 'PLSQL_BLOCK',
job_action => 'INSERT INTO sales VALUES( 7987, ''SALLY'',
''ANALYST'', NULL, NULL, NULL, NULL, NULL);',
start_date => '28-APR-03 07.00.00 PM Australia/Sydney',
repeat_interval => 'FREQ=DAILY;INTERVAL=2',
end_date => '20-NOV-04 07.00.00 PM Australia/Sydney',
comments => 'My new job');
END;
/
T$ABAAOS
Administracin Bsica de Oracle 11g.
1,+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
INTERVALO EJECUCION.
Est definido por el valor del atributo repeat_interval o por el de la
planificacin que referencia el trabajo. Si no se indica valor para
repeat_interval el trabajo slo se ejecuta una vez (indicada en
start date).
Puede indicarse de dos formas:
Mediante una expresin acorde a Scheduler Calendaring Syntax
(vase PL/SQL Packages and Types Reference para una descripcin
detallada). Por ejemplo:
a) Ejecucin todos los viernes (los ejemplos son equivalentes).
FREQ=DAILY; BYDAY=FRI;
FREQ=WEEKLY; BYDAY=FRI;
FREQ=YEARLY; BYDAY=FRI;
T$ABAAOS
Administracin Bsica de Oracle 11g.
1,,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
INTERVALO EJECUCION.
b) Ultimo da del mes.
FREQ=MONTHLY; BYMONTHDAY=-1;
c) Ejecucin el 10 de marzo.
FREQ=YEARLY; BYMONTH=MAR; BYMONTHDAY=10;
FREQ=YEARLY; BYDATE=0310;
d) Cada 10 dias.
FREQ=DAILY; INTERVAL=10;
e) Diariamente a las 4, 5 y 6 de la tarde.
FREQ=DAILY; BYHOUR=16,17,18;
f) Cada 50 horas.
FREQ=HOURLY; INTERVAL=50;
g) Cada hora durante los tres primeros das del mes.
FREQ=HOURLY; BYMONTHDAY=1,2,3;
T$ABAAOS
Administracin Bsica de Oracle 11g.
1,6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
INTERVALO EJECUCION.
Mediante una expresin PL/SQL . Por ejemplo:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'scott.my_job2',
start_date => '15-JUL-04 01.00.00 AM Europe/Warsaw',
repeat_interval => 'SYSTIMESTAMP + INTERVAL '30'
MINUTE',
end_date => '15-SEP-04 01.00.00 AM Europe/Warsaw',
comments => 'Comentarios');
END;
/
Supone la ejecucin por primera vez el 15 de julio y luego
cada 30 minutos hasta el 15 de septiembre.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1,.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO CREATE_JOBS.
Sintaxis:
DBMS_SCHEDULER.CREATE_JOBS (
jobdef_array IN SYS.JOB_DEFINITION_ARRAY,
commit_semantics IN VARCHAR2 DE1AULT
8STOP_ON_1IRST_ERROR8);
Permite crear varios trabajos en una transaccin.
jobdef_array. Array de definiciones de trabajos.
commit_semantics. Con los siguientes valores:
STOP_ON_1IRST_ERROR. Por defecto. Finaliza en el primer error y los previos
que se crearon sin errores se validan.
TRANSACTIONAL. Finaliza en el primer error y todo lo ejecutado antes del mismo
se retrocede (rollback).
ABSORB_ERRORS. Intenta crear los trabajos que no tengan error y validarlos. Para
detalles sobre los errores puede consultarse SCHEDULER_BATCH_ERRORS.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1,2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO CREATE_JOBS.
Es posible crear mltiples trabajos de una sola vez.
DECLARE
newjob sys.job_definition;
newjobarr sys.job_definition_array;
BEGIN
newjobarr := sys.job_definition_array();
newjobarr.extend(5);
FOR i IN 1..5 LOOP
newjob := sys.job_definition(job_name => 'TESTJOB' || to_char(i),
job_style => 'REGULAR', program_name => 'PROG1',
repeat_interval => 'FREQ=HOURLY',
start_date => systimestamp + interval '600' second,
max_runs => 2, auto_drop => FALSE, enabled => TRUE);
newjobarr(i) := newjob;
END LOOP;
DBMS_SCHEDULER.CREATE_JOBS(newjobarr, 'TRANSACTIONAL');
END;
/
T$ABAAOS
Administracin Bsica de Oracle 11g.
1,3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO SET _ATTRIBUTE.
Sintaxis:
DBMS_SCHEDULER.SET_ATTRIBUTE (
name IN VARCHAR2,
attribute IN VARCHAR2,
value IN [BOOLEAN, DATE, TIMESTAMP, TIMESTAMP WITH TIME
ZONE, TIMESTAMP WITH LOCAL TIME ZONE, INTERVAL DAY
TO SECOND],
<value2 IN VARCHAR2 DE1AULT NULL>);
Name ... nombre del objeto.
Attribute ... atributo a modificar.
Value ... nuevo valor (no puede ser NULL). Para fijar un atributo a
NULL debe usarse el procedimiento SET_ATTRIBUTE_NULL.
Value2 ... Para atributos que pueden tener dos valores asociados.
Cualquier parmetro, excepto job_name, puede modificarse, surtiendo
efecto en futuras ejecuciones del trabajo, no en la actual.
No deben modificarse trabajos creados por la BD (identificados por el
valor TRUE en la columna SYSTEM de las vistas).
T$ABAAOS
Administracin Bsica de Oracle 11g.
164
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Algunos de los valores que pueden modificarse son:
logging_level. Indica qu informacin se guarda sobre el trabajo:
DBMS_SCHEDULER.LOGGING_OFF -no se guarda ninguna informacin-
DBMS_SCHEDULER.LOGGING_FAILED_RUNS -informacin sobre fallos-,
DBMS_SCHEDULER.LOGGING_RUNS -informacin sobre ejecuciones- y
DBMS_SCHEDULER.LOGGING_FULL -informacin sobre creacin,
habilitacin, modificacin, ...-.
Esta informacin puede consultarse en las vistas
*_SCHEDULER_JOB_LOG. Por ejemplo:
SELECT to_char(log_date, 'DD-MON-YY HH24:MM:SS') TIMESTAMP,
job_name, job_class, operation, status FROM
USER_SCHEDULER_JOB_LOG WHERE job_name = 'JOB2' ORDER BY
log_date;
T$ABAAOS
DBMS_SCHEDULER.
PROCEDIMIENTO SET _ATTRIBUTE.
Administracin Bsica de Oracle 11g.
161
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Para cada fila en *_SCHEDULER_JOB_LOG cuya operacin sea RUN,
RETRY_RUN, o RECOVERY_RUN, existe un fila correspondiente en
*_SCHEDULER_JOB_RUN_DETAILS (relacionadas ambas vistas por la
columna LOG_ID):
SELECT to_char(log_date, 'DD-MON-YY HH24:MM:SS') TIMESTAMP,
job_name, status, SUBSTR(additional_info, 1, 40) ADDITIONAL_INFO
FROM user_scheduler_job_run_details ORDER BY log_date;
restartable. Indica si rearranca en caso de fallo. Por defecto es FALSE.
max_failures. Nmero de veces que un trabajo puede fallar consecutivamente
antes de ser deshabilitado (en este caso su STATE es puesto a BROKEN). Por
defecto NULL, nuevas instancias del trabajo arrancan independientemente del
nmero de fallos previos.
max_runs. Nmero mximo de ejecuciones consecutivas. Al alcanzarlas, el
trabajo se deshabilita y su estado pasa a ser COMPLETED. Por defecto es
NULL y se repite indefinidamente o hasta alcanzar end_date o
max_failures.
T$ABAAOS
DBMS_SCHEDULER.
PROCEDIMIENTO SET _ATTRIBUTE.
Administracin Bsica de Oracle 11g.
16&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
job_action
job_type
repeat_interval
start_date
end_date
comments
auto_drop. Indica si el trabajo debe ser borrado despus de completar su
ejecucin.
T$ABAAOS
DBMS_SCHEDULER.
PROCEDIMIENTO SET _ATTRIBUTE.
Administracin Bsica de Oracle 11g.
16'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Para evitar el crecimiento del log puede emplearse el
procedimiento SET_SCHEDULER_ATTRIBUTE indicando la antigedad
mxima del mismo en das (por defecto 30 das). Por ejemplo:
DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE('log_history','90');
Tambin es posible desechar de forma manual el log mediante el
procedimiento PURGE_LOG:
DBMS_SCHEDULER.PURGE_LOG(); ... Elimina todas las entradas
DBMS_SCHEDULER.PURGE_LOG(log_history => 3, which_log
=>'JOB_LOG'); ... Entradas de antigedad superior a 3 das
T$ABAAOS
DBMS_SCHEDULER.
PURGAR LOGS.
Administracin Bsica de Oracle 11g.
16+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROC. SET _ATTRIBUTE_NULL.
Sintaxis:
DBMS_SCHEDULER.SET_ATTRIBUTE_NULL (
name IN VARCHAR2,
attribute IN VARCHAR2);
Este procedimiento asigna el valor NULL a un atributo.
T$ABAAOS
Administracin Bsica de Oracle 11g.
16,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO COPY.
Sintaxis:
DBMS_SCHEDULER.COPY_JOB (
old_job IN VARCHAR2,
new_job IN VARCHAR2);
Copia todos los atributos de un trabajo existente a un nuevo trabajo, este se
crea deshabilitado -el estado del trabajo original no vara-.
Esta operacin requiere tener privilegios para crear un trabajo en el esquema
del nuevo trabajo (CREATE JOB para el propio esquema o CREATE ANY JOB
en otro caso). Si el trabajo original no est en el propio esquema de usuario
se necesita tambin privilegio ALTER en el mismo o poseer el privilegio
CREATE ANY JOB.
T$ABAAOS
Administracin Bsica de Oracle 11g.
166
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO ENABLE.
Permite activar un trabajo, programa, ... todos los cuales, por
defecto, son creados deshabilitados. A partir de la activacin el
proceso coordinador puede llevarlo a ejecucin.
Se llevan a cabo operaciones de validacin previas a la habilitacin.
Si fallan, no se habilita el objeto y se genera un error. Habilitar un
trabajo previamente deshabilitado supone poner a cero para el
trabajo los valores de RUN_COUNT, FAILURE_COUNT y
RETRY_COUNT (vistas *_SCHEDULER_JOBS).
Se debe ser el propietario del objeto, tener privilegio ALTER en el
mismo o poseer el privilegio CREATE ANY JOB.
Sintaxis:
DBMS_SCHEDULER.ENABLE (name IN VARCHAR2,
commit_semantics IN VARCHAR2 DE1AULT
8STOP_ON_1IRST_ERROR8);
T$ABAAOS
Administracin Bsica de Oracle 11g.
16.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO ENABLE.
Donde:
name. Nombre del o los trabajos.
commit_semantics. Con los siguientes valores:
STOP_ON_1IRST_ERROR. Por defecto. Finaliza en el primer error y los previos
que se habilitaron sin errores se validan.
TRANSACTIONAL. Finaliza en el primer error y todo lo ejecutado antes del mismo
se retrocede (rollback).
ABSORB_ERRORS. Intenta habilitar los trabajos que no tengan error y validar
todas las operaciones exitosas. Para detalles sobre los errores puede
consultarse SCHEDULER_BATCH_ERRORS.
T$ABAAOS
Administracin Bsica de Oracle 11g.
162
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO DISABLE.
Permite desactivar un trabajo, programa, ... puede indicarse en
name una lista de nombres separados por comas. Deshabilitar un
objeto ya deshabilitado no genera error.
Se debe ser el propietario del objeto, tener privilegio ALTER en el
mismo o poseer el privilegio CREATE ANY JOB.
Sintaxis:
DBMS_SCHEDULER.DISABLE (
name IN VARCHAR2,
force IN BOOLEAN DE1AULT 1ALSE
commit_semantics IN VARCHAR2 DE1AULT
8STOP_ON_1IRST_ERROR8);
T$ABAAOS
Administracin Bsica de Oracle 11g.
163
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO DISABLE.
Donde:
name. Nombre del o los trabajos.
commit_semantics. Con los siguientes valores:
STOP_ON_1IRST_ERROR. Por defecto. Finaliza en el primer error y los previos
que se deshabilitaron sin errores se validan.
TRANSACTIONAL. Finaliza en el primer error y todo lo ejecutado antes del mismo
se retrocede (rollback).
ABSORB_ERRORS. Intenta deshabilitar los trabajos que no tengan error y validar
todas las operaciones exitosas. Para detalles sobre los errores puede
consultarse SCHEDULER_BATCH_ERRORS.
Cuando un trabajo se deshabilita su estado se modifica a disabled.
Si force es FALSE y el trabajo est ejecutndose se develve un
error; si force es TRUE, se deshabilita el trabajo pero se permite
finalizar la instancia del mismo que est ejecutndose.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1.4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO RUN_JOB.
Sintaxis:
DBMS_SCHEDULER.RUN_JOB (
job_name IN VARCHAR2,
use_current_session IN BOOLEAN DE1AULT TRUE);
Ejecuta un trabajo de forma inmediata. Usar RUN_JOB requiere bien ser el
propietario del trabajo, bien tener privilegio ALTER en dicho trabajo. Tambin
pueden ejecutarse trabajos con el privilegio CREATE ANY JOB.
Si use_current_session es TRUE, el trabajo se ejecuta en la sesion que llama
a RUN_JOB. Esta forma de ejecutarse puede realizarse en paralelo con una
ejecucin planificada y no hace que se modifiquen los contadores
failure_count, run_count, last_start_date y last_run_duration , el
trabajo se reflejar en el log del mismo.
Si use_current_session es FALSE: es preciso chequear el log para obtener
informacin sobre la ejecucin del trabajo; run_count, last_start_date,
last_run_duration y failure_count son actualizados y RUN_JOB falla si hay
un trabajo planificado ejecutndose.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1.1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO STOP_JOB.
Sintaxis:
DBMS_SCHEDULER.STOP_JOB (
job_name IN VARCHAR2
force IN BOOLEAN DE1AULT 1ALSE
commit_semantics IN VARCHAR2 DE1AULT
8STOP_ON_1IRST_ERROR8);
Permite parar trabajos en ejecucin. Tras la parada de un trabajo, el estado
de este pasa a ser STOPPED si slo se ejecutaba una vez; mientras que el de
uno programado para repetirse mltiples veces pasa a ser SCHEDULED o
COMPLETED (en funcin de si la siguiente ejecucin estaba planificada).
Si el argumento force de la llamada es FALSE, el planificador intenta parar
el trabajo ordenadamente y genera un error si falla en su intento. Si su valor
es TRUE, se interrumpe inmediatamente el proceso esclavo (Oracle slo
recomienda esta opcin si ha fallado la parada ordenada).
T$ABAAOS
Administracin Bsica de Oracle 11g.
1.&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO STOP_JOB.
Commit_semantics puede tener los siguientes valores:
STOP_ON_1IRST_ERROR. Por defecto. Finaliza en el primer error y los
previos que se pararon sin errores se validan.
ABSORB_ERRORS. Intenta parar los trabajos que no tengan error y
validar todas las operaciones exitosas. Para detalles sobre los errores
puede consultarse SCHEDULER_BATCH_ERRORS.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1.'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO DROP_JOB.
Permite borrar un trabajo (desaparece de cualquier vista, por tanto,
y no vuelve a ejecutarse).
Requiere ser el propietario del trabajo, tener el privilegio ALTER
sobre el mismo, o poseer el privilegio de sistema CREATE ANY JOB.
Sintaxis:
DBMS_SCHEDULER.DROP_JOB (
job_name IN VARCHAR2,
force IN BOOLEAN DE1AULT 1ALSE9
defer IN BOOLEAN DE1AULT 1ALSE9
commit_semantics IN VARCHAR2 DE1AULT
8STOP_ON_1IRST_ERROR8);
Si el argumento force es FALSE y una instancia del trabajo est
ejecutndose se genera un error. Si su valor es TRUE, el planificador
intenta parar la instancia del trabajo y despus lo borra.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1.+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DBMS_SCHEDULER.
PROCEDIMIENTO DROP_JOB.
Si el argumento defer es TRUE, el planificador permite terminar la
ejecucin de los trabajos y despus los borra.
Commit_semantics puede tener los siguientes valores:
STOP_ON_1IRST_ERROR. Por defecto. Finaliza en el primer error y los
previos que se borraron sin errores se validan.
TRANSACTIONAL. Finaliza en el primer error y todo lo ejecutado antes
del mismo se retrocede (rollback).
ABSORB_ERRORS. Intenta borrar los trabajos que no tengan error y
validar todas las operaciones exitosas. Para detalles sobre los errores
puede consultarse SCHEDULER_BATCH_ERRORS.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1.,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
VISTAS.
DBA_SC6EDULER_2OB_ARGS. Argumentos de trabajos.
DBA_SC6EDULER_2OB_LOG. Cambios de estado de trabajos.
DBA_SC6EDULER_2OB_RUN_DETAILS. Detalles sobre la
ejecucin de trabajos.
DBA_SC6EDULER_2OBS. Informacin sobre trabajos en la bd.
DBA_SC6EDULER_RUNNING_2OBS. Trabajos en ejecucin.
DBA_SC6EDULER_SC6EDULES. Planificacin de trabajos.
SESSIOBP$I@S. Privilegios de sistema actuales.
V5LOC:. Bloqueos mantenidos por el servidor.
V5SESSION. Informacin de sesiones actuales.
T$ABAAOS
Administracin Bsica de Oracle 11g.
1.6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA 3.
AUDITO$CA.
AUDITO$IA
Administracin Bsica de Oracle 11g.
1..
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA 9.
AUDITORA.
Auditora.
Tipos de auditora.
Registros de auditora. Audit trail.
Parmetro audit_trail.
Auditora de usuarios administradores.
Informacin audit trail de sistema operativo.
Auditora de sentencias. opciones.
Auditora de privilegios. Privilegios auditables.
AUDITO$IA
Administracin Bsica de Oracle 11g.
1.2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA 9.
AUDITORA.
Auditora de esquema. Opciones.
Auditora y flashback.
Auditora de grano fino. Paquete dbms_fga. Procedimientos.
Desactivacin. Sentencia noaudit.
Desactivacin de la auditora.
Control y proteccin del audit trail.
Auditora. Recomendaciones.
Vistas.
AUDITO$IA
Administracin Bsica de Oracle 11g.
1.3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA.
Mediante la auditora se intenta monitorizar y registrar acciones en la
base de datos con el fin de :
-Investigar actividades maliciosas (borrado de tablas, ..) o notificar sobre las
acciones de un usuario no autorizado (modificacin, borrado de datos...)
-Detectar privilegios incorrectamente otorgados a usuarios (que permiten
realizar acciones inapropiadas, las cuales son detectadas)
-Monitorizar y recoger datos sobre actividades concretas (tablas que se
actualizan, usuarios concurrentes, .) y detectar problemas en base a ellos
-Detectar problemas con la implementacin de polticas de seguridad de
autorizacin, acceso... (puntos dbiles que generan registros)
Puede ser ms o menos general, permitiendo auditar:
-Ejecuciones de sentencias exitosas, fallidas o ambas.
-Ejecucin de sentencias por sesin o por lanzamiento de sentencia.
-Usuarios concretos o todos los usuarios.
AUDITO$IA
Administracin Bsica de Oracle 11g.
124
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA.
Una instancia audita slo las sentencias de usuarios conectados
directamente. No pueden auditarse acciones de una BD remota desde
una BD local.
AUDITO$IA
Administracin Bsica de Oracle 11g.
121
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TIPOS DE AUDITORA.
a) ESTANDAR. Se configura con las sentencias AUDIT y NOAUDIT.
-De sentencias. Seleccionando un tipo concreto de las mismas, que
afectan a una determinada clase de objetos de base de datos (por
ejemplo, AUDIT TABLE que audita truncate table, comment on
table...).
-De privilegios. Auditora de privilegios de sistema (por ejemplo, AUDIT
CREATE ANY TRIGGER).
-De esquema. Sentencias especficas sobre objetos de un esquema
concreto (p. ej. AUDIT SELECT ON <nombre_tabla>).
-De red. Errores en protocolo de red.
Si se activan opciones de auditora semejantes de sentencia y de
privilegio, slo se genera un registro; por ej. la auditora de TABLE
-sentencia- y CREATE TABLE -privilegio- slo genera un registro al
crear una tabla. La auditora de privilegios es ms restringida que
la de sentencias.
AUDITO$IA
Administracin Bsica de Oracle 11g.
12&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TIPOS DE AUDITORA.
Cualquier usuario puede configurar la auditora para objetos de su
esquema mediante AUDIT y desactivar con NOAUDIT. Esto es
independiente del valor de AUDIT_TRAIL.
b) DE GRANO FINO (fine grained). Acceso a datos concretos y
cambios en los mismos a nivel columna.
AUDITO$IA
Administracin Bsica de Oracle 11g.
12'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
REGISTROS DE AUDITORA.
AUDIT TRAIL.
La informacin de auditora se almacena en los registros de auditora,
que incluyen datos como:
-Usuario. Identificador de sesin y terminal
-Nombre del esquema accedido
-Operacin y cdigo de operacin
-Fecha y hora
En la auditora bsica (sentencias, privilegios, esquemas y red) los
registros se guardan en la tabla de diccionario de datos SYS.AUD$ (db
audit trail) o en ficheros de sistema operativo (operating system audit
trail). Est codificada y no es legible. En el primer caso, existen
diferentes vistas que permiten usar la informacin almacenada como
DBA_AUDIT_TRAIL.
En la auditora de grano fino, los registros se escriben en
DBA_FGA_AUDIT_TRAIL (tabla SYS.FGA_LOG$).
AUDITO$IA
Administracin Bsica de Oracle 11g.
12+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
REGISTROS DE AUDITORA.
AUDIT TRAIL.
El registro de informacin de auditora bsica o estndar puede estar
habilitado o deshabilitado. Aquellos usuarios autorizados de la base de
datos pueden determinar las opciones de auditora, pero el decidir si se
graba o no informacin pertenece al administrador.
Cuando la auditora estndar est habilitada se genera un registro
durante o despus de la fase de la ejecucin de la sentencia. La
generacin e insercin de un registro de auditora es independiente de
como acabe la transaccin del usuario; si esta es deshecha (rollback),
el registro de auditora permanece (commit).
Las opciones de auditora estndar para sentencias y privilegios en vigor
cuando un usuario se conecta permanecen as durante la sesin
(aunque se modifiquen o establezcan nuevas opciones, que slo tendrn
efecto en una nueva sesin). Por el contrario, cambios en las opciones
sobre esquema se aplican inmediatamente para la sesin en curso.
AUDITO$IA
Administracin Bsica de Oracle 11g.
12,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
REGISTROS DE AUDITORA.
AUDIT TRAIL.
La auditora de grano fino se aplica a objetos individuales y, por tanto, no
se ve afectada por la auditora bsica que est habilitada o no para la bd
al completo.
El audit trail no almacena informacin sobre los valores de los datos
que pudieran estar involucrados en una determinada sentencia que est
siendo auditada. Por ejemplo, los valores actuales y anteriores de una fila
modificada no se guardan al auditar la sentencia UPDATE (puede hacerse
usando disparadores de base de datos, triggers).
CREATE TRIGGER audit_emp_salaries
AFTER INSERT OR DELETE OR UPDATE ON employee_salaries
for each row
begin
if (:new.salary> :old.salary * 1.10) then insert into
emp_salary_audit values
(:employee_no,:old.salary,:new.salary,user,sysdate);
endif;
end;
AUDITO$IA
Administracin Bsica de Oracle 11g.
126
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ACTIVIDADES AUDITORA
PERMANENTE EN REGISTRO.
Cuando se habilita la auditora estndar, la BD audita todas las
operaciones DML (insert, update, merge, delete) en SYS.AUD$ y
SYS.FGA_LOG$ realizadas por usuarios que no sean SYS. Esto sucede
incluso si no se han activado opciones de auditora para dichas tablas y
se escribe un registro por accin.
AUDITO$IA
Administracin Bsica de Oracle 11g.
12.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
REGISTROS DE AUDITORA.
ACTIVIDADES AUDITORA PERMANENTE.
Siempre se registran algunos tipos de acciones relacionadas con
BD cuya informacin es escrita a ficheros de sistema operativo
de auditora.
Es el mandatory auditing que se realiza incluso si se ha
activado el audit trail de BD. Por defecto los ficheros estn en
$ORACLE_HOME/admin/$ORACLE_SID/adump (mediante la
variable AUDIT_FILE_DEST puede cambiar el destino).
-Startup de la instancia. Se almacena el usuario de sistema
operativo que lo hace, el identificador de terminal del usuario,
fecha y hora. El audit trail de bd no est disponible hasta
que se ha arrancado satisfactoriamente esta.
-Shutdown de la instancia. Almacena el usuario de sistema
operativo, el identificador de terminal del usuario y fecha y
hora.
-Conexiones a la base de datos con privilegios de
administrador.
AUDITO$IA
Administracin Bsica de Oracle 11g.
122
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA ESTNDAR.
PARAMETRO AUDIT_TRAIL.
Para comenzar a auditar debe asignarse un valor al parmetro de
inicializacin AUDIT_TRAIL:
- DB. Es el valor por defecto. Registra los apuntes en el audit trail
de BD (SYS.AUD$) salvo para los registros de auditora de SYS y
el mandatory auditing (que se escriben a ficheros de S.O.). Si la
BD se arranca en modo READ ONLY y tiene asignado DB, se fija
automticamente AUDIT_TRAIL=OS
- DB, EXTENDED. Idem que DB pero permite registrar la sentencia
SQL empleada en la accin auditada (y las variables asociadas,
incluso datos sensibles). Puede especificarse como: ALTER SYSTEM
SET AUDIT_TRAIL=DB,EXTENDED SCOPE=SPFILE;
- OS. La auditora se lleva a S.O. Hay una serie de parmetros
asociados:
- AUDIT_FILE_DEST. Seala donde guardar los registros (en
UNIX en $ORACLE_HOME/admin/$ORACLE_SID/adump y como
segunda opcin en $ORACLE_HOME/rdbms/audit):
AUDITO$IA
Administracin Bsica de Oracle 11g.
123
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA ESTNDAR.
PARAMETRO AUDIT_TRAIL.
ALTER SYSTEM SET AUDIT_FILE_DEST=<directorio> DEFERRED;
- AUDIT_SYS_OPERATIONS. Este parmetro de inicializacin -
esttico- permite auditar aquellas sesiones de usuarios
conectados como SYS (privilegio SYSDBA o SYSOPER).
Si su valor es TRUE (AUDIT_SYS_OPERATIONS=TRUE), se
auditan dichas operaciones. Si el valor es TRUE y el valor
de AUDIT_TRAIL=XML, los registros se escriben en formato
XML.
Si su valor es FALSE, valor por defecto, no son auditadas
(AUDIT_SYS_OPERATIONS=TRUE).
- AUDIT_SYSLOG_LEVEL (entornos UNIX). Escribe los registros
de SYS y de SO usando la utilidad SYSLOG.
AUDITO$IA
Administracin Bsica de Oracle 11g.
134
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA ESTNDAR.
PARAMETRO AUDIT_TRAIL.
- XML. Se escriben los registros en SO en formato XML. Debe
indicarse tambin un valor para AUDIT_FILE_DEST (por defecto
los XML se escriben en $ORACLE_HOME/admin/
$ORACLE_SID/adump). Adems de los ficheros XML se crea un
fichero ndice de texto, adx_$ORACLE_SID.txt, que se emplea al
consultar la vista V$XML_AUDIT_TRAIL. Fijar este valor para el
parmetro no afecta al formato de los registros de syslog.
- XML, EXTENDED. Idem que XML pero incluye informacin SQL en
los registros de auditora.
- NONE. Deshabilita la auditora.
*ta5 AUDIT_TRAIL no tiene que fijarse para habilitar la auditora de
grano fino o la de SYS (esta se fija con
AUDIT_SYS_OPERATIONS).
AUDITO$IA
Administracin Bsica de Oracle 11g.
131
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA ESTNDAR.
PARAMETRO AUDIT_TRAIL.
*tas5 La vista DBA_COMMON_AUDIT_TRAIL incluye registros de
auditora estndar y de grano fino escritos en BD, registros en
formato XML y el contenido de la vista V$XML_AUDIT_TRAIL.
Pueden consultarse los parmetros de auditora definidos con
SQL> SHOW PARAMETER AUDIT
Para auditar una sentencia SQL o privilegio debe poseerse el
privilegio de sistema AUDIT SYSTEM. Para auditar operaciones
sobre un objeto, debe pertenecer al esquema o tener privilegio
AUDIT ANY.
AUDITO$IA
Administracin Bsica de Oracle 11g.
13&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CONNECT SYSTEM
Enter password: ******
ALTER SYSTEM SET AUDIT_TRAIL=DB SCOPE=SPFILE;
System altered.
CONNECT SYS/AS SYSOPER
Enter password: ******
SHUTDOWN
Database closed.
Database dismounted.
ORACLE instance shut down.
STARTUP
ORACLE instance started.
AUDITO$IA
AUDITORA ESTNDAR.
PARAMETRO AUDIT_TRAIL.
Administracin Bsica de Oracle 11g.
13'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA BD vs SO.
El almacenamiento de la auditora en base de datos tiene diferentes
ventajas:
-Pueden usarse ciertas vistas predefinidas, existentes en el
diccionario de base de datos, para consultar de forma sencilla el
audit trail (como dba_audit_trail).
-Pueden usarse herramientas Oracle de generacin de informes,
como Oracle Reports.
-Evita la ejecucin de eventos si el audit trail no puede grabar los
registros que se generan.
Por otra parte, la auditora en sistema operativo podra ayudar a
examinar la actividad global del sistema con mayor facilidad; al estar
todos los registros de auditora (de Oracle y de otras herramientas) en
un mismo lugar. Tambin podra ser ms seguro al requerir permisos
concretos para acceder a los ficheros, disminuir la carga de la BD...
AUDITO$IA
Administracin Bsica de Oracle 11g.
13+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA POR DEFECTO.
Al crear la BD con el Database Configuration Assistant (DBCA), esta se
configura para auditar las sentencias SQL y privilegios ms comunes.
Adems fija AUDIT_TRAIL con el valor DB.
Se auditan por defecto los siguientes privilegios:

ALTER ANY PROCEDURE, CREATE ANY LIBRARY, DROP ANY TABLE,
ALTER ANY TABLE, CREATE ANY PROCEDURE, DROP PROFILE,
ALTER DATABASE, CREATE ANY TABLE, DROP USER, ALTER PROFILE,
CREATE EXTERNAL JOB, EXEMPT ACCESS POLICY, ALTER SYSTEM,
CREATE PUBLIC DATABASE LINK, GRANT ANY OBJECT PRIVILEGE,
ALTER USER, CREATE SESSION, GRANT ANY PRIVILEGE, AUDIT SYSTEM,
CREATE USER, GRANT ANY ROLE, CREATE ANY JOB, DROP ANY PROCEDURE
Y SQL abreviados -shortcut-:
ROLE, SYSTEM AUDIT, PUBLIC SYNONYM, DATABASE LINK, PROFILE,
SYSTEM GRANT
AUDITO$IA
Administracin Bsica de Oracle 11g.
13,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE SENTENCIAS.
Sintaxis:
AUDIT <sentencia1, . sentencian>/ALL
BY <usuario1, . usuarion>
BY SESSION/ACCESS
WHENEVER SUCESSFUL/NOT SUCCESSFUL;
La clusula BY <usuario> permite restringir la auditora slo a
aquellas sentencias ejecutadas por los usuarios indicados
(tambin puede recogerse informacin exclusiva sobre la actual
sesin, mientras dure, con la clusula IN SESSION CURRENT
junto con ALL STATEMENT).
La clusula BY SESSION, clausula por defecto, indica que se
desea un slo registro para todas las sentencias SQL y
operaciones del mismo tipo ejecutadas en la misma sesin.
AUDITO$IA
Administracin Bsica de Oracle 11g.
136
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE SENTENCIAS.
La clusula BY ACCESS indica que se desea un registro para cada
sentencia SQL y operacin auditadas. Si se auditan sentencias de
definicin de datos del lenguaje (DDL) siempre se audita por
acceso.
La clusula WHENEVER SUCESSFUL, permite auditar slo
sentencias SQL y operaciones que surten efecto.
La clusula WHENEVER NOT SUCESSFUL, permite auditar slo
sentencias SQL y operaciones que fallan o generan errores.
Auditar una sentencia no exitosa genera apunte si carece de
autorizacin o referencia un objeto inexistente. Las sentencias
que fallan por no ser vlidas no se pueden auditar (p.ej. Si se
audita CREATE TABLE y la creacin de una tabla falla por falta de
cuota en un espacio de almacenamiento).
Si se omiten las dos opciones anteriores, se realiza la auditora
independientemente del xito o fallo de la sentencia.
AUDITO$IA
Administracin Bsica de Oracle 11g.
13.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE SENTENCIAS.
Nota general: Si se configura la auditora por s.o., la clusula BY
SESSION equivale a BY ACCESS. Se genera un registro cada vez
que se realiza un acceso.
Nota general: Para cualquier tipo de auditora (sentencia,
privilegio o sistema), si se opta por auditar NOT SUCCESSFUL
se generan registros slo si el fallo se produce por alguna razn
relacionada con la opcin auditada. Por ejemplo, no se produce
registro si una sentencia falla por no tener cuota estando
auditando CREATE TABLE.
AUDITO$IA
Administracin Bsica de Oracle 11g.
132
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Create role / alter role / drop role / set role Role
Create public synonym / Drop public
synonym
Public synonym
Create public database link / drop public
database link
Public database
link
Create function / create package / create
package body / create procedure / drop
function / drop package / drop procedure
Procedure
Todas las sentencias SQL que fallan por no
existir un determinado objeto
Not exists
Create / alter / analyze /drop index Index
Create database link / drop database link Database link
Sentencias SD7 a0ditadas. O1ci*n
AUDITO$IA
AUDITORA DE SENTENCIAS. OPCIONES.
Administracin Bsica de Oracle 11g.
133
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Create table / drop table / truncate table Table
Create tablespace / drop tablespace / alter
tablespace
Tablespace
Grant y revoke privilegios_sistema y roles System grant
Audit sentencias_sql / Noaudit
sentencias_sql
System audit
Create synonym / drop synonym Synonym
Conexiones - valor por defecto y nico BY SESSION - Session
Create sequence / drop sequence Sequence
Create rollback segment/ alter rollback
segment / drop rollback segment
Rollback Statement
Sentencias SD7 a0ditadas. O1cin
AUDITO$IA
AUDITORA DE SENTENCIAS. OPCIONES.
Administracin Bsica de Oracle 11g.
&44
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Grant / revoke <privilegio> on <secuencia> Grant sequence
Grant / revoke <privilegio> on <tabla,
vista, vista materializada>
Grant table
Grant / revoke <privilegio> on
<procedimiento, funcion, paquete>
Grant procedure
Delete from <tabla>, <vista> Delete table
Alter table Alter table
Create view /drop view View
Create user / alter user /drop user User
Create trigger / drop trigger /alter trigger Trigger
Sentencias SD7 a0ditadas. O1cin
AUDITO$IA
AUDITORA DE SENTENCIAS. OPCIONES.
Administracin Bsica de Oracle 11g.
&41
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE SENTENCIAS. OPCIONES.
Cualquier sentencia que contenga
sequence.CURRVAL o sequence.NEXTVAL
Select sequence
Update <tabla, vista> Update table
Select from <tabla, vista, vista
materializada>
Select table
Lock table <tabla, vista> Lock table
Insert into <tabla, vista> Insert table
Sentencias SD7 a0ditadas. O1cin
AUDITO$IA
Administracin Bsica de Oracle 11g.
&4&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE PRIVILEGIOS.
Audita sentencias que usan un privilegio de sistema.
Sintaxis:
AUDIT <priv_sistema1, . priv_sisteman>
/ALL PRIVILEGES
BY <usuario1, . usuarion>
BY SESSION/ACCESS
WHENEVER SUCESSFUL/NOT SUCCESSFUL;
La clusula ALL PRIVILEGES, indica que debe auditarse todo
privilegio de sistema.
Toda la auditora de privilegios sobre sentencias DDL se hace por
acceso. Por defecto es por sesin.
Opciones similares en auditora de sentencias y privilegios slo
generan un apunte (p.ej. al crear una tabla).
AUDITO$IA
Administracin Bsica de Oracle 11g.
&4'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS AUDITABLES.
ALTER DATABASE
ALTER SYSTEM
AUDIT SYSTEM
CREATE DATABASE LINK
CREATE PUBLIC DATABASE LINK
DROP PUBLIC DATABASE LINK
CREATE PROCEDURE
CREATE ANY PROCEDURE
ALTER ANY PROCEDURE
DROP ANY PROCEDURE
EXECUTE ANY PROCEDURE
CREATE PROFILE
ALTER PROFILE
DROP PROFILE
CREATE ROLE
ALTER ANY ROLE
DROP ANY ROLE
CREATE ROLLBACK SEGMENT
ALTER ROLLBACK SEGMENT
DROP ROLLBACK SEGMENT
CREATE SESSION
ALTER SESSION
AUDITO$IA
Administracin Bsica de Oracle 11g.
&4+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PRIVILEGIOS AUDITABLES.
CREATE ANY TABLE / ANY INDEX
ALTER ANY TABLE / ANY INDEX
DELETE ANY TABLE
DROP ANY TABLE / ANY INDEX
INSERT ANY TABLE
UPDATE ANY TABLE
SELECT ANY TABLE
CREATE USER
ALTER USER
DROP USER
CREATE VIEW
CREATE ANY VIEW
DROP ANY VIEW
ANALYZE ANY
AUDIT ANY
COMMENT ANY TABLE
AUDITO$IA
Administracin Bsica de Oracle 11g.
&4,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE ESQUEMA.
Sintaxis:
AUDIT <clausula_objeto1, . clausula_objeton>/ALL
ON <esquema>.objeto_auditado/DEFAULT
BY SESSION/ACCESS
WHENEVER SUCESSFUL/NOT SUCCESSFUL;
P.ej. audit execute procedure by access;
La clusula ALL indica todas las opciones posibles sobre un tipo
de objeto concreto.
Mediante la clusula ON DEFAULT se establece por defecto las
opciones indicadas para todo objeto creado con posterioridad. Al
establecerlas permanecen aquellas definidas por defecto para
objetos creados previamente (pueden cambiarse indicando
explcitamente el objeto).
AUDITO$IA
Administracin Bsica de Oracle 11g.
&46
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE ESQUEMA.
Puede auditarse todas las sentencias SELECT y DML permitidas
por los privilegios de objetos.
No pueden auditarse procedimientos incluidos en paquetes,
aunque s procedimientos y funciones individuales y tambin
paquetes.
Si se habilita afecta a todos los usuarios de la bd.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&4.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE ESQUEMA. OPCIONES.
-Tablas.
-Alter / audit / comment / delete / grant / index / insert / lock / rename / select /
update / flashback (slo a consultas flashback)
-Vistas.
-Audit / comment / delete / grant / insert / lock / rename / select /update /
flashback (slo a consultas flashback)
-Secuencias.
-Alter / audit / grant / select
-Procedimientos (procedimientos, funciones y paquetes -pero no procedimientos individuales dentro de estos-).
-Audit / execute / grant / rename
-Vistas materializadas.
-Alter / audit / comment / delete / index / insert / lock / select /update
AUDITO$IA
Administracin Bsica de Oracle 11g.
&42
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE RED.
Permite registrar errores que ocurren durante la comunicacin en
red. Para configurar la auditora:
AUDIT NETWORK...
Ej. audit network by access;
El registro de auditora generado indica el tipo de autentificacin
y la direccin SqlNet del cliente, en caso de estar disponible, en
el campo COMMENT_TEXT del registro:
Authenticated by: <tipo>; Client Address: <direccin>
AUDITO$IA
Administracin Bsica de Oracle 11g.
&43
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA Y FLASHBACK.
Para usar las prestaciones flashback, la bd debe estar en modo
automtico de undo.
La vista FLASHBACK_TRANSACTION_QUERY muestra informacin
acerca de las transacciones realizadas en la bd. Si se han
modificado datos en una tabla, la vista muestra informacin
sobre los mismos y seala la sentencia precisa (campo
UNDO_SQL) que permite deshacerlos.
Flashback Version Query hace posible ver todos los cambios
producidos en una fila de una tabla en un periodo de tiempo
concreto. FVQ permite aadir una clusula VERSIONS a la
sentencia SELECT que indique un rango SCN o temporal en el
que se desea consultar las modificaciones. La sentencia tambin
puede devolver informacin sobre la transaccin responsable del
cambio (VERSIONS_XID).
AUDITO$IA
Administracin Bsica de Oracle 11g.
&14
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA Y FLASHBACK.
Para ejecutar flashback query es necesario el privilegio SELECT
sobre los objetos, adems bien el privilegio FLASHBACK sobre los
objetos, bien FLASHBACK ANY TABLE (permite ejecutarla sobre
cualquier tabla, vista o vista materializada en cualquier
esquema).
Puede recuperarse informacin a travs de distintas
pseudocolumnas :
VERSIONS_STARTTIME. Fecha de la primera versin de las filas devueltas por la
consulta.
VERSIONS_STARTSCN. Idem para SCN.
VERSIONS_ENDTIME. Fecha de la ltima versin de las filas devueltas por la
consulta.
VERSIONS_ENDSCN. Idem para SCN
VERSIONS_XID. Transaccin que gener la versin.
VERSIONS_OPERATION. Operacin que di lugar a la versin (I -insert-, U -update-
o D -delete-).
AUDITO$IA
Administracin Bsica de Oracle 11g.
&11
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA Y FLASHBACK.
Clausula FLASHBACK:
AS O1 pemite recuperar la version de las filas a un momento en
el tiempo o SCN particular.
VERSIONS permite recuperar mltiples versiones validades de
las filas entre dos SCN o momentos en el tiempo. MINVALUE y
MAXVALUE se refieren a los datos ms antiguo y ms reciente
respectivamente.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&1&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA Y RECUPERACION DE TABLAS.
FLASHBACK TABLE.
Es posible restaurar una tabla a un estado anterior a aquel donde
tuvieron lugar una serie de cambios mediante la sentencia
FLASHBACK TABLE.
Nota: Esta posibilidad ser analizada en relacion a los
mecanismos de copias de seguridad.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&1'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE GRANO FINO.
Para llevarla a cabo NO es preciso habilitar la auditoria bsica
(audit trail). Permite especificar polticas que definan las
condiciones a cumplir para que ocurra la auditora.
Permite monitorizar accesos a datos basndose en su contenido y
auditar sentencias SELECT y DML en tablas y vistas mediante la
creacin de una poltica de auditora al efecto.
Se usa el paquete DBMS_FGA y sus procedimientos asociados,
generndose apuntes en el audit trail de grano fino
(SYS.FGA_LOG$, accesible a travs de la vista
DBA_FGA_AUDIT_TRAIL). La vista DBA_COMMON_AUDIT_TRAIL
combina registros de auditora estndar y de aud. de grano fino.
Este tipo de auditora permite indicar columnas singulares,
relevantes, que precisan ser auditadas (por ejemplo: dni, ayudas
sociales, datos de salud, ...) -caso de no hacerlo se aplica a
todas las columnas-; as como establecer acciones a llevar a cabo
si se produce el acceso conforme a la poltica de auditora
implementada.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&1+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE GRANO FINO.
Para crear una poltica de auditora de grano fino debe tenerse el
privilegio de ejecucin, EXECUTE, sobre el paquete
SYS.DBMS_FGA.
En SYS.AUD$ se registra cualquier operacin DML (insert,
update, merge, delete) realizada en SYS.FGA_LOG$ por usuarios
distintos al SYS, incluso si no se ha configurado la auditora en
SYS.FGA_LOG$
Genera un registro por cada referencia de una tabla o vista
auditada en una sentencia SQL y la poltica de auditora est
asociada a la tabla para la que se crea.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&1,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA DE GRANO FINO.
Proporciona las siguientes funcionalidades:
-Usar polticas diferenciadas para INSERT, UPDATE, DELETE, y SELECT; y
poder tener varias de ellas asociadas a cada tabla.
-Activar la auditoria slo cuando es necesaria (por ejemplo, con
informacin crtica como el salario o datos de salud) y slo si es
referenciada una columna concreta.
-Establecer una condicin de chequeo de tal forma que si se cumple se
genera la auditora.
-Registrar la sentencia SQL que provoca la auditora y las variables
asociadas (no BLOB, CLOB, objeto o tipo definido por usuario)
-Proporcionar un manejador de eventos (cuando se audita...).
AUDITO$IA
Administracin Bsica de Oracle 11g.
&16
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PAQUETE DBMS_FGA.
PROCEDIMIENTO ADD_POLICY.
Procedimiento ADD_POLICY.
Permite crear una poltica de auditora (hasta un mximo de 256
sobre una tabla o vista). La definicin de poltica creada se guarda en
SYS.FGA$. No es posible modificarla, slo borrarla y recrearla.
DBMS_FGA.ADD_POLICY(
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2,
audit_condition VARCHAR2,
audit_column VARCHAR2,
handler_schema VARCHAR2,
handler_module VARCHAR2,
enable BOOLEAN,
statement_types VARCHAR2,
audit_trail BINARY_INTEGER IN DEFAULT,
audit_column_opts BINARY_INTEGER IN DEFAULT);
AUDITO$IA
Administracin Bsica de Oracle 11g.
&1.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PAQUETE DBMS_FGA.
PROCEDIMIENTO ADD_POLICY.
El parmetro audit_trail de este paquete permite indicar el formato (XML,
XML+EXTENDED -escribe a SO- o DB, DB_EXTENDED -escribe a BD-.
Con XML+EXTENDED y DB+EXTENDED se permite la captura de datos).
AUDITO$IA
Administracin Bsica de Oracle 11g.
&12
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PAQUETE DBMS_FGA.
PROCEDIMIENTO ADD_POLICY.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&13
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
En el ejemplo se auditan las sentencias INSERT, UPDATE, DELETE, y
SELECT en la tabla hr.emp, controlando cualquier acceso a la columna
salary de empleados pertenecientes al departamento sales:
BEGIN
DBMS_FGA.ADD_POLICY(
object_schema => 'hr',
object_name => 'emp',
policy_name => 'chk_hr_emp',
audit_condition => 'dept = ''SALES'' ',
audit_column => 'salary'
statement_types => 'insert,update,delete,select');
END;
/
AUDITO$IA
PAQUETE DBMS_FGA.
PROCEDIMIENTO ADD_POLICY.
Administracin Bsica de Oracle 11g.
&&4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Cualquiera de las sentencias siguientes genera un registro:
SELECT count(*) FROM hr.emp WHERE dept = 'SALES' and salary > 10000000;
SELECT salary FROM hr.emp WHERE dept = 'SALES';
DELETE from hr.emp where salary >1000000;
AUDITO$IA
PAQUETE DBMS_FGA.
PROCEDIMIENTO ADD_POLICY.
Administracin Bsica de Oracle 11g.
&&1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PAQUETE DBMS_FGA.
PROCEDIMIENTO ADD_POLICY.
Ejemplo.
DBMS_FGA.ADD_POLICY(object_schema => 'scott', object_name=>'emp',
policy_name => 'mypolicy1', audit_condition => 'sal < 100', audit_column
=>'comm, credit_card, expirn_date', handler_schema => NULL,
handler_module => NULL, enable => TRUE, statement_types=> 'INSERT,
UPDATE', audit_trail => DBMS_FGA.DB+DBMS_FGA.EXTENDED,
audit_column_opts => DBMS_FGA.ALL_COLUMNS);
Las polticas definidas pueden consultarse en DBA_AUDIT_POLICIES.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&&&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PAQUETE DBMS_FGA.
PROCEDIMIENTO DISABLE_POLICY.
Procedimiento DISABLE_POLICY.
Deshabilita una poltica de auditora.
DBMS_FGA.DISABLE_POLICY(
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2 );
AUDITO$IA
Administracin Bsica de Oracle 11g.
&&'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PAQUETE DBMS_FGA.
PROCEDIMIENTO DISABLE_POLICY.
Ejemplo:
DBMS_FGA.DISABLE_POLICY(
object_schema => 'HR',
object_name => 'EMP',
policy_name => 'chk_hr_emploee');
AUDITO$IA
Administracin Bsica de Oracle 11g.
&&+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PAQUETE DBMS_FGA.
PROCEDIMIENTO ENABLE_POLICY.
Procedimiento ENABLE_POLICY.
Habilita una poltica de auditora.
DBMS_FGA.ENABLE_POLICY(
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2
enable BOOLEAN);
AUDITO$IA
Administracin Bsica de Oracle 11g.
&&,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PAQUETE DBMS_FGA.
PROCEDIMIENTO DROP_POLICY.
Procedimiento DROP_POLICY.
Borra una poltica de auditora.
DBMS_FGA.DROP_POLICY(
object_schema VARCHAR2,
object_name VARCHAR2,
policy_name VARCHAR2);
AUDITO$IA
Administracin Bsica de Oracle 11g.
&&6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DESACTIVACIN.
SENTENCIA NOAUDIT.
Para desactivar la auditora de una sentencia es necesario poseer
el privilegio de sistema AUDIT SYSTEM.
Para detener la auditora sobre un objeto, debe pertenecer al
esquema o tener el privilegio AUDIT ANY.
La sintaxis de NOAUDIT es igual a la de AUDIT (para cada
sentencia de auditora es necesaria una sentencia NOAUDIT que
la deshabilite).
AUDITO$IA
Administracin Bsica de Oracle 11g.
&&.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DESACTIVACIN.
SENTENCIA NOAUDIT.
Sintaxis:
NOAUDIT <sentencia1, . sentencian>/ALL
BY <usuario1, . usuarion>
WHENEVER SUCESSFUL/NOT SUCCESSFUL;
NOAUDIT <priv_sistema1, . priv_sisteman>
/ALL PRIVILEGES
BY <usuario1, . usuarion>
WHENEVER SUCESSFUL/NOT SUCCESSFUL;
NOAUDIT <clausula_objeto1, . clausula_objeton>/ALL
ON <esquema>.objeto_auditado/DEFAULT
WHENEVER SUCESSFUL/NOT SUCCESSFUL;
NOAUDIT NETWORK;
AUDITO$IA
Administracin Bsica de Oracle 11g.
&&2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DESACTIVACIN
DE LA AUDITORA.
Mediante la sentencia NOAUDIT slo se desactivan opciones de
auditora bsica. Para deshabilitar la auditora bsica debe
modificarse el parmetro de inicializacin AUDIT_TRAIL.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&&3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CONTROL DEL AUDIT TRAIL.
Si el audit trail se llena de forma que no pueden insertarse ms
registros, las sentencias auditadas no pueden ejecutarse
correctamente hasta que se vaca, y se generan errores (por
ejemplo, si se est auditando CREATE SESSION no se podrn
conectar usuarios a la bd).
El tamao mximo de SYS.AUD$ depende de los parmetros de
almacenamiento, default storage, del espacio SYSTEM. Pueden
modificarse los parmetros para SYS.AUD$.
El tamao del audit trail puede controlarse:
- Activando y desactivando la auditora.
- Seleccionando de forma cuidadosa las opciones de
auditora activas.
- Controlando la posibilidad de auditar. No debe otorgarse el
privilegio AUDIT ANY
AUDITO$IA
Administracin Bsica de Oracle 11g.
&'4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
REUBICACIN DEL AUDIT TRAIL.
Por defecto SYS.AUD$ y SYS.FGA_LOG$ residen en SYSTEM pero
pueden trasladarse a otro esp. de almacenamiento (SYSAUX ...).
1-. Conectarse a SQLPlus como administrador con privilegio
EXECUTE sobre el paquete DBMS_AUDIT_MGMT
2.- Comprobar el espacio de almacenamiento donde se quiere
trasladar el audit trail
3.- Ejecutar el procedimiento
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION indicando
el espacio de almacenamiento de destino. Por ejemplo:
BEGIN
DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
AUDIT_TRAIL_TYPE =>
DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,
AUDIT_TRAIL_LOCATION_VALUE => 'AUD_AUX');
END;
/
AUDITO$IA
Administracin Bsica de Oracle 11g.
&'1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
REUBICACIN DEL AUDIT TRAIL.
Indicando AUDIT_TRAIL_TYPE el tipo de audit trail con las
siguientes posibilidades:
- DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD: tabla AUD$
de auditora estndar
- DBMS_AUDIT_MGMT.AUDIT_TRAIL_FGA_STD: tabla
FGA_LOG$ de auditora de grano fino.
- DBMS_AUDIT_MGMT.AUDIT_TRAIL_DB_STD: tablas para
ambos tipos de auditora
Y AUDIT_TRAIL_LOCATION_VALUE el espacio de almacenamiento
de destino (en el ejemplo AUD_AUX).
El paquete DBMS_AUDIT_MGMT permite gestionar los registros
de auditora y realizar operaciones como eliminacin de
registros, borrado peridico de registros,
AUDITO$IA
Administracin Bsica de Oracle 11g.
&'&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CONTROL DEL AUDIT TRAIL.
La gestin del audit trail, el nico objeto de SYS directamente
modificable, es similar a la de otra tabla; pueden borrarse
registros con la sentencia DELETE:
DELETE FROM SYS.AUD$;
DELETE FROM SYS.AUD$ WHERE OBJ$NAME=
<nombre_objeto>;
Slo el usuario SYS, un usuario al que se haya concedido el
privilegio DELETE sobre SYS.AUD$, o un usuario con el privilegio
DELETE ANY TABLE pueden efectuar el borrado.
La informacin del audit trail puede archivarse copindola a
una tabla (INSERT INTO <tabla> SELECT ... FROM SYS.AUD$) o
ser exportada.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&''
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
CONTROL DEL AUDIT TRAIL.
Despus del borrado de registros, las extensiones adquiridas
para esta tabla permanecen. Este espacio puede reducirse:
-Copiar el audit trail a otra tabla o exportarlo
-Conectarse como usuario administrador y truncar
SYS.AUD$ (sentencia TRUNCATE).
-Cargar los datos anteriormente salvados que interese
mantener accesibles.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&'+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PROTECCIN DEL AUDIT TRAIL.
Debe protegerse de borrados no autorizados:
-Otorgar el privilegio DELETE ANY TABLE solo a usuarios
administradores.
-Auditar cualquier cambio que se realice en el audit trail
mediante la sentencia
AUDIT SELECT, INSERT, UPDATE, DELETE ON SYS.AUD$ BY ACCESS;
-Los registros de auditora generados podran borrarse por algn
usuario conectado con privilegios de administrador, por tanto, el
parmetro O7_DICTIONARY_ACCESIBILITY debe tener el valor
FALSE (valor por defecto) con lo que slo usuarios con el
privilegio SYSDBA pueden realizar operaciones DML en datos de
auditora.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&',
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA. RECOMENDACIONES.
Es necesario seguir una serie de consejos a la hora de auditar la
actividad de la base de datos:
-Disear una estrategia de auditora centrada en actividades relevantes
de cara a la seguridad. Por ejemplo, no es aconsejable auditar todas las
tablas de la BD pero s puede serlo auditar columnas con datos sensibles
como sueldo, estado civil...
-Limitar el numero de acciones auditadas y el tiempo durante el que se
har. As disminuye el impacto de la auditora sobre las sentencias
supervisadas y se limita el tamao del audit trail (qu debo o quiero
auditar?).
-Evaluar el propsito y planear una estrategia (para qu y por qu
audito?, qu actividad maliciosa he detectado?).
-Si se audita debido a la sospecha de alguna accin maliciosa; debe
comenzarse por auditar acciones de tipo general para, una vez analizada
la informacin, pasar a auditar acciones mas concretas.
-Archivar y espurgar peridicamente el audit trail.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&'6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA.
RECOMENDACIONES.
-Proteger el audit trail, de forma que la informacin de auditora no
pueda ser aadida, modificada o borrada sin ser registrada la operacin.
-Controlar de forma estricta quien tiene derecho a auditar.
-En caso de que se desee recoger informacin histrica sobre
determinadas operaciones debe auditarse slo aquellas acciones que sean
pertinentes; y preocuparse de guardar los registros de auditora de
inters y eliminar peridicamente del audit trail esta informacin.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&'.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA. VISTAS.
AUDIT_ACTIONS. Descripciones para los cdigos de tipos de accin.
ALL_DE1_AUDIT_OPTS. Opciones por defecto de auditora de objetos
que sern aplicadas al crearlos.
DBA_AUDIT_E;ISTS. Registros producidos por AUDIT NOT EXISTS.
DBA_AUDIT_OB2ECT. Registros para todos los objetos en el sistema.
DBA_AUDIT_SESSION. Registros relativos a conexiones y
desconexiones.
DBA_AUDIT_STATEMENT. Registros para las sentencias GRANT,
REVOKE, AUDIT, NOAUDIT, y ALTER SYSTEM.
DBA_AUDIT_TRAIL. Registros de audit trail.
DBA_OB2_AUDIT_OPTS. Opciones de auditora para todos los
objetos.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&'2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
AUDITORA. VISTAS.
DBA_COMMON_AUDIT_TRAIL. Incluye registros de auditora bsica
y de grano fino, as como el contenido de V$XML_AUDIT_TRAIL
DBA_1GA_AUDIT_TRAIL. Registros de auditora grano fino.
DBA_AUDIT_POLICIES. Polticas de auditora de grano fino en el
sistema.
DBA_PRIV_AUDIT_OPTS. Privilegios de sistema auditados.
DBA_STMT_AUDIT_OPTS. Opciones de auditora por sentencia.
1LASBAC:_TRANSACTION_4UER( Informacin sobre
transacciones y operaciones realizadas.
STMT_AUDIT_OPTION_MAP. Informacin cdigos de auditora.
AUDITO$IA
Administracin Bsica de Oracle 11g.
&'3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA 14.
COPIAS DE SE;U$IDAD =
$ECUPE$ACI<.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&+4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TEMA 10.
COPIAS DE SEGURIDAD.
MODOS DE OPERACION DE LA BD.
COPIAS DE SEGURIDAD FISICAS Y LOGICAS.
OPTIMAL FLEXIBLE ARCHITECTURE. O.F.A. Y UNIX.
COPIA FISICA. SISTEMAS DE FICHEROS. TAR Y RMAN.
RECUPERACION DE TABLAS. FLASHBACK TABLE, RECYCLE
BIN, PURGE, FLASHBACK TO BEFORE DROP.
DATA PUMP. ARQUITECTURA. EJECUCION. INFORMACION.
FICHEROS.
DATA PUMP EXPORT Y DATA PUMP IMPORT.
SQL*LOADER.
VISTAS.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&+1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODOS DE OPERACION DE LA BD.
Existen dos modos de operacin de la bd:
M*d* OA$C#I@E7O;.
El archivado de los redo log est deshabilitado. Cuando un
grupo de redo pasa a estar inactivo tras un log switch, est
disponible para ser nuevamente usado por el LGWR.
Este modo protege a la bd de fallos en la instancia pero no de
fallos en los soportes (media failure). Slo los cambios
recientes en la bd, almacenados en el redo en lnea pueden
recuperarse. Si ocurre un fallo en disco, la bd slo puede
recuperarse hasta el momento en que se realiz la copia ms
reciente.
Para la recuperacin slo pueden emplearse copias completas y
coherentes realizadas con la bd cerrada consistentemente.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&+&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
MODOS DE OPERACION DE LA BD.
M*d* A$C#I@E7O;.
El archivado de los redo log est habilitado. Un grupo de
redo no puede reutilizarse por LGWR hasta ser archivado tras el
log switch.
Se garantiza que todas las transacciones validadas pueden
recuperarse en caso de fallo en el sistema o disco. Adems
pueden emplearse copias realizadas con la bd abierta y en uso
normal.
*ta5 durante este tema se asume que la base de datos est en
modo noarchivelog.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&+'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
COPIAS DE SEGURIDAD.
Pueden distinguirse dos tipos de copias:
Copias de seguridad 6-sicas. Se realiza la copia de los ficheros
que constituyen la base de datos. Se distinguen copias de
seguridad en lnea (en caliente) y fuera de lnea (en frio).
Se pueden hacer manualmente (comando tar de s.o.) o
mediante la utilidad RMAN (recovery manager) de Oracle.
Copias de seguridad lgicas. Implican la lectura de un conjunto
de registros de base de datos y su escritura en un fichero
especial.
Se emplean utilidades propias de la base de datos:
export/import -obsoletas- y data pump export/import
-recomendadas-.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&++
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
COPIAS DE SEGURIDAD.
Las copias de seguridad lgicas se emplean para:
-Transferir objetos de datos entre bases de datos Oracle
(independientemente de la plataformas en que residan).
-Proporcionar copia de seguridad lgica para objetos de la base
de datos, un espacio de almacenamiento o la base de datos al
completo.
-Migracin entre versiones de base de datos (Peligro!).
Una buena estrategia de copias de seguridad incluir ambos tipos
de copias, fsicas y lgicas, pues son complementarias.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&+,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
COPIA ?ISICA
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&+6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
COPIA FISICA.
Realizar una copia fsica implica copiar los sistemas de ficheros
asociados a la base de datos y aquellos donde se ha instalado la
misma.
La copia de los ficheros de base de datos y de administracin se
realiza de forma diaria.
La copia del software de base de datos se realiza con
frecuencia semanal, por ejemplo, dado su menor nivel de
actualizacin.
Dado que se asume que la base de datos est en modo
noarchivelog, slo es posible realizar copias en frio de la
misma. Por tanto, previamente a la copia fsica se efectuar una
parada de la base de datos, de forma que su contenido sea
ntegro y coherente.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&+.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
OPTIMAL FLEXIBLE ARCHITECTURE (O.F.A.).
Oracle recomienda usar la Optimal Flexible Architecture
(O.F.A.) en las instalaciones de base de datos. O.F.A.
permite organizar el sw de BD y la coexistencia de
mltiples BD.
O.F.A. tiene los siguientes beneficios:
-Organiza grandes cantidades de software y datos en disco
evitando cuellos de botella y bajas productividades.
-Facilita las tareas administrativas rutinarias.
-Permite la coexistencia de mltiples BD, aun con diferentes
versiones.
-Gestiona de forma adecuada el crecimiento, actualizacin y
administracin de la base de datos.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&+2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
O.F.A. EN ENTORNOS UNIX.
5ORACLE_BASE
Directorio de alto nivel en la instalacin
/u01/app/oracle
5ORACLE_6OME
Directorio de instalacin sw
/u01/app/oracle/product/<version_bd>/<tipo_instalacion>
5ORACLE_BASE<ad)in<=no)+r%_+d><ar&?
Ficheros archivados de redo log
5ORACLE_BASE<ad)in<=no)+r%_+d><ad')p
Ficheros de auditora. El destino de auditora viene indicado
por AUDIT_FILE_DEST.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&+3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
O.F.A. EN ENTORNOS UNIX.
5ORACLE_BASE<ad)in<=no)+r%_+d><&r%at%
Contiene el fichero de data pump dp.log
5ORACLE_BASE<ad)in<=no)+r%_+d><dpd')p
Directorio por defecto para operaciones data pump.
5ORACLE_BASE<ad)in<=no)+r%_+d><%@p
Contiene ficheros de exportacin
5ORACLE_BASE<ad)in<=no)+r%_+d><"oA+ooB
Ficheros que registran el estado e historia de la BD
5ORACLE_BASE<ad)in<=no)+r%_+d><p*i"%
Ficheros de parmetros de la instancia
5ORACLE_BASE<ad)in<=no)+r%_+d><s&ripts
Scripts SQL ad hoc
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&,4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
En Oracle 11g, los directorios del Automatic Diagnostic
Repository (ADR) reemplazan a los antiguos directorios de traza
bdump, cdump y udump.
Los directorios del ADR se encuentran en:
$ORACLE_BASE/diag/rdbms/<nombre_BD>/<nombre_instancia>
Las trazas se localizan en:
- Trazas de procesos foreground... ADR_HOME/trace/
- Trazas de procesos background...ADR_HOME/trace/
- Ficheros de alertas ... ADR_HOME/alert/
- Core_dump ... ADR_HOME/incident/In/
- Incident Dumps ... ADR_HOME/incident/In/
COPIA = $ECUPE$ACI<
O.F.A. EN ENTORNOS UNIX. TRAZAS.
Administracin Bsica de Oracle 11g.
&,1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
COPIA FISICA. SISTEMAS DE FICHEROS.
Los sistemas de ficheros a copiar diariamente son:
-Sistemas de ficheros de administracin de la bd, bajo
$ORACLE_BASE/admin, y ficheros del ADR. Incluir la copia del
fichero de parmetros de inicializacin init.ora y del fichero de
parmetros spfile en su caso.
-Sistemas de ficheros asociados a la base de datos que
contendrn los ficheros de datos (.dbf), de control (.ctl) y de
redo log (.log) de la base de datos (aquellos de la forma, por
ejemplo, /uxx/oradata/<nombre_bd>).
-Sistemas de ficheros asociados a la exportacin de base de
datos.
-Sistema de ficheros /etc
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&,&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
COPIA FISICA. SISTEMAS DE FICHEROS.
Los sistemas de ficheros a copiar semanalmente son:
-Sistemas de ficheros que integran la estructura O.F.A. Bajo
$ORACLE_BASE (/u01/app/oracle).
-Todos los sistemas de ficheros que integran la copia diaria de la
base de datos.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&,'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
COPIA FISICA: TAR (UNIX) Y RMAN.
La copia se realizar tras:
-Haber hecho la copia lgica, exportacin, correspondiente de la
base de datos.
-Haber cerrado cualquier comunicacin con la base de datos
(proceso listener).
-Cerrar la base de datos (shutdown) de un modo consistente.
El proceso debe ser automatizado y el cese de actividad de
la base de datos afectar lo menos posible al servicio.
Puede usarse la sentencia TAR de sistema operativo
(copia los sistemas de ficheros indicados a un dispositivo
fsico) o la 0tilidad RMAN (permite realizar copias y
recuperaciones en la bd y automatiza la administracin de
las mismas).
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&,+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
?7AS#BACE
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&,,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RECUPERACION DE TABLAS.
FLASHBACK TABLE.
Es posible restaurar una tabla a un estado anterior a aquel donde
tuvieron lugar cambios, usando el espacio de undo, mediante la
sentencia FLASHBACK TABLE. Se proporciona as una forma
rpida de recuperar una tabla modificada o borrada y se evita
recurrir a mtodos complejos.
Caractersticas:
-La operacin se realiza en lnea.
-Se mantienen automticamente todos los atributos de la tabla
(ndices, disparadores, constraints) necesarios.
-Se mantienen las restricciones de integridad.
-No se pierden los datos originales, pudiendo volver al principio
(no puede hacerse un rollback de la sentencia, pero puede
realizarse una nueva recuperacin a un momento justo anterior
al actual -es conveniente anotar previamente el SCN actual-).
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&,6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RECUPERACION DE TABLAS.
FLASHBACK TABLE.
Durante la recuperacin se adquiere un bloqueo DML que impide
cualquier operacin sobre la tabla. Esta se realiza en una
transaccin nica, independientemente del nmero de tablas que
comprenda la recuperacin.
Requisitos:
-Debe poseerse el privilegio FLASHBACK ANY TABLE o tener el
privilegio FLASHBACK sobre la tabla.
-Deben poseerse los privilegios SELECT, INSERT, DELETE, y
ALTER en la tabla.
-La informacin de undo debe ser suficiente como para
recuperar hasta el punto indicado en la operacin.
-Debe habilitarse en la tabla la caracterstica row movement
mediante la sentencia:
ALTER TABLE <nombre_tabla> ENABLE ROW MOVEMENT;
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&,.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RECUPERACION DE TABLAS.
FLASHBACK TABLE.
Restricciones:
-Esta operacin no puede realizarse en tablas que forman parte
de un cluster, vistas materializadas, tablas Advanced Queuing
(AQ), tablas estticas de diccionario, tablas de sistema, tablas
remotas, object tablas, tablas anidadas o particiones
individuales de tablas.
-Las operaciones DDL que cambian la estructura de una tabla no
permiten usar esta utilidad (actualizacin, moving o truncado
de la tablas, adicin de constraint, adicin de una tabla a un
cluster, modificacin o borrado de una columna, adicin,
borrado, coalescencia, divisin, modificacin o truncado de una
particin -salvo la adicin de una particin range-).
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&,2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RECUPERACION DE TABLAS.
FLASHBACK DROP.
Al borrar una tabla, la bd no borra inmediatamente el espacio
ocupado por la misma. La bd renombra la tabla y la coloca junto
con sus objetos asociados (constraints, tablas anidadas y
semejantes) en lo que denomina recycle bin, de forma que si
fue borrada por error es posible recuperarla usando la sentencia
FLASHBACK TABLE (caracterstica flashback drop).
El r%&-&"% +in! es una tabla de diccionario con informacin
sobre los objetos borrados y sus asociados, los cuales no se
eliminan hasta indicarlo explicitamente o hasta haber
necesidades de espacio (se eliminan en orden first-in first-out -
FIFO-). Cada usuario, a menos que tenga privilegio SYSDBA, slo
puede acceder a sus propios objetos en esta tabla:
SELECT * FROM RECYCLEBIN;
El espacio libre en un espacio de almacenamiento puede
consultarse en la vista DBA_FREE_SPACE.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&,3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RECUPERACION DE TABLAS. RECYCLE BIN.
Al borrar un espacio de almacenamiento incluyendo su contenido,
los objetos en el mismo no se almacenan en el recycle bin y la
BD elimina cualquier referencia a ellos. Igualmente sucede
cuando se borra un usuario, cluster o type.
Este modo de funcionamiento, habilitado por defecto, puede
habilitarse o deshabilitarse mediante el parmetro de
inicializacin RECYCLEBIN, o, dinmicamente, mediante las
sentencias:
ALTER SESSION/SYSTEM SET recyclebin = OFF;
ALTER SESSION/SYSTEM SET recyclebin = ON;
Deshabilitar recycle bin no afecta a los objetos que ya se hallan
en el mismo.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&64
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Tambin se obvia en ciertas ocasiones el recycle bin:
-En la sentencia DROP TABLE ... PURGE (ej. SQL> drop table
emp purge;).
-En la sentencia DROP TABLESPACE ... INCLUDING CONTENTS.
Cada espacio de almacenamiento tiene su propio recycle bin
por lo que borrar el espacio implica eliminar este y cualquier
objeto en el mismo.
-Al emplear DROP USER...CASCADE. Se elimina el usuario y
todos sus objetos (incluidos aquellos en el recycle bin).
COPIA = $ECUPE$ACI<
RECUPERACION DE TABLAS. RECYCLE BIN.
Administracin Bsica de Oracle 11g.
&61
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RECUPERACION DE TABLAS. RECYCLE BIN.
A los objetos almacenados en el recycle bin se les asigna un
nombre generado por el sistema de la forma
BIN$unique_id$version , donde :
- unique_id es un identificador nico para el objeto compuesto
por 26 caracteres, y
- version es un nmero de version asignado por la bd.
Es posible obtener informacin mediante las vistas:
-USER_RECYCLEBIN. Permite a un usuario ver los objetos de su
propiedad que han sido borrados, tiene un sinnimo: RECYCLEBIN.
-DBA_RECYCLEBIN. Da informacin a los administradores sobre todos los
objetos borrados.
O mediante la sentencia SQL*Plus SHOW RECYCLEBIN.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&6&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RECUPERACION DE TABLAS. PURGE.
Mediante la sentencia PURGE puede borrarse explicitamente el
contenido del recycle bin y liberar el espacio asociado (son
necesarios los mismos privilegios requeridos para borrar el
elemento):
PURGE TABLE/INDEX <nombre>;
*ta5 Al eliminar una tabla puede usarse el nombre asignado en el
recycle bin o su nombre original.
PURGE TABLESPACE <nombre_tbsp> [USER
<nombre_usuario>];
*ta5 Se eliminan todos los objetos de nombre_usuario para el
esp.almacenamiento nombre_tbsp.
PURGE RECYCLEBIN/DBA_RECYCLEBIN;
*ta5 Si se tiene el privilegio SYSDBA puede eliminarse todo el
contenido del recycle bin indicando DBA_RECYCLEBIN.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&6'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RECUPERACION DE TABLAS.
FLASHBACK TO BEFORE DROP.
La sentencia FLASHBACK TABLE... TO BEFORE DROP permite
recuperar objetos del recycle bin. Su uso requiere tener los
mismos privilegios que se necesitan para borrarla:
FLASHBACK TABLE <nombre_tabla> TO BEFORE DROP
RENAME TO <nombre_tabla>;
Puede indicarse bien el nombre de la tabla en el recycle bin,
bien su nombre original. La clausula RENAME TO permite
renombrar la tabla.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&6+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RECUPERACION DE TABLAS.
FLASHBACK TO BEFORE DROP.
Usar el nombre del recycle bin es til si se ha borrado la tabla varias
veces. En este caso puede consultarse el recycle bin y hacer flashback
con el nombre correspondiente a la versin que quiera recuperarse:
SQL> SELECT object_name, original_name, createtime FROM
recyclebin;
OBJECT_NAME ORIGINAL_NAME
CREATETIME
----------------------------------------------------------------------
BIN$yrMKlZaLMhfgNAgAIMenRA==$0 INT2_ADMIN_EMP
2006-02-05:21:05:52
BIN$yrMKlZaVMhfgNAgAIMenRA==$0 INT2_ADMIN_EMP
2006-02-05:21:25:13
BIN$yrMKlZaQMhfgNAgAIMenRA==$0 INT2_ADMIN_EMP
2006-02-05:22:05:53
SQL> FLASHBACK TABLE BIN$yrMKlZaVMhfgNAgAIMenRA==$0 TO
BEFORE DROP;
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&6,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RECUPERACION DE TABLAS.
FLASHBACK TO BEFORE DROP.
Los objetos que dependen de las tablas recuperadas, como los ndices, no
recuperan su nombre original sino que mantienen el generado por el
recycle bin. Estos objetos deben renombrarse de forma manual si bien
habra que averiguar cules son antes de restaurar la tabla. Por ejemplo:
1. Tras borrar la tabla HR.JOB_HISTORY, conectado como HR, y antes de
restaurarla se ejecuta la consulta:
SQL> SELECT OBJECT_NAME, ORIGINAL_NAME, TYPE FROM RECYCLEBIN;
OBJECT_NAME ORIGINAL_NAME TYPE
----------------------------------------------------------------------------------------
BIN$DBo9UChtZSbgQFeMiAdCcQ==$0 JHIST_JOB_IX INDEX
BIN$DBo9UChuZSbgQFeMiAdCcQ==$0 JHIST_EMPLOYEE_IX INDEX
BIN$DBo9UChvZSbgQFeMiAdCcQ==$0 JHIST_DEPARTMENT_IX INDEX
BIN$DBo9UChwZSbgQFeMiAdCcQ==$0 JHIST_EMP_ID_ST_DATE_PK INDEX
BIN$DBo9UChxZSbgQFeMiAdCcQ==$0 JOB_HISTORY TABLE
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&66
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
RECUPERACION DE TABLAS.
FLASHBACK TO BEFORE DROP.
2. Restaurar la tabla:
SQL> FLASHBACK TABLE JOB_HISTORY TO BEFORE DROP;
3. Comprobar el nombre de los ndices asociados a la tabla
HR.JOB_HISTORY:
SQL> SELECT INDEX_NAME FROM USER_INDEXES WHERE TABLE_NAME =
'JOB_HISTORY';
INDEX_NAME
---------------------------------------------
BIN$DBo9UChwZSbgQFeMiAdCcQ==$0
BIN$DBo9UChtZSbgQFeMiAdCcQ==$0
...
4. Restaurar el nombre de los ndices:
SQL > ALTER INDEX "BIN$DBo9UChtZSbgQFeMiAdCcQ==$0" RENAME TO
JHIST_JOB_IX; (Ojo!, el nombre original debe ir entre dobles comillas)
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&6.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
COPIA 7O;ICA5 DATAPUMP
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&62
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
COPIA LGICA.
DATA PUMP EXPORT/IMPORT.
Son utilidades integradas en la bd que permiten cargas y descargas
de informacin a gran velocidad. Todo el proceso de
exportacin/importacin se lleva a cabo en el servidor.
No son compatibles con el export/import originales.
Consta de los siguientes componentes:
-Clientes expdp e impdp. Permiten llamar a las utilidades Data Pump
Export y Data Pump Import. Usan los procedimientos proporcionados
por el paquete DBMS_DATAPUMP.
-Paquete DBMS_DATAPUMP. Conocido como Data Pump API, permite
crear y monitorizar los trabajos implicados.
-Paquete DBMS_METADATA. Conocido como Metadata API,
proporciona la definicin de los objetos de la bd a Data Pump.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&63
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Se recomienda emplear Data Pump export/import y no usar las
antiguas utilidades export/import.
No obstante, por compatibilidad, estas son necesarias en
determinados casos como:
-Al importar ficheros creados con la utilidad export.
-Si se desea exportar ficheros que sern importados con la
utilidad import. Por ejemplo, si se van a transferir datos a
bases con una versin anterior a la 10g.
Data Pump proporciona un m*d* llamad* #"%Aa&-$ en el cual
puede usarse parmetros de export e import al realizar
operaciones de exportacin e importacin con Data Pump.
COPIA LGICA.
DATA PUMP EXPORT/IMPORT.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&.4
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ARQUITECTURA DATA PUMP.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&.1
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP. CARACTERSTICAS.
Algunas de las caractersticas de Data Pump son:
-La forma de acceso a los datos se decide automticamente (habitualmente
direct path, external cuando no es posible).
-La exportacin puede realizarse en paralelo y puede escribirse a mltiples
ficheros en diferentes discos (opciones PARALLEL y DUMPFILE).
-Puede reiniciarse un trabajo fallido donde se interrumpi.
-Permite filtrar metadatos con mltiples combinaciones (opciones INCLUDE y
EXCLUDE).
-Pueden filtrarse filas de datos durante la importacin.
-Permite estimar el espacio en disco necesario antes de realizar el trabajo
(opcin ESTIMATE_ONLY).
-Pueden hacerse exportaciones e importaciones remotas usando database
link.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&.&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
-Los trabajos pueden asignar recursos dinmicamente segn la carga de
trabajo.
-Puede indicarse explcitamente la versin de bd, de forma que slo los
objetos soportados se exportan.
-Durante la importacin, puede cambiarse los nombres de fichero, esquemas y
espacios de almacenamiento destino.
COPIA = $ECUPE$ACI<
DATA PUMP. CARACTERSTICAS.
Administracin Bsica de Oracle 11g.
&.'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP. EJECUCIN.
En cada exportacin o importacin se crea un proceso maestro que
controla la misma, incluyendo la comunicacin con los clientes, la
creacin y control del conjunto de procesos de trabajo necesarios y la
realizacin de las operaciones de conexin.
En la transferencia de datos y metadatos, se emplea un tabla
maestro, que se crea en el esquema del usuario que realiza la
exportacin/importacin y tiene el nombre del trabajo -job- que
realiza la operacin, para realizar el seguimiento del proceso:
-Durante la exportacin la tabla registra la localizacin de los objetos en el
conjunto de ficheros de descarga (dump file set). Al finalizar, el contenido de
la tabla se escribe a fichero.
-Durante la importacin la tabla maestro se carga desde el conjunto de
ficheros de descarga y se emplea para controlar la secuencia de operaciones
para localizacin de los ficheros a importar.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&.+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP. EJECUCIN.
Esta tabla maestro tambin se emplea para reiniciar un trabajo.
El destino final de la tabla maestro es diverso:
-Si el trabajo finaliza correctamente, la tabla se borra.
-Si el trabajo se para, usando la sentencia STOP_JOB, se retiene para poder
reiniciarlo.
-Si el trabajo se elimina, usando la sentencia KILL_JOB, la tabla se elimina y el
trabajo no puede reiniciar.
-Si un trabajo termina inesperadamente, se mantiene la tabla. Puede borrarse si no
hay intencin de reiniciar el trabajo.
-Si un trabajo para antes de que cualquier objeto de la BD sea copiado, la tabla se
borra.
El progreso de un trabajo y los errores producidos pueden registrarse
en un fichero de log. El estado del mismo, en tiempo real, puede
obtenerse con la sentencia STATUS en modo interactivo de D.Pump.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&.,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP. INFORMACIN.
Puede obtenerse informacin en las siguientes vistas:
-DBA_DATAPUMP_JOBS y USER_DATAPUMP_JOBS. Identifican trabajos Data
Pump activos.
-DBA_DATAPUMP_SESSIONS. Identifica sesiones de usuario asociadas a un
trabajo.
-V$SESSION_LONGOPS. Informacin sobre el progreso del trabajo indicando
una estimacin de la tasa de transferencia. Columnas relevantes son
USERNAME -propietario del trabajo-, OPNAME -nombre de trabajo-,
TARGET_DESC -operacin-, SOFAR -megabytes (MB) transferidos-,
TOTALWORK -nmero estimado de megabytes (MB)-, UNITS -MB- y
MESSAGE.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&.6
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP. FICHEROS.
Existen varios tipos de ficheros gestionados por Data Pump:
Ficheros de volcado (dump). Contienen datos y metadatos.
Durante una exportacin pueden indicarse al definir el trabajo as
como posteriormente (por ejemplo, pueden aadirse ficheros de
volcado con ADD_FILE en modo interactivo). Durante un importacin,
todos los ficheros de volcado deben especificarse al definir el trabajo.
Ficheros log. Contienen mensajes sobre la operacin realizada.
Ficheros SQL. Registran la salida de una operacin SQLFILE (parmetro
SQLFILE) consistente en el volcado de todas las sentencias DDL que se
hubieran ejecutado durante una importacin a un fichero.
Ficheros indicados mediante el parmetro DATA_FILES durante una
importacin transportable.
*ta5 Los ficheros de log y SQL pueden sobreescribirse si ya existen. Nunca
se sobreescriben ficheros de volcado si ya existen, se genera un error (ver no
obstante la opcin REUSE_DUMPFILES).
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&..
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP. LOCALIZACION DE FICHEROS.
Es necesario crear objetos tipo directorio (asocia un nombre a un
directorio o sistema de ficheros) por un usuario administrador o con el
privilegio CREATE ANY DIRECTORY. Al exportar/importar se indica
mediante el parmetro DIRECTORY.
SQL> CREATE DIRECTORY DPUMP_VOLCADO AS '/datapump/ficheros';
Por defecto se asigna el valor para DATA_PUMP_DIR:
SQL> CREATE DIRECTORY DATA_PUMP_DIR AS '/datapump/ficheros';
Tras la creacin de un directorio, su creador debe conceder el permiso
de lectura (READ) o escritura (WRITE) a otros usuarios.
SQL> GRANT READ, WRITE ON DIRECTORY <directorio> TO <usuario>;
*ta5 Implica tener acceso a travs de bd pero no el poder acceder a
travs de s.o.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&.2
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
El orden de precedencia usado para determinar la localizacin es:
1.- Objeto directorio formando parte de la especificacin de un
nombre de fichero (DUMPFILE=<localizacin>:<fichero>.dmp).
2.- Objeto directorio indicado en el parmetro DIRECTORY.
3.- Valor de la variable de entorno DATA_PUMP_DIR (definida en
el entorno del cliente):
SQL> CREATE DIRECTORY DUMP_FICHERO AS
'/DATAPUMP/FICHEROS';
# EXPORT DATA_PUMP_DIR=<VARIABLE_FICHERO_VOLCADO>
4.- Si es un usuario privilegiado se emplea el valor por defecto en
bd del directorio DATA_PUMP_DIR (se crea automticamente
en la creacin de la BD o al actualizar el diccionario de datos).
No confundir con la variable de entorno.
COPIA = $ECUPE$ACI<
DATA PUMP. LOCALIZACION DE FICHEROS.
Administracin Bsica de Oracle 11g.
&.3
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Para averiguar el valor asignado a la variable DATA_PUMP_DIR
puede usarse la sentencia:
SQL> SELECT directory_name, directory_path FROM dba_directories
WHERE directory_name=DATA_PUMP_DIR;
Si no se trata de un usuario privilegiado, debe haberse concedido
previamente acceso al directorio DATA_PUMP_DIR
COPIA = $ECUPE$ACI<
DATA PUMP. LOCALIZACION DE FICHEROS.
Administracin Bsica de Oracle 11g.
&24
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP EXPORT.
Se emplea la utilidad expdp, indicando las caractersticas de la
exportacin en la lnea de comandos o mediante un fichero de
parmetros. Los ficheros resultantes de una exportacin slo pueden
importarse con D.P. Import.
Cualquier usuario puede exportar objetos de su propiedad o su
esquema al completo.
Los usuarios no privilegiados deben tener permiso WRITE en el
objeto directorio y deben indicar ste en el parmetro DIRECTORY o
junto al nombre de fichero de volcado.
Modo en lnea: expdp HELP=y
Modo interactivo: expdp directory=<localizacin>
Modo fichero de parmetros: expdp PARFILE=<fichero_parametros>
*ta5 Si no se indica ningn otro parmetro se usan los valores por defecto en la
exportacin: expdat.dmp y export.log -ficheros-, exportacin a nivel de esquema...
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&21
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP EXPORT. MODOS.
Existen cinco modos de trabajar con Data Pump export:
Full export (parmetro FULL). Se exporta toda la bd. Es necesario el rol
DATAPUMP_EXP_FULL_DATABASE.
Esquema de usuario (parmetro SCHEMAS). Es el m*d* 1*r de6ect*.
Si no se posee rol DATAPUMP_EXP_FULL_DATABASE slo es posible
exportar el esquema propio. El esquema SYS no puede usarse como
esquema fuente para exportar. Referencias a travs de esquemas no se
exportan a menos que el esquema referenciado se incluya en la lista de
exportacin.
Tabla (parmetro TABLES). Pueden indicarse tablas en distintos
esquemas. Para exportar tablas no pertenecientes al propio esquema es
necesario el rol DATAPUMP_EXP_FULL_DATABASE. Las definiciones de
tipo para columnas no se exportan, tampoco las referencias a travs de
esquemas.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&2&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Tablespace (parmetro TABLESPACES). Debe tenerse el rol
DATAPUMP_EXP_FULL_DATABASE.
Transport Tablespace (parmetro TRANSPORT_TABLESPACES). Permite
exportar metadatos para tablas y objetos dependientes pertenecientes a
un conjunto de espacios de almacenamiento. Es necesario el rol
DATAPUMP_EXP_FULL_DATABASE.
Las exportaciones en este modo no pueden reiniciarse una vez
detenidas ni pueden tener un grado de paralelismo mayor a 1.
Tampoco se soportan columnas encriptadas.
No pueden exportarse transportable tablespaces e importarse a
una bd con una versin inferior. La BD destino debe estar al mismo o
superior nivel de versin que la BD origen.
COPIA = $ECUPE$ACI<
DATA PUMP EXPORT. MODOS.
Administracin Bsica de Oracle 11g.
&2'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP EXPORT. PARMETROS.
COMPRESSION =<ALL | DATA_ONLY | METADATA_ONL( | NONE>
Indica datos a comprimir antes de escribir al fich. de volcado (dump).
ALL y DATA_ONLY requieren que est habilitada la opcin Oracle
Advanced Compression (slo vlidos en Enterprise Edition de Oracle
11g.). Para usar al completo estas opciones el parmetro de
inicializacin COMPATIBLE debe tener un valor, al menos, de 11.0.0.
CONTENT =<ALL | DATA_ONLY | METADATA_ONLY>
Indica el contenido a exportar: datos, metadatos o ambos.
CONTENT=METADATA_ONLY es incompatible con los parmetros
TRANSPORT_TABLESPACES o QUERY.
DIRECTORY =<DATA_PUMP_DIR>
Localizacin para los ficheros de volcado y registro.
DUMPFILE = <directorio_objeto:>nombre_fichero
Fichero de volcado. Por defecto expdat.dmp
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&2+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ENCRYPTION
ENCRYPTION_MODE
ENCRYPTION_PASSWORD
ENCRYPTION_ALGORITHM
Parmetros relativos a operaciones de encriptacin.
P.ej. ENCRYPTION = <ALL | DATA_ONLY |
ENCRYPTED_COLUMNS_ONLY | METADATA_ONLY | NONE>
ESTIMATE = <BLOC:S | STATISTICS>
Mtodo de estimacin de espacio en disco necesario para cada tabla
(bytes). La estimacin se muestra en el fichero de log y en la salida
estndar.
ESTIMATE_ONLY =<N | Y>
Permite estimar el espacio consumido en una exportacin sin realizarla.
COPIA = $ECUPE$ACI<
DATA PUMP EXPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
&2,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
EXCLUDE = tipo_objeto <:clusula>, ...
Filtrar metadatos exportados indicando objetos y tipos de objetos
excluidos. Por defecto ninguno. Es excluyente con el parmetro
INCLUDE.
P. ej. expdp hr DIRECTORY=... DUMPFILE=hr_exclude.dmp
EXCLUDE=VIEW, PACKAGE, FUNCTION
FILESIZE=n [B -bytes- | K -kilobytes- | M - megabytes- | G -gigabytes-]
Tamao mximo para ficheros de exportacin (por defecto ilimitado).
FULL = <N | Y>
Realizar una exportacin de la bd al completo. En una exportacin
completa no se incluyen esquemas que contienen datos y metadatos
gestionados por Oracle como, p.ej., SYS, ORDSYS o MDSYS. Nunca
se exportan tampoco los permisos sobre objetos de SYS.
COPIA = $ECUPE$ACI<
DATA PUMP EXPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
&26
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
INCLUDE = tipo_objeto <:clusula>, ...
Filtrar metadatos exportados indicando objetos y tipos incluidos
(consultar las vistas DATABASE_EXPORT_OBJECTS,
SCHEMA_EXPORT_OBJECTS y TABLE_EXPORT_OBJECTS).
JOB_NAME
Especificar un nombre para el trabajo, job, de exportacin; coincide
tambien con la tabla maestro usada para controlar la exportacin.
Por defecto de las forma sys_export_<modo>_xx
LOGFILE = <directorio_objeto:>nombre_fichero
Fichero de registro, por defecto export.log
NOLOGFILE = <Y | N>
No crear fichero de registro.
COPIA = $ECUPE$ACI<
DATA PUMP EXPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
&2.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
PARALELL = n
Grado de paralelismo en la ejecucin (por defecto 1). Su nmero debe
ser menor o igual al nmero de ficheros de volcado indicados.
QUERY =<nombre_esquema.><nombre_tabla> | <clusula>
Permite seleccionar filas a exportar segn condiciones a cumplir. No
compatible con CONTENT=METADATA_ONLY, ESTIMATE_ONLY o
TRANSPORT_TABLESPACES.
REUSE_DUMPFILES = <Y | N>
Indica si debe o no sobreescribirse un fichero de volcado preexistente
(si ya existe el fichero da error a menos que se haga uso de esta
opcin).
SAMPLE=[[nombre_esquema.]nombre_tabla:]porcentaje
Especifica un % de filas a descargar de la BD, un subconjunto. P.ej.
SAMPLE="HR"."EMPLOYEES":50
COPIA = $ECUPE$ACI<
DATA PUMP EXPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
&22
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SCHEMAS =<lista de esquemas>
Permite indicar que se realizar una exportacin de esquemas, es el
modo por defecto. Por defecto referencia el esquema de usuario.
STATUS = nn
Frecuencia con que muestra el estado del trabajo (por defecto es cero y
no muestra informacin hasta acabar la exportacin de cada objeto).
TABLES = <nombre_esquema.><nombre_tabla>, ...
Indica exportacin en modo tabla (del propio esquema, por defecto).
TABLESPACES = <nombre_espacioalmac>, ...
Indica tbsp. a exportar en modo tablespace.
COPIA = $ECUPE$ACI<
DATA PUMP EXPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
&23
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TRANSPORT_FULL_CHECK =<N C Y>
Chequear o no las dependencias entre los objetos residentes en los
espacios de almacenamiento a transportar y aquellos situados
fuera del conjunto (slo en modo transport tablespace).
TRANSPORT_TABLESPACES = <nombre_espacioalmac>, ...
Realizar una exportacin en modo transport tablespace y espacios de
almacenamiento a los que se aplica. Este modo tiene unos
condicionantes como requerir el rol
DATAPUMP_EXP_FULL_DATABASE, un grado de paralelismo igual a
1, no poder reiniciarse sus trabajos, no soportar encriptacin de
columnas, no ser transportables los esp. de almacenamiento SYS y
SYSAUX, esp. de almac. a transportar en modo lectura...
TRANSPORTABLE = <ALWAYS | NEVER>
Permite indicar si la opcin transportable, exportacin de metadatos,
debe usarse al exportar una tabla (parmetro TABLES).
COPIA = $ECUPE$ACI<
DATA PUMP EXPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
&34
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
Tras iniciar un trabajo, puesto que se ejecuta en el servidor, es
posible interrumpir la sesin cliente y asociarse al trabajo
posteriormente. Tambin es posible modificar ciertos parmetros
de forma interactiva.
Para pasar a modo interactivo puede interrumpirse la conexin
actual con Ctrl+C -desde la terminal donde se ejecuta el trabajo- o
ejecutar expdp con el parmetro ATTACH -desde otra terminal-:
/home/...> expdp attach=<nombre_trabajo>
Los parmetros que pueden usarse en modo interactivo son:
ADD_FILE = <directorio:><nombre_fichero>, ... Permite aadir ficheros de
volcado.
CONTINUE_CLIENT. Salir de modo interactivo y entrar en modo registro.
COPIA = $ECUPE$ACI<
DATA PUMP EXPORT. MODO INTERACTIVO.
Administracin Bsica de Oracle 11g.
&31
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP EXPORT. MODO INTERACTIVO.
EXIT_CLIENT. Salir de sesin cliente de exportacin. El trabajo contina
ejecutndose en el servidor.
FILESIZE=nn. Indica el tamao por defecto para cualquier fichero de
volcado posterior.
HELP. Ayuda en lnea.
KILL_JOB. Cancelar trabajo actual y desasociar las sesiones cliente
relacionadas.
PARALLEL. Indicar grado paralelismo o nmero de trabajos (en Enterprise
Edition).
START_JOB. Reiniciar el trabajo asociado.
STATUS. Mostrar informe del estado del trabajo asociado.
STOP_JOB [=INMEDIATE]. Detener el trabajo asociado, puede reiniciarse
ms tarde. Con inmediate los procesos acaban al instante, las tareas
incompletas se volvern a realizar al reiniciarlo.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&3&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP IMPORT.
Se emplea la utilidad impdp, indicando las caractersticas de la
importacin en la lnea de comandos o mediante un fichero de
parmetros. Slo pueden usarse en la importacin ficheros creados
con D.P. Export.
Los usuarios deben tener permiso READ en el objeto directorio
donde resida el fichero de volcado y de escritura donde se cree el
fichero de registro (log) y los SQL.
Modo en lnea: impdp HELP=y
Modo interactivo: impdp directory=<localizacin>
Modo fichero de parmetros: impdp PARFILE=<fichero_parametros>
*ta5 Si no se indica ningn otro parmetro se usan los valores por defecto en la
importacin: expdat.dmp e import.log -ficheros-, importacin total del fichero...
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&3'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP IMPORT. MODOS.
Existen cinco modos de trabajar con datapump import:
Full import (parmetro FULL). Se importa el fichero de volcado al
completo (m*d* 1*r de6ect*). Es necesario el rol
DATAPUMP_IMP_FULL_DATABASE si la fuente es otra BD. Las referencias a
travs de esquemas no se importan para usuarios no privilegiados.
Esquema de usuario (parmetro SCHEMAS). Slo 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 BD, incluyendo permisos sobre privilegios de sistema,
adems de los objetos que contengan. Las referencias a travs de
esquemas no se importan para usuarios no privilegiados a menos que
exista un mapeo de esquemas.
Tabla (parmetro TABLES). Pueden indicarse tablas en distintos
esquemas. Para importar tablas no pertenecientes al propio esquema es
necesario el rol DATAPUMP_IMP_FULL_DATABASE.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&3+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP IMPORT. MODOS.
Tablespace (parmetro TABLESPACES). Las referencias a travs de
esquemas no se importan Para usuarios no privilegiados los objetos no
mapeados al esquema actual no se procesan.
Transport Tablespace (parmetro TRANSPORT_TABLESPACES). Permite
importar metadatos para un conjunto de espacios de almacenamiento. No
se soportan columnas encriptadas. Es necesario el rol
DATAPUMP_IMP_FULL_DATABASE.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&3,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP IMPORT. PARMETROS.
CONTENT =<ALL | DATA_ONLY | METADATA_ONLY>
Indica contenido a importar: datos -filas, no se crean objetos-,
metadatos -definiciones- o ambos.
DIRECTORY =<DATA_PUMP_DIR>
Localizacin para los ficheros de volcado y registro.
DUMPFILE = <directorio_objeto:>nombre_fichero
Fichero de volcado. Por defecto %@pdatd)p
ENCRYPTION_PASSWORD = contrasea
Indica una contrasea para acceder a datos encriptados en los ficheros
de volcado (necesaria si se encrpt en la exportacin).
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
&36
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
ESTIMATE = <BLOC:S | STATISTICS>
Mtodo de estimacin de espacio en disco necesario para cada tabla
(slo vlido si se indica tambin NETWORK_LINK).
EXCLUDE = tipo_objeto <:clausula>
Filtrar metadatos importados indicando objetos y tipos excluidos. Por
defecto ninguno. Es excluyente con el parmetro INCLUDE.
FULL = <N | (>
Realizar una importacin al completo, todo fichero fuente se importa.
INCLUDE = tipo_objeto <:clusula>
Filtrar metadatos importados indicando objetos y tipos incluidos
(consultar las vistas DATABASE_EXPORT_OBJECTS,
SCHEMA_EXPORT_OBJECTS y TABLE_EXPORT_OBJECTS).
COPIA = $ECUPE$ACI<
DATA PUMP IMPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
&3.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
JOB_NAME
Especificar un nombre para el trabajo, job, de importacin; coincide
tambien con la tabla maestro usada para controlar la importacin.
Por defecto de las forma SYS_<IMPORT o SQLFILE>_<modo>_xx
LOGFILE = <directorio_objeto:>nombre_fichero
Fichero de registro, por defecto import.log.
NOLOGFILE = <Y | N>
No crear fichero de registro.
PARALELL = n
Grado de paralelismo en la ejecucin (por defecto 1).
COPIA = $ECUPE$ACI<
DATA PUMP IMPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
&32
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
QUERY =<nombre_esquema.><nombre_tabla:> <clusula>
Permite seleccionar filas a importar segn condiciones a cumplir. No
compatible con CONTENT=METADATA_ONLY, SQLFILE o
TRANSPORT_TABLESPACES.
REMAP_DATAFILE=fichero_fuente : fichero_destino
Cambia el nombre de fichero_fuente por el de fichero_destino en las
sentencias SQL donde se referencie la fuente (CREATE TABLESPACE,
CREATE LIBRARY y CREATE DIRECTORY). Debe tenerse el rol
DATAPUMP_IMP_FULL_DATABASE.
REMAP_SCHEMA=esquema_fuente : esquema_destino
Carga objetos del esquema fuente al esquema destino. Si el esquema
destino no existe, se crea si el fichero de volcado contiene la
informacin necesaria (CREATE USER) y se importa con suficientes
privilegios (en caso contrario debe crearse previamente).
COPIA = $ECUPE$ACI<
DATA PUMP IMPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
&33
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
REMAP_TABLESPACE=tbsp_fuente : tbsp_destino
Carga todos los objetos, incluso el usuario, del esquema fuente en el
esquema destino.
REMAP_TABLE
Permite renombrar tablas o particiones durante la importacin.
REMAP_TABLE=[esquema.]nombre_antiguo[.particion]:nombre_nuevo
REMAP_TABLE=[esquema.]nombre_antiguo[:particion]:nombre_nuevo
REUSE_DATAFILES=<Y | N>
Indica si la operacin de importacin debe reutilizar los ficheros de
datos existentes o no en la creacin de espacios de almacenamiento.
COPIA = $ECUPE$ACI<
DATA PUMP IMPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
'44
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SCHEMAS =<lista de esquemas>
Permite indicar que se realizar una importacin de esquemas. Por
defecto referencia el esquema de usuario, para otros es necesario el
rol DATAPUMP_IMP_FULL_DATABASE.
SKIP_UNUSABLE_INDEXES=<Y | N>
Permite indicar que no se carguen tablas que tengan ndices en estado
no disponible.
SQLFILE=<directorio_objeto:>nombre_fichero
Define un fichero en el que descargar todas las sentencias SQL tipo DDL
que se hubieran ejecutado al importar (no son ejecutadas). Si se
generan contraseas en el fichero, aparecen comentadas.
STATUS = nn
Frecuencia con que muestra el estado del trabajo (por defecto es cero).
COPIA = $ECUPE$ACI<
DATA PUMP IMPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
'41
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TABLE_EXISTS_ACTION = <S:IP | APPEND |TRUNCATE |REPLACE>
Indica qu hacer si la tabla a importar ya existe. Si se indica
CONTENT=DATA_ONLY la opcin por defecto es APPEND):
SKIP. Deja la tabla tal como est e importa siguiente objeto.
APPEND. Carga filas, el contenido anterior no se modifica.
TRUNCATE. Borra las filas existentes antes de cargar.
REPLACE. Borra la tabla y la carga al completo.
TABLES = <nombre_esquema.><nombre_tabla><:particin>, ...
Indica exportacin en modo tabla (por defecto del propio esquema; para
tablas de otro esquema debe tenerse el rol
DATAPUMP_IMP_FULL_DATABASE) o hacer un remapeo del esquema.
TABLESPACES = <nombre_espacioalmac>, ...
Indica tbsp. a exportar en modo tablespace.
COPIA = $ECUPE$ACI<
DATA PUMP IMPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
'4&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
TRANSPORT_DATAFILES
Conjunto de ficheros a importar en el destino en modo de importacin
transportable o table. Los ficheros de datos deben existir en la
BD destino.
TRANSPORT_FULL_CHECK=<Y | N>
Indica si debe verificarse que el conjunto de tablespaces transportable
es referenciado por objetos en otros distintos.
COPIA = $ECUPE$ACI<
DATA PUMP IMPORT. PARMETROS.
Administracin Bsica de Oracle 11g.
'4'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP IMPORT. MODO INTERACTIVO.
Al igual que con data pump export, tras iniciar un trabajo, ya que
es ejecutado en el servidor, es posible interrumpir la sesin cliente
y asociarse al trabajo posteriormente. Tambin es posible modificar
ciertos parmetros de forma interactiva.
Para pasar a modo interactivo puede interrumpirse la conexin
actual con Ctrl+C -desde la terminal donde se ejecuta el trabajo- o
ejecutar impdp con el parmetro ATTACH -desde otra terminal-:
/home/...> impdp attach=<nombre_trabajo>
Los parmetros que pueden usarse en modo interactivo son:
CONTINUE_CLIENT. Salir de modo interactivo y entrar en modo registro.
EXIT_CLIENT. Salir de sesin cliente. El trabajo contina ejecutndose en el
servidor.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
'4+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
HELP. Ayuda en lnea.
KILL_JOB. Cancelar trabajo actual y desasociar las sesiones cliente
relacionadas.
PARALLEL. Indicar grado paralelismo o nmero de trabajos (en Enterprise
Edition).
START_JOB. Reiniciar el trabajo asociado.
STATUS. Mostrar informe del estado del trabajo asociado.
STOP_JOB [=INMEDIATE]. Detener el trabajo asociado, puede reiniciarse
ms tarde. Con inmediate los procesos acaban al instante, las tareas
incompletas se volvern a realizar al reiniciarlo.
COPIA = $ECUPE$ACI<
DATA PUMP IMPORT. MODO INTERACTIVO.
Administracin Bsica de Oracle 11g.
'4,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
DATA PUMP Y PARAMETROS.
Ciertos parmetros de inicializacin pueden afectar al rendimiento
de data pump. Puede probarse a usar las siguientes asignaciones:
-DISK_ASYNCH_IO = TRUE
-DB_BLOCK_CHECKING = FALSE
-DB_BLOCK_CHECKSUM = FALSE
Adems los parmetros siguientes deben tener valores lo
suficientemente altos como para permitir el mximo grado de
paralelismo:
-PROCESSES
-SESSIONS
-PARALLEL_MAX_SERVERS
Tambin los parmetros de inicializacin SHARED_POOL_SIZE y
UNDO_TABLESPACE deben tener un tamao suficientemente
generoso.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
'46
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SD7F7OADE$
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
'4.
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SQL*LOADER. CARGA DE DATOS.
SQL*Loader carga datos que proceden de ficheros externos en
tablas Oracle.
Tiene como entrada un fichero de control y uno o ms ficheros de
datos.
Su salida es una base de datos donde se cargan los datos, un
fichero de log, un fichero donde se guardan los registros
rechazados (bad file) y un fichero donde se almacenan los
registros descartados por no cumplir los criterios especificados en
el fichero de control (discard file).
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
'42
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SQL*LOADER.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
'43
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SQL*LOADER. FICHERO DE CONTROL.
Es un fichero de texto con instrucciones que indica donde
encontrar los datos a cargar y su formato, la configuracin del
SQL*Loader al cargar los datos, como analizar e interpretar los
datos y donde insertarlos.
Se considera dividido en tres secciones:
-Informacin de la sesin (opciones y clusula INFILE que indica
donde estn los datos).
-Uno o mas bloques "INTO TABLE" con informacin sobre la tabla
en la que cargar los datos (nombre y columnas).
-Datos de entrada, es opcional.
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
'14
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SQL*LOADER. FICHEROS DE DATOS.
Lee uno o ms ficheros de datos indicados en el fichero de
control.
Los datos se consideran organizados en registros.
Un fichero de datos puede estar en tres formatos:
-Fixed-record. Cuando todos los registros tiene la misma
longitud. INFILE <nombre_fichero> fix <n>, con n bytes de
longitud.
-Variable-record. Se indica la longitud del registro al principio
del mismo. INFILE <nombre_fichero> "var <n>", con n=5 por
defecto y no siendo posible n>40 bytes.
-Stream-record. No se indica longitud, la marca un
terminador. Es el formato asumido por defecto si no se indica
nada. INFILE <nombre_fichero> ["str <terminador>"]
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
'11
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SQL*LOADER. EJEMPLOS.
-- Ejemplo 1 de fichero de control
load data
infile 'example.dat' "fix 10
into table example
fields terminated by ',' optionally enclosed by '"'
(col1, col2)
example.dat:
0001, abcd,
0002,fghi,
0003,klmn,
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
'1&
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SQL*LOADER. EJEMPLOS.
-- Ejemplo 2 de fichero de control
load data
infile 'example.dat' "var 3
into table example
fields terminated by ',' optionally enclosed by '"'
(col1 char(5), col2 char(7))
example.dat:
009hello,cd,010world,im,
012my,name is,
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
'1'
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SQL*LOADER. EJEMPLOS.
-- Ejemplo 3 de fichero de control (terminador indicado con '|\n').
load data
infile 'example.dat' "str '|\n'"
into table example
fields terminated by ',' optionally enclosed by '"'
(col1 char(5), col2 char(7))
example.dat:
hello,world,|
james,bond,|
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
'1+
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
-- Ejemplo 4 de fichero de control (incluye datos en el fichero)
load data
infile *
into table dept
fields terminated by ',' optionally enclosed by '"`
(deptno, dname, loc)
begindata
12,research,"saratoga
10,"accounting",cleveland
11,"art",salem
13,finance,"boston
21,"sales",phila.
22,"sales",rochester
42,"int'l","san fran"
COPIA = $ECUPE$ACI<
SQL*LOADER. EJEMPLOS.
Administracin Bsica de Oracle 11g.
'1,
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
SQL*LOADER. EJECUCION.
Desde la lnea de sentencias debe ejecutarse:
sqlldr userid=<usuario>/<contrasea>
control=<nombre_fichero_control>
log=<nombre_fichero_log>
COPIA = $ECUPE$ACI<
Administracin Bsica de Oracle 11g.
'16
Francisco Fernndez Martnez y Juan Luis Serradilla Amarilla - 2010
VISTAS.
DBA_DATAPUMP_2OBS. Trabajos Data Pump activos.
DBA_DATAPUMP_SESSIONS. Sesiones de usuario asociadas a
un trabajo.
DBA_DIRECTORIES. Directorios definidos en bd.
V5SESSION_LONGOPS. Informacin sobre desarrollo de
trabajos.
COPIA = $ECUPE$ACI<

También podría gustarte