Está en la página 1de 125

AdministracindeOracle10g(Parte1)

Estedocumentoelectrnicopuedeserdescargadolibrey
gratuitamentedesdeInternetparasuejecucine
impresin,sloparafineseducativosy/opersonales,
respetandosuintegridadymanteniendoloscrditosde
losautoresenelpiedepgina.

FranciscoFernndezMartnez(pacof@um.es)
JuanLuisSerradillaAmarilla(juanlu@um.es)

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

UniversidaddeMurcia

TEMARIO

ArquitecturadelaBasedeDatos

Arranqueyparada

Ficherodecontrol

Redolog

Tablespaces

Segmentosderollback

Usuarios,roles,privilegiosyperfiles

Jobs

Auditora

Copiasdeseguridadyrecuperacin

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

OBJETIVOS

ConocerlaArquitecturaOracle.

SaberarrancarypararunabasededatosOracle.

GestionarlosficherosRedolog.

Gestionarelficherodecontrol.

Gestionartablespaces,incluyendotemporalesyundo.

Gestionarsegmentosderollback.

Gestionarusuarios,roles,privilegiosyperfiles.

Gestionarjobs.

Gestionarlaauditoradelsistemagestordebasededatos.

Realizarcopiasdeseguridadyrecuperacindelabasededatos.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

TEMA1
ARQUITECTURADELABASEDEDATOS

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

TEMA1.
ARQUITECTURADELABD
Servidororacle
Instancia
ConexinalaBasededatos
Memoria:SGA(AutomaticSharedMemoryManagement
>=10g)yPGA
Procesos:procesosdeusuario,servidoresybackground
Estructuralgica:tablespaces,segmentos,extensiones,
bloques
ArquitecturaOFA
UsuariosadministradoresdelaBD:sysysystem
Ficherodeautenticacin(orapw)
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

SERVIDORORACLE
ServidorOracle:

InstanciaOracle
Basededatos
Oracle

InstanciaOracle:

SystemGlobal
Area(SGA)
Procesos
Background

Basededatos
Oracle:

Ficherosde
Datos
Fichero(s)de
Control
FicherosRedo
Log.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INSTANCIA
LaintegranlosprocesosbackgroundylaSGA
AbreunayslounaBDO,ypermiteaccederaella.
Nota:conOracleRealApplicationCluster(RAC),msdeunainstanciausarn
lamismaBD.

EnlamquinadonderesideelservidorOracle,lavariable
ORACLE_SIDidentificaalainstanciaconlaqueestamostrabajando.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

CONEXINALABD
Para poder conectarnos a una BDO, necesitamos una serie de
variablesenelentornodelusuariodelS.O.desdeelquerealizaremos
laconexin.Enelcasodeunix/linux:
ORACLE_HOME.LocalizacindelswOracleautilizar.
ORACLE_SID. BD, asociada al ORACLE_HOME, a la que vamos a conectarnos.
TienesentidosloenunSBD.
PATH=$PATH:$ORACLE_HOME/bin.ProgramasOracle
LD_LIBRARY_PATH=$ORACLE_HOME/lib.Localizacindelaslibrerascompartidas
(Linux/Unix).
NLS_LANG=spanish_spain.Idiomadelcliente(opcional).

Procesodeusuario:laejecucindelaaplicacinquepermitealusuario
iniciarlaconexin;porejemplo,sql*plus.
Procesoservidor:secreaenelSBDcuandoelusuarioseconectaala
BD,yeselquerealmenteinteractaconlaBD.
UnaconexindeunprocesodeusuarioalSBDesunasesinenlaBD
(puedehabervariasdelmismousuario).Seiniciacuandoelusuariose
validacontralaBDyterminacuandoelusuariosedesconecta.
PodemosdesconectarunasesinconALTERSYSTEMDISCONNECT
SESSION 'sid, serial#' [POST_TRANSACTION] [IMMEDIATE];.
Destruyeelservidordedicado(oelcircuitovirtualsiMTS).
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

CONEXINALABD:procesos
Conexincon
Servidor
Compartido
(MTS)
Conexincon
Servidor
Dedicado

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

SGA(SystemGlobalArea)

yAutomaticSharedMemoryManagement
Es una zona de memoria
compartida, que se reserva
enelmomentodearrancarla
REDO
instancia. Su tamao es
SHARED
BUFFER
dinmico (>= 9i) y limitado
BUFFER
POOL
por el parmetro
de
CACHE
(log_buffer)
inicializacin
SGA_MAX_SIZE.
LARGE
JAVA
STREAMS SGA_TARGET(>=10g)fijael
tamaodelaSGAyactivael
reparto automtico de su
POOL
POOL
POOL
espacio entre: sga fija,
shared pool, large pool, java
pool, buffer cach y streams
SGA(sga_target,sga_max_size)
pool. El resto se ajustan
manualmente.
log buffer, buffer cachs keep y recycle, y buffer cachs con tamao de bloque
especial; aunque consumen espacio de SGA_TARGET, se fijan manualmente
(LOG_BUFFER,
DB_KEEP_CACHE_SIZE,
DB_RECYCLE_CACHE_SIZE,
DB_nK_CACHE_SIZE). El resto (punto anterior) los dejaremos a cero (tb
podemosdarlesvalores,qserntomadoscomomnimos).
V$SGAINFO: tamao componentes SGA (tb grnulo y libre).
V$SGA_DYNAMIC_COMPONENTS.
V$SGA_TARGET_ADVICE:recomendacionessobreSGA_TARGET.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

10

SGA(SystemGlobalArea)
yASMM

LaSGAestformadaporgrnulos(espaciocontiguodememoriavirtual),quesernde
4MparaSGAs<=1Gb(en9i<=128M),yde16Mencasocontrario(verV$SGAINFO).
LoscomponentesdelaSGA(buffercache,sharedpool,largepool,javapool,etc)variarn
su tamao usando en base a grnulos. Al arrancar, se asignan al menos tres grnulos
(unoparalaSGAfijaqueincluyelosredobuffers,otroparalabuffercacheyunomsde
sharedpool);ycadacomponenteseguirreservandotantosgrnuloscomonecesite.
La SGA est compuesta, fundamentalmente, por tres estructuras de memoria: shared
pool, database buffer cache y redo log buffer. Adems, existen tres estructuras de
memoria que, opcionalmente, pueden estar presentes en la SGA: large pool, streams
poolyjavapool.Losparmetrosdelficherodeinicializacinquemsafectanaltamao
de la SGA son: DB_CACHE_SIZE (>=9i, antiguo db_block_buffer en <=8i),
LOG_BUFFER,SHARED_POOL_SIZE.
Ejemplo de parmetros de inicializacin para usar gestin automtica de SGA
(SGA_TARGET):
sga_max_size=80M
sga_target=70M
db_cache_size=0
shared_pool_size=0
large_pool_size=0
java_pool_size=0
streams_pool_size=0
log_buffer=1048576

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

11

SGA:SharedPool

Est formada por dos estructuras


de memoria gestionadas por
algoritmosLRU:
librarycache
dictionarycache
Su tamao viene determinado por
elparmetroshared_pool_size,del
init.ora (sin que la SGA supere
sga_max_size). Desde 10g se
recomienda usar sga_target,
dejando shared_pool_size a cero,
o indicando un valor mnimo). Se
puede cambiar dinmicamente
con:
ALTERSYSTEMSET
SHARED_POOL_SIZE=64M;

Se puede vaciar con ALTER


SYSTEM
FLUSH
SHARED_POOL;(menosloqest
en uso por sesiones o q est
fijado
con
dbms_shared_pool.keep).

SQLAREA

PL/SQL
AREA

LIBRARYCACHE
DICTIONARYCACHE

SHAREDPOOL(shared_pool_size)

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

12

SGA:SharedPool
En la library cache se almacena informacin sobre las
sentencias SQL y PL/SQL, usadas recientemente. Est
formadapordosestructuras:
Shared SQL rea; se almacenan los planes de ejecucin y los
rbolessintcticos(parsetree)delassentenciasSQL.
Shared PL/SQL rea; contiene las unidades de programa
compiladas y analizadas sintcticamente (parsed): procedures,
functions,packagesytriggers.

En la dictionary cache se guardan las definiciones de datos


usadas ms recientemente: database files, tablas, ndices,
columnas,usuarios,privilegios,etc.Estainformacinsegenera
yutilizaenlafasedeanlisissintctico(parse);yseobtienede
las tablas del diccionario de datos. Es como una cach de datos
paraelDD.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

13

SGA:DatabaseBufferCache

Almacenacopiasdelosbloquesdedatos,extradosdelosficherosdedatos(datafiles);y
estgestionadoporunalgoritmoLRU.
Cuando se procesa una query, el proceso servidor busca los bloques de datos en la
DatabaseBufferCache;sinolosencuentra,losleedelosficherosdedatosyguardauna
copiaenlaDatabaseBufferCache.
Su tamao depende principalmente del parmetro DB_CACHE_SIZE (desde 10g mejor
usar sga_target, dejando db_cache_size a cero o un valor mnimo). Puede modificarse
dinmicamente(sinsobrepasarSGA_MAX_SIZE):
ALTERSYSTEMSETDB_CACHE_SIZE=96M;

Sepuedendefinirvariascachsdedatosindependientes:

DB_CACHE_SIZE. Dimensiona la cach por defecto, que siempre existe y cuyo tamao no
puedevalercero.
DB_KEEP_CACHE_SIZE. Dimensiona la cach donde se guardarn los bloques de tablas que
seusanfrecuentemente.
DB_RECYCLE_CACHE_SIZE.Dimensionalacachquealmacenalosbloquesdelastablasque
seusanpoco.

ElusodeunauotracachloindicaremosconelparmetroBUFFER_POOL,delaclausulaSTORAGEdelatabla:
keep,recycleodefault:ALTERTABLEmitablaSTORAGE(BUFFERPOOLKEEP);

Sepuedendefinircachsadicionalesparatablasquenousaneltamaodebloquepordefectodela
BD; con los parmetros DB_nK_CACHE_SIZE, por ejemplo, DB_16K_CACHE_SIZE. Despus se
creauntablespacequeuseelnuevotamaodebloque(cretetablespace...BLOCKSIZE16384;).Util
alimportaruntablespacedeotraBDconotrodb_block_size.
Desde10g,sepuedevaciarconALTERSYSTEMFLUSHBUFFER_CACHE;.Vacacompletamente
lacachdedatosdelaSGA.OJO!!!,nousarenproduccin.Utilsisequieremedirelrendimiento
desentenciassqlcomosiseejecutasenporprimeravez.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

14

SGA:RedoLogBufferCache

Es un buffer circular que registra todos los


cambios hechos en los bloques de la cach de
datos (incluidos datos en s, ndices y rollback),
en lo que llamaremos redo entries. Su
propsito principal es la recuperacin de la
instancia(noconfundirconelrollback).
El tamao viene determinado por el parmetro
log_buffer(enbytes).
Las redo entries contienen la informacin
necesaria (indices y rollback incluidos) para
repetir los cambios hechos mediante insert,
update,delete,create,alterodrop.
Los procesos servidores copian las entradas de
redo en la Redo Log Buffer Cache (despus de
modificarlosbloquesenlacachededatos);yel
procesoLGWReselencargadodevolcardichos
buffersalficheroredologactivo(endisco).

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

LGWR

DML
USERS

ARQUITECTURADELABD

15

SGA:LargePool
EsunreadememoriadelaSGA,aconfigurarslosiseusa:
unentornodeservidorescompartidos(sharedserveroMTS)
recoverymanager(RMAN)
parallelquery
Con MTS, almacena informacin sobre las sesiones conectadas a
travs de servidores compartidos: UGA, I/O y operaciones de
backupyrecuperacin.
NohaceusodealgoritmoLRUparasugestin.
Su tamao depende del parmetro large_pool_size (en bytes), del
ficherodeinicializacin,quesepuedemodificardinmicamente(sin
que el tamao total de la SGA sobrepase el parmetro
SGA_MAX_SIZE):
ALTERSYSTEMSETLARGE_POOL_SIZE=64M;
Desde 10g mejor usar sga_target, dejando large_pool_size a cero
(oconunvalormnimo).
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

16

SGA:JavaPool

Slo es necesaria si se instala y se usa Java en la BD. Se


