Está en la página 1de 101

AdministracinBsicadeOracle9i.

Estedocumentoelectrnicopuedeserdescargadolibrey gratuitamentedesdeInternetparasuejecucine impresin,sloparafineseducativosy/opersonales, respetandosuintegridadymanteniendoloscrditosde losautoresenelpiedepgina. Quedaportantoprohibidasuventa. AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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

UniversidaddeMurcia

TEMARIO
ArquitecturadelaBasedeDatos Arranqueyparada Ficherodecontrol Redolog Tablespaces Segmentosderollback Usuarios,roles,privilegiosyperfiles Jobs Auditora Copiasdeseguridadyrecuperacin
2

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

OBJETIVOS
ConocerlaArquitecturaOracle. SaberarrancarypararunabasededatosOracle. GestionarlosficherosRedolog. Gestionarelficherodecontrol. Gestionartablespaces,incluyendotemporalesyundo. Gestionarsegmentosderollback. Gestionarusuarios,roles,privilegiosyperfiles. Gestionarjobs. Gestionarlaauditoradelsistemagestordebasededatos. Realizarcopiasdeseguridadyrecuperacindelabasededatos.
3

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

TEMA1 ARQUITECTURADELABASEDEDATOS

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

TEMA1. ARQUITECTURADELABD

Servidororacle Instancia Basededatos Memoria:SGAyPGA Procesos:procesosdeusuario,servidoresybackground Estructuralgica:tablespaces,segmentos,extensiones,bloques ArquitecturaOFA UsuariosadministradoresdelaBD:sysysystem

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

SERVIDORORACLE

ServidorOracle:
InstanciaOracle BasededatosOracle

InstanciaOracle:
ProcesosBackground SGA

BasededatosOracle:
FicherosdeDatos Fichero(s)deControl FicherosRedoLog.

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

SERVIDORORACLE

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

ARQUITECTURADELABD

INSTANCIA
LaintegranlosprocesosbackgroundylaSGA AbreunayslounaBDO,ypermiteaccederaella. EnlamquinadonderesideelservidorOracle,lavariableORACLE_SID identificaalainstancia.

RECO

PMON

SMON

SGA

DBW0
AdministracinBsicadeOracle9i.

LGWR

ARC0
ARQUITECTURADELABD

JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

CONEXINALABD
Para poder conectarnos a una BDO, necesitamos una serie de variables en el entornodelusuariodelS.O.desdeelquerealizaremoslaconexin.Enelcasode unix/linux:
ORACLE_HOME.LocalizacindelswOracleautilizar. ORACLE_SID.BD,asociadaalORACLE_HOME,alaquevamosaconectarnos.Tienesentido sloenunSBD. PATH=$PATH:$ORACLE_HOME/bin.ProgramasOracle LD_LIBRARY_PATH=$ORACLE_HOME/lib. Localizacin de las libreras compartidas (Linux/Unix). NLS_LANG=spanish_spain.Idiomadelcliente(opcional).

Procesodeusuario:laejecucindelaaplicacinquepermitealusuarioiniciarla conexin;porejemplo,sql*plus. Procesoservidor:secreaenelSBDcuandoelusuarioseconectaalaBD,yesel querealmenteinteractaconlaBD. UnaconexindeunprocesodeusuarioalSBDesunasesinenlaBD(puede habervariasdelmismousuario).Seiniciacuandoelusuariosevalidacontrala BDyterminacuandoelusuariosedesconecta.


ARQUITECTURADELABD

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

CONEXINALABD:procesos

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 ARQUITECTURADELABD

12

SGA:SharedPool

Est formada por dos estructuras de memoriagestionadasporalgoritmosLRU: librarycache dictionarycache Su tamao viene determinado por el parmetro shared_pool_size (en bytes), del init.ora(nopuedesuperarsesga_max_size); ysepuedecambiardinmicamentecon: Se pueden vaciar con ALTER SYSTEM FLUSHSHARED_POOL;(sloloqnoest en uso por sesiones y q adems no est fijado).
ALTERSYSTEMSETSHARED_POOL_SIZE =64M;

SQLAREA

PL/SQL AREA

LIBRARYCACHE DICTIONARYCACHE

