Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CursoDBA9i1 Parte1
CursoDBA9i1 Parte1
Estedocumentoelectrnicopuedeserdescargadolibrey
gratuitamentedesdeInternetparasuejecucine
impresin,sloparafineseducativosy/opersonales,
respetandosuintegridadymanteniendoloscrditosde
losautoresenelpiedepgina.
Quedaportantoprohibidasuventa.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FranciscoFernndezMartnez(pacof@um.es)
JuanLuisSerradillaAmarilla(juanlu@um.es)
UniversidaddeMurcia
TEMARIO
ArquitecturadelaBasedeDatos
Arranqueyparada
Ficherodecontrol
Redolog
Tablespaces
Segmentosderollback
Usuarios,roles,privilegiosyperfiles
Jobs
Auditora
Copiasdeseguridadyrecuperacin
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
OBJETIVOS
ConocerlaArquitecturaOracle.
SaberarrancarypararunabasededatosOracle.
GestionarlosficherosRedolog.
Gestionarelficherodecontrol.
Gestionartablespaces,incluyendotemporalesyundo.
Gestionarsegmentosderollback.
Gestionarusuarios,roles,privilegiosyperfiles.
Gestionarjobs.
Gestionarlaauditoradelsistemagestordebasededatos.
Realizarcopiasdeseguridadyrecuperacindelabasededatos.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TEMA1
ARQUITECTURADELABASEDEDATOS
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TEMA1.
ARQUITECTURADELABD
Servidororacle
Instancia
Basededatos
Memoria:SGAyPGA
Procesos:procesosdeusuario,servidoresybackground
Estructuralgica:tablespaces,segmentos,extensiones,bloques
ArquitecturaOFA
UsuariosadministradoresdelaBD:sysysystem
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
SERVIDORORACLE
ServidorOracle:
InstanciaOracle
BasededatosOracle
InstanciaOracle:
ProcesosBackground
SGA
BasededatosOracle:
FicherosdeDatos
Fichero(s)deControl
FicherosRedoLog.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
SERVIDORORACLE
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
INSTANCIA
LaintegranlosprocesosbackgroundylaSGA
AbreunayslounaBDO,ypermiteaccederaella.
EnlamquinadonderesideelservidorOracle,lavariableORACLE_SID
identificaalainstancia.
RECO
PMON
SMON
SGA
DBW0
LGWR
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARC0
ARQUITECTURADELABD
CONEXINALABD
Procesodeusuario:laejecucindelaaplicacinquepermitealusuarioiniciarla
conexin;porejemplo,sql*plus.
Procesoservidor:secreaenelSBDcuandoelusuarioseconectaalaBD,yesel
querealmenteinteractaconlaBD.
UnaconexindeunprocesodeusuarioalSBDesunasesinenlaBD(puede
habervariasdelmismousuario).Seiniciacuandoelusuariosevalidacontrala
BDyterminacuandoelusuariosedesconecta.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
CONEXINALABD:procesos
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
10
SGA(SystemGlobalArea)
Esunazonadememoriacompartida,quesereservaenelmomentodearrancarlainstancia.Su
tamao es dinmico ( desde la versin 9i) y limitado por el parmetro de inicializacin
SGA_MAX_SIZE.
Est compuesta, fundamentalmente, por tres estructuras de memoria: shared pool, database
buffercacheyredologbuffer.Adems,existendosestructurasdememoriaque,opcionalmente,
puedenestarpresentesenlaSGA:largepoolyjavapool.
Los parmetros del fichero de inicializacin que ms afectan al tamao de la SGA son:
DB_CACHE_SIZE(antiguodb_block_buffer),LOG_BUFFER,SHARED_POOL_SIZE.
LaSGAestformadaporgrnulos(espaciocontiguodememoriavirtual),quesernde4Mpara
SGAsmenoresde128M,yde16Mencasocontrario.LoscomponentesdelaSGA(buffercache,
sharedpool y largepool) variarn sutamao usando dicha unidad de asignacin de espacio. Al
arrancar,seasignanalmenostresgrnulos(unoparalaSGAfijaqueincluyelosredobuffers,
otro para la buffer cache y uno ms de sharedpool); y cada componente seguir reservando
tantosgrnuloscomonecesite.
Desdesql*plus,conshowsga,veremoseltamaodelaSGA.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
11
SGA(SystemGlobalArea)
DATABASE
BUFFERCACHE
(db_cache_size)
LARGEPOOL
(large_pool_size)
JAVAPOOL
(java_pool_size)
SQLAREA
PL/SQL
AREA
LIBRARYCACHE
DICTIONARYCACHE
SHAREDPOOL(shared_pool_size)
REDOLOGBUFFER(log_buffer)
SGA(sga_max_size)
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
12
SGA:SharedPool
SQLAREA
LIBRARYCACHE
ALTERSYSTEMSETSHARED_POOL_SIZE
=64M;
PL/SQL
AREA
DICTIONARYCACHE
SHAREDPOOL(shared_pool_size)
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
13
SGA:SharedPool
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
14
SGA:DatabaseBufferCache
Almacenacopiasdelosbloquesdedatos,extradosdelosficherosdedatos(datafiles);yestgestionado
porunalgoritmoLRU.
Cuando se procesa una query, el proceso servidor busca los bloques de datos en la Database Buffer
Cache; si no los encuentra, los lee de los ficheros de datos y guarda una copia en la Database Buffer
Cache.
SutamaodependeprincipalmentedelparmetroDB_CACHE_SIZE(enbytesredondeandoagrnulos),
ypuedemodificarsedinmicamente(sinsobrepasarSGA_MAX_SIZE):
ALTERSYSTEMSETDB_CACHE_SIZE=96M;
LaDatabaseBufferCacheconstadetrescachsindependientes:
DB_CACHE_SIZE.Dimensionalacachpordefecto,quesiempreexisteycuyotamaonopuedevalercero.
DB_KEEP_CACHE_SIZE. Dimensiona la cach donde se guardarn los bloques de tablas que se usan
frecuentemente.
DB_RECYCLE_CACHE_SIZE.Dimensionalacachquealmacenalosbloquesdelastablasqueseusanpoco
ElusodeunauotracachloindicaremosconelparmetroBUFFER_POOL,delaclausulaSTORAGEdelatabla:keep,recycleodefault.
Se pueden definir cachs adicionales para tablas que no usan el tamao de bloque por defecto de la BD; con los
parmetrosDB_nK_CACHE_SIZE,porejemplo,DB_16K_CACHE_SIZE.UtilalimportaruntablespacedeotraBDcon
otrodb_block_size.Elnuevotamaodebloqueseindicaaniveldetablespace.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
15
SGA:RedoLogBufferCache
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
16
SGA:LargePool
Es un rea de memoria de la SGA, a configurar
slosiseusa:
unentornodeservidorescompartidos(sharedserveroMTS)
recoverymanager(RMAN)
parallelquery
ConMTS,almacenainformacinsobrelassesionesconectadasatravsde
servidorescompartidos:UGA,I/Oyoperacionesdebackupyrecuperacin.
NohaceusodealgoritmoLRUparasugestin.
Sutamaodependedelparmetrolarge_pool_size(enbytes),delficherode
inicializacin,quesepuedemodificardinmicamente(sinqueeltamaototal
delaSGAsobrepaseelparmetroSGA_MAX_SIZE):
ALTERSYSTEMSETLARGE_POOL_SIZE=64M;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
17
SGA:JavaPool
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
18
ProgramGlobalArea(PGA)
Esunazonadememoria,fueradelaSGA,reservadaparacadaprocesodeusuario
queseconectaalaBD.
Se crea cada vez que se arranca un nuevo proceso servidor (o un proceso
background);yseliberacuandoelprocesotermina.
En un entorno de servidores dedicados (dedicated server) contiene: sort area,
informacindesesin(privilegiosdeusuarioyestadsticasdesesin),estadodelos
cursores (etapa del procesamiento de cada sentencia SQL que est usando
actualmentelasesin),pila(stackspace).
Cuandoseutilizanservidorescompartidos,partedeestasestructurassealmacenan
enlaSGA.SiseactivalaLargePoolsealmacenanenella,sinoseguardanenla
SharedPool.
PGA_AGGREGATE_TARGET (>=9i). Valor mnimo 10M. En OLTP RAM*0.80*0.20
(enDSSRAM*0.80*0.50).JustoaWORKAREA_SIZE_POLICY=AUTO,habilitaeluso
deunazonadememoriacompartidaparalasPGA,evitandolanecesidaddeasignar
parmetroscomoSORT_AREA_SIZEoHASH_AREA_SIZE.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
19
ProgramGlobalArea(PGA)
PILA
PILA
SESION
PGA
PGA
(servidordedicado)
SQL
SHAREDPOOL
SGA
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
(servidorcompartido)
SQL
SHAREDPOOL
SESION
LARGEPOOL
SGA
ARQUITECTURADELABD
20
Estructuradeprocesos
Procesosdeusuario:searrancaunocuandounusuariosolicitaunaconexin
alaBD.EstablecelaconexinconlaBDperonointeractadirectamentecon
ella.
Procesosservidores:creadocuandoseestablecelaconexinalaBD.Esel
proceso que interacta con la BD, para cada sesin. Un proceso servidor
puede ser dedicado o compartido. Uno dedicado slo gestiona la peticiones
delasesinqueloinicia;sinembargo,unocompartidogestionalaspeticiones
devariosprocesosdeusuario.
Procesos background: disponibles cuando se arranca una instancia Oracle.
Son los siguientes: DBWR, PMON, SMON, LGWR y CKPT. Opcionalmente
podemos tener: ARCH, RECO, Dispatchers (Dnnn), Shared Servers (Snnn),
Job Queue (Jnnn), etc. El parmetro BACKGROUND_DUMP_DEST, del
ficherodeinicializacin,defineeldirectoriodondeseguardanlosficherosde
trazadelosprocesosbackground.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
21
Procesosbackground(DBWR)
DBWR.Escribelosbloquesdedatos(yrollback)delaSGA(databuffercache)enlos
ficherosdedatos.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.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
22
Procesosbackground(LGWR,SMON)
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
23
Procesosbackground(PMON,CKPT,ARCH)
PMON.Seactivaperidicamente,recuperandolosrecursosdespusdeque
un proceso falle: hace rollback delas transacciones que el usuariotena en
curso,liberabloqueosaniveldetabla/filayotrosrecursosreservadosporel
usuario,yvuelveaarrancardispatchersmuertos(deaddispatchers).
CKPT. Avisa al DBWR cuando sucede un checkpoint y actualiza las
cabecerasdelosficherosdedatosydecontrol(elDBWRvolcarlosbuffers
actualizados a los ficheros de datos). Si los checkpoints suceden muy
frecuentemente puede haber contencin en disco. Si tardan mucho se
alargar el proceso de recovery. Como mucho suceder un checkpoint al
llenarseelredolog.
ARCH.Proceso opcional.Archiva automticamentelosredologonline si se
activa el modo ARCHIVELOG; asegurando que se registran todos los
cambioshechosenlabasededatos.Archivaelredologquesehallenado,
cuandosucedeunlogswitch.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
24
ESTRUCTURALGICA
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
25
ESTRUCTURALGICA
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
26
ARQUITECTURAOFA
OFA(OracleFlexibleArchitecture)proponeunaestructuradedirectoriosquepermite
ubicarfcilmentecualquierficherodelservidordebasededatos;ademsdeagrupar
dichosficherosporcomponentes.
Adems,facilitaelrepartodelosficherosentrediferentesdiscos,optimizandolaE/S.
Oraclerecomiendasepararelsoftwaredelosdatos;yestosltimosrepartirlosentre
varios discos (por ejemplo, separando datos e ndices, incluso tambin temp y
rollback):
/u01/app/oracle(ORACLE_BASE)
$ORACLE_BASE/product/9.2.0.1.0(ORACLE_HOME)
$ORACLE_HOME/bin(Ejecutables)
$ORACLE_HOME/dbs(initSID.ora,orapwSID)
$ORACLE_BASE/admin/SID(ADMIN)
$ORACLE_BASE/admin/SID/pfile(PFILE)
initSID.ora(crearenlaceen$ORACLE_HOME/dbs)
$ORACLE_BASE/admin/SID/bdump(BDUMP)
alertSID.orayficherosdetrazadeprocesosbackground
/u02/oradata/SID(FicherosdelaBD:*.dbf,*.ctl,*.log)
/u03/oradata/SID(FicherosdelaBD:*.dbf,*.ctl,*.log)
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
27
USUARIOSADMINISTRADORESDELABD
Cuando creamos una BDO se crean automticamente los usuarios SYS y
SYSTEM,ambosconelrolDBA.
ElSYSTEM,conclaveinicialmanager,eselDBAporexcelencia.Seusara
para las tareas administrativas habituales: alta de usuarios, creacin de
tablespaces,etc.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
28
FICHERODEAUTENTICACIN
ActivaremoselparmetroREMOTE_LOGIN_PASSWORDFILEdelinit:
EXCLUSIVE.PermitedarelprivilegioSYSDBAaotrosusuarios(ademsdelSYS).Slouna
instanciausaelfichero.
SHARED.ElnicousuarioreconocidoporleficheroeselSYS.Elficheropuedesercompartido
porvariasinstancias.
Incluiremoselusuarioenelficherodeclaves(paraelSYSnohayquehacerlo):
GRANT SYSDBA TO usuario;
Nota: en V$PWFILE_USERS estn los usuarios con SYSDBA y/o SYSOPER.
ConectaremosalaBD(elusuarioOraclequeseconectasiempreeselSYS):
CONNECT usuario/clave AS SYSDBA
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
29
VISTASDELDD
V$DATABASE(Basededatos).
V$INSTANCE(Instancia).
V$SGA(SGA).
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).
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
30
PRACTICASTEMA1
1.1.Comprobarlaasignacindevariablesdeentornonecesariasparaconectarnosala
BD:
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.ComprobarvaloresdeparmetrosdelinitrelacionadosconeltamaodelaSGA:
select*fromv$sga;
select*fromv$sgastat;
select*fromv$sgastatwherenamein('librarycache','dictionarycache','sql
area','buffer_cache','log_buffer');
showparametershared_pool_size
showparameterdb_cache_size
showparameterdb_block_size
showparameterlog_buffer
showparameterlarge_pool_size
showparameterjava_pool_size
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
31
PRACTICASTEMA1.
1.5.ComprobarficherosquecomponenlaBDyubicarlosenlaestructuraOFA:
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_filesorderbytablespace_name,
file_name;
selecttablespace_name,segment_type,count(*)segmentosfromdba_segmentsgroupby
tablespace_name,segment_type;
selecttablespace_name,segment_type,count(*)extensionesfromdba_extentsgroupby
tablespace_name,segment_type;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
32
PRACTICASTEMA1.
1.7.Consultarinformacinsobrelabasededatos(v$database)ylainstancia
(v$instance).
selectname,created,log_mode,checkpoint_change#,open_mode
fromv$database;
selectinstance_name,host_name,version,startup_time,
status,archiver,logins,database_statusfromv$instance;
1.8.Localizarelprocesoservidorasociadoamisesin(v$processyv$session).Es
unservidordedicadoocompartido?
selecta.server,a.usernamedbuser,a.programuser_program,b.spidserver_process,b.program
server_program
fromv$sessiona,v$processb
wherea.username=USERanda.PADDR=b.ADDR;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
33
PRACTICASTEMA1.
1.9.CuantoocupalaDictionarycacheylaLibrarycacheentuBD?(v$sgastat)
select*fromv$sgastatwherenamelike'%cache';
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/orapwCURSO01password=miclaveentries=5
remote_login_passwordfile=EXCLUSIVE"
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
34
TEMA2
ARRANQUEYPARADADELABASEDEDATOS
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
35
TEMA2.
ARRANQUEYPARADADELABD
Ficherosdeinicializacin:init.orayspfile.ora
CreacindelaBD
OMF(OracleManagedFiles)
Arranquedelabasededatos
Comandostartup
Comandoalterdatabase
Pararlabasededatos
FicheroalertSID.Log
Trazasdelosprocesosbackground
Trazasdelosprocesosdeusuario
Diccionariodedatos
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
36
FICHEROSDEPARMETROSDE
INICIALIZACINI
Paraarrancarlainstancia,elservidorOracletienequeleerelficherodeparmetrosde
inicializacin(spfileoinit),cuyaubicacinpredeterminadaes$ORACLE_HOME/dbs.
Elficherodeparmetrosdeinicializacinpuedeserdedostipos:
Init:setratadeunficherodetexto,editable,cuyonombresigueelpatrn
init$ORACLE_SID.ora.
Spfile:esunficherobinario,noeditableperovisualizable,cuyonombresigueel
patrnspfile$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.Parahacerelcambio
soloenmemoria,especificarMEMORY.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
37
FICHEROSDEPARMETROSDE
INICIALIZACINII
Haydostiposdeparmetros:
Explcitos:losqueseindicanenelficherodeparmetros.
Implcitos:elresto,quetomarnunvalorpordefecto.
Laformadeindicarvaloralosparmetrosesparametro=valor.
Elsmbolo#indicaelcomienzodeuncomentario,pudiendoestaralprincipiooen
mediodelalnea.
Enelinit.ora,elparmetroifilepermiteincluirotrosficherosconparmetros.
Unalistadevaloresseindicarentreparntesis,separandolosvaloresporcomas.
Paraindicarunvalordetipocadenadecaractereshayqueencerrarloentrecomillas
simples.
SiusamosOFA,laubicacintpicaparaelinit.oraes
$ORACLE_BASE/admin/$ORACLE_SID/pfile.Despuscreamosunenlaceen
$ORACLE_HOME/dbs(ubicacinpordefecto).
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
38
EJEMPLODEINIT.ORA
db_name=CURSO98 # Nombre de la BD.
log_checkpoint_interval = 10000 # checkpoint
max_dump_file_size = 10240
# tamo mximo fichero traza de 5M
control_files = (/u02/oradata/CURSO98/ora_control1,
/u03/oradata/CURSO98/ora_control2)
compatible = 9.2.0
undo_management = auto
# Gestin automtica de Rollback
undo_tablespace = undo_rbs1
# Tablespace de undo
background_dump_dest = /u01/app/oracle/admin/CURSO98/bdump
core_dump_dest = /u01/app/oracle/admin/CURSO98/cdump
user_dump_dest = /u01/app/oracle/admin/CURSO98/udump
db_cache_size = 1M
# Tamao de la cach de datos
sga_max_size = 30M
# Tamao mximo de la SGA
shared_pool_size = 8M
# Tamao de la shared pool
large_pool_size = 0
java_pool_size = 0
log_buffer = 32768
# Tamao, en bytes, de la cache de redo
processes = 10
# N mx. de procesos
remote_login_passwordfile=EXCLUSIVE # Fichero de claves
Nota.SetratadeunficherodetextoquehayquemantenermanualmenteconuneditorASCII(comoelvioel
notepad).
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
39
EJEMPLODESPFILE.ORA
*.background_dump_dest='/u01/app/oracle/admin/CURSO98/bdump'
*.compatible='9.2.0'
*.control_files='/u02/oradata/CURSO98/ora_control1','/u03/orad
ata/CURSO98/ora_control2'
*.core_dump_dest='/u01/app/oracle/admin/CURSO98/cdump'
*.db_cache_size=1M# Tamae la cache datos
*.db_name='CURSO98'# Nombre de la BD.
*.java_pool_size=0
*.large_pool_size=0
*.log_buffer=32768# Tamaen bytes, de la cache de redo
*.log_checkpoint_interval=10000# checkpoint
*.max_dump_file_size='10240'# tammo fichero traza
*.processes=10# N m de procesos
*.remote_login_passwordfile='EXCLUSIVE'# Fichero de claves
*.sga_max_size=30M# Tamamo de la SGA
*.shared_pool_size=8M# Tamae la shared pool
*.user_dump_dest='/u01/app/oracle/admin/CURSO98/udump'
Nota.Esunficherobinarioynosepuedeeditar.Enelejemploseveunspfilegeneradoapartirdelinit
delejemploanterior(alserbinario,puedenversecaracteresextraos).
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
40
CREARLABASEDEDATOS
ParacrearunaBDnecesitamos:
ConectarnosalservidorOraclecomoSYSASSYSDBA,autenticndonoscontraelS.O.o
usandounficherodeclaves.
SuficientememoriaparaarrancarlainstanciayespacioendiscoparacrearlaBD.
ParaubicarlosficherosquecomponenlaBD:
Guardaremos,almenos,doscopiasdelficherodecontrol,endiscosseparados.
Multiplexaremoslosredologendiscosdiferentes(separadosdelrestodelaBD).
Separaremoslosficherosdedatosqueprovoquencontencinendisco;porejemplo:datos,
ndices,system(DD),tempyrollback.
LaBDlapodemoscrearconelasistentegrfico(enLinuxdbca)oconelcomando
CREATEDATABASE:
Crearemosunficheroinit.ora,ysiqueremos,unspfile.ora.
ArrancaremoslasinstanciaconSTARTUPNOMOUNT.
CrearemoslaBDconelcomandoCREATEDATABASE.
Ejecutaremoslosscriptscatalog.sqlycatproc.sqlqueestnen
$ORACLE_HOME/rdbms/admin.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
41
EJEMPLODECREACIONDEBASEDE
DATOS
connect/assysdba
startupnomount
CREATEDATABASE"CURSO98"
maxdatafiles254
maxinstances1
maxlogfiles32
charactersetWE8ISO8859P15
DATAFILE'/u02/oradata/CURSO98/system01.dbf'SIZE260M
AUTOEXTENDONNEXT10M
EXTENTMANAGEMENTLOCAL
UNDOTABLESPACEUNDO_RBS1
DATAFILE'/u03/oradata/CURSO98/rbs01.dbf'SIZE10M
DEFAULTTEMPORARYTABLESPACETEMP
TEMPFILE'/u03/oradata/CURSO98/temp01.dbf'SIZE10M
EXTENTMANAGEMENTLOCALUNIFORMSIZE64K
logfile'/u04/oradata/CURSO98/redo01.log'SIZE3M,
'/u04/oradata/CURSO98/redo02.log'SIZE3M,
'/u04/oradata/CURSO98/redo03.log'SIZE3M;
rem***CREACIONDELASVISTASDELDD***
@$ORACLE_HOME/rdbms/admin/catalog.sql
@$ORACLE_HOME/rdbms/admin/catproc.sql
@$ORACLE_HOME/rdbms/admin/catexp.sql
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
42
ORACLEMANAGEDFILES(OMF)
OMFpermitequeOracleseencarguedelacreacindelosficherosquecomponenlaBD,
simplificandolaadministracindelamisma.
OMFseactivamediantedosparmetrosdeinicializacin:
DB_CREATE_FILE_DEST.Defineeldirectoriodondeseubicarnlosficheros.
DB_CREATE_ONLINE_LOG_DEST_N.Establecelosdirectoriosdondeseguardarnlosficherosde
controlyredolog;dondeNpuedevalerde1a5.
Nota.Sepuedenactivarambosparmetrososlounoellos.
EjemploparacrearunaBD,usandoOMF,separandolosficherosredologydecontroldelresto:
Parmetrosdeinicializacin:
DB_CREATE_FILE_DEST='/u02/oradata/CURSO98'
DB_CREATE_ONLINE_LOG_DEST_1='/u03/oradata/CURSO98'
DB_CREATE_ONLINE_LOG_DEST_2='/u04/oradata/CURSO98'
CreacindelaBD:
CREATEDATABASECURSO98
charactersetWE8ISO8859P15
UNDOTABLESPACEUNDO_RBS
DEFAULTTEMPORARYTABLESPACETEMP;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
43
ARRANCARLABASEDEDATOS
Cuando arrancamos una BDO, pasa por varios estados hasta que finalmente queda
accesiblealosusuarios:nomount,mountyopen.
En el primer estado (nomount) se arranca la instancia: lectura del fichero de
parmetros,creacindelaSGA,arranquedelosprocesosbackgroundyaperturadel
ficheroalert$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, y finalmente
init$ORACLE_SID.ora.
SeguidamentelaBDsemonta(mount)abriendoelficherodecontrolyobteniendode
llosnombresdelosficherosquelacomponen:datafilesyredolog.
FinalmenteseabrelaBD(open),procediendoalaaperturadelosficherosdedatos
(datafiles)ylosficherosredolog.Elservidororaclecompruebalaconsistenciadela
base de datos, y si es necesario el proceso SMON inicia la recuperacin de la
instancia.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
44
COMANDOSTARTUP
ArrancalainstanciayabrelaBD.Permitepararelprocesodearranquedela
BDencualquieradesusfases(NOMOUNT,MOUNT).
STARTUP(abrelabasededatosconelficherodeparmetrospordefecto).
STARTUPPFILE=/home/CURSO/curso30/miinit.ora
STARTUPNOMOUNT(paracrearlabasededatos).
STARTUPMOUNT(pararenombrardatafiles,activarARCHIVELOGohacer
unarecuperacincompletadelaBD).
STARTUPRESTRICT(slopermitelaconexindeusuariosconelprivilegio
RESTRICTEDSESION).
STARTUPFORCE(haceSHUTDOWNABORTyarrancalaBD).
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
45
COMANDOALTERDATABASE
Permitecambiarelestadodelabasededatos.PorejemplodeNOMOUNTa
MOUNT,odeMOUNTaOPEN.TambinseutilizaparadejarlaBDenmodo
READONLY.
ALTERDATABASE{MOUNT|OPEN}
ALTERDATABASEOPEN[READWRITE|READONLY]
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
46
PARARLABASEDEDATOS
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
47
COMANDOSHUTDOWN
Sintaxis:
SHUTDOWN[NORMAL|TRANSACTIONAL|IMMEDIATE|ABORT]
Tiposdeparada.Cadaunadelasopcionesdeparadasecomportadeformadiferente
encuantoaesperaraqueterminentransaccionesysesiones;odesmontarycerrarla
BD:
EsperarTransacciones
EsperarSesiones
Checkpoint
DesmontarBD
CerrarBD
Pararinstancia
NORMAL
S
S
S
S
S
S
TRANSACTIONAL
S
N
S
S
S
S
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
IMMEDIATE
N
N
S
S
S
S
ARRANQUEYPARADADELABD
ABORT
N
N
N
N
N
S
48
FICHEROalert.log
EselficherodelogdelaBDylaprimerareferenciaparaelDBAeneldaadadela
administracindelamisma.
Por defecto est en $ORACLE_HOME/rdbms/log; o en el directorio que indique el
parmetroBACKGROUND_DUMP_DESTdelinit. SiusamosOFA,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).
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
49
EJEMPLODEalert.log
Tue Oct 26 13:11:08 2004
Starting ORACLE instance (normal)
...
Starting up ORACLE RDBMS Version:
9.2.0.1.0.
System parameters with non-default values:
processes
= 10
shared_pool_size
= 8388608
sga_max_size
= 34148352
...
db_cache_size
= 4194304
log_buffer
= 32768
undo_management
= AUTO
undo_tablespace
= undo_rbs1
...
db_name
= CURSO98
PMON started with pid=2
DBW0 started with pid=3
LGWR started with pid=4
CKPT started with pid=5
SMON started with pid=6
RECO started with pid=7
Nota.Enelejemplodearribasepuedeverelarranquedelainstancia,losparmetrosasignados,losprocesosarrancados,comosemontala
BD,larecuperacindelainstancia,laactivacindelossegmentosderollbackautomticos(undo),ycmofinalmenteseabrelaBDyse
empiezanausarlosficheroredolog.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
50
FICHEROSDETRAZADELOSPROCESOS
BACKGROUND
Registran errores producidos en los procesos background de la 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.SiseutilizalaarquitecturaOFAparaubicarlos
ficheros Oracle, una ubicacin tpica para estos ficheros de traza es
$ORACLE_BASE/admin/$ORACLE_SID/bdump.
Su nombre sigue el patrn ${ORACLE_SID}_nombreproceso_pid.trc; por
ejemplo, curso30_smon_16432.trc (los nombres de los ficheros de traza en
Unix/Linuxestnsiempreenminsculas).
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
51
FICHEROSDETRAZADELOSPROCESOS
DEUSUARIO
RecogenestadsticasdeseguimientodesentenciasSQLoerroresenlassesionesde
usuario.
Las trazas de usuario se generan en el directorio que indique el parmetro
USER_DUMP_DEST(pordefecto,$ORACLE_HOME/rdbms/log).SiusamosOFA,una
ubicacintpicaes$ORACLE_BASE/admin/$ORACLE_SID/udump.
SutamaoestlimitadoporelparmetroMAX_DUMP_FILE_SIZE.
Sus nombres siguen el patrn ${ORACLE_SID}_ora_pid.trc; por ejemplo,
curso98_ora_23654.trc(siempreenminsculas).
Pueden ser muy tiles para el ajuste de sentencias SQL. En este caso se pueden
generarvoluntariamenteactivandolatraza:
AniveldesesinconALTERSESSIONSETSQL_TRACE=TRUE;,
Desde una sesin del DBA con dbms_system.set_sql_trace_in_session(sid,true), donde
SID es el n de sesion oracle (V$SESSION, V$PROCESS). Se desactiva de igual forma
(indicandofalseenlugardetrue).
Aniveldeinstancia,conelparmetroSQL_TRACE=TRUEdelinit.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
52
DICCIONARIODEDATOS(DD)
ElDDcontieneinformacinsobre:ladefinicindetodoslosobjetosdelaBD(tablas,
vistas,ndices, sinnimos,secuencias,procedimientos,funciones,paquetes,triggers,
etc), el espacio ocupado por cada objeto, condiciones de integridad, usuarios,
privilegios,roles,ascomoauditoradelsistema.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
53
VISTASDELDICCIONARIODEDATOS
ElDDsemodificacadavezquelanzamosunasentenciaDDL.
LasvistasestticasqueformanpartedelDDsondetrestipos:dba,allyuser.Cada
unadeellastendrunprefijoasociadoquelaubicaenunodedichostipos.
DBA:todoslosobjetosdelaBD.
ALL:todoslosobjetosaccesiblesporelusuarioactual.
USER:todoslosobjetospropiedaddelusuarioactual.
La vista DICTIONARY contiene una lista de todas las vistas del DD; y en
DICT_COLUMNStenemoseldetalledelascolumnasdecadaunadeellas.
EjemplosdevistasdelDD:
ElDDtambintienelasllamadastablasdinmicas,cuyasvistastienenelprefijoV$(comoV$SESSION).Se
crean al arrancar la instancia y residen en memoria. Cuando cerramos la BD (y por tanto la instancia),
desaparecenyconellassucontenido.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
54
VISTASDELDD
V$INSTANCE
V$DATABASE
V$SESSION
V$PROCESS
V$PARAMETER
V$PARAMETER2
V$SYSTEM_PARAMETER
V$SYSTEM_PARAMETER2
DICTIONARY
DICT_COLUMNS
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
55
PRACTICASTEMA2.
2.1.Ficheroinit.ora.ArranqueyparadadelaBD.
Localizarelficheroinit.ora(yspfilesiexiste)denuestraBD:
Anotarelvalordelosparmetros:db_block_size,shared_pool_size,db_cache_size,log_buffer,processes.
Crearfichero/home/CURSO/cursoxy/init01xy.ora,copiadelinitCURSOxy.ora,ymodificarprocesses=9.
ArrancarlaBDycomprobarvalordeparmetros,porqunohatomadoelnuevovalor?.
PararlaBDyarrancarconelinit01xy.ora.Comprobarparmetroprocesses.Abrirotraconexindesqlplusy
verquocurre.
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=9>>init01xy.ora
tailinit01xy.ora
STARTUP
showparameterprocesses
SHUTDOWNimmediate
STARTUPpfile=init01xy.ora
showparameterprocesses
PararlaBDdeformanormal,estandoconectadoalgnusuarioyverquocurre.Yqusucedecuandotodos
losusuariossedesconectan.
SHUTDOWN
SHUTDOWNIMMEDIATE
RepetirlaparadadelaBD,estandoconectadoalgnusuario,deformaquenoespere:
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
56
PRACTICASTEMA2.
2.2.ArranquedelaBD(STARTUP).ComprobarlasdiferentesfasesenelarranquedelaBD.
Arrancarslolainstancia(NOMOUNT)yconsultaralgnparmetro.QuocurrealaccederaV$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;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
57
PRACTICASTEMA2.
2.4. Impedir las conexiones de usuarios, de modo que el DBA s pueda conectarse. Intenta
conectartecomoscott/tiger.Volverapermitirconexionesdeusuarios.
STARTUPRESTRICT(silaBDestparada)
ALTERSYSTEMENABLERESTRICTEDSESSION;(silaBDestabaarrancada)
ALTERSYSTEMDISABLERESTRICTEDSESSION;
2.5.ForzaruncheckpointyhaceruninsertenlatablaSCOTT.DEPT.Inmediatamentedespus
hacerSHUTDOWNABORT.ArrancarycomprobarSCOTT.DEPT.Volverarepetirelinsert,
haciendo commit antes del SHUTDOWN ABORT; y comprueba el contenido de
SCOTT.DEPT.
ALTERSYSTEMCHECKPOINT;
insertintoscott.deptvalues(99,'FORMACION','MURCIA');
SHUTDOWNABORT
STARTUP
SELECT*FROMSCOTT.DEPT;
insertintoscott.deptvalues(99,'FORMACION','MURCIA');
COMMIT;
SHUTDOWNABORT
STARTUP
SELECT*FROMSCOTT.DEPT;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
58
PRACTICASTEMA2.
2.6.ConctatecomoSCOTTyhazupdatesobreDEPT(sinhacercommit).Desdeotrasesin,
cierralaBDconSHUTDOWNTRANSACTIONAL.Qupasaalhacercommitenlasesinde
SCOTT?
CONNECTSCOTT/TIGER
SHUTDOWNTRANSACTIONAL(sesindelsys)
updatedeptsetdeptno=88wheredeptno=99;(sesindescott)
COMMIT;(sesindescott)
2.7.Conctatecomousuarioscott/tiger.ActivalatrazayhazunaqueryconunajoinentreEMP
yDEPT(selecta.ename,b.dnamefromempa,deptbwherea.deptno=b.deptno;).Desactivala
trazayanalizaelficheroquesehageneradoconelcomandotkprof(esuncomandounix,no
deSQL).
CONNECTSCOTT/TIGER
ALTERSESSIONSETSQL_TRACE=TRUE;
tkprofnombre_fichero_traza.trcsalida_traza.txtexplain=scott/tigersys=no(desdefueraSQL)
catsalida_traza.txt
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
59
TEMA3
FICHERODECONTROL
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
60
TEMA3.
FICHERODECONTROL
Ficherodecontrol
Contenidodelficherodecontrol
Multiplexarficherodecontrol
Backupdelficherodecontrol
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
61
FICHERODECONTROL
Setratadeunficherobinario,sinelcualnoesposiblearrancarlaBD.Porello
esconvenientemantenervariascopiasdelmismo,endiferentesdiscos.
SeleealmontarlaBD.
Sutamaoesfijo,ydependedelosparmetrosindicadosalcrearlaBDcon
CREATEDATABASE;comoporejemploMAXLOGFILESyMAXDATAFILES.
Elficherodecontrolcontieneinformacincomo:nombredelaBD,fechade
creacindelaBD,nombresdelostablespaces,nombreylocalizacindelos
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.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
62
AADIRCOPIASYBACKUPDELFICHERO
DECONTROL
Paraaadirunacopiadelficherodecontrol:
SeparalaBDconSHUTDOWNNORMAL.
Sehaceunacopiafsicadelficherodecontrol,aniveldelsistemaoperativo.EnUnixconel
comandocp.
Se incluye la nueva copia del fichero de control en el init.ora (o spfile); en el parmetro
CONTROL_FILES.
ArrancarlaBDconSTARTUP.
Se recomienda sacar una copia de seguridad del fichero de control cada vez que
cambielaestructurafsicadelaBD:
ALTERDATABASEBACKUPCONTROLFILETOTRACE;
Deestaformasegeneran,enunficherodetraza,lassentenciassqlnecesariasparavolver
acrearelficherodecontrol.
ALTERDATABASEBACKUPCONTROLFILETO
/u02/oradata/CURSO98/ora_control01.bak;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
63
ALTERDATABASEBACKUPCONTROLFILE
TOTRACE
STARTUPNOMOUNT
CREATE CONTROLFILE REUSE DATABASE "CURSO98" NORESETLOGS
NOARCHIVELOG
MAXLOGFILES32
MAXLOGMEMBERS2
MAXDATAFILES254
MAXINSTANCES1
MAXLOGHISTORY843
LOGFILE
GROUP1'/home/u04/oradata/CURSO98/redo01.log'SIZE500K,
GROUP2'/home/u04/oradata/CURSO98/redo02.log'SIZE500K,
GROUP3'/home/u04/oradata/CURSO98/redo03.log'SIZE500K
DATAFILE
'/home/u02/oradata/CURSO98/system01.dbf',
'/home/u03/oradata/CURSO98/rbs01.dbf',
'/home/u03/oradata/CURSO98/temp01.dbf'
CHARACTERSETWE8ISO8859P15;
ALTERDATABASEOPEN;
Nota:sihubiesequeindicarlaopcinRESETLOGS,seperderelcontenidodelosficherosredolog.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
64
VISTASDELDD
V$CONTROLFILE
V$CONTROLFILE_RECORD_SECTION
V$PARAMETER
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
65
PRACTICASTEMA3
3.1.LocalizarelficherodecontroldesdeelSOydesdelaBD.
lslt/u0?/oradata/$ORACLE_SID/*.ctl
lsl/u0?/oradata/$ORACLE_SID/*control*
select*fromv$controlfile;
3.2.ConsultarlainformacindelaBDrelativaalcontenidodelficherodecontrol.
Forzar un checkpoint y volver a consultar. Consultar las secciones que
contieneelficherodecontrolysuestadodeuso.
select*fromv$database;
altersystemcheckpoint;
select*fromv$controlfile_record_section;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
66
PRACTICASTEMA3
3.3.AadeunacopiaalficherodecontroldelaBDen"/u04/oradata/$ORACLE_SID".Crea
uninitxx02.oraeincluyeelnuevofichero.ArrancalaBDconelnuevoinitycomprueba
quehatomadolanuevacopiadelficherodecontrol.
shutdown immediate
cp /u02/oradata/$ORACLE_SID/ora_control1
/u04/oradata/$ORACLE_SID/ora_control3
cp $PFILE/init$ORACLE_SID.ora initxx02.ora
vi initxx02.ora
startup pfile=init0102.ora
select * from v$controlfile;
3.4.Sacarunacopiadeseguridaddelficherodecontrol,tantoenunficherodetraza,como
unnuevoficherodecontrol.
alterdatabasebackupcontrolfiletotrace;
lslt$UDUMP|head2
alterdatabasebackupcontrolfileto
'/u02/oradata/CURSOxx/ora_control1.bak';
lslt/u02/oradata/$ORACLE_SID/ora_control1.bak
select*fromv$controlfile;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
67
TEMA4
GESTIONDELREDOLOG
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
68
TEMA4.
GESTIONDELREDOLOG
Ficherosredolog
Funcionamientodelredolog
Aadir/quitargrupos/miembrosderedo
Configuracindelosficherosredolog
Modoarchivelog
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
69
FICHEROSREDOLOG
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
70
FUNCIONAMIENTODELREDOLOG
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
71
AADIRGRUPOSYMIEMBROSDEREDO
AadirgruposalRedoLogOnline:
ALTERDATABASEADDLOGFILEGROUP3
(/u04/oradata/CURSO98/redo03a.log,
/u03/oradata/CURSO98/redo03b.log)
SIZE1M;
AadirmiembrosRedoLogOnline:
ALTERDATABASEADDLOGFILEMEMBER
/u03/oradata/CURSO98/redo01b.logTOGROUP1,
/u03/oradata/CURSO98/redo02b.logTOGROUP2;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
72
ELIMINARGRUPOSYMIEMBROSDEREDO
Eliminar grupos del Redo Log Online (por ejemplo si he creado otros ms
grandes):
ALTERDATABASEDROPLOGFILEGROUP3;
Nopuedehabermenosde2grupos;nosepuedeborrarelgrupoactivo;al
borrar un grupo no se eliminan los ficheros del sistema operativo (a no ser
queseuseOMF).
ElminarmiembrosRedoLogOnline:
ALTERDATABASEDROPLOGFILEMEMBER
/u03/oradata/CURSO98/redo03b.log;
Nosepuedeborrarelprimermiembrodeungrupo;tampocounmiembrodel
grupoencurso;silaBDestenmodoARCHIVELOGnosepuedeborrarun
miembrocuyogruponohasidoarchivado;cuandoborramosunmiembrono
seeliminaelficherocorrespondientedelsistemaoperativo.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
73
CONFIGURACINDELOSFICHEROS
REDOLOG
Vaciado(porejemplositodoslosmiembrosdeungrupoestncorruptos):
ALTERDATABASECLEAR[UNARCHIVED]LOGFILE
/u02/oradata/CURSO98/redo02a.log;
Esequivalenteaaadiryborrarunficheroredolog.
Moverorenombrar(ojo!laBDdebeestarslomontada):
!mv/u04/oradata/CURSO98/redo03a.log
/u03/oradata/CURSO98/redo3a.log
ALTERDATABASERENAMEFILE/u04/oradata/CURSO98/redo03a.logTO
/u03/oradata/CURSO98/redo3a.log;
ConfiguracindelRedoLogOnline:
ElnmerodegruposRedoLogOnlinenecesarios,comomnimoserdos.Esprobable
quesenecesitealguno msdebidoa que, al llenarse circularmente,loscheckpointsno
completen.Laconfiguracindebesersimtrica:mismonmerodemiembrosparatodos
losgrupos.
Cadamiembrodeungrupodebeestarenundiscodiferente.Ademshayquesepararen
diferentes discos los Redo Log Archivados de los Redo Log Online, para reducir la
contencinentreelLGWRyelARCH.ElRedoLogOnlinetambindeberaestarenun
discodistintoalosficherosdedatos,parareducirlacontencinentreLGWRyDBWR.
EnlasvistasV$LOG,V$LOG_HISTORYyV$LOGFILEestnlosdetallesdelredo.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
74
MODOARCHIVELOG
Pordefecto,laBDsecreaenmodoNOARCHIVELOG(conCREATEDATABASE).Si
activamoselmodoARCHIVELOGseirnarchivandolosficherosredologconformese
llenan(cadavezqueocurreunlogswitch).
LOG_ARCHIVE_START=TRUE,activaarchivadoautomtico.ElprocesoARCHirarchivandoel
grupo redo log lleno, despus de cada log switch, en el directorio indicado por el parmetro
LOG_ARCHIVE_DEST(pordefecto$ORACLE_HOME/dbs/arch).
Nota.Sepuedeverelestadodelarchivadoconelcomandoarchiveloglistdelsqlplus.
Cadavezquesearchivaunredolog,enelficherodecontrolseguardaelnombredel
redologarchivado,nmerodesecuencia,ynmerosSCNmsaltoymsbajo.
Elredologquesehallenadonopuedereutilizarsehastaqueocurrauncheckpointy
hayasidocopiadoporelprocesoARCH.
Poner BD en modo ARCHIVELOG: SHUTDOWN, backup (por seguridad), configurar
archivado automtico en el INIT, STARTUP MOUNT, activar archivado (ALTER
DATABASEARCHIVELOG;),abrirBD(ALTERDATABASEOPEN;),pararBD,yhacer
backup(pueshacambiadoelficherodecontrolylacopiaanterioryanonossirve).
Msinformacinenhttp://cursos.atica.um.es/oradoc92/server.920/a96521/archredo.htm#14904
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
75
VISTASDELDD
V$LOG
V$LOG_HISTORY
V$LOGFILE
V$DATABASE
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
76
PRACTICASTEMA4
4.1.LocalizarlosficherosredologdelaBD.Cuntosgruposhayycuntosmiembrostiene
cadagrupo?estncorrectamentedistribuidos?
lslt/u0?/oradata/$ORACLE_SID/*.log
lslt/u0?/oradata/$ORACLE_SID/*redo*
select*fromv$logfile;
4.2.Comprobarelficheroredologactivo.Quocurrealforzarun"logswitch"?yalforzarun
checkpoint?
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.
alter database add logfile member
'/u03/oradata/CURSOxx/redo11.log' to group 1,
'/u03/oradata/CURSOxx/redo12.log' to group 2,
'/u03/oradata/CURSOxx/redo13.log' to group 3;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
77
PRACTICASTEMA4
4.4.
('/u03/oradata/CURSOxx/redo04.log',
'/u04/oradata/CURSOxx/redo14.log') size 1M;
alter database add logfile group 5
('/u03/oradata/CURSOxx/redo05.log',
'/u04/oradata/CURSOxx/redo15.log') size 1M;
alter database add logfile group 6
('/u03/oradata/CURSOxx/redo06.log',
'/u04/oradata/CURSOxx/redo16.log') size 1M;
4.5.Eliminalosmiembrosdelgrupo1,deunoenuno.Quocurrealeliminarelltimo?.Borrarlos
grupos1,2y3.Ojoynoborrarelredologactivo!!!
'/u04/oradata/CURSO98/redo01.log';
alter database drop logfile member
'/u03/oradata/CURSO98/redo11.log';
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
78
PRACTICASTEMA4
4.6. Cambiar el nombre de los miembros de redo de los grupos 4, 5 y 6; a redo1a.log, redo1b.log,
redo2a.log,redo2b.log,redo3a.log,redo3b.log.
shutdown immediate
OJO,laBDdebeestarslomontada!!!
startup mount
mv /u03/oradata/CURSO98/redo01.log /u03/oradata/CURSO98/redo1a.log
mv /u04/oradata/CURSO98/redo11.log /u04/oradata/CURSO98/redo1b.log
mv /u03/oradata/CURSO98/redo02.log /u03/oradata/CURSO98/redo2a.log
mv /u04/oradata/CURSO98/redo12.log /u04/oradata/CURSO98/redo2b.log
mv /u03/oradata/CURSO98/redo03.log /u03/oradata/CURSO98/redo3a.log
mv /u04/oradata/CURSO98/redo13.log /u04/oradata/CURSO98/redo3b.log
alter database rename file '/u03/oradata/CURSO98/redo01.log' to
'/u03/oradata/CURSO98/redo1a.log';
alter database rename file '/u04/oradata/CURSO98/redo11.log' to
'/u04/oradata/CURSO98/redo1b.log';
alter database rename file '/u03/oradata/CURSO98/redo02.log' to
'/u03/oradata/CURSO98/redo2a.log';
alter database rename file '/u04/oradata/CURSO98/redo12.log' to
'/u04/oradata/CURSO98/redo2b.log';
alter database rename file '/u03/oradata/CURSO98/redo03.log' to
'/u03/oradata/CURSO98/redo3a.log';
alter database rename file '/u04/oradata/CURSO98/redo13.log' to
'/u04/oradata/CURSO98/redo3b.log';
alter database open;
select * from v$logfile;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
79
TEMA5
TABLESPACES
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
80
TEMA5.
TABLESPACES
Quesuntablespace
Tablespacesystem
Createtablespace
Formasdegestionarelespaciodeuntablespace
Tablespacesundo
Tablespacestemporales
TablespacetemporalpordefectodelaBD
Tablespaceoffline
Tablespacereadonly
Borraruntablespace
Redimensionaruntablespace
Moverficheros
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
81
QUEESUNTABLESPACE
AunqueunapequeaBDpodratenersloeltablespaceSYSTEM,Oraclerecomienda
crear tablespaces adicionales para los datos, ndices, rollback y segmentos
temporales.
Segnlaestructurafsica,unaBDestcompuestapor:elficherodecontrol,ficheros
redo log y ficheros de datos. La estructura lgica nos dice que est compuesta de
tablespaces,segmentos,extensionesybloques.
Cadatablespaceconsisteenunoomsficherosdels.o.llamadosficherosdedatos
(unficheroperteneceaunsolotablespace):
UntablespaceslopuedeperteneceraunaBDalavez.
Puedetenerceroomssegmentos(unsegmentosloperteneceauntablespace).
Exceptuando el tablespace SYSTEM, o aquellos que contengan segmentos de rollback
activos,untablespacesepuedeponeroffline,estandolaBDfuncionando.
Untablespacesepuedeponerenmodoreadonlyoreadwrite,yviceversa.
Tiposdetablespaces:permanent(datos:system,sysaux,aplicaciones),undo
(rollback)ytemporary(sort).
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
82
TABLESPACES
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
83
TABLESPACESYSTEM
EltablespaceSYSTEMeselnicoquesecreaconlaBD(createdatabase).
Contiene el DD, incluidos los procedimientos almacenados (procedimientos,
funcionesypaquetes).
Tambin contiene el segmento de rollback system. No debe contener datos de
aplicaciones.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
84
CREARUNTABLESPACE
CREATE TABLESPACE nombre
[DATAFILE clasula_fichero]
[MINIMUM EXTENT n[K|M]]
[BLOCKSIZE n[K]]
[LOGGING|NOLOGGING]
[clasula_extensiones]
[DEFAULT clasula_storage]
[ONLINE|OFFLINE]
[PERMANENT|TEMPORARY];
clasula_fichero:==nombre_fichero
[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])
TABLESPACES
85
FORMASDEGESTIONARELESPACIODE
UNTABLESPACE
Tablespacesmanejadoslocalmente(Oraclelosrecomienda):
Lasextensioneslibresseregistranenunbitmap,deformaquecadabitcorrespondeaunbloque.El
valordecadabitindicasielbloquecorrespondienteestlibreousado.Existeunbitmapdeestetipo
encadaficherodeltablespace.Cadavezqueunaextensinsereservaoselibera,semodificael
bitmapcorrespondiente.
Ventajas:
ReduccindelacontencinenlastablasdelDD.
Nosegenerarollbackalreservar/liberarespacio(puesnoseactualizaelDD).
Noesnecesariohacercoalesce.
No se puede usar INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAXEXTENTS y
PCTINCREASEdelSTORAGEalcrearunatabla.TampocotienesentidoDEFAULTSTORAGEdel
tablespace.
Eltablespacesystemsepuedemanejarlocalmente,desdeOracle9i(en8ino).SielSYSTEMeslocal,NOse
puedencreartablespacespordiccionario.EnOracle9i,pordefecto,lostablespacessecreancomolocales(siel
parmetrocompatible>=9.0),exeptoelSYSTEM.
TablespacesgestionadosatravsdelDD(aextinguir):
EselmtodopordefectoenOracle8i.LasextensioneslibresquedanregistradasentablasdelDD.
Cada vez que unaextensin se liberao sereserva,lastablascorrespondientesdel DDdebenser
actualizadas.
PermitedefinirSTORAGEflexiblealossegmentos(loslocalesNO).
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
86
TABLESPACESUNDO
Los tablespaces undo slo pueden contener segmentos de rollback (ningn otro tipo de
objeto).Losllamaremostablespacesderollback.
Sondeltipomanejadoslocalmente(deformaautomtica).
CREATEUNDOTABLESPACEundo01
DATAFILE/u03/oradata/CURSO01/undo01.dbfSIZE100M;
Untablespacederollbacksloseusacuandoseactivalagestinautomticaderollbackenla
BD (undo_management=auto y undo_tablespace=nombre_tablespace). Slo puede haber un
tablespacederollbackactivoenunmomentodado.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
87
TABLESPACESTEMPORALES
Lossegmentostemporales(odesort)secreanentablespacestemporales,automticamente,
paraoperacionesdeordenacin(orderby,joins,createindex,etc)quenocabenenmemoria.
ExistenslodurantelaejecucindelasentenciaSQL.
Nopuedencontenerobjetospermanentes.
Esrecomendablequeseanlocallymanaged(nopuedenusarAUTOALLOCATEniSEGMENT
SPACEMANAGEMENTAUTO),yusenficherostemporales:
CREATETEMPORARYTABLESPACEtemp
TEMPFILE/u03/oradata/CURSO01/temp01.dbfSIZE100M
EXTENTMANAGEMENTLOCALUNIFORMSIZE2M;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
88
TABLESPACETEMPORALPORDEFECTO
DELABD
EnOracle9i,alcrearlaBDsepuede(ysedebe)indicar untablespacetemporalpordefecto
paraaquellosusuariosalosquenoseleasigneunoexplcitamamente.Sinosehaceas,por
defecto,seasignareltablespaceSYSTEM(stohayqueevitarloatodacosta).
ELtablespacetemporalpordefectodelaBDsepuedecambiar:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE nombre_tablespace;
TambinsepuedecrearconlaBD(CREATEDATABASE),encuyocaso,serdeltipolocal.
AlasignaralaBDuntablespacetemporalpordefecto,todoslosusuariosquenotenganuno
asignadoexplcitamente,pasarnatenerlo.Ycuandocambiemoseltablespacetemporalpor
defecto de la BD, cambiar para todos los usuarios que no lo tengan asignado de forma
explcita.
Nopodemosborrarlohastaquehayamosasignadootro.Nopodemosponerlooffline.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
89
TABLESPACEOFFLINE
Cuando un tablespace estOFFLINEnosepuede accedera losdatosque
contiene:
ALTERTABLESPACEDBA01USEROFFLINE;
ParaponerlodenuevoONLINE:
ALTERTABLESPACEDBA01USERONLINE;
Algunos tablespaces no se pueden poner OFFLINE: SYSTEM, tablespaces
consegmentosderollbackotemporalesactivos.
Sintaxis
ALTERTABLESPACEnombre ONLINE|OFFLINE;
Lossegmentosquecontienepuedenserborrados(porejemplodroptable,
porque slo afectan al DD). En tablespaces locales, el segmento borrado
pasaaserdeltipotemporal.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
90
TABLESPCEREADONLY
AlponeruntablespaceenmodoREADONLY,slosepermitenoperaciones
delecturasobresusdatos;sinembargolossegmentosquecontienepueden
ser borrados (por ejemplo drop table, porque slo afectan al DD). En
tablespaceslocales,elsegmentoborradopasaaserdeltipotemporal.
Un tablespace READONLY podra residir en un dispositivo de slo lectura,
comounCDROMounDVDROM:
ALTERTABLESPACEtsp_lecturaREADONLY;
Moveramoselficherocorrespondientealdispositivodeslolectura.
ALTERTABLESPACEtsp_lecturaRENAMEDATAFILE
/u02/oradata/CURSO01/tsp_lectura.dbfto
/mnt/cdrom/CURSO01/tsp_lectura.dbf;
Sintaxis:
ALTERTABLESPACEnombreREAD[ONLY|WRITE];
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
91
BORRARUNTABLESPACE
Alborraruntablespace,seeliminadelDD.Nopodemosborrareltablespace
SYSTEM. Los ficheros asociados no se borran (hay que borrarlos desde el
SO despus de eliminar el tablespace), a no ser que usemos la clasula
INCLUDINGCONTENTSANDDATAFILES(slodesdeOracle9i).
No podremos borrarlo si contiene objetos, a menos que indiquemos la
clasula INCLUDING CONTENTS. Tampoco podemos hacerlo si existen
foreignkeysapuntandoasusobjetos,amenosqueademsindiquemosla
clasulaCASCADECONSTRAINTS(seborrarnlascitadasconstraintsFK).
Se recomienda poner el tablespace OFFLINE antes de borrarlo, para
asegurarnosquenadieestusandosucontenido.
Sintaxis:
DROPTABLESPACEnombre_tablespace
[INCLUDINGCONTENTS[ANDDATAFILES][CASCADECONSTRAINTS]];
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
92
REDIMENSIONARUNTABLESPACE
Podemoscambiareltamaodeuntablespaceaadiendounficheroalmismo,
obiencambiandoeltamaodelficheroquelocompone.
ALTERTABLESPACEusersADDDATAFILE
/u02/oradata/CURSO01/users02.dbfsize1M;
ALTERDATABASEDATAFILE
/u02/oradata/CURSO01/users01.dbfresize2M;
Podemos reducir el tamao de un fichero, pero no podremos hacerlo si hay
espacioocupadoalfinaldelmismo.
Unaopcininteresanteesprogramarelcrecimientodelficheroquecompone
eltablespace:
ALTERDATABASEDATAFILE
/u02/oradata/CURSO01/users01.dbfSIZE1M
AUTOEXTENDONNEXT1MMAXSIZE4M;
Podemos indicar UNLIMITED como MAXSIZE. Y las unidades tambin pueden
serK(p.e.512K)obytes(p.e.100000).
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
93
REDIMENSIONARUNTABLESPACE
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
94
MOVERFICHEROS
Existendosmtodosparamoverficheros:conALTERTABLESPACEyconALTER
DATABASE.
El primero slo es aplicable a tablespaces que no son el SYSTEM, y que no
contienensegmentosderollbackotemporalesactivos:
Ponereltablespaceoffline
MoverelficheroaniveldelS.O.
ALTERTABLESPACERENAMEDATAFILE/path1/fichero1TO
/path2/fichero2;
Ponereltablespaceonline.
ElsegundorequierequelaBDestslomontada,yeslanicaformademoverel
tablespaceSYSTEM:
PararlaBD.
MoverelficherodesdeelS.O.
MontarlaBD.
ALTER DATABASE RENAME FILE /path1/fichero1 TO
/path2/fichero2;
AbrirlaBD.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
95
VISTASDELDD
DBA_TABLESPACES
DBA_DATA_FILES
DBA_TEMP_FILES
V$TABLESPACE
V$DATAFILE
V$TEMPFILE
V$UNDOSTAT
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
96
PRACTICASTEMA5
5.1.ConsultarlostablespacesquecomponenlaBD.Comprobarlos
ficherosquetienencadaunodeellos.
Select*fromdba_tablespaces;
select*fromv$tablespace
select*fromdba_data_files;
select*fromv$datafile;
select*fromdba_temp_files;
select*fromv$tempfile;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
97
PRACTICASTEMA5
5.2. Crea el tablespace DATACURSOxy, NO manejado localmente, con el fichero
/u02/oradata/datacursoxy01.dbf, con un tamao de 1M. Crea 4 tablas (TABLA01,
TABLA02, TABLA03, TABLA04) de 256K sobre dicho tablespace. Borra las tablas
TABLA02yTABLA04,ycreaunatablaTABLA05de512K.Quocurreyporqu?.
BorraeltablespaceDATACURSOxyycralodenuevo,manejadolocalmente.Vuelve
a crear las tablas y repite el borrado de TABLA02 y TABLA04; y la creacin de
TABLA05de512K.Quocurreestavezyporqu?
CreatetablespaceDATACURSOxydatafile/u02/oradata/CURSOxy/datacursoxy01.dbfsize
1Mextentmanagementdictionary;
createtableTABLA01(C1VARCHAR2(4000))tablespaceDATACURSOxystorage(initial
256Kminextents1);
droptableTABLA02;
createtableTABLA05(C1VARCHAR2(4000))tablespaceDATACURSOxystorage(initial
512Kminextents1);
altertablespaceDATACURSOxyoffline;
droptablespaceDATACURSOxyincludingcontentsanddatafiles;
createtablespaceDATACURSOxydatafile/u02/oradata/CURSOxy/datacursoxy01.dbfsize
1Mextentmanagementlocaluniformsize256K;
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
98
PRACTICASTEMA5
5.3.PoneltablespaceDATACURSOxyenmodoREADONLY.Insertaunafilaenalguna
desustablas,quocurre?.BorralatablaTABLA01,porqusepuedeborrar?.Deja
el tablespace DATACURSOxy en modo READWRITE. Repite el insert sobre
TABLA01.
altertablespaceDATACURSOxyreadonly;
insertintoTABLA01values(PRIMERAFILA);
droptableTABLA01;
altertablespaceDATACURSOxyreadwrite;
insertintoTABLA01values(PRIMERAFILA);
5.4.CreaunatablaTABLA06eneltablespaceDATACURSOxy,quocurreyporqu?.
Activaelautoextenddesufichero,ajustandonext256Kymaxsize2M.Vuelveacrear
latablaTABLA06.
CreatetableTABLA06(C1varchar2(4000))tablespaceDATACURSOxystorage(initial256K
minextents1);
alterdatabasedatafile/u02/oradata/CURSOxy/datacursoxy01.dbfautoextendonnext256K
maxsize2M;
CreatetableTABLA06(C1varchar2(4000))tablespaceDATACURSOxystorage(initial256K
minextents1);
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
99
PRACTICASTEMA5
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
100
APENDICEA.
RecursosOracleenInternet.
www.orafaq.org(UndergroundOracleFAQs)
SitionooficialsobreOracle(FAQs,foros,artculos,scripts,etc).
otn.oracle.com(OracleTecnologyNetwork)
Descargas de sw, documentacin, foros, artculos, scripts, etc. Interesante
registrarse(esgratuito).
otn.oracle.com/oramag(OracleMagazine)
RevistaOracleMagazine.
www.oracle.com
PortaloficialdeOracle.
metalink.oracle.com
Soportetcnicoparausuariosconcontratodemantenimiento.
AdministracinBsicadeOracle9i.
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
101