utilizaparacompilar(parsing)elcdigoJava(deformasimilara
laSharedPoolparaelcdigoPL/SQL).
Sutamaodependedelparmetrojava_pool_size(redondeado
por encima a un mltiplo del valor del grnulo), del fichero de
inicializacin.EnOracle9i,sutamaopordefectoesde24M(si
eltamaodelgrnuloesde4M,yde32Msiesde16M.
Desde 10g mejor usar sga_target, dejando java_pool_size a
cero(oconunvalormnimo),demodoqseaOracleelquese
encarguedeajustarsutamaoautomticamente.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

17

ProgramGlobalArea(PGA)
Es una zona de memoria, fuera de la SGA, reservada para cada
procesodeusuarioqueseconectaalaBD.
Se crea cada vez que se arranca un nuevo proceso servidor (o un
procesobackground);yseliberacuandoelprocesotermina.
En un entorno de servidores dedicados (dedicated server) contiene:
sort area, informacin de sesin (privilegios de usuario y estadsticas
de sesin), estado de los cursores (etapa del procesamiento de cada
sentencia SQL que est usando actualmente la sesin), pila (stack
space).
Con servidores compartidos (MTS), parte de estas estructuras se
guardanenlaSGA.SiseactivalaLargePoolsealmacenanenella,si
nosequedanenlaSharedPool.
PGA_AGGREGATE_TARGET (>=9i). Valor mnimo 10M, y
default=20%SGA.. Vista V$PGASTAT. Tamao = en OLTP
RAM*0.80*0.20(enDSSRAM*0.80*0.50).Activar:siesdistintodecero
(junto a WORKAREA_SIZE_POLICY=AUTO). Habilita el uso de una
zonadememoriacompartidaparalasPGA,evitandolanecesidadde
asignarparmetroscomoSORT_AREA_SIZEoHASH_AREA_SIZE.
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

18

ProgramGlobalArea(PGA)

PILA

PILA

SESION

PGA

PGA
(servidordedicado)

SQL

SHAREDPOOL

SGA
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

(servidorcompartido)
SQL

SHAREDPOOL
SESION

LARGEPOOL

SGA
ARQUITECTURADELABD

19

Estructuradeprocesos
Procesos de usuario: se arranca uno cuando un usuario solicita una
conexinalaBD.EstablecelaconexinconlaBDperonointeracta
directamenteconella.
Procesosservidores:creadocuandoseestablecelaconexinalaBD.
EselprocesoqueinteractaconlaBD,paracadasesin.Unproceso
servidorpuedeserdedicadoocompartido.Unodedicadoslogestiona
la peticiones de la sesin que lo inicia; sin embargo, uno compartido
gestionalaspeticionesdevariosprocesosdeusuario.
Procesos background: disponibles cuando se arranca una instancia
Oracle. Son los siguientes: DBWR, PMON, SMON, LGWR y CKPT; y
nuevosen10g:PSP0(ProcessSpawner),MMAN(MemoryManager),
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.
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

20

Procesosbackground(DBWR)

DBWR. Escribe los bloques de datos (y rollback) de la SGA (data buffer


cache)enlosficherosdedatos.Estolohacedeformaasncrona,cuando:
Sucedeuncheckpoint.
Elnmerodebuffersmodificadosalcanzaunumbral.
Noquedanbufferslibres.
Ocurreuntimeout.
Ponemosuntablespaceoffline.
Dejamosuntablespaceenmodoreadonly.
Borramosotruncamosunatabla.
ALTERTABLESPACEnombretspBEGINBACKUP.
Nota.Uncheckpointsucedecuando:
Elficheroredologsellenaal90%.
Sealcanzalog_checkpoint_interval(bloquesdelSO).
Sellegaalog_checkpoint_timeout(ensegundos).

Nombredelproceso:DBW0aDBW9yDBWaDBWj(mximo20).
DB_WRITER_PROCESSES.Ndeprocesosarrancados.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

21

Procesosbackground(LGWR,SMON)

LGWR. Realiza escrituras secuenciales del contenido de la redo log


buffercacheenlosficherosredolog.Cuando?
Sehacecommit.
Laredologbuffercachesellena1/3.
Hay1Mbdecambiosenlaredologbuffercache.
Comomucho,cada3segundos.
SiempreantesqueescribaelDBWR.
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
lastransaccionesquenoterminaron.
Tambin se activa peridicamente, agrupando extensiones libres contiguas en
extensionesdemayortamao(sloparatablespacescondefaultstoragecuyo
pctincrease>0).
Adems libera el espacio ocupado por segmentos temporales durante el
procesamientodesentenciasSQL.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

22

Procesosbackground(PMON,CKPT,ARCH)

PMON.Seactivaperidicamente,recuperandolosrecursosdespusdequeun
procesofalle:hacerollbackdelastransaccionesqueelusuariotenaencurso,
liberabloqueosaniveldetabla/filayotrosrecursosreservadosporelusuario,y
vuelveaarrancardispatchersmuertos(deaddispatchers).
CKPT.AvisaalDBWRcuandosucedeuncheckpointyactualizalascabeceras
delosficherosdedatosydecontrol(elDBWRvolcarlosbuffersactualizados
alosficherosdedatos).Siloscheckpointssucedenmuyfrecuentementepuede
habercontencinendisco.Sitardanmuchosealargarelprocesoderecovery.
Comomuchosucederuncheckpointalllenarseelredolog.
ARCH. Proceso opcional. Archiva automticamente los redo log online si se
activaelmodoARCHIVELOG;asegurandoqueseregistrantodosloscambios
hechos en la base de datos. Archiva el redo log que se ha llenado, cuando
sucedeunlogswitch.
MMAN (>=10g). Memory Manager. Gestiona Automatic Shared Memory
Managment.
MMON (>=10g). Memory monitor. Genera snapshots del AWR (abre procesos
esclavosM000).
MMNL (>=10g). Memory Monitor Light. Captura frecuentemente session
history(V$ACTIVE_SESSION_HISTORY)ycalculamtricas.
PSP0(>=10G).Processspawner.CreaygestionaotrosprocesosOracle.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

23

ESTRUCTURALGICA
Laestructuralgicadelabasededatosdeterminaelusoquesehace

del espacio fsico que la sustenta. Existe una jerarqua topdown en


estaestructura,consistenteentablespaces,segmentos,extensionesy
bloques.
Una BDO la forman un grupo de tablespaces. Un tablespace puede
contenerunoomssegmentos.Unsegmentolointegranunaoms
extensiones.Unaextensintendralmenosunbloque.Elbloquees
launidadmnimadealmacenamiento.
EltamaodelbloquesermltiplodelquetengaelSO,ylodetermina
lavariabledb_block_size(2K,4K,8K,16Ky32K).
Cuando un segmento (tabla, ndice, rollback o temporal) crece, el
espacioqueseaadeesdeunaextensin.
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).
Tambinseencargadeborrarlosficherosqueyanoformanpartede
laBD.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

24

ESTRUCTURALGICA
BasedeDatos,Tablespaces,Segmentos,ExtensionesyBloques

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

25

ARQUITECTURAOFA

OFA (Oracle Flexible Architecture) propone una estructura de directorios que


permite ubicar fcilmente cualquier fichero del servidor de base de datos;
ademsdeagrupardichosficherosporcomponentes.
Adems,facilitaelrepartodelosficherosentrediferentesdiscos,optimizando
la E/S. Oracle recomienda separar el software de los datos; y estos ltimos
repartirlosentrevariosdiscos(porejemplo,separandodatosendices,incluso
tambintempyrollback).EstructuradedirectoriosOFA:
/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(crearenlaceen$ORACLE_HOME/dbs)
$ORACLE_BASE/admin/$ORACLE_SID/bdump(BDUMP)
alert$ORACLE_SID.orayficherosdetrazadeprocesosbackground
$ORACLE_BASE/admin/$ORACLE_SID/udump(UDUMP)
alert$ORACLE_SID.orayficherosdetrazadeprocesosbackground
/u02/oradata/$ORACLE_SID(FicherosdelaBD:*.dbf,*.ctl,*.log)
/u03/oradata/$ORACLE_SID(FicherosdelaBD:*.dbf,*.ctl,*.log)
/u04/oradata/$ORACLE_SID(FicherosdelaBD:*.dbf,*.ctl,*.log)

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

26

USUARIOSADMINISTRADORESDELA
BD
Cuando creamos una BDO se crean automticamente los
usuariosSYSySYSTEM,ambosconelrolDBA.

El SYS, cuya clave inicial es change_on_install, es el


propietariodelDDyhabitualmenteseusaparaarrancaryparar
labasededatos,ascomoparamodificarloscomponentesde
lamisma(comoinstalarnuevasopciones).Paraconectarcomo
SYS:
CONNECTSYSASSYSDBA
CONNECT/ASSYSDBA
Nota:hayqueperteneceralgrupodba(Unix/Linux)ocrearun
ficherodeautenticacinenelSBD.

El SYSTEM, con clave inicial manager, es el DBA por


excelencia.Seusaraparalastareasadministrativashabituales:
altadeusuarios,creacindetablespaces,etc.
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

27

FICHERODEAUTENTICACIN

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 dispongamosdeuna conexin desde el propioSBD como grupo
dba.
Parausarunficherodeautenticacin:
Crearemoselficheroconlautilidadorapwd:

orapwdfile=nombre_ficheropassword=clave
entries=mximo_de_usuarios

Nota:elficherosellamarorapw$ORACLE_SIDyestaren$ORACLE_HOME/dbs.

ActivaremoselparmetroREMOTE_LOGIN_PASSWORDFILEdelinit:
EXCLUSIVE.PermitedarelprivilegioSYSDBAaotrosusuarios(ademsdel
SYS).Slounainstanciausaelfichero.
SHARED. El nico usuario reconocido por le fichero es el SYS. El fichero
puedesercompartidoporvariasinstancias.
Incluiremoselusuarioenelficherodeclaves(paraelSYSnohayquehacerlo):
GRANTSYSDBATOusuario;
Nota:enV$PWFILE_USERSestnlosusuariosconSYSDBAy/oSYSOPER.

ConectaremosalaBD(elusuarioOraclequeseconectasiempreeselSYS):
CONNECTusuario/claveASSYSDBA

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

28

PROCESODECONSULTA
1. El proceso de usuario enva la
sentenciaSQLalprocesoservidor.
2. El proceso servidor busca la
sentenciaSQLenlaSharedPool.Si
no la encuentra, la compila y la
guardaenlaSharedPool.
3. El proceso servidor accede a los
datos en la Database Buffer Cache.
Si no los encuentra, accede
directamentealosficherosdedatos,
llevando los datos a la Database
BufferCache.
4. El proceso servidor devuelve los
datos al proceso de usuario q inici
laconexin.

3
1

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

2
4

1
3
ARQUITECTURADELABD

29

PROCESODEACTUALIZACIN
En primer lugar se repiten las fases 1
(envo
de
la
sentencia),
2
(compilacin) y 3 (acceso a los datos)
vistasenelprocesodeconsulta.
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
ficheroredologactivo,cuandosehace
commitocada3segundos).
7. El proceso servidor devuelve el
nmero de filas actualizadas al
procesodeusuario.

3
1

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

2
7

1 5

3
ARQUITECTURADELABD

30

VISTASDELDD

V$DATABASE(Basededatos).
V$INSTANCE(Instancia).
V$SGA(SGA).
V$SGAINFO(GestindinmicadelaSGA).
V$SGASTAT(SGAdetallada).
V$BUFFER_POOL(Buffersenlacachdedatos)
V$SQLAREA(SentenciasSQL).
V$PROCESS(Procesos).
V$BGPROCESS(Procesosbackground).
V$DATAFILE(FicherosdedatosdelaBD).
V$CONTROLFILE(FicherosdecontroldelaBD).
V$LOGFILE(FicherosredologdelaBD).
DBA_TABLESPACES(TablespacesdelaBD).
DBA_SEGMENTS(Segmentosquehayenlostablespaces).
DBA_EXTENTS(Extensionesquecomponenlossegmentos).
DBA_USERS(UsuariosdelaBD).

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

31

PRACTICASTEMA1

1.1.Comprobarlaasignacindevariablesdeentornonecesariaspara
conectarnosalaBD:

echo$ORACLE_HOME
echo$ORACLE_SID
echo$LD_LIBRARY_PATH
echo$PATH

1.2.Identificarlosprocesosquecomponeninstancia:

psef|grep$ORACLE_SID
selectusername,programfromv$processwherebackgroundisnotnull;
selectname,descriptionfromv$bgprocesswherePADDR!='00';

1.3.VereltamaodelaSGAdelaBD:

1.4.Comprobarvaloresdeparmetrosdelinitrelacionadosconel
tamaodelaSGA:

