Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CursoDBA10g1 Parte1
CursoDBA10g1 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
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.
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
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
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)
Nombredelproceso:DBW0aDBW9yDBWaDBWj(mximo20).
DB_WRITER_PROCESSES.Ndeprocesosarrancados.
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007
ARQUITECTURADELABD
21
Procesosbackground(LGWR,SMON)
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
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007
ARQUITECTURADELABD
24
ESTRUCTURALGICA
BasedeDatos,Tablespaces,Segmentos,ExtensionesyBloques
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007
ARQUITECTURADELABD
25
ARQUITECTURAOFA
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007
ARQUITECTURADELABD
26
USUARIOSADMINISTRADORESDELA
BD
Cuando creamos una BDO se crean automticamente los
usuariosSYSySYSTEM,ambosconelrolDBA.
ARQUITECTURADELABD
27
FICHERODEAUTENTICACIN
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
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).
AdministracindeOracle10g(Parte1)
ARRANQUEYPARADADELABD
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007
46
COMANDOALTERDATABASEY
ENCOLARYSUSPENDERLABD
Permitecambiarelestadodelabasededatos,p.e.deNOMOUNTaMOUNT,o
deMOUNTaOPEN.TambinseutilizaparadejarlaBDenmodoREADONLY.
ALTERDATABASE{MOUNT|OPEN}
ALTERDATABASEOPEN[READWRITE|READONLY]
AdministracindeOracle10g(Parte1)
ARRANQUEYPARADADELABD
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007
47
PARARLABASEDEDATOS
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
AdministracindeOracle10g(Parte1)
ARRANQUEYPARADADELABD
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007
53
DICCIONARIODEDATOS(DD)
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:
ElDDtambintienelasllamadastablasdinmicas,cuyasvistastienenelprefijoV$(como
V$SESSION).Secreanalarrancarlainstanciayresidenenmemoria.Cuandocerramosla
BD(yportantolainstancia),desaparecenyconellassucontenido.
AdministracindeOracle10g(Parte1)
ARRANQUEYPARADADELABD
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007
55
AUTOMATICSTORAGE
MANAGEMENT(ASM)I
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;
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
SeleealmontarlaBD.
Su tamao es fijo, y depende de los parmetros indicados al
crear la BD con CREATE DATABASE; como por ejemplo
MAXLOGFILESyMAXDATAFILES.
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.
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;
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
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
ALTERDATABASEDROPLOGFILEGROUP3;
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
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):
Eltablespacesystemsepuedemanejarlocalmente,desdeOracle9i(en8ino).SielSYSTEM
eslocal,NOsepuedencreartablespacespordiccionario.DesdeOracle9i,pordefecto,los
tablespacessecreancomolocales(sielparmetrocompatible>=9.0),exeptoelSYSTEM.
TablespacesgestionadosatravsdelDD(aextinguir):
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
ParaoptimizarelrendimientoesrecomendablequeUNIFORMSIZEseamltiplo
deSORT_AREA_SIZE.
Nosepuederenombrarunficherotemporal(tempfile).Tampocosepuedenponer
enmodoreadonly.SiempretienenelmodoNOLOGGING(noproducenentradas
deredolog).
TABLESPACES
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007
91
TABLESPACETEMPORALPOR
DEFECTODELABDY
TABLESPACEPORDEFECTO
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.
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.
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
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);
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.
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
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)
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.
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007
INTRODUCCINAORACLERAC
114
COMPONENTESCLUSTERWARE.PROCESOS.
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.
AdministracindeOracle10g(Parte1)
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez20042007
INTRODUCCINAORACLERAC
115
COMPONENTESCLUSTERWARE.PROCESOS.
RACG.ExtensinqueejecutascriptscuandoocurreneventosFAN.
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.
LMS,procesoGlobalCacheService
LMD,procesoGlobalEnqueueService
LMON,procesoGlobalEnqueueServiceMonitor
LCK0,procesoInstanceEnqueue
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