SHAREDPOOL(shared_pool_size)

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

ARQUITECTURADELABD

13

SGA:SharedPool

En la library cache se almacena informacin sobre las sentencias SQL y PL/SQL,usadasrecientemente.Estformadapordosestructuras:


SharedSQL rea;sealmacenanlosplanesdeejecucinylos rbolessintcticos (parsetree)delassentenciasSQL. SharedPL/SQLrea;contienelasunidadesdeprogramacompiladasyanalizadas sintcticamente(parsed):procedures,functions,packagesytriggers.

En la dictionary cache se guardan las definiciones de datos usadas ms recientemente:databasefiles,tablas, ndices,columnas,usuarios,privilegios, etc. Esta informacin se genera y utiliza en la fase de anlisis sintctico (parse);yseobtienedelastablasdeldiccionariodedatos.

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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): LaDatabaseBufferCacheconstadetrescachsindependientes:
ALTERSYSTEMSETDB_CACHE_SIZE=96M; 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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

ARQUITECTURADELABD

15

SGA:RedoLogBufferCache
Es un buffer circular que registra todos los cambios hechos en los bloques de datos/rollback, en lo que llamaremos redo entries. Su prop sito principal es la recuperaci n de la instancia (no confundir con el rollback).
Eltamaovienedeterminadoporelparmetrolog_buffer(enbytes).

Las redo entries contienen la informacin necesaria (indices y rollback incluidos) para repetir los cambios hechos mediante una sentencia insert, update, delete, create,alterodrop. Los procesos servidores copian las entradas de redo en la RedoLogBufferCache(antesdemodificarlosbloquesenla cache de datos) ; y el proceso LGWR es el encargado de volcardichosbuffersalficheroredologactivo(endisco).

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 ARQUITECTURADELABD

17

SGA:JavaPool

Slo es necesaria si se instala y se usa Java en la BD. Se utiliza para el anlisissintctico(parsing)deloscomandosJava. Su tamao depende del parmetro java_pool_size, del fichero de inicializacin.EnOracle9i,sutamaopordefectoesde24M(sieltamaodel grnuloesde4M,yde32Msiesde16M.

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

19

ProgramGlobalArea(PGA)
PILA

PILA SESION

PGA
(servidorcompartido) SQL

PGA
(servidordedicado)

SQL

SHAREDPOOL
SESION

SHAREDPOOL

SGA
AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 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.
ARQUITECTURADELABD

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

22

Procesosbackground(LGWR,SMON)

LGWR. Realiza escrituras secuenciales del contenidodela redolog buffer cacheen losficherosredolog.Cuando? Sehacecommit. Laredologbuffercachesellena1/3. Hay1Mbdecambiosenlaredologbuffercache. Comomucho,cada3segundos. SiempreantesqueescribaelDBWR. SMON. Recupera la instancia, si es necesario, cuando sta arranca: aplica los cambios registrados en los redo log (roll forward), abre la base de datos dejndola accesiblealosusuarios,yhacerollbackdelastransaccionesquenoterminaron.
Tambin se activa peridicamente, agrupando extensiones libres contiguas en extensiones de mayortamao(sloparatablespacescondefaultstoragecuyopctincrease>0). Adems libera el espacio ocupado por segmentos temporales durante el procesamiento de sentenciasSQL.

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 ARQUITECTURADELABD

24

ESTRUCTURALGICA

La estructura lgica de la base de datos determina el uso que se hace del

espacio fsico que la sustenta. Existe una jerarqua topdown en esta estructura,consistenteentablespaces,segmentos,extensionesybloques. UnaBDOlaformanungrupodetablespaces.Untablespacepuedecontener unoomssegmentos.Unsegmentolointegranunaomsextensiones.Una extensin tendr al menos un bloque. El bloque es la unidad mnima de almacenamiento. El tamao del bloque ser mltiplo del que tenga el SO, y lo determina la variabledb_block_size(2K,4K,8K,16Ky32K). Cuandounsegmento(tabla,ndice,rollbackotemporal)crece,elespacioque seaadeesdeunaextensin.

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

ARQUITECTURADELABD

25

ESTRUCTURALGICA

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

ARQUITECTURADELABD

26

ARQUITECTURAOFA
OFA(OracleFlexibleArchitecture)proponeunaestructuradedirectoriosquepermite ubicarfcilmentecualquierficherodelservidordebasededatos;ademsdeagrupar dichosficherosporcomponentes. Adems,facilitaelrepartodelosficherosentrediferentesdiscos,optimizandolaE/S. Oraclerecomiendasepararelsoftwaredelosdatos;yestos ltimosrepartirlosentre 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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 ARQUITECTURADELABD

27

USUARIOSADMINISTRADORESDELABD
Cuando creamos una BDO se crean automticamente los usuarios SYS y
SYSTEM,ambosconelrolDBA.

El SYS, cuya clave inicial es change_on_install, es el propietario del DD y


habitualmenteseusaparaarrancarypararlabasededatos,ascomopara modificar los componentes de la misma (como instalar nuevas opciones). ParaconectarcomoSYS: CONNECTSYSASSYSDBA CONNECT/ASSYSDBA
Nota:hayqueperteneceralgrupodba(Unix/Linux)ocrearun ficherodeautenticacinenelSBD.

ElSYSTEM,conclaveinicialmanager,eselDBAporexcelencia.Seusara
para las tareas administrativas habituales: alta de usuarios, creacin de tablespaces,etc.
AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 ARQUITECTURADELABD

28

FICHERODEAUTENTICACIN

Un fichero de autenticacin nos permite conectar a la BD como SYS AS SYSDBA, sin pertenecer al grupo dba o desde un puesto remoto al SBD, realizando dicha autenticacin contraelmencionadofichero.Lousaremoscuandonodispongamosdeunaconexindesdeel propioSBDcomogrupodba. Parausarunficherodeautenticacin:
Crearemoselficheroconlautilidadorapwd:
orapwd file=nombre_fichero password=clave entries=mximo_de_usuarios

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.

Nota:elficherosellamarorapw$ORACLE_SIDyestaren$ORACLE_HOME/dbs.

ConectaremosalaBD(elusuarioOraclequeseconectasiempreeselSYS):
CONNECT usuario/clave AS SYSDBA
AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 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).
ARQUITECTURADELABD

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