select*fromv$sgainfo;
select*fromv$sgastat;
select*fromv$sgastatwherenamein('librarycache','rowcache','sql
area','buffer_cache','log_buffer');

showparametersga_target
showparametersga_max_size
showparametershared_pool_size
showparameterdb_cache_size
showparameterdb_block_size
showparameterlog_buffer
showparameterlarge_pool_size
showparameterjava_pool_size

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

32

PRACTICASTEMA1.

1.5.ComprobarficherosquecomponenlaBDyubicarlosenla
estructuraOFA:

lsl/u0?/oradata/$ORACLE_SID
selectnamefromv$datafile;
selectnamefromv$tempfile;
selectmemberfromv$logfile;
selectnamefromv$controlfile;

1.6.IdentificarlaestructuralgicadelaBD:tablespaces,segmentos,
extensiones.
Selecttablespace_namefromdba_tablespaces;
selecttablespace_name,file_namefromdba_data_filesorderby
tablespace_name,file_name;
selecttablespace_name,segment_type,count(*)segmentosfrom
dba_segmentsgroupbytablespace_name,segment_type;
selecttablespace_name,segment_type,count(*)extensionesfrom
dba_extentsgroupbytablespace_name,segment_type;

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

33

PRACTICASTEMA1.

1.7.Consultarinformacinsobrelabasededatos(v$database)yla
instancia(v$instance).
selectname,created,log_mode,checkpoint_change#,open_mode,
platform_name,current_scnfromv$database;
selectinstance_name,host_name,version,startup_time,status,
archiver,logins,database_statusfromv$instance;

1.8.Localizarelprocesoservidorasociadoamisesin(v$processy
v$session).Esunservidordedicadoocompartido?
selecta.server,a.usernamedbuser,a.programuser_program,b.spid
server_process,b.programserver_program
fromv$sessiona,v$processb
wherea.username=USERanda.PADDR=b.ADDR;

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

34

PRACTICASTEMA1.

1.9.CuantoocupalaDictionarycacheylaLibrarycacheentuBD?
(v$sgastat)
selectSQL_TEXT,PERSISTENT_MEM,EXECUTIONS,LOADS,
DISK_READS,CPU_TIME,ELAPSED_TIMEfromv$sqlareaorderby
DISK_READSdesc;

1.10.VerlaactividaddelaLibraryCache(v$librarycache).
selectnamespace,gethitratio,gethitratiofromv$librarycache;

1.11.VerlassentenciasSQLqueguardalaSharedPool(v$sqlarea).
selectsql_textfromv$sqlarea;

1.12.Crearelficherodeautenticacinyactivarlo(orapwd).
orapwdfile=$ORACLE_HOME/dbs/orapwCURSOxypassword=miclave
entries=5
remote_login_passwordfile=EXCLUSIVE"

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ARQUITECTURADELABD

35

TEMA2
ARRANQUEYPARADADELABASEDE
DATOS

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

36

TEMA2.
ARRANQUEYPARADADELABD
Ficherosdeinicializacin:init.orayspfile.ora
CreacindelaBD
OMF(OracleManagedFiles)
Arranquedelabasededatos
Comandostartup
Comandoalterdatabase
Pararlabasededatos
FicheroalertSID.Log
Trazasdelosprocesosbackground
Trazasdelosprocesosdeusuario
Diccionariodedatos
AutomaticStorageManagment(ASM)
AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

37

FICHEROSDEPARMETROSDE
INICIALIZACINI

Para arrancar la instancia, el servidor Oracle tiene que leer el fichero


de parmetros de inicializacin (spfile o init), cuya ubicacin
predeterminadaes$ORACLE_HOME/dbs.
Elficherodeparmetrosdeinicializacinpuedeserdedostipos:
Init:setratadeunficherodetexto,editable,cuyonombresigueel
patrninit$ORACLE_SID.ora.
Spfile:esunficherobinario,noeditableperovisualizable,cuyo
nombresigueelpatrnspfile$ORACLE_SID.ora.
Secrea,apartirdeuninit,con:
CREATESPFILE[='nombre']FROMPFILE[='nombre'];
Nota1.Siseomitenlosnombres,tomalosvalorespordefecto.
Nota2.LaBDnopodrabrirelnuevospfilehastaelsiguientearranque.
Nota3.Sepuedecrearuninitapartirdeunspfile,invirtiendolasintaxis.

Losparmetrosdelspfilesemodificancon:

ALTERSYSTEMSETparametro=valor[SCOPE=MEMORY
|SPFILE|BOTH]
Nota.Sisloqueremosmodificarelparmetroenelspfile,indicaremosSPFILE.
Parahacerelcambiosoloenmemoria,especificarMEMORY.

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

38

FICHEROSDEPARMETROSDE
INICIALIZACINII

Haydostiposdeparmetros:
Explcitos:losqueseindicanenelficherodeparmetros.
Implcitos:elresto,quetomarnunvalorpordefecto.
Laformadeindicarvaloralosparmetrosesparametro=valor.
Elsmbolo#indicaelcomienzodeuncomentario,pudiendoestaral
principiooenmediodelalnea.
Enelinit.ora,elparmetroifilepermiteincluirotrosficheroscon
parmetros.
Unalistadevaloresseindicarentreparntesis,separandolosvalores
porcomas.
Paraindicarunvalordetipocadenadecaractereshayqueencerrarlo
entrecomillassimples.
SiusamosOFA,laubicacintpicaparaelinit.oraes
$ORACLE_BASE/admin/$ORACLE_SID/pfile.Despuscreamosunenlaceen
$ORACLE_HOME/dbs(ubicacinpordefecto).

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

39

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

Nota.EsunficherodetextoquehayquemantenermanualmenteconuneditorASCII(vi,
notepad,etc).
AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

40

PARMETROSBSICOSDE
ORACLE10g
Como curiosidad,sonaquellosparmetrosqueseraobligatoriofijar
para una instancia (los dems se podran dejar por defecto).
Realmente sto no debe hacerse (dejar el resto de parmetros sin
asignarparaquetomensusvalorespordefecto).
COMPATIBLE
CONTROL_FILES
DB_BLOCK_SIZE
DB_CREATE_FILE_DEST
DB_CREATE_ONLINE_LOG_DEST
DB_DOMAIN
DB_NAME
DB_RECOVERY_FILE_DEST
DB_RECOVERY_FILE_DEST_SIZE
INSTANCE_NUMBER
JOB_QUEUE_PROCESSES
LOG_ARCHIVE_DEST_n
LOG_ARCHIVE_DEST_STATE_n
AdministracindeOracle10g(Parte1)

NLS_LANGUAGE
NLS_TERRITORY
OPEN_CURSORS
PROCESSES
REMOTE_LISTENER
REMOTE_LOGIN_PASSWORDFILE
ROLLBACK_SEGMENTS
SESSIONS
SHARED_SERVERS
STAR_TRANSFORMATION_ENABLED
UNDO_MANAGEMENT
UNDO_TABLESPACE

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

41

CREARLABASEDEDATOS
yborrarla

ParacrearunaBDnecesitamos:

ConectarnosalservidorOraclecomoSYSASSYSDBA,autenticndonoscontra
elS.O.ousandounficherodeclaves.
Suficientememoriaparaarrancarlainstanciayespacioendiscoparacrearla
BD.

ParaubicarlosficherosquecomponenlaBD:

Guardaremos,almenos,doscopiasdelficherodecontrol,endiscosseparados.
Multiplexaremoslosredologendiscosdiferentes(separadosdelrestodelaBD).
Separaremoslosficherosdedatosqueprovoquencontencinendisco;por
ejemplo:datos,ndices,system(DD),tempyrollback.

LaBDlapodemoscrearconelasistentegrfico(enLinuxdbca)oconel
comandoCREATEDATABASE:

Crearemosunficheroinit.ora,ysiqueremos,unspfile.ora.
ArrancaremoslasinstanciaconSTARTUPNOMOUNT.
CrearemoslaBDconelcomandoCREATEDATABASE.
Ejecutaremoslosscriptscatalog.sqlycatproc.sqlqueestnen
$ORACLE_HOME/rdbms/admin.

Desde10gsepuedeborrarconDROPDATABASE;(slomontada).

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

42

EJEMPLODECREACIONDEBASE
DEDATOS
connect/assysdba
startupnomount

CREATEDATABASE"CURSOxy"
maxdatafiles254
maxinstances1
maxlogfiles32
charactersetWE8ISO8859P15
DATAFILE'/u02/oradata/CURSOxy/system01.dbf'SIZE260M
AUTOEXTENDONNEXT10M
EXTENTMANAGEMENTLOCAL
SYSAUXDATAFILE'/u02/oaradata/CURSOxy/sysaux01.dbf'size100M
EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO
UNDOTABLESPACEUNDO_RBS1
DATAFILE'/u03/oradata/CURSOxy/rbs01.dbf'SIZE10M
DEFAULTTABLESPACEUSERS
DATAFILE'/u02/oradata/CURSOxy/users01.dbf'SIZE10M
DEFAULTTEMPORARYTABLESPACETEMP
TEMPFILE'/u03/oradata/CURSOxy/temp01.dbf'SIZE10M
EXTENTMANAGEMENTLOCALUNIFORMSIZE64K
logfile'/u04/oradata/CURSOxy/redo01.log'SIZE3M,
'/u04/oradata/CURSOxy/redo02.log'SIZE3M,
'/u04/oradata/CURSOxy/redo03.log'SIZE3M;
rem***CREACIONDELASVISTASDELDD***
@$ORACLE_HOME/rdbms/admin/catalog.sql
@$ORACLE_HOME/rdbms/admin/catproc.sql
AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

43

ORACLEMANAGEDFILES(OMF)

OMFpermitequeOracleseencarguedelacreacindelosficherosque
componenlaBD,simplificandolaadministracindelamisma.
OMFseactivamediantedosparmetrosdeinicializacin:
DB_CREATE_FILE_DEST.Defineeldirectoriodondeseubicarnlosficheros.
DB_CREATE_ONLINE_LOG_DEST_N.Establecelosdirectoriosdondeseguardarn
losficherosdecontrolyredolog;dondeNpuedevalerde1a5.
Nota.Sepuedenactivarambosparmetrososlounoellos.

EjemploparacrearunaBD,usandoOMF,separandolosficherosredologyde
controldelresto:
Parmetrosdeinicializacin:
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'
CreacindelaBD:
CREATEDATABASECURSOxy
charactersetWE8ISO8859P15
UNDOTABLESPACEUNDO_RBS
DEFAULTTABLESPACEUSERS
DEFAULTTEMPORARYTABLESPACETEMP;

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

44

ARRANCARLABASEDEDATOS

Cuando arrancamos una BDO, pasa por varios estados hasta que
finalmentequedaaccesiblealosusuarios:nomount,mountyopen.
En el primer estado (nomount) se arranca la instancia: lectura del
fichero de parmetros, creacin de la SGA, arranque de los procesos
backgroundyaperturadelficheroalert$ORACLE_SID.log.
Nota: el fichero de parmetros se busca en $ORACLE_HOME/dbs,
comenzando por spfile$ORACLE_SID.ora. Si no lo encuentra, sigue con
spfile.ora,yfinalmenteinit$ORACLE_SID.ora.

SeguidamentelaBDsemonta(mount)abriendoelficherodecontroly
obteniendo de l los nombres de los ficheros que la componen:
datafilesyredolog.
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
procesoSMONinicialarecuperacindelainstancia.

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

45

COMANDOSTARTUP
ArrancalainstanciayabrelaBD.Permitepararelprocesode
arranque de la BD en cualquiera de sus fases (NOMOUNT,
MOUNT).

STARTUP(abrelabasededatosconelficherodeparmetros
pordefecto).

STARTUPPFILE=/home/CURSO/cursoXY/miinit.ora
STARTUPNOMOUNT(paracrearlabasededatos).
STARTUP MOUNT (para renombrar datafiles, activar
ARCHIVELOGohacerunarecuperacincompletadelaBD).

STARTUP RESTRICT (slo permite la conexin de usuarios


conelprivilegioRESTRICTEDSESION).

STARTUP FORCE (hace SHUTDOWN ABORT y arranca la


BD).

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

46

COMANDOALTERDATABASEY
ENCOLARYSUSPENDERLABD

Permitecambiarelestadodelabasededatos,p.e.deNOMOUNTaMOUNT,o
deMOUNTaOPEN.TambinseutilizaparadejarlaBDenmodoREADONLY.
ALTERDATABASE{MOUNT|OPEN}
ALTERDATABASEOPEN[READWRITE|READONLY]

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).SlodesdeSYS/SYSTEM.V$INSTANCE.ACTIVE_STATE:
ALTERSYSTEMQUIESCERESTRICTED;
ALTERSYSTEMUNQUIESCE;

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
SUSPENDpueseslanicaqpuedehacerRESUME:
ALTERTABLESPACEnomtspBEGINBACKUP;
...
ALTERSYSTEMSUSPEND;
//CopiamosficherosdelaBD(necesitarrecuperarla
instancia,puesnosehacecheckpoint).
ALTERSYSTEMRESUME;
ALTERTABLESPACEnomtspENDBACKUP;

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

47

PARARLABASEDEDATOS

Hay determinadas operaciones que requieren parar la BD; como la


actualizacindealgunosparmetrosdelinit.ora;ohacerunacopiafsicadela
BD(copiaenfrio).LaBDseparaconelcomandoSHUTDOWN,impidiendo
cualquierconexinposterior.
SHUTDOWN [NORMAL], espera a que terminen todas las transacciones en
cursoytodaslassesiones,fuerzauncheckpoint,ademsdecerrartodoslos
ficherosydestruir(parar)lainstancia.
SHUTDOWN TRANSACTIONAL, slo espera a que terminen las
transacciones en curso, fuerza un checkpoint, cierra los ficheros y destruye
(para)lainstancia.
SHUTDOWNIMMEDIATE,hacerollbackdetodaslastransaccionesencurso
y cierra todas las sesiones; cierra y desmonta la BD, adems de forzar un
checkpoint,cerrarficherosypararlainstancia(comolosanteriores).
SHUTDOWN ABORT, cierra la instancia (destruye procesos background y
SGA)sinesperaradesmontarnicerrarlaBD(comoenunacaida,nihace
checkpoint ni cierra ficheros)). Requiere recovery de la instancia al arrancar
(lohaceautomticamenteelprocesoSMON).

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

