Академический Документы
Профессиональный Документы
Культура Документы
Arquitectura de la Base de Datos Arranque y parada Fichero de control Redo log Tablespaces Segmentos de rollback Usuarios, roles, privilegios y perfiles Jobs Auditora Copias de seguridad y recuperacin
Este documento electrnico puede ser descargado libre y gratuitamente desde Internet para su ejecucin e impresin, slo para fines educativos y/o personales, respetando su integridad y manteniendo los crditos de los autores en el pie de pgina. Administracin y Ajuste de Oracle 10g
Universidad de Murcia
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
OBJETIVOS
Conocer la Arquitectura Oracle. Saber arrancar y parar una base de datos Oracle. Gestionar los ficheros Redo log. Gestionar el fichero de control. Gestionar tablespaces, incluyendo temporales y undo. Gestionar segmentos de rollback. Gestionar usuarios, roles, privilegios y perfiles. Gestionar jobs. Gestionar la auditora del sistema gestor de base de datos. Realizar copias de seguridad y recuperacin de la base de datos.
3
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TEMA 1. ARQUITECTURA DE LA BD
Servidor oracle Instancia Conexin a la Base de datos Memoria: SGA (Automatic Shared Memory Management >=10g) y PGA Procesos: procesos de usuario, servidores y background Estructura lgica: tablespaces, segmentos, extensiones, bloques Arquitectura OFA Usuarios administradores de la BD: sys y system Fichero de autenticacin (orapw)
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SERVIDOR ORACLE
Servidor Oracle:
Instancia Oracle Base de datos Oracle
Instancia Oracle:
System Global Area (SGA) Procesos Background
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
INSTANCIA
La integran los procesos background y la SGA Abre una y slo una BDO, y permite acceder a ella.
Nota: con Oracle Real Application Cluster (RAC), ms de una instancia usarn la misma BD.
CONEXIN A LA BD
Para poder conectarnos a una BDO, necesitamos una serie de variables en el entorno del usuario del S.O. desde el que realizaremos la conexin. En el caso de unix/linux:
ORACLE_HOME. Localizacin del sw Oracle a utilizar. ORACLE_SID. BD, asociada al ORACLE_HOME, a la que vamos a conectarnos. Tiene sentido slo en un SBD. PATH=$PATH:$ORACLE_HOME/bin. Programas Oracle LD_LIBRARY_PATH=$ORACLE_HOME/lib. Localizacin de las libreras compartidas (Linux/Unix). NLS_LANG=spanish_spain. Idioma del cliente (opcional).
En la mquina donde reside el servidor Oracle, la variable ORACLE_SID identifica a la instancia con la que estamos trabajando.
Proceso de usuario: la ejecucin de la aplicacin que permite al usuario iniciar la conexin; por ejemplo, sql*plus. Proceso servidor: se crea en el SBD cuando el usuario se conecta a la BD, y es el que realmente interacta con la BD. Una conexin de un proceso de usuario al SBD es una sesin en la BD (puede haber varias del mismo usuario). Se inicia cuando el usuario se valida contra la BD y termina cuando el usuario se desconecta. Desconectar una sesin con ALTER SYSTEM DISCONNECT SESSION 'sid, serial#' [POST_TRANSACTION] [IMMEDIATE];. Destruye el servidor dedicado (o el circuito virtual si MTS).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARQUITECTURA DE LA BD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARQUITECTURA DE LA BD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARQUITECTURA DE LA BD
10
SQL AREA
PL/SQL AREA
11
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARQUITECTURA DE LA BD
12
En la dictionary cache se guardan las definiciones de datos usadas ms recientemente: database files, tablas, ndices, columnas, usuarios, privilegios, etc. Esta informacin se genera y utiliza en la fase de anlisis sintctico (parse); y se obtiene de las tablas del diccionario de datos. Es como una cach de datos para el
DD.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARQUITECTURA DE LA BD
13
Se pueden definir cachs adicionales para tablas que no usan el tamao de bloque por defecto de la BD; con los parmetros DB_nK_CACHE_SIZE, por ejemplo, DB_16K_CACHE_SIZE. Despus se crea un tablespace que use el nuevo tamao de bloque (crete tablespace ... BLOCKSIZE 16384;). Util al importar un tablespace de otra BD con otro db_block_size. Desde 10g, se puede vaciar con ALTER SYSTEM FLUSH BUFFER_CACHE; . Vaca completamente la cach de datos de la SGA. OJO!!!, no usar en produccin. Util si se quiere medir el rendimiento de sentencias sql como si se ejecutasen por primera vez. Administracin y Ajuste de Oracle 10g ARQUITECTURA DE LA BD 14
Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
El uso de una u otra cach lo indicaremos con el parmetro BUFFER_POOL, de la clausula STORAGE de la tabla: keep, recycle o default: ALTER TABLE mitabla STORAGE (BUFFER POOL KEEP);
LGWR
DML USERS
ARQUITECTURA DE LA BD
16
18
Estructura de procesos
Procesos de usuario: se arranca uno cuando un usuario solicita una conexin a la BD. Establece la conexin con la BD pero no interacta directamente con ella. Procesos servidores: creado cuando se establece la conexin a la BD. Es el proceso que interacta con la BD, para cada sesin. Un proceso servidor puede ser dedicado o compartido. Uno dedicado slo gestiona la peticiones de la sesin que lo inicia; sin embargo, uno compartido gestiona las peticiones de varios procesos de usuario. Procesos background: disponibles cuando se arranca una instancia Oracle. Son los siguientes: DBWR, PMON, SMON, LGWR y CKPT; y nuevos en 10g: PSP0 (Process Spawner), MMAN (Memory Manager), MMON (Memory Monitor), MMNL (Memory Monitor Light). Opcionalmente podemos tener: ARCH, RECO, Dispatchers (Dnnn), Shared Servers (Snnn), etc. El parmetro BACKGROUND_DUMP_DEST, del fichero de inicializacin, define el directorio donde se guardan los ficheros de traza de los procesos background.
19
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARQUITECTURA DE LA BD
PILA SESION
PILA
PGA
(servidor compartido)
PGA
(servidor dedicado) SQL SQL
SHARED POOL
SESION
SHARED POOL
LARGE POOL
SGA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SGA
ARQUITECTURA DE LA BD
20
Procesos background
(DBWR)
Procesos background
(LGWR, SMON)
DBWR. Escribe los bloques de datos (y rollback) de la SGA (data buffer cache) en los ficheros de datos. Esto lo hace de forma asncrona, cuando: Sucede un checkpoint. El nmero de buffers modificados alcanza un umbral. No quedan buffers libres. Ocurre un timeout. Ponemos un tablespace offline. Dejamos un tablespace en modo readonly. Borramos o truncamos una tabla. ALTER TABLESPACE nombretsp BEGIN BACKUP.
Nota. Un checkpoint sucede cuando: El fichero redo log se llena al 90%. Se alcanza log_checkpoint_interval (bloques del SO). Se llega a log_checkpoint_timeout (en segundos).
LGWR. Realiza escrituras secuenciales del contenido de la redo log buffer cache en los ficheros redo log. Cuando? Se hace commit. La redo log buffer cache se llena 1/3. Hay 1Mb de cambios en la redo log buffer cache. Como mucho, cada 3 segundos. Siempre antes que escriba el DBWR. SMON. Recupera la instancia, si es necesario, cuando sta arranca: aplica los cambios registrados en los redo log (roll forward), abre la base de datos dejndola accesible a los usuarios, y hace rollback de las transacciones que no terminaron.
Tambin se activa peridicamente, agrupando extensiones libres contiguas en extensiones de mayor tamao (slo para tablespaces con default storage cuyo pctincrease > 0). Adems libera el espacio ocupado por segmentos temporales durante el procesamiento de sentencias SQL.
Nombre del proceso: DBW0 a DBW9 y DBWa DBWj (mximo 20). DB_WRITER_PROCESSES. N de procesos arrancados.
ARQUITECTURA DE LA BD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
21
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARQUITECTURA DE LA BD
22
ESTRUCTURA LGICA
La estructura lgica de la base de datos determina el uso que
se hace del espacio fsico que la sustenta. Existe una jerarqua top-down en esta estructura, consistente en tablespaces, segmentos, extensiones y bloques. Una BDO la forman un grupo de tablespaces. Un tablespace puede contener uno o ms segmentos. Un segmento lo integran una o ms extensiones. Una extensin tendr al menos un bloque. El bloque es la unidad mnima de almacenamiento. El tamao del bloque ser mltiplo del que tenga el SO, y lo determina la variable db_block_size (2K, 4K, 8K, 16K y 32K). Cuando un segmento (tabla, ndice, rollback o temporal) crece, el espacio que se aade es de una extensin. ASM (>=10g). Gestor de volmenes para bases de datos Oracle. Gestiona directamente los discos. Adems distribuye automticamente los datos entre los discos, manteniendo el reparto uniforme cuando se aaden o quitan discos (incluso en caliente). Tambin se encarga de borrar los ficheros que ya no forman parte de la BD.
ARQUITECTURA DE LA BD
23
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
24
ESTRUCTURA LGICA
Base de Datos, Tablespaces, Segmentos, Extensiones y Bloques
ARQUITECTURA OFA
OFA (Oracle Flexible Architecture) propone una estructura de directorios que permite ubicar fcilmente cualquier fichero del servidor de base de datos; adems de agrupar dichos ficheros por componentes. Adems, facilita el reparto de los ficheros entre diferentes discos, optimizando la E/S. Oracle recomienda separar el software de los datos; y estos ltimos repartirlos entre varios discos (por ejemplo, separando datos e ndices, incluso tambin temp y rollback). Estructura de directorios OFA:
/u01/app/oracle (ORACLE_BASE) $ORACLE_BASE/product/10.2.0.1 (ORACLE_HOME) $ORACLE_HOME/bin (Ejecutables) $ORACLE_HOME/dbs (init$ORACLE_SID.ora, orapw$ORACLE_SID) $ORACLE_BASE/admin/$ORACLE_SID (ADMIN) $ORACLE_BASE/admin/$ORACLE_SID/pfile (PFILE) init$ORACLE_SID.ora (crear enlace en $ORACLE_HOME/dbs) $ORACLE_BASE/admin/$ORACLE_SID/bdump (BDUMP) alert$ORACLE_SID.ora y ficheros de traza de procesos background $ORACLE_BASE/admin/$ORACLE_SID/udump (UDUMP) alert$ORACLE_SID.ora y ficheros de traza de procesos background /u02/oradata/$ORACLE_SID (Ficheros de la BD: *.dbf, *.ctl, *.log) /u03/oradata/$ORACLE_SID (Ficheros de la BD: *.dbf, *.ctl, *.log) /u04/oradata/$ORACLE_SID (Ficheros de la BD: *.dbf, *.ctl, *.log)
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARQUITECTURA DE LA BD
25
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARQUITECTURA DE LA BD
26
USUARIOS ADMINISTRADORES DE LA BD
Cuando creamos una BDO se crean automticamente
los usuarios SYS y SYSTEM, ambos con el rol DBA.
FICHERO DE AUTENTICACIN
Un fichero de autenticacin nos permite conectar a la BD como SYS AS SYSDBA, sin pertenecer al grupo dba o desde un puesto remoto al SBD, realizando dicha autenticacin contra el mencionado fichero. Lo usaremos cuando no dispongamos de una conexin desde el propio SBD como grupo dba. Para usar un fichero de autenticacin:
Crearemos el fichero con la utilidad orapwd:
orapwd file=nombre_fichero password=clave entries=mximo_de_usuarios
Activaremos el parmetro REMOTE_LOGIN_PASSWORDFILE del init: EXCLUSIVE. Permite dar el privilegio SYSDBA a otros usuarios (adems del SYS). Slo una instancia usa el fichero. SHARED. El nico usuario reconocido por le fichero es el SYS. El fichero puede ser compartido por varias instancias. Incluiremos el usuario en el fichero de claves (para el SYS no hay que hacerlo):
GRANT SYSDBA TO usuario; Nota: en V$PWFILE_USERS estn los usuarios con SYSDBA y/o SYSOPER.
28
PROCESO DE CONSULTA
1. El proceso de usuario enva la sentencia SQL al proceso servidor. 2. El proceso servidor busca la sentencia SQL en la Shared Pool. Si no la encuentra, la compila y la guarda en la Shared Pool. 3. El proceso servidor accede a los datos en la Database Buffer Cache. Si no los encuentra, accede directamente a los ficheros de datos, llevando los datos a la Database Buffer Cache. 4. El proceso servidor devuelve los datos al proceso de usuario q Administracin y Ajuste de Oracle 10g inici la conexin.
Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
PROCESO DE ACTUALIZACIN
En primer lugar se repiten las fases 1 (envo de la sentencia), 2 (compilacin) y 3 (acceso a los datos) vistas en el proceso de consulta. 4. Se guarda una copia del dato (antes del cambio) en un segmento de Rollback (por si se deshace la transaccin). 5. Se modifican los bloques de datos en la Database Buffer Cach. El DBWR (de forma asncrona) los llevara a los ficheros de datos cuando suceda un checkpoint. 6. Se guardan en la cach de Redo las "redo entries" (vector de cambios de cada bloque modificado) necesarias para registrar el cambio q se va a hacer (el LGWR vuelca el buffer al fichero redo log activo, cuando se hace commit o cada 3 segundos). 7. El proceso servidor devuelve el nmero de filas actualizadas al proceso de usuario. Administracin y Ajuste de Oracle 10g
Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
4 3 1 7 2 7
3 1 4 2 4
6 1 3
ARQUITECTURA DE LA BD
1 3
ARQUITECTURA DE LA BD
29
30
VISTAS DEL DD
V$DATABASE (Base de datos). V$INSTANCE (Instancia). V$SGA (SGA). V$SGAINFO (Gestin dinmica de la SGA). V$SGASTAT (SGA detallada). V$BUFFER_POOL (Buffers en la cach de datos) V$SQLAREA (Sentencias SQL). V$PROCESS (Procesos). V$BGPROCESS (Procesos background). V$DATAFILE (Ficheros de datos de la BD). V$CONTROLFILE (Ficheros de control de la BD). V$LOGFILE (Ficheros redo log de la BD). DBA_TABLESPACES (Tablespaces de la BD). DBA_SEGMENTS (Segmentos que hay en los tablespaces). DBA_EXTENTS (Extensiones que componen los segmentos). DBA_USERS (Usuarios de la BD).
ARQUITECTURA DE LA BD
PRACTICAS TEMA 1
1.1. Comprobar la asignacin de variables de entorno necesarias para conectarnos a la BD:
echo echo echo echo $ORACLE_HOME $ORACLE_SID $LD_LIBRARY_PATH $PATH
ps -ef|grep $ORACLE_SID select username, program from v$process where background is not null; select name,description from v$bgprocess where PADDR!='00'; select * from v$sgainfo; select * from v$sgastat; select * from v$sgastat where name in ('library cache','row cache','sql area','buffer_cache','log_buffer'); show show show show show show show show parameter parameter parameter parameter parameter parameter parameter parameter sga_target sga_max_size shared_pool_size db_cache_size db_block_size log_buffer large_pool_size java_pool_size
1.4. Comprobar valores de parmetros del init relacionados con el tamao de la SGA:
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
31
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARQUITECTURA DE LA BD
32
PRACTICAS TEMA 1.
1.5. Comprobar ficheros que componen la BD y ubicarlos en la estructura OFA:
ls -l /u0?/oradata/$ORACLE_SID select name from v$datafile; select name from v$tempfile; select member from v$logfile; select name from v$controlfile;
PRACTICAS TEMA 1.
1.8. Localizar el proceso servidor asociado a mi sesin (v$process y v$session). Es un servidor dedicado o compartido?
select a.server, a.username dbuser,a.program user_program, b.spid server_process, b.program server_program from v$session a, v$process b where a.username=USER and a.PADDR=b.ADDR;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARQUITECTURA DE LA BD
33
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARQUITECTURA DE LA BD
34
PRACTICAS TEMA 1.
1.9. Cuanto ocupa la Dictionary cache y la Library cache en tu BD? (v$sgastat)
select SQL_TEXT, PERSISTENT_MEM, EXECUTIONS, LOADS, DISK_READS, CPU_TIME, ELAPSED_TIME from v$sqlarea order by DISK_READS desc; select namespace,gethitratio, gethitratio from v$librarycache;
1.10. Ver la actividad de la Library Cache (v$librarycache). 1.11. Ver las sentencias SQL que guarda la Shared-Pool (v$sqlarea).
select sql_text from v$sqlarea;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARQUITECTURA DE LA BD
35
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARRANQUE Y PARADA DE LA BD
36
37
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARRANQUE Y PARADA DE LA BD
38
EJEMPLO DE INIT.ORA
db_name=CURSOxy db_block_size=2048 compatible = 10.2.0 control_files = (/u02/oradata/CURSOxy/control1.ctl, /u03/oradata/CURSOxy/control2.ctl) undo_management = auto undo_tablespace = undo_rbs background_dump_dest = /u01/app/oracle/admin/CURSOxy/bdump core_dump_dest = /u01/app/oracle/admin/CURSOxy/cdump user_dump_dest = /u01/app/oracle/admin/CURSOxy/udump max_dump_file_size = 10240 sga_max_size = 120M sga_target = 100M db_cache_size = 0 shared_pool_size = 0 large_pool_size = 0 java_pool_size = 0 log_buffer = 2886656 log_checkpoint_interval = 0 log_checkpoint_timeout = 1800 pga_aggregate_target = 10M processes = 30 remote_login_passwordfile=EXCLUSIVE nls_territory=spain nls_language=spanish
Hay dos tipos de parmetros: Explcitos: los que se indican en el fichero de parmetros. Implcitos: el resto, que tomarn un valor por defecto. La forma de indicar valor a los parmetros es parametro=valor. El smbolo # indica el comienzo de un comentario, pudiendo estar al principio o en medio de la lnea. En el init.ora, el parmetro ifile permite incluir otros ficheros con parmetros. Una lista de valores se indicar entre parntesis, separando los valores por comas. Para indicar un valor de tipo cadena de caracteres hay que encerrarlo entre comillas simples.
Si usamos OFA, la ubicacin tpica para el init.ora es $ORACLE_BASE/admin/$ORACLE_SID/pfile. Despus creamos un enlace en $ORACLE_HOME/dbs (ubicacin por defecto).
Nota. Es un fichero de texto que hay que mantener manualmente con un editor ASCII (vi, notepad, etc).
39
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARRANQUE Y PARADA DE LA BD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARRANQUE Y PARADA DE LA BD
40
La BD la podemos crear con el asistente grfico (en Linux dbca) o con el comando CREATE DATABASE:
Crearemos un fichero init.ora, y si queremos, un spfile.ora. Arrancaremos las instancia con STARTUP NOMOUNT. Crearemos la BD con el comando CREATE DATABASE. Ejecutaremos los scripts catalog.sql y catproc.sql que estn en $ORACLE_HOME/rdbms/admin. Desde 10g se puede borrar con DROP DATABASE; (slo montada).
41
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARRANQUE Y PARADA DE LA BD
42
CREATE DATABASE "CURSOxy" maxdatafiles 254 maxinstances 1 maxlogfiles 32 character set WE8ISO8859P15 DATAFILE '/u02/oradata/CURSOxy/system01.dbf' SIZE 260M AUTOEXTEND ON NEXT 10M EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE '/u02/oaradata/CURSOxy/sysaux01.dbf' size 100M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO UNDO TABLESPACE UNDO_RBS1 DATAFILE '/u03/oradata/CURSOxy/rbs01.dbf' SIZE 10M DEFAULT TABLESPACE USERS DATAFILE '/u02/oradata/CURSOxy/users01.dbf' SIZE 10M DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/u03/oradata/CURSOxy/temp01.dbf' SIZE 10M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K logfile '/u04/oradata/CURSOxy/redo01.log' SIZE 3M, '/u04/oradata/CURSOxy/redo02.log' SIZE 3M, '/u04/oradata/CURSOxy/redo03.log' SIZE 3M;
rem *** CREACION DE LAS VISTAS DEL DD *** @$ORACLE_HOME/rdbms/admin/catalog.sql @$ORACLE_HOME/rdbms/admin/catproc.sql Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARRANQUE Y PARADA DE LA BD
Ejemplo para crear una BD, usando OMF, separando los ficheros redolog y de control del resto:
Parmetros de inicializacin: DB_CREATE_FILE_DEST='/u02/oradata/CURSOxy' DB_CREATE_ONLINE_LOG_DEST_1='/u03/oradata/CURSOxy' DB_CREATE_ONLINE_LOG_DEST_2='/u04/oradata/CURSOxy' Creacin de la BD: CREATE DATABASE CURSOxy character set WE8ISO8859P15 UNDO TABLESPACE UNDO_RBS DEFAULT TABLESPACE USERS DEFAULT TEMPORARY TABLESPACE TEMP;
43
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARRANQUE Y PARADA DE LA BD
44
COMANDO STARTUP
Arranca la instancia y abre la BD. Permite parar el
proceso de arranque de la BD en cualquiera de sus fases (NOMOUNT, MOUNT). parmetros por defecto).
STARTUP (abre la base de datos con el fichero de STARTUP PFILE=/home/CURSO/cursoXY/miinit.ora STARTUP NOMOUNT (para crear la base de datos). STARTUP MOUNT (para renombrar datafiles, activar
ARCHIVELOG o hacer una recuperacin completa de la BD). usuarios con el privilegio RESTRICTED SESION). BD).
Seguidamente la BD se monta (mount) abriendo el fichero de control y obteniendo de l los nombres de los ficheros que la componen: datafiles y redo log. Finalmente se abre la BD (open), procediendo a la apertura de los ficheros de datos (datafiles) y los ficheros redo log. El servidor oracle comprueba la consistencia de la base de datos, y si es necesario el proceso SMON inicia la recuperacin de la instancia.
ARRANQUE Y PARADA DE LA BD
STARTUP RESTRICT (slo permite la conexin de STARTUP FORCE (hace SHUTDOWN ABORT y arranca la
45
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARRANQUE Y PARADA DE LA BD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
46
Permite cambiar el estado de la base de datos, p.e. de NOMOUNT a MOUNT, o de MOUNT a OPEN. Tambin se utiliza para dejar la BD en modo READ ONLY.
ALTER DATABASE {MOUNT | OPEN} ALTER DATABASE OPEN [READ WRITE | READ ONLY]
Encolar la BD (>=9i). Util si el DBA necesita q no haya transacciones ni consultas concurrentes a la suya. Espera a q terminen transacciones/consultas (se pueden ver en V$BLOCKING_QUIESCE) e impide nuevas (excepto de SYS/SYSTEM). Slo desde SYS/SYSTEM. V$INSTANCE.ACTIVE_STATE:
ALTER SYSTEM QUIESCE RESTRICTED; ALTER SYSTEM UNQUIESCE;
Suspender la BD (>=9i). Util para copias de seguridad en caliente. Suspende E/S a ficheros de datos y control (los tablespaces deben estar en modo hot backup con ALTER TABLESPACE BEGIN BACKUP). Slo SYS/SYSTEM. V$INSTANCE.DATABASE_STATUS. Ojo, no cerrar la sesin q hace el SUSPEND pues es la nica q puede hacer RESUME:
ALTER TABLESPACE nomtsp BEGIN BACKUP; ... ALTER SYSTEM SUSPEND; // Copiamos ficheros de la BD (necesitar recuperar la instancia, pues no se hace checkpoint). ALTER SYSTEM RESUME; ALTER TABLESPACE nomtsp END BACKUP;
ARRANQUE Y PARADA DE LA BD
47
48
COMANDO SHUTDOWN
Sintaxis:
SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT]
FICHERO alert.log
Es el fichero de log de la BD y la primera referencia para el DBA en el da a da de la administracin de la misma. Por defecto est en $ORACLE_HOME/rdbms/log; o en el directorio que indique el parmetro BACKGROUND_DUMP_DEST del init. Si usamos OFA, una Recoge tanto informacin de estado como errores: arranque y parada, parmetros del init sin valores por defecto, arranque de los procesos background, cambio de fichero redolog (log switch), creacin de tablespaces y segmentos de rollback, comandos alter (alter database, alter tablespace, etc), errores ORA-600 y los que indican falta de espacio (llenado de tablas, ndices, tablespaces, etc).
Tipos de parada. Cada una de las opciones de parada se comporta de forma diferente en cuanto a esperar a que terminen transacciones y sesiones, hacer checkpoint, o desmontar y cerrar la BD:
NORMAL S S S S S S
TRANSACTIONAL S N S S S S
IMMEDIATE N N S S S S
ABORT N N N N N S
49
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARRANQUE Y PARADA DE LA BD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARRANQUE Y PARADA DE LA BD
50
EJEMPLO DE alert.log
Tue Oct 26 13:11:08 2006 Starting ORACLE instance (normal) ... Starting up ORACLE RDBMS Version: 10.2.0.2.0. System parameters with non-default values: processes = 30 sga_max_size = 83886080 __shared_pool_size = 50331648 shared_pool_size = 0 __large_pool_size = 4194304 large_pool_size = 0 __java_pool_size = 4194304 java_pool_size = 0 ... db_cache_size = 0 compatible = 10.2.0 log_buffer = 2886656 ... db_name = CURSOxy pga_aggregate_target = 10485760 PMON started with pid=2, OS id=18002 PSP0 started with pid=3, OS id=18004 MMAN started with pid=4, OS id=18006 DBW0 started with pid=5, OS id=18008 LGWR started with pid=6, OS id=18010 CKPT started with pid=7, OS id=18012 SMON started with pid=8, OS id=18014 RECO started with pid=9, OS id=18016 MMON started with pid=10, OS id=18018 MMNL started with pid=11, OS id=18020 Tue Oct 26 13:11:08 2006 ALTER DATABASE MOUNT ... SMON: enabling cache recovery Mon Oct 26 13:11:13 2006 Successfully onlined Undo Tablespace 1. Mon Oct 26 13:11:13 2006 SMON: enabling tx recovery Mon Oct 26 13:11:13 2006 Database Characterset is WE8ISO8859P15 ... Tue Oct 26 13:11:16 2006 Completed: ALTER DATABASE OPEN Wed Oct 26 13:52:06 2006 Thread 1 advanced to log sequence 552 Current log# 3 seq# 4 mem# 0: /home/u04/oradata/CURSOxy/redo03.log
Nota. En el ejemplo de arriba se puede ver el arranque de la instancia, los parmetros asignados, los procesos arrancados, como se monta la BD, y cmo finalmente se abre la BD y se empiezan a usar los fichero redolog.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARRANQUE Y PARADA DE LA BD
51
52
FICHEROS DE TRAZA DE LOS PROCESOS DE USUARIO Recogen estadsticas de seguimiento de sentencias SQL o errores en
las sesiones de usuario. Las trazas de usuario se generan en el directorio que indique el parmetro USER_DUMP_DEST (por defecto, $ORACLE_HOME/rdbms/log). Si usamos OFA, una ubicacin tpica es $ORACLE_BASE/admin/$ORACLE_SID/udump. Su tamao est limitado por el parmetro MAX_DUMP_FILE_SIZE. Sus nombres siguen el patrn ${ORACLE_SID}_ora_pid.trc; por ejemplo, cursoXY_ora_23654.trc (siempre en minsculas). Pueden ser muy tiles para el ajuste de sentencias SQL. En este caso se pueden generar voluntariamente activando la traza: A nivel de sesin con ALTER SESSION SET SQL_TRACE=TRUE;, Desde una sesin del DBA con dbms_system.set_sql_trace_in_session(sid,true), donde SID es el n de sesion oracle (V$SESSION, V$PROCESS). Se desactiva de igual forma (indicando false en lugar de true). A nivel de instancia, con el parmetro SQL_TRACE=TRUE del init. Utilidad TKPROF. Permite generar un informe legible, a partir de un fichero de traza generado explcitamente para una sesin.
tkprof cursoXY_ora_23654.trc salida_traza.txt explain=scott/tiger
ARRANQUE Y PARADA DE LA BD
El DD contiene informacin sobre: la definicin de todos los objetos de la BD (tablas, vistas, ndices, sinnimos, secuencias, procedimientos, funciones, paquetes, triggers, etc), el espacio ocupado por cada objeto, condiciones de integridad, usuarios, privilegios, roles, as como auditora del sistema.
ARRANQUE Y PARADA DE LA BD
53
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
54
El DD tambin tiene las llamadas tablas dinmicas, cuyas vistas tienen el prefijo V$ (como V$SESSION). Se crean al arrancar la instancia y residen en memoria. Cuando cerramos la BD (y por tanto la instancia), desaparecen y con ellas su contenido.
ARRANQUE Y PARADA DE LA BD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
55
ARRANQUE Y PARADA DE LA BD
56
Cada BD q usa ASM, tiene dos nuevos procesos background: OSMB: comunicacin entre BD y la instancia ASM. RBAL: abre y cierra los discos en los grupos, en la parte de la BD. Parmetros del init (para instancia ASM y/o BD q la usa): instance_type = ASM (para una BD es RDBMS) db_unique_name = +ASM (valor por defecto) asm_power_limit = 1 (mximo 11; velocidad rebalanceo; 1 es el ms lento) asm_diskstring (limita los dispositivos de disco usables para grupos de discos; ejemplo: '/dev/hd*'). asm_diskgroups (nombres de grupos de discos q se mostarn automticamente; por defecto vale NULL y los monta todos). large_pool_size (al menos 8M, para ejecutar los paquetes internos de uso de ASM) Ejemplo de init de una instancia ASM
VISTAS DEL DD
V$INSTANCE V$DATABASE V$SESSION V$PROCESS V$PARAMETER V$PARAMETER2 V$SYSTEM_PARAMETER V$SYSTEM_PARAMETER2 DICTIONARY DICT_COLUMNS V$ASM_DISKGROUP V$ASM_CLIENT V$ASM_DISK V$ASM_FILE V$ASM_TEMPLATE V$ASM_OPERATION
ARRANQUE Y PARADA DE LA BD
instance_type=ASM db_unique_name=+ASM asm_power_limit=1 asm_disk_string=/dev/vgora01/rdsk/*, /dev/vgora02/rdsk/* asm_disk_groups=diskgrp1, diskgrp2 Administracin y Ajuste de Oracle 10g ARRANQUE Y PARADA DE LA BD large_pool_size=16M
Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
57
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
58
PRACTICAS TEMA 2.
2.1. Fichero init.ora. Arranque y parada de la BD.
ls -l $ORACLE_HOME/dbs/init$ORACLE_SID.ora ls -l $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
PRACTICAS TEMA 2.
2.2. Arranque de la BD (STARTUP). Comprobar las diferentes fases en el arranque de la BD.
Arrancar slo la instancia (NOMOUNT) y consultar algn parmetro. Qu ocurre al acceder a V$CONTROLFILE. STARTUP NOMOUNT SHOW PARAMETER processes SELECT * FROM V$CONTROLFILE; Ahora montar la BD y volver a consultar V$CONTROLFILE. Que sucede al leer DBA_USERS. ALTER DATABASE MOUNT SELECT * FROM V$CONTROLFILE; SELECT * FROM DBA_USERS; Abrir la BD en modo READ ONLY y crear una tabla. Activar modo READ WRITE y volver a crear la tabla. ALTER DATABASE OPEN READ ONLY CREATE TABLE MITABLA (C1 VARCHAR2(2)); ALTER DATABASE OPEN READ WRITE CREATE TABLE MITABLA (C1 VARCHAR2(2)); Buscar y consultar el fichero de alert de la BD. ls -l $ORACLE_HOME/rdbms/log/alert_$ORACLE_SID.log ls -l $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log cat alert_$ORACLE_SID.log tail -26f alert_$ORACLE_SID.log Buscar si hay ficheros de traza. ls -l $ORACLE_HOME/rdbms/log/*.trc ls -l $ORACLE_BASE/admin/$ORACLE_SID/bdump/*.trc ls -l $ORACLE_BASE/admin/$ORACLE_SID/udump/*.trc Sacar la lista de vistas del DD. Consultar las columnas de dichas vistas. Select * from DICTIONARY; Select * from DICT_COLUMNS;
Anotar el valor de los parmetros: db_block_size, sga_target, sga_max_size, shared_pool_size, db_cache_size, log_buffer, processes. Crear fichero /home/CURSO/cursoxy/init01xy.ora, copia del initCURSOxy.ora, y modificar processes=17. Arrancar la BD y comprobar valor de parmetros, por qu no ha tomado el nuevo valor?. Parar la BD y arrancar con el init01xy.ora. Comprobar parmetro processes. Abrir otra conexin de sqlplus y ver qu ocurre.
SHUTDOWN immediate STARTUP pfile=init01xy.ora show parameter processes STARTUP show parameter processes cp $ORACLE_HOME/dbs/init$ORACLE_SID.ora init01xy.ora echo processes=17 >> init01xy.ora tail init01xy.ora more $ORACLE_HOME/dbs/init$ORACLE_SID.ora grep processes $ORACLE_HOME/dbs/init$ORACLE_SID.ora
Parar la BD de forma normal, estando conectado algn usuario y ver qu ocurre. Y qu sucede cuando todos los usuarios se desconectan. Repetir la parada de la BD, estando conectado algn usuario, de forma que no espere:
SHUTDOWN IMMEDIATE ARRANQUE Y PARADA DE LA BD SHUTDOWN
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
59
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ARRANQUE Y PARADA DE LA BD
60
PRACTICAS TEMA 2.
2.4. Impedir las conexiones de usuarios, de modo que el DBA s pueda conectarse. Intenta conectarte como scott/tiger. Volver a permitir conexiones de usuarios.
STARTUP RESTRICT (si la BD est parada) ALTER SYSTEM ENABLE RESTRICTED SESSION; (sila BD estaba arrancada) ALTER SYSTEM DISABLE RESTRICTED SESSION;
PRACTICAS TEMA 2.
2.6. Conctate como SCOTT y haz update sobre DEPT (sin hacer commit). Desde otra sesin, cierra la BD con SHUTDOWN TRANSACTIONAL. Qu pasa al hacer commit en la sesin de SCOTT? CONNECT SCOTT/TIGER SHUTDOWN TRANSACTIONAL (sesin del sys) update dept set deptno=88 where deptno=99; (sesin de scott) COMMIT; (sesin de scott) 2.7. Conctate como usuario scott/tiger. Activa la traza y haz una query con una join entre EMP y DEPT (select a.ename, b.dname from emp a, dept b where a.deptno=b.deptno;). Desactiva la traza y analiza el fichero que se ha generado con el comando tkprof (es un comando unix, no de SQL). CONNECT SCOTT/TIGER ALTER SESSION SET SQL_TRACE=TRUE; tkprof nombre_fichero_traza.trc salida_traza.txt explain=scott/tiger sys=no (desde fuera SQL) cat salida_traza.txt
61
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARRANQUE Y PARADA DE LA BD
2.5. Forzar un checkpoint y hacer un insert en la tabla SCOTT.DEPT. Inmediatamente despus hacer SHUTDOWN ABORT. Arrancar y comprobar SCOTT.DEPT. Volver a repetir el insert, haciendo commit antes del SHUTDOWN ABORT; y comprueba el contenido de SCOTT.DEPT.
ALTER SYSTEM CHECKPOINT; insert into scott.dept values (99,'FORMACION','MURCIA'); SHUTDOWN ABORT STARTUP SELECT * FROM SCOTT.DEPT; insert into scott.dept values (99,'FORMACION','MURCIA'); COMMIT; SHUTDOWN ABORT STARTUP SELECT * FROM SCOTT.DEPT;
ARRANQUE Y PARADA DE LA BD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
62
Fichero de control
Contenido del fichero de control Multiplexar fichero de control Backup del fichero de control
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
FICHERO DE CONTROL
63
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
FICHERO DE CONTROL
64
FICHERO DE CONTROL
Se trata de un fichero binario, sin el cual no es posible
arrancar la BD. Por ello es conveniente mantener varias copias del mismo, en diferentes discos.
Se recomienda sacar una copia de seguridad del fichero de control cada vez que cambie la estructura fsica de la BD:
ALTER DATABASE BACKUP CONTROLFILE TO TRACE; De esta forma se generan, en un fichero de traza, las sentencias sql necesarias para volver a crear el fichero de control. ALTER DATABASE BACKUP CONTROLFILE TO /u02/oradata/CURSOxy/ora_control01.bak; Hace una copia binaria y aislada del fichero.
En la vista V$CONTROLFILE tenemos la lista de todos los ficheros de control de la BD. En V$CONTROLFILE_RECORD_SECTION veremos las diferentes secciones y su estado de uso.
FICHERO DE CONTROL
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
65
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
66
VISTAS DEL DD
67
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
FICHERO DE CONTROL
68
PRACTICAS TEMA 3
3.1.Localizar el fichero de control desde el SO y desde la BD. ls -lt /u0?/oradata/$ORACLE_SID/*.ctl ls -l /u0?/oradata/$ORACLE_SID/*control* select * from v$controlfile; 3.2.Consultar la informacin de la BD relativa al contenido del fichero de control. Forzar un checkpoint y volver a consultar. Consultar las secciones que contiene el fichero de control y su estado de uso. select * from v$database; alter system checkpoint; select * from v$controlfile_record_section;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 FICHERO DE CONTROL
PRACTICAS TEMA 3
3.3. Aade una copia al fichero de control de la BD en "/u04/oradata/$ORACLE_SID". Crea un initxy02.ora e incluye el nuevo fichero. Arranca la BD con el nuevo init y comprueba que ha tomado la nueva copia del fichero de control.
shutdown immediate cp /u02/oradata/$ORACLE_SID/control1.ctl /u04/oradata/$ORACLE_SID/control3.ctl cp $ORACLE_HOME/dbs/init$ORACLE_SID.ora init02xy.ora vi init02xy.ora startup pfile=init02xy.ora select * from v$controlfile;
3.4. Sacar una copia de seguridad del fichero de control, tanto en un fichero de traza, como un nuevo fichero de control.
alter database backup controlfile to trace; ls -lt $ORACLE_BASE/admin/$ORACLE_SID/udump|head -2 alter database backup controlfile to '/u02/oradata/CURSOxy/ora_control1.bak'; ls -lt /u02/oradata/$ORACLE_SID/control_copia1.ctl select * from v$controlfile;
69
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 FICHERO DE CONTROL
70
Funcionamiento del redo log Aadir/quitar grupos/miembros de redo Configuracin de los ficheros redo log Modo archivelog
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
71
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
72
73
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
74
No puede haber menos de 2 grupos; no se puede borrar el grupo activo; al borrar un grupo no se eliminan los ficheros del sistema operativo (a no ser que se use OMF).
No se puede borrar el ltimo miembro q quede de un grupo (y dejarlo vaco); tampoco un miembro del grupo en curso; si la BD est en modo ARCHIVELOG no se puede borrar un miembro cuyo grupo no ha sido archivado; cuando borramos un miembro no se elimina el fichero correspondiente del sistema operativo.
75
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTION DEL REDO LOG
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
76
MODO ARCHIVELOG
Por defecto, la BD se crea en modo NOARCHIVELOG (con CREATE DATABASE). Si activamos el modo ARCHIVELOG se irn archivando los ficheros redo log conforme se llenan (cada vez que ocurre un log switch). LOG_ARCHIVE_START=TRUE, activa archivado automtico (en 10g no hace falta). El proceso ARCH ir archivando el grupo redo log lleno, despus de cada log switch, en el directorio indicado por el parmetro LOG_ARCHIVE_DEST (por defecto $ORACLE_HOME/dbs/arch). Cada vez que se archiva un redo log, en el fichero de control se guarda el nombre del redolog archivado, nmero de secuencia, y nmeros SCN ms alto y ms bajo. El redolog que se ha llenado no puede reutilizarse hasta que ocurra un checkpoint y haya sido copiado por el proceso ARCH. Poner BD en modo ARCHIVELOG: SHUTDOWN, backup (por seguridad), configurar log_archive_dest en el INIT, STARTUP MOUNT, activar archivado (ALTER DATABASE ARCHIVELOG;), abrir BD (ALTER DATABASE OPEN;), parar BD, y hacer backup (pues ha cambiado el fichero de control y la copia anterior ya no nos sirve).
Nota. Ms informacin en http://cursos.atica.um.es/oradoc102/server.102/b14231/archredo.htm#i1006246
GESTION DEL REDO LOG
Es equivalente a aadir y borrar un fichero redolog. Mover o renombrar (ojo! la BD debe estar slo montada):
!mv /u04/oradata/CURSOxy/redo03a.log /u03/oradata/CURSOxy/redo3a.log ALTER DATABASE RENAME FILE /u04/oradata/CURSOxy/redo03a.log TO /u03/oradata/CURSOxy/redo3a.log;
Configuracin del Redo Log Online: El nmero de grupos Redo Log Online necesarios, como mnimo ser dos. Es probable que se necesite alguno ms debido a que, al llenarse circularmente, los checkpoints no completen. La configuracin debe ser simtrica: mismo nmero de miembros para todos los grupos. Cada miembro de un grupo debe estar en un disco diferente. Adems hay que separar en diferentes discos los Redo Log Archivados de los Redo Log Online, para reducir la contencin entre el LGWR y el ARCH. El Redo Log Online tambin debera estar en un disco distinto a los ficheros de datos, para reducir la contencin entre LGWR y DBWR. En las vistas V$LOG, V$LOG_HISTORY y V$LOGFILE estn los detalles del redo.
GESTION DEL REDO LOG
Nota. Se puede ver el estado del archivado con el comando archive log list del sqlplus.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
77
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
78
VISTAS DEL DD
PRACTICAS TEMA 4
4.1. Localizar los ficheros redolog de la BD. Cuntos grupos hay y cuntos miembros tiene cada grupo? estn correctamente distribuidos? ls -lt /u0?/oradata/$ORACLE_SID/*.log ls -lt /u0?/oradata/$ORACLE_SID/*redo* select * from v$logfile; 4.2. Comprobar el fichero redo log activo. Qu ocurre al forzar un "log switch"? y al forzar un checkpoint? select * from v$log; alter system switch logfile; alter system checkpoint; 4.3. Aade un miembro ms a cada grupo: /u03/oradata/$ORACLE_SID/redo11.log, /u03/oradata/$ORACLE_SID/redo12.log, /u03/oradata/$ORACLE_SID/redo13.log.
alter database add logfile member '/u03/oradata/CURSOxy/redo11.log' to group 1, '/u03/oradata/CURSOxy/redo12.log' to group 2, '/u03/oradata/CURSOxy/redo13.log' to group 3;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
79
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
80
PRACTICAS TEMA 4
4.4. Aade un grupo ms (grupo 4), con dos miembros de 1M: y /u03/oradata/$ORACLE_SID/redo04.log /u04/oradata/$ORACLE_SID/redo14.log. Aade 2 grupos ms (grupo 5 y 6), con las mismas caractersticas.
PRACTICAS TEMA 4
4.6. Cambiar el nombre de los miembros de redo de los grupos 4, 5 y 6; a redo1a.log, redo1b.log, redo2a.log, redo2b.log, redo3a.log, redo3b.log.
shutdown immediate
OJO, la BD debe estar slo montada!!! startup mount mv /u03/oradata/CURSOxy/redo01.log /u03/oradata/CURSOxy/redo1a.log mv /u04/oradata/CURSOxy/redo11.log /u04/oradata/CURSOxy/redo1b.log mv /u03/oradata/CURSOxy/redo02.log /u03/oradata/CURSOxy/redo2a.log mv /u04/oradata/CURSOxy/redo12.log /u04/oradata/CURSOxy/redo2b.log mv /u03/oradata/CURSOxy/redo03.log /u03/oradata/CURSOxy/redo3a.log mv /u04/oradata/CURSOxy/redo13.log /u04/oradata/CURSOxy/redo3b.log alter database rename file '/u03/oradata/CURSOxy/redo01.log' to '/u03/oradata/CURSOxy/redo1a.log'; alter database rename file '/u04/oradata/CURSOxy/redo11.log' to '/u04/oradata/CURSOxy/redo1b.log'; alter database rename file '/u03/oradata/CURSOxy/redo02.log' to '/u03/oradata/CURSOxy/redo2a.log'; alter database rename file '/u04/oradata/CURSOxy/redo12.log' to '/u04/oradata/CURSOxy/redo2b.log'; alter database rename file '/u03/oradata/CURSOxy/redo03.log' to '/u03/oradata/CURSOxy/redo3a.log'; alter database rename file '/u04/oradata/CURSOxy/redo13.log' to '/u04/oradata/CURSOxy/redo3b.log'; alter database open; select * from v$logfile;
('/u03/oradata/CURSOxy/redo04.log', '/u04/oradata/CURSOxy/redo14.log') size 1M; alter database add logfile group 5 ('/u03/oradata/CURSOxy/redo05.log', '/u04/oradata/CURSOxy/redo15.log') size 1M; alter database add logfile group 6 ('/u03/oradata/CURSOxy/redo06.log', '/u04/oradata/CURSOxy/redo16.log') size 1M;
4.5. Elimina los miembros del grupo 1, de uno en uno. Qu ocurre al eliminar el ltimo?. Borrar los grupos 1, 2 y 3. Ojo y no borrar el redo log activo !!!
Alter database drop logfile member alter database drop logfile member
'/u04/oradata/CURSOxy/redo01.log'; '/u03/oradata/CURSOxy/redo11.log';
alter database drop logfile group 1; alter database drop logfile group 2; alter database drop logfile group 3;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTION DEL REDO LOG
81
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
82
TEMA 5. TABLESPACES
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 TABLESPACES
TEMA 5 TABLESPACES
Qu es un tablespace Tablespaces system y sysaux Create tablespace Formas de gestionar el espacio de un tablespace Tablespaces undo Tablespaces temporales Tablespace temporal por defecto de la BD y tablespace por defecto de la BD Tablespace offline y rename Tablespace read-only y bigfile Borrar un tablespace y grupos Redimensionar un tablespace Mover ficheros
TABLESPACES
83
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
84
QUE ES UN TABLESPACE
Una BD 10g podra tener slo los tablespaces SYSTEM y SYSAUX (>=10g). Oracle recomienda crear tablespaces adicionales para los datos, ndices, rollback y segmentos temporales. Segn la estructura fsica, una BD est compuesta por: el fichero de control, ficheros redo log y ficheros de datos. La estructura lgica nos dice que est compuesta de tablespaces, segmentos, extensiones y bloques. Cada tablespace consiste en uno o ms ficheros del s.o. llamados ficheros de datos (un fichero pertenece a un solo tablespace):
Un tablespace slo puede pertenecer a una BD a la vez. Puede tener cero o ms segmentos (un segmento slo pertenece a un tablespace). Exceptuando el tablespace SYSTEM, o aquellos que contengan segmentos de rollback activos, un tablespace se puede poner offline, estando la BD funcionando. Un tablespace se puede poner en modo read-only o read-write, y viceversa.
TABLESPACES
Tipos de tablespaces: permanent (datos: system, sysaux, aplicaciones), undo (rollback) y temporary (sort). Oracle 10g permite crear bigfile tablespaces, de hasta 8EB (millones de terabytes).
TABLESPACES
85
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TABLESPACES
86
CREAR UN TABLESPACE
CREATE [BIGFILE] TABLESPACE nombre [DATAFILE clasula_fichero] [MINIMUM EXTENT n[K|M]] [BLOCKSIZE n[K]] [LOGGING|NOLOGGING] [clasula_extensiones] [DEFAULT clasula_storage] [ONLINE|OFFLINE] [PERMANENT|TEMPORARY];
clasula_fichero :== nombre_fichero [SIZE n[K|M] [REUSE] | REUSE] [AUTOEXTEND ON|OFF [NEXT n[K|M]] [MAXSIZE n[K|M]]] clasula_extensiones :== EXTENT MANAGEMENT [DICTIONARY | LOCAL [AUTOALLOCATE | UNIFORM [SIZE n[K|M]] [SEGMENT SPACE MANAGEMENT AUTO | MANUAL]]] clasula_storage :== STORAGE (INITIAL n[K|M] [NEXT n[K|M]] [MINEXTENTS n] [MAXEXTENTS n] [PCTINCREASE n])
El tablespace SYSAUX (>=10g) permite que en el tablespace SYSTEM slo est el DD, aglutinando las utilidades del sistema (Repositorio OEM, Intermedia, Spatial, OLAP, RMAN, XML DB, etc). Qu hay en el tablespace SYSAUX y cunto ocupa?
select occupant_name, space_usage_kbytes from v$sysaux_occupants;
Respecto al resto de tablespaces (no SYSTEM), se recomienda separar los ficheros de redo, luego datos de ndices, despus rollback y segmentos temporales. Tambin es bueno separar datos estticos y dinmicos.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 TABLESPACES
CREATE TABLESPACE DATOS_USUARIOS DATAFILE /u02/oradata/CURSOxy/datos_usuarios01.dbf SIZE 16M AUTOEXTEND ON NEXT 1M MAXSIZE 32M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K SEGMENT SPACE MANAGEMENT AUTO; CREATE TABLESPACE DATOS_USUARIOS DATAFILE /u02/oradata/CURSOxy/datos_usuarios01.dbf SIZE 16M AUTOEXTEND ON NEXT 1M MAXSIZE 32M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE (INITIAL 16K NEXT 32K MAXEXTENTS 10 PCTINCREASE 50);
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 TABLESPACES
87
88
TABLESPACES UNDO
En Oracle 9i se introducen los segmentos de undo automticos, que permiten sustituir la gestin manual de segmentos de rollback. Con Oracle 10g todava se puede optar por la gestin manual, pero se avisa de que ya no estar disponible en futuras versiones. Los tablespaces undo slo pueden contener segmentos de rollback (ningn otro tipo de objeto). Los llamaremos tablespaces de rollback. Son del tipo manejados localmente (de forma automtica).
CREATE UNDO TABLESPACE undo01 DATAFILE /u03/oradata/CURSOxy/undo01.dbf SIZE 100M;
Es el mtodo por defecto en Oracle8i. Las extensiones libres quedan registradas en tablas del DD. Cada vez que una extensin se libera o se reserva, las tablas correspondientes del DD deben ser actualizadas. Permite definir STORAGE flexible a los segmentos (los locales NO).
TABLESPACES
Un tablespace de rollback slo se usa cuando se activa la gestin automtica de rollback en la BD (undo_management=auto y undo_tablespace=nombre_tablespace). Slo puede haber un tablespace de rollback activo en un momento dado.
TABLESPACES
89
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
90
TABLESPACE TEMPORAL POR DEFECTO DE LA BD Y TABLESPACE POR DEFECTO Desde Oracle9i, al crear la BD se puede
(y se debe) indicar un tablespace temporal por defecto para aquellos usuarios a los que no se le asigne uno explcitamamente. Si no se hace as, por defecto, se asignar el tablespace SYSTEM (sto hay que evitarlo a toda costa). EL tablespace temporal por defecto de la BD se puede cambiar: Tambin se puede crear con la BD (CREATE DATABASE), en cuyo caso, ser del tipo local. Al asignar a la BD un tablespace temporal por defecto, todos los usuarios que no tengan uno asignado explcitamente, pasarn a tenerlo. Y cuando cambiemos el tablespace temporal por defecto de la BD, cambiar para todos los usuarios que no lo tengan asignado de forma explcita. No podemos borrarlo hasta que hayamos asignado otro. No podemos ponerlo offline. Desde Oracle10, adems, se puede definir un tablespace por defecto para los usuarios a los que no se le asigna uno explcitamente, en el momento de la creacin de la BD con la clasula DEFAULT TABLESPACE nombre. Adems se puede cambiar en cualquier momento con (ojo!!!, se cambiar para todos los usuarios, incluso los q tuviesen asignado uno concreto, excepto especiales como SYS, SYSTEM, DBSNMP, OUTLN, etc): ALTER DATABASE DEFAULT TABLESPACE nombre;
TABLESPACES
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE nombre_tablespace; Nota: nombre_tablespace podra ser un nombre de grupo.
Desde Oracle10g se pueden agrupar tablespaces temporales, repartiendo las ordenaciones entre ellos (cada ordenacin slo usa un segmento de sort en un tablespace).
ALTER TABLESPACE temp1 TABLESPACE GROUP gtemp; ALTER TABLESPACE temp2 TABLESPACE GROUP gtemp; ALTER TABLESPACE temp3 TABLESPACE GROUP gtemp; ALTER TABLESPACE temp3 TABLESPACE GROUP ''; ALTER USER nombre_usuario TEMPORARY TABLESPACE gtemp;
TABLESPACES
91
92
Los segmentos que contiene pueden ser borrados (por ejemplo drop table, porque slo afectan al DD). En tablespaces locales, el segmento borrado pasa a ser del tipo temporal. Desde Oracle 10g, se puede renombrar un tablespace (execpto SYSTEM y SYSAUX), incluso estando READ ONLY: ALTER TABLESPACE nombre1 RENAME TO nombre2;
TABLESPACES
Al poner un tablespace en modo READ-ONLY, slo se permiten operaciones de lectura sobre sus datos; sin embargo los segmentos que contiene pueden ser borrados (por ejemplo drop table, porque slo afecta al DD). En tablespaces locales, el segmento borrado pasa a ser del tipo temporal. Sintaxis: ALTER TABLESPACE nombre READ [ONLY | WRITE]; Un tablespace BIGFILE puede tener hasta 8Exabytes (millones de Tb). No pueden serlo ni SYSTEM ni SYSAUX. CREATE BIGFILE TABLESPACE nombre DATAFILE '/u02/oradata/CURSOxy/nombre01.dbf' size 50G EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
93
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TABLESPACES
94
BORRAR UN TABLESPACE
Al borrar un tablespace, se elimina del DD. No podemos borrar SYSTEM/SYSAUX. Los ficheros asociados no se borran (hacerlo desde el SO despus de eliminar el tablespace), a no ser que usemos INCLUDING CONTENTS AND DATAFILES (>= Oracle9i). No podremos borrarlo si contiene objetos, a menos que indiquemos NCLUDING CONTENTS. Tampoco podemos hacerlo si existen foreign keys apuntando a sus objetos, a menos que adems indiquemos CASCADE CONSTRAINTS (se borrarn las citadas constraints FK). Se recomienda poner el tablespace OFFLINE antes de borrarlo, para asegurarnos que nadie est usando su contenido.
DROP TABLESPACE nombre_tablespace [INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]];
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 TABLESPACES
REDIMENSIONAR UN TABLESPACE
Podemos cambiar el tamao de un tablespace aadiendo un fichero al mismo, o bien cambiando el tamao del fichero que lo compone.
ALTER TABLESPACE users ADD DATAFILE /u02/oradata/CURSOxy/users02.dbf size 1M; ALTER DATABASE DATAFILE /u02/oradata/CURSOxy/users01.dbf resize 2M; Podemos reducir el tamao de un fichero, pero no podremos hacerlo si hay espacio ocupado al final del mismo. ALTER DATABASE DATAFILE /u02/oradata/CURSOxy/users01.dbf SIZE 1M AUTOEXTEND ON NEXT 1M MAXSIZE 4M; Podemos indicar UNLIMITED como MAXSIZE. Y las unidades tambin pueden ser K (p.e. 512K) o bytes (p.e. 100000).
Una opcin interesante es programar el crecimiento del fichero que compone el tablespace:
Slo un tablespace BIGFILE se puede redimensionar con ALTER TABLESPACE, sin indicar DATAFILE (>=10g): Podemos borrar fichero vaco de tablespace, con ms de uno (>=10g):
ALTER TABLESPACE users DROP DATAFILE '/u02/oradata/CURSOXY/users02.dbf';
95
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 TABLESPACES
96
REDIMENSIONAR UN TABLESPACE
MOVER FICHEROS
Existen dos mtodos para mover ficheros: con ALTER TABLESPACE y con ALTER DATABASE. El primero slo es aplicable a tablespaces que no son el SYSTEM, y que no contienen segmentos de rollback o temporales activos:
Poner el tablespace offline Mover el fichero a nivel del S.O. ALTER TABLESPACE RENAME DATAFILE /path1/fichero1 TO /path2/fichero2; Poner el tablespace online. Parar la BD. Montar la BD (startup mount). Mover el fichero desde el S.O. ALTER DATABASE RENAME FILE /path2/fichero2; Abrir la BD.
El segundo requiere que la BD est slo montada, y es la nica forma de mover el tablespace SYSTEM:
/path1/fichero1
TO
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TABLESPACES
97
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TABLESPACES
98
PURGE RECYCLEBIN | DBA_RECYCLEBIN; PURGE TABLESPACE nomtsp [USER usuario]; Borrar directamente sin pasar por RECYCLEBIN: DROP TABLE tabla PURGE;
TABLESPACES
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
99
AWR (AUTOMATIC WORKLOAD REPOSITORY) Genera y procesa estadsticas de rendimiento para que el propio servidor
Oracle pueda detectar problemas y dar recomendaciones de ajuste (usando ADDM). Se activa por defecto (statistics_level = TYPICAL u ALL; se desactiva con BASIC). Genera snapshots automticamente. Tb manualmente con paquete DBMS_WORKLOAD_REPOSITORY. Informes: AWR: $ORACLE_HOME/rdbms/admin/awrrpt.sql. Permite generar HTML. ASH (V$ACTIVE_SESSION_HISTORY): $ORACLE_HOME/rdbms/admin/ashrpt.sql. Vistas del DD: V$ACTIVE_SESSION_HISTORY (ASH, aade sesiones activas cada segundo a buffer circular en SGA) V$METRIC*: V$METRIC, V$METRICGROUP, V$METRICNAME, V$METRIC_HISTORY. DBA_HIST*: DBA_HIST_ACTIVE_SESS_HISTORY, DBA_HIST_BASELINE, DBA_HIST_DATABASE_INSTANCE, DBA_HIST_SNAPSHOT, DBA_HIST_SQL_PLAN, DBA_HIST_WR_CONTROL. Ms informacin sobre AWR:
VISTAS DEL DD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TABLESPACES
102
PRACTICAS TEMA 5
PRACTICAS TEMA 5
5.2. Crea el tablespace DATACURSOxy, NO manejado localmente, con el fichero /u02/oradata/datacursoxy01.dbf, con un tamao de 1M. Crea 4 tablas (TABLA01, TABLA02, TABLA03, TABLA04) de 256K sobre dicho tablespace. Borra las tablas TABLA02 y TABLA04, y crea una tabla TABLA05 de 512K. Qu ocurre y por qu?. Borra el tablespace DATACURSOxy y cralo de nuevo, manejado localmente. Vuelve a crear las tablas y repite el borrado de TABLA02 y TABLA04; y la creacin de TABLA05 de 512K. Qu ocurre esta vez y por qu?
Create tablespace DATACURSOxy datafile /u02/oradata/CURSOxy/datacursoxy01.dbf size 1M extent management dictionary; create table TABLA01 (C1 VARCHAR2(4000)) tablespace DATACURSOxy storage (initial 256K minextents 1); drop table TABLA02; create table TABLA05 (C1 VARCHAR2(4000)) tablespace DATACURSOxy storage (initial 512K minextents 1); alter tablespace DATACURSOxy offline; drop tablespace DATACURSOxy including contents and datafiles; create tablespace DATACURSOxy datafile /u02/oradata/CURSOxy/datacursoxy01.dbf size 1M extent management local uniform size 256K;
TABLESPACES
5.1. Consultar los tablespaces que componen la BD. Comprobar los ficheros que tienen cada uno de ellos.
Select * from dba_tablespaces; select * from v$tablespace select * from dba_data_files; select * from v$datafile; select * from dba_temp_files; select * from v$tempfile;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TABLESPACES
103
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
104
PRACTICAS TEMA 5
5.3. Pon el tablespace DATACURSOxy en modo READ-ONLY. Inserta una fila en alguna de sus tablas, qu ocurre?. Borra la tabla TABLA01, por qu se puede borrar?. Deja el tablespace DATACURSOxy en modo READ-WRITE. Repite el insert sobre TABLA01.
alter tablespace DATACURSOxy read only; insert into TABLA01 values (PRIMERA FILA); drop table TABLA01; alter tablespace DATACURSOxy read write; insert into TABLA01 values (PRIMERA FILA);
PRACTICAS TEMA 5
5.5. Crea el tablespace INDCURSOxy de 1M con el fichero /u02/oradata/CURSOxy/indcursoxy01.dbf. Muvelo al directorio /u03/oradata/CURSOxy.
Create tablespace INDCURSOxy datafile /u02/oradata/CURSOxy/indcursoxy01.dbf size 1M; alter tablespace CURSOxy offline; mv /u02/oradata/CURSOxy/indcursoxy01.dbf /u03/oradata/CURSOxy/indcursoxy01.dbf alter tablespace rename datafile /u02/oradata/CURSOxy/indcursoxy01.dbf to /u03/oradata/CURSOxy/indcursoxy01.dbf; alter tablespace INDCURSOxy online; select * from dba_data_files;
5.4. Crea una tabla TABLA06 en el tablespace DATACURSOxy, qu ocurre y por qu?. Activa el autoextend de su fichero, ajustando next 256K y maxsize 2M. Vuelve a crear la tabla TABLA06.
Create table TABLA06 (C1 varchar2(4000)) tablespace DATACURSOxy storage (initial 256K minextents 1); alter database datafile /u02/oradata/CURSOxy/datacursoxy01.dbf autoextend on next 256K maxsize 2M; Create table TABLA06 (C1 varchar2(4000)) tablespace DATACURSOxy storage (initial 256K minextents 1);
TABLESPACES
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
105
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TABLESPACES
106
Parmetros de inicializacin. Cuota de UNDO. Espacio almac. Creacin, modificacin, borrado e intercambio. Vistas. Dimensionado manual y automtico. Periodo de permanencia. Retention guarantee.
108
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRANSACCIN.
Unidad lgica de trabajo 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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
109
ESPACIO DE UNDO
110
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
112
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
113
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
114
115
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
116
117
ESPACIO DE UNDO
118
PARAMETROS OBSOLETOS.
Existen distintos parmetros usados en versiones anteriores, relacionados con undo -manual y automtico-, que han quedado obsoletos:
UNDO_SUPPRESS_ERRORS MAX_ROLLBACK_SEGMENTS
ROW_LOCKING
SERIALIZABLE
Ambas formas NO pueden simultanearse. La forma de gestin, manual o automtica, se determina en el arranque de la base de datos mediante el parmetro de inicializacin UNDO_MANAGEMENT.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ESPACIO DE UNDO
TRANSACTION_AUDITING
119
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
120
UNDO_MANAGEMENT = AUTO
Al arrancar se busca un espacio de almacenamiento (tablespace) de undo (existente desde la creacin de la bd o creado posteriormente), el primero disponible. Si no existe, se usa el segmento de rollback SYSTEM, y se genera un mensaje de error en el fichero de alertas. Error!.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
121
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
122
Esp. de alm. con la opcin AUTOEXTEND. Fijar el periodo de retencin para LOB. Se desea especificar la retention guarantee.
Al arrancar en modo automtico, cualquier parmetro relativo al modo manual usado en el fichero de parmetros es ignorado.
El sistema calcula automticamente el periodo de permanencia, para satisfacer los requerimientos de las consultas, basndose en el uso y tamao del esp.alm. de undo e ignorando el valor UNDO_RETENTION, si es necesario, a menos que retention guarantee est activa (si se necesita espacio para las transacciones activas y no hay suficiente , se reutiliza el existente y puede provocar el fallo de consultas muy largas).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ESPACIO DE UNDO
123
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
124
- Modificacin.
-
- Borrado.
-
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
125
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
126
127
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
128
130
Slo es posible borrar si el espacio de undo no est en uso. Al borrar se elimina todo su contenido.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
131
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
132
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 est en lnea mientras se realiza la operacin; y pueden ejecutarse transacciones, al terminar todas aquellas comenzadas despues de la sentencia se asignan al nuevo espacio de undo.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ESPACIO DE UNDO
133
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
134
V$UNDOSTAT. Estadsticas para monitorizar y ajustar el espacio de undo. V$ROLLSTAT. Informa sobre el comportamiento segmentos undo en el espacio de undo. de los
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 UNDO
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
135
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
136
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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ESPACIO DE UNDO
138
Puede generarse un informe de texto o HTML mediante AWR ejecutando SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql
139
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
140
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
141
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
142
El tiempo que el sistema retiene los datos en undo para el esp.alm. actual puede obtenerse consultando 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 han de consultarse en la vista DBA_HIST_UNDOSTAT).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
143
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
144
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
145
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
146
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
147
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
148
SEGMENTOS DE ROLLBACK.
Toda base de datos posee uno o ms segmentos de rollback. Contiene/n los valores antiguos de datos modificados por cada transaccin. La informacin se dispone en mltiples entradas de rollback que contienen informacin de bloque y el dato tal como exista antes de la operacin involucrada en la transaccin. Estas entradas modifican los bloques del segmento de rollback y Oracle almacena todos los cambios hechos en la bitcora (redo log).
ESPACIO DE UNDO
Segmento: Un conjunto de extensiones que contiene todos los datos para una estructura lgica de almacenamiento especifica en un tablespace. Tipos de segmentos:
- Segmentos de datos. - Segmentos de ndices. - Segmentos temporales. - Segmentos de rollback.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
149
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
150
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
152
153
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
154
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
155
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
156
Se crea al mismo tiempo que la base de datos. Reside en el tablespace SYSTEM y usa sus parmetros de almacenamiento por defecto. No puede borrarse. Si existen diversos segmentos de rollback, se emplea para transacciones especiales del sistema, y las transacciones de usuario son distribuidas entre otros segmentos de rollback. Se recomienda crear segmentos adicionales al SYSTEM tras instalar la base de datos. Si hay excesivas transacciones para el resto de segmentos, el segmento SYSTEM tambin es usado.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ESPACIO DE UNDO
158
RECOMENDACIONES.
CREACIN.
Debe poseerse el privilegio create rollback segment.
Se recomienda crear un espacio de almacenamiento exclusivo que albergue a los segmentos de rollback. Ventajas:
- Puede ser mantenido en lnea de forma permanente. - No impide que otros espacios de almacenamiento sean puestos fuera de lnea.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
160
CREACIN. RECOMENDACIONES.
INITIAL y NEXT deben ser del mismo valor: Se consiguen as extensiones de tamao uniforme. Debe crearse un adecuado nmero de extensiones iniciales para minimizar la necesidad de extensin. No debe fijarse MAXEXTENTS=UNLIMITED. Se evita as que se extienda de forma ilimitada debido a un error de programacin.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
161
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
162
Lo ideal es crear un nmero de segmentos de tamao apropiado para cada tipo de transaccin y asignar explicitamente las transaccion atpicas a aquellos que corresponda (por ejemplo, transacciones largas).
163
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ESPACIO DE UNDO
164
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
165
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
166
MODIFICACIN DE PARMETROS.
Sintaxis:
ALTER ROLLBACK SEGMENT <NOMBRE> STORAGE (INITIAL <XX> NEXT <XX> MINEXTENTS <XX> MAXEXTENTS <XX> OPTIMAL <XX> );
DECREMENTO.
Manualmente puede reducirse el tamao de un segmento derollback. El tamao final depende del espacio libre en el segmento y de cuantas transacciones activas usan el segmento. Si no se especifica un tamao concreto se intenta ajustar al del parmetro de creacin OPTIMAL. Si no se ha determinado, al del parmetro MINEXTENTS. Sintaxis: ALTER ROLLBACK SEGMENT <NOMBRE> SHRINK TO <XX> K/M; ALTER ROLLBACK SEGMENT <NOMBRE> SHRINK;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
167
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
168
BORRADO.
Debe poseerse el privilegio drop rollback segment. El segmento debe estar fuera de lnea. Sintaxis:
DROP ROLLBACK SEGMENT <NOMBRE>;
Un ejemplo de uso es asignar transacciones que insertan, actualizan o borran grandes cantidades de informacin a segmentos lo bastante grandes como para contener la informacin de rollback de la transaccin.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
169
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESPACIO DE UNDO
170
VISTAS.
V$ROLLNAME. Nombres de los segmentos de rollback en
lnea.
V$ROLLSTAT. Estadsticas sobre segmentos de rollback. V$TRANSACTION. Transacciones activas en el sistema. DBA_ROLLBACK_SEGS.
rollback de la bd. Informacin sobre segmentos de
171
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
172
174
USUARIOS Y SU AUTENTIFICACIN.
USUARIOS
Cada base de datos tiene una lista valida de usuarios. Para acceder a la misma un usuario debe ejecutar un aplicacin y conectarse a la instancia usando un nombre valido previamente definido. 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:
- Por base de datos. - Por sistema operativo (autentificacin externa).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
175
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
176
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. El ejemplo ms comn de la autentificacin por sistema operativo es los usuarios ops$ o 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$).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
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. Sintaxis:
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;
177
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
178
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.
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.
Si se omite la clausula, los objetos se crean en el esp. alm. por defecto de la bd (default user tablespace) que se indica mediante la sentencia: alter database default tablespace ...; si este no se ha especificado el espacio por defecto es SYSTEM (Error!).
Identificacin.
Un usuario autentificado de forma externa se ha de crear con la clusula IDENTIFIED EXTERNALLY.
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 clausula, el espacio temporal por defecto es el SYSTEM (Error!) a menos que se haya fijado el valor del esp. temporal por defecto (default temporary tablespace): alter database default temporary tablespace ...; .
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
179
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
180
CREACIN DE USUARIOS.
QUOTA.
Indica la cantidad mxima de espacio que un usuario puede utilizar en un determinado espacio de almacenamiento. Puede indicarse cuota en mltiples espacios al tiempo. El creador del usuario puede indicar cuota sobre espacios de almacenamiento aunque l no las posea. Por defecto no se tiene cuota en ningn espacio de almacenamiento. Indicando UNLIMITED, es ilimitado el espacio a usar. Pueden usarse distintas abreviaturas para indicar el tamao: kilobytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P), o exabytes (E). 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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
CREACIN DE USUARIOS.
PROFILE.
Indica el perfil a asignar al usuario (especifica limitaciones en recursos del sistema y restricciones). Si se omite se asigna el perfil DEFAULT.
PASSWORD EXPIRE.
Fuerza al usuario a cambiar la clave antes de conectarse a la base de datos.
ACCOUNT.
ACCOUNT LOCK, bloquea la cuenta de usuario y deshabilita el acceso. ACCOUNT UNLOCK, desbloquea la cuenta de usuario y permite al acceso.
181
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
182
183
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
184
MODIFICACIN DE USUARIOS.
Los usuarios pueden cambiar sus propias claves, sin embargo para cambiar cualquier otro parmetro es necesario el privilegio ALTER USER. Sintaxis: 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;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
MODIFICACIN DE USUARIOS.
DEFAULT ROLE. Indica los roles otorgados 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, se limitan posteriormente mediante ALTER USER.
185
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
186
BORRADO DE USUARIOS.
Al borrar un usuario el esquema asociado, con todos sus objeto, desaparecen. 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). Es necesario tener el privilegio de sistemas DROP USER.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
BORRADO DE USUARIOS.
Oracle no borra esquemas de usuario no vacios 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:
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.
187
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
188
PERFILES
189
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
190
PERFILES.
Est constituido por un conjunto de lmites de recursos de la base de datos. Diferentes perfiles pueden ser asignados a diferentes usuarios. 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 RESOURCE_LIMIT = TRUE/FALSE.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
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;
191
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
SYSTEM
SET
192
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).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
193
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
194
PASSWORD_LOCK_TIME. Nmero de das que la cuenta estar bloqueada despus de un cierto nmero de fallos de conexin indicado. 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.
195
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
196
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. Ejemplo de creacin de perfil.
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;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
FUNCIN DE VERIFICACIN.
La funcin de verificacin de contrasea debe pertenecer al usuario SYS. Realiza las comprobaciones: La contrasea satisface un mnimo de longitud. La contrasea no coincide con el nombre de usuario.
197
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
198
MODIFICACIN DE PERFILES.
ASIGNACIN 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;
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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
199
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
200
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;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
Usuarios de la base de datos. Usuarios visibles al usuario actual. Describe el usuario actual. Cuotas de espacio para usuarios. Parmetros de contrasea asignados al usuario. Parmetros de recursos asignados al usuario. Informacin sobre sesiones. Estadsticas de V$STATNAME). sesin (ver tambin
202
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
PRIVILEGIOS.
Derecho a ejecutar un tipo determinado de sentencia SQL o a acceder a un objeto de otro usuario. Pueden asignarse a usuarios o, preferiblemente, a roles. Es importante no excederse en la concesin de privilegios. Se distinguen dos tipos:
PRIVILEGIOS
- De sistema: Permite realizar determinadas acciones en la base de datos (Por ejemplo, crear espacios de almacenamiento, crear usuarios, ) o en cualquier esquema. - Sobre objetos: Permite a un usuario acceder y manipular o ejecutar objetos concretos (tablas, vistas, secuencias, procedimientos, funciones o paquetes).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
203
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
204
PRIVILEGIOS DE SISTEMA.
DATABASE.
ALTER DATABASE ALTER SYSTEM AUDIT SYSTEM
PRIVILEGIOS DE SISTEMA.
PROCEDURE
CREATE PROCEDURE CREATE ANY PROCEDURE ALTER ANY PROCEDURE DROP ANY PROCEDURE EXECUTE ANY PROCEDURE
DATABASE LINKS
CREATE DATABASE LINK CREATE PUBLIC DATABASE LINK DROP PUBLIC DATABASE LINK
PROFILES
CREATE PROFILE ALTER PROFILE DROP PROFILE
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
GESTIN DE USUARIOS Y RECURSOS
ROLES
CREATE ROLE ALTER ANY ROLE DROP ANY ROLE GRANT ANY ROLE
GESTIN DE USUARIOS Y RECURSOS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
205
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
206
PRIVILEGIOS DE SISTEMA.
ROLLBACK SEGMENTS
CREATE ROLLBACK SEGMENT ALTER ROLLBACK SEGMENT DROP ROLLBACK SEGMENT
PRIVILEGIOS DE SISTEMA.
USUARIO
CREATE USER ALTER USER DROP USER
SESSIONS
CREATE SESSION ALTER SESSION
OTROS
ANALYZE ANY AUDIT ANY COMMENT ANY TABLE ...
TABLESPACES
CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE MANAGE TABLESPACE UNLIMITED TABLESPACE
Nota: Consultar Oracle Database SQL Reference para una lista completa de privilegios de sistema.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
207
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
208
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!).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
Al especificar ALL PRIVILEGES se otorgan todos los privilegios de sistema (Peligro!). La clusula PUBLIC otorga el privilegio a todos los usuarios (Peligro!).
GESTIN DE USUARIOS Y RECURSOS
209
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
210
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.
GESTIN DE USUARIOS Y RECURSOS
211
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
212
VISTAS
DELETE REFERENCES - FLASHBACK - SELECT - INSERT - UPDATE
SECUENCIAS
ALTER - SELECT
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!).
GESTIN DE USUARIOS Y RECURSOS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
213
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
214
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;
CASCADE CONSTRAINTS elimina cualquier clusula de integridad referencial que aquel a quien se retiran los permisos haya definido usando REFERENCES o ALL PRIVILEGES. Quien otorgo privilegios solo puede revocarlos a aquellos usuarios a quienes se los ha concedido. En el caso de GRANT OPTION hay un efecto en cascada cuando se retira un privilegio.
GESTIN DE USUARIOS Y RECURSOS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
215
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
216
ROLES.
Es un grupo de privilegios, de sistema o sobre objetos, a los que se les da un nombre y pueden ser asignados a otros usuarios y roles. Caractersticas:
ROLES
- Pueden otorgarse a cualquier usuario o rol, pero no a si mismo y tampoco de forma circular. - Pueden tener contrasea. - Su nombre es nico en la bd, distinto a cualquier otro nombre de usuario o rol. - No pertenecen a ningn esquema.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
217
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
218
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. Roles asignados a un usuario pueden ser activados o desactivados temporalmente. Mejora aplicaciones. Cuando un usuario ejecuta una determinada aplicacin puede activarse, o desctivarse, selectivamente 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.
GESTIN DE USUARIOS Y RECURSOS
ROLES PREDEFINIDOS.
Oracle proporciona roles predefinidos como ayuda a la administracin de base de datos, entre los que se encuentran:
CONNECT. Incluye slo el privilegio CREATE SESSION. RESOURCE. Incluye CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER y CREATE TYPE. DBA. Todo privilegio de sistema WITH ADMIN OPTION. EXP_FULL_DATABASE. Privilegios para realizar exportaciones completas e incrementales de la base de datos. IMP_FULL_DATABASE. Idem para importaciones completas.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
219
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
220
ROLES PREDEFINIDOS.
DELETE_CATALOG_ROLE. Privilegio de borrado en la tabla de auditora de sistema (AUD$). 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.
CREACIN DE ROLES.
Debe poseerse el privilegio CREATE ROLE. El nombre debe ser diferente a cualquier nombre de rol o usuario existente. Sintaxis:
CREATE ROLE <rol> IDENTIFIED BY <contrasea>; CREATE ROLE <rol> NOT IDENTIFIED/<>;
Los roles CONNECT, RESOURCE y DBA se mantienen por compatibilidad con versiones anteriores de Oracle. No se asegura que sigan existiendo en un futuro. 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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
La clusula IDENTIFIED BY indica como debe ser autorizado antes de usarse por un usuario al que se la ha otorgado.
221
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
222
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>;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
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.
223
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 GESTIN DE USUARIOS Y RECURSOS
224
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).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
225
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
226
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>} ]...
228
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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
229
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
230
VISTAS.
DATABASE_PROPERTIES ... Propiedades de la bd. DBA_USERS ... Usuarios de la bd. DBA_ROLES ... Roles existentes en la bd. DBA_ROLE_PRIVS ... Roles concedidos a usuarios y roles. DBA_SYS_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_QUOTAS ... Cuotas de espacio para usuarios. DBA_PROFILES ... Perfiles en la bd.
GESTIN DE USUARIOS Y RECURSOS
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).
GESTIN DE USUARIOS Y RECURSOS
231
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
232
VISTAS.
ROLE_ROLE_PRIVS ... Roles concedidos a otros roles. ROLE_SYS_PRIVS ... Privilegios de sistema concedidos a roles. ROLE_TAB_PRIVS ... Privilegios sobre objetos concedidos a roles. DBA_CONNECT_ROLE_GRANTEES ... Usuarios con privilegio CONNECT. USER_PASSWORD_LIMITS ... Parmetros contrasea usuario. USER_RESOURCE_LIMITS ... Lmites de recursos por usuario. SESSION_PRIVS ... Privilegios disponibles en la sesin. SESSION_ROLES ... Roles activos en la sesin. V$SESSION ... Informacin de sesin.
GESTIN DE USUARIOS Y RECURSOS
TEMA 8. TRABAJOS.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
233
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
234
MIGRACION A DBMS_SCHEDULER. CREACION DE TRABAJOS. MODIFICACION DE TRABAJOS. BORRADO DE TRABAJOS. PLANIFICADOR (SCHEDULER). ARQUITECTURA DEL PLANIFICADOR. NOMENCLATURA OBJETOS. PRIVILEGIOS PLANIFICADOR.
TRABAJOS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
235
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
236
Para gestionar la cola de trabajos se dispone, por tanto, del paquete DBMS_SCHEDULER. Aunque DBMS_JOB sigue estando disponible, no es probable que lo est en un futuro. Dentro del paquete DBMS_SCHEDULER existen diversos procedimientos como CREATE_JOB, DROP_JOB, STOP_JOB, ... que permiten planificar los trabajos automatizados.
TRABAJOS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
237
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
238
Usando DBMS_SCHEDULER:
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; /
Usando DBMS_SCHEDULER:
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; /
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
239
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
240
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 determinada o basndose en eventos. en una fecha
Usando DBMS_SCHEDULER:
BEGIN DBMS_SCHEDULER.DROP_JOB('myjob1'); END; /
Agrupar trabajos en clases y priorizar entre las mismas (incluso modificar la priorizacin en funcin del tiempo). Gestionar y monitorizar trabajos.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 TRABAJOS
241
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
242
244
245
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
246
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.
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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
247
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
248
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 esquemaGRANT ALTER myjob1 TO scott;
PRIVILEGIOS PLANIFICADOR.
Una alternativa para administrar el planificador es el privilegio MANAGE SCHEDULER. Por ejemplo:
GRANT MANAGE SCHEDULER TO <usuario>;
El usuario podr crear, modificar, o borrar ventanas de ejecucion, clases de trabajo o grupos de ventanas.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 TRABAJOS
249
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
250
PRIVILEGIOS PLANIFICADOR.
PRIVILEGIOS PLANIFICADOR.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
251
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
252
PROCEDIMIENTOS PLANIFICADOR.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
253
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
254
job_type Tipo de trabajo creado. Algunos de los tipos soportados 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).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
255
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
256
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
257
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
258
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
259
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
260
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;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 TRABAJOS
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;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
261
TRABAJOS
262
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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
263
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
264
265
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
266
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
267
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
268
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. Se debe ser el propietario del objeto, tener privilegio ALTER en el mismo o poseer el privilegio CREATE ANY JOB.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
269
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
270
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
271
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
272
VISTAS.
DBA_SCHEDULER_JOB_ARGS. Argumentos de trabajos. DBA_SCHEDULER_JOB_LOG. Cambios de estado de trabajos. DBA_SCHEDULER_JOB_RUN_DETAILS. ejecucin de trabajos. Detalles sobre la
DBA_SCHEDULER_JOBS. Informacin sobre trabajos en la bd. DBA_SCHEDULER_RUNNING_JOBS. Trabajos en ejecucin. DBA_SCHEDULER_SCHEDULES. Planificacin de trabajos. SESSION_PRIVS. Privilegios de sistema actuales. V$LOCK. Bloqueos mantenidos por el servidor. V$SESSION. Informacin de sesiones actuales.
TRABAJOS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TRABAJOS
273
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
274
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.
AUDITORIA
TEMA 9. AUDITORA.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
275
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
276
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.
AUDITORIA
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, ..) Detectar privilegios incorrectamente otorgados a usuarios (que permiten realizar acciones inapropiadas, las cuales son detectadas) Recoger datos sobre actividades concretas (tablas que se actualizan, usuarios concurrentes, ) Detectar problemas con la implementacin de polticas de seguridad (puntos dbiles que generan registros)
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
278
TIPOS DE AUDITORA.
Existen varios tipos:
- 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 create table, alter table y drop table). - De privilegios. Auditora de privilegios de sistema (por ejemplo, AUDIT CREATE TABLE). - De esquema. Sentencias especficas sobre objetos de un esquema concreto (p. ej. AUDIT SELECT ON <nombre_tabla>). - De grano fino (fine grained). Acceso a datos concretos y cambios en los mismos a nivel columna.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 AUDITORIA
TIPOS DE AUDITORA.
Si se habilitan 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 pues audita sentencias especficas.
279
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
280
En la auditora bsica (sentencias, privilegios, esquemas) 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$).
AUDITORIA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
281
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
282
la
base
de
datos
con
privilegios
de
284
283
AUDITORIA
El valor XML indica que los registros se escriben como ficheros xml en el s.o.. Pueden consultarse mediante la vista V$XML_AUDIT_TRAIL. 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. Habilitar la auditora de grano fino o la del SYS no precisa indicar valor para AUDIT_TRAIL.
AUDITORIA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
285
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
286
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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 AUDITORIA
287
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
288
AUDITORA DE SENTENCIAS.
Sintaxis:
AUDIT <sentencia1, sentencian>/ALL BY <usuario1, usuarion> BY SESSION/ACCESS WHENEVER SUCESSFUL/NOT SUCCESSFUL;
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. Si se omiten las dos opciones anteriores, se realiza la auditora independientemente del xito o fallo de la sentencia.
289
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 AUDITORIA
La clusula BY <usuario> permite restringir la auditora slo a aquellas sentencias ejecutadas por los usuarios indicados. 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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 AUDITORIA
290
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.
291
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
292
Rollback Statement Create rollback segment/ alter rollback segment / drop rollback segment Sequence Session Synonym System audit System grant Table Tablespace Create sequence / drop sequence Conexiones
- valor por defecto y nico BY SESSION -
Create synonym / drop synonym Audit sentencias_sql / Noaudit sentencias_sql Grant y revoke privilegios_sistema y roles Create table / drop table / truncate table Create tablespace / drop tablespace / alter tablespace
AUDITORIA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
293
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
294
AUDITORA DE PRIVILEGIOS.
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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
295
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
296
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
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
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
297
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
298
AUDITORA DE ESQUEMA.
Sintaxis:
AUDIT <clausula_objeto1, clausula_objeton>/ALL ON <esquema>.objeto_auditado/DEFAULT BY SESSION/ACCESS WHENEVER SUCESSFUL/NOT SUCCESSFUL;
AUDITORA DE ESQUEMA.
Puede auditarse todas las sentencias SELECT y DML permitidas por los privilegios de objetos. No pueden auditarse procedimientos paquetes, aunque s procedimientos individuales y tambin paquetes. incluidos en y funciones
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).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 AUDITORIA
299
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
300
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).
Vistas.
Audit / comment / delete / grant / insert / lock rename / select /update / flashback (slo a consultas flashback)
Secuencias.
Alter / audit / grant / select
Procedimientos.
Audit / execute / grant / rename
Vistas materializadas.
Alter / audit / comment / delete / index / insert / lock / select /update
AUDITORIA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
301
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
302
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 pseudocolumnas :
AUDITORA Y FLASHBACK.
Clausula FLASHBACK:
informacin
travs
de
distintas
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-).
AUDITORIA
AS OF 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.
AUDITORIA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
303
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
304
Nota: Esta posibilidad ser analizada en relacion a los mecanismos de copias de seguridad.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
305
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
306
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
307
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
308
309
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
310
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
311
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
312
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
313
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
314
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
316
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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
317
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
318
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.
AUDITORIA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
319
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
320
AUDITORA. RECOMENDACIONES.
Es necesario seguir una serie de reglas a la hora de auditar la actividad de la base de datos:
- 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.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
321
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
322
AUDITORA. RECOMENDACIONES.
- Proteger el audit trail, de forma que la infomacion 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 informacion.
AUDITORA. VISTAS.
AUDIT_ACTIONS. Descripciones para los cdigos de tipos de accin. ALL_DEF_AUDIT_OPTS. Opciones por defecto de auditora de objetos que sern aplicadas al crearlos. DBA_AUDIT_EXISTS. EXISTS. Registros producidos por AUDIT NOT
DBA_AUDIT_OBJECT. Registros para todos los objetos en el sistema. DBA_AUDIT_SESSION. desconexiones. Registros relativos a conexiones y
DBA_AUDIT_STATEMENT. Registros para las sentencias GRANT, REVOKE, AUDIT, NOAUDIT, y ALTER SYSTEM. DBA_AUDIT_TRAIL. Registros de audit trail.
AUDITORIA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
323
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
324
AUDITORA. VISTAS.
DBA_OBJ_AUDIT_OPTS. Opciones de auditora para todos los objetos. DBA_COMMON_AUDIT_TRAIL. Incluye registros de auditora bsica y de grano fino, as como el contenido de V$XML_AUDIT_TRAIL DBA_FGA_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. FLASBACK_TRANSACTION_QUERY. transacciones y operaciones realizadas. Informacin sobre
AUDITORA. VISTAS.
STMT_AUDIT_OPTION_MAP. Informacin cdigos de auditora.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
325
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
AUDITORIA
326
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
327
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
328
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
329
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
330
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
332
COPIAS DE SEGURIDAD.
Pueden distinguirsen dos tipos de copias: Copias de seguridad fsicas. 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 y data pump export/import.
Nota: durante este tema se asume que la base de datos est en modo noarchivelog.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
333
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
334
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!).
COPIA FISICA
Una buena estrategia de copias de seguridad incluir ambos tipos de copias, fsicas y lgicas, pues son complementarias.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
335
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
336
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 se realiza de forma diaria. La copia del software de base de datos se realiza con frecuencia semanal, 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.
el
crecimiento
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
337
COPIAS DE SEGURIDAD
338
Binarios. Ficheros NET. Comunicaciones. Enlaces a donde residen los ficheros de inicializacin. Ficheros de servidor y libreras bd requeridas.
/rdbms
bdump
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
339
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
340
Nombre base datos. Ficheros core dump. Progr. creacin bd. Fich. Export bd. init.ora Fich. traza usuario.
COPIAS DE SEGURIDAD
342
Se usar la sentencia TAR de sistema operativo: Copia los sistemas de ficheros indicados a un dispositivo fsico. El proceso debe ser automatizado y el cese de actividad de la base de datos afectar lo menos posible al servicio.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
343
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
344
FLASHBACK
345
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
346
348
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
349
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
350
351
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
352
PURGE RECYCLEBIN/DBA_RECYCLEBIN;
La sentencia FLASHBACK TABLE ... TO BEFORE DROP permite recuperar objetos del recycle bin:
FLASHBACK TABLE <nombre_tabla> TO BEFORE DROP RENAME TO <nombre_tabla>;
353
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
354
355
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
356
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 database link.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
exportaciones
importaciones
remotas
usando
358
357
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
359
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
360
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 usando la sentencia STATUS en modo interactivo de Data Pump.
COPIAS DE SEGURIDAD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
361
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
362
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>; Nota: Implica tener acceso a travs de bd pero no el poder acceder a travs de s.o.
363
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
364
4.- Si es un usuario privilegiado se emplea el valor por defecto en bd del directorio DATA_PUMP_DIR (que debe estar previamente creado). No confundir con la variable de entorno.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
365
366
- Tablespace (parmetro TABLESPACES). Debe tenerse el rol 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 EXP_FULL_DATABASE.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
368
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
369
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
370
STATUS = nn Frecuencia con que muestra el estado del trabajo junto a una descripcin de la operacin actual (por defecto es cero y no muestra informacin hasta acabar la exportacin de cada objeto).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
371
372
cliente.
El
trabajo
contina
374
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
375
376
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
378
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
380
381
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
382
383
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
384
cliente.
El
trabajo
contina
385
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
COPIAS DE SEGURIDAD
386
Adems los parmetros siguientes deben tener valores lo suficientemente altos como para permitir el mximo grado de paralelismo:
PROCESSES SESSIONS PARALLEL_MAX_SERVERS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
387
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
388
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
389
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
390
UTILIDAD EXPORT.
Para usar la utilidad debe tenerse el privilegio CREATE SESSION. Para exportar objetos pertenecientes a otro esquema de usuario debe tenerse asignado el rol EXP_FULL_DATABASE. Como resultado se obtiene un fichero .dmp (fichero de exportacin) y, opcionalmente, un fichero .log con el informe de incidencias. Es conveniente que todos los ficheros generados para usar en la exportacin o como resultado de ella estn en un sistema de ficheros independiente (p.ej. /export/<nombre_bd>).
UTILIDAD EXPORT.
Existen cuatro modos de realizar export: - Tabla. Cualquier usuario puede exportar tablas indicadas del esquema de usuario. - Usuario. Cualquier usuario puede exportar todos los objetos del esquema. - Tablespace. Permite mover tablespaces entre bases de datos. Slo posible con el rol EXP_FULL_DATABASE. - Full database. Exporta todos los objetos de la BD (no se exportan disparadores pertenecientes al esquema SYS). Slo posible con el rol EXP_FULL_DATABASE.
391
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
392
UTILIDAD EXPORT.
Aunque puede ejecutarse la utilidad e ir indicando en el prompt diferentes opciones, se recomienda usar un fichero de parmetros. Sintaxis: exp HELP=Y exp Proporciona ayuda en lnea. Modo interactivo (sin modo directo).
UTILIDAD EXPORT.
Parmetro
BUFFER COMPRESS (Y/N) CONSISTENT (Y/N) CONSTRAINTS (Y/N) DIRECT (Y/N) FILE FULL (Y/N)
Descripcin
Tamao bufer de datos (bytes). No tiene efecto al usar direct path. Incluir todos los datos en una extensin (no para LOB). Asegura la consistencia de los datos exportados cuando pueden estar siendo actualizados (p.ej. con la bd abierta). Incompatible con copias incrementales. Exportar o no las restricciones sobre tablas. Modo directo o no -convencional- de exportacin. Nombre del fichero expdat.dmp. de export, por defecto
exp PARFILE=<fichero_parametros>
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
393
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
394
UTILIDAD EXPORT.
Parmetro
GRANTS (Y/N) INDEXES (Y/N) LOG OWNER ROWS (Y/N) TABLES TABLESPACES TRANSPORT_TABLESPACE (Y/N)
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
UTILIDAD EXPORT.
Descripcin Parmetro
TRIGGERS (Y/N) USERID se guardarn los
Descripcin
Exportar o no disparadores. Usuario y contrasea del usuario que realiza la exportacin (Peligro!).
Exportar o no privilegios sobre objetos. Exportar o no ndices. Indica fichero mensajes. donde
Indica los usuarios de los que se realizara la copia. Exportar o no los datos de las tablas. Relacin de tablas a exportar (modo tabla). Lista de tablespaces a exportar. Permite exportacin de tablespaces.
COPIAS DE SEGURIDAD
395
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
396
397
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
398
CASOS PRACTICOS.
La utilidad export se aconseja en los siguientes casos:
- Realizacin de una copia de seguridad de la base de datos. FILE=<nombre_bd>.dmp FULL=Y LOG=<nombre_bd>.log - Copias de seguridad de esquema de usuario (al borrarlo y necesitar guardar su esquema de forma temporal). FILE=<nombre_esquema_bd>.dmp OWNER=<propietario del esquema> LOG=<nombre_esquema_bd>.log COMPRESS=Y
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
399
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
400
CASOS PRACTICOS.
- Copias de seguridad de tablas antes de realizar operaciones delicadas como borrado masivo de datos, cargas de datos, actualizaciones, FILE=<nombre_tabla>.dmp TABLES=(<esquema>.<nombre_tabla>, ) LOG=<nombre_esquema_tabla>.log COMPRESS=Y
UTILIDAD IMPORT.
La utilidad import es complementaria de export. Los objetos se importan en el orden en que estn en el fichero de exportacin: Definicin de tipos. Definiciones de tablas. Datos de tablas. ndices. Restricciones de integridad, vistas, procedimientos disparadores. - ndices bitmap, funcionales y de dominio.
En tablas que ya existen es aconsejable deshabilitar las restricciones de integridad referenciales temporalmente.
COPIAS DE SEGURIDAD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
401
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
402
UTILIDAD IMPORT.
UTILIDAD IMPORT.
Existen cuatro modos de realizar import: - Tabla. Cualquier usuario puede importar tablas indicadas del esquema de usuario. - Usuario. Cualquier usuario puede importar todos los objetos del esquema. - Tablespace. Permite mover tablespaces entre bases de datos. Slo usuarios privilegiados. - Full database. Slo IMP_FULL_DATABASE. posible con el privilegio
Para usar la utilidad debe tenerse el privilegio CREATE SESSION. Por supuesto, deben tenerse los privilegios necesarios para crear o trabajar con los objetos a importar. Un usuario puede importar un fichero de export no creado por l. Si el fichero de exportacin fue creado con el privilegio EXP_FULL_DATABASE, debe tenerse asignado el rol IMP_FULL_DATABASE. Como resultado se obtiene un fichero .log con el informe de incidencias.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
403
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
404
UTILIDAD IMPORT.
Aunque puede ejecutarse la utilidad e ir indicando en el prompt diferentes opciones, se recomienda usar un fichero de parmetros. Sintaxis: imp HELP=Y imp Proporciona ayuda en lnea. Modo interactivo.
UTILIDAD IMPORT.
Parmetro
BUFFER
Descripcin
Tamao bufer de datos (bytes) usado en la transferencia. Hacer commit o no despus de cada insercin. til para evitar que los segmentos de rollback crezcan demasiado. Si ocurre un error y no hay clave nica se producirn filas duplicadas. Importar o no las restricciones sobre tablas. Indica si los ficheros de datos existentes debe ser o no reutilizados. Nombre del fichero de export a importar, por defecto expdat.dmp. Lista de esquemas a importar (usado normalmente con TOUSER).
COPIAS DE SEGURIDAD
imp PARFILE=<fichero_parametros>
FILE FROMUSER
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
405
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
406
UTILIDAD IMPORT.
Parmetro
FULL (Y/N) GRANTS (Y/N)
UTILIDAD IMPORT.
Descripcin Parmetro
LOG ROWS (Y/N)
Descripcin
Indica fichero donde se guardaran los mensajes. Incluir datos en la importacin. Si SHOW=Y, el contenido del fichero de export se lista pero no se importa. Solo puede usarse con los parmetros FULL=Y, FROMUSER, TOUSER, o TABLES. Lista de tablas a importar. Lista de espacios de almacenamiento a importar. Lista de esquemas donde importar. Se requiere IMP_FULL_DATABASE. Importar datos de espacios de almacenamiento.
COPIAS DE SEGURIDAD
Importar o no el fichero completo. Importar o no privilegios sobre objetos. Indica la forma de tratar los errores generados en la creacin de objetos. Si IGNORE=Y se ignoran los errores de creacin y se continua, en caso contrario se muestran. En el caso de tablas, si IGNORE=Y se importan los datos en las tablas existentes. Si IGNORE=N se genera un error y no se inserta. Importar o no ndices. Fichero de descarga para sentencias creacin de ndices, no son creados.
COPIAS DE SEGURIDAD
SHOW (Y/N)
IGNORE (Y/N)
de
TRANSPORT_TABL ESPACE
407
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
408
CASOS PRACTICOS.
Se har uso de la utilidad import en los casos: - Recuperacin de la base de datos a un punto en el tiempo. FILE=<nombre_fichero_export>.dmp FULL=Y LOG=<nombre_bd>.log - Recuperacin de un esquema de usuario. FILE=<nombre_fichero_export>.dmp FROMUSER=<propietario del esquema> TOUSER=<esquema_importacin> LOG=<nombre_esquema_bd>.log
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
CASOS PRACTICOS.
- Recuperacin de tablas tras un borrado accidental (si son muy voluminosas emplear opcin COMMIT=Y). Es aconsejable en este caso importar a un esquema diferente a aquel al que pertenece la tabla y posteriormente hacer un create table as select * from ; o un insert into select * from ;. FILE=<nombre_fichero_export>.dmp FROMUSER=<esquema_origen> TOUSER=<esquema_destino> TABLES=(<nombre_tabla1>, ) LOG=<nombre_esquema_tabla>.log
COPIAS DE SEGURIDAD
409
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
410
CASOS PRACTICOS.
- Recuperacin de procedimientos, disparadores y paquetes. En este caso no es posible la importacin, es necesario crear un fichero con el contenido del fichero de exportacin, editarlo, seleccionar el texto buscado para confeccionar el script adecuado y ejecutar este ultimo. FILE=<nombre_fichero_export>.dmp FROMUSER=<esquema_origen> SHOW=Y GRANTS=N ROWS=N INDEXES=N LOG=<nombre_esquema_tabla>.log - En el caso de ndices se usa el parmetro INDEXFILE.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
411
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
412
SQL*Loader carga datos que proceden de otro tipo de ficheros distintos a 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).
SQL*LOADER
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
413
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
414
SQL*LOADER.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
415
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
416
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,
417
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
418
SQL*LOADER. EJEMPLOS.
-- Ejemplo 2 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"
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
SQL*LOADER. EJECUCION.
419
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
420
VISTAS.
DBA_DATAPUMP_JOBS. Trabajos Data Pump activos. DBA_DATAPUMP_SESSIONS. asociadas a un trabajo. Sesiones de usuario
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
421
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
TEMARIO
Instalacin de Oracle10g. Diseo y creacin de una base de datos. Estructuras de almacenamiento (bloque, fila, segmento). Nuevas funcionalidades de monitorizacin y ajuste de Oracle 10g. Monitorizacin y ajuste tradicional de Oracle en versiones anteriores. Oracle Net. MTS. Configuracin del archivado. Backup. Recovery.
423
OBJETIVOS
Saber instalar Oracle10g (servidor y BD) sobre Linux. Disear (memoria, CPU y disco) y crear una base de datos. Conocer el formato del bloque oracle, estructura de la fila, tipos de segmentos y tipos de ndices (B-tree vs IOT). Conocer la nueva infraestructura, as como las nuevas herramientas de monitorizacin y ajuste de Oracle 10g. Conocer la infraestructura tradicional de Oracle para el ajuste y la monitorizacin: vistas dinmicas de rendimiento, ajuste de sharedpool, buffer cache, redo log, rollback, temporal (sort), checkpoints, sql, cpu. Configurar el software de red (Oracle Net) en el servidor y en el cliente. Saber activar y configurar MTS. Configurar el archivado de una BD Oracle10g. Conocer las cuestiones avanzadas del backup de una BD. Conocer las cuestiones avanzadas del recovery de una BD.
424
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
425
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
426
Manual de instalacin (primero ver Release Notes): Mtodo de instalacin Bsico. Para instalacin rpida: SW y permite crear BD de propsito general (en base a una precreada). Mtodo de instalacin por defecto. Avanzado: para una instalacion personalizada del sw y/o de la BD. Tipo de instalacin Enterprise Edition Standard Edition Personalizada Directorio raz (ORACLE_HOME) Lista de productos a instalar Comprobacin automtica de los requisitos del SO Grupos del SO con privilegios (dba y/o oper) Creacin de la BD: crear BD (ver DBCA) o Configurar ASM o Instalar slo SW Asistentes de configuracin (red con netca, BD con dbca, etc) Scripts a ejecutar como root
INSTALACIN DE ORACLE10g
http://www.oracle.com/pls/db102/homepage
427
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
428
ASISTENTES DE CONFIGURACIN
Permite copiar una BD preconfigurada o crear una personalizada. Arranca automticamente una vez que se ha instalado el sw Oracle. Oracle Net Configuration Assistant (netca): configura la red C/S de Oracle en $ORACLE_HOME/network/admin. Opciones Enterprise y Standard: configura listener.ora, sqlnet.ora y tnsnames.ora. Personalizada: permite configurar un servicio de directorio (LDAP), crear listeners para conectar a la BD y seleccionar el mtodo de resolucin de nombres. Configura, adems de los anteriores, el fichero ldap.ora. Cliente: permite configurar tnsnames.ora, sqlnet.ora y ldap.ora. Database Upgrade Assistant (dbua): para actualizar una BD >= 8.1.7.4/9.0.1.4/9.2.0.4/10.1.0.2, despus de instalar el sw de Oracle10g. Oracle Enterprise Manager Configuration Assistant: configura OMS y crea (o actualiza) su repositorio (necesita BD). Oracle Internet Directory Configuration Assistant: configura OID, arrancando OID Server (necesita BD).
INSTALACIN DE ORACLE10g
REQUERIMIENTOS HW Y SW (Linux)
HW:
RAM 1G (256M para el cliente): grep Mem /proc/meminfo HD entre 1.5 y 3.5Gb para el sw, 1.2Gb para la bd y al menos 400Mb de /tmp: df Swap 1.5 RAM (si <=2G), e igual a la RAM (si >2G): /sbin/swapon -s.
En Linux, si tenemos mucha RAM, podemos configurar poco swap; ej: RAM=4Gb y Swap=1Gb.
SW:
Certificacin: http://www.oracle.com/technology/support/metalink/content.html Ejemplo (Linux x86 + Database Server + Enterprise + 10gR2)
Suse 9 y 10 Red Hat Enterprise AS/ES 3 y 4 (CentOS es clnico) Enterprise Linux 4 Asianux 2
Entorno grfico (Xwin): xclock Acceso a los ejecutables: make, ar, ld, nm. Parmetros del kernel (/etc/sysctl.conf)
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 INSTALACIN DE ORACLE10g
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
429
430
Aadir las siguientes lneas al fichero /etc/sysctl.conf: kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=262144 net.core.rmem_max=262144 net.core.wmem_default=262144 net.core.wmem_max=262144 Actualizar los parmetros en memoria con # /sbin/sysctl -p
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 INSTALACIN DE ORACLE10g
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
INSTALACIN DE ORACLE10g
431
432
PREINSTALACIN (Linux)
Crear puntos de montaje: uno para el sw y hasta seis para las bases de datos:
/u01 (sw) /u02 (datos), /u03 (ndices), /u04 (redo), /u05 (system), /u06 (temp) y /u07 (rollback)
Crear grupo dba: groupadd dba. Crear grupo oinstall: groupadd oinstall. Crear usuario oracle con grupo primario dba y secundario oinstall: useradd -g dba -G oinstall oracle. Crear directorio /u01/app/oracle (ORACLE_BASE) y /u02/oradata, /u03/oradata, etc. Variables de entorno del usuario oracle justo antes de instalar:
DISPLAY=workstation_name:0.0 (servidor Xwin) ORACLE_BASE=/u01/app/oracle (el resto es opcional) PATH debe incluir $ORACLE_HOME/bin, /usr/bin, /bin, /usr/bin/X11/ y /usr/local/bin ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1 ORACLE_SID
433
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
INSTALACIN DE ORACLE10g
434
INSTALACIN
Artculo de OTN sobre instalacin de Oracle 10g sobre Linux: Montar CD desde el root: # mount /mnt/cdrom Como usuario oracle, lanzar script de instalacin desde fuera del punto de montaje del CD (por ejemplo, desde el HOME del usuario oracle). Comprobar variables DISPLAY y ORACLE_BASE. $ /mnt/cdrom/runInstaller Nota. Se podra ejecutar en modo no interactivo con: $ /mnt/cdrom/runInstaller -responsefile mirespfile -silent Cambiar CD: eject o umount /mnt/cdrom y luego mount /mnt/cdrom.
http://www.oracle.com/technology/pub/articles/smiley_10gdb_install
POSTINSTALACIN
Incluir variables en .bash_profile del usuario oracle: export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib export PATH=$ORACLE_HOME/bin:$PATH export ORACLE_SID=mibd Activar E/S asncrona: El sw de Oracle 10g R2 ya la lleva activada. Se puede comprobar con:
Nota: el punto de montaje del CDROM no tiene por qu ser /mnt/cdrom, puede ser otro (/media/cdrom, etc).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 INSTALACIN DE ORACLE10g
Para activarla a nivel de una BD, asignar el parmetro del init: filesystemio_options = setall Ejecutar, si es necesario, el siguiente comando de $ORACLE_HOME/rdbms/lib: $ make -f ins_rdbms.mk asynch_on Comprobar seguridad de la BD:
# ps -fe|grep dbw|grep -i curso50 oracle 22540 1 0 Jan08 ? 00:00:08 ora_dbw0_CURSO50 # lsof -p 22540|grep libaio oracle 22540 oracle mem REG 253,0 2628 1966157 /usr/lib/libaio.so.1.0.1
435
http://www.oracle.com/technology/deploy/security/pdf/twp_security_checklist_db_database.pdf
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
436
REVISION DE SEGURIDAD
Instalar slo aquellas opciones que sean necesarias (Java, Intermedia, etc). Bloquear cuentas de usuarios creados por defecto que no vayamos a utilizar. DBCA bloquea todas menos SYS, SYSTEM, SCOTT y DBSNMP, por ejemplo: outln, mdsys, wksys, ctxsys, ordsys, etc. Cambiar claves de usuarios creados por defecto: SYS, SYSTEM, etc. Proteger el DD con O7_DICTIONARY_ACCESSIBILITY = FALSE, impidiendo acceso al DD a travs de privilegios ANY. As, por ejemplo, usuarios con DROP ANY no podrn borrar el DD Practicar el principio de los privilegios justos. Por ejemplo, para conectar a la BD dar CREATE SESSION y no CONNECT. Restringir los usuarios unix con acceso al servidor Oracle. Restringir el acceso al servidor Oracle a travs de y desde la red. Aplicar todos los parches de seguridad que vayan saliendo. http://otn.oracle.com/deploy/security/alerts.html
INSTALACIN DE ORACLE10g
COMPROBACIN FINAL
En el directorio $ORACLE_BASE/oraInventory/logs podemos revisar lo ocurrido durante la instalacin. Comprobar que el SW y la BD (si hemos instalado una) funcionan. Conectar a la BD usando Sql*Plus
$ sqlplus /nolog
SQL*Plus: Release 10.2.0.2.0 - Production on Tue Jan 2 12:59:46 2007 Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
... Instance "MNCS", status READY, has 1 handler(s) for this service... ... The command completed successfully
Acceder a http://host:1158/em
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 INSTALACIN DE ORACLE10g
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
437
438
PRACTICAS TEMA 1
1.1. Comprobar los requerimientos HW y SW para la instalacin de Oracle10g sobre Linux. 1.2. Comprobar las tareas de preinstalacin. 1.3. Comprobar cunto ocupa el sw de Oracle10g. 1.4. Buscar el fichero de log de la instalacin y echarle un vistazo. 1.5. Comprobar tareas de post instalacin relacionadas con la seguridad de la BD. 1.6. Consulta el Simulador de Instalacin de Oracle10g. 1.7. Revisar alertas de seguridad en OTN. 1.8. Revisar el manual de instalacin de Oracle10g para Linux.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
INSTALACIN DE ORACLE10g
439
440
Es muy importante tener en cuenta las posibles contiendas en la E/S: Contienda entre el DD y los datos en s. En el tablespace SYSTEM slo debe residir el DD y el segmento de rollback SYSTEM. Entre las utilidades del tablespace SYSAUX (>=10g) y las aplicaciones, o con el DD. Puede ser necesario un disco para el SYSAUX. Contienda entre procesos: DBWR, LGWR y ARCH. Discos diferentes para redolog online y archivado; y el resto de la BD. Contienda entre tipos de segmentos: datos, ndices, rollback, temp. Separar segmentos de datos, ndices, rollback y temp. Contienda entre datos estticos y dinmicos. Identificar los datos estticos (tablas pequeas: pases, provincias, tipos de va, letras del nif, sexos, etc). Se accedern con mucha frecuencia y slo en lectura. Si no se detectan a priori, se pueden identificar usando la auditora (p.e. las que no tengan insert/update/delete durante un da representativo, o varios das). Un tablespace para cada rea funcional o cada aplicacin (gestin econmica, gestin de personal, gestin acadmica, gestin de investigacin, etc).
DISEO Y CREACIN DE UNA BD
441
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
442
20% para PGA_AGGREGATE_TARGET: (RAM * 0.8 ncleo) * 0.2 80% para SGA_MAX_SIZE: (RAM * 0.8 ncleo) * 0.8 Ejemplo: supongamos RAM=1024M y ncleo=70M PGA_AGGREGATE_TARGET = (1024 * 0.8 70) * 0.2 = 149M SGA_MAX_SIZE = (1024 * 0.8 70) * 0.8 = 599M
En v$pga_target_advice, buscar 1 fila con ESTD_OVERALLOC_COUNT=0.
DISEO Y CREACIN DE UNA BD
443
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
444
si >=10g) es el
La memoria necesaria para el ejecutable de oracle, la podemos ver con el comando unix size.
$ size $ORACLE_HOME/bin/oracle text data bss dec hex filename 74097968 288308 121304 74507580 470e53c /u01/app/oracle/product/10.2.0.1/bin/oracle
ps v pid_proceso o ps -u usuario v RSS -> Tamao de la parte residente del proceso en memoria real (en Kb). %MEM -> Porcentaje de la memoria real (RAM) que ocupa la parte residente. $ ps -u oracle v|grep -i local PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND 14560 ? Ss 0:00 0 72361 116542 13492 0.3 oracleCURSO70 (DESCRIPTION=(LOCAL=YES) 14594 ? Ss 0:00 0 72361 117034 25832 0.6 oracleCURSO70 (DESCRIPTION=(LOCAL=YES) 14626 ? Ss 0:00 1 72361 116510 15168 0.3 oracleCURSO70 (DESCRIPTION=(LOCAL=YES) DISEO Y CREACIN DE UNA BD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
445
En 10g se simplifica mucho: SGA_MAX_SIZE y SGA_TARGET. Si dejamos los dems a cero (db_cache_size, shared_pool_size, large_pool_size, java_pool_size y streams_pool_size), Oracle reparte sga_target automticamente entre ellos. Si queremos fijar manualmente shared_pool_size y/o db_cache_size ( <=9i): Memoria recomendada para todas las SGAs de un servidor: Para servidores con RAM <= 1Gb: RAM * 0.55 Para servidores con RAM > 1Gb: RAM * (0.60 a 0.75) Memoria recomendada por instancia: (RAM * 0.55) / ninstancias. Shared pool = mem por instancia * 0.45 Buffer cache = mem por instancia *0.45 Se puede ver el overhead necesario en shared pool para el arranque en V$SGAINFO (>=10g). En 10g el overhead resta de shared_pool_size (en 9i no). Recomendaciones de espacio para shared pool y buffer cach (>=9i): V$SHARED_POOL_ADVICE V$DB_CACHE_ADVICE (parmetro db_cache_advice=ON) Administracin y Ajuste de Oracle 10g DISEO Y CREACIN DE UNA BD 446 Nota: STATISTICS_LEVEL debe valer ALL o TYPICAL
DB_CACHE_SIZE + [DB_KEEP_CACHE_SIZE + DB_RECYCLE_CACHE_SIZE + DB_nk_CACHE_SIZE] + SHARED_POOL_SIZE + [LARGE_POOL_SIZE + JAVA_POOL_SIZE + STREAMS_POOL_SIZE] + LOG_BUFFERS + 1MB Nota: streams_pool_size slo >=10g. Puede haber hasta cuatro DB_nk_CACHE_SIZE, con n = 2, 4, 8, 16, 32k (uno de los tamaos de bloque es el que usa DB_CACHE_SIZE. )
DIMENSIONAR LA CPU
SELECT shared_pool_size_for_estimate "Size of Shared Pool in MB", shared_pool_size_factor "Size Factor", estd_lc_time_saved "Time Saved in sec" FROM v$shared_pool_advice; Size of Shared Pool in MB Size Factor Time Saved in sec ------------------------- ----------- ----------------24 .5 525 48 1 525 72 1.5 525 96 2 526
Si partimos de una sola CPU, podemos detectar que llega a su lmite de uso si:
Porcentaje mximo de ocupacin de CPU = 90%. Porcentaje mximo de procesamiento OS/usuario = 40/60%. Nota: podemos usar los comandos Linux top y sar.
$ sar 18:20:00 18:30:00 18:40:00 Media: CPU all all all %user 0,20 0,16 0,08 %nice 0,00 0,00 0,00 %system 0,06 0,17 0,05 %iowait 0,20 0,12 0,33 %idle 99,54 99,54 99,54
dinmica.
V$SGA_DYNAMIC_COMPONENTS
V$SGA_RESIZE_OPS.
Ver
gestin
El parmetro del init LOCK_SGA=true evita que se haga swapping de la SGA. LOG_BUFFER no necesita ms de pocos cientos de Kb, incluso en un sistema con mucha carga, 1MB posiblemente sea suficiente. Asignar ms de 3Mb es intil ya que el LGWR escribe cuando el buffer se llena 1/3 o 1Mb. Administracin y Ajuste de Oracle 10g DISEO Y CREACIN DE UNA BD 447
select component, current_size, min_size, user_specified_size from v$sga_dynamic_components; RPAD(COMPONENT,30) CURRENT_SIZE MIN_SIZE USER_SPECIFIED_SIZE ------------------------------ ------------ ---------- ------------------shared pool 50331648 25165824 0 large pool 4194304 0 0 select rpad(component,28), oper_type, initial_size/1024/1024 "INITIAL", FINAL_SIZE/1024/1024 "FINAL", status from v$sga_resize_ops; RPAD(COMPONENT,28) OPER_TYPE INITIAL FINAL STATUS ---------------------------- ------------- ---------- ---------- --------DEFAULT buffer cache STATIC 44 40 COMPLETE shared pool GROW 40 44 COMPLETE
Si hay varias CPUs, la carga debe estar balanceada. Para una BD mediana con una carga razonable, lo ideal sera disponer al menos de 2 CPUs. Para una instancia con servidores dedicados (sin MTS), tendremos un proceso servidor por cada sesin, adems de los procesos background. Por ejemplo, para 100 usuarios simultneos tendremos un mnimo de 100 procesos nuevos en nuestro sistema. Probar con MTS si se degrada el uso de CPU por muchas sesiones concurrentes (MTS es mejor si hay muchas conexiones a la BD). Parmetros que limitan el nmero de procesos y de sesiones:
PROCESSES. Nmero mximo de procesos en la instancia. SESSIONS. Por defecto 1.1*PROCESSES; sin embargo si usamos MTS habr que subirlo (con MTS10g se puede usar shared_server_sessions para limitar Administracin y Ajuste de Oracle DISEO Y CREACIN DE UNA BD 448 esas sesiones).
Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
DIMENSIONAR FICHEROS Temp System, SYSTEM >=Sysaux, 260M. Activaremos el y autoextend con next=10M. SYSAUX. Estimar tamao Rollback $ORACLE_HOME/rdbms/admin/utlsyxsz.sql, o:
con
500M, BD pequea (2 cpu, 10 sesiones activas, 500 objetos (tablas/ndices). 2G para BD mediana (8 cpu, 20 sesiones, 5000 objetos). 5G para BD grande (32 cpu, 100 sesiones, 50000 objetos). TEMP >= 100M. Tablespaces locales con uniform size 1M (si muchas sesiones simultneas, 256K). Con pga_aggregate_target se ignora *_area_size. Los segmentos temporales ocupan espacio igual que una tabla: para ordenar una tabla de 100M, por todas sus columnas, necesitar 100M. Operaciones que necesitan segmentos temporales: SELECT ORDER BY, GROUP BY, DISTINCT, UNION, INTERSECT or MINUS, nonindexed joins, CREATE INDEX, CREATE/ENABLE PRIMARY/UNIQUE KEY CONSTRAINT, temporary tables, Temporary LOBs, Statistics collection. RBS >= 100M. Usar modo auto (no permite set transaction). Si usamos modo manual, crear un RS por cada 4 sesiones, y 20 extensiones iniciales cada uno. Optimal debe ser suficiente para 90% de transacciones. V$UNDOSTAT. Estadsticas de UNDO cada 10 minutos, incluyendo bloques de undo y la consulta ms larga (en segundos).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
449
SELECT TO_CHAR(BEGIN_TIME,'DD/MM/YYYY HH24:MI') "TIME", UNDOTSN, UNDOBLKS, TXNCOUNT,MAXQUERYLEN FROM V$UNDOSTAT; TIME UNDOTSN UNDOBLKS TXNCOUNT MAXQUERYLEN Administracin y Ajuste de Oracle 10g DISEO Y----------CREACIN DE UNA BD 450 ---------------- ---------- ---------- ---------18/01/2007 10:40 368 16 338516 6 Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
FICHERO DE PARMETROS
Para arrancar la instancia, el servidor Oracle tiene que leer el fichero de parmetros de inicializacin (spfile o init), cuya ubicacin predeterminada es $ORACLE_HOME/dbs. El fichero de parmetros de inicializacin puede ser de dos tipos: Init: se trata de un fichero de texto, editable, cuyo nombre sigue el patrn init$ORACLE_SID.ora. Spfile: es un fichero binario, no editable pero visualizable, cuyo nombre sigue el patrn spfile$ORACLE_SID.ora. Se crea, a partir de un init, con:
CREATE SPFILE [='nombre'] FROM PFILE [='nombre'];
Nota1. Si se omiten los nombres, toma los valores por defecto. Nota2. La BD no podr abrir el nuevo spfile hasta el siguiente arranque. Nota2. Se puede crear un init a partir de un spfile, invirtiendo la sintaxis.
EJEMPLO DE INIT.ORA
Suponemos RAM=1Gb, un mximo de 50 sesiones simultneas, checkpoints cada 30min, gestin automtica de PGAs (RAM*0.80*0.20, resto SGA): db_name=CURSOxy # Nombre de la BD. compatible = 10.2.0 background_dump_dest = /u01/app/oracle/admin/CURSOxy/bdump core_dump_dest = /u01/app/oracle/admin/CURSOxy/cdump user_dump_dest = /u01/app/oracle/admin/CURSOxy/udump max_dump_file_size = 10240 # tamao mximo fichero traza de 5M control_files = (/u02/oradata/CURSOxy/control1.ctl, /u03/oradata/CURSOxy/control2.ctl) undo_management = auto # Gestin automtica de Rollback undo_tablespace = undo_rbs # Tablespace de undo pga_aggregate_target=160M # Espacio mx todas las PGAs (fuera de SGA) sga_max_size = 640M # Tamao mximo de la SGA (RAM*0.8*0.8) sga_target = 512M # Gestin automtica del reparto del espacio de SGA db_cache_size = 0 # Oracle asignar el tamao automticamente shared_pool_size = 0 # Oracle asignar el tamao automticamente large_pool_size = 0 java_pool_size = 0 log_buffer = 3145728 # Tamao, en bytes, de la cach de redo (3Mb) log_checkpoint_interval = 0 # desactiva checkpoint interval log_checkpoint_timeout = 1800 # checkpoint como mucho cada 30minutos. processes = 50 # N mx. de procesos (background + sesiones) remote_login_passwordfile=EXCLUSIVE nls_territory=spain nls_language=spanish
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 DISEO Y CREACIN DE UNA BD
[SCOPE
MEMORY
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
451
452
La BD la podemos crear con el asistente grfico (en Linux dbca) o con el comando CREATE DATABASE:
Crearemos un fichero init.ora, y si queremos, un spfile.ora. Arrancaremos las instancia con STARTUP NOMOUNT. Crearemos la BD con el comando CREATE DATABASE. Ejecutaremos los scripts catalog.sql, catproc.sql y catexp.sql que estn en $ORACLE_HOME/rdbms/admin. Desde 10g se puede borrar con DROP DATABASE; (slo montada).
DISEO Y CREACIN DE UNA BD
Guardaremos, al menos, dos copias del fichero de control, en discos separados. Multiplexaremos los redolog en discos diferentes. Separaremos los ficheros de datos que provoquen contencin en disco; por ejemplo: datos, ndices, temp y rollback.
CREATE DATABASE "CURSOxy" maxdatafiles 254 maxinstances 1 maxlogfiles 32 character set WE8ISO8859P15 DATAFILE '/u02/oradata/CURSOxy/system01.dbf' SIZE 260M AUTOEXTEND ON NEXT 10M EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE '/u02/oaradata/CURSOxy/sysaux01.dbf' size 100M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO UNDO TABLESPACE UNDO_RBS DATAFILE '/u03/oradata/CURSOxy/rbs01.dbf' SIZE 10M DEFAULT TABLESPACE USERS DATAFILE '/u02/oradata/CURSOxy/users01.dbf' SIZE 10M DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/u03/oradata/CURSOxy/temp01.dbf' SIZE 10M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K logfile '/u04/oradata/CURSOxy/redo01.log' SIZE 10M, '/u04/oradata/CURSOxy/redo02.log' SIZE 10M, '/u04/oradata/CURSOxy/redo03.log' SIZE 10M;
rem *** CREACION DE LAS VISTAS DEL DD *** @$ORACLE_HOME/rdbms/admin/catalog.sql @$ORACLE_HOME/rdbms/admin/catproc.sql Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 DISEO Y CREACIN DE UNA BD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
453
454
Ejemplo para crear una BD, usando OMF, separando los ficheros redolog y de control del resto:
Parmetros de inicializacin (indicando dos copias de redolog y control):
DB_CREATE_FILE_DEST='/u02/oradata/CURSOxy' DB_CREATE_ONLINE_LOG_DEST_1='/u03/oradata/CURSOxy' DB_CREATE_ONLINE_LOG_DEST_2='/u04/oradata/CURSOxy'
Creacin de la BD:
CREATE DATABASE DEFAULT TABLESPACE USERS DEFAULT TEMPORARY TABLESPACE TEMP UNDO TABLESPACE UNDO_RBS;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 DISEO Y CREACIN DE UNA BD
455
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
456
VISTAS DEL DD
V$DATABASE (Base de datos). V$INSTANCE (Instancia). V$SGAINFO (SGA). Nuevo en 10g es V$SGAINFO. V$SGA_DYNAMIC_COMPONENTS (Zonas dinmicas de la SGA). V$SGASTAT (SGA detallada). V$SHARED_POOL_ADVICE (Estimaciones de tamao de la SharedPool) V$BUFFER_POOL (Buffers en la cach de datos) V$DB_CACHE_ADVICE (Estimaciones db_cache_size) V$PGA_TARGET_ADVICE (Estimaciones pga_aggregate_target) V$SQLAREA (Sentencias SQL). V$PROCESS (Procesos). V$BGPROCESS (Procesos background). V$DATAFILE (Ficheros de datos de la BD). V$CONTROLFILE (Ficheros de control de la BD). V$LOGFILE (Ficheros redo log de la BD).
DISEO Y CREACIN DE UNA BD
PRACTICAS TEMA 2
2.1. Disear una BD teniendo en cuenta las contiendas de E/S y la organizacin de los tablespaces bsicos. Suponer 4 discos: /u01 (SW) y /u02, /u03, /u04 (BD). 2.2. Crear un init.ora, diseando requerimientos de memoria, suponiendo 4Gb de RAM y 21 instancias con 10 usuarios cada una. Se puede usar un mximo del 64% de la RAM para las SGAs de todas las bases de datos. Los checkpoints sucedern cuando se llene el fichero redolog y, como mximo, cada 30 minutos. La gestin de rollback ser automtica. Tendremos dos copias del fichero de control en /u02 y /u03. 2.3. Crear la BD que hemos diseado anteriormente, y para la que tambin hemos creado un init.ora. Hacerlo manualmente con CREATE DATABASE. El nombre de la BD ser ALUxy. Antes de lanzar el comando de creacin, ponte de acuerdo con un compaero para que no lo hagais a la vez. 2.4. Crear la misma BD usando OMF, y cambiando el nombre por OMFxy. 2.5. Consultar el Simulador de DBCA.
DISEO Y CREACIN DE UNA BD
457
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
458
Varios tamaos de bloque en la misma BD. Formato del bloque. Generacin del espacio libre en un bloque. Estructura de la fila. Extensiones y su asignacin. Segmentos. Gestin automtica del espacio de los segmentos. Comprimir los datos de un segmento. Mtodos de acceso a datos: ndices B-tree y Bitmap. RECYCLEBIN y drop table. Envo de correo con UTL_MAIL. Encolar y/o suspender la BD.
460
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
461
462
GENERACION DE ESPACIO LIBRE Oracle recomienda el uso de la gestin automtica EN UN BLOQUE (>=9i).
Sentencias que generan espacio libre en un bloque: delete y update. Dicho espacio quedar disponible para los inserts posteriores si:
El insert sucede en la misma transaccin que libera espacio. Sucede en otra transaccin despus del commit de la primera.
Espacio libre: se usa para inserts y updates, y tambin para registrar las transacciones (transaction entries, unos 23 bytes por cada una).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ESTRUCTURAS DE ALMACENAMIENTO
463
El espacio libre no tiene por qu estar contiguo. Slo se compactar si al hacer un insert/update hay suficiente espacio libre, pero no est contiguo. Row Chaining (y Migration). Si una nueva fila no cabe en un bloque, ser almacenada en una cadena de bloques (dos o ms). Si se trata de una fila que aumenta de tamao por un update, y no cabe en el bloque, su contenido ser migrado a otro bloque, manteniendo un puntero en el bloque original. Se reservar, al menos, el espacio libre indicado por PCTFREE (%) para actualizaciones. Cuando el espacio libre baje a pctfree, no se permitirn ms inserciones (hasta que el espacio ocupado no baje de PCUSED). Nota: Administracin y Ajuste de Oracle 10g con gestin automtica los tablespaces deDE segmentos ESTRUCTURAS 464 ALMACENAMIENTO (>=9i) no necesitan PCTUSED. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESTRUCTURA DE LA FILA
Estructura de la fila: Cabecera: 3 bytes (de ellos un byte para ncolumnas). Rowid: 6 bytes (1 para el fichero, 4 para el bloque y 1 para fila dentro del bloque). Cabecera de columna: 1byte (o 3bytes si columna>250bytes). Columna: datos (si null, no ocupa espacio). Cabecera de columna. Columna ... Longitud de las columnas: char(n): n bytes. varchar2(n): hasta n bytes. Date: 8 bytes desde 9i (antes 7 bytes) number(n,m): n/2(entero mayor), ms 1 byte. Por ejemplo: number(9,2), 9/2=4.5, 5+1=6.
EXTENSIONES Y SU ASIGNACIN
Una extensin es una unidad lgica de almacenamiento compuesta por un conjunto de bloques contiguos. Una o ms extensiones componen un segmento. Oracle recomienda usar tablespaces manejados localmente (>=8i), con extensiones de tamao uniforme (uniform size) o variable (autoallocate), donde ya no sirven los parmetros initial, next, pctincrease, minextents, maxextents del default storage:
Uniform Size. Puedes indicar el tamao de la extensin (al menos 5 bloques) o usar el valor por defecto (1M). Los tablespaces temporales locales slo pueden usar este tipo de asignacin de extensiones. Autoallocate. Puedes definir la extensin inicial y Oracle determina el tamao ptimo para las siguientes (tamao mnimo 64Kb). Es el defecto para tablespaces permanentes. Si el tablespace se crea con gestin automtica de segmentos y db_block_size>=16K, el tamao mnimo de la extensin ser 1M.
Para asignar una extensin a un segmento, en un tablespace local, Oracle busca en el bitmap del fichero el nmero requerido de bloques libres contiguos. Las extensiones vacas no se devuelven al tablespace hasta que se borra el objeto (drop table/cluster), a no ser que hagamos TRUNCATE ... DROP STORAGE; o ALTER TABLE ... DEALLOCATE UNUSED;.
ESTRUCTURAS DE ALMACENAMIENTO
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESTRUCTURAS DE ALMACENAMIENTO
465
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
466
SEGMENTOS
Un segmento es un conjunto de extensiones que contienen todos los datos de una estructura lgica de almacenamiento especfica, dentro de un tablespace (segmentos de datos, segmentos de ndice, segmentos temporales, etc). El primer bloque de un segmento (Header) contiene un directorio de las extensiones que lo integran. Segmento de datos: es una tabla normal, o una particin de una particionada, o un cluster de tablas. Segmento de ndices: ndice no particionado, o particin de uno particionado. No tienen que estar en el mismo tablespace que las tablas correspondientes. Segmentos temporales: Oracle los usa para hacer ordenaciones, que no caben en memoria: create index, select ... order by, select distinct, select ... group by, select ... union, select ... intersect, select ... minus. Tambin se usan para crear tablas temporales y sus ndices (son tablas que contienen datos slo durante una transaccin o una sesin). Se puede mejorar su rendimiento ajustando el parmetro sort_area_size. Sin MTS, usar pga_aggregate_target para todas las reas de sort de todas las sesiones (todas las PGAs).
ESTRUCTURAS DE ALMACENAMIENTO
Una vez creado un tablespace local con gestin automtica del espacio de los segmentos, no tiene vuelta atrs. Oracle recomienda la gestin automtica porque obtiene mayor rendimiento y es mucho ms fcil de mantener. Ya no hace falta PCTUSED.
ESTRUCTURAS DE ALMACENAMIENTO
467
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
468
METODOS DE ACCESO A DATOS B-TREE Y ,BITMAP INDICES Usaremos ndices B-tree en general, cuando
vayamos a hacer consultas que acceden frecuentemente a no ms del 10-15% de las filas de la tabla. Comprobar si un ndice se usa (>=9i): Vistas donde ver estadsticas de ndices: dba_indexes: dbms_stats.gather_index_stats('owner','indice'); index_stats: analyze index i_nombre validate structure; v$segment_statistics (statistics_level=typical u all) Falsos mitos sobre degradacin de ndices: Con el tiempo el arbol b-tree puede perder el balanceo. NUNCA. Con los borrados se va perdiendo espacio. NO, el espacio se reutiliza. Si los niveles del rbol llegan a 'x', el ndice se vuelve ineficiente. NO. En general no ser necesario, pero podemos reconstruir un ndice: alter index i_nombre rebuild; Indices Bitmap; muy tiles para accesos en slo lectura sobre columnas de baja cardinalidad, en tablas muy grandes (aplicaciones DSS). Muy eficientes para predicados OR. No usarlos si se hacen updates con frecuencia (aplicaciones OLTP). Bloqueos a nivel de segmento de bitmap (no de fila).
create bitmap index i_b_nombre on t_tabla (cols) tablespace tsp_nombre;
ALTER INDEX nombre MONITORING USAGE; (activa seguimiento) SELECT * FROM V$OBJECT_USAGE; (comprueba uso) ALTER INDEX nombre MONITORING USAGE; (desactiva seguimiento)
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
469
Las IOT son tablas almacenadas en un ndice B-tree. Son tiles para tablas estaticas que se acceden con frecuencia por la clave primaria (casi todas susde columnas forma parte de la PK), y que no van a tener Administracin y Ajuste Oracle 10g ESTRUCTURAS DE 470 ningn otro ndice.
Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ALMACENAMIENTO
PURGE RECYCLEBIN | DBA_RECYCLEBIN; PURGE TABLESPACE nomtsp [USER usuario]; Borrar directamente sin pasar por RECYCLEBIN: DROP TABLE tabla PURGE;
ESTRUCTURAS DE ALMACENAMIENTO
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
471
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
472
Encolar la BD (>=9i). Util si el DBA necesita que no haya transacciones ni consultas concurrentes a la suya. Espera a que terminen transacciones/consultas (se pueden ver en V$BLOCKING_QUIESCE) e impide nuevas (excepto de SYS/SYSTEM). Slo desde SYS/SYSTEM. V$INSTANCE.ACTIVE_STATE: ALTER SYSTEM QUIESCE RESTRICTED; ALTER SYSTEM UNQUIESCE; Suspender la BD (>=9i). Util para copias de seguridad en caliente. Suspende E/S a ficheros de datos y control (los tablespaces deben estar en modo hot backup con ALTER TABLESPACE BEGIN BACKUP). Slo SYS/SYSTEM. V$INSTANCE.DATABASE_STATUS. Ojo !!!, no cerrar la sesin que hace el SUSPEND pues es la nica que puede hacer RESUME:
ALTER TABLESPACE nomtsp BEGIN BACKUP; ... ALTER SYSTEM SUSPEND; // Copiamos ficheros de la BD (necesitar recuperar la instancia, pues no se hace checkpoint). ALTER SYSTEM RESUME; ALTER TABLESPACE nomtsp END BACKUP; ...
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ESTRUCTURAS DE ALMACENAMIENTO
VISTAS DEL DD
DBA_TABLESPACES (Tablespaces de la BD). DBA_SEGMENTS (Segmentos que hay en los tablespaces). DBA_EXTENTS (Extensiones que componen los segmentos). DBA_FREE_SPACE (Extensiones libres en cada tablespace). DBA_INDEXES (Indices creados sobre tablas de la BD, con estadsticas). INDEX_STATS (estadsticas de ndices) V$SEGMENT_STISTICS (estadsticas de segmentos) DBA_RECYCLEBIN (objetos borrados con DROP, sin indicar PURGE) V$INSTANCE (Datos de la instancia, incluyendo si est encolada y/o suspendida) SELECT DBMS_METADATA.GET_DDL('TABLE','T1') FROM DUAL; (muestra la sentencia DDL para crear la tabla T1). SELECT DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT', USUARIO'); (muestra las sentencias GRANT q otorgan al usuario los privilegios que tiene. Adems de OBJECT_GRANT, se puede indicar SYSTEM_GRANT y ROLE_GRANT).
ESTRUCTURAS DE ALMACENAMIENTO
473
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
474
PRACTICAS TEMA 3
PRACTICAS TEMA 3
3.5. Crear tablespace TSP4K con tamao de bloque de 4Kb. Crear una tabla TABLA03, igual que TABLA01, y comprobar cuantos bloques ocupan las dos y comparar los datos. 3.6. Comprobar los parmetros pga_aggregate_target, workarea_size_policy y sort_area_size. Se puede poner pga_aggregate_target=0? cmo desactivar pga_aggregate_target? 3.7. Crear una TABLA04 en el tablespace SEGAUTO, con cuatro columnas: c1 char(2), c2 varchar2(10), c3 date y c4 number(10,2). Estimar el tamao medio de la fila, y el nmero medio de filas por bloque. insertar 100 filas en la tabla , calcular las estadsticas y comprobar los datos calculados (nmero de filas, nmero de bloques y longitud media de la fila). 3.8. Instalar el paquete UTL_MAIL y configurar el parmetro del init smtp_out_server. Hacer una prueba de envo de correo con utl_mail.send.
ESTRUCTURAS DE ALMACENAMIENTO
3.1. Comprobar el tamao del bloque de la BD. Cuntas cachs de datos hay definidas?. Definir la cach keep con 1M. Definir tambin una cach para bloques de 4Kb, con 1M. 3.2. Crear un tablespace SEGAUTO con gestin automtica de segmentos. 3.3. Crear una tabla TABLA01 en el tablespace anterior, con una columna VARCHAR2(1000). Insertar tres filas de forma que ocupe varias extensiones. Borrar todas las filas con delete y comprobar las extensiones de la tabla. Hacer truncate table y comprobar de nuevo el espacio ocupado por la tabla. 3.4. Crear una tabla TABLA02 con una sola columna varchar2(100); y otra llamada TABLA02COMPRI igual que la anterior, pero con compresin de datos. Insertar 1000 filas en TABLA02 y, luego, esas mismas 1000 en TABLA02COMPRI. Cuntos bloques necesita cada tabla para almacenar las mismas filas?
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
ESTRUCTURAS DE ALMACENAMIENTO
475
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
476
Nueva infraestructura. AWR (Automatic Workload Repository). Vistas AWR. ADDM (Automatic Database Diagnostic Monitor). DBMS_ADVISOR. SQL Tuning Advisor. Segment Shrink. Segment Advisor. UNDO Advisor.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
477
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
478
NUEVA INFRAESTRUCTURA
Nueva infraestructura = AWR + Time Model + ASH (El parmetro STATISTICS_LEVEL debe valer TYPICAL u ALL). Automatic Workload Repository (AWR). Vistas v$ + volcado a disco, por defecto cada 60min y mx 7 das (procesos MMON, MMNL). Mejor q STATSPACK. EXECUTE dbms_workload_repository.create_snapshot(); Active Session History (ASH). Recopila muestras cada segundo de las sesiones activas de V$SESSION: V$ACTIVE_SESSION_HISTORY, DBA_HIST_ACTIVE_SESS_HISTORY. Nuevo Time Model: estadsticas y mtricas relativas al tiempo consumido por las sesiones. Time Model (DB time, DB CPU, etc): V$SYS_TIME_MODEL, V$SESS_TIME_MODEL. Wait Classes: V$SYSTEM_WAIT_CLASS, V$SESSION_WAIT_CLASS. Metrics (cada 60seg): V$SYSMETRIC, V$SESSMETRIC, V$FILEMETRIC, V$EVENTMETRIC, V$WAITCLASSMETRIC, V$METRICNAME. OS statistics. V$OSSTAT. Automatic Database Diagnostic Monitor (ADDM). En base a los datos recopilados por AWR y ASH, identifica problemas y sus posibles causas, proporcionando recomendaciones e indicando los beneficios q se obtendrn. $ORACLE_HOME/rdbms/admin/addmrpt.sql Administracin y Ajuste de Oracle 10g NUEVAS FUNCIONALIDADES DE
Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 AJUSTE Y MONITORIZACION
479
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
480
VISTAS AWR
Se puede forzar la creacin de un snapshot, manualmente: EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(); Vistas AWR: V$ACTIVE_SESSION_HISTORY. Muestras de sesiones activas recopiladas cada segundo (ASH). V$METRIC. Mtricas recopiladas. V$METRICNAME. Tipos de mtricas y agrupaciones de las mismas. V$METRIC_HISTORY. Histrico de mtricas recopiladas. V$METRICGROUP. Grupos de mtricas. DBA_HIST_ACTIVE_SESS_HISTORY. Histrico de ASH. DBA_HIST_BASELINE. Baselines. DBA_HIST_DATABASE_INSTANCE. Arranques de la BD. DBA_HIST_SNAPSHOT. Snapshots recopiladas. DBA_HIST_SQL_PLAN. Planes de ejecucin de sentencias SQL. DBA_HIST_WR_CONTROL. Configuracin del AWR.
481
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
482
483
485
486
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
487
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
488
489
490
AUTOMATIC SEGMENT ADVISOR (ASA). Identifica segmentos candidatos a shrink. No analiza todos los objetos de la BD. Examina las estadsticas de la BD y muestras de segmentos, para seleccionar: tablespaces que se acercan a los niveles crticos o de alerta, segmentos con ms activiidad y segmentos que han crecido ms. Intervalo de ejecucin de ASA: MAINTENANCE_WINDOW_GROUP (L-V una vez a partir de las 22h y hasta 6h; y S una vez a partir de las 0h hasta 0h del L) Vistas del ASA: DBA_AUTO_SEGADV_SUMMARY: ejecuciones de ASA. DBA_AUTO_SEGADV_CTL: objetos seleccionados para ser analizados.
Ms info: http://cursos.atica.um.es/oradoc102/server.102/b14231/schema.htm#CHDHBHAB Administracin y Ajuste de Oracle 10g NUEVAS FUNCIONALIDADES DE
Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 AJUSTE Y MONITORIZACION
491
492
PRACTICAS TEMA 4
4.1. Consultar las principales vistas dinmicas de la 10g relacionadas con el AWR: V$OSSTAT, V$SYS_TIME_MODEL, V$SES_TIME_MODEL, V$SYSMETRIC, V$SESSMETRIC, V$FILEMETRIC, V$EVENTMETRIC, V$SYSTEM_WAIT_CLASS, V$SESSION_WAIT_CLASS, V$WAITCLASSMETRIC. 4.2. Probar AWR. 4.3. Probar ASH. 4.4. Probar ADDM. 4.5. Probar SQL TUNING 4.6. Probar SEGMENT ADVISOR. 4.7. Probar UNDO ADVISOR.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
493
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
494
EVENTOS DE ESPERA
V$EVENT_NAME. Lista de posibles esperas. V$SYSTEM_EVENT. Esperas totales por evento desde arranque de BD. V$SESSION_EVENT. La misma informacin anterior, por sesin. V$SESSION_WAIT. Sesiones que estn esperando actualmente. Eventos ms comunes:
Para recibir valores en WAIT_TIME poner TIMED_STATISTICS=TRUE. free buffer waits: DBWR escribe poco a menudo (subir n de checkpoints). latch free: contencin en latches (verificar V$LATCH). buffer busy waits: hay contencin E/S (ajustar E/S o distribuir datos). db file sequential read: hay contencin E/S (ajustar E/S o distribuir datos) db file scattered read: igual anterior, pero multibloque (ajustar E/S o distribuir datos). db file parallel write: checkpoints muy espaciados (subir su nmero). undo segment tx slot: faltan segmentos de rollback (aadir ms). undo segment extension: demasiadas extensiones dinmicas (ampliaciones y reducciones) de los segmentos de rollback (ajustar tamao). Nota: la lista completa de eventos est en el manual Oracle10g Database Reference.
http://cursos.atica.um.es/oradoc102/server.102/b14237/waitevents.htm#i968375
AJUSTE Y MONITORIZACIN DE LA INSTANCIA
Eventos de espera. Vistas dinmicas: informacin del sistema y de las sesiones. Ajuste de la Shared-Pool. Ajuste de la buffer cache. Ajuste de los buffers redo log. Ajuste del rollback. Ajuste del tablespace temporal. Ajuste de los checkpoints. Ajuste de las sentencias SQL. Ajuste de la CPU. Utilidad STATSPACK.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
495
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
496
E/S V$FILESTAT: Estadsticas de E/S de los ficheros de datos. V$TEMPSTAT: Estadsticas de E/S de los ficheros temporales. Contencin V$LATCH: Estadsticas de latches. V$WAITSTAT: Estadsticas de contencin. V$ROLLSTAT: Estadsticas de los segmentos de rollback. V$UNDOSTAT: Estadsticas de undo.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
497
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
498
Nota: la lista completa de vistas dinmicas est en el manual Oracle10g Database Reference. http://cursos.atica.um.es/oradoc102/server.102/b14237/toc.htm
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 AJUSTE Y MONITORIZACIN DE LA INSTANCIA
Posibles sntomas de problemas de ajuste de la Shared Pool: Contencin en los latches %library cache% (V$LATCH). Contencin en el latch %shared pool% (V$LATCH). Altos tiempos de CPU para compilar, parse time cpu (V$SYSSTAT). Muchas recargas (reloads) en V$LIBRARYCACHE. Muchas llamadas de compilacin, parse count% (V$SYSSTAT). Frecuentes errores ORA-04031, debidos a la fragmentacin.
Nota: los latches son microbloqueos necesarios para proteger las operaciones en la SGA (SharedPool, LibraryCache, RedoBuffer, etc). Son puntos potenciales de contencin.
AJUSTE Y MONITORIZACIN DE LA INSTANCIA
499
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
500
En la library cache, el pinhitratio >= 95% (V$LIBRARYCACHE) y lo ms cercano a 1 (100%). Reloads debe ser casi 0. En la row cache (V$ROWCACHE) el ratio getmisses/gets <=15%. Las aplicaciones OLTP deben usar bind variables (no para DSS). Usar DBMS_SHARED_POOL.KEEP (dbmspool.sql) para fijar paquetes muy usados en la SharedPool (como SYS.STANDARD). Haciendo flush se puede eliminar la fragmentacin (ora-4031):
alter system flush shared_pool;
Nota: puede bajar rendimiento hasta que objetos vuelven a la cach. No usar cuando BD tiene mucha carga. No descarga paquetes fijados, ni sentencias ya compiladas de sesiones en curso.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
501
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
502
SELECT parameter, sum(gets), sum(getmisses) , 100*sum(gets - getmisses) / sum(gets) pct_succ_gets , sum(modifications) updates FROM V$ROWCACHE WHERE gets > 0 GROUP BY parameter; PARAMETER SUM(GETS) SUM(GETMISSES) PCT_SUCC_GETS UPDATES ------------------- ---------- -------------- ------------- ---------dc_object_ids 16942 537 96.8303624 173 dc_objects 7534 966 87.1781258 414 ...
Debemos procurar que ratios >= 85%. Podemos ver el ratio general con:
SELECT (SUM(GETS - GETMISSES - FIXED)) / SUM(GETS) "ROWCACHE" FROM V$ROWCACHE; ROWCACHE ---------.982133497
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
503
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
504
En V$SHARED_POOL_ADVICE podemos ver si nos interesa redimensionar la SharedPool (el parmetro STATISTICS_LEVEL debe valer ALL o TYPICAL, no BASIC).
select SHARED_POOL_SIZE_FOR_ESTIMATE SIZE_ESTIMATE, SHARED_POOL_SIZE_FACTOR SIZE_FACTOR, ESTD_LC_TIME_SAVED_FACTOR PARSE_SAVED_FACTOR from v$shared_pool_advice; SIZE_ESTIMATE SIZE_FACTOR PARSE_SAVED_FACTOR ------------- ----------- -----------------4 .5 .9806 8 1 1 16 2 1.0194
Nota: los valores 5, 40 y 30 son ejemplo para detectar sentencias que se ejecutan poco (<5), cuyos 40 primeros caracteres son iguales en muchos casos (>30). Luego veramos si es posible convertirlas en una o en unas pocas.
V$SGASTAT. Detalle de cada una de las partes de la SharedPool. V$SQLAREA. Estadsticas sobre todos los cursores compartidos, incluyendo el texto inicial (1000 caracteres) de cada sentencia. El uso de esta vista consume muchos latches (V$SQL no). V$SQLTEXT. Texto completo de las sentencias, en varias lneas (filas). V$DB_OBJECT_CACHE. Objetos en cach, incluyendo paquetes, funciones, procedimientos, tablas, ndices, sinnimos, secuencias, vistas, triggers, etc.
AJUSTE Y MONITORIZACIN DE LA INSTANCIA
Desde 9i, con CURSOR_SHARING=SIMILAR (antes slo FORCE), Oracle determina qu literales puede sustituir por variables bind sin afectar el plan de ejecucin. Si afectase al plan de ejecucin no se hace el cambio (si se usa FORCE s). Cach privada sesin (SharedPool): al compilar una sentencia primero se busca en ella. Empezar con SESSION_CACHED_CURSORS=50 (valor alto puede provocar ora-4031, comprobar % de uso). Util con Oracle Forms cuando los forms se abren y cierran con frecuencia.
AJUSTE Y MONITORIZACIN DE LA INSTANCIA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
505
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
506
Tambin es interesante mirar slo en v$session_wait para ver si hay alguna otra causa de lentitud.
select * from v$session_wait where event != 'rdbms ipc message' and event not like '%Net%' and sid > 5;
507
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
508
recycle,
etc),
partir
de
SELECT name, 100*(1-(physical_reads / (consistent_gets + db_block_gets))) HIT_RATIO FROM V$BUFFER_POOL_STATISTICS WHERE ( consistent_gets + db_block_gets ) !=0;
Si activamos DB_CACHE_ADVICE, podremos consultar en V$DB_CACHE_ADVICE posibles estimaciones para la buffer cach.
select name,size_for_estimate,size_factor,ESTD_PHYSICAL_READ_FACTOR from v$db_cache_advice;
NAME SIZE_FOR_ESTIMATE SIZE_FACTOR ESTD_PHYSICAL_READ_FACTOR -------------------- ----------------- ----------- ------------------------DEFAULT 4 1 1 DEFAULT 8 2 .3228
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
509
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
510
Factores que puede mejorar el rendimiento del DBWR: Atributos de los discos fsicos (stripe size, velocidad, etc). Raw devices vs File Systems. Distribuir las escrituras sobre ms discos/ficheros. Usar E/S asncrona cuando est disponible. Adems, si es necesario arrancar varios procesos DBWR con DB_WRITER_PROCESSES (al menos uno para cada 8 cpus o grupo de cpus). Si no hay E/S asncrona, paralelizar E/S del DBWR con DBWR_IO_SLAVES. Usar las diferentes cachs (keep, recycle, etc).
AJUSTE Y MONITORIZACIN DE LA INSTANCIA
511
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
512
Contencin en peticiones de espacio de redo en disco. Se refiere a la estadstica redo log space requests" de la vista V$SYSSTAT, que refleja el n de esperas al escribir el redo a disco, pq se ha llenado el fichero redolog. Ese valor debe ser (casi) cero. Si, por el contrario, dicho n va incrementndose continuamente, habr que comprobar checkpoints y log_switchs. Se debe hacer q los checkpoints coincidan con los log switchs (cada 15-30 minutos aprox.).
AJUSTE Y MONITORIZACIN DE LA INSTANCIA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
513
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
514
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
515
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
516
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
517
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
518
AJUSTE DE LA CPU
Estn calculadas las estadsticas para las tablas y los ndices en cuestin? ANALYZE TABLE | INDEX nombre COMPUTE | ESTIMATE STATISTICS; Para tablas grandes Estimate 30% suele ser casi igual a compute. Si hay estadsticas, se generaron con compute o con estimate?
de
sentencias
SQL
utilizaremos
las
siguientes
Porcentaje mximo de ocupacin de CPU = 90%. Porcentaje mximo de procesamiento OS/usuario = 40/60%. Si hay varias CPUs, la carga debe estar balanceada. Probar con MTS si se degrada el uso de CPU por muchas sesiones concurrentes (MTS es mejor si hay muchas conexiones a la BD). Parmetros que limitan el nmero de procesos y de sesiones:
PROCESSES. Nmero mximo de procesos en la instancia. SESSIONS. Por defecto 1.1*PROCESSES; sin embargo si usamos MTS habr que subirlo.
AUTOTRACE de Sql*Plus:
SQL> SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
519
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
520
UTILIDAD STATSPACK
Desde 10g, con la introduccin del AWR no es necesario usar STATSPACK. STATSPACK es una utilidad para recoger estadsticas que permiten detectar problemas de rendimiento. Adems, mejora la utilidad que haba anteriormente, UTLBSTAT/UTLESTAT. Se trata de un conjunto de scripts SQL y PL/SQL. El script de instalacin de la herramienta crea un usuario, PERFSTAT. Los datos recopilados por statspack se guardarn en tablas. La documentacin de la herramienta estn en $ORACLE_HOME/rdbms/admin/spdoc.txt. STATSPACK trabaja con el concepto snapshot para identificar una coleccin de datos recopilados en un momento del tiempo, a los que asocia un identificador nico, snap_id. Es necesario recopilar datos en forma de snapshots antes de poder obtener un informe de rendimiento.
INSTALAR STATSPACK
Necesita un tablespace con al menos 100Mb, a ser posible manejado localmente. La instalacin crea un usuario PERFSTAT que ser el propietario de todos los objetos y el cdigo pl/sql que se cree. Debemos asegurarnos que el tablespace por defecto de este usuario es el que hemos creado, y tener cuidado con su tablespace temporal por defecto (no sera mala idea asignarle uno especial). Para la instalacin debemos conectarnos a la BD como SYSDBA, y lanzar el script $ORACLE_HOME/rdbms/admin/spcreate.sql, que nos pedir la clave para el nuevo usuario, as como el tablespace por defecto y el tablespace temporal. Este script, de forma automtica, llama a otros tres: spcusr.sql, spctab.sql, spcpkg.sql. Debemos comprobar si se producen errores en los ficheros spcusr.lis, spctab.lis, spcpkg.lis. Si hay errores y tenemos que repetir la instalacin, primero desinstalaremos con el script spdrop.sql.
AJUSTE Y MONITORIZACIN DE LA INSTANCIA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
521
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
522
Podemos obtener un informe sobre el rendimiento general de la instancia con spreport.sql (desde el usuario PERFSTAT). Nos pedir el intervalo de snapshots (inicial y final) y el nombre del fichero de salida. Si localizamos una sentencia SQL por su hash_value (V$SQLAREA.HASH_VALUE), podemos generar un informe sobre ella con el script sprepsql.sql; que nos pedir el intervalo de snapshots y el hash_value de la sentencia.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
523
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
524
VISTAS DEL DD
V$SYSSTAT: estadsticas generales del sistema. V$SGASTAT: estado de uso de las diferentes partes de la SGA. V$SYSTEM_EVENT: estadsticas de eventos de espera a nivel de sistema. V$SESSION_WAIT: sesiones que estn en espera actualmente. V$SESSION_EVENT: estadsticas de eventos de espera por sesin. V$SESSTAT: estadsticas generales por sesin. V$LIBRARYCACHE: ratios de la Library Cach (Sentencias SQL y PL/SQL). V$ROWCACHE: ratios de la Row Cach (Diccionario de Datos). V$PGASTAT: estado de la PGA. V$BUFFER_POOL_STATISTICS: estadsticas de la cach de datos. V$DB_OBJECT_CACHE: objetos que hay en la Library Cach. V$LATCH: latches. V$ROLLSTAT: estadsticas de uso de los segmentos de rollback. V$UNDOSTAT: estadsticas de uso de los segmentos de rollback. V$FILESTAT: estadsticas de E/S a nivel de fichero. V$SESS_IO: estadsticas de E/S a nivel de sesin. V$SORT_SEGMENT: estadsticas de uso de los segmentos temporales. V$SORT_USAGE: reas de sort actualmente en uso. Obtener IP: Select SYS_CONTEXT('USERENV','IP_ADDRESS') FROM DUAL;
AJUSTE Y MONITORIZACIN DE LA INSTANCIA
spdtab.sql -> Borra las tablas spdusr.sql -> Borra el usuario PERFSTAT
spreport.sql -> Genera un informe general del rendimiento de la instancia sprepins.sql -> Genera un informe para la BD y la instancia indicados sprepsql.sql -> Genera un informe para la sentencia SQL cuyo Hash Value se indique spauto.sql -> Permite automatizar la recoleccin de estadsticas (usando dbms_job)
sppurge.sql -> Permite borrar un rango de snapshots sptrunc.sql -> Vaca (con truncate) todas las tablas, borrando todos los snapshots spuexp.par -> Es un fichero de parmetros para exportar el usuario PERFSTAT
AJUSTE Y MONITORIZACIN DE LA INSTANCIA
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
525
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
526
PRACTICAS TEMA 5
5.1. Revisar eventos del sistema y comprobar los ms significativos. Comprobar evento latch free por sesiones. Comprobar sesiones esperando por el evento db file sequential read. Comprueba el parmetro TIMED_STATISTICS. 5.2. Revisa las estadsticas del sistema ms significativas. Comprueba el tamao medio de la PGA de cada sesin. Revisa las lecturas lgicas y fsicas y calcula el ratio de E/S. Comparar el uso de CPU para SQL del sistema (acceso al DD) sobre el total. 5.3. Ver el eatado de ocupacin de las partes ms significativas de la Shared Pool. 5.4. Comprobar la contencin en latches de la Shared Pool y Library Cache. 5.5. Comprobar el pinhitratio de la Library Cach, asi como los reloads. Verificar el espacio libre de la Shared Pool, y el valor de open_cursors. 5.6. Ver el ratio de la Row Cache. 5.7. Comprobar si el sistema recomienda ampliar la SharedPool.
AJUSTE Y MONITORIZACIN DE LA INSTANCIA
PRACTICAS TEMA 5
5.8. Detectar sentencias similares que usan literales. Verificar el parmetros cursor_sharing y session_cached_cursors. Asignar cursor_sharing=similar. 5.9. Instalar el paquete DBMS_SHARED_POOL. Comprobar paquetes que se pueden fijar en la SharedPool y hacerlo. 5.10. Comprobar sentencias que ocupan mucha memoria (>=10% de SharedPool). 5.11. Calcular el ratio de eficiencia de la Cach de Datos. Comprobar el parmetro db_cache_advice. Consultar si Oracle recomienda incrementar la Cach de Datos. Comprobar si hay contencin en el latch cache buffers lru chain. Ver si hay esperas del tipo write complete waits o free buffer waits.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
527
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
528
PRACTICAS TEMA 5
5.12. Comprobar el tamao de la Cache de Redo. Ver si hay contencin en los latches de redo. Verificar la estadstica redo log space requests. 5.13. Comprobar los segmentos de rollback ONLINE. Verificar las extensiones que tiene cada uno, as como el espacio total y libre del tablespace que los contiene. Ver si hay contencin en segmentos de rollback. 5.14. Instalar la utilidad STATSPACK. Crear snapshots y generar informe.
TEMA 6. NET.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
529
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
530
TEMA 6. NET.
ORACLE NET SERVICES. ORACLE NET. ORACLE NET. CLIENTE/SERVIDOR. ORACLE NET. WEB y APP. SERVER. ORACLE NET. WEB SIN APP. SERVER. ORACLE NET. CONNECTION POOLING. LISTENER. ORACLE CONNECTION MANAGER. OTROS COMPONENTES CONCEPTOS. SERVICIO. INSTANCIA. REGISTRO DE SERVICIO. CONECTOR. MAPEOS.
COMUNICACIONES
TEMA 6. NET.
CONFIGURACION. MODELOS. MODELO LOCAL. TNSNAMES.ORA LISTENER.ORA SECCION PROTOCOLO. SECCION REGISTRO SERVICIO. PARAMETROS DE CONTROL. LISTENER.ORA Y JSERVER. CONTROL DEL LISTENER. SQLNET.ORA CONFIGURACION BASICA NET. DATABASE LINK.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
531
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
532
ORACLE NET.
Es el sw que permite establecer y mantener una sesin de red desde una aplicacin cliente a un servidor de bd; as como del intercambio de mensajes entre ambos. Es capaz de hacerlo al estar localizado en cada ordenador de la red. Existen distintas tipologas de conexin:
Conexiones cliente/servidor (C/S). Conexiones web cliente. Conexiones web cliente sin uso de servidor de aplicaciones (Application Server).
Oracle Net Configuration Assistant. Oracle Net Manager. Oracle Enterprise Manager.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
533
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
534
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
535
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
536
OCI: Oracle Call Interface. SW usado por el cliente para interactuar con el servidor de bd (interfaz entre la aplicacin cliente y el lenguaje SQL que comprende el servidor). TTC: Two-Task Common. OPI: Oracle Program Interface.
COMUNICACIONES
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
537
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
538
El manejador JDBC OCI emplea un esquema de comunicaciones similar al estndar C/S. JDBC Thin driver emplea una implementacin Java del Oracle Net Foundation Layer llamada JavaNet y una implementacin Java de TTC llamada JavaTTC.
COMUNICACIONES
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
539
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
540
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
541
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
542
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
543
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
544
LISTENER.
En la bd recibe la conexin inicial. Est configurado con una direccin de protocolo, aquellos clientes configurados con esta direccin pueden enviar peticiones al listener. Una vez establecida la conexin, el cliente y la bd comunican directamente entre ellos.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
545
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
546
OTROS COMPONENTES
Oracle Net Configuration Assistant.
Permite configurar los componentes bsicos de red despus de realizar la instalacin de bd. Oracle Universal Installer lanza esta herramienta durante la instalacin del sistema gestor de bd. En UNIX debe ejecutarse $ORACLE_HOME/bin/netca
CONCEPTOS BASICOS
547
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
548
CONCEPTOS. SERVICIO.
Una bd es un servicio desde el punto de vista de clientes. los
CONCEPTOS. SERVICIO.
La bd puede tener uno o ms servicios asociados; as puede ser identificada de distintas formas por clientes diferentes, y un administrador puede limitar recursos del sistema.
El servicio est identificado por un nombre de servicio que viene determinado por el parmetro de inicializacin SERVICE_NAMES. Por defecto es el nombre global database, compuesto por el nombre de bd (parmetro DB_NAME) y el nombre de dominio (DB_DOMAIN). Los clientes usan el nombre de servicio para identificar la bd a la que acceden. Este parmetro tambin puede ser modificado dinmicamente mediante ALTER SYSTEM.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
549
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
550
CONCEPTOS. SERVICIO.
La informacin necesaria para una conexin se almacena en un repositorio (local o centralizado -LDAP-).
CONCEPTOS. INSTANCIA.
Una base de datos tiene al menos una instancia integrada por un rea de memoria llamada System Global Area (SGA) y por procesos Oracle. El nombre de la instancia viene indicado por el parmetro de inicializacin INSTANCE_NAME. Por defecto se refiere al Oracle System Identifier (SID) de la instancia.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
551
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
552
Dispatcher, instancia e informacin node load que permite al listener determinar qu dispatcher puede manejar adecuadamente una peticin cliente. Si todos los dispatchers estn bloqueados, el listener puede habilitar un servidor dedicado para la conexin.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
553
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
554
CONCEPTOS. CONECTOR.
Un cliente usa un descriptor de conexin que indica la localizacin de la bd y el nombre del servicio de bd.
(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=<nombre_host/direccionIP>) (PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=<nombre_de_servicio>))) Tambin puede indicarse la conexin a una instancia especfica (Real Application Clusters): (DESCRIPTION= ... (INSTANCE_NAME=<nombre_instancia>)))
Los manejadores de servicio en el servidor pueden ser un dispatcher (modo servidor compartido) o un proceso servidor dedicado.
COMUNICACIONES
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
555
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
556
CONCEPTOS. CONECTOR.
Puede suceder que un cliente desee usar un manejador de servicio particular, en este caso debe indicarse en el conector:
(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=nombre_servicio) (SERVER=shared/dedicated)))
CONCEPTOS. MAPEOS.
El establecimiento de la correspondencia entre el nombre de servicio y su conector es posible mediante repositorios de informacin que permiten dicho mapeo a travs de una naming method:
Local Naming. Usa el fichero tnsnames.ora. Directory Naming. Emplea un sistema de directorios LDAP. Easy Connect Naming. No requiere configuracin. Permite a los clientes conectar a la bd usando una cadena TCP/IP que incluye el nombre de servidor, un puerto y un nombre de servicio: CONNECT username/password@host[:port][/service_name] External Naming. Emplea un sistema no Oracle.
Si no se indica el valor para el parmetro SERVER se asume por defecto la configuracin shared server. Si no hay dispatchers disponibles, se usarn servidores dedicados.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
557
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
558
CONFIGURACION. MODELOS.
Existen dos modelos de configuracin de Oracle Net:
Localizado o no centralizado: la informacin se almacena en un fichero tnsnames.ora local a cada mquina en la red. Centralizado: la informacin se guarda en un directorio central (LDAP).
TIPOS DE CONFIGURACION
En la exposicin se considera un modelo de configuracin no centralizado, donde la informacin sobre direcciones de red se almacena en el fichero tnsnames.ora de cada sistema.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
559
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
560
para
cman.ora,
listener.ora
El directorio indicado por la variable TNS_ADMIN En UNIX, el directorio global de configuracin (global configuration directory). El directorio $ORACLE_HOME/network/admin
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
561
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
562
TNSNAMES.ORA
Contiene nombres de servicio de red, usados al establecer una conexin, de red mapeados a descriptores de conexin. Dichos descriptores contienen la localizacin de un listener a travs de una direccin de protocolo y el nombre de servicio de la bd al que conecta. Por defecto, tnsnames.ora reside en $ORACLE_HOME/network/admin aunque tambin puede estar en el directorio indicado por la variable de entorno TNS_ADMIN o el global configuration directory. Su sintaxis bsica es:
nombre_servicio= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=nombre_servicio)))
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COMUNICACIONES
TNSNAMES.ORA
563
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
564
TNSNAMES.ORA
nombre_servicio= (DESCRIPTION_LIST= (DESCRIPTION= (ADDRESS=(protocol_address_information)) (ADDRESS=(protocol_address_information)) (ADDRESS=(protocol_address_information)) (CONNECT_DATA= (SERVICE_NAME=service_name))) (DESCRIPTION= (ADDRESS=(protocol_address_information)) (ADDRESS=(protocol_address_information)) (ADDRESS=(protocol_address_information)) (CONNECT_DATA= (SERVICE_NAME=service_name))))
LISTENER.ORA
listener
COMUNICACIONES
565
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
566
LISTENER.ORA
El listener es un proceso que corre en la bd. Recibe peticiones de conexin de los clientes y gestiona el trfico de dichas peticiones a la bd. Su configuracin se almacena en un fichero llamado listener.ora y sus mensajes se generan en el fichero listener.log Dado que todos los parmetros de configuracin tienen valores por defecto, es posible arrancar y usar el listener sin configurar. El listener se llama por defecto LISTENER, no soporta servicios hasta el arranque de la bd, y escucha atendiendo a los siguientes valores:
(ADDRESS=(PROTOCOL=tcp)(HOST=host_name)(PORT=1521))
LISTENER.ORA
El puerto por defecto para conexin al listener es el 1521 (aunque en futuras versiones puede cambiar al 2483, TCP/IP, y 2484, TCP/IP con SSL). Puertos inferiores a 1024 estn reservados para su uso por procesos privilegiados.
COMUNICACIONES
Cada listener est configurado con una o varias direcciones de protocolo, los clientes configurados con una de estas direcciones pueden enviarle peticiones. Una vez recibida la peticin, el listener elige un manejador de servicio apropiado para servir la peticin y redirige la misma hacia l.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
567
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
568
LISTENER.ORA
El listener determina si un servicio de la bd y sus manejadores de servicio estn disponibles mediante el registro del servicio. Durante el mismo, el proceso PMON proporciona al listener informacin sobre: Nombres de los servicios de bd disponibles. Nombre de la instancia asociada con los servicios. Manejadores de servicio (dispatchers y servidores dedicados) disponibles para la instancia -tipo, direccin de protocolo y carga actual y mxima-.
LISTENER.ORA
Si el listener no se est ejecutando cuando arranca la instancia, PMON no puede registrar la informacin de servicio. PMON intenta conectar peridicamente, no obstante, pueden pasar hasta 60 segundos antes de que PMON registre la informacin tras el arranque del listener. Para iniciar el registro de informacin inmediatamente tras el arranque del listener debe emplearse la sentencia SQL:
ALTER SYSTEM REGISTER;
El listener rechaza las peticiones previas al registro. Si la instancia est en modo restringido, PMON ordena al listener bloquear las conexiones y los clientes reciben un error:
ORA-12526: TNS:listener: all appropriate instances are in restricted mode ORA-12527: TNS:listener: all appropriate instances are in restricted mode or blocking new connections ORA-12528: TNS:listener: all appropriate instances are blocking new connections
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
569
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
570
LISTENER.ORA
Por defecto, PMON registra informacin del servicio referente al puerto TCP/IP nmero 1521. Para poder usar un puerto distinto debe configurarse el parmetro de inicializacin LOCAL_LISTENER En un entorno shared server puede emplearse el atributo LISTENER del parmetro DISPATCHERS en el fichero de inicializacin. Como LOCAL_LISTENER y el atributo LISTENER permiten a PMON registrar informacin del dispatcher con el listener, no es preciso especificar ambos si los valores del listener son los mismos. Por ejemplo, para configurar el listener en el puerto 1421:
LOCAL_LISTENER=listener1 DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listener1)" En el tnsnames.ora: listener1=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= host)(PORT=1421)))
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COMUNICACIONES
LISTENER.ORA
El registro dinmico de servicios configuracin del fichero listener.ora no requiere ninguna
El listener emplea la informacin dinmica adquirida mediante el registro dinmico antes de usar la informacin configurada estticamente en el fichero listener.ora. Durante la instalacin de la bd, Oracle Universal Installer ejecuta el Oracle Net Configuration Assistant; este permite configurar el listener con un nombre y una direccin concreta. Tambin se crea una entrada para escucha del protocolo IPC que se configura de forma automtica y sirve a procedimientos externos (escritos en un 3GL que pueden ser llamados desde el cdigo PL/SQL -slo C-).
COMUNICACIONES
571
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
572
LISTENER.ORA
En la configuracin del listener se indica: Nombre. Direccin que acepta peticiones. Servicios para los que escucha (la configuracin esttica es necesaria si se usa Oracle Enterprise Manager). Parmetros de control. Pueden configurarse mltiples listener, con distintos nombres, en un fichero listener.ora. Sin embargo, se recomienda ejecutar slo uno por nodo en la mayora de entornos. SID_NAME (valor del parmetro de inicializacin INSTANCE_NAME), GLOBAL_DBNAME (servicio de bd, generalmente en versiones 8.x -combinacin de DB_NAME y DB_DOMAIN-) y ORACLE_HOME son parmetros estticos definibles en listener.ora
COMUNICACIONES
El parmetro QUEUESIZE permite indicar el nmero de peticiones concurrentes que puede aceptar el listener via TCP/IP o IPC. Su valor por defecto depende del s.o..
LISTENER_NOMBRE= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=host) (PORT=1521)(QUEUESIZE=20)))
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
573
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
574
Mediante SEND_BUF_SIZE puede indicarse, en bytes, el tamao del buffer para enviar operaciones de sesiones (en TCP/IP, TCP/IP with SSL, y SDP). Su valor depende del s.o.
LISTENER_NOMBRE=(DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1521) (SEND_BUF_SIZE=11280)) (ADDRESS=(PROTOCOL=ipc)(KEY=extproc)(SEND_BUF_SIZE=11280))))
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
575
576
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
577
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
578
LISTENER.ORA Y JSERVER.
Clientes acceden a aplicaciones Enterprise JavaBeans (EJBs) y Common Object Request Broker Architecture (CORBA), opcin Oracle Jserver, en una bd Oracle8i sobre una conexin InterOrb Protocol (IIOP). IIOP es una implementacin de General Inter-Orb Protocol (GIOP) sobre TCP/IP. Debe configurarse el puerto 2481 para TCP/IP o 2482 para TCP/IP con SSL. listener= (DESCRIPTION_LIST= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=sales1server)(PORT=2481)) (PROTOCOL_STACK= (PRESENTATION=giop) (SESSION=raw))))
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COMUNICACIONES
579
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
580
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
581
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
582
SQLNET.ORA
Los parmetros de configuracin para cliente y servidor, perfil, que permiten especificar preferencias de Oracle Net se almacenan en el fichero sqlnet.ora Sus mensajes se generan en el fichero sqlnet.log Permite realizar acciones como: Priorizar modelos (NAMES.DIRECTORY_PATH). de localizacin
SQLNET.ORA
Acceso denegado. TCP.EXCLUDED_NODES=(<dir_IP>|<servidor>) Acceso permitido: TCP.INVITED_NODES=(<dir_IP>|<servidor>) Comprobar valores anteriores . TCP.VALIDNODE_CHECKING = yes/no
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
583
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
584
SQLNET.ORA
Indicar el intervalo, en segundos, que media para el envio de una confirmacin para verificar que la conexin est activa. SQLNET.EXPIRE_TIME Un valor mayor que 0 asegura que no permanecen sesiones abiertas indefinidamente. Si la confirmacin encuentra una sesin que ha terminado o que no est en uso, devuelve un error y fuerza al proceso servidor a terminar. Indicar un dominio por defecto. Este se aade automticamente a cualquier nombre de servicio dado en la cadena de conexin y comparado con los nombres de servicio de tnsnames.ora NAMES.DEFAULT_DOMAIN=<nombre_dominio>
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COMUNICACIONES
SQLNET.ORA
Indicar el intervalo, en segundos, para completar una operacin de envio a los clientes tras el establecimiento de la conexin (recomendable en entornos donde las conexiones con los clientes suelen verse interrumpidas): SQLNET.SEND_TIMEOUT Si el servidor no puede completar el envo en dicho tiempo, se generan en el fichero sqlnet.log los errores: ORA-12535: TNS:operation timed out y ORA-12608: TNS: Send timeout occurred
585
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
586
SQLNET.ORA
Indicar el intervalo, en segundos, para el servidor espera por datos de un cliente tras el establecimiento de la conexin (recomendable en entornos donde las conexiones con los clientes suelen verse interrumpidas): SQLNET.RECV_TIMEOUT Si un cliente no enva datos se generan en el fichero sqlnet.log los errores: ORA-12535: TNS:operation timed out y ORA-12609: TNS: Receive timeout occurred
SQLNET.ORA
Indicar parmetros de control del log:
LOG_DIRECTORY_CLIENT. Directorio de destino para el fichero de log (por defecto el directorio de trabajo actual). LOG_FILE_CLIENT. Nombre del fichero de log para el cliente (por defecto sqlnet.log). LOG_DIRECTORY_SERVER. Directorio destino para ficheros de log del servidor (por defecto $ORACLE_HOME/network/log). LOG_FILE_SERVER. No aplicable. Hace referencia al fichero de log del servidor: sqlnet.log
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
587
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
588
SQLNET.ORA
TRACE_DIRECTORY_SERVER. Directorio destino para trazas del servidor, por defecto $ORACLE_HOME/network/trace TRACE_FILE_CLIENT. Nombre del fichero de traza cliente. Por defecto sqlnet.trc TRACE_FILE_SERVER. Nombre del fichero de traza servidor. Por defecto svr_pid.trc TRACE_FILELEN_CLIENT. Tamao de los ficheros traza cliente (KB). Al alcanzar el tamao, la traza se escribe al fichero siguiente. El nmero de ficheros se indica con TRACE_FILENO_CLIENT TRACE_FILELEN_SERVER. Tamao de los ficheros traza servidor (KB). Al alcanzar el tamao, la traza se escribe al fichero siguiente. El nmero de ficheros se indica con TRACE_FILENO_SERVER TRACE_LEVEL_CLIENT. Nivel de detalle de la traza (0, sin traza, a 16, nivel mximo de traza). TRACE_LEVEL_SERVER. Nivel de detalle de la traza (0, sin traza, a 16, nivel mximo de traza).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COMUNICACIONES
SQLNET.ORA
Para configurar un modelo local o no centralizado, el parmetro NAMES.DIRECTORY_PATH del fichero sqlnet.ora -indica el orden de los mtodos de configuracin que Oracle Net emplea para resolver los identificadores- debe contener en primer lugar el valor tnsnames. NAMES.DIRECTORY_PATH=(tnsnames) Easy connect naming se configura automticamente en la instalacin, es neceasrio que venga especificado EZCONNECT en NAMES.DIRECTORY_PATH NAMES.DIRECTORY_PATH=(ezconnect, tnsnames)
589
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
590
Servidor BD y cliente en la misma red. Servidor BD: Instalada bd y TCP/IP. Configurado un listener. Cliente: Instalado Oracle Client y TCP/IP.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
591
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
592
Arrancar la bd.
sqlplus /nolog SQL> CONNECT / as sysdba SQL> STARTUP
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COMUNICACIONES
593
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
594
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
595
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
596
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
597
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
598
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
600
Este cadena se convierte en el descriptor: (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com))) Para conexiones URL o JDBC: CONNECT username/password@[//][host][:port][/service_name]
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COMUNICACIONES
601
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
602
DATABASE LINK.
Es una conexin entre dos bbdd que permite acceder a ellas como una nica bd; as como acceder de forma remota. Define una va de comunicacin unidireccional, en un solo sentido, cuya definicin se almacena en diccionario de datos. Pueden ser pblicos o privados. Generalmente tienen el mismo nombre que database name de la bd remota que referencia. el global
DATABASE LINK
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
603
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COMUNICACIONES
604
NUMERO DE DISPATCHER. CONFIGURACION DE DISPATCHER. PROCESOS SERVIDOR COMPARTIDOS. AJUSTE DEL NUMERO SHARED SERVER. OTROS PARAMETROS. CONNECTION POOLING. SERVICIOS Y DISPATCHER. AJUSTE DEL NUMERO DISPATCHERS. REDUCIR CONTENCION. DISPATCHERS. DISPATCHERS. CLAUSULA INDEX.
SHARED SERVER.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
606
MANEJADORES DE SERVICIO.
Para cada instancia existen unos manejadores de servicio o puntos de conexin a la bd. Estos pueden ser: Un servidor dedicado, o Un dispatcher, caso de servidor compartido.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
607
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
608
MANEJADORES DE SERVICIO.
El tipo de configuracin se determinar en el servidor de bd. Respecto al cliente puede suceder que este desee usar un manejador de servicio particular, en este caso el tipo a utilizar se indicara en el conector: (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=nombre_servicio) (SERVER=shared/dedicated))) Si no se indica el valor para el parmetro SERVER se asume por defecto la configuracin shared server. Si no hay dispatchers disponibles, se usarn servidores dedicados.
COMUNICACIONES
SERVIDOR DEDICADO.
El listener arranca un proceso dedicado exclusivo para cada peticin cliente, que permanece hasta la finalizacin de la misma. Pueden darse dos opciones
protocolo): (seleccionada en funcin del S.O. y el
El servidor dedicado hereda la peticin de conexin del listener. El servidor dedicado informa al listener sobre su direccin de escucha, esta se pasa al cliente. Se cierra la conexin con el listener y el cliente se conecta al servidor dedicado directamente.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
609
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
610
SERVIDOR DEDICADO.
SERVIDOR DEDICADO.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
611
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
612
SERVIDOR DEDICADO.
En ciertas situaciones es preciso conectar obligatoriamente usando servidores dedicados y ha de indicarse de forma explcita: Trabajos batch (en general aquellos en los que no es posible ningn tiempo de espera). Al usar Recovery Manager (RMAN) para hacer copias, restaurar o recuperar una bd.
SERVIDOR COMPARTIDO.
La arquitectura de servidor compartido usa uno o varios procesos dispatcher para redirigir las conexiones cliente a una cola de peticiones comn. Un proceso servidor compartido desocupado extrae la peticin de esta cola. Permite que un pequeo nmero de procesos servidor atienda un gran nmero de clientes, reduciendo as los recursos de sistema necesarios respecto a cuando se usan servidores dedicados. La configuracin servidor compartido es recomendable cuando existan una gran nmero de conexiones puesto que reduce las necesidades de memoria. El proceso listener redirige las peticiones al dispatcher. Al llegar una peticin, el listener la conduce al dispatcher, o indica al cliente la direccin de protocolo del dispatcher -el cliente termina la sesin con el listener y establece una con el dispatcher-.
SHARED SERVER.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
613
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
614
SERVIDOR COMPARTIDO.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
615
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
616
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
617
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
618
DISPATCHER.
El nmero de procesos dispatcher arrancados con la instancia se controla con el parmetro de inicializacin DISPATCHERS. Este nmero depende de la bd, del lmite impuesto por s.o., del nmero de conexiones para cada proceso y del nmero de conexiones requeridas para cada protocolo. Los procesos dispatcher y servidores compartidos pueden arrancarse adems con la sentencia ALTER SYSTEM sin necesidad de rearrancar la instancia. Un dispatcher se crea automticamente, para TCP/IP, cuando se elige el modo servidor compartido (SHARED_SERVERS mayor que 0) sin especificar el parmetro dispatchers, es equivalente a tener en el fichero de inicializacion: dispatchers="(PROTOCOL=tcp)"
619
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 SHARED SERVER.
La configuracin en modo compartido resulta adecuada en sistemas con muchos usuarios OLTP realizando transacciones intermitentes o aquellos sistemas con una alta tasa de conexin a la bd (siempre hay un proceso dispatcher listo para gestionar la peticin entrante).
SHARED SERVER.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
620
NUMERO DE DISPATCHER.
Una vez conocido el nmero de posibles conexiones por proceso de s.o. puede calcularse el nmero inicial de dispatchers a crear en el arranque: Nmero de dispatchers = CEIL ( n mx. sesiones concurrentes / conexiones por dispatcher ) Es necesario tener en cuenta que tras arrancar la instancia pueden arrancarse ms procesos si son necesarios. Configurar demasiados dispatcher puede afectar a la productividad de la bd.
CONFIGURACION DE DISPATCHER.
Configuracin Tpica. DISPATCHERS="(PROTOCOL=TCP) (DISPATCHERS=2) DISPATCHERS=(PROTOCOL=IPC) (DISPATCHERS=1)" Forzar los puertos usados. DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(PORT=5000))" DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(PORT=5001))" Forzar las direcciones IP usadas (las direcciones IP deben ser direcciones vlidas para el host donde est la instancia). DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(HOST=144.25. 16.201))(DISPATCHERS=2)"
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
621
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
622
623
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
624
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
625
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
626
Si se detecta contencin en los shared servers, debe en primer lugar comprobarse que no hay contencin en memoria -examinando la shared pool y la large pool-. En ltima instancia podran aadirse ms recursos actuando sobre los parmetros: MAX_DISPATCHERS MAX_SHARED_SERVERS DISPATCHERS SHARED_SERVERS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
627
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
628
OTROS PARAMETROS.
SHARED_SERVER_SESSIONS. Parmetro modificable con ALTER SYSTEM que indica el nmero total de sesiones concurrentes de usuario permitidas en arquitectura shared server. Si se indica, su valor debe ser menor que SESSIONS. Parmetros que tambin pueden requerir ajuste son: LARGE_POOL_SIZE. Tamao en bytes de la pila large pool, mnimo de 300k. Es modificable con ALTER SYSTEM. SESSIONS. Parmetro esttico, especifica el nmero mximo de sesiones que es posible crear en el sistema; dado que cada conexin requiere una sesin, este parmetro determina el nmero mximo de usuarios concurrentes en la bd.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 SHARED SERVER.
OTROS PARAMETROS.
CIRCUITS. Parmetro modificable con ALTER SYSTEM que indica nmero total de circuitos virtuales disponibles para sesiones de red. Est relacionado con los requerimientos de SGA y no es necesario indicarlo a menos que se quiera limitar el nmero de circuitos. Un circuito virtual es una porcin de memoria compartida usada por el dispatcher para las conexiones cliente (peticiones/respuestas). El dispatcher coloca un circuito virtual en una cola comn cuando llega una peticin; un servidor compartido ocioso coge dicho circuito, sirve la peticin, y enlaza el circuito antes de intentar recuperar otro.
629
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
630
OTROS PARAMETROS.
MAX_DISPATCHERS (obsoleto). Parmetro modificable con ALTER SYSTEM que indica el mximo nmero de procesos dispatcher permitidos a la vez. Su valor debe ser mayor o igual que el nmero de dispachers indicados por DISPATCHERS y menor que el nmero de procesos indicados por PROCESSES. Se mantiene por compatibilidad con versiones anteriores. MAX_SHARED_SERVERS. Parmetro modificable con ALTER SYSTEM que indica el nmero mximo de procesos de servidor compatido (shared server) simultneos. Si ocurren con demasiada frecuencia deadlocks, debe incrementarse. Su valor debe ser mayor o igual que el nmero de dispachers indicados por SHARED_SERVERS y menor que el nmero de procesos indicados por PROCESSES.
CONNECTION POOLING.
Esta utilidad permite reducir el nmero de conexiones fsicas de red a un dispatcher al compartir un conjunto de conexiones entre los procesos cliente. Se configura usando el atributo POOL del parmetro DISPATCHERS y los atributos opcionales CONNECTIONS (CON o CONN), SESSIONS (SES o SESS) y TICKS (TIC o TICK).
CONNECTIONS ... Mximo nmero de conexiones de red permitidas por dispatcher. Valor por defecto dependiente del s.o. TICKS ... Duracin de network tick en segundos (por defecto 1). Es un timeout del Connection Pool. POOL ... Activa Connection Pooling (valores YES -activado-, NO -desactivado-, IN -conexiones entrantes- y OUT -conexiones salientes-). Por defecto no est activado. SESSIONS ... Nmero mximo de sesiones de red permitidas por dispatcher (valor por defecto dependente del s.o.).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
631
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
632
CONNECTION POOLING.
Suponiendo un sistema que puede soportar hasta 950 conexiones por proceso y que existen 4000 usuarios conectados al tiempo a travs de SSL y 2500 sesiones concurrentes a travs de TCP/IP con SSL, seran necesarios 5 dispatchers para TCP/IP y 3 ms para TCP/IP con SSL:
DISPATCHERS="(PROTOCOL=tcp)(DISPATCHERS=5)" DISPATCHERS="(PROTOCOL=tcps)(DISPATCHERS=3)"
SERVICIOS Y DISPATCHER.
Dado que una bd puede estar representada por mltiples nombres de servicio, un conjunto de dispatchers pueden habilitarse para servir exclusivamente peticiones a un servicio particular (e incluso asignar mayores recursos a las mismas).
SERVICE_NAMES=CURSOxx INSTANCE_NAME=CURSOxx DISPATCHERS="(PROTOCOL=tcp)" DISPATCHERS="(PROTOCOL=tcp)(SERVICE=ADMINCURSO)"
Si los clientes estn frecuentemente inactivos y un dispatcher puede gestionar 4000 sesiones TCP/IP o 2500 sesiones TCP/IP con SSL, podra optarse por la configuracin:
DISPATCHERS="(PROTOCOL=tcp)(DISPATCHERS=1)(POOL=on)(TICK=1) (CONNECTIONS=950)(SESSIONS=4000)" DISPATCHERS="(PROTOCOL=tcps)(DISPATCHERS=1)(POOL=on)(TICK=1) (CONNECTIONS=950)(SESSIONS=2500)"
En el ejemplo anterior hay dos dispatchers, el primero sirve peticiones para clientes accediendo al servicio CURSOxx, el otro slo para clientes accediendo al servicio ADMINCURSO.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
633
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
634
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
636
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
638
640
VERIFICAR CONFIGURACION.
Al usar shared server, debe arrancarse en primer lugar el listener y despus la bd. Puede verificarse el estado del dispatcher ejecutando: lsnrctl services Para verificar que las conexiones realizadas estn usando servidores compartidos debe consultarse la vista V$CIRCUIT (habr una entrada por cada conexin de servidor compartido). Select dispatcher, circuit, server, status from v$circuit;
PARAR DISPATCHERS.
Es posible parar procesos especficos al estar identificados por un nombre de la forma Dnnn -los procesos background correspondientes se identifican de la forma Dnnn-.
SELECT NAME, NETWORK FROM V$DISPATCHER; NAME NETWORK ------------------------------------------------------------------------D000 (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=3499)) D001 (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=3531)) D002 (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=3532))
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
641
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
642
PARAR DISPATCHERS.
La clasula IMMEDIATE permite parar el dispatcher, no aceptando nuevas conexiones y terminando inmediatamente las existentes. Posteriormente el proceso acaba. Si no se indica IMMEDIATE, el proceso dispatcher espera hasta que todos sus usuarios se desconecten antes de finalizar.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
643
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
644
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
645
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
646
FORZAR CONFIGURACION.
La instancia Oracle slo proporciona la forma de limitar el nmero total de sesiones que pueden establecerse, como un conjunto, pero no deja limitar de forma especfica sesiones dedicadas o sesiones compartidas como tales. Para limitar el nmero total de sesiones que pueden establecerse, puede usarse el parmetro SESSIONS en el fichero de parmetros de inicializacin.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
647
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
SHARED SERVER.
648
VISTAS.
V$CIRCUIT ... Circuitos virtuales -conexiones de usuario a la bd a traves de dispatchers y servidores. V$DISPATCHER ... Informacin sobre los procesos dispatcher (nombre,estado, estadsticas,...). V$DISPATCHER_CONFIG ... Configuracin de los procesos dispatcher. V$DISPATCHER_RATE ... Estadsticas para dispatcher. V$QUEUE ... Informacin sobre las colas de mensaje de los servidores compartidos. V$SHARED_SERVER ... Informacin de procesos sharedserver. V$SHARED_SERVER_MONITOR ... Informacin para ajuste de shared server. V$SGA ... Informacin sobre system global area (SGA). V$SGASTAT ... Informacin estadstica de la SGA. V$SHARED_POOL_RESERVED
SHARED SERVER.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
649
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
650
TEMA 8. ARCHIVADO.
MODOS DE FUNCIONAMIENTO DE LA BD. MODOS NOARCHIVELOG Y ARCHIVELOG. REDO LOG ARCHIVADO. INFORMACION DE ARCHIVADO. MODO DE ARCHIVADO INICIAL. CAMBIO A MODO ARCHIVELOG. ARCHIVELOG.
ARCHIVADO MANUAL. DESTINO DE ARCHIVADO. FALLOS EN DESTINO. CONTROL DE PROCESOS ARCn.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARCHIVADO DE BASE DE DATOS
TEMA 8. ARCHIVADO.
INFORMACION PROCESO ARCHIVADO. FLASH RECOVERY AREA Y ARCHIVELOG. CAMBIO A MODO NOARCHIVELOG. VISTAS.
651
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
652
MODO NOARCHIVELOG.
En este modo la bd est protegida contra el fallo de instancia; pero si se produce un fallo en disco o en fichero, slo puede recuperarse hasta la copia completa, y consistente, ms reciente. Est desactivado el archivado de los redo log en lnea. Cuando se completa el llenado de un grupo y se produce el log switch, este es reutilizado por el LGWR. Deben hacerse peridica y frecuentemente copias completas y coherentes de la bd (con la bd cerrada consistentemente).
653
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
654
MODO ARCHIVELOG.
Se archivan los redo log en lnea. Cuando se completa el llenado de un grupo, este NO es reutilizado por el LGWR hasta que se archiva. Pueden usarse copias realizadas mientras la base de datos est abierta y en funcionamiento. Permite recuperar todas las transacciones validadas (commit) en caso de fallo en disco o de sistema operativo -se recupera la bd al momento actual-. Es aconsejable en el caso de no poder permitir ningn tipo de prdida de datos.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARCHIVADO DE BASE DE DATOS
MODO ARCHIVELOG.
655
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
656
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
657
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
658
INFORMACION DE ARCHIVADO.
La orden de SQL*Plus ARCHIVE LOG LIST se emplea, entre otras cosas, para mostrar informacin de archivado para una determinada instancia. Modo de operacin: ARCHIVELOG o NOARCHIVELOG. Estado de archivado automtico (habilitado o no). Destino de archivado. Nmero de secuencia para el ms antiguo redo log en lnea lleno. Idem para el prximo a archivar. Idem para el actual.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
660
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
662
Si est activo el archivado manual debemos explcitamente archivar los redo log o la bd suspender su funcionamiento. No es conveniente trabajar de forma manual.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARCHIVADO DE BASE DE DATOS
663
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
664
Es incompatible con el parmetro LOG_ARCHIVE_DEST (este parmetro junto con LOG_ARCHIVE_DUPLEX_DEST permite especificar un mximo de dos destinos de archivado).
665
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARCHIVADO DE BASE DE DATOS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
666
Si se emplean maysculas (por ejemplo, %S o %T) el valor pasa a ser de longitud fija y se completa con ceros a la izquierda. Un ejemplo de nombre puede ser: LOG_ARCHIVE_FORMAT = "LOG%t_%s_%r.ARC"
ARCHIVADO DE BASE DE DATOS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
667
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
668
Cada destino tiene una serie de caractersticas que determinan su estado (ver vista v$ARCHIVE_DEST):
Valid/Invalid ... destino especificado y validez Enabled/Disabled ... estado de disponibilidad y usabilidad (por defecto un destino tiene valor enabled). Active/Inactive ... si hay problemas accediendo al destino
669
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARCHIVADO DE BASE DE DATOS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
670
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
671
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
672
No pudiendose crear ms de los indicados. Su valor por defecto es 2. Generalmente no es necesario indicar nada pues la bd arranca tantos procesos ARCn como sean necesarios para asegurar un correcto funcionamiento.
673
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARCHIVADO DE BASE DE DATOS
674
Cada proceso ARCn trabaja slo con un log inactivo cada vez, pero debe escribir a cada unos de los destinos indicados.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
675
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
676
Pueden combinarse distintos niveles indicando un valor resultado de la suma de dos de ellos (por ejemplo, el valor 3 hace referencia a 1 y a 2). Al fijar el valor por defecto, cero, Oracle continuar ARCHIVADO DEy BASE DE DATOS generando entradas en el fichero de alert trazas en 678 respuesta a condiciones de error. Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
677
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
679
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
680
total, en bytes, del rea (este parmetro debe indicarse antes de DB_RECOVERY_FILE_DEST).
DB_RECOVERY_FILE_DEST
... Localizacin (directorio, sistema de ficheros o disco automatic storage management -ASM-), NO puede ser sistema de ficheros raw.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
681
682
Los nombres de fichero para los archivados en el rea de flash no vienen determinados por LOG_ARCHIVE_FORMAT y son Oracle Managed Filenames.
ARCHIVADO DE BASE DE DATOS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
683
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
684
VISTAS.
V$DATABASE. Consulta del modo de la bd ARCHIVELOG o NOARCHIVELOG. V$ARCHIVED_LOG. Informacin histrica sobre archivado a partir del fichero de control. V$ARCHIVE_DEST. Informacin sobre destino de archivado. V$ARCHIVE_PROCESSES. Informacin sobre el estado de los procesos de archivado. V$BACKUP_REDOLOG. Informacin sobre backups de los logs archivados. V$LOG. Informacin sobre grupos de redo en lnea indica tambin cual necesita archivarse-. V$LOG_HISTORY. Informacin histrica de log.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 ARCHIVADO DE BASE DE DATOS
685
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
686
687
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
688
Coexistencia de bbdd tipo Oracle7 junto a otras ms recientes, y la necesidad de coherencia en el manejo de todas ellas (RMAN slo soporta bd versin 8.0 o superior). Algo que debera ser inusual actualmente. Prdida de las copias realizadas con RMAN, y necesidad de restaurar copias manuales y recuperar con la orden SQL*Plus RECOVER.
Nota: La exposicin estar basada en el empleo de mtodos manuales de copia y recuperacin.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
689
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
690
COPIAS FISICAS/LOGICAS.
Debe permitir, en caso de prdida de los datos originales, recuperarlos. Pueden clasificarse en: Fsicas. Copias de los ficheros que integran la bd, ficheros
de control y ficheros archive log hechas con utilidades del gestor de bd -Recovery Manager, RMAN- o del s.o..
La copia fsica es la base del sistema de copia y recuperacin, aunque ambas son complementarias.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
692
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
693
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
694
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
696
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
698
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
699
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
700
V$FLASH_RECOVERY_AREA_USAGE permite averiguar el porcentaje de disco usado por los diferentes tipos de ficheros y espacio recuperable mediante el borrado de ficheros obsoletos, redundantes o ya almacenados en otro soporte.
SQL> SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
701
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
702
COPIAS COMPLETAS/PARCIALES.
Completas. Incluyen ficheros de control y de datos. Es
independiente del modo de operacin de la bd.
TIPOLOGIA DE COPIAS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
703
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
704
COPIAS COMPLETAS/PARCIALES.
Una copia completa puede ser: Consistente. Puede abrirse con la opcin RESETLOGS sin realizar media recovery, o sea, sin aplicar redo a los ficheros de datos. Todos los ficheros de datos deben:
Tener el mismo system change number (SCN) en sus cabeceras, a menos que los tbsp correspondientes esten en slo lectura u offline normal. No contienen cambios tras el SCN. Concuerdan con la informacin de checkpoint almacenada en el fichero de control.
Nota: Un "system change number" (SCN) es una marca de tiempo, "timestamp", interna para una versin validada de la bd. La bd emplea el valor de reloj SCN para garantizar la consistencia de las transacciones. Por ejemplo, cuando un usuario valida una transaccin, Oracle graba un SCN para esta validacin en el "redo log" en lnea. Oracle tambin emplea SCNs para coordinar transacciones distribuidas entre distintas bbdd
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
COPIAS COMPLETAS/PARCIALES.
Slo pueden efectuarse copias consistentes tras un shutdown limpio de la bd, esta no debe abrirse hasta finalizar la misma. Una copia completa y consistente es la nica opcin vlida para bd en modo NOARCHIVELOG. Inconsistente. Copia donde algun fichero contiene cambios hechos despus del checkpoint de los ficheros. Necesita recuperacin antes de ser consistente. Normalmente se hacen con la bd abierta mientras se realiza la copia. Pero tambin si la copia se hace sobre una bd cerrada justo despus de caer una instancia o de cerrar la bd con SHUTDOWN ABORT. Slo son vlidos si la bd est en modo archivelog.
705
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
706
COPIAS COMPLETAS/PARCIALES.
Parciales. Copias de los ficheros de un tablespace. Slo son vlidos si la bd est en modo archivelog (en modo noarchivelog slo cuando est en modo slo lectura u offline normal). Pueden hacerse con RMAN o mediante el s.o.. Copia de un fichero de datos. Vlido en modo archivelog (en modo noarchivelog cuando est en modo slo lectura u offline normal, o cuando todo fichero de un tbsp. se copia). Pueden hacerse con RMAN o mediante el s.o.. Copia de fichero de control. Mediante RMAN, o la sentencia alter database backup controlfile -a binario-. Copias de redo log archivados. Fundamentales para recuperar una copia inconsistente. Deben copiarse todos los producidos durante una copia inconsistente.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
COPIAS COMPLETAS/PARCIALES.
Durante las copias realizadas en lnea pueden producirse inconsistencias en los datos que se intenta copiar (por ejemplo, la lectura de bloques fracturados -con datos antiguos y nuevos al estar modificndose-). Para evitarlo, el tbsp. debe ponerse en modo backup con la sentencia alter tablespace begin backup (no puede indicarse para un tbsp de slo lectura ni un tbsp temporal gestionado localmente). Mientras dura la copia no puede ponerse fuera de lnea, parar la instancia o comenzar otra copia del tbsp. Mediante alter tablespace end backup se indica que la copia del tbsp. ha acabado. Se recomienda usarla tan pronto como sea posible, pues si sucede un fallo de instancia o shutdown abort, Oracle piensa que se necesita media recovery en el siguiente arranque (quiz con redo log archivado).
707
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
708
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
709
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
710
711
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
712
No debera realizarse copia de la bd si ha sido parada de forma anormal (shutdown abort o cada debido a un fallo). Copiar los ficheros apropiados (datos, control, inicializacin, configuracin -buscar todos los ficheros .ora comenzando por el $ORACLE_HOME-, ...). Rearrancar la bd. SQL> STARTUP
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
713
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
714
Poner el tbsp fuera de lnea con prioridad normal (ALTER Realizar copia de los f.datos (cp).
ONLINE;).
Forzar el archivado de redo, de forma que aquel necesario para recuperar la copia del tbsp est disponible (ALTER SYSTEM ARCHIVE LOG CURRENT;).
COPIAS DE SEGURIDAD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
715
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
716
Forzar el archivado de redo, de forma que aquel necesario para recuperar la copia est disponible:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
717
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
718
Paralela. Se ponen simultneamente todos los tbsp en modo begin backup -implica un gran crecimiento de redo en lnea al actualizarlos-. Se realiza la copia y se hace end backup.
Serie (Opcin recomendada). Repetir el proceso begin backup-copia-end backup para cada tbsp. minimiza el tiempo begin-end para un tbsp.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
719
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
720
Abandonar el modo de copia (slo si se est seguro de que los ficheros estn en la fecha actual).
Montar la bd (STARTUP MOUNT). Consultar en V$BACKUP tbsp en copia (status='ACTIVE'). Ejecutar ALTER DATABASE END BACKUP; (slo si la bd montada y no se ha restaurado ningun fichero implicado, en de que est abierta debe emplearse ALTER TABLESPACE ... BACKUP o ALTER DATABASE DATAFILE ... END BACKUP para tbsp o fichero implicado). Abrir la bd.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
721
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
722
724
Se realiza una copia de cada nmero de secuencia de log (en caso de guardar mltiples copias, slo es necesario una por nmero de secuencia).
725
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
726
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
727
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
728
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
729
COPIAS DE SEGURIDAD
730
RESTAURACION DE COPIAS.
Peridicamente deben verificarse las copias realizadas para asegurar que son tiles para la recuperacin. La mejor forma de hacerlo es restaurar las copias en otra mquina e intentar abrir la bd, realizando recuperacin si es necesario.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
731
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
732
733
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
734
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
735
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
736
737
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
738
SQL> select a.name tablespace, a.ts# numero_tbsp, b.SEGMENT_NAME segmento, b.HEADER_FILE cabecera, b.HEADER_BLOCK bloque from v$tablespace a, dba_segments b where a.name=b.TABLESPACE_NAME and b.tablespace_name='USERS' and b.owner='SCOTT' order by b.SEGMENT_NAME; ... USERS DEPT ... 739 0 1 57341
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
740
Total Pages Processed (Data) : 1 (Data) : 0 (Index): 0 Total Pages Processed (Index): 0 Total Pages Processed (Other): 0 Total Pages Processed (Seg) : 1 Total Pages Failing Total Pages Empty Total Pages Influx (Seg) : 0 :0 :0 :0
FLASHBACK DATABASE
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
741
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
742
FLASHBACK DATABASE.
Flashback Database permite retroceder la bd al completo y deshacer los efectos de cambios no deseados en la bd. El resultado es muy similar a realizar una recuperacin point-in-time aunque ms rpida pues mo es preciso restaurar ficheros desde un soporte y resquiere aplicar menos cambios desde el redo archivado. Los puntos de restauracin garantizada (restore points) permiten seleccionar un SCN y asegurar que flashback database podr usarse en dicho SCN -aunque no necesariamente en los SCN entre el punto de chequeo y el momento actual- (incluso operaciones NOLOGGING u operaciones OPEN RESETLOGS). Restore points y Flashback Database pueden usarse independientemente o combinados. En cualquier caso, la sentencia RMAN FLASHBACK DATABASE o la SQL*Plus FLASHBACK DATABASE se emplean para devolver la bd al SCN indicado:
FLASHBACK DATABASE TO RESTORE POINT before_upgrade; FLASHBACK DATABASE TO SCN 202381;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
FLASHBACK DATABASE.
Flashback Database emplea su propio mecanismo de log, se crean los flashback logs que se almacenan en el rea flash (proceso flashback writer -RVWR-). Para habilitar esta caracterstica debe crearse un rea flash e indicar un flashback retention target o margen temporal en el que se podr recuperar hacia el pasado. Definido ese punto, la bd copia a intervalos regulares imgenes de cada bloque modificado en cada fichero de datos en los log de flashback. Estas copias se reconstruyen los ficheros de datos. El rango de SCNs o ventana para los que hay suficientes datos flashback log como para realizar un FLASHBACK DATABASE depende del espacio en el rea flash. Operaciones como el borrado de un tbsp. no son reversibles con este mtodo (la ventana empezara a continuacin de los mismos). El uso de puntos de restauracin garantizada es la nica forma de asegurar el regreso a un SCN concreto o ancho de ventana de flashback.
COPIAS DE SEGURIDAD
743
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
744
FLASHBACK DATABASE.
Si se habilita Flashback Database y uno o ms puntos de restauracin garantizada, la bd guarda los log de flashback, lo que puede generar cierta sobrecarga en el funcionamiento de la bd y uso de espacio del rea flash. Se retienen los log necesarios para permitir retroceder al punto de restauracin ms antiguo y los log no se borran si se necesitan para garantizar este extremo. Es conveniente monitorizar el espacio en el rea flash.
PUNTOS RESTAURACION.
Para crearlos se usa la sentencia SQL*Plus CREATE RESTORE POINT indicando un nombre para el mismo y si se trata de un punto garantizado o normal (por defecto). La bd puede estar abierta o montada, siempre que en este ltimo caso haya sido parada coherentemente.
SQL> CREATE RESTORE POINT <nombre>; SQL> CREATE RESTORE POINT <nombre> GUARANTEE FLASHBACK DATABASE;
Para borrar un punto de restauracin se usa la sentencia SQL*Plus DROP RESTORE POINT:
SQL> DROP RESTORE POINT <nombre>;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
745
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
746
PUNTOS RESTAURACION.
Los puntos normales pueden ser descartados aunque no se borren. As sucede que los 2048 puntos ms recientes se guardan en el fichero de control independientemente de su edad y cualquier punto ms reciente que el valor de CONTROL_FILE_RECORD_KEEP_TIME se retiene independientemente de cuantos puntos haya definidos. Cualquier punto normal que no cumpla ninguna de las dos condiciones mencionadas puede desaparecer del fichero de control. Los puntos de control garantizados siempre permanecen hasta que se borran explcitamente. Al definir este tipo de puntos, debe monitorizarse el espacio usado en el rea flash (vistas V$RECOVERY_FILE_DEST y V$FLASH_RECOVERY_AREA_USAGE).
PUNTOS RESTAURACION.
La vista V$RESTORE_POINT restauracin definidos: permite ver los puntos de
Para puntos de restauracin normales STORAGE_SIZE es cero. Para los garantizados STORAGE_SIZE indica la cantidad de espacio en el rea flash usada para retener log necesarios para garantizar el regreso a dicho punto con FLASHBACK DATABASE.
COPIAS DE SEGURIDAD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
747
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
748
Si se deshabilita Flashback para un tbsp., deben ponerse fuera de lnea sus ficheros de datos antes de ejecutar FLASHBACK DATABASE. DB_FLASHBACK_RETENTION_TARGET determina indirectamente cuanto log se retendr. V$FLASHBACK_DATABASE_LOG ayuda a estimar cunto espacio es necesario para log de flashback.
SQL> SELECT ESTIMATED_FLASHBACK_SIZE FROM V$FLASHBACK_DATABASE_LOG;
750
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
751
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
752
COPIA LOGICA
753
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
754
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 usando la sentencia STATUS en modo interactivo de Data Pump.
COPIAS DE SEGURIDAD
755
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
756
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
757
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
758
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>; Nota: Implica tener acceso a travs de bd pero no el poder acceder a travs de s.o.
4.- Si es un usuario privilegiado se emplea el valor por defecto en bd del directorio DATA_PUMP_DIR (que debe estar previamente creado). No confundir con la variable de entorno.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
759
760
- Tablespace (parmetro TABLESPACES). Debe tenerse el rol 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 EXP_FULL_DATABASE.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
761
762
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
763
764
TABLESPACES TRANSPORTABLES.
Permite trasladar un conjunto de espacios de almacenamiento desde una bd a otra (slo entre bd con el mismo juego de caracteres -character set- y sobre plataformas compatibles). Los tbsp transportados pueden ser gestionados localmente o no. No necesitan ser del mismo tamao de bloque que el tamao de bloque estndar de la bd destino. Es util, por ejemplo, para: Realizar una recuperacin a un punto en el tiempo Tablespace Point-in-Time Recovery (TSPITR). Archivo de datos histricos. Copia de tbsp. de slo lectura en mltiples bd. Migracin de bd entre distintas plataformas (SQL> SELECT * FROM V$TRANSPORTABLE_PLATFORM;).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 COPIAS DE SEGURIDAD
TBSP TRANSPORTABLES
765
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
766
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
767
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
768
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
769
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
770
COPIAS DE SEGURIDAD
771
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
772
Realizar la exportacin de metadatos de los tbsp a migrar (slo se exportan metadatos) -conexin con privilegio SYSDBA-. Debe poseerse el rol EXP_FULL_DATABASE para realizar la exportacin.
DUMPFILE = expdat.dmp DIRECTORY = dpump_dir TRANSPORT_TABLESPACES = (NOMINA, PAGOS)
TRANSPORT_FULL_CHECK es un parmetro que verifica que un conjunto de tbsp a recuperar no tiene dependencias (hacia/desde). Si el conjunto de tbsp no es autocontenido, la exportacin falla.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
773
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
774
775
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
776
IMPDP system/password DUMPFILE=expdat.dmp DIRECTORY=dpump_dir TRANSPORT_DATAFILES= /salesdb/sales_101.dbf REMAP_SCHEMA=(dcranney:smith) REMAP_SCHEMA=(jfee:williams) TRANSPORT_DATAFILES identifica correspondientes a los tbsp a importar los ficheros de datos
REMAP_SCHEMA cambia los propietarios de los objetos de bd. Si no se indica se crean en el mismo esquema que el origen y dichos esquemas deben existir en el destino o, en caso contario, generan un error.
COPIAS DE SEGURIDAD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
777
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
778
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
779
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
COPIAS DE SEGURIDAD
780
VISTAS.
V$DATAFILE V$TABLESPACES V$LOGFILE V$CONTROLFILE V$BACKUP V$INSTANCE V$ARCHIVED_LOG
COPIAS DE SEGURIDAD
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
781
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
782
783
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION Y ESTRUCTURAS
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
785
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
786
RECUPERACION.
La posibilidad de un fallo de sistema o de mquina siempre existe. Si ocurre y afecta a la bd, esta debe recuperarse. El objetivo es asegurar que los efectos de las transacciones validadas se reflejen en la bd recuperada y la vuelta a una operacin normal de la bd lo antes posible. Existen distintos tipos de fallos que pueden hacer necesario o no la intervencin del administrador de bd y la recuperacin: Error de usuario. Por ejemplo, el borrado de una tabla (puede recuperarse de una copia lgica previa o mediante el uso de flashback). Es necesaria la intervencin del administrador y la recuperacin. Fallo de una sentencia. Se deshace cualquier cambio automticamente y se devuelve el control al usuario.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
RECUPERACION.
Fallo de proceso. P.ej. desconexin anormal. PMON lo detecta, hace rollback de transaccion y libera recursos. Fallo de instancia. Debido a problemas de mquina, un fallo de s.o. ... Oracle realiza sin intervencin del usuario la recuperacin de la instancia (crash recovery). Fallo en disco (media failure). Es necesaria la intervencin del administrador y la recuperacin (media recovery). Deben restaurarse ficheros desde copia fsica usando sentencias de s.o. y realizar recuperacin con la sentencia SQL*Plus RECOVER (modo ARCHIVELOG). Media recovery puede ser completa -todo redo generado se aplica- o incompleta -no se aplica todo el redo generado y se obtiene una versin anterior de la bd- (en ambos casos la recuperacin afecta a la bd en su totalidad, al completo). TSPITR, tablespace point-in-time recovery, permite realizar una recuperacin incompleta de un tbsp concreto.
787
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
788
ESTRUCTURAS DE RECUPERACION.
Ficheros de datos (datafiles) y bloques de datos. La bd se estructura en unidades lgicas llamadas tablespaces, las cuales se asocian con uno o ms ficheros de datos, datafiles. La bd gestiona el espacio en dichos ficheros en unidades llamadas bloques de datos (la mnima unidad de almacenamiento que puede manejar la bd). Los datos nuevos o modificados no se escriben a los datafiles de forma inmediata sino que se almacenan en memoria y se escriben a intervalos. Si surge un fallo que hace caer la bd habrn cambios guardados en memoria que no han sido aplicados. La copia fsica de los datafiles es fundamental en cualquier estrategia de copia y recuperacin.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
ESTRUCTURAS DE RECUPERACION.
Redo Log. Conjunto de ficheros que registran todos los datos modificados en memoria que aun no han sido escritos a los ficheros de datos. Cada bd necesita al menos dos grupos de redo en lnea con un miembro de redo. Este redo en lnea debe guardarse y da lugar al llamado redo log archivado (modo archivelog de la bd). En modo ARCHIVELOG la bd puede recuperarse completamente de fallos de instancia y de disco. Tambin puede hacerse copia mientras est abierta y en uso. En modo NOARCHIVELOG, la bd puede ser recuperada de un fallo de instancia pero no de disco. La bd slo puede copiarse si est cerrada de forma consistente.
789
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
790
ESTRUCTURAS DE RECUPERACION.
Registros de undo. Almacenados en espacios de almacenamiento de undo o en rollback segments (inusual en este caso). Contienen las imagenes anteriores de aquellos datos que han sido modificados y se emplean para deshacer las transacciones no validadas tras la aplicacin de todo el redo log.
ESTRUCTURAS DE RECUPERACION.
Informacin sobre redo log en lnea actual. Registros de log (log sequence numbers, SCN en cada log) Informacin sobre bloques de ficheros de datos corruptos.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
791
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
792
PRINCIPIOS DE RECUPERACION.
Se aborda a lo largo del tema la recuperacin asumiendo que la bd se encuentra en modo ARCHIVELOG y usando mtodos de recuperacin manuales. La recuperacin bsicamente implica dos acciones: Restaurar el/los fichero/s daados desde el dispositivo de copia preciso (cinta, disco, ...) y hacerlo accesible al servidor de bd (permisos, ...). Recuperacin o aplicar los cambios al fichero/s daado/s empleando el redo archivado y en lnea hasta que la bd se encuentre en el SCN deseado (generalmente el momento previo al fallo que oblig a la recuperacin).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
793
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
794
PRINCIPIOS DE RECUPERACION.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
795
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
796
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
797
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
798
Las utilidades flashback proporcionadas por Oracle son ms eficientes que la recuperacin tradicional en la mayora de los casos.
RECUPERACION
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
799
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
800
Oracle Flashback Table. Devolver tablas a un estado previo. Oracle Flashback Drop. Deshace el efecto de drop table. Fl. Table, Fl. Query, Fl. Trans. Query y Fl. Version Query estn relacionadas con undo. Fl. Drop se basa en el recycle bin.
RECUPERACION
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
802
ESTRATEGIAS DE RECUPERACION
803
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
804
ESTRATEGIAS DE RECUPERACION.
Frente a errores de usuario. Flashback Database. Permite devolver la bd al completo a un estado anterior sin necesidad de restaurar, tomando como referncia un SCN o creando los puntos de restauracin, restore points, necesarios. Debe estar configurada una flash recovery area. Recuperacin de la bd Point-in-Time. Se recupera un tbsp. o la bd al completo a un momento concreto. Importacin desde copia lgica. Frente a fallos de mquina (media failure). El tipo de fallo (fallo fsico, sobreescritura, borrado o corrupcin de un fichero de bd, ...) determina la tcnica de recuperacin a usar.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
ESTRATEGIAS DE RECUPERACION.
Si la bd est en modo NOARCHIVELOG y hay un fallo en disco, media failure, se debe restaurar la copia completa y consistente ms reciente y abrir la bd (si se quisiera la bd actualizada hasta el momento del fallo, habra que introducir todos los cambios manualmente imposible!). Si la bd est en modo ARCHIVELOG y los redo estn disponibles, puede emplearse una recuperacin completa o incompleta para reconstruir la bd.
805
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
806
ESTRATEGIAS DE RECUPERACION.
Probar los mecanismos de copia y recuperacin en un entorno apropiado. Planificar la respuesta a los distintos tipos de incidentes. Se atender al siguiente procedimiento general: Determinar la informacin que se necesita recuperar y restaurar. Restaurar copia de los ficheros y cualquier fichero de redo archivado que sea necesario (a nivel de s.o.). Recuperar los ficheros. Abrir la bd. Si se hace una recuperacin incompleta o se ha restaurado una copia del fichero de control, debe abrirse con la opcin RESETLOGS.
RESTAURACION Y RECUPERACION
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
807
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
808
RESTAURACION DE FICHEROS.
Restaurar un fichero es reemplazarlo por una copia previa del mismo. Se trata de una operacin previa a la recuperacin de cualquier fichero daado. Es necesario, por tanto, guardar la localizacin de los ficheros de datos, control, redo en lnea, redo archivado, inicializacin, comunicaciones y contraseas. Localizacin datos, control y redo en lnea.
SELECT NAME FROM V$DATAFILE UNION ALL SELECT MEMBER FROM V$LOGFILE UNION ALL SELECT NAME FROM V$CONTROLFILE;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
809
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
810
FICHEROS A RESTAURAR.
La vista V$RECOVER_FILE muestra el estado de los ficheros que necesitan recuperacin, el motivo, el SCN donde debe comenzar, ... SELECT * FROM V$RECOVER_FILE;
Nota:La vista no es util si el fichero de control en uso es una copia restaurada o uno nuevo creado tras el fallo en disco (media failure), pues, en este caso, no contiene la informacin necesaria para actualizar v$recover_file.
De V$DATAFILE y V$TABLESPACE pueden obtenerse nombres de fichero y de tablespaces de aquellos ficheros que necesitan recuperacin. SELECT r.FILE#, d.NAME, t.NAME, d.STATUS, r.ERROR, r.CHANGE#, r.TIME FROM V$RECOVER_FILE r, V$DATAFILE d, V$TABLESPACE t WHERE t.TS# = d.TS# AND d.FILE# = r.FILE#
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
812
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
813
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
814
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
815
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
816
'/u02/.../control01.ctl',
817
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
818
Si los redo en lnea no estn accesibles, puede cancelarse la recuperacin sin aplicarlos. En este caso debe recrearse el fichero de control si los cambios en los redo en lnea son necesarios. Abrir la bd con la opcin RESETLOGS: ALTER DATABASE OPEN RESETLOGS; Realizar una copia completa de la bd.
819
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
820
Tras crear el fichero de control, Oracle monta la bd. Recuperar la bd: RECOVER DATABASE Abrir la bd: ALTER DATABASE OPEN; Realizar copia del fichero de control: ALTER DATABASE BACKUP CONTROLFILE TO '/.../copia_fcontrol' REUSE;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
821
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
822
823
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
824
CONDICIONES RECUPERACION.
Para realizar cualquier tipo de media recovery debe tenerse en cuenta que: Deben tenerse privilegios de administrador. Una sesin no puede comenzar una recuperacin completa mientras otra realiza una recuperacin tipo incompleta. No puede realizarse media recovery si se est conectado a la bd a travs de un proceso servidor compartido (shared server). Debe usarse la sentencia SQL*Plus RECOVER, y realizar una recuperacin automtica; as no se interroga al aplicar cada log archivado. Los nombres de estos, se obtienen concatenando LOG_ARCHIVE_FORMAT y LOG_ARCHIVE_DEST_n, siendo n el mayor valor entre los destinos habilitados.
RECUPERACION
CONDICIONES RECUPERACION.
Hay dos formas de automatizar la aplicacin de los redo necesarios en la recuperacin: Ejecutando SET AUTORECOVERY ON antes de RECOVER. Startup mount Set autorecovery on Recover database alter database open; Indicando la clasula AUTOMATIC como opcin de la sentencia RECOVER. Startup mount Recover automatic database alter database open;
825
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
826
RECUPERACION COMPLETA.
Se recuperan las copias al SCN actual; bien la bd al completo, o tbsp o ficheros de datos individuales. No es necesario abrir la bd con RESETLOGS, de forma que pueden recuperarse ciertos ficheros de datos en un momento y los restantes posteriormente.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
827
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
828
829
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
830
1.- Preliminares. Poner los tbsp que contienen los ficheros daados fuera de lnea: ALTER TABLESPACE users OFFLINE TEMPORARY; Intentar corregir, si es posible, el fallo mquina que origina el error. 2.- Restaurar copias de los ficheros daados o perdidos. No deben restaurarse copias de ficheros no daados, redo en lnea o ficheros de control. Si se han restaurado a una localizacin alternativa, deben renombrarse los ficheros de datos: ALTER DATABASE RENAME FILE '/.../tbs1.dbf' TO '/.../tbs1.dbf';
831
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
832
RECUPERACION INCOMPLETA.
Al no recuperar la bd al momento ms actual, debe indicarse cuando terminar la recuperacin (point in tine recovery). Existen diversas opciones: Time-based ... Recupera datos hasta un instante concreto. Cancel-based ... Recupera hasta el empleo de la sentencia CANCEL. Change-based ... Recupera hasta un SCN especfico. Tras una recuperacin incompleta siempre debe abrirse la bd con resetlogs.
RECOVER TABLESPACE users, sales La recuperacin contina hasta que todo el redo archivado y en lnea se ha aplicado. Poner los tbsp. en lnea: ALTER TABLESPACE users ONLINE; ALTER TABLESPACE sales ONLINE;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
833
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
834
RECUPERACION INCOMPLETA.
1.- Preliminares. Realizar una copia completa de la bd como medida de precaucin ante errores durante la recuperacin. Cerrar la bd, si est abierta: SHUTDOWN ABORT Intentar corregir el fallo que origina el error. 2.- Restaurar una copia completa de la bd. Si el fichero de control actual no refleja la estructura de la bd en el tiempo al que se quiere recuperar, debe restaurarse una copia del mismo que lo haga. Restaurar copias de todos los ficheros de datos de la bd (previas al momento al que se quiere recuperar). Abrir una sesin Sqlplus como administrador.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
RECUPERACION INCOMPLETA.
Montar la bd: STARTUP MOUNT Si algn fichero fue restaurado alternativa anteriormente, indicarlo: a una localizacin
ALTER DATABASE RENAME FILE '/.../df2.dbf' TO '/.../df2.dbf'; Obtener el nombre y estado de todos ficheros de datos: SELECT NAME,STATUS FROM V$DATAFILE; Asegurarse de que todos los ficheros de la bd estn en lnea (a menos que un tbsp se hubiera puesto fuera de lnea normalmente -opcin NORMAL- o sea de slo lectura): ALTER DATABASE DATAFILE '/..../tbs.dbf' ONLINE;
835
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
836
838
839
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
840
RECUPERACION PARALELA.
Por defecto se emplea recuperacin paralela, lo que incrementa la productividad. El grado de paralelismo es igual al nmero de UCPs disponibles, relacionado con el parmetro de inicializacin CPU_COUNT. Si se indica RECOVER PARALLEL o RECOVER PARALLEL 0 se evita este comportamiento.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
841
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
842
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
843
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
844
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
845
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
846
TSPITR
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
847
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
848
TSPITR.
El desarrollo bsico de un TSPITR consta de varios pasos: Operaciones preliminares y puesta fuera de lnea de aquellos tbsp. que requieren recuperacin. Creacin de una bd auxiliar (duplicado de la bd en uso restaurada desde copia) y su recuperacin hasta el momento necesario en el tiempo. La bd auxiliar puede residir en la misma mquina que la bd en uso o en otra distinta. Se aconseja esta ltima opcin por su mayor facilidad de manejo y menor probabilidad de dao. Borrado de los tbsp que requieran TSPITR (bd en uso). Transporte del conjunto de tbsp. desde la bd auxiliar hasta la bd en uso.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
TSPITR. PRELIMINARES.
1.- Debe comprobarse que se poseen las copias necesarias previas al instante al que se desea el TSPITR; as como una copia del fichero de control realizada con ALTER DATABASE BACKUP CONTROLFILE TO '<fichero>'; Igualmente que hay suficiente espacio en disco y memoria para poder recuperar y arrancar la bd auxiliar. Si el tbsp. a recuperar se ha renombrado debe asegurarse que el SCN para el TSPITR es posterior al momento en que fue renombrado (no puede hacerse en caso contrario, aunque puede realizarse un DBPITR a un SCN previo al renombrado -vuelve a su nombre anterior-). 2.- Obtener informacin de la bd en uso. - Ficheros de datos, control y redo en lnea (SELECT NAME FROM V$DATAFILE UNION ALL SELECT MEMBER FROM V$LOGFILE UNION ALL SELECT NAME FROM V$CONTROLFILE;).
849
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 RECUPERACION
850
TSPITR. PRELIMINARES.
- Ficheros de datos del tbsp SYSTEM y del conjunto de recuperacin (tbsp a recuperar).
SELECT t.NAME AS "reco_tbs", d.NAME AS "dbf_name" FROM V$DATAFILE d, V$TABLESPACE t WHERE t.TS# = d.TS# AND t.NAME IN ('SYSTEM', 'RECO_TBS_1', 'RECO_TBS_2');
TSPITR. PRELIMINARES.
3.- Determinar los objetos que se perdern en el TSPITR. Cualquier objeto creado tras el instante al que se desea recuperar se pierde. Para averiguar cules son , debe consultarse la vista TS_PITR_OBJECTS_TO_BE_DROPPED en la bd en uso. Por ejemplo, si se quiere recuperar ventas1 y ventas2 al instante '2000-06-02:07:03:11':
SELECT OWNER, NAME, TABLESPACE_NAME, TO_CHAR(CREATION_TIME, 'YYYY-MM-DD:HH24:MI:SS') FROM SYS.TS_PITR_OBJECTS_TO_BE_DROPPED WHERE TABLESPACE_NAME IN ('VENTAS1','VENTAS2') AND CREATION_TIME > TO_DATE('00-JUN-02:07:03:11','YY-MONDD:HH24:MI:SS') ORDER BY TABLESPACE_NAME, CREATION_TIME;
851
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
852
TSPITR. PRELIMINARES.
4.- Configurar la conexin a la bd auxiliar (Net) y, en su caso, crear el fichero de claves. 5.- Crear un fichero de parmetros de inicializacin para la bd auxiliar. Contendr parmetros como: DB_NAME, CONTROL_FILES, LOG_ARCHIVE_DEST_1, LOG_ARCHIVE_FORMAT, DB_UNIQUE_NAME, DB_FILE_NAME_CONVERT, LOG_FILE_NAME_CONVERT. Parmetros de memoria como DB_CACHE_SIZE , SHARED_POOL_SIZE y LARGE_POOL_SIZE deben mantenerse a un valor bajo.
1.- Restaurar los ficheros de la bd auxiliar (ficheros de control, undo y system), junto con el conjunto de recuperacin -tbsp a recuperar-. 2.- Arrancar la bd auxiliar -sin montar-. Si es necesario indicar cul es el fichero de parmetros de inicializacin.
STARTUP NOMOUNT PFILE = /.../.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
853
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
854
TSPITR no funcionar si todos los ficheros del cjto. de recuperacin no estn en lnea. En este momento la bd auxiliar est lista para recuperacin. 6.- Recuperar la bd a un instante concreto con la opcin USING BACKUP CONTROLFILE. Por ejemplo:
RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
855
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
856
2.- Copiar los ficheros de datos de la bd auxiliar a la bd en uso, igual con el fichero resultado de la exportacin (orden cp). 3.- Importar el conjunto transportado (utilidad Data Pump import). 4.- Cambiar modo de los tbsp. transportados a lectura/escritura.
857
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
858
VISTAS.
V$ARCHIVED_LOG V$RECOVER_FILE ... Muestra el estado de los ficheros que precisan media recovery. V$RECOVERY_LOG
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
859
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
RECUPERACION
860
Sitio no oficial sobre Oracle (FAQs, foros, artculos, scripts, etc). Descargas de sw, documentacin, foros, artculos, scripts, etc. Registro gratuito. Revista Oracle Magazine.
SGA dinmica: sga_max_size, db_cache_size db_nk_cache_size (cachs con tamao de bloque no estndard) desaparece connect internal, ahora es connect / as sysdba spfile (fichero de parmetros binario, mantenido con alter system set ...) OMF tablespaces con gestin automtica de segmentos
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
www.puschitz.com (Web de Werner Puschitz) www.dbazine.com (Revista electrnica) www.ixora.com.au (Otro gur)
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
862
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
864
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
865
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
866
3 1 4 2 4
1 3
868
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
867
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
6 1 3
869
El conjunto de caracteres para la BD a utilizar en Espaa, es el WE8ISO8859P15 (que incluye el smbolo del euro). La variable de entorno NLS_LANG, permite indicar (desde la aplicacin cliente que accede a Oracle) tanto el juego de caracteres a utilizar, como el pas y el idioma: export NLS_LANG=SPANISH_SPAIN.WE8ISO8859P15
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
870
APENDICE H. NLS_SESSION_PARAMETERS
Para consultar las variables NLS asociadas a una sesin: SQL> select * from nls_session_parameters; PARAMETER VALUE ------------------------------ ---------------------------------NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS P ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM NLS_DUAL_CURRENCY $ NLS_COMP BINARY Se pueden cambiar con ALTER SESSION SET variable=valor;
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
871
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
872
APENDICE H. NLS_DATE_LANGUAGE
Podemos modificar el idioma de la fecha con NLS_DATE_LANGUAGE: SQL> SELECT TO_CHAR(SYSDATE, 'DD/MON/YYYY','NLS_DATE_LANGUAGE=SPANISH') FROM DUAL; TO_CHAR(SYS ----------20/DIC/2004 SQL> SELECT TO_CHAR(SYSDATE,'DD/MON/YYYY','NLS_DATE_LANGUAGE=AMERICAN') FROM DUAL; TO_CHAR(SYS ----------20/DEC/2004
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
873
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
874
ARQUITECTURA RAC.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 INTRODUCCIN A ORACLE RAC
875
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
876
ORACLE CLUSTERWARE.
Oracle Clusterware, OCW, requiere dos componentes, residentes ambos en un almacenamiento compartido: Un disco, voting disk, donde se recoge informacin sobre los nodos miembros. Permite determinar las instancias miembros del cluster y debe residir en un disco compartido. Se recomienda disponer de varios discos de este tipo para garantizar una alta disponibilidad (en nmero impar). Oracle Cluster Registry (OCR) para registrar informacin sobre configuracin del cluster, as como sobre cualquier bd en cluster y sobre los procesos que OCW controla. Debe residir en un disco compartido accesible a los nodos. Se recomienda que este multiplexado para garantizar una alta disponibilidad.
877
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 INTRODUCCIN A ORACLE RAC
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
878
Oracle Notification Service (ONS). Servicio para comunicar eventos FAN (Fast Application Notification).
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008 INTRODUCCIN A ORACLE RAC
879
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
880
Despus de que una instancia accede a datos, cualquier otra instancia en el cluster puede realizar una imagen del bloque desde otras instancia en la bd (Cache Fusion) lo que es ms rpido que volver a leer en disco.
VIPs (Virtual IP Addresses). Cada nodo, adems de su ip esttica, tiene una ip virtual, en la q escuchar el listener de cada nodo, y a la q accedern los clientes. Si un nodo falla, su VIP ser levantada por otro nodo, no con el objetivo de q se sigan conectando los clientes a travs de dicha VIP, sino q la respuesta ser q no hay instancia activa en dicha VIP, para q el cliente intente conectarse a otra.
INTRODUCCIN A ORACLE RAC
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
881
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
882
CACHE FUSION
La primera instancia en arrancar se convierte en Lock Master (LM). Si esta cae, otra ser la nueva LM (cul?). INSTA: hola LM, quiero leer el bloque 625 LM: nadie lo tiene, lelo de disco LM actualiza su tabla, ya sabe q INSTA tiene el bloque INSTA lee el bloque INSTB: hola LM, quiero leer el bloque 625 LM: espera, INSTA lo tiene, ahora le digo q te lo enve LM sabe q INSTA e INSTB tienen el bloque INSTA enva el bloque a INSTB INSTB: hola LM, quiero modificar el bloque 625 LM informa a INSTA q su versin del bloque 625 queda invalidada LM sabe q INSTB tiene el bloque 625 (vlido) LM: haz tu modificacin Este mecanismo consume CPU y trfico de red. Por otro lado, es ms rpido leer un bloque de la red q del disco.
INTRODUCCIN A ORACLE RAC
INTALAR RAC
Puedes montar RAC hasta con 4 nodos con 1 CPU, o hasta 2 nodos con 2 CPUs, con la licencia Oracle Database Standard Edition. Si quieres ms hay q pasar a la licencia Oracle Database Enterprise Edition. Primer paso: usar OUI (Oracle Universal Installer) para instalar CRS (Cluster Ready Services). Lo proporciona Oracle 10g para la gestin del cluster. Con CRS se puede: Definir servicios para distribuir la carga entre nodos. AWR recoge estadsticas sobre estos servicios. Segundo paso: instalar el software del servidor de BD Oracle con RAC (usando OUI), en un ORACLE_HOME diferente al de CRS.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
883
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
884
RECUPERACIN DE LA INSTANCIA
Cada instancia tiene su propio UNDO tablespace y redolog online. Si una instancia cae la otra se encarga de recuperarla (leer y aplicar redolog online). Si las dos instancias caen, la primera q arranque har el recovery de todas las transacciones.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
885
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
886
La flash recovery area (FRA) ser la misma para todas las instancias del RAC. Para ello la situaremos en los discos compartidos, y asignaremos los parmetros DB_RECOVERY_FILE_DEST y DB_RECOVERY_FILE_DEST_SIZE con los mismo valores, en todas las instancias.
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
887
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
888
Administracin y Ajuste de Oracle 10g Juan Luis Serradilla Amarilla y Francisco Fernndez Martnez 2008
889