30

PRACTICASTEMA1
1.1.Comprobarlaasignacindevariablesdeentornonecesariasparaconectarnosala BD:
echo$ORACLE_HOME echo$ORACLE_SID echo$LD_LIBRARY_PATH echo$PATH

1.2.Identificarlosprocesosquecomponeninstancia: 1.3.VereltamaodelaSGAdelaBD:

psef|grep$ORACLE_SID selectusername,programfromv$processwherebackgroundisnotnull; selectname,descriptionfromv$bgprocesswherePADDR!='00'; 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

1.4.ComprobarvaloresdeparmetrosdelinitrelacionadosconeltamaodelaSGA:

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

ARQUITECTURADELABD

33

PRACTICASTEMA1.

1.9.CuantoocupalaDictionarycacheylaLibrarycacheentuBD?(v$sgastat) 1.10.VerlaactividaddelaLibraryCache(v$librarycache). 1.11.VerlassentenciasSQLqueguardalaSharedPool(v$sqlarea).


selectsql_textfromv$sqlarea; selectnamespace,gethitratio,gethitratiofromv$librarycache; select*fromv$sgastatwherenamelike'%cache';

1.12.Crearelficherodeautenticacinyactivarlo(orapwd).
orapwdfile=$ORACLE_HOME/dbs/orapwCURSO01password=miclaveentries=5 remote_login_passwordfile=EXCLUSIVE"

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

ARQUITECTURADELABD

34

TEMA2 ARRANQUEYPARADADELABASEDEDATOS

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

ARRANQUEYPARADADELABD

35

TEMA2. ARRANQUEYPARADADELABD
Ficherosdeinicializacin:init.orayspfile.ora CreacindelaBD OMF(OracleManagedFiles) Arranquedelabasededatos Comandostartup Comandoalterdatabase Pararlabasededatos FicheroalertSID.Log Trazasdelosprocesosbackground Trazasdelosprocesosdeusuario Diccionariodedatos
AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 ARRANQUEYPARADADELABD