48

COMANDOSHUTDOWN

Sintaxis:
SHUTDOWN[NORMAL|TRANSACTIONAL|IMMEDIATE|ABORT]

Tiposdeparada.Cadaunadelasopcionesdeparadasecomportade
formadiferenteencuantoaesperaraqueterminentransaccionesy
sesiones,hacercheckpoint,odesmontarycerrarlaBD:

EsperarTransacciones
EsperarSesiones
Checkpoint
CerrarBD
DesmontarBD
Pararinstancia
AdministracindeOracle10g(Parte1)

NORMAL
S
S
S
S
S
S

TRANSACTIONAL
S
N
S
S
S
S

IMMEDIATE
N
N
S
S
S
S

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

ABORT
N
N
N
N
N
S
49

FICHEROalert.log

EselficherodelogdelaBDylaprimerareferenciaparaelDBAenel
daadadelaadministracindelamisma.
Pordefectoesten$ORACLE_HOME/rdbms/log;oeneldirectorioque
indiqueelparmetroBACKGROUND_DUMP_DESTdelinit. Siusamos
OFA,unaubicacintpicaes$ORACLE_BASE/admin/$ORACLE_SID/bdump.

Recogetantoinformacindeestadocomoerrores:
arranqueyparada,
parmetrosdelinitsinvalorespordefecto,
arranquedelosprocesosbackground,
cambiodeficheroredolog(logswitch),
creacindetablespacesysegmentosderollback,
comandosalter(alterdatabase,altertablespace,etc),
errores ORA600 y los que indican falta de espacio (llenado de
tablas,ndices,tablespaces,etc).

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

50

EJEMPLODEalert.log
TueOct2613:11:082006
StartingORACLEinstance(normal)
...
StartingupORACLERDBMSVersion:
10.2.0.2.0.
Systemparameterswithnondefaultvalues:
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
PMONstartedwithpid=2,OSid=18002
PSP0startedwithpid=3,OSid=18004
MMANstartedwithpid=4,OSid=18006
DBW0startedwithpid=5,OSid=18008
LGWRstartedwithpid=6,OSid=18010

CKPTstartedwithpid=7,OSid=18012
SMONstartedwithpid=8,OSid=18014
RECOstartedwithpid=9,OSid=18016
MMONstartedwithpid=10,OSid=18018
MMNLstartedwithpid=11,OSid=18020
TueOct2613:11:082006
ALTERDATABASEMOUNT
...
SMON:enablingcacherecovery
MonOct2613:11:132006
SuccessfullyonlinedUndoTablespace1.
MonOct2613:11:132006
SMON:enablingtxrecovery
MonOct2613:11:132006
DatabaseCharactersetisWE8ISO8859P15
...
TueOct2613:11:162006
Completed:ALTERDATABASEOPEN
WedOct2613:52:062006
Thread1advancedtologsequence552
Currentlog#3seq#4mem#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,comosemontalaBD,ycmofinalmenteseabrelaBDyseempiezanausarlosficheroredolog.
AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

51

FICHEROSDETRAZADELOS
PROCESOSBACKGROUND
Registranerroresproducidosenlosprocesosbackgrounddela
instancia:LGWR,DBWR,SMON,PMON,etc.
Se generan en el directorio indicado por el parmetro de
inicializacin BACKGROUND_DUMP_DEST, que por defecto
es $ORACLE_HOME/rdbms/log. Si se utiliza la arquitectura
OFAparaubicarlosficherosOracle,unaubicacintpicapara
estos
ficheros
de
traza
es
$ORACLE_BASE/admin/$ORACLE_SID/bdump.
Su
nombre
sigue
el
patrn
${ORACLE_SID}_nombreproceso_pid.trc;
por
ejemplo,
cursoXY_smon_16432.trc(losnombresdelosficherosdetraza
enUnix/Linuxestnsiempreenminsculas).
AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

52

FICHEROSDETRAZADELOS
PROCESOSDEUSUARIO

Recogen estadsticas de seguimiento de sentencias SQL o errores en las


sesionesdeusuario.
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,unaubicacintpicaes$ORACLE_BASE/admin/$ORACLE_SID/udump.
SutamaoestlimitadoporelparmetroMAX_DUMP_FILE_SIZE.
Sus nombres siguen el patrn ${ORACLE_SID}_ora_pid.trc; por ejemplo,
cursoXY_ora_23654.trc(siempreenminsculas).
Pueden ser muy tiles para el ajuste de sentencias SQL. En este caso se
puedengenerarvoluntariamenteactivandolatraza:
AniveldesesinconALTERSESSIONSETSQL_TRACE=TRUE;,
Desde
una
sesin
del
DBA
con
dbms_system.set_sql_trace_in_session(sid,true),dondeSIDeselnde
sesion oracle (V$SESSION, V$PROCESS). Se desactiva de igual forma
(indicandofalseenlugardetrue).
Aniveldeinstancia,conelparmetroSQL_TRACE=TRUEdelinit.
UtilidadTKPROF.Permitegeneraruninformelegible,apartirdeunfichero
detrazageneradoexplcitamenteparaunasesin.
tkprofcursoXY_ora_23654.trcsalida_traza.txtexplain=scott/tigersys=no

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

53

DICCIONARIODEDATOS(DD)

El DD est compuesto por un conjunto de tablas y vistas asociadas


donde se almacena toda la informacin sobre los objetos que
componenlaBD,ascomolaestructuralgicayfsicadelamisma.
ElDDincluyedostiposdeobjetos:tablasbaseyvistas.
Las tablas base se crean automticamente cuando creamos la BD con el
comando CREATE DATABASE; y son las que realmente contienen la
informacindelDD.
Las vistas se crean al lanzar el script catalog.sql; y permiten acceder ala
informacindelastablasdelDD(queestcodificada).

ElDDcontieneinformacinsobre:ladefinicindetodoslosobjetosde
la BD (tablas, vistas, ndices, sinnimos, secuencias, procedimientos,
funciones,paquetes,triggers,etc),elespacioocupadoporcadaobjeto,
condiciones de integridad, usuarios, privilegios, roles, as como
auditoradelsistema.

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

54

VISTASDELDICCIONARIODE
DATOS

ElDDsemodificacadavezquelanzamosunasentenciaDDL.
LasvistasestticasqueformanpartedelDDsondetrestipos:dba,all
y user. Cada una de ellas tendr un prefijo asociado que la ubica en
unodedichostipos.
DBA:todoslosobjetosdelaBD.
ALL:todoslosobjetosaccesiblesporelusuarioactual.
USER:todoslosobjetospropiedaddelusuarioactual.
LavistaDICTIONARYcontieneunalistadetodaslasvistasdelDD;y
enDICT_COLUMNStenemoseldetalledelascolumnasdecadauna
deellas.
EjemplosdevistasdelDD:

Objetos de la BD: dba_objects, dba_tables, dba_indexes,


dba_tab_columns,dba_ind_columns,dba_constraints,dba_views.
Espacioocupado:dba_data_files,dba_segments,dba_extents.
EstructuradelaBD:dba_tablespaces,dba_data_files.

ElDDtambintienelasllamadastablasdinmicas,cuyasvistastienenelprefijoV$(como
V$SESSION).Secreanalarrancarlainstanciayresidenenmemoria.Cuandocerramosla
BD(yportantolainstancia),desaparecenyconellassucontenido.

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

55

AUTOMATICSTORAGE
MANAGEMENT(ASM)I

ASM (>=10g). Gestor de volmenes para bases de datos Oracle. Mejor


rendimientodeE/Syfcildegestionar.Manejaelespacioenformadegruposde
discos.Dividecadaficheroenextensiones(de128Ko1M)ylasreparteentrelos
discosdeungrupo(striping).Tbpermitemirror,ylohaceaniveldefichero(ms
granular q a nivel de disco), gestionando el mirror a nivel de extensin. Varias
opciones de mirror (a nivel de grupos de discos): 2way mirroring (1 copia por
extensin),3way(2copias)yunprotected(sinmirror).Opcionesdestriping:fine
(128Kb)ycoarse(1M).Sepuededesactivarmirrory/ostriping.
Al aadir nuevo disco a un grupo, rebalancea los datos online. Si esto genera
mucha E/S, se puede frenar con ASM_POWER_LIMIT (en el init de la propia
instanciaASM).
ASMnecesitauntipoespecialdeinstancia:
Tieneinityorapw,peronoDD.UsuariosSYSySYSTEMconautenticacin
SO(nomsusuarios).
Instancia:mountonomount(nuncaopen).Memoria:de60Ma120M.
Comandosdegestinpropios:create|alter|dropdiskgroup.
Nuevosprocesosbackground:
RBAL:coordinalaactividadderebalanceodelosdiscosencadagrupo.
ORBn(n=0..9):ejecutaelrebalanceo,moviendoextensionesentre
discos.

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

56

AUTOMATICSTORAGE
MANAGEMENT(ASM)II
CadaBDqusaASM,tienedosnuevosprocesosbackground:

