Vous êtes sur la page 1sur 109

AdministracinBsicadeOracle10g

Estedocumentoelectrnicopuedeserdescargadolibrey
gratuitamentedesdeInternetparasuejecucine
impresin,sloparafineseducativosy/opersonales,
respetandosuintegridadymanteniendoloscrditosde
losautoresenelpiedepgina.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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

UniversidaddeMurcia

TEMARIO

ArquitecturadelaBasedeDatos

Arranqueyparada

Ficherodecontrol

Redolog

Tablespaces

Segmentosderollback

Usuarios,roles,privilegiosyperfiles

Jobs

Auditora

Copiasdeseguridadyrecuperacin

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

OBJETIVOS

ConocerlaArquitecturaOracle.

SaberarrancarypararunabasededatosOracle.

GestionarlosficherosRedolog.

Gestionarelficherodecontrol.

Gestionartablespaces,incluyendotemporalesyundo.

Gestionarsegmentosderollback.

Gestionarusuarios,roles,privilegiosyperfiles.

Gestionarjobs.

Gestionarlaauditoradelsistemagestordebasededatos.

Realizarcopiasdeseguridadyrecuperacindelabasededatos.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TEMA1
ARQUITECTURADELABASEDEDATOS

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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

SERVIDORORACLE
ServidorOracle:

InstanciaOracle
Basededatos
Oracle

InstanciaOracle:

SystemGlobal
Area(SGA)
Procesos
Background

Basededatos
Oracle:

Ficherosde
Datos
Fichero(s)de
Control
FicherosRedo
Log.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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

EnlamquinadonderesideelservidorOracle,lavariable
ORACLE_SIDidentificaalainstanciaconlaqueestamostrabajando.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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

ARQUITECTURADELABD

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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)

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARQUITECTURADELABD

18

ProgramGlobalArea(PGA)

PILA

PILA

SESION

PGA

PGA
(servidordedicado)

SQL

SHAREDPOOL

SGA
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

(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.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARQUITECTURADELABD

24

ESTRUCTURALGICA
BasedeDatos,Tablespaces,Segmentos,ExtensionesyBloques

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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)

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

3
1

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.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

3
1

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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"

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARQUITECTURADELABD

35

TEMA2
ARRANQUEYPARADADELABASEDE
DATOS

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

36

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

ARRANQUEYPARADADELABD

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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

ARRANQUEYPARADADELABD

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
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

48

COMANDOSHUTDOWN

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

Tiposdeparada.Cadaunadelasopcionesdeparadasecomportade
formadiferenteencuantoaesperaraqueterminentransaccionesy
sesiones,hacercheckpoint,odesmontarycerrarlaBD:

EsperarTransacciones
EsperarSesiones
Checkpoint
CerrarBD
DesmontarBD
Pararinstancia

NORMAL
S
S
S
S
S
S

TRANSACTIONAL
S
N
S
S
S
S

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

IMMEDIATE
N
N
S
S
S
S

ARRANQUEYPARADADELABD

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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

ARRANQUEYPARADADELABD

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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:

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

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
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

ARRANQUEYPARADADELABD

62

TEMA3
FICHERODECONTROL

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

FICHERODECONTROL

63

TEMA3.
FICHERODECONTROL

Ficherodecontrol
Contenidodelficherodecontrol
Multiplexarficherodecontrol
Backupdelficherodecontrol

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

FICHERODECONTROL

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

FICHERODECONTROL

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

FICHERODECONTROL

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.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

FICHERODECONTROL

67

VISTASDELDD

V$CONTROLFILE

V$CONTROLFILE_RECORD_SECTION

V$PARAMETER

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

FICHERODECONTROL

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

FICHERODECONTROL

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

FICHERODECONTROL

70

TEMA4
GESTIONDELREDOLOG

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

71

TEMA4.
GESTIONDELREDOLOG

Ficherosredolog
Funcionamientodelredolog
Aadir/quitargrupos/miembrosderedo
Configuracindelosficherosredolog
Modoarchivelog

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

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.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

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.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

78

VISTASDELDD

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

GESTIONDELREDOLOG

82

TEMA5
TABLESPACES

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

83

TEMA5.
TABLESPACES

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

85

TABLESPACES

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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

TABLESPACES

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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

TABLESPACES

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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

TABLESPACES

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

96

REDIMENSIONARUNTABLESPACE

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

101

VISTASDELDD

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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;

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

TABLESPACES

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

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

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.

AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006

109

Vous aimerez peut-être aussi