40

CREARLABASEDEDATOS
ParacrearunaBDnecesitamos:

ParaubicarlosficherosquecomponenlaBD:

ConectarnosalservidorOraclecomoSYSASSYSDBA,autenticndonoscontraelS.O.o usandounficherodeclaves. SuficientememoriaparaarrancarlainstanciayespacioendiscoparacrearlaBD. 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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

ARRANQUEYPARADADELABD

44

COMANDOSTARTUP

ArrancalainstanciayabrelaBD.Permitepararelprocesodearranquedela
BDencualquieradesusfases(NOMOUNT,MOUNT).

STARTUP(abrelabasededatosconelficherodeparmetrospordefecto). STARTUPPFILE=/home/CURSO/curso30/miinit.ora STARTUPNOMOUNT(paracrearlabasededatos). STARTUPMOUNT(pararenombrardatafiles,activarARCHIVELOGohacer


unarecuperacincompletadelaBD). RESTRICTEDSESION).

STARTUPRESTRICT(slopermitelaconexindeusuariosconelprivilegio STARTUPFORCE(haceSHUTDOWNABORTyarrancalaBD).
AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 ARRANQUEYPARADADELABD

45

COMANDOALTERDATABASE

Permitecambiarelestadodelabasededatos.PorejemplodeNOMOUNTa

MOUNT,odeMOUNTaOPEN.TambinseutilizaparadejarlaBDenmodo READONLY.

ALTERDATABASE{MOUNT|OPEN} ALTERDATABASEOPEN[READWRITE|READONLY]

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

ARRANQUEYPARADADELABD

46

PARARLABASEDEDATOS

Hay determinadas operaciones que requieren parar la BD; como la actualizacin de algunosparmetrosdelinit.ora;ohacerunacopiafsicadelaBD(copiaenfrio).LaBD separaconelcomandoSHUTDOWN,impidiendocualquierconexinposterior. SHUTDOWN [NORMAL], espera a que terminen todas las transacciones en curso y todaslassesiones,fuerzauncheckpoint,ademsdecerrartodoslosficheros. SHUTDOWN TRANSACTIONAL, slo espera a que terminen las transacciones en curso,fuerzauncheckpointycierralosficheros. SHUTDOWN IMMEDIATE,hacerollbackdetodaslastransaccionesencursoycierra todaslassesiones;cierraydesmontalaBD,ademsdepararlainstancia(comolos anteriores). SHUTDOWN ABORT, cierra la instancia sin esperar a desmontar ni cerrar la BD (comoenunacaida).Requiererecoveryalarrancar.

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

ARRANQUEYPARADADELABD

47

COMANDOSHUTDOWN

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

Tiposdeparada.Cadaunadelasopcionesdeparadasecomportadeformadiferente encuantoaesperaraqueterminentransaccionesysesiones;odesmontarycerrarla BD:

EsperarTransacciones EsperarSesiones Checkpoint DesmontarBD CerrarBD Pararinstancia


AdministracinBsicadeOracle9i.

NORMAL S S S S S S

TRANSACTIONAL S N S S S S

IMMEDIATE N N S S S S

ABORT N N N N N S
48

ARRANQUEYPARADADELABD

JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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 Tue Oct 26 13:11:08 2004 ALTER DATABASE MOUNT ... Tue Oct 26 13:11:13 2004 ALTER DATABASE OPEN Tue Oct 26 13:11:13 2004 Beginning crash recovery of 1 threads ... Tue Oct 26 13:11:13 2004 Crash recovery completed successfully ... Tue Oct 26 13:11:13 2004 Undo Segment 1 Onlined Undo Segment 2 Onlined Undo Segment 3 Onlined ... Tue Oct 26 13:11:16 2004 Completed: ALTER DATABASE OPEN Wed Oct 27 19:34:06 2004 Thread 1 advanced to log sequence 552 Current log# 3 seq# 552 mem# 0: /home/u04/oradata/CURSO98/redo03.log

Nota.Enelejemplodearribasepuedeverelarranquedelainstancia,losparmetrosasignados,losprocesosarrancados,comosemontala BD,larecuperacindelainstancia,laactivacindelossegmentosderollbackautomticos(undo),ycmofinalmenteseabrelaBDyse empiezanausarlosficheroredolog.


AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 ARRANQUEYPARADADELABD

52

DICCIONARIODEDATOS(DD)

El DD est compuesto por un conjunto de tablas y vistas asociadas donde se almacena toda la informacin sobre los objetos que componen la BD, as como la estructuralgicayfsicadelamisma. ElDDincluyedostiposdeobjetos:tablasbaseyvistas.
Las tablas base se crean automticamente cuando creamos la BD con el comando CREATEDATABASE;ysonlasquerealmentecontienenlainformacindelDD. Lasvistassecreanallanzarelscriptcatalog.sql;ypermitenaccederalainformacindelas tablasdelDD(queestcodificada).

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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.

Objetos de la BD: dba_objects, dba_tables, dba_indexes, dba_tab_columns, dba_ind_columns,dba_constraints,dba_views. Espacioocupado:dba_data_files,dba_segments,dba_extents. EstructuradelaBD:dba_tablespaces,dba_data_files.

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 ARRANQUEYPARADADELABD

55

PRACTICASTEMA2.
2.1.Ficheroinit.ora.ArranqueyparadadelaBD.

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

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.


SHUTDOWNimmediate STARTUPpfile=init01xy.ora showparameterprocesses STARTUP showparameterprocesses cp$ORACLE_HOME/dbs/init$ORACLE_SID.orainit01xy.ora echoprocesses=9>>init01xy.ora tailinit01xy.ora more$ORACLE_HOME/dbs/init$ORACLE_SID.ora grepprocesses$ORACLE_HOME/dbs/init$ORACLE_SID.ora

PararlaBDdeformanormal,estandoconectadoalgnusuarioyverquocurre.Yqusucedecuandotodos losusuariossedesconectan. RepetirlaparadadelaBD,estandoconectadoalgnusuario,deformaquenoespere:


SHUTDOWNIMMEDIATE SHUTDOWN

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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

2.3.Ficheroalert.logyficherosdetraza.Diccionariodedatos.

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

58

PRACTICASTEMA2.
2.6.ConctatecomoSCOTTyhazupdatesobreDEPT(sinhacercommit).Desdeotrasesi n, cierralaBDconSHUTDOWNTRANSACTIONAL.Qupasaalhacercommitenlasesi nde 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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 ARRANQUEYPARADADELABD

59

TEMA3 FICHERODECONTROL

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

FICHERODECONTROL

60

TEMA3. FICHERODECONTROL

Ficherodecontrol Contenidodelficherodecontrol Multiplexarficherodecontrol Backupdelficherodecontrol

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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;

En la vista V$CONTROLFILE tenemos la lista de todos los ficheros de control de la BD. En V$CONTROLFILE_RECORD_SECTION veremos las diferentes secciones y suestadodeuso.
FICHERODECONTROL

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 FICHERODECONTROL

64

VISTASDELDD

V$CONTROLFILE V$CONTROLFILE_RECORD_SECTION V$PARAMETER

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

FICHERODECONTROL

67

TEMA4 GESTIONDELREDOLOG

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

GESTIONDELREDOLOG

68

TEMA4. GESTIONDELREDOLOG

Ficherosredolog Funcionamientodelredolog Aadir/quitargrupos/miembrosderedo Configuracindelosficherosredolog Modoarchivelog

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

GESTIONDELREDOLOG

69

FICHEROSREDOLOG

Los ficheros redo log guardan todos los cambioshechosenlosdatosypermitenvolver aaplicarlosencasodecadadelaBD. Los ficheros redo log se organizan en grupos. Una BD requiere al menos dos grupos. Cada fichero redo log dentro de un grupo se llama miembro. La idea es que cada grupo tenga tantos miembros como discos disponemos para matener las copias de los redo. Lo usual es tener 3 grupos de redo con 2 miembros cada uno.
AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

GESTIONDELREDOLOG

70

FUNCIONAMIENTODELREDOLOG

Los ficheros redo log se usan de manera circular: cuandounosellena,elLGWRcomienzaaescribir en el siguiente grupo (log switch), hasta volver al primero. Cuando ocurre un log switch, tambin sucedeuncheckpoint;yseactualizaelficherode control. Podemos forzar un log switch o un checkpointexplcitamentecon: ALTERSYSTEMSWITCHLOGFILE; ALTERSYSTEMCHECKPOINT; El LGWR escribe al hacer commit, o cada 3 segundos,osielbufferredologsellena1/3,yantes dequeelDBWRvuelqueloscambiosdelosbuffers dedatosalosficherosdelaBD.

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 GESTIONDELREDOLOG

73

CONFIGURACINDELOSFICHEROS REDOLOG
Vaciado(porejemplositodoslosmiembrosdeungrupoestncorruptos): Esequivalenteaaadiryborrarunficheroredolog. Moverorenombrar(ojo!laBDdebeestarslomontada):
ALTERDATABASECLEAR[UNARCHIVED]LOGFILE /u02/oradata/CURSO98/redo02a.log; !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.
GESTIONDELREDOLOG

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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
GESTIONDELREDOLOG

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

75

VISTASDELDD

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

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

GESTIONDELREDOLOG

77

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. Aade 2 gruposms(grupo5y6),conlasmismascaractersticas.

alter database add logfile group 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!!!

Alter database drop logfile member

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

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

GESTIONDELREDOLOG

79

TEMA5 TABLESPACES

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

TABLESPACES

80

TEMA5. TABLESPACES
Quesuntablespace Tablespacesystem Createtablespace Formasdegestionarelespaciodeuntablespace Tablespacesundo Tablespacestemporales TablespacetemporalpordefectodelaBD Tablespaceoffline Tablespacereadonly Borraruntablespace Redimensionaruntablespace Moverficheros
AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 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).
TABLESPACES

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