OSMB:comunicacinentreBDylainstanciaASM.
RBAL:abreycierralosdiscosenlosgrupos,enlapartedelaBD.
Parmetrosdelinit(parainstanciaASMy/oBDqlausa):
instance_type=ASM(paraunaBDesRDBMS)
db_unique_name=+ASM(valorpordefecto)
asm_power_limit=1(mximo11;velocidadrebalanceo;1eselmslento)
asm_diskstring(limitalosdispositivosdediscousablesparagruposdediscos;
ejemplo:'/dev/hd*').
asm_diskgroups(nombresdegruposdediscosqsemostarn
automticamente;pordefectovaleNULLylosmontatodos).
large_pool_size(almenos8M,paraejecutarlospaquetesinternosdeusode
ASM)
EjemplodeinitdeunainstanciaASM
instance_type=ASM
db_unique_name=+ASM
asm_power_limit=1
asm_disk_string=/dev/vgora01/rdsk/*,/dev/vgora02/rdsk/*
asm_disk_groups=diskgrp1,diskgrp2
large_pool_size=16M

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

57

VISTASDELDD

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

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

58

PRACTICASTEMA2.
2.1.Ficheroinit.ora.ArranqueyparadadelaBD.

Localizarelficheroinit.ora(yspfilesiexiste)denuestraBD:

Anotarelvalordelosparmetros:db_block_size,sga_target,sga_max_size,
shared_pool_size,db_cache_size,log_buffer,processes.

lsl$ORACLE_HOME/dbs/init$ORACLE_SID.ora
lsl$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora

more$ORACLE_HOME/dbs/init$ORACLE_SID.ora
grepprocesses$ORACLE_HOME/dbs/init$ORACLE_SID.ora

cp$ORACLE_HOME/dbs/init$ORACLE_SID.orainit01xy.ora
echoprocesses=17>>init01xy.ora
tailinit01xy.ora

STARTUP
showparameterprocesses

SHUTDOWNimmediate
STARTUPpfile=init01xy.ora
showparameterprocesses

SHUTDOWN

SHUTDOWNIMMEDIATE

Crearfichero/home/CURSO/cursoxy/init01xy.ora,copiadelinitCURSOxy.ora,ymodificar
processes=17.

ArrancarlaBDycomprobarvalordeparmetros,porqunohatomadoelnuevovalor?.

PararlaBDyarrancarconelinit01xy.ora.Comprobarparmetroprocesses.Abrirotra
conexindesqlplusyverquocurre.

PararlaBDdeformanormal,estandoconectadoalgnusuarioyverquocurre.Yqu
sucedecuandotodoslosusuariossedesconectan.

RepetirlaparadadelaBD,estandoconectadoalgnusuario,deformaquenoespere:

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

59

PRACTICASTEMA2.
2.2.ArranquedelaBD(STARTUP).Comprobarlasdiferentesfasesenel
arranquedelaBD.

Arrancarslolainstancia(NOMOUNT)yconsultaralgnparmetro.Quocurrealaccedera
V$CONTROLFILE.
STARTUPNOMOUNT
SHOWPARAMETERprocesses
SELECT*FROMV$CONTROLFILE;
AhoramontarlaBDyvolveraconsultarV$CONTROLFILE.QuesucedealleerDBA_USERS.
ALTERDATABASEMOUNT
SELECT*FROMV$CONTROLFILE;
SELECT*FROMDBA_USERS;
AbrirlaBDenmodoREADONLYycrearunatabla.ActivarmodoREADWRITEyvolveracrearlatabla.
ALTERDATABASEOPENREADONLY
CREATETABLEMITABLA(C1VARCHAR2(2));
ALTERDATABASEOPENREADWRITE
CREATETABLEMITABLA(C1VARCHAR2(2));

2.3.Ficheroalert.logyficherosdetraza.Diccionariodedatos.

BuscaryconsultarelficherodealertdelaBD.
lsl$ORACLE_HOME/rdbms/log/alert_$ORACLE_SID.log
lsl$ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log
catalert_$ORACLE_SID.log
tail26falert_$ORACLE_SID.log
Buscarsihayficherosdetraza.
lsl$ORACLE_HOME/rdbms/log/*.trc
lsl$ORACLE_BASE/admin/$ORACLE_SID/bdump/*.trc
lsl$ORACLE_BASE/admin/$ORACLE_SID/udump/*.trc
SacarlalistadevistasdelDD.Consultarlascolumnasdedichasvistas.
Select*fromDICTIONARY;
Select*fromDICT_COLUMNS;

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

60

PRACTICASTEMA2.
2.4. Impedir las conexiones de usuarios, de modo que el DBA s pueda
conectarse. Intenta conectarte como scott/tiger. Volver a permitir
conexionesdeusuarios.
STARTUPRESTRICT(silaBDestparada)
ALTERSYSTEMENABLERESTRICTEDSESSION;(silaBDestabaarrancada)
ALTERSYSTEMDISABLERESTRICTEDSESSION;

2.5. Forzar un checkpoint y hacer un insert en la tabla SCOTT.DEPT.


Inmediatamente despus hacer SHUTDOWN ABORT. Arrancar y
comprobarSCOTT.DEPT.Volverarepetirelinsert,haciendocommitantes
delSHUTDOWNABORT;ycompruebaelcontenidodeSCOTT.DEPT.

ALTERSYSTEMCHECKPOINT;
insertintoscott.deptvalues(99,'FORMACION','MURCIA');
SHUTDOWNABORT
STARTUP
SELECT*FROMSCOTT.DEPT;
insertintoscott.deptvalues(99,'FORMACION','MURCIA');
COMMIT;
SHUTDOWNABORT
STARTUP
SELECT*FROMSCOTT.DEPT;

AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

61

PRACTICASTEMA2.
2.6.ConctatecomoSCOTTyhazupdatesobreDEPT(sinhacercommit).
Desdeotrasesin,cierralaBDconSHUTDOWNTRANSACTIONAL.Qu
pasaalhacercommitenlasesindeSCOTT?
CONNECTSCOTT/TIGER
SHUTDOWNTRANSACTIONAL(sesindelsys)
updatedeptsetdeptno=88wheredeptno=99;(sesindescott)
COMMIT;(sesindescott)
2.7.Conctatecomousuarioscott/tiger.Activalatrazayhazunaquerycon
unajoinentreEMPyDEPT(selecta.ename,b.dnamefromempa,deptb
wherea.deptno=b.deptno;).Desactivalatrazayanalizaelficheroqueseha
generadoconelcomandotkprof(esuncomandounix,nodeSQL).
CONNECTSCOTT/TIGER
ALTERSESSIONSETSQL_TRACE=TRUE;
tkprofnombre_fichero_traza.trcsalida_traza.txtexplain=scott/tigersys=no(desde
fueraSQL)
catsalida_traza.txt
AdministracindeOracle10g(Parte1)

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

62

TEMA3
FICHERODECONTROL

AdministracindeOracle10g(Parte1)

FICHERODECONTROL

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

63

TEMA3.
FICHERODECONTROL

Ficherodecontrol
Contenidodelficherodecontrol
Multiplexarficherodecontrol
Backupdelficherodecontrol

AdministracindeOracle10g(Parte1)

FICHERODECONTROL

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

64

FICHERODECONTROL
Setratadeunficherobinario,sinelcualnoesposiblearrancar

la BD. Por ello es conveniente mantener varias copias del


mismo,endiferentesdiscos.

SeleealmontarlaBD.
Su tamao es fijo, y depende de los parmetros indicados al
crear la BD con CREATE DATABASE; como por ejemplo
MAXLOGFILESyMAXDATAFILES.

El fichero de control contiene informacin como: nombre de la

BD, fecha de creacin de la BD, nombres de los tablespaces,


nombre y localizacin de los ficheros de datos y de redo,
nmero de secuencia del redo log en curso, informacin de
checkpoint, informacin del archivado de los redo log,
informacindebackup.

AdministracindeOracle10g(Parte1)

FICHERODECONTROL

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

65

AADIRCOPIASYBACKUPDEL
FICHERODECONTROL

Paraaadirunacopiadelficherodecontrol:
SeparalaBDconSHUTDOWNNORMAL.
Se hace una copia fsica del fichero de control, a nivel del sistema
operativo.EnUnixconelcomandocp.
Seincluyelanuevacopiadelficherodecontrolenelinit.ora(ospfile);enel
parmetroCONTROL_FILES.
ArrancarlaBDconSTARTUP.

Se recomienda sacar una copia de seguridad del fichero de control


cadavezquecambielaestructurafsicadelaBD:
ALTERDATABASEBACKUPCONTROLFILETOTRACE;
De esta forma se generan, en un fichero de traza, las sentencias sql
necesariasparavolveracrearelficherodecontrol.
ALTERDATABASEBACKUPCONTROLFILETO
/u02/oradata/CURSOxy/ora_control01.bak;
Haceunacopiabinariayaisladadelfichero.

EnlavistaV$CONTROLFILEtenemoslalistadetodoslosficherosde
controldelaBD.EnV$CONTROLFILE_RECORD_SECTIONveremos
lasdiferentesseccionesysuestadodeuso.

AdministracindeOracle10g(Parte1)

FICHERODECONTROL

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

66

ALTERDATABASEBACKUP
CONTROLFILETOTRACE
STARTUPNOMOUNT
CREATECONTROLFILEREUSEDATABASE"CURSOxy"NORESETLOGS
NOARCHIVELOG
MAXLOGFILES32
MAXLOGMEMBERS2
MAXDATAFILES1000
MAXINSTANCES1
MAXLOGHISTORY292
LOGFILE
GROUP1'/u04/oradata/CURSOxy/redo01.log'SIZE10M,
GROUP2'/u04/oradata/CURSOxy/redo02.log'SIZE10M,
GROUP3'/u04/oradata/CURSOxy/redo03.log'SIZE10M
DATAFILE
'/u02/oradata/CURSOxy/system01.dbf',
'/u03/oradata/CURSOxy/undo_rbs01.dbf',
'/u03/oradata/CURSOxy/sysaux01.dbf',
'/u02/oradata/CURSOxy/users01.dbf'
CHARACTERSETWE8ISO8859P15;
ALTERDATABASEOPEN;
Nota: si hubiese que indicar la opcin RESETLOGS, se perder el contenido de
losficherosredolog.
AdministracindeOracle10g(Parte1)

FICHERODECONTROL

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

67

VISTASDELDD

V$CONTROLFILE

V$CONTROLFILE_RECORD_SECTION

V$PARAMETER

AdministracindeOracle10g(Parte1)

FICHERODECONTROL

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

68

PRACTICASTEMA3
3.1.LocalizarelficherodecontroldesdeelSOydesdelaBD.
lslt/u0?/oradata/$ORACLE_SID/*.ctl
lsl/u0?/oradata/$ORACLE_SID/*control*
select*fromv$controlfile;
3.2.Consultar la informacin de la BD relativa al contenido del
fichero de control. Forzar un checkpoint y volver a consultar.
Consultarlasseccionesquecontieneelficherodecontrolysu
estadodeuso.
select*fromv$database;
altersystemcheckpoint;
select*fromv$controlfile_record_section;
AdministracindeOracle10g(Parte1)

FICHERODECONTROL

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

69

PRACTICASTEMA3
3.3. Aade una copia al fichero de control de la BD en
"/u04/oradata/$ORACLE_SID".Creauninitxy02.oraeincluyeelnuevo
fichero.ArrancalaBDconelnuevoinitycompruebaquehatomadola
nuevacopiadelficherodecontrol.
shutdownimmediate
cp/u02/oradata/$ORACLE_SID/control1.ctl
/u04/oradata/$ORACLE_SID/control3.ctl
cp$ORACLE_HOME/dbs/init$ORACLE_SID.orainit02xy.ora
viinit02xy.ora
startuppfile=init02xy.ora
select*fromv$controlfile;

3.4. Sacar una copia de seguridad del fichero de control, tanto en un


ficherodetraza,comounnuevoficherodecontrol.
alterdatabasebackupcontrolfiletotrace;
lslt$ORACLE_BASE/admin/$ORACLE_SID/udump|head2
alterdatabasebackupcontrolfileto
'/u02/oradata/CURSOxy/ora_control1.bak';
lslt/u02/oradata/$ORACLE_SID/control_copia1.ctl
select*fromv$controlfile;

AdministracindeOracle10g(Parte1)

FICHERODECONTROL

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

70

TEMA4
GESTIONDELREDOLOG

AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

71

TEMA4.
GESTIONDELREDOLOG

Ficherosredolog
Funcionamientodelredolog
Aadir/quitargrupos/miembrosderedo
Configuracindelosficherosredolog
Modoarchivelog

AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

72

FICHEROSREDOLOG
Los ficheros redo log guardan todos
los cambios hechos en los datos y
permitenvolveraaplicarlosencasode
cadadelaBD.
Los ficheros redo log se organizan en
grupos.UnaBDrequierealmenosdos
grupos. Cada fichero redo log dentro
deungruposellamamiembro.
La idea es que cada grupo tenga
tantos miembros como discos
disponemos para matener las copias
delosredo.Lousualestener3grupos
deredocon2miembroscadauno.
AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

73

FUNCIONAMIENTODELREDOLOG

Los ficheros redo log se usan de


maneracircular:cuandounosellena,
el LGWR comienza a escribir en el
siguiente grupo (log switch), hasta
volver al primero. Cuando ocurre un
log switch, tambin sucede un
checkpoint; y se actualiza el fichero
de control. Podemos forzar un log
switchouncheckpointexplcitamente
con:
ALTERSYSTEMSWITCH
LOGFILE;
ALTERSYSTEMCHECKPOINT;
El LGWR escribe al hacer commit, o
cada 3 segundos, o si el buffer
redologsellena1/3,yantesdequeel
DBWR vuelque los cambios de los
buffers de datos a los ficheros de la
BD.

AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

74

AADIRGRUPOSYMIEMBROSDE
REDO

AadirgruposalRedoLogOnline:
ALTERDATABASEADDLOGFILEGROUP3
(/u04/oradata/CURSOxy/redo03a.log,
/u03/oradata/CURSOxy/redo03b.log)
SIZE1M;

AadirmiembrosRedoLogOnline:
ALTERDATABASEADDLOGFILEMEMBER
/u03/oradata/CURSOxy/redo01b.logTOGROUP1,
/u03/oradata/CURSOxy/redo02b.logTOGROUP2;

AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

75

ELIMINAR GRUPOS Y MIEMBROS


DEREDO
EliminargruposdelRedoLogOnline(porejemplosihecreado
otrosmsgrandes):

ALTERDATABASEDROPLOGFILEGROUP3;

No puede haber menos de 2 grupos; no se puede borrar el


grupoactivo;alborrarungruponoseeliminanlosficherosdel
sistemaoperativo(anoserqueseuseOMF).

ElminarmiembrosRedoLogOnline:
ALTERDATABASEDROPLOGFILEMEMBER
/u03/oradata/CURSOxy/redo03b.log;

Nosepuedeborrarelltimomiembroqquededeungrupo(y
dejarlo vaco); tampoco un miembro del grupo en curso; si la
BD est en modo ARCHIVELOG no se puede borrar un
miembrocuyogruponohasidoarchivado;cuandoborramosun
miembro no se elimina el fichero correspondiente del sistema
operativo.
AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

76

CONFIGURACINDELOS
FICHEROSREDOLOG

Vaciado(porejemplositodoslosmiembrosdeungrupoestncorruptos):
ALTERDATABASECLEAR[UNARCHIVED]LOGFILE
/u02/oradata/CURSOxy/redo02a.log;

Esequivalenteaaadiryborrarunficheroredolog.
Moverorenombrar(ojo!laBDdebeestarslomontada):

!mv/u04/oradata/CURSOxy/redo03a.log
/u03/oradata/CURSOxy/redo3a.log
ALTERDATABASERENAMEFILE/u04/oradata/CURSOxy/redo03a.logTO
/u03/oradata/CURSOxy/redo3a.log;

ConfiguracindelRedoLogOnline:
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:mismonmerodemiembrosparatodoslosgrupos.
Cadamiembrodeungrupodebeestarenundiscodiferente.Ademshay
que separar en diferentes discos los Redo Log Archivados de los Redo
LogOnline,parareducirlacontencinentreelLGWRyelARCH.ElRedo
Log Online tambin debera estar en un disco distinto a los ficheros de
datos,parareducirlacontencinentreLGWRyDBWR.
EnlasvistasV$LOG,V$LOG_HISTORYyV$LOGFILEestnlosdetallesdel
redo.

AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

77

MODOARCHIVELOG

Pordefecto,laBDsecreaenmodoNOARCHIVELOG(conCREATEDATABASE).
Si activamos el modo ARCHIVELOG se irn archivando los ficheros redo log
conformesellenan(cadavezqueocurreunlogswitch).
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
logswitch,eneldirectorioindicadoporelparmetroLOG_ARCHIVE_DEST(por
defecto$ORACLE_HOME/dbs/arch).
Nota.Sepuedeverelestadodelarchivadoconelcomandoarchiveloglistdelsqlplus.

Cadavezquesearchivaunredolog,enelficherodecontrolseguardaelnombre
delredologarchivado,nmerodesecuencia,ynmerosSCNmsaltoymsbajo.
Elredologquesehallenadonopuedereutilizarsehastaqueocurrauncheckpoint
yhayasidocopiadoporelprocesoARCH.
Poner BD en modo ARCHIVELOG: SHUTDOWN, backup (por seguridad),
configurar log_archive_dest en el INIT, STARTUP MOUNT, activar archivado
(ALTERDATABASEARCHIVELOG;),abrirBD(ALTERDATABASEOPEN;),parar
BD,yhacerbackup(pueshacambiadoelficherodecontrolylacopiaanteriorya
nonossirve).
Msinformacinenhttp://cursos.atica.um.es/oradoc102/server.102/b14231/archredo.htm#i1006246

AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

78

VISTASDELDD

V$LOG
V$LOG_HISTORY
V$LOGFILE
V$DATABASE

AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

79

PRACTICASTEMA4
4.1.LocalizarlosficherosredologdelaBD.Cuntosgruposhayycuntos
miembrostienecadagrupo?estncorrectamentedistribuidos?
lslt/u0?/oradata/$ORACLE_SID/*.log
lslt/u0?/oradata/$ORACLE_SID/*redo*
select*fromv$logfile;
4.2. Comprobar el fichero redo log activo. Qu ocurre al forzar un "log
switch"?yalforzaruncheckpoint?
select*fromv$log;
altersystemswitchlogfile;
altersystemcheckpoint;
4.3.Aadeunmiembromsacadagrupo:
/u03/oradata/$ORACLE_SID/redo11.log,
/u03/oradata/$ORACLE_SID/redo12.log,
/u03/oradata/$ORACLE_SID/redo13.log.
alterdatabaseaddlogfilemember
'/u03/oradata/CURSOxy/redo11.log'togroup1,
'/u03/oradata/CURSOxy/redo12.log'togroup2,
'/u03/oradata/CURSOxy/redo13.log'togroup3;

AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

80

PRACTICASTEMA4
4.4. Aade un grupo ms (grupo 4), con dos miembros de 1M:
/u03/oradata/$ORACLE_SID/redo04.log
y
/u04/oradata/$ORACLE_SID/redo14.log.Aade2gruposms(grupo5y6),con
lasmismascaractersticas.

alterdatabaseaddlogfilegroup4

('/u03/oradata/CURSOxy/redo04.log',
'/u04/oradata/CURSOxy/redo14.log')size1M;
alterdatabaseaddlogfilegroup5
('/u03/oradata/CURSOxy/redo05.log',
'/u04/oradata/CURSOxy/redo15.log')size1M;
alterdatabaseaddlogfilegroup6
('/u03/oradata/CURSOxy/redo06.log',
'/u04/oradata/CURSOxy/redo16.log')size1M;

4.5. Elimina los miembros del grupo 1, de uno en uno. Qu ocurre al eliminar el
ltimo?.Borrarlosgrupos1,2y3.Ojoynoborrarelredologactivo!!!

Alterdatabasedroplogfilemember

'/u04/oradata/CURSOxy/redo01.log';
alterdatabasedroplogfilemember
'/u03/oradata/CURSOxy/redo11.log';
alterdatabasedroplogfilegroup1;
alterdatabasedroplogfilegroup2;
alterdatabasedroplogfilegroup3;

AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

81

PRACTICASTEMA4

4.6.Cambiarelnombredelosmiembrosderedodelosgrupos4,5y6;aredo1a.log,
redo1b.log,redo2a.log,redo2b.log,redo3a.log,redo3b.log.
shutdownimmediate

OJO,laBDdebeestarslomontada!!!
startupmount
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
alterdatabaserenamefile'/u03/oradata/CURSOxy/redo01.log'to
'/u03/oradata/CURSOxy/redo1a.log';
alterdatabaserenamefile'/u04/oradata/CURSOxy/redo11.log'to
'/u04/oradata/CURSOxy/redo1b.log';
alterdatabaserenamefile'/u03/oradata/CURSOxy/redo02.log'to
'/u03/oradata/CURSOxy/redo2a.log';
alterdatabaserenamefile'/u04/oradata/CURSOxy/redo12.log'to
'/u04/oradata/CURSOxy/redo2b.log';
alterdatabaserenamefile'/u03/oradata/CURSOxy/redo03.log'to
'/u03/oradata/CURSOxy/redo3a.log';
alterdatabaserenamefile'/u04/oradata/CURSOxy/redo13.log'to
'/u04/oradata/CURSOxy/redo3b.log';
alterdatabaseopen;
select*fromv$logfile;

AdministracindeOracle10g(Parte1)

GESTIONDELREDOLOG

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

82

TEMA5
TABLESPACES

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

83

TEMA5.
TABLESPACES

Quesuntablespace
Tablespacessystemysysaux
Createtablespace
Formasdegestionarelespaciodeuntablespace
Tablespacesundo
Tablespacestemporales
TablespacetemporalpordefectodelaBDytablespacepor
defectodelaBD
Tablespaceofflineyrename
Tablespacereadonlyybigfile
Borraruntablespaceygrupos
Redimensionaruntablespace
Moverficheros

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

84

QUEESUNTABLESPACE

Una BD 10g podra tener slo los tablespaces SYSTEM y SYSAUX (>=10g).
Oracle recomienda crear tablespaces adicionales para los datos, ndices,
rollbackysegmentostemporales.
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
compuestadetablespaces,segmentos,extensionesybloques.
Cadatablespaceconsisteenunoomsficherosdels.o.llamadosficherosde
datos(unficheroperteneceaunsolotablespace):
UntablespaceslopuedeperteneceraunaBDalavez.
Puedetenerceroomssegmentos(unsegmentosloperteneceauntablespace).
Exceptuando el tablespace SYSTEM, o aquellos que contengan segmentos de
rollbackactivos,untablespacesepuedeponeroffline,estandolaBDfuncionando.
Untablespacesepuedeponerenmodoreadonlyoreadwrite,yviceversa.

Tiposdetablespaces:permanent(datos:system,sysaux,aplicaciones),undo
(rollback)ytemporary(sort).
Oracle10gpermitecrearbigfiletablespaces,dehasta8EB(millonesde
terabytes).

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

85

TABLESPACES

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

86

TABLESPACESSYSTEMYSYSAUX
LostablespacesSYSTEMySYSAUXsonlosnicosque,cmomnimo,
secreanconlaBD(createdatabase).
EltablespaceSYSTEM(Nodebecontenerdatosdeaplicaciones):
ContieneelDD,incluidosprocedimientosalmacenados,funciones,triggersy
paquetes.
Tambinalbergaalsegmentoderollbacksystem

El tablespace SYSAUX (>=10g) permite que en el tablespace SYSTEM


sloestelDD,aglutinandolasutilidadesdelsistema(RepositorioOEM,
Intermedia,Spatial,OLAP,RMAN,XMLDB,etc).
QuhayeneltablespaceSYSAUXycuntoocupa?
selectoccupant_name,space_usage_kbytesfromv$sysaux_occupants;

SepuedemoverelcontenidodeSYSAUXaotrotablespace?
selectoccupant_name,move_procedure,move_procedure_descfrom
v$sysaux_occupants;

Respectoalrestodetablespaces(noSYSTEM),serecomiendaseparar
los ficheros de redo, luego datos de ndices, despus rollback y
segmentos temporales. Tambin es bueno separar datos estticos y
dinmicos.
AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

87

CREARUNTABLESPACE
CREATE[BIGFILE]TABLESPACE
nombre
[DATAFILEclasula_fichero]
[MINIMUMEXTENTn[K|M]]
[BLOCKSIZEn[K]]
[LOGGING|NOLOGGING]
[clasula_extensiones]
[DEFAULTclasula_storage]
[ONLINE|OFFLINE]
[PERMANENT|TEMPORARY];

clasula_fichero:==nombre_fichero
[SIZEn[K|M][REUSE]|REUSE]
[AUTOEXTENDON|OFF[NEXTn[K|M]]
[MAXSIZEn[K|M]]]
clasula_extensiones:==EXTENTMANAGEMENT
[DICTIONARY|LOCAL[AUTOALLOCATE|
UNIFORM[SIZEn[K|M]]
[SEGMENTSPACEMANAGEMENTAUTO|MANUAL]]]
clasula_storage:==STORAGE(INITIAL
n[K|M][NEXTn[K|M]][MINEXTENTSn]
[MAXEXTENTSn][PCTINCREASEn])

CREATETABLESPACEDATOS_USUARIOS
DATAFILE/u02/oradata/CURSOxy/datos_usuarios01.dbfSIZE16M
AUTOEXTENDONNEXT1MMAXSIZE32M
EXTENTMANAGEMENTLOCALUNIFORMSIZE128K
SEGMENTSPACEMANAGEMENTAUTO;
CREATETABLESPACEDATOS_USUARIOS
DATAFILE/u02/oradata/CURSOxy/datos_usuarios01.dbfSIZE16M
AUTOEXTENDONNEXT1MMAXSIZE32M
EXTENTMANAGEMENTDICTIONARY
DEFAULTSTORAGE(INITIAL16KNEXT32KMAXEXTENTS10PCTINCREASE50);
AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

88

FORMASDEGESTIONAREL
ESPACIODEUNTABLESPACE

Tablespacesmanejadoslocalmente(Oraclelosrecomienda>=8i):

Las extensiones libres se registran en un bitmap, de forma que cada bit


corresponde a un bloque. Elvalor de cada bitindica si el bloque correspondiente
est libre o usado. Existe un bitmap de este tipo en cada fichero del tablespace.
Cada vez que una extensin se reserva o se libera, se modifica el bitmap
correspondiente.
Ventajas:
ReduccindelacontencinenlastablasdelDD.
Nosegenerarollbackalreservar/liberarespacio(puesnoseactualizaelDD).
Noesnecesariohacercoalesce.
No tienen el mismo sentido INITIAL_EXTENT y NEXT_EXTENT y no se usan
MIN_EXTENTS, MAXEXTENTS y PCTINCREASE del STORAGE al crear una
tabla.TampocotienesentidoDEFAULTSTORAGEdeltablespace.

Eltablespacesystemsepuedemanejarlocalmente,desdeOracle9i(en8ino).SielSYSTEM
eslocal,NOsepuedencreartablespacespordiccionario.DesdeOracle9i,pordefecto,los
tablespacessecreancomolocales(sielparmetrocompatible>=9.0),exeptoelSYSTEM.

TablespacesgestionadosatravsdelDD(aextinguir):

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
correspondientesdelDDdebenseractualizadas.
PermitedefinirSTORAGEflexiblealossegmentos(loslocalesNO).

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

89

TABLESPACESUNDO

EnOracle9iseintroducenlossegmentosdeundoautomticos,quepermiten
sustituirlagestinmanualdesegmentosderollback.ConOracle10gtodava
se puede optar por la gestin manual, pero se avisa de que ya no estar
disponibleenfuturasversiones.
Lostablespacesundoslopuedencontenersegmentosderollback(ningn
otrotipodeobjeto).Losllamaremostablespacesderollback.
Sondeltipomanejadoslocalmente(deformaautomtica).
CREATEUNDOTABLESPACEundo01
DATAFILE/u03/oradata/CURSOxy/undo01.dbfSIZE100M;

Untablespacederollbacksloseusacuandoseactivalagestinautomtica
de
rollback
en
la
BD
(undo_management=auto
y
undo_tablespace=nombre_tablespace). Slo puede haber un tablespace de
rollbackactivoenunmomentodado.

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

90

TABLESPACESTEMPORALES
YGRUPOS

Los segmentos temporales (de sort) se crean en tablespaces temporales,


automticamente, para ordenaciones (order by, joins, create index, etc) que no
cabenenmemoria.ExistenslodurantelaejecucindelasentenciaSQL.
Untablespacetemporalnopuedecontenerobjetospermanentes.
Esrecomendablequeseanlocallymanaged(nopuedenusarAUTOALLOCATE
niSEGMENTSPACEMANAGEMENTAUTO)yusenficherostemporales:
CREATETEMPORARYTABLESPACEtemp
TEMPFILE/u03/oradata/CURSOxy/temp01.dbfSIZE100M
EXTENTMANAGEMENTLOCALUNIFORMSIZE2M;

ParaoptimizarelrendimientoesrecomendablequeUNIFORMSIZEseamltiplo
deSORT_AREA_SIZE.
Nosepuederenombrarunficherotemporal(tempfile).Tampocosepuedenponer
enmodoreadonly.SiempretienenelmodoNOLOGGING(noproducenentradas
deredolog).

Desde Oracle10g se pueden agrupar tablespaces temporales,


repartiendo las ordenaciones entre ellos (cada ordenacin slo usa un
segmentodesortenuntablespace).
ALTERTABLESPACEtemp1TABLESPACEGROUPgtemp;
ALTERTABLESPACEtemp2TABLESPACEGROUPgtemp;
ALTERTABLESPACEtemp3TABLESPACEGROUPgtemp;
ALTERTABLESPACEtemp3TABLESPACEGROUP'';
ALTERUSERnombre_usuarioTEMPORARYTABLESPACEgtemp;
AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

91

TABLESPACETEMPORALPOR
DEFECTODELABDY
TABLESPACEPORDEFECTO

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(stohayqueevitarloatodacosta).
ELtablespacetemporalpordefectodelaBDsepuedecambiar:
ALTERDATABASEDEFAULTTEMPORARYTABLESPACEnombre_tablespace;
Nota:nombre_tablespacepodraserunnombredegrupo.

TambinsepuedecrearconlaBD(CREATEDATABASE),encuyocaso,ser
deltipolocal.
AlasignaralaBDuntablespacetemporalpordefecto,todoslosusuariosqueno
tenganunoasignadoexplcitamente,pasarnatenerlo.Ycuandocambiemosel
tablespacetemporalpordefectodelaBD,cambiarparatodoslosusuariosque
nolotenganasignadodeformaexplcita.
No podemos borrarlo hasta que hayamos asignado otro. No podemos ponerlo
offline.
DesdeOracle10,adems,sepuededefiniruntablespacepordefectoparalos
usuarios a los que no se le asigna uno explcitamente, en el momento de la
creacindelaBDconlaclasulaDEFAULTTABLESPACEnombre.Ademsse
puedecambiarencualquiermomentocon(ojo!!!,secambiarparatodoslos
usuarios,inclusolosqtuviesenasignadounoconcreto,exceptoespecialescomo
SYS,SYSTEM,DBSNMP,OUTLN,etc):
ALTERDATABASEDEFAULTTABLESPACEnombre;

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

92

TABLESPACEOFFLINEYRENAME
Cuando un tablespace est OFFLINE no se puede acceder a
losdatosquecontiene:
ALTERTABLESPACEDBA01USEROFFLINE;
ParaponerlodenuevoONLINE:
ALTERTABLESPACEDBA01USERONLINE;
AlgunostablespacesnosepuedenponerOFFLINE:SYSTEM,
tablespacesconsegmentosderollbackotemporalesactivos.

Sintaxis
ALTERTABLESPACEnombre ONLINE|OFFLINE;

Lossegmentosquecontienepuedenserborrados(porejemplo
drop table, porque slo afectan al DD). En tablespaces
locales,elsegmentoborradopasaaserdeltipotemporal.
DesdeOracle10g,sepuederenombraruntablespace(execpto
SYSTEMySYSAUX),inclusoestandoREADONLY:
ALTERTABLESPACEnombre1RENAMETOnombre2;
AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

93

TABLESPCEREADONLYYBIGFILE

AlponeruntablespaceenmodoREADONLY,slosepermitenoperaciones
delecturasobresusdatos;sinembargolossegmentosquecontienepueden
ser borrados (por ejemplo drop table, porque slo afecta al DD). En
tablespaceslocales,elsegmentoborradopasaaserdeltipotemporal.
Sintaxis:
ALTERTABLESPACEnombreREAD[ONLY|WRITE];
UntablespaceBIGFILEpuedetenerhasta8Exabytes(millonesdeTb).No
puedenserloniSYSTEMniSYSAUX.
CREATEBIGFILETABLESPACEnombreDATAFILE
'/u02/oradata/CURSOxy/nombre01.dbf'size50GEXTENT
MANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

94

BORRARUNTABLESPACE
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
usemosINCLUDINGCONTENTSANDDATAFILES(>=Oracle9i).
Nopodremosborrarlosicontieneobjetos,amenosqueindiquemos
NCLUDING CONTENTS. Tampoco podemos hacerlo si existen
foreign keys apuntando a sus objetos, a menos que adems
indiquemos CASCADE CONSTRAINTS (se borrarn las citadas
constraintsFK).
Se recomienda poner el tablespace OFFLINE antes de borrarlo,
paraasegurarnosquenadieestusandosucontenido.
DROPTABLESPACEnombre_tablespace
[INCLUDINGCONTENTS[ANDDATAFILES][CASCADECONSTRAINTS]];

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

95

REDIMENSIONARUNTABLESPACE
Podemos cambiar el tamao de un tablespace aadiendo un fichero al
mismo,obiencambiandoeltamaodelficheroquelocompone.
ALTERTABLESPACEusersADDDATAFILE
/u02/oradata/CURSOxy/users02.dbfsize1M;
ALTERDATABASEDATAFILE
/u02/oradata/CURSOxy/users01.dbfresize2M;
Podemos reducir el tamao deun fichero, pero no podremoshacerlo sihay
espacioocupadoalfinaldelmismo.

Una opcin interesante es programar el crecimiento del fichero que


componeeltablespace:
ALTERDATABASEDATAFILE
/u02/oradata/CURSOxy/users01.dbfSIZE1MAUTOEXTENDON
NEXT1MMAXSIZE4M;
Podemos indicar UNLIMITED como MAXSIZE. Y las unidades tambin
puedenserK(p.e.512K)obytes(p.e.100000).

SlountablespaceBIGFILEsepuederedimensionarconALTER
TABLESPACE,sinindicarDATAFILE(>=10g):
ALTERTABLESPACEbigtbsRESIZE60G;

Podemosborrarficherovacodetablespace,conmsdeuno(>=10g):
ALTERTABLESPACEusersDROPDATAFILE
'/u02/oradata/CURSOXY/users02.dbf';

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

96

REDIMENSIONARUNTABLESPACE

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

97

MOVERFICHEROS
Existen dos mtodos para mover ficheros: con ALTER
TABLESPACEyconALTERDATABASE.
ElprimerosloesaplicableatablespacesquenosonelSYSTEM,
yquenocontienensegmentosderollbackotemporalesactivos:

Ponereltablespaceoffline
MoverelficheroaniveldelS.O.
ALTERTABLESPACERENAMEDATAFILE/path1/fichero1TO
/path2/fichero2;
Ponereltablespaceonline.

El segundo requiere que la BD est slo montada, y es la nica


formademovereltablespaceSYSTEM:

PararlaBD.
MontarlaBD(startupmount).
MoverelficherodesdeelS.O.
ALTER DATABASE RENAME FILE /path1/fichero1 TO
/path2/fichero2;
AbrirlaBD.

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

98

RECYCLEBINYDROPTABLE

RECYCLEBIN(>=10g).ContenedordondeOracleguardalastablasborradas
(anoserqseborreconlaopcinPURGE).
DBA_RECYCLEBIN.Vertodaslastablasborradas.EnUSER_RECYCLEBINo
RECYCLEBIN,slolasmas.TbconSHOWRECYCLEBIN(desdesql*plus).
Sepuededesactivarconparmetrodelinitrecyclebin=off(pordefectoon).
TbconALTERSYSTEM|SESSION....
Recuperartablaborrada:
FLASHBACKTABLEtablaBorradaTOBEFOREDROP;
Borrardefinitivamente:
PURGETABLEtabla;(tbPURGEINDEX)
SlovanaRECYCLEBINlosndicesdelastablasborradas(noconDROPINDEX)

PURGERECYCLEBIN|DBA_RECYCLEBIN;
PURGETABLESPACEnomtsp[USERusuario];
BorrardirectamentesinpasarporRECYCLEBIN:
DROPTABLEtablaPURGE;

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

99

ADDM(AUTOMATICDATABASE
DIAGNOSTICMONITOR)

Seactivapordefecto(statistics_level=TYPICALuALL;sedesactivaconBASIC).
Informes.EntredossnapshotsdelAWR.SuobjetivoesreducirlaestadsticaDB
time(tiempoacumuladoinvertidoporlaBDparaatenderlaspeticionesde
usuarios,verV$SYS_TIME_MODEL).
$ORACLE_HOME/rdbms/admin/addmrpt.sql.Tbusandoelpaquete
DBMS_ADVISOR.
ParaelanlisisdeE/S,pordefecto,setomaunvalorde10000microsegundos
paralalecturadeunbloquedelaBD.SicalculamoselvalorrealparanuestraBD,
podemoscambiarlocon:
EXECUTEDBMS_ADVISOR.SET_DEFAULT_TASK_PARAMETER(
'ADDM','DBIO_EXPECTED',8000);
VistasdelDD:
DBA_ADVISOR_TASKS.
DBA_ADVISOR_LOG.
DBA_ADVISOR_RECOMMENDATIONS.OrdenarporRANK(importancia)y
verBENEFIT.
DBA_ADVISOR_FINDINGS.
MsinformacinsobreADDM:
http://cursos.atica.um.es/oradoc102/server.102/b14211/diagnsis.htm#sthref433

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

100

AWR(AUTOMATICWORKLOAD
REPOSITORY)

GenerayprocesaestadsticasderendimientoparaqueelpropioservidorOracle
puedadetectarproblemasydarrecomendacionesdeajuste(usandoADDM).
Seactivapordefecto(statistics_level=TYPICALuALL;sedesactivaconBASIC).
Generasnapshotsautomticamente.Tbmanualmenteconpaquete
DBMS_WORKLOAD_REPOSITORY.
Informes:
AWR:$ORACLE_HOME/rdbms/admin/awrrpt.sql.PermitegenerarHTML.
ASH(V$ACTIVE_SESSION_HISTORY):
$ORACLE_HOME/rdbms/admin/ashrpt.sql.
VistasdelDD:
V$ACTIVE_SESSION_HISTORY(ASH,aadesesionesactivascadasegundoa
buffercircularenSGA)
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.
MsinformacinsobreAWR:
http://cursos.atica.um.es/oradoc102/server.102/b14211/autostat.htm#i27008

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

101

VISTASDELDD

DBA_TABLESPACES
DBA_DATA_FILES
DBA_TEMP_FILES
V$TABLESPACE
V$DATAFILE
V$TEMPFILE
V$UNDOSTAT
DBA_TABLESPACE_GROUPS

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

102

PRACTICASTEMA5

5.1. Consultar los tablespaces que componen la BD.


Comprobarlosficherosquetienencadaunodeellos.

Select*fromdba_tablespaces;
select*fromv$tablespace
select*fromdba_data_files;
select*fromv$datafile;
select*fromdba_temp_files;
select*fromv$tempfile;

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

103

PRACTICASTEMA5
5.2.CreaeltablespaceDATACURSOxy,NOmanejadolocalmente,conel
fichero/u02/oradata/datacursoxy01.dbf,conuntamaode1M.Crea4
tablas (TABLA01, TABLA02, TABLA03, TABLA04) de 256K sobre
dicho tablespace. Borra las tablas TABLA02 y TABLA04, y crea una
tablaTABLA05de512K.Quocurreyporqu?.Borraeltablespace
DATACURSOxy y cralo de nuevo, manejado localmente. Vuelve a
crear las tablas y repite el borrado de TABLA02 y TABLA04; y la
creacindeTABLA05de512K.Quocurreestavezyporqu?
CreatetablespaceDATACURSOxydatafile
/u02/oradata/CURSOxy/datacursoxy01.dbfsize1Mextentmanagement
dictionary;
createtableTABLA01(C1VARCHAR2(4000))tablespaceDATACURSOxy
storage(initial256Kminextents1);
droptableTABLA02;
createtableTABLA05(C1VARCHAR2(4000))tablespaceDATACURSOxy
storage(initial512Kminextents1);
altertablespaceDATACURSOxyoffline;
droptablespaceDATACURSOxyincludingcontentsanddatafiles;
createtablespaceDATACURSOxydatafile
/u02/oradata/CURSOxy/datacursoxy01.dbfsize1Mextentmanagement
localuniformsize256K;

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

104

PRACTICASTEMA5
5.3. Pon el tablespace DATACURSOxy en modo READONLY. 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 READWRITE. Repite el insert sobre
TABLA01.

altertablespaceDATACURSOxyreadonly;
insertintoTABLA01values(PRIMERAFILA);
droptableTABLA01;
altertablespaceDATACURSOxyreadwrite;
insertintoTABLA01values(PRIMERAFILA);

5.4. Crea una tabla TABLA06 en el tablespace DATACURSOxy, qu


ocurreyporqu?.Activaelautoextenddesufichero,ajustandonext
256Kymaxsize2M.VuelveacrearlatablaTABLA06.
CreatetableTABLA06(C1varchar2(4000))tablespaceDATACURSOxy
storage(initial256Kminextents1);
alterdatabasedatafile/u02/oradata/CURSOxy/datacursoxy01.dbf
autoextendonnext256Kmaxsize2M;
CreatetableTABLA06(C1varchar2(4000))tablespaceDATACURSOxy
storage(initial256Kminextents1);

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

105

PRACTICASTEMA5

5.5.CreaeltablespaceINDCURSOxyde1Mconelfichero
/u02/oradata/CURSOxy/indcursoxy01.dbf. Muvelo al
directorio/u03/oradata/CURSOxy.
CreatetablespaceINDCURSOxydatafile
/u02/oradata/CURSOxy/indcursoxy01.dbfsize1M;
altertablespaceCURSOxyoffline;
mv/u02/oradata/CURSOxy/indcursoxy01.dbf
/u03/oradata/CURSOxy/indcursoxy01.dbf
altertablespacerenamedatafile
/u02/oradata/CURSOxy/indcursoxy01.dbfto
/u03/oradata/CURSOxy/indcursoxy01.dbf;
altertablespaceINDCURSOxyonline;
select*fromdba_data_files;

AdministracindeOracle10g(Parte1)

TABLESPACES

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

106

APENDICEA.
RecursosOracleenInternet.

www.orafaq.org(UndergroundOracleFAQs)
SitionooficialsobreOracle(FAQs,foros,artculos,scripts,etc).
otn.oracle.com(OracleTecnologyNetwork)
Descargasdesw,documentacin,foros,artculos,scripts,etc.
otn.oracle.com/oramag(OracleMagazine)
RevistaOracleMagazine.
www.oracle.com
PortaloficialdeOracle.
metalink.oracle.com
Soportetcnicoparausuariosconcontratodemantenimiento.
asktom.oracle.com(GurdeOracle)
ArtculosypreguntasaunodelosgursdeOracle
www.oraclebase.com(WebdeTimHall)
ArtculosmuyinteresantessobreOracle10g(incluidainstalacin)
www.puschitz.com(WebdeWernerPuschitz)
ArtculosmuybuenossobreinstalacindeOraclesobreLinux
www.dbazine.com(Revistaelectrnica)
RevistaelectrnicamensualespecializadaenOracle

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

107

APENDICEB.
NovedadesOracle9i
undotablespaceygestinautomticadeundo
databasedefaulttemporarytablespace
droptablespaceINCLUDINGCONTENTSANDDATAFILES;
SGAdinmica:sga_max_size,db_cache_size
db_nk_cache_size (cachs con tamao de bloque no
estndard)
desaparececonnectinternal,ahoraesconnect/assysdba
spfile (fichero de parmetros binario, mantenido con alter
systemset...)
OMF
tablespacescongestinautomticadesegmentos
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

108

APENDICEB.
NovedadesOracle10g

TablespaceSYSAUX(permitedejarenelSYSTEMsloelDD)
altertablespacenombre1RENAMETOnombre2;
createBIGFILEtablespacetsbig1...size50G;(hasta8Eb)
SGA_TARGET(gestinautomticadeltamaodelaspartesdelaSGA)
altertablet1SHRINKSPACECASCADE;(antesaltertablet1enablerowmovement;)
"create temporary tablespace ts1 ... TABLESPACE GROUP g1;" y "alter tablespace t2
TABLESPACEGROUPg1;.
DataPump(exp/imptodavaexisten):expdp/impdpmuyeficienteparagrandescantidades
dedatos
Flashback
Database
(db_recovery_file_dest,
db_recovery_file_dest_size,
db_flashback_retention_size).Muytilparaauditora:ALTERDATABASEFLASHBACKon;
ALTER TABLESPACE nombre FLASHBACK ON; FLASHBACK TABLE nombre TO SCN
numero;FLASHBACKTABLEnombreTOTIMESTAMP'2006030312:05:00';;
DROPDATABASE;(slomontada)
ALTERDATABASEDEFAULTTABLESPACEnombre;
ALTERSYSTEMFLUSHBUFFER_CACHE;
AutomaticStorageManagement
ALTERSYSTEMQUIESCERESTRICTED|UNQUIESCE(tbSUSPENDyRESUME).
DROPTABLEnombrePURGE;(DBA_RECYCLEBIN,recyclebin=on,SHOWRECYCLEBIN,
FLASHBACK TABLE nombreTablaBorrada TO BEFORE DROP; PURGE TABLE
NombreTabla;)
ADDM. DBA_OUTSTANDING_ALERTS, DBA_ALERT_HISTORY, V$ALERT_TYPES.
Script$ORACLE_HOME/rdbms/admin/addmrpt.sql.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

109

APENDICEC
INTRODUCCIONAORACLERAC

Dos(oms)instanciasaccediendoalamismaBD.

Cada instancia reside en un servidor independiente, manteniendo una


conexindealtavelocidadalosdiscoscompartidos.

La BD reside en los discos compartdos, y cada instancia mantiene (en


dichosdiscos)suspropiosficherosdecontrolyredoonline.

UnusuarioesconectadoalaBDmedianteunadelasintancias,ysista
cae, ser reconectado automticamente mediante otra instancia del
cluster.

RACproveealtadisponibilidad(sinopuedesperdermsde30minutos
decada,seguramentenecesitasRAC),ytambin,escalabilidad.

MsSOymstrficodered.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

110

ARQUITECTURARAC.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

111

REQUISITOSDELOSNODOS

Acceso a los discos compartidos (Oracle recomienda ASM o Automatic


StorageManagement).

Dostarjetasdered.UnaIPprivadayotrapblica(Oracleproporciona
VIPCAoVirtualIPConfigurationAssistant).
SoporteparaTCP/IPyunswdeinterconexinsoportadoporOracle
(OracleproporcionaOracleClusterware).
Cadainstanciatienesupropioinit(puedentenerdiferentestamaosde
sga,etc),ysupropioUNDOyredologonline.Unmismospfilepermite
configurarvariasintancias:
altersystemsetshared_pool_size=400Msid='INST01';
Cachefusion:laprimerainstanciaqarrancaeslockmaster(LM),no
configurable(esasOracle6ParallelServer).LMsabequbloquestiene
cadainstanciaensucach(globalcachetable).SiLMcae,otrainstancia
seconvertirenLM.
Podemosmonitorizarunainstancia(V$SESSION)olasdosalavez
(GV$SESSION).
MismaversindeSO,Oracleyarquitectura(3264bits).

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

112

CLUSTERREADYSERVICES(CRS)

CRS es el sw de cluster (clusterware) de Oracle. Soporta nodos de


multituddeSSOO(Sun,HP,Tru64,AIX,Windows,Linux,etc).Todoslos
nodosdebentenerelmismoSOyarquitectura(3264bits)

CRStiene3componentesprincipales,enformadedemonioslanzados
desde el inittab (Unix) o como servicios (Win): 1 como root y 2 oracle
(fatal=sifallareinicianodo,respawn=sifallareiniciaproceso):

Ocssd(oracle,fatal):clustersynchronizationservicesdaemon
Crsd(root,respawn):mantieneladisponibilidaddelosrecursos
Evmd(oracle,respawn):eventloggerdaemon
En/etc/init.destan:init.crs,init.crsd,init.cssd,init.evmd.CRSse
arranca/paracon/etc/init.d/init.crsstart|stop(desderoot).

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

113

ORACLECLUSTERWARE.

Oracle Clusterware, OCW, requiere dos componentes, residentes


ambosenunalmacenamientocompartido:
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(ennmeroimpar).
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
estemultiplexadoparagarantizarunaaltadisponibilidad.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

114

COMPONENTESCLUSTERWARE.PROCESOS.

Cluster Synchronizaton Services (CSS) proceso ocssd. Controla


quienessonmiembrosdelclusteryavisaalosnodoscuandoalguno
deellosabandonaoingresaenelmismo.

ClusterReadyServices(CRS)procesocrsd.Programaprincipalpara
gestionar la alta disponibilidad en un cluster. Gestiona los recursos
delclusterbasndoseenlainformacinalmacenadaenelOCR(por
ejemplo arranque, parada, monitorizacion y otras operaciones). CRS
monitoriza la instancia, el listener... y automticamente reinicia dichos
componentescuandoocurreunfallo(pordefectolointentacincoveces
comomximo).

EventManagement(EVM)procesoevmd.Procesobackgroundque
publicaloseventosquecreaCRS.

Oracle Notification Service (ONS). Servicio para comunicar eventos


FAN(FastApplicationNotification).

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

115

COMPONENTESCLUSTERWARE.PROCESOS.

RACG.ExtensinqueejecutascriptscuandoocurreneventosFAN.

Process Monitor Daemon (OPROCD) proceso oprocd. Proceso


residente en memoria para monitorizar el cluster, su fallo provoca el
rearranquedelnodo.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

116

COMPONENTESCLUSTERWARE.PROCESOS.

ParaasegurarquecadainstanciadelRACobtieneelbloquenecesario
para satisfacer una peticin, las instancias RAC usan los procesos
GlobalCacheService(GCS)yGlobalEnqueueService(GES).

Estosprocesosmantienenregistrosdelosestadosdecadaficherode
datos y cada bloque usando el Global Resource Directory (GRD), el
cualestdistribuidoatravsdetodaslasinstanciasactivas.

Despusdequeunainstanciaaccedeadatos,cualquierotrainstancia
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
leerendisco.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

117

COMPONENTESCLUSTERWARE.PROCESOS.

A lograr el funcionamiento anteriormente mencionado contribuyen el


GlobalResourceDirectory(GRD)ylosprocesosespecficosdeRAC:

LMS,procesoGlobalCacheService
LMD,procesoGlobalEnqueueService
LMON,procesoGlobalEnqueueServiceMonitor
LCK0,procesoInstanceEnqueue

VIPs (Virtual IP Addresses). Cada nodo, adems de su ip esttica,


tieneunaipvirtual,enlaqescucharellistenerdecadanodo,yala
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
activaendichaVIP,paraqelclienteintenteconectarseaotra.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

118

CACHEFUSION

LaprimerainstanciaenarrancarseconvierteenLockMaster(LM).Si
estacae,otraserlanuevaLM(cul?).
INSTA:holaLM,quieroleerelbloque625
LM:nadielotiene,lelodedisco
LMactualizasutabla,yasabeqINSTAtieneelbloque
INSTAleeelbloque
INSTB:holaLM,quieroleerelbloque625
LM:espera,INSTAlotiene,ahoraledigoqteloenve
LMsabeqINSTAeINSTBtienenelbloque
INSTAenvaelbloqueaINSTB
INSTB:holaLM,quieromodificarelbloque625
LMinformaaINSTAqsuversindelbloque625quedainvalidada
LMsabeqINSTBtieneelbloque625(vlido)
LM:haztumodificacin
EstemecanismoconsumeCPUytrficodered.Porotrolado,esms
rpidoleerunbloquedelaredqdeldisco.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

119

INTALARRAC

PuedesmontarRAChastacon4nodoscon1CPU,ohasta2nodoscon
2CPUs,conlalicenciaOracleDatabaseStandardEdition.Siquieresms
hayqpasaralalicenciaOracleDatabaseEnterpriseEdition.

Primer paso: usar OUI (Oracle Universal Installer) para instalar CRS
(Cluster Ready Services). Lo proporciona Oracle 10g para la gestin del
cluster.ConCRSsepuede:

Definirserviciosparadistribuirlacargaentrenodos.
AWRrecogeestadsticassobreestosservicios.
Segundopaso:instalarelsoftwaredelservidordeBDOracleconRAC
(usandoOUI),enunORACLE_HOMEdiferentealdeCRS.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

120

RECUPERACINDELAINSTANCIA

CadainstanciatienesupropioUNDOtablespaceyredologonline.

Siunainstanciacaelaotraseencargaderecuperarla(leeryaplicar
redologonline).

Silasdosinstanciascaen,laprimeraqarranqueharelrecoveryde
todaslastransacciones.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

121

PARADASPORMANTENIMIENTO

Actualizaciones del SO: cero parada (si las aplicaciones soportan RAC,
claro).Seprocedenodoanodo,demodoqelclusternosepara.

ActualizacionesdeOracle:

CriticalPatchUpdate:ceroparada(estoserasparacualquier
parcheqsloactualiceelsw,ynoelDDdelaBD).
Patchsets(10.2.0.2a10.2.0.3)yreleases(10gR1aR2).Hayqparar
todoslosnodos,pueshayqactualizarelDDdelaBD.Enestecasoel
tiempodeparadapuedesermayorqsinRAC,puestoqhayqparar
igualmente,yactualizarelswentodoslosnodos.
DenadasirveRACsinohayredundanciatambinaniveldelservidorde
aplicaciones,ascomodelaredqloconectaalRAC.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

122

FLASHRECOVERYAREA

Laflashrecoveryarea(FRA)serlamismaparatodaslasinstanciasdel
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.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

123

EJEMPLODEINSTALACION
ORACLERAC

4nodosBladeHPG2:
CpuBL20p(2cpushiperthreading)
RAM5Gb
4tarjetasderedgigabit,endosgrupos(seusandosparalasredes
pblicayprivadadelcluster,yhayotrasdosqlesdanalta
disponibilidad).
SANEVA5000deHP
Conexindefibraalcluster.
150GbparalaBDy200GbparaelreadeFlash(incluyebackups)
SOLinuxRedHatAdvancedServer3(vanamigraraRHEL4).Todoslos
nodosdebentenerelmismo.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

124

EJEMPLODEINSTALACION
ORACLERAC

Oracle10gR1(10.1.0.5)yestnmigrandoa10gR2(10.2.0.3)
sga_target=800M
sga_max_size=3G
pga_aggregate_target(pordefecto,paraellos,son228M)
SpfileenASM
Processes=600(hanmedidounmximode1200entotal,unos300
pornodo).
ASM(laversinqsecorrespondeconelKernel)./etc/init.d/oracleasm
listdisk.ASMnecesitaRMANparabackups.VermanualASMbest
practices.InstanciasASMconpfiles(init).
OCRyVotingDiskenrawdevices(/etc/sysconfig/rawdevices).Copiasde
seguridadcondd.
OEMGridControlconunaagenteencadanodo.

AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007

INTRODUCCINAORACLERAC

125

También podría gustarte