Académique Documents
Professionnel Documents
Culture Documents
Estedocumentoelectrnicopuedeserdescargadolibrey
gratuitamentedesdeInternetparasuejecucine
impresin,sloparafineseducativosy/opersonales,
respetandosuintegridadymanteniendoloscrditosde
losautoresenelpiedepgina.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FranciscoFernndezMartnez(pacof@um.es)
JuanLuisSerradillaAmarilla(juanlu@um.es)
UniversidaddeMurcia
TEMARIO
ArquitecturadelaBasedeDatos
Arranqueyparada
Ficherodecontrol
Redolog
Tablespaces
Segmentosderollback
Usuarios,roles,privilegiosyperfiles
Jobs
Auditora
Copiasdeseguridadyrecuperacin
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
OBJETIVOS
ConocerlaArquitecturaOracle.
SaberarrancarypararunabasededatosOracle.
GestionarlosficherosRedolog.
Gestionarelficherodecontrol.
Gestionartablespaces,incluyendotemporalesyundo.
Gestionarsegmentosderollback.
Gestionarusuarios,roles,privilegiosyperfiles.
Gestionarjobs.
Gestionarlaauditoradelsistemagestordebasededatos.
Realizarcopiasdeseguridadyrecuperacindelabasededatos.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TEMA1
ARQUITECTURADELABASEDEDATOS
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TEMA1.
ARQUITECTURADELABD
Servidororacle
Instancia
ConexinalaBasededatos
Memoria:SGA(AutomaticSharedMemoryManagement
>=10g)yPGA
Procesos:procesosdeusuario,servidoresybackground
Estructuralgica:tablespaces,segmentos,extensiones,
bloques
ArquitecturaOFA
UsuariosadministradoresdelaBD:sysysystem
Ficherodeautenticacin(orapw)
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
SERVIDORORACLE
ServidorOracle:
InstanciaOracle
Basededatos
Oracle
InstanciaOracle:
SystemGlobal
Area(SGA)
Procesos
Background
Basededatos
Oracle:
Ficherosde
Datos
Fichero(s)de
Control
FicherosRedo
Log.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
INSTANCIA
LaintegranlosprocesosbackgroundylaSGA
AbreunayslounaBDO,ypermiteaccederaella.
Nota:conOracleRealApplicationCluster(RAC),msdeunainstanciausarn
lamismaBD.
EnlamquinadonderesideelservidorOracle,lavariable
ORACLE_SIDidentificaalainstanciaconlaqueestamostrabajando.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
CONEXINALABD
Para poder conectarnos a una BDO, necesitamos una serie de
variablesenelentornodelusuariodelS.O.desdeelquerealizaremos
laconexin.Enelcasodeunix/linux:
ORACLE_HOME.LocalizacindelswOracleautilizar.
ORACLE_SID. BD, asociada al ORACLE_HOME, a la que vamos a conectarnos.
TienesentidosloenunSBD.
PATH=$PATH:$ORACLE_HOME/bin.ProgramasOracle
LD_LIBRARY_PATH=$ORACLE_HOME/lib.Localizacindelaslibrerascompartidas
(Linux/Unix).
NLS_LANG=spanish_spain.Idiomadelcliente(opcional).
Procesodeusuario:laejecucindelaaplicacinquepermitealusuario
iniciarlaconexin;porejemplo,sql*plus.
Procesoservidor:secreaenelSBDcuandoelusuarioseconectaala
BD,yeselquerealmenteinteractaconlaBD.
UnaconexindeunprocesodeusuarioalSBDesunasesinenlaBD
(puedehabervariasdelmismousuario).Seiniciacuandoelusuariose
validacontralaBDyterminacuandoelusuariosedesconecta.
PodemosdesconectarunasesinconALTERSYSTEMDISCONNECT
SESSION 'sid, serial#' [POST_TRANSACTION] [IMMEDIATE];.
Destruyeelservidordedicado(oelcircuitovirtualsiMTS).
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
CONEXINALABD:procesos
Conexincon
Servidor
Compartido
(MTS)
Conexincon
Servidor
Dedicado
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
SGA(SystemGlobalArea)
yAutomaticSharedMemoryManagement
Es una zona de memoria
compartida, que se reserva
enelmomentodearrancarla
REDO
instancia. Su tamao es
SHARED
BUFFER
dinmico (>= 9i) y limitado
BUFFER
POOL
por el parmetro
de
CACHE
(log_buffer)
inicializacin
SGA_MAX_SIZE.
LARGE
JAVA
STREAMS SGA_TARGET(>=10g)fijael
tamaodelaSGAyactivael
reparto automtico de su
POOL
POOL
POOL
espacio entre: sga fija,
shared pool, large pool, java
pool, buffer cach y streams
SGA(sga_target,sga_max_size)
pool. El resto se ajustan
manualmente.
log buffer, buffer cachs keep y recycle, y buffer cachs con tamao de bloque
especial; aunque consumen espacio de SGA_TARGET, se fijan manualmente
(LOG_BUFFER,
DB_KEEP_CACHE_SIZE,
DB_RECYCLE_CACHE_SIZE,
DB_nK_CACHE_SIZE). El resto (punto anterior) los dejaremos a cero (tb
podemosdarlesvalores,qserntomadoscomomnimos).
V$SGAINFO: tamao componentes SGA (tb grnulo y libre).
V$SGA_DYNAMIC_COMPONENTS.
V$SGA_TARGET_ADVICE:recomendacionessobreSGA_TARGET.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
10
SGA(SystemGlobalArea)
yASMM
LaSGAestformadaporgrnulos(espaciocontiguodememoriavirtual),quesernde
4MparaSGAs<=1Gb(en9i<=128M),yde16Mencasocontrario(verV$SGAINFO).
LoscomponentesdelaSGA(buffercache,sharedpool,largepool,javapool,etc)variarn
su tamao usando en base a grnulos. Al arrancar, se asignan al menos tres grnulos
(unoparalaSGAfijaqueincluyelosredobuffers,otroparalabuffercacheyunomsde
sharedpool);ycadacomponenteseguirreservandotantosgrnuloscomonecesite.
La SGA est compuesta, fundamentalmente, por tres estructuras de memoria: shared
pool, database buffer cache y redo log buffer. Adems, existen tres estructuras de
memoria que, opcionalmente, pueden estar presentes en la SGA: large pool, streams
poolyjavapool.Losparmetrosdelficherodeinicializacinquemsafectanaltamao
de la SGA son: DB_CACHE_SIZE (>=9i, antiguo db_block_buffer en <=8i),
LOG_BUFFER,SHARED_POOL_SIZE.
Ejemplo de parmetros de inicializacin para usar gestin automtica de SGA
(SGA_TARGET):
sga_max_size=80M
sga_target=70M
db_cache_size=0
shared_pool_size=0
large_pool_size=0
java_pool_size=0
streams_pool_size=0
log_buffer=1048576
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
11
SGA:SharedPool
SQLAREA
PL/SQL
AREA
LIBRARYCACHE
DICTIONARYCACHE
SHAREDPOOL(shared_pool_size)
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
12
SGA:SharedPool
En la library cache se almacena informacin sobre las
sentencias SQL y PL/SQL, usadas recientemente. Est
formadapordosestructuras:
Shared SQL rea; se almacenan los planes de ejecucin y los
rbolessintcticos(parsetree)delassentenciasSQL.
Shared PL/SQL rea; contiene las unidades de programa
compiladas y analizadas sintcticamente (parsed): procedures,
functions,packagesytriggers.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
13
SGA:DatabaseBufferCache
Almacenacopiasdelosbloquesdedatos,extradosdelosficherosdedatos(datafiles);y
estgestionadoporunalgoritmoLRU.
Cuando se procesa una query, el proceso servidor busca los bloques de datos en la
DatabaseBufferCache;sinolosencuentra,losleedelosficherosdedatosyguardauna
copiaenlaDatabaseBufferCache.
Su tamao depende principalmente del parmetro DB_CACHE_SIZE (desde 10g mejor
usar sga_target, dejando db_cache_size a cero o un valor mnimo). Puede modificarse
dinmicamente(sinsobrepasarSGA_MAX_SIZE):
ALTERSYSTEMSETDB_CACHE_SIZE=96M;
Sepuedendefinirvariascachsdedatosindependientes:
DB_CACHE_SIZE. Dimensiona la cach por defecto, que siempre existe y cuyo tamao no
puedevalercero.
DB_KEEP_CACHE_SIZE. Dimensiona la cach donde se guardarn los bloques de tablas que
seusanfrecuentemente.
DB_RECYCLE_CACHE_SIZE.Dimensionalacachquealmacenalosbloquesdelastablasque
seusanpoco.
ElusodeunauotracachloindicaremosconelparmetroBUFFER_POOL,delaclausulaSTORAGEdelatabla:
keep,recycleodefault:ALTERTABLEmitablaSTORAGE(BUFFERPOOLKEEP);
Sepuedendefinircachsadicionalesparatablasquenousaneltamaodebloquepordefectodela
BD; con los parmetros DB_nK_CACHE_SIZE, por ejemplo, DB_16K_CACHE_SIZE. Despus se
creauntablespacequeuseelnuevotamaodebloque(cretetablespace...BLOCKSIZE16384;).Util
alimportaruntablespacedeotraBDconotrodb_block_size.
Desde10g,sepuedevaciarconALTERSYSTEMFLUSHBUFFER_CACHE;.Vacacompletamente
lacachdedatosdelaSGA.OJO!!!,nousarenproduccin.Utilsisequieremedirelrendimiento
desentenciassqlcomosiseejecutasenporprimeravez.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
14
SGA:RedoLogBufferCache
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
LGWR
DML
USERS
ARQUITECTURADELABD
15
SGA:LargePool
EsunreadememoriadelaSGA,aconfigurarslosiseusa:
unentornodeservidorescompartidos(sharedserveroMTS)
recoverymanager(RMAN)
parallelquery
Con MTS, almacena informacin sobre las sesiones conectadas a
travs de servidores compartidos: UGA, I/O y operaciones de
backupyrecuperacin.
NohaceusodealgoritmoLRUparasugestin.
Su tamao depende del parmetro large_pool_size (en bytes), del
ficherodeinicializacin,quesepuedemodificardinmicamente(sin
que el tamao total de la SGA sobrepase el parmetro
SGA_MAX_SIZE):
ALTERSYSTEMSETLARGE_POOL_SIZE=64M;
Desde 10g mejor usar sga_target, dejando large_pool_size a cero
(oconunvalormnimo).
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
16
SGA:JavaPool
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
17
ProgramGlobalArea(PGA)
Es una zona de memoria, fuera de la SGA, reservada para cada
procesodeusuarioqueseconectaalaBD.
Se crea cada vez que se arranca un nuevo proceso servidor (o un
procesobackground);yseliberacuandoelprocesotermina.
En un entorno de servidores dedicados (dedicated server) contiene:
sort area, informacin de sesin (privilegios de usuario y estadsticas
de sesin), estado de los cursores (etapa del procesamiento de cada
sentencia SQL que est usando actualmente la sesin), pila (stack
space).
Con servidores compartidos (MTS), parte de estas estructuras se
guardanenlaSGA.SiseactivalaLargePoolsealmacenanenella,si
nosequedanenlaSharedPool.
PGA_AGGREGATE_TARGET (>=9i). Valor mnimo 10M, y
default=20%SGA.. Vista V$PGASTAT. Tamao = en OLTP
RAM*0.80*0.20(enDSSRAM*0.80*0.50).Activar:siesdistintodecero
(junto a WORKAREA_SIZE_POLICY=AUTO). Habilita el uso de una
zonadememoriacompartidaparalasPGA,evitandolanecesidadde
asignarparmetroscomoSORT_AREA_SIZEoHASH_AREA_SIZE.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
18
ProgramGlobalArea(PGA)
PILA
PILA
SESION
PGA
PGA
(servidordedicado)
SQL
SHAREDPOOL
SGA
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
(servidorcompartido)
SQL
SHAREDPOOL
SESION
LARGEPOOL
SGA
ARQUITECTURADELABD
19
Estructuradeprocesos
Procesos de usuario: se arranca uno cuando un usuario solicita una
conexinalaBD.EstablecelaconexinconlaBDperonointeracta
directamenteconella.
Procesosservidores:creadocuandoseestablecelaconexinalaBD.
EselprocesoqueinteractaconlaBD,paracadasesin.Unproceso
servidorpuedeserdedicadoocompartido.Unodedicadoslogestiona
la peticiones de la sesin que lo inicia; sin embargo, uno compartido
gestionalaspeticionesdevariosprocesosdeusuario.
Procesos background: disponibles cuando se arranca una instancia
Oracle. Son los siguientes: DBWR, PMON, SMON, LGWR y CKPT; y
nuevosen10g:PSP0(ProcessSpawner),MMAN(MemoryManager),
MMON (Memory Monitor), MMNL (Memory Monitor Light).
Opcionalmente podemos tener: ARCH, RECO, Dispatchers (Dnnn),
Shared
Servers
(Snnn),
etc.
El
parmetro
BACKGROUND_DUMP_DEST, del fichero de inicializacin, define el
directorio donde se guardan los ficheros de traza de los procesos
background.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
20
Procesosbackground(DBWR)
Nombredelproceso:DBW0aDBW9yDBWaDBWj(mximo20).
DB_WRITER_PROCESSES.Ndeprocesosarrancados.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
21
Procesosbackground(LGWR,SMON)
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
22
Procesosbackground(PMON,CKPT,ARCH)
PMON.Seactivaperidicamente,recuperandolosrecursosdespusdequeun
procesofalle:hacerollbackdelastransaccionesqueelusuariotenaencurso,
liberabloqueosaniveldetabla/filayotrosrecursosreservadosporelusuario,y
vuelveaarrancardispatchersmuertos(deaddispatchers).
CKPT.AvisaalDBWRcuandosucedeuncheckpointyactualizalascabeceras
delosficherosdedatosydecontrol(elDBWRvolcarlosbuffersactualizados
alosficherosdedatos).Siloscheckpointssucedenmuyfrecuentementepuede
habercontencinendisco.Sitardanmuchosealargarelprocesoderecovery.
Comomuchosucederuncheckpointalllenarseelredolog.
ARCH. Proceso opcional. Archiva automticamente los redo log online si se
activaelmodoARCHIVELOG;asegurandoqueseregistrantodosloscambios
hechos en la base de datos. Archiva el redo log que se ha llenado, cuando
sucedeunlogswitch.
MMAN (>=10g). Memory Manager. Gestiona Automatic Shared Memory
Managment.
MMON (>=10g). Memory monitor. Genera snapshots del AWR (abre procesos
esclavosM000).
MMNL (>=10g). Memory Monitor Light. Captura frecuentemente session
history(V$ACTIVE_SESSION_HISTORY)ycalculamtricas.
PSP0(>=10G).Processspawner.CreaygestionaotrosprocesosOracle.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
23
ESTRUCTURALGICA
Laestructuralgicadelabasededatosdeterminaelusoquesehace
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
24
ESTRUCTURALGICA
BasedeDatos,Tablespaces,Segmentos,ExtensionesyBloques
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
25
ARQUITECTURAOFA
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
26
USUARIOSADMINISTRADORESDELA
BD
Cuando creamos una BDO se crean automticamente los
usuariosSYSySYSTEM,ambosconelrolDBA.
ARQUITECTURADELABD
27
FICHERODEAUTENTICACIN
orapwdfile=nombre_ficheropassword=clave
entries=mximo_de_usuarios
Nota:elficherosellamarorapw$ORACLE_SIDyestaren$ORACLE_HOME/dbs.
ActivaremoselparmetroREMOTE_LOGIN_PASSWORDFILEdelinit:
EXCLUSIVE.PermitedarelprivilegioSYSDBAaotrosusuarios(ademsdel
SYS).Slounainstanciausaelfichero.
SHARED. El nico usuario reconocido por le fichero es el SYS. El fichero
puedesercompartidoporvariasinstancias.
Incluiremoselusuarioenelficherodeclaves(paraelSYSnohayquehacerlo):
GRANTSYSDBATOusuario;
Nota:enV$PWFILE_USERSestnlosusuariosconSYSDBAy/oSYSOPER.
ConectaremosalaBD(elusuarioOraclequeseconectasiempreeselSYS):
CONNECTusuario/claveASSYSDBA
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
28
PROCESODECONSULTA
1. El proceso de usuario enva la
sentenciaSQLalprocesoservidor.
2. El proceso servidor busca la
sentenciaSQLenlaSharedPool.Si
no la encuentra, la compila y la
guardaenlaSharedPool.
3. El proceso servidor accede a los
datos en la Database Buffer Cache.
Si no los encuentra, accede
directamentealosficherosdedatos,
llevando los datos a la Database
BufferCache.
4. El proceso servidor devuelve los
datos al proceso de usuario q inici
laconexin.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
3
1
2
4
1
3
ARQUITECTURADELABD
29
PROCESODEACTUALIZACIN
En primer lugar se repiten las fases 1
(envo
de
la
sentencia),
2
(compilacin) y 3 (acceso a los datos)
vistasenelprocesodeconsulta.
4. Se guarda una copia del dato (antes
del cambio) en un segmento de
Rollback (por si se deshace la
transaccin).
5. Se modifican los bloques de datos en
la Database Buffer Cach. El DBWR
(de forma asncrona) los llevara a los
ficheros de datos cuando suceda un
checkpoint.
6. Se guardan en la cach de Redo las
"redo entries" (vector de cambios de
cada bloque modificado) necesarias
para registrar el cambio q se va a
hacer (el LGWR vuelca el buffer al
ficheroredologactivo,cuandosehace
commitocada3segundos).
7. El proceso servidor devuelve el
nmero de filas actualizadas al
procesodeusuario.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
3
1
2
7
1 5
3
ARQUITECTURADELABD
30
VISTASDELDD
V$DATABASE(Basededatos).
V$INSTANCE(Instancia).
V$SGA(SGA).
V$SGAINFO(GestindinmicadelaSGA).
V$SGASTAT(SGAdetallada).
V$BUFFER_POOL(Buffersenlacachdedatos)
V$SQLAREA(SentenciasSQL).
V$PROCESS(Procesos).
V$BGPROCESS(Procesosbackground).
V$DATAFILE(FicherosdedatosdelaBD).
V$CONTROLFILE(FicherosdecontroldelaBD).
V$LOGFILE(FicherosredologdelaBD).
DBA_TABLESPACES(TablespacesdelaBD).
DBA_SEGMENTS(Segmentosquehayenlostablespaces).
DBA_EXTENTS(Extensionesquecomponenlossegmentos).
DBA_USERS(UsuariosdelaBD).
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
31
PRACTICASTEMA1
1.1.Comprobarlaasignacindevariablesdeentornonecesariaspara
conectarnosalaBD:
echo$ORACLE_HOME
echo$ORACLE_SID
echo$LD_LIBRARY_PATH
echo$PATH
1.2.Identificarlosprocesosquecomponeninstancia:
psef|grep$ORACLE_SID
selectusername,programfromv$processwherebackgroundisnotnull;
selectname,descriptionfromv$bgprocesswherePADDR!='00';
1.3.VereltamaodelaSGAdelaBD:
1.4.Comprobarvaloresdeparmetrosdelinitrelacionadosconel
tamaodelaSGA:
select*fromv$sgainfo;
select*fromv$sgastat;
select*fromv$sgastatwherenamein('librarycache','rowcache','sql
area','buffer_cache','log_buffer');
showparametersga_target
showparametersga_max_size
showparametershared_pool_size
showparameterdb_cache_size
showparameterdb_block_size
showparameterlog_buffer
showparameterlarge_pool_size
showparameterjava_pool_size
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
32
PRACTICASTEMA1.
1.5.ComprobarficherosquecomponenlaBDyubicarlosenla
estructuraOFA:
lsl/u0?/oradata/$ORACLE_SID
selectnamefromv$datafile;
selectnamefromv$tempfile;
selectmemberfromv$logfile;
selectnamefromv$controlfile;
1.6.IdentificarlaestructuralgicadelaBD:tablespaces,segmentos,
extensiones.
Selecttablespace_namefromdba_tablespaces;
selecttablespace_name,file_namefromdba_data_filesorderby
tablespace_name,file_name;
selecttablespace_name,segment_type,count(*)segmentosfrom
dba_segmentsgroupbytablespace_name,segment_type;
selecttablespace_name,segment_type,count(*)extensionesfrom
dba_extentsgroupbytablespace_name,segment_type;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
33
PRACTICASTEMA1.
1.7.Consultarinformacinsobrelabasededatos(v$database)yla
instancia(v$instance).
selectname,created,log_mode,checkpoint_change#,open_mode,
platform_name,current_scnfromv$database;
selectinstance_name,host_name,version,startup_time,status,
archiver,logins,database_statusfromv$instance;
1.8.Localizarelprocesoservidorasociadoamisesin(v$processy
v$session).Esunservidordedicadoocompartido?
selecta.server,a.usernamedbuser,a.programuser_program,b.spid
server_process,b.programserver_program
fromv$sessiona,v$processb
wherea.username=USERanda.PADDR=b.ADDR;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
34
PRACTICASTEMA1.
1.9.CuantoocupalaDictionarycacheylaLibrarycacheentuBD?
(v$sgastat)
selectSQL_TEXT,PERSISTENT_MEM,EXECUTIONS,LOADS,
DISK_READS,CPU_TIME,ELAPSED_TIMEfromv$sqlareaorderby
DISK_READSdesc;
1.10.VerlaactividaddelaLibraryCache(v$librarycache).
selectnamespace,gethitratio,gethitratiofromv$librarycache;
1.11.VerlassentenciasSQLqueguardalaSharedPool(v$sqlarea).
selectsql_textfromv$sqlarea;
1.12.Crearelficherodeautenticacinyactivarlo(orapwd).
orapwdfile=$ORACLE_HOME/dbs/orapwCURSOxypassword=miclave
entries=5
remote_login_passwordfile=EXCLUSIVE"
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARQUITECTURADELABD
35
TEMA2
ARRANQUEYPARADADELABASEDE
DATOS
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
36
TEMA2.
ARRANQUEYPARADADELABD
Ficherosdeinicializacin:init.orayspfile.ora
CreacindelaBD
OMF(OracleManagedFiles)
Arranquedelabasededatos
Comandostartup
Comandoalterdatabase
Pararlabasededatos
FicheroalertSID.Log
Trazasdelosprocesosbackground
Trazasdelosprocesosdeusuario
Diccionariodedatos
AutomaticStorageManagment(ASM)
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
37
FICHEROSDEPARMETROSDE
INICIALIZACINI
Losparmetrosdelspfilesemodificancon:
ALTERSYSTEMSETparametro=valor[SCOPE=MEMORY
|SPFILE|BOTH]
Nota.Sisloqueremosmodificarelparmetroenelspfile,indicaremosSPFILE.
Parahacerelcambiosoloenmemoria,especificarMEMORY.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
38
FICHEROSDEPARMETROSDE
INICIALIZACINII
Haydostiposdeparmetros:
Explcitos:losqueseindicanenelficherodeparmetros.
Implcitos:elresto,quetomarnunvalorpordefecto.
Laformadeindicarvaloralosparmetrosesparametro=valor.
Elsmbolo#indicaelcomienzodeuncomentario,pudiendoestaral
principiooenmediodelalnea.
Enelinit.ora,elparmetroifilepermiteincluirotrosficheroscon
parmetros.
Unalistadevaloresseindicarentreparntesis,separandolosvalores
porcomas.
Paraindicarunvalordetipocadenadecaractereshayqueencerrarlo
entrecomillassimples.
SiusamosOFA,laubicacintpicaparaelinit.oraes
$ORACLE_BASE/admin/$ORACLE_SID/pfile.Despuscreamosunenlaceen
$ORACLE_HOME/dbs(ubicacinpordefecto).
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
39
EJEMPLODEINIT.ORA
db_name=CURSOxy
db_block_size=2048
compatible=10.2.0
control_files=(/u02/oradata/CURSOxy/control1.ctl,
/u03/oradata/CURSOxy/control2.ctl)
undo_management=auto
undo_tablespace=undo_rbs
background_dump_dest=/u01/app/oracle/admin/CURSOxy/bdump
core_dump_dest=/u01/app/oracle/admin/CURSOxy/cdump
user_dump_dest=/u01/app/oracle/admin/CURSOxy/udump
max_dump_file_size=10240
sga_max_size=120M
sga_target=100M
db_cache_size=0
shared_pool_size=0
large_pool_size=0
java_pool_size=0
log_buffer=2886656
log_checkpoint_interval=0
log_checkpoint_timeout=1800
pga_aggregate_target=10M
processes=30
remote_login_passwordfile=EXCLUSIVE
nls_territory=spain
nls_language=spanish
Nota.EsunficherodetextoquehayquemantenermanualmenteconuneditorASCII(vi,
notepad,etc).
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
40
PARMETROSBSICOSDE
ORACLE10g
Como curiosidad,sonaquellosparmetrosqueseraobligatoriofijar
para una instancia (los dems se podran dejar por defecto).
Realmente sto no debe hacerse (dejar el resto de parmetros sin
asignarparaquetomensusvalorespordefecto).
COMPATIBLE
CONTROL_FILES
DB_BLOCK_SIZE
DB_CREATE_FILE_DEST
DB_CREATE_ONLINE_LOG_DEST
DB_DOMAIN
DB_NAME
DB_RECOVERY_FILE_DEST
DB_RECOVERY_FILE_DEST_SIZE
INSTANCE_NUMBER
JOB_QUEUE_PROCESSES
LOG_ARCHIVE_DEST_n
LOG_ARCHIVE_DEST_STATE_n
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
NLS_LANGUAGE
NLS_TERRITORY
OPEN_CURSORS
PROCESSES
REMOTE_LISTENER
REMOTE_LOGIN_PASSWORDFILE
ROLLBACK_SEGMENTS
SESSIONS
SHARED_SERVERS
STAR_TRANSFORMATION_ENABLED
UNDO_MANAGEMENT
UNDO_TABLESPACE
ARRANQUEYPARADADELABD
41
CREARLABASEDEDATOS
yborrarla
ParacrearunaBDnecesitamos:
ConectarnosalservidorOraclecomoSYSASSYSDBA,autenticndonoscontra
elS.O.ousandounficherodeclaves.
Suficientememoriaparaarrancarlainstanciayespacioendiscoparacrearla
BD.
ParaubicarlosficherosquecomponenlaBD:
Guardaremos,almenos,doscopiasdelficherodecontrol,endiscosseparados.
Multiplexaremoslosredologendiscosdiferentes(separadosdelrestodelaBD).
Separaremoslosficherosdedatosqueprovoquencontencinendisco;por
ejemplo:datos,ndices,system(DD),tempyrollback.
LaBDlapodemoscrearconelasistentegrfico(enLinuxdbca)oconel
comandoCREATEDATABASE:
Crearemosunficheroinit.ora,ysiqueremos,unspfile.ora.
ArrancaremoslasinstanciaconSTARTUPNOMOUNT.
CrearemoslaBDconelcomandoCREATEDATABASE.
Ejecutaremoslosscriptscatalog.sqlycatproc.sqlqueestnen
$ORACLE_HOME/rdbms/admin.
Desde10gsepuedeborrarconDROPDATABASE;(slomontada).
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
42
EJEMPLODECREACIONDEBASE
DEDATOS
connect/assysdba
startupnomount
CREATEDATABASE"CURSOxy"
maxdatafiles254
maxinstances1
maxlogfiles32
charactersetWE8ISO8859P15
DATAFILE'/u02/oradata/CURSOxy/system01.dbf'SIZE260M
AUTOEXTENDONNEXT10M
EXTENTMANAGEMENTLOCAL
SYSAUXDATAFILE'/u02/oaradata/CURSOxy/sysaux01.dbf'size100M
EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO
UNDOTABLESPACEUNDO_RBS1
DATAFILE'/u03/oradata/CURSOxy/rbs01.dbf'SIZE10M
DEFAULTTABLESPACEUSERS
DATAFILE'/u02/oradata/CURSOxy/users01.dbf'SIZE10M
DEFAULTTEMPORARYTABLESPACETEMP
TEMPFILE'/u03/oradata/CURSOxy/temp01.dbf'SIZE10M
EXTENTMANAGEMENTLOCALUNIFORMSIZE64K
logfile'/u04/oradata/CURSOxy/redo01.log'SIZE3M,
'/u04/oradata/CURSOxy/redo02.log'SIZE3M,
'/u04/oradata/CURSOxy/redo03.log'SIZE3M;
rem***CREACIONDELASVISTASDELDD***
@$ORACLE_HOME/rdbms/admin/catalog.sql
@$ORACLE_HOME/rdbms/admin/catproc.sql
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
43
ORACLEMANAGEDFILES(OMF)
OMFpermitequeOracleseencarguedelacreacindelosficherosque
componenlaBD,simplificandolaadministracindelamisma.
OMFseactivamediantedosparmetrosdeinicializacin:
DB_CREATE_FILE_DEST.Defineeldirectoriodondeseubicarnlosficheros.
DB_CREATE_ONLINE_LOG_DEST_N.Establecelosdirectoriosdondeseguardarn
losficherosdecontrolyredolog;dondeNpuedevalerde1a5.
Nota.Sepuedenactivarambosparmetrososlounoellos.
EjemploparacrearunaBD,usandoOMF,separandolosficherosredologyde
controldelresto:
Parmetrosdeinicializacin:
DB_CREATE_FILE_DEST='/u02/oradata/CURSOxy'
DB_CREATE_ONLINE_LOG_DEST_1='/u03/oradata/CURSOxy'
DB_CREATE_ONLINE_LOG_DEST_2='/u04/oradata/CURSOxy'
CreacindelaBD:
CREATEDATABASECURSOxy
charactersetWE8ISO8859P15
UNDOTABLESPACEUNDO_RBS
DEFAULTTABLESPACEUSERS
DEFAULTTEMPORARYTABLESPACETEMP;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
44
ARRANCARLABASEDEDATOS
Cuando arrancamos una BDO, pasa por varios estados hasta que
finalmentequedaaccesiblealosusuarios:nomount,mountyopen.
En el primer estado (nomount) se arranca la instancia: lectura del
fichero de parmetros, creacin de la SGA, arranque de los procesos
backgroundyaperturadelficheroalert$ORACLE_SID.log.
Nota: el fichero de parmetros se busca en $ORACLE_HOME/dbs,
comenzando por spfile$ORACLE_SID.ora. Si no lo encuentra, sigue con
spfile.ora,yfinalmenteinit$ORACLE_SID.ora.
SeguidamentelaBDsemonta(mount)abriendoelficherodecontroly
obteniendo de l los nombres de los ficheros que la componen:
datafilesyredolog.
Finalmente se abre la BD (open), procediendo a la apertura de los
ficheros de datos (datafiles) y los ficheros redo log. El servidor oracle
comprueba la consistencia de la base de datos, y si es necesario el
procesoSMONinicialarecuperacindelainstancia.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
45
COMANDOSTARTUP
ArrancalainstanciayabrelaBD.Permitepararelprocesode
arranque de la BD en cualquiera de sus fases (NOMOUNT,
MOUNT).
STARTUP(abrelabasededatosconelficherodeparmetros
pordefecto).
STARTUPPFILE=/home/CURSO/cursoXY/miinit.ora
STARTUPNOMOUNT(paracrearlabasededatos).
STARTUP MOUNT (para renombrar datafiles, activar
ARCHIVELOGohacerunarecuperacincompletadelaBD).
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
46
COMANDOALTERDATABASEY
ENCOLARYSUSPENDERLABD
Permitecambiarelestadodelabasededatos,p.e.deNOMOUNTaMOUNT,o
deMOUNTaOPEN.TambinseutilizaparadejarlaBDenmodoREADONLY.
ALTERDATABASE{MOUNT|OPEN}
ALTERDATABASEOPEN[READWRITE|READONLY]
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
47
PARARLABASEDEDATOS
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
48
COMANDOSHUTDOWN
Sintaxis:
SHUTDOWN[NORMAL|TRANSACTIONAL|IMMEDIATE|ABORT]
Tiposdeparada.Cadaunadelasopcionesdeparadasecomportade
formadiferenteencuantoaesperaraqueterminentransaccionesy
sesiones,hacercheckpoint,odesmontarycerrarlaBD:
EsperarTransacciones
EsperarSesiones
Checkpoint
CerrarBD
DesmontarBD
Pararinstancia
NORMAL
S
S
S
S
S
S
TRANSACTIONAL
S
N
S
S
S
S
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
IMMEDIATE
N
N
S
S
S
S
ARRANQUEYPARADADELABD
ABORT
N
N
N
N
N
S
49
FICHEROalert.log
EselficherodelogdelaBDylaprimerareferenciaparaelDBAenel
daadadelaadministracindelamisma.
Pordefectoesten$ORACLE_HOME/rdbms/log;oeneldirectorioque
indiqueelparmetroBACKGROUND_DUMP_DESTdelinit. Siusamos
OFA,unaubicacintpicaes$ORACLE_BASE/admin/$ORACLE_SID/bdump.
Recogetantoinformacindeestadocomoerrores:
arranqueyparada,
parmetrosdelinitsinvalorespordefecto,
arranquedelosprocesosbackground,
cambiodeficheroredolog(logswitch),
creacindetablespacesysegmentosderollback,
comandosalter(alterdatabase,altertablespace,etc),
errores ORA600 y los que indican falta de espacio (llenado de
tablas,ndices,tablespaces,etc).
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
50
EJEMPLODEalert.log
TueOct2613:11:082006
StartingORACLEinstance(normal)
...
StartingupORACLERDBMSVersion:
10.2.0.2.0.
Systemparameterswithnondefaultvalues:
processes=30
sga_max_size=83886080
__shared_pool_size=50331648
shared_pool_size=0
__large_pool_size=4194304
large_pool_size=0
__java_pool_size=4194304
java_pool_size=0
...
db_cache_size=0
compatible=10.2.0
log_buffer=2886656
...
db_name=CURSOxy
pga_aggregate_target=10485760
PMONstartedwithpid=2,OSid=18002
PSP0startedwithpid=3,OSid=18004
MMANstartedwithpid=4,OSid=18006
DBW0startedwithpid=5,OSid=18008
LGWRstartedwithpid=6,OSid=18010
CKPTstartedwithpid=7,OSid=18012
SMONstartedwithpid=8,OSid=18014
RECOstartedwithpid=9,OSid=18016
MMONstartedwithpid=10,OSid=18018
MMNLstartedwithpid=11,OSid=18020
TueOct2613:11:082006
ALTERDATABASEMOUNT
...
SMON:enablingcacherecovery
MonOct2613:11:132006
SuccessfullyonlinedUndoTablespace1.
MonOct2613:11:132006
SMON:enablingtxrecovery
MonOct2613:11:132006
DatabaseCharactersetisWE8ISO8859P15
...
TueOct2613:11:162006
Completed:ALTERDATABASEOPEN
WedOct2613:52:062006
Thread1advancedtologsequence552
Currentlog#3seq#4mem#0:
/home/u04/oradata/CURSOxy/redo03.log
Nota. En el ejemplo de arriba se puede ver el arranque de la instancia, los parmetros asignados, los procesos
arrancados,comosemontalaBD,ycmofinalmenteseabrelaBDyseempiezanausarlosficheroredolog.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
51
FICHEROSDETRAZADELOS
PROCESOSBACKGROUND
Registranerroresproducidosenlosprocesosbackgrounddela
instancia:LGWR,DBWR,SMON,PMON,etc.
Se generan en el directorio indicado por el parmetro de
inicializacin BACKGROUND_DUMP_DEST, que por defecto
es $ORACLE_HOME/rdbms/log. Si se utiliza la arquitectura
OFAparaubicarlosficherosOracle,unaubicacintpicapara
estos
ficheros
de
traza
es
$ORACLE_BASE/admin/$ORACLE_SID/bdump.
Su
nombre
sigue
el
patrn
${ORACLE_SID}_nombreproceso_pid.trc;
por
ejemplo,
cursoXY_smon_16432.trc(losnombresdelosficherosdetraza
enUnix/Linuxestnsiempreenminsculas).
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
52
FICHEROSDETRAZADELOS
PROCESOSDEUSUARIO
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
53
DICCIONARIODEDATOS(DD)
ElDDcontieneinformacinsobre:ladefinicindetodoslosobjetosde
la BD (tablas, vistas, ndices, sinnimos, secuencias, procedimientos,
funciones,paquetes,triggers,etc),elespacioocupadoporcadaobjeto,
condiciones de integridad, usuarios, privilegios, roles, as como
auditoradelsistema.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
54
VISTASDELDICCIONARIODE
DATOS
ElDDsemodificacadavezquelanzamosunasentenciaDDL.
LasvistasestticasqueformanpartedelDDsondetrestipos:dba,all
y user. Cada una de ellas tendr un prefijo asociado que la ubica en
unodedichostipos.
DBA:todoslosobjetosdelaBD.
ALL:todoslosobjetosaccesiblesporelusuarioactual.
USER:todoslosobjetospropiedaddelusuarioactual.
LavistaDICTIONARYcontieneunalistadetodaslasvistasdelDD;y
enDICT_COLUMNStenemoseldetalledelascolumnasdecadauna
deellas.
EjemplosdevistasdelDD:
ElDDtambintienelasllamadastablasdinmicas,cuyasvistastienenelprefijoV$(como
V$SESSION).Secreanalarrancarlainstanciayresidenenmemoria.Cuandocerramosla
BD(yportantolainstancia),desaparecenyconellassucontenido.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
55
AUTOMATICSTORAGE
MANAGEMENT(ASM)I
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
56
AUTOMATICSTORAGE
MANAGEMENT(ASM)II
CadaBDqusaASM,tienedosnuevosprocesosbackground:
OSMB:comunicacinentreBDylainstanciaASM.
RBAL:abreycierralosdiscosenlosgrupos,enlapartedelaBD.
Parmetrosdelinit(parainstanciaASMy/oBDqlausa):
instance_type=ASM(paraunaBDesRDBMS)
db_unique_name=+ASM(valorpordefecto)
asm_power_limit=1(mximo11;velocidadrebalanceo;1eselmslento)
asm_diskstring(limitalosdispositivosdediscousablesparagruposdediscos;
ejemplo:'/dev/hd*').
asm_diskgroups(nombresdegruposdediscosqsemostarn
automticamente;pordefectovaleNULLylosmontatodos).
large_pool_size(almenos8M,paraejecutarlospaquetesinternosdeusode
ASM)
EjemplodeinitdeunainstanciaASM
instance_type=ASM
db_unique_name=+ASM
asm_power_limit=1
asm_disk_string=/dev/vgora01/rdsk/*,/dev/vgora02/rdsk/*
asm_disk_groups=diskgrp1,diskgrp2
large_pool_size=16M
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
57
VISTASDELDD
V$INSTANCE
V$DATABASE
V$SESSION
V$PROCESS
V$PARAMETER
V$PARAMETER2
V$SYSTEM_PARAMETER
V$SYSTEM_PARAMETER2
DICTIONARY
DICT_COLUMNS
V$ASM_DISKGROUP
V$ASM_CLIENT
V$ASM_DISK
V$ASM_FILE
V$ASM_TEMPLATE
V$ASM_OPERATION
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
58
PRACTICASTEMA2.
2.1.Ficheroinit.ora.ArranqueyparadadelaBD.
Localizarelficheroinit.ora(yspfilesiexiste)denuestraBD:
Anotarelvalordelosparmetros:db_block_size,sga_target,sga_max_size,
shared_pool_size,db_cache_size,log_buffer,processes.
lsl$ORACLE_HOME/dbs/init$ORACLE_SID.ora
lsl$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
more$ORACLE_HOME/dbs/init$ORACLE_SID.ora
grepprocesses$ORACLE_HOME/dbs/init$ORACLE_SID.ora
cp$ORACLE_HOME/dbs/init$ORACLE_SID.orainit01xy.ora
echoprocesses=17>>init01xy.ora
tailinit01xy.ora
STARTUP
showparameterprocesses
SHUTDOWNimmediate
STARTUPpfile=init01xy.ora
showparameterprocesses
SHUTDOWN
SHUTDOWNIMMEDIATE
Crearfichero/home/CURSO/cursoxy/init01xy.ora,copiadelinitCURSOxy.ora,ymodificar
processes=17.
ArrancarlaBDycomprobarvalordeparmetros,porqunohatomadoelnuevovalor?.
PararlaBDyarrancarconelinit01xy.ora.Comprobarparmetroprocesses.Abrirotra
conexindesqlplusyverquocurre.
PararlaBDdeformanormal,estandoconectadoalgnusuarioyverquocurre.Yqu
sucedecuandotodoslosusuariossedesconectan.
RepetirlaparadadelaBD,estandoconectadoalgnusuario,deformaquenoespere:
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
59
PRACTICASTEMA2.
2.2.ArranquedelaBD(STARTUP).Comprobarlasdiferentesfasesenel
arranquedelaBD.
Arrancarslolainstancia(NOMOUNT)yconsultaralgnparmetro.Quocurrealaccedera
V$CONTROLFILE.
STARTUPNOMOUNT
SHOWPARAMETERprocesses
SELECT*FROMV$CONTROLFILE;
AhoramontarlaBDyvolveraconsultarV$CONTROLFILE.QuesucedealleerDBA_USERS.
ALTERDATABASEMOUNT
SELECT*FROMV$CONTROLFILE;
SELECT*FROMDBA_USERS;
AbrirlaBDenmodoREADONLYycrearunatabla.ActivarmodoREADWRITEyvolveracrearlatabla.
ALTERDATABASEOPENREADONLY
CREATETABLEMITABLA(C1VARCHAR2(2));
ALTERDATABASEOPENREADWRITE
CREATETABLEMITABLA(C1VARCHAR2(2));
2.3.Ficheroalert.logyficherosdetraza.Diccionariodedatos.
BuscaryconsultarelficherodealertdelaBD.
lsl$ORACLE_HOME/rdbms/log/alert_$ORACLE_SID.log
lsl$ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log
catalert_$ORACLE_SID.log
tail26falert_$ORACLE_SID.log
Buscarsihayficherosdetraza.
lsl$ORACLE_HOME/rdbms/log/*.trc
lsl$ORACLE_BASE/admin/$ORACLE_SID/bdump/*.trc
lsl$ORACLE_BASE/admin/$ORACLE_SID/udump/*.trc
SacarlalistadevistasdelDD.Consultarlascolumnasdedichasvistas.
Select*fromDICTIONARY;
Select*fromDICT_COLUMNS;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
60
PRACTICASTEMA2.
2.4. Impedir las conexiones de usuarios, de modo que el DBA s pueda
conectarse. Intenta conectarte como scott/tiger. Volver a permitir
conexionesdeusuarios.
STARTUPRESTRICT(silaBDestparada)
ALTERSYSTEMENABLERESTRICTEDSESSION;(silaBDestabaarrancada)
ALTERSYSTEMDISABLERESTRICTEDSESSION;
ALTERSYSTEMCHECKPOINT;
insertintoscott.deptvalues(99,'FORMACION','MURCIA');
SHUTDOWNABORT
STARTUP
SELECT*FROMSCOTT.DEPT;
insertintoscott.deptvalues(99,'FORMACION','MURCIA');
COMMIT;
SHUTDOWNABORT
STARTUP
SELECT*FROMSCOTT.DEPT;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
61
PRACTICASTEMA2.
2.6.ConctatecomoSCOTTyhazupdatesobreDEPT(sinhacercommit).
Desdeotrasesin,cierralaBDconSHUTDOWNTRANSACTIONAL.Qu
pasaalhacercommitenlasesindeSCOTT?
CONNECTSCOTT/TIGER
SHUTDOWNTRANSACTIONAL(sesindelsys)
updatedeptsetdeptno=88wheredeptno=99;(sesindescott)
COMMIT;(sesindescott)
2.7.Conctatecomousuarioscott/tiger.Activalatrazayhazunaquerycon
unajoinentreEMPyDEPT(selecta.ename,b.dnamefromempa,deptb
wherea.deptno=b.deptno;).Desactivalatrazayanalizaelficheroqueseha
generadoconelcomandotkprof(esuncomandounix,nodeSQL).
CONNECTSCOTT/TIGER
ALTERSESSIONSETSQL_TRACE=TRUE;
tkprofnombre_fichero_traza.trcsalida_traza.txtexplain=scott/tigersys=no(desde
fueraSQL)
catsalida_traza.txt
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
ARRANQUEYPARADADELABD
62
TEMA3
FICHERODECONTROL
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
63
TEMA3.
FICHERODECONTROL
Ficherodecontrol
Contenidodelficherodecontrol
Multiplexarficherodecontrol
Backupdelficherodecontrol
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
64
FICHERODECONTROL
Setratadeunficherobinario,sinelcualnoesposiblearrancar
SeleealmontarlaBD.
Su tamao es fijo, y depende de los parmetros indicados al
crear la BD con CREATE DATABASE; como por ejemplo
MAXLOGFILESyMAXDATAFILES.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
65
AADIRCOPIASYBACKUPDEL
FICHERODECONTROL
Paraaadirunacopiadelficherodecontrol:
SeparalaBDconSHUTDOWNNORMAL.
Se hace una copia fsica del fichero de control, a nivel del sistema
operativo.EnUnixconelcomandocp.
Seincluyelanuevacopiadelficherodecontrolenelinit.ora(ospfile);enel
parmetroCONTROL_FILES.
ArrancarlaBDconSTARTUP.
EnlavistaV$CONTROLFILEtenemoslalistadetodoslosficherosde
controldelaBD.EnV$CONTROLFILE_RECORD_SECTIONveremos
lasdiferentesseccionesysuestadodeuso.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
66
ALTERDATABASEBACKUP
CONTROLFILETOTRACE
STARTUPNOMOUNT
CREATECONTROLFILEREUSEDATABASE"CURSOxy"NORESETLOGS
NOARCHIVELOG
MAXLOGFILES32
MAXLOGMEMBERS2
MAXDATAFILES1000
MAXINSTANCES1
MAXLOGHISTORY292
LOGFILE
GROUP1'/u04/oradata/CURSOxy/redo01.log'SIZE10M,
GROUP2'/u04/oradata/CURSOxy/redo02.log'SIZE10M,
GROUP3'/u04/oradata/CURSOxy/redo03.log'SIZE10M
DATAFILE
'/u02/oradata/CURSOxy/system01.dbf',
'/u03/oradata/CURSOxy/undo_rbs01.dbf',
'/u03/oradata/CURSOxy/sysaux01.dbf',
'/u02/oradata/CURSOxy/users01.dbf'
CHARACTERSETWE8ISO8859P15;
ALTERDATABASEOPEN;
Nota: si hubiese que indicar la opcin RESETLOGS, se perder el contenido de
losficherosredolog.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
67
VISTASDELDD
V$CONTROLFILE
V$CONTROLFILE_RECORD_SECTION
V$PARAMETER
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
68
PRACTICASTEMA3
3.1.LocalizarelficherodecontroldesdeelSOydesdelaBD.
lslt/u0?/oradata/$ORACLE_SID/*.ctl
lsl/u0?/oradata/$ORACLE_SID/*control*
select*fromv$controlfile;
3.2.Consultar la informacin de la BD relativa al contenido del
fichero de control. Forzar un checkpoint y volver a consultar.
Consultarlasseccionesquecontieneelficherodecontrolysu
estadodeuso.
select*fromv$database;
altersystemcheckpoint;
select*fromv$controlfile_record_section;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
69
PRACTICASTEMA3
3.3. Aade una copia al fichero de control de la BD en
"/u04/oradata/$ORACLE_SID".Creauninitxy02.oraeincluyeelnuevo
fichero.ArrancalaBDconelnuevoinitycompruebaquehatomadola
nuevacopiadelficherodecontrol.
shutdownimmediate
cp/u02/oradata/$ORACLE_SID/control1.ctl
/u04/oradata/$ORACLE_SID/control3.ctl
cp$ORACLE_HOME/dbs/init$ORACLE_SID.orainit02xy.ora
viinit02xy.ora
startuppfile=init02xy.ora
select*fromv$controlfile;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
FICHERODECONTROL
70
TEMA4
GESTIONDELREDOLOG
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
71
TEMA4.
GESTIONDELREDOLOG
Ficherosredolog
Funcionamientodelredolog
Aadir/quitargrupos/miembrosderedo
Configuracindelosficherosredolog
Modoarchivelog
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
72
FICHEROSREDOLOG
Los ficheros redo log guardan todos
los cambios hechos en los datos y
permitenvolveraaplicarlosencasode
cadadelaBD.
Los ficheros redo log se organizan en
grupos.UnaBDrequierealmenosdos
grupos. Cada fichero redo log dentro
deungruposellamamiembro.
La idea es que cada grupo tenga
tantos miembros como discos
disponemos para matener las copias
delosredo.Lousualestener3grupos
deredocon2miembroscadauno.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
73
FUNCIONAMIENTODELREDOLOG
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
74
AADIRGRUPOSYMIEMBROSDE
REDO
AadirgruposalRedoLogOnline:
ALTERDATABASEADDLOGFILEGROUP3
(/u04/oradata/CURSOxy/redo03a.log,
/u03/oradata/CURSOxy/redo03b.log)
SIZE1M;
AadirmiembrosRedoLogOnline:
ALTERDATABASEADDLOGFILEMEMBER
/u03/oradata/CURSOxy/redo01b.logTOGROUP1,
/u03/oradata/CURSOxy/redo02b.logTOGROUP2;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
75
ALTERDATABASEDROPLOGFILEGROUP3;
ElminarmiembrosRedoLogOnline:
ALTERDATABASEDROPLOGFILEMEMBER
/u03/oradata/CURSOxy/redo03b.log;
Nosepuedeborrarelltimomiembroqquededeungrupo(y
dejarlo vaco); tampoco un miembro del grupo en curso; si la
BD est en modo ARCHIVELOG no se puede borrar un
miembrocuyogruponohasidoarchivado;cuandoborramosun
miembro no se elimina el fichero correspondiente del sistema
operativo.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
76
CONFIGURACINDELOS
FICHEROSREDOLOG
Vaciado(porejemplositodoslosmiembrosdeungrupoestncorruptos):
ALTERDATABASECLEAR[UNARCHIVED]LOGFILE
/u02/oradata/CURSOxy/redo02a.log;
Esequivalenteaaadiryborrarunficheroredolog.
Moverorenombrar(ojo!laBDdebeestarslomontada):
!mv/u04/oradata/CURSOxy/redo03a.log
/u03/oradata/CURSOxy/redo3a.log
ALTERDATABASERENAMEFILE/u04/oradata/CURSOxy/redo03a.logTO
/u03/oradata/CURSOxy/redo3a.log;
ConfiguracindelRedoLogOnline:
El nmero de grupos Redo Log Online necesarios, como mnimo ser
dos. Es probable que se necesite alguno ms debido a que, al llenarse
circularmente, los checkpoints no completen. La configuracin debe ser
simtrica:mismonmerodemiembrosparatodoslosgrupos.
Cadamiembrodeungrupodebeestarenundiscodiferente.Ademshay
que separar en diferentes discos los Redo Log Archivados de los Redo
LogOnline,parareducirlacontencinentreelLGWRyelARCH.ElRedo
Log Online tambin debera estar en un disco distinto a los ficheros de
datos,parareducirlacontencinentreLGWRyDBWR.
EnlasvistasV$LOG,V$LOG_HISTORYyV$LOGFILEestnlosdetallesdel
redo.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
77
MODOARCHIVELOG
Pordefecto,laBDsecreaenmodoNOARCHIVELOG(conCREATEDATABASE).
Si activamos el modo ARCHIVELOG se irn archivando los ficheros redo log
conformesellenan(cadavezqueocurreunlogswitch).
LOG_ARCHIVE_START=TRUE, activa archivado automtico (en 10g no hace
falta). El proceso ARCH ir archivando el grupo redo log lleno, despus de cada
logswitch,eneldirectorioindicadoporelparmetroLOG_ARCHIVE_DEST(por
defecto$ORACLE_HOME/dbs/arch).
Nota.Sepuedeverelestadodelarchivadoconelcomandoarchiveloglistdelsqlplus.
Cadavezquesearchivaunredolog,enelficherodecontrolseguardaelnombre
delredologarchivado,nmerodesecuencia,ynmerosSCNmsaltoymsbajo.
Elredologquesehallenadonopuedereutilizarsehastaqueocurrauncheckpoint
yhayasidocopiadoporelprocesoARCH.
Poner BD en modo ARCHIVELOG: SHUTDOWN, backup (por seguridad),
configurar log_archive_dest en el INIT, STARTUP MOUNT, activar archivado
(ALTERDATABASEARCHIVELOG;),abrirBD(ALTERDATABASEOPEN;),parar
BD,yhacerbackup(pueshacambiadoelficherodecontrolylacopiaanteriorya
nonossirve).
Msinformacinenhttp://cursos.atica.um.es/oradoc102/server.102/b14231/archredo.htm#i1006246
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
78
VISTASDELDD
V$LOG
V$LOG_HISTORY
V$LOGFILE
V$DATABASE
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
79
PRACTICASTEMA4
4.1.LocalizarlosficherosredologdelaBD.Cuntosgruposhayycuntos
miembrostienecadagrupo?estncorrectamentedistribuidos?
lslt/u0?/oradata/$ORACLE_SID/*.log
lslt/u0?/oradata/$ORACLE_SID/*redo*
select*fromv$logfile;
4.2. Comprobar el fichero redo log activo. Qu ocurre al forzar un "log
switch"?yalforzaruncheckpoint?
select*fromv$log;
altersystemswitchlogfile;
altersystemcheckpoint;
4.3.Aadeunmiembromsacadagrupo:
/u03/oradata/$ORACLE_SID/redo11.log,
/u03/oradata/$ORACLE_SID/redo12.log,
/u03/oradata/$ORACLE_SID/redo13.log.
alterdatabaseaddlogfilemember
'/u03/oradata/CURSOxy/redo11.log'togroup1,
'/u03/oradata/CURSOxy/redo12.log'togroup2,
'/u03/oradata/CURSOxy/redo13.log'togroup3;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
80
PRACTICASTEMA4
4.4. Aade un grupo ms (grupo 4), con dos miembros de 1M:
/u03/oradata/$ORACLE_SID/redo04.log
y
/u04/oradata/$ORACLE_SID/redo14.log.Aade2gruposms(grupo5y6),con
lasmismascaractersticas.
alterdatabaseaddlogfilegroup4
('/u03/oradata/CURSOxy/redo04.log',
'/u04/oradata/CURSOxy/redo14.log')size1M;
alterdatabaseaddlogfilegroup5
('/u03/oradata/CURSOxy/redo05.log',
'/u04/oradata/CURSOxy/redo15.log')size1M;
alterdatabaseaddlogfilegroup6
('/u03/oradata/CURSOxy/redo06.log',
'/u04/oradata/CURSOxy/redo16.log')size1M;
4.5. Elimina los miembros del grupo 1, de uno en uno. Qu ocurre al eliminar el
ltimo?.Borrarlosgrupos1,2y3.Ojoynoborrarelredologactivo!!!
Alterdatabasedroplogfilemember
'/u04/oradata/CURSOxy/redo01.log';
alterdatabasedroplogfilemember
'/u03/oradata/CURSOxy/redo11.log';
alterdatabasedroplogfilegroup1;
alterdatabasedroplogfilegroup2;
alterdatabasedroplogfilegroup3;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
81
PRACTICASTEMA4
4.6.Cambiarelnombredelosmiembrosderedodelosgrupos4,5y6;aredo1a.log,
redo1b.log,redo2a.log,redo2b.log,redo3a.log,redo3b.log.
shutdownimmediate
OJO,laBDdebeestarslomontada!!!
startupmount
mv/u03/oradata/CURSOxy/redo01.log/u03/oradata/CURSOxy/redo1a.log
mv/u04/oradata/CURSOxy/redo11.log/u04/oradata/CURSOxy/redo1b.log
mv/u03/oradata/CURSOxy/redo02.log/u03/oradata/CURSOxy/redo2a.log
mv/u04/oradata/CURSOxy/redo12.log/u04/oradata/CURSOxy/redo2b.log
mv/u03/oradata/CURSOxy/redo03.log/u03/oradata/CURSOxy/redo3a.log
mv/u04/oradata/CURSOxy/redo13.log/u04/oradata/CURSOxy/redo3b.log
alterdatabaserenamefile'/u03/oradata/CURSOxy/redo01.log'to
'/u03/oradata/CURSOxy/redo1a.log';
alterdatabaserenamefile'/u04/oradata/CURSOxy/redo11.log'to
'/u04/oradata/CURSOxy/redo1b.log';
alterdatabaserenamefile'/u03/oradata/CURSOxy/redo02.log'to
'/u03/oradata/CURSOxy/redo2a.log';
alterdatabaserenamefile'/u04/oradata/CURSOxy/redo12.log'to
'/u04/oradata/CURSOxy/redo2b.log';
alterdatabaserenamefile'/u03/oradata/CURSOxy/redo03.log'to
'/u03/oradata/CURSOxy/redo3a.log';
alterdatabaserenamefile'/u04/oradata/CURSOxy/redo13.log'to
'/u04/oradata/CURSOxy/redo3b.log';
alterdatabaseopen;
select*fromv$logfile;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
GESTIONDELREDOLOG
82
TEMA5
TABLESPACES
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
83
TEMA5.
TABLESPACES
Quesuntablespace
Tablespacessystemysysaux
Createtablespace
Formasdegestionarelespaciodeuntablespace
Tablespacesundo
Tablespacestemporales
TablespacetemporalpordefectodelaBDytablespacepor
defectodelaBD
Tablespaceofflineyrename
Tablespacereadonlyybigfile
Borraruntablespaceygrupos
Redimensionaruntablespace
Moverficheros
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
84
QUEESUNTABLESPACE
Una BD 10g podra tener slo los tablespaces SYSTEM y SYSAUX (>=10g).
Oracle recomienda crear tablespaces adicionales para los datos, ndices,
rollbackysegmentostemporales.
Segn la estructura fsica, una BD est compuesta por: el fichero de control,
ficheros redo log y ficheros de datos. La estructura lgica nos dice que est
compuestadetablespaces,segmentos,extensionesybloques.
Cadatablespaceconsisteenunoomsficherosdels.o.llamadosficherosde
datos(unficheroperteneceaunsolotablespace):
UntablespaceslopuedeperteneceraunaBDalavez.
Puedetenerceroomssegmentos(unsegmentosloperteneceauntablespace).
Exceptuando el tablespace SYSTEM, o aquellos que contengan segmentos de
rollbackactivos,untablespacesepuedeponeroffline,estandolaBDfuncionando.
Untablespacesepuedeponerenmodoreadonlyoreadwrite,yviceversa.
Tiposdetablespaces:permanent(datos:system,sysaux,aplicaciones),undo
(rollback)ytemporary(sort).
Oracle10gpermitecrearbigfiletablespaces,dehasta8EB(millonesde
terabytes).
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
85
TABLESPACES
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
86
TABLESPACESSYSTEMYSYSAUX
LostablespacesSYSTEMySYSAUXsonlosnicosque,cmomnimo,
secreanconlaBD(createdatabase).
EltablespaceSYSTEM(Nodebecontenerdatosdeaplicaciones):
ContieneelDD,incluidosprocedimientosalmacenados,funciones,triggersy
paquetes.
Tambinalbergaalsegmentoderollbacksystem
SepuedemoverelcontenidodeSYSAUXaotrotablespace?
selectoccupant_name,move_procedure,move_procedure_descfrom
v$sysaux_occupants;
Respectoalrestodetablespaces(noSYSTEM),serecomiendaseparar
los ficheros de redo, luego datos de ndices, despus rollback y
segmentos temporales. Tambin es bueno separar datos estticos y
dinmicos.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
87
CREARUNTABLESPACE
CREATE[BIGFILE]TABLESPACE
nombre
[DATAFILEclasula_fichero]
[MINIMUMEXTENTn[K|M]]
[BLOCKSIZEn[K]]
[LOGGING|NOLOGGING]
[clasula_extensiones]
[DEFAULTclasula_storage]
[ONLINE|OFFLINE]
[PERMANENT|TEMPORARY];
clasula_fichero:==nombre_fichero
[SIZEn[K|M][REUSE]|REUSE]
[AUTOEXTENDON|OFF[NEXTn[K|M]]
[MAXSIZEn[K|M]]]
clasula_extensiones:==EXTENTMANAGEMENT
[DICTIONARY|LOCAL[AUTOALLOCATE|
UNIFORM[SIZEn[K|M]]
[SEGMENTSPACEMANAGEMENTAUTO|MANUAL]]]
clasula_storage:==STORAGE(INITIAL
n[K|M][NEXTn[K|M]][MINEXTENTSn]
[MAXEXTENTSn][PCTINCREASEn])
CREATETABLESPACEDATOS_USUARIOS
DATAFILE/u02/oradata/CURSOxy/datos_usuarios01.dbfSIZE16M
AUTOEXTENDONNEXT1MMAXSIZE32M
EXTENTMANAGEMENTLOCALUNIFORMSIZE128K
SEGMENTSPACEMANAGEMENTAUTO;
CREATETABLESPACEDATOS_USUARIOS
DATAFILE/u02/oradata/CURSOxy/datos_usuarios01.dbfSIZE16M
AUTOEXTENDONNEXT1MMAXSIZE32M
EXTENTMANAGEMENTDICTIONARY
DEFAULTSTORAGE(INITIAL16KNEXT32KMAXEXTENTS10PCTINCREASE50);
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
88
FORMASDEGESTIONAREL
ESPACIODEUNTABLESPACE
Tablespacesmanejadoslocalmente(Oraclelosrecomienda>=8i):
Eltablespacesystemsepuedemanejarlocalmente,desdeOracle9i(en8ino).SielSYSTEM
eslocal,NOsepuedencreartablespacespordiccionario.DesdeOracle9i,pordefecto,los
tablespacessecreancomolocales(sielparmetrocompatible>=9.0),exeptoelSYSTEM.
TablespacesgestionadosatravsdelDD(aextinguir):
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
89
TABLESPACESUNDO
EnOracle9iseintroducenlossegmentosdeundoautomticos,quepermiten
sustituirlagestinmanualdesegmentosderollback.ConOracle10gtodava
se puede optar por la gestin manual, pero se avisa de que ya no estar
disponibleenfuturasversiones.
Lostablespacesundoslopuedencontenersegmentosderollback(ningn
otrotipodeobjeto).Losllamaremostablespacesderollback.
Sondeltipomanejadoslocalmente(deformaautomtica).
CREATEUNDOTABLESPACEundo01
DATAFILE/u03/oradata/CURSOxy/undo01.dbfSIZE100M;
Untablespacederollbacksloseusacuandoseactivalagestinautomtica
de
rollback
en
la
BD
(undo_management=auto
y
undo_tablespace=nombre_tablespace). Slo puede haber un tablespace de
rollbackactivoenunmomentodado.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
90
TABLESPACESTEMPORALES
YGRUPOS
ParaoptimizarelrendimientoesrecomendablequeUNIFORMSIZEseamltiplo
deSORT_AREA_SIZE.
Nosepuederenombrarunficherotemporal(tempfile).Tampocosepuedenponer
enmodoreadonly.SiempretienenelmodoNOLOGGING(noproducenentradas
deredolog).
TABLESPACES
91
TABLESPACETEMPORALPOR
DEFECTODELABDY
TABLESPACEPORDEFECTO
TambinsepuedecrearconlaBD(CREATEDATABASE),encuyocaso,ser
deltipolocal.
AlasignaralaBDuntablespacetemporalpordefecto,todoslosusuariosqueno
tenganunoasignadoexplcitamente,pasarnatenerlo.Ycuandocambiemosel
tablespacetemporalpordefectodelaBD,cambiarparatodoslosusuariosque
nolotenganasignadodeformaexplcita.
No podemos borrarlo hasta que hayamos asignado otro. No podemos ponerlo
offline.
DesdeOracle10,adems,sepuededefiniruntablespacepordefectoparalos
usuarios a los que no se le asigna uno explcitamente, en el momento de la
creacindelaBDconlaclasulaDEFAULTTABLESPACEnombre.Ademsse
puedecambiarencualquiermomentocon(ojo!!!,secambiarparatodoslos
usuarios,inclusolosqtuviesenasignadounoconcreto,exceptoespecialescomo
SYS,SYSTEM,DBSNMP,OUTLN,etc):
ALTERDATABASEDEFAULTTABLESPACEnombre;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
92
TABLESPACEOFFLINEYRENAME
Cuando un tablespace est OFFLINE no se puede acceder a
losdatosquecontiene:
ALTERTABLESPACEDBA01USEROFFLINE;
ParaponerlodenuevoONLINE:
ALTERTABLESPACEDBA01USERONLINE;
AlgunostablespacesnosepuedenponerOFFLINE:SYSTEM,
tablespacesconsegmentosderollbackotemporalesactivos.
Sintaxis
ALTERTABLESPACEnombre ONLINE|OFFLINE;
Lossegmentosquecontienepuedenserborrados(porejemplo
drop table, porque slo afectan al DD). En tablespaces
locales,elsegmentoborradopasaaserdeltipotemporal.
DesdeOracle10g,sepuederenombraruntablespace(execpto
SYSTEMySYSAUX),inclusoestandoREADONLY:
ALTERTABLESPACEnombre1RENAMETOnombre2;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
93
TABLESPCEREADONLYYBIGFILE
AlponeruntablespaceenmodoREADONLY,slosepermitenoperaciones
delecturasobresusdatos;sinembargolossegmentosquecontienepueden
ser borrados (por ejemplo drop table, porque slo afecta al DD). En
tablespaceslocales,elsegmentoborradopasaaserdeltipotemporal.
Sintaxis:
ALTERTABLESPACEnombreREAD[ONLY|WRITE];
UntablespaceBIGFILEpuedetenerhasta8Exabytes(millonesdeTb).No
puedenserloniSYSTEMniSYSAUX.
CREATEBIGFILETABLESPACEnombreDATAFILE
'/u02/oradata/CURSOxy/nombre01.dbf'size50GEXTENT
MANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
94
BORRARUNTABLESPACE
Al borrar un tablespace, se elimina del DD. No podemos borrar
SYSTEM/SYSAUX. Los ficheros asociados no se borran (hacerlo
desde el SO despus de eliminar el tablespace), a no ser que
usemosINCLUDINGCONTENTSANDDATAFILES(>=Oracle9i).
Nopodremosborrarlosicontieneobjetos,amenosqueindiquemos
NCLUDING CONTENTS. Tampoco podemos hacerlo si existen
foreign keys apuntando a sus objetos, a menos que adems
indiquemos CASCADE CONSTRAINTS (se borrarn las citadas
constraintsFK).
Se recomienda poner el tablespace OFFLINE antes de borrarlo,
paraasegurarnosquenadieestusandosucontenido.
DROPTABLESPACEnombre_tablespace
[INCLUDINGCONTENTS[ANDDATAFILES][CASCADECONSTRAINTS]];
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
95
REDIMENSIONARUNTABLESPACE
Podemos cambiar el tamao de un tablespace aadiendo un fichero al
mismo,obiencambiandoeltamaodelficheroquelocompone.
ALTERTABLESPACEusersADDDATAFILE
/u02/oradata/CURSOxy/users02.dbfsize1M;
ALTERDATABASEDATAFILE
/u02/oradata/CURSOxy/users01.dbfresize2M;
Podemos reducir el tamao deun fichero, pero no podremoshacerlo sihay
espacioocupadoalfinaldelmismo.
SlountablespaceBIGFILEsepuederedimensionarconALTER
TABLESPACE,sinindicarDATAFILE(>=10g):
ALTERTABLESPACEbigtbsRESIZE60G;
Podemosborrarficherovacodetablespace,conmsdeuno(>=10g):
ALTERTABLESPACEusersDROPDATAFILE
'/u02/oradata/CURSOXY/users02.dbf';
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
96
REDIMENSIONARUNTABLESPACE
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
97
MOVERFICHEROS
Existen dos mtodos para mover ficheros: con ALTER
TABLESPACEyconALTERDATABASE.
ElprimerosloesaplicableatablespacesquenosonelSYSTEM,
yquenocontienensegmentosderollbackotemporalesactivos:
Ponereltablespaceoffline
MoverelficheroaniveldelS.O.
ALTERTABLESPACERENAMEDATAFILE/path1/fichero1TO
/path2/fichero2;
Ponereltablespaceonline.
PararlaBD.
MontarlaBD(startupmount).
MoverelficherodesdeelS.O.
ALTER DATABASE RENAME FILE /path1/fichero1 TO
/path2/fichero2;
AbrirlaBD.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
98
RECYCLEBINYDROPTABLE
RECYCLEBIN(>=10g).ContenedordondeOracleguardalastablasborradas
(anoserqseborreconlaopcinPURGE).
DBA_RECYCLEBIN.Vertodaslastablasborradas.EnUSER_RECYCLEBINo
RECYCLEBIN,slolasmas.TbconSHOWRECYCLEBIN(desdesql*plus).
Sepuededesactivarconparmetrodelinitrecyclebin=off(pordefectoon).
TbconALTERSYSTEM|SESSION....
Recuperartablaborrada:
FLASHBACKTABLEtablaBorradaTOBEFOREDROP;
Borrardefinitivamente:
PURGETABLEtabla;(tbPURGEINDEX)
SlovanaRECYCLEBINlosndicesdelastablasborradas(noconDROPINDEX)
PURGERECYCLEBIN|DBA_RECYCLEBIN;
PURGETABLESPACEnomtsp[USERusuario];
BorrardirectamentesinpasarporRECYCLEBIN:
DROPTABLEtablaPURGE;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
99
ADDM(AUTOMATICDATABASE
DIAGNOSTICMONITOR)
Seactivapordefecto(statistics_level=TYPICALuALL;sedesactivaconBASIC).
Informes.EntredossnapshotsdelAWR.SuobjetivoesreducirlaestadsticaDB
time(tiempoacumuladoinvertidoporlaBDparaatenderlaspeticionesde
usuarios,verV$SYS_TIME_MODEL).
$ORACLE_HOME/rdbms/admin/addmrpt.sql.Tbusandoelpaquete
DBMS_ADVISOR.
ParaelanlisisdeE/S,pordefecto,setomaunvalorde10000microsegundos
paralalecturadeunbloquedelaBD.SicalculamoselvalorrealparanuestraBD,
podemoscambiarlocon:
EXECUTEDBMS_ADVISOR.SET_DEFAULT_TASK_PARAMETER(
'ADDM','DBIO_EXPECTED',8000);
VistasdelDD:
DBA_ADVISOR_TASKS.
DBA_ADVISOR_LOG.
DBA_ADVISOR_RECOMMENDATIONS.OrdenarporRANK(importancia)y
verBENEFIT.
DBA_ADVISOR_FINDINGS.
MsinformacinsobreADDM:
http://cursos.atica.um.es/oradoc102/server.102/b14211/diagnsis.htm#sthref433
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
100
AWR(AUTOMATICWORKLOAD
REPOSITORY)
GenerayprocesaestadsticasderendimientoparaqueelpropioservidorOracle
puedadetectarproblemasydarrecomendacionesdeajuste(usandoADDM).
Seactivapordefecto(statistics_level=TYPICALuALL;sedesactivaconBASIC).
Generasnapshotsautomticamente.Tbmanualmenteconpaquete
DBMS_WORKLOAD_REPOSITORY.
Informes:
AWR:$ORACLE_HOME/rdbms/admin/awrrpt.sql.PermitegenerarHTML.
ASH(V$ACTIVE_SESSION_HISTORY):
$ORACLE_HOME/rdbms/admin/ashrpt.sql.
VistasdelDD:
V$ACTIVE_SESSION_HISTORY(ASH,aadesesionesactivascadasegundoa
buffercircularenSGA)
V$METRIC*:V$METRIC,V$METRICGROUP,V$METRICNAME,
V$METRIC_HISTORY.
DBA_HIST*:DBA_HIST_ACTIVE_SESS_HISTORY,DBA_HIST_BASELINE,
DBA_HIST_DATABASE_INSTANCE,DBA_HIST_SNAPSHOT,
DBA_HIST_SQL_PLAN,DBA_HIST_WR_CONTROL.
MsinformacinsobreAWR:
http://cursos.atica.um.es/oradoc102/server.102/b14211/autostat.htm#i27008
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
101
VISTASDELDD
DBA_TABLESPACES
DBA_DATA_FILES
DBA_TEMP_FILES
V$TABLESPACE
V$DATAFILE
V$TEMPFILE
V$UNDOSTAT
DBA_TABLESPACE_GROUPS
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
102
PRACTICASTEMA5
Select*fromdba_tablespaces;
select*fromv$tablespace
select*fromdba_data_files;
select*fromv$datafile;
select*fromdba_temp_files;
select*fromv$tempfile;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
103
PRACTICASTEMA5
5.2.CreaeltablespaceDATACURSOxy,NOmanejadolocalmente,conel
fichero/u02/oradata/datacursoxy01.dbf,conuntamaode1M.Crea4
tablas (TABLA01, TABLA02, TABLA03, TABLA04) de 256K sobre
dicho tablespace. Borra las tablas TABLA02 y TABLA04, y crea una
tablaTABLA05de512K.Quocurreyporqu?.Borraeltablespace
DATACURSOxy y cralo de nuevo, manejado localmente. Vuelve a
crear las tablas y repite el borrado de TABLA02 y TABLA04; y la
creacindeTABLA05de512K.Quocurreestavezyporqu?
CreatetablespaceDATACURSOxydatafile
/u02/oradata/CURSOxy/datacursoxy01.dbfsize1Mextentmanagement
dictionary;
createtableTABLA01(C1VARCHAR2(4000))tablespaceDATACURSOxy
storage(initial256Kminextents1);
droptableTABLA02;
createtableTABLA05(C1VARCHAR2(4000))tablespaceDATACURSOxy
storage(initial512Kminextents1);
altertablespaceDATACURSOxyoffline;
droptablespaceDATACURSOxyincludingcontentsanddatafiles;
createtablespaceDATACURSOxydatafile
/u02/oradata/CURSOxy/datacursoxy01.dbfsize1Mextentmanagement
localuniformsize256K;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
104
PRACTICASTEMA5
5.3. Pon el tablespace DATACURSOxy en modo READONLY. Inserta
una fila en alguna de sus tablas, qu ocurre?. Borra la tabla
TABLA01, por qu se puede borrar?. Deja el tablespace
DATACURSOxy en modo READWRITE. Repite el insert sobre
TABLA01.
altertablespaceDATACURSOxyreadonly;
insertintoTABLA01values(PRIMERAFILA);
droptableTABLA01;
altertablespaceDATACURSOxyreadwrite;
insertintoTABLA01values(PRIMERAFILA);
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
105
PRACTICASTEMA5
5.5.CreaeltablespaceINDCURSOxyde1Mconelfichero
/u02/oradata/CURSOxy/indcursoxy01.dbf. Muvelo al
directorio/u03/oradata/CURSOxy.
CreatetablespaceINDCURSOxydatafile
/u02/oradata/CURSOxy/indcursoxy01.dbfsize1M;
altertablespaceCURSOxyoffline;
mv/u02/oradata/CURSOxy/indcursoxy01.dbf
/u03/oradata/CURSOxy/indcursoxy01.dbf
altertablespacerenamedatafile
/u02/oradata/CURSOxy/indcursoxy01.dbfto
/u03/oradata/CURSOxy/indcursoxy01.dbf;
altertablespaceINDCURSOxyonline;
select*fromdba_data_files;
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
TABLESPACES
106
APENDICEA.
RecursosOracleenInternet.
www.orafaq.org(UndergroundOracleFAQs)
SitionooficialsobreOracle(FAQs,foros,artculos,scripts,etc).
otn.oracle.com(OracleTecnologyNetwork)
Descargasdesw,documentacin,foros,artculos,scripts,etc.
otn.oracle.com/oramag(OracleMagazine)
RevistaOracleMagazine.
www.oracle.com
PortaloficialdeOracle.
metalink.oracle.com
Soportetcnicoparausuariosconcontratodemantenimiento.
asktom.oracle.com(GurdeOracle)
ArtculosypreguntasaunodelosgursdeOracle
www.oraclebase.com(WebdeTimHall)
ArtculosmuyinteresantessobreOracle10g(incluidainstalacin)
www.puschitz.com(WebdeWernerPuschitz)
ArtculosmuybuenossobreinstalacindeOraclesobreLinux
www.dbazine.com(Revistaelectrnica)
RevistaelectrnicamensualespecializadaenOracle
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
107
APENDICEB.
NovedadesOracle9i
undotablespaceygestinautomticadeundo
databasedefaulttemporarytablespace
droptablespaceINCLUDINGCONTENTSANDDATAFILES;
SGAdinmica:sga_max_size,db_cache_size
db_nk_cache_size (cachs con tamao de bloque no
estndard)
desaparececonnectinternal,ahoraesconnect/assysdba
spfile (fichero de parmetros binario, mantenido con alter
systemset...)
OMF
tablespacescongestinautomticadesegmentos
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
108
APENDICEB.
NovedadesOracle10g
TablespaceSYSAUX(permitedejarenelSYSTEMsloelDD)
altertablespacenombre1RENAMETOnombre2;
createBIGFILEtablespacetsbig1...size50G;(hasta8Eb)
SGA_TARGET(gestinautomticadeltamaodelaspartesdelaSGA)
altertablet1SHRINKSPACECASCADE;(antesaltertablet1enablerowmovement;)
"create temporary tablespace ts1 ... TABLESPACE GROUP g1;" y "alter tablespace t2
TABLESPACEGROUPg1;.
DataPump(exp/imptodavaexisten):expdp/impdpmuyeficienteparagrandescantidades
dedatos
Flashback
Database
(db_recovery_file_dest,
db_recovery_file_dest_size,
db_flashback_retention_size).Muytilparaauditora:ALTERDATABASEFLASHBACKon;
ALTER TABLESPACE nombre FLASHBACK ON; FLASHBACK TABLE nombre TO SCN
numero;FLASHBACKTABLEnombreTOTIMESTAMP'2006030312:05:00';;
DROPDATABASE;(slomontada)
ALTERDATABASEDEFAULTTABLESPACEnombre;
ALTERSYSTEMFLUSHBUFFER_CACHE;
AutomaticStorageManagement
ALTERSYSTEMQUIESCERESTRICTED|UNQUIESCE(tbSUSPENDyRESUME).
DROPTABLEnombrePURGE;(DBA_RECYCLEBIN,recyclebin=on,SHOWRECYCLEBIN,
FLASHBACK TABLE nombreTablaBorrada TO BEFORE DROP; PURGE TABLE
NombreTabla;)
ADDM. DBA_OUTSTANDING_ALERTS, DBA_ALERT_HISTORY, V$ALERT_TYPES.
Script$ORACLE_HOME/rdbms/admin/addmrpt.sql.
AdministracinBsicadeOracle10g
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez2006
109