82

TABLESPACES

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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.

Respecto al resto de tablespaces (no SYSTEM), se recomienda separar rollback,segmentostemporales,datose ndices.Tambinesbuenoseparar datosestticosydinmicos.

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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

CREATE TABLESPACE DATOS_USUARIOS DATAFILE /u02/oradata/CURSO01/datos_usuarios01.dbf SIZE 16M AUTOEXTEND ON NEXT 1M MAXSIZE 32M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K; CREATE TABLESPACE DATOS_USUARIOS DATAFILE /u02/oradata/CURSO01/datos_usuarios01.dbf SIZE 16M AUTOEXTEND ON NEXT 1M MAXSIZE 32M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE (INITIAL 16K NEXT 32K MAXEXTENTS 10 PCTINCREASE 50);
AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 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).
TABLESPACES

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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;

Para optimizar el rendimiento es recomendable que UNIFORM SIZE sea mltiplo de SORT_AREA_SIZE. No se puede renombrar un fichero temporal (tempfile). Tampoco se pueden poner en modo readonly.SiempretienenelmodoNOLOGGING(noproducenentradasderedolog).
TABLESPACES

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006 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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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

Unaopcininteresanteesprogramarelcrecimientodelficheroquecompone eltablespace:

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

TABLESPACES

93

REDIMENSIONARUNTABLESPACE

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

TABLESPACES

94

MOVERFICHEROS
Existendosmtodosparamoverficheros:conALTERTABLESPACEyconALTER DATABASE. El primero slo es aplicable a tablespaces que no son el SYSTEM, y que no contienensegmentosderollbackotemporalesactivos:

ElsegundorequierequelaBDestslomontada,yesla nicaformademoverel tablespaceSYSTEM:


Ponereltablespaceoffline MoverelficheroaniveldelS.O. ALTERTABLESPACERENAMEDATAFILE/path1/fichero1TO /path2/fichero2; Ponereltablespaceonline. PararlaBD. MoverelficherodesdeelS.O. MontarlaBD. ALTER DATABASE RENAME FILE /path1/fichero1 TO /path2/fichero2; AbrirlaBD.
TABLESPACES

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

95

VISTASDELDD

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

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

TABLESPACES

99

PRACTICASTEMA5

5.5. Crea el tablespace INDCURSOxy de 1M con el fichero /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;

AdministracinBsicadeOracle9i. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

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. JuanLuisSerradillaAmarillayFranciscoFern ndezMartnez2006

101

También podría gustarte