Anda di halaman 1dari 18

AdministracinBsicadeOracle10g

PRACTICASTEMA1.
ARQUITECTURADELABASEDEDATOS.
1.1.ComprobarlasvariablesdeentornonecesariasparaconectarnosalaBD.
1.2.Identificarlosprocesosquecomponeninstancia.
1.3.VereltamaodelaSGAdelaBD(v$sgainfo).
1.4.ComprobarvaloresdeparmetrosdelinitrelacionadosconeltamaodelaSGA.
1.5.ComprobarficherosquecomponenlaBDyubicarlosenlaestructuraOFA.
1.6.IdentificarlaestructuralgicadelaBD:tablespaces,segmentos,extensiones.
1.7.Consultarinformacinsobrelabasededatos(v$database)ylainstancia(v$instance).
1.8.Localizarelprocesoservidorasociadoamisesin(v$processyv$session).Esunservidor
dedicadoocompartido?
1.9.CuantoocupalaDictionarycacheylaLibrarycacheentuBD?(v$sgastat)
1.10.VerlaactividaddelaLibraryCache(v$librarycache).
1.11.VerlassentenciasSQLqueguardalaSharedPool(v$sqlarea).
1.12.Crearunficherodeautenticacinyactivarsuuso.
1.13.QuocurresiquitamoslavariableLD_LIBRARY_PATH?
1.14.AsignarlavariableNLS_LANGparanuestropasycomprobarelcambioenlasrespuestasde
Oracledesdesqlplus.
1.15.Subireltamaodelasharedpoolungrnulomsycomprobarcmoaumentaelespaciolibre.
1.16.Comprobarelfuncionamientodelacachderedolog,comoprotectoradelcontenidodelacach
dedatos.
1.17.Comprobarelfuncionamientodelacachdedatos,enloqueserefierealamejoradel
rendimientocuandoserepiteunaconsulta.
Recursos.

Mquina:cursos.atica.um.es
Usuariounix:curso02acurso21
Conexinmquinaunix:sshconSecureShell
Basesdedatos:CURSO02aCURSO21
Conexinabd:sqlplusdesdesesinunix,usuario/assysdba

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle10g
Enprimerlugar,siyanoloest,hayquearrancarlabasededatos.Enelejemplovemosel
arranquedelabasededatosCURSOxy(siempreqsehagareferenciaalaBDCURSOxy,
sustituyexyporlosnmerosqincluyaelnombredetuusuariolinux):
/home/CURSO/cursoXY(CURSOxy)>sqlplus
SQL*Plus:Release10.2.0.1ProductiononWedOct2012:39:052006
Copyright(c)1982,2005,OracleCorporation.Allrightsreserved.
Enterusername:/assysdba
Connectedtoanidleinstance.

Siyaestarrancadanosdarunerror:
SQL>startup
ORA01081:nosepuedeiniciarORACLEcuandoyaseestaejecutandocierreloprimero

Sinoloest:
SQL>startup
InstanciaORACLEiniciada.
TotalSystemGlobalArea83886080bytes
FixedSize1259288bytes
VariableSize62916840bytes
DatabaseBuffers16777216bytes
RedoBuffers2932736bytes
Basededatosmontada.
Basededatosabierta.

1.1.Comprobarlaasignacindevariablesdeentornonecesariaspara
conectarnosalaBD.
Setratadelasvariables$ORACLE_HOME,$ORACLE_SID,$LD_LIBRARY_PATHy$PATH.
Nota:sinoasignamosLD_LIBRARY_PATHenLinux,esposiblequenopodamosejecutar
sqlplus,obteniendounerrorsimilara:
sqlplus:errorwhileloadingsharedlibraries:libclntsh.so:cannotopenshared
objectfile:Nosuchfileordirectory

Sinosucedeelerroresposiblequenosehayacompiladoconlibrerascompartidas,oqueel
sistematengaaccesoadichaslibrerasdeotromodo,como/etc/ld.so.confounenlaceen
/usr/lib,etc.

Solucin:
/home/CURSO/cursoXY(CURSOxy)>echo$ORACLE_HOME
/u01/app/oracle/product/10.2.0.1
/home/CURSO/cursoXY(CURSOxy)>echo$ORACLE_SID
CURSOxy
/home/CURSO/cursoXY(CURSOxy)>echo$PATH
/u01/app/oracle/product/10.2.0.1/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/
usr/X11R6/bin:/home/CURSO/cursoXY/bin
/home/CURSO/cursoXY(CURSOxy)>echo$LD_LIBRARY_PATH
/u01/app/oracle/product/10.2.0.1/lib

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle10g

1.2.Identificarlosprocesosquecomponeninstancia.
LospodemosidentificardesdeelS.O.,porejemplo,enUnixconelcomando"psef"que
permitevertodoslosprocesosenejecucinenelsistema,filtrandoporelnombredela
instanciadeBD:
psef|grepCURSOxy
TambinlopodemoshacerconsultandolavistadinmicaV$PROCESS(odirectamenteen
V$BGPROCESS),enlaBDencuestin:
select*fromv$processwherebackgroundisnotnull;
obien
select*fromv$processa,v$bgprocessbwherea.ADDR=b.PADDR;

Solucin:
/home/CURSO/cursoXY(CURSOxy)>psef|grepCURSOxy|grepvgrep
oracle225151019:29?00:00:00ora_pmon_CURSOxy
oracle225171019:29?00:00:00ora_psp0_CURSOxy
oracle225191019:29?00:00:00ora_mman_CURSOxy
oracle225211019:29?00:00:00ora_dbw0_CURSOxy
oracle225231019:29?00:00:00ora_lgwr_CURSOxy
oracle225251019:29?00:00:00ora_ckpt_CURSOxy
oracle225271019:29?00:00:00ora_smon_CURSOxy
oracle225291019:29?00:00:00ora_reco_CURSOxy
oracle225311019:29?00:00:00ora_mmon_CURSOxy
oracle225331019:29?00:00:00ora_mmnl_CURSOxy
oracle225381019:29?00:00:00ora_qmnc_CURSOxy
oracle225441019:29?00:00:00ora_q000_CURSOxy
oracle225511019:30?00:00:00ora_q001_CURSOxy
SQL>selectusername,programfromv$process
wherebackgroundisnotnull;
USERNAMEPROGRAM

cursoXYoracle@cursos.atica.um.es(PMON)
cursoXYoracle@cursos.atica.um.es(PSP0)
cursoXYoracle@cursos.atica.um.es(MMAN)
cursoXYoracle@cursos.atica.um.es(DBW0)
cursoXYoracle@cursos.atica.um.es(LGWR)
cursoXYoracle@cursos.atica.um.es(CKPT)
cursoXYoracle@cursos.atica.um.es(SMON)
cursoXYoracle@cursos.atica.um.es(RECO)
cursoXYoracle@cursos.atica.um.es(MMON)
cursoXYoracle@cursos.atica.um.es(MMNL)
cursoXYoracle@cursos.atica.um.es(QMNC)
cursoXYoracle@cursos.atica.um.es(q000)
cursoXYoracle@cursos.atica.um.es(q001)
13filasseleccionadas.

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle10g
SQL>selectname,descriptionfromv$processa,v$bgprocessb
wherea.ADDR=b.PADDR;
NAMEDESCRIPTION

PMONprocesscleanup
PSP0processspawner0
MMANMemoryManager
DBW0dbwriterprocess0
LGWRRedoetc.
CKPTcheckpoint
SMONSystemMonitorProcess
RECOdistributedrecovery
MMONManageabilityMonitorProcess
MMNLManageabilityMonitorProcess2
QMNCAQCoordinator
11filasseleccionadas.

1.3.VereltamaodelaSGAdelaBDylascachsquelacomponen.
HayvariasvistasdinmicasdelaBDquenosdaninformacinsobreeltamaoylaestructura
delaSGA:V$SGAINFO,V$SGA_DYNAMIC_COMPONENTS,V$SGA_TARGET_ADVICE,
V$SGAyV$SGASTAT.Lastresprimerassonnuevasen10g.
select*fromv$sgainfo;
select*fromv$sgastat;

Solucin:
(ConOracle10g,enV$SGAINFOpodemosvercmoOraclereparteelespaciodelaSGA
(sga_target)entretodaslascachsqlacomponen,ascomoeltamaodelgrnuloy
eltamaomximoalqpodrallegarlaSGA(sga_max_size))
SQL>select*fromv$sgainfo;
NAMEBYTESRES

FixedSGASize1259528No
RedoBuffers2932736No
BufferCacheSize41943040Yes
SharedPoolSize50331648Yes
LargePoolSize4194304Yes
JavaPoolSize4194304Yes
StreamsPoolSize0Yes
GranuleSize4194304No
MaximumSGASize125829120No
StartupoverheadinSharedPool29360128No
FreeSGAMemoryAvailable20971520
11filasseleccionadas.
(Env$sgastattambinpodemosverinformacindetalladasobrelaSharedPool)
SQL>select*fromv$sgastat;
POOLNAMEBYTES

fixed_sga1259528
buffer_cache41943040
log_buffer2932736

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle10g
...
sharedpoolsqlarea2129256
...
sharedpoollibrarycache2374548
...
sharedpoolfreememory9928264
...
sharedpoolrowcache3741868
...
587filasseleccionadas.
SQL>select*fromv$sgastat
wherenamein('librarycache','rowcache','sqlarea',
'buffer_cache','log_buffer');
POOLNAMEBYTES

buffer_cache41943040
log_buffer2932736
sharedpoolsqlarea2174148
sharedpoollibrarycache2374548
sharedpoolrowcache3741868

1.4.Comprobarvaloresdeparmetrosdelinitrelacionadosconeltamao
delaSGA.
Los parmetros de inicializacin ms importantes que afectan al tamao de la SGA son:
shared_pool_size, db_cache_size, db_block_size, log_buffer, large_pool_size y
java_pool_size.ConOracle10gseintroducesga_targetparaq,automticamente,seajusteel
tamaodelascachsqcomponenlaSGA,nuncaporencimadesga_max_size.Portanto,con
10g,bastaraasignarsga_target,sga_max_sizeylog_buffer(ylosdemsacero).

Solucin:
SQL>showparameterdb_block_size
NAMETYPEVALUE

db_block_sizeinteger2048
SQL>showparametersga_target
NAMETYPEVALUE

sga_targetbiginteger100M
SQL>showparametersga_max_size
NAMETYPEVALUE

sga_max_sizebiginteger120M
SQL>showparameterlog_buffer
NAMETYPEVALUE

log_bufferinteger2886656
SQL>showparametershared_pool_size
NAMETYPEVALUE

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle10g

shared_pool_sizebiginteger0
SQL>showparameterdb_cache_size
NAMETYPEVALUE

db_cache_sizebiginteger0
SQL>showparameterlarge_pool_size
NAMETYPEVALUE

large_pool_sizebiginteger0
SQL>showparameterjava_pool_size
NAMETYPEVALUE

java_pool_sizebiginteger0
(SicomprobamoslostamaosqueOraclerealmentehaasignadoalascachs,veremos
algunasdiferenciasconlosparmetrosiniciales,relacionadasconlosvalores
mnimosdealgunascachs,ascomoconelposibleajusteautomticoquehayahecho
elpropioOracle10g)
SQL>select*fromv$sgainfo;
NAMEBYTESRES

FixedSGASize1259528No
RedoBuffers2932736No
BufferCacheSize41943040Yes
SharedPoolSize50331648Yes
LargePoolSize4194304Yes
JavaPoolSize4194304Yes
StreamsPoolSize0Yes
GranuleSize4194304No
MaximumSGASize125829120No
StartupoverheadinSharedPool29360128No
FreeSGAMemoryAvailable20971520
11filasseleccionadas.
(LacolumnaRES,deresizeable,valeYesparaaquellaspartesdelaSGAcuyotamao
esgestionadoautomticamenteporOracle)
SQL>selectrpad(component,30),CURRENT_SIZE,USER_SPECIFIED_SIZE,min_size
fromV$SGA_DYNAMIC_COMPONENTS;
RPAD(COMPONENT,30)CURRENT_SIZEUSER_SPECIFIED_SIZEMIN_SIZE

sharedpool50331648029360128
largepool419430400
javapool419430404194304
streamspool000
DEFAULTbuffercache41943040041943040
KEEPbuffercache000
RECYCLEbuffercache000
DEFAULT2Kbuffercache000
DEFAULT4Kbuffercache000
DEFAULT8Kbuffercache000
DEFAULT16Kbuffercache000
DEFAULT32Kbuffercache000
ASMBufferCache000
13filasseleccionadas.

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle10g

1.5.ComprobarficherosquecomponenlaBDyubicarlosenlaestructura
OFA.
LosficherosquecomponenlaBDlospodemosconsultardesdeelpropioS.O.odesdelaBD.
DesdeelS.O.,yteniendoencuentalaestructuraOFAlosencontraremosen
/u0?/oradata/CURSOxy,dadoquenuestrospuntosdemontajeson/u01,/u02,/u03y/u04:
lsl/u0?/oradata/CURSOxy
Podemoslocalizarcadatipodefichero(datafile,controlyredolog)porlaextensin;por
ejemplo:dbf,ctlylog.
Ojo!!!,stonoesmsqueunaconvencin,lasextensionespuedenserotras,oinclusonoexistir.

OtraopcinesaccederalainformacindelosficherosdecontroldesdelapropiaBD,
consultandolasvistasdinmicasV$DATAFILE,V$TEMPFILE,V$CONTROLFILEy
V$LOGFILE:
select*fromv$datafile;
select*fromv$tempfile;
select*fromv$logfile;
select*fromv$controlfile;

Solucin:
(PodemosverlosficherosdelaBDdesdeelS.O.)
/home/CURSO/cursoXY(CURSOxy)>lsl/u0?/oradata/$ORACLE_SID
/u02/oradata/CURSOxy:
total285632
rwrw1oracledba9060352feb2713:28control1.ctl
rwrw1oracledba272631808feb2713:27system01.dbf
rwrw1oracledba10487808feb2713:13users01.dbf
/u03/oradata/CURSOxy:
total90676
rwrw1oracledba9060352feb2713:28control2.ctl
rwrw1oracledba52430848feb2713:13sysaux01.dbf
rwrw1oracledba10487808feb2615:38temp01.dbf
rwrw1oracledba20973568feb2713:27undo_rbs01.dbf
/u04/oradata/CURSOxy:
total30780
rwrw1oracledba10486272feb2713:12redo01.log
rwrw1oracledba10486272feb2713:27redo02.log
rwrw1oracledba10486272feb2713:12redo03.log
(TambinpodemosverquficheroscomponenlaBD,desdelapropiaBD,mediante
consultasSQL)
SQL>selectnamefromv$datafile;
NAME

/u02/oradata/CURSOxy/system01.dbf

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle10g
/u03/oradata/CURSOxy/undo_rbs01.dbf
/u03/oradata/CURSOxy/sysaux01.dbf
/u02/oradata/CURSO22/users01.dbf
SQL>selectnamefromv$tempfile;
NAME

/u03/oradata/CURSOxy/temp01.dbf
SQL>selectmemberfromv$logfile;
MEMBER

/u04/oradata/CURSOxy/redo01.log
/u04/oradata/CURSOxy/redo02.log
/u04/oradata/CURSOxy/redo03.log
SQL>selectnamefromv$controlfile;
NAME

/u02/oradata/CURSOxy/control1.ctl
/u03/oradata/CURSOxy/control2.ctl

1.6.IdentificarlaestructuralgicadelaBD:tablespaces,segmentos,
extensiones.
EnelDDdelaBDtenemosvistasquenospermitencomprobarlaestructuralgicadelaBD:
DBA_TABLESPACES,DBA_DATA_FILES,DBA_SEGMENTSyDBA_EXTENTS.
select*fromdba_tablespaces;
select*fromdba_datafiles;
select*fromdba_tempfiles;
select*fromdba_segments;
select*fromdba_extents;

Solucin:
(Paraverlostablespaces)
SQL>selecttablespace_namefromdba_tablespaces
orderbytablespace_name;
TABLESPACE_NAME

SYSAUX
SYSTEM
TEMP
UNDO_RBS
USERS
(Paraverlosficherosdedatos)
SQL>selecttablespace_name,file_namefromdba_data_files
orderbytablespace_name,file_name;
TABLESPACE_NAME

FILE_NAME

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle10g

SYSAUX
/u03/oradata/CURSOxy/sysaux01.dbf
SYSTEM
/u02/oradata/CURSOxy/system01.dbf
UNDO_RBS
/u03/oradata/CURSOxy/undo_rbs01.dbf
USERS
/u02/oradata/CURSO22/users01.dbf
(Paraverlosficherosdelostablespacestemporales)
SQL>selecttablespace_name,file_namefromdba_temp_files
orderbytablespace_name,file_name;
TABLESPACE_NAME

FILE_NAME

TEMP
/u03/oradata/CURSOxy/temp01.dbf
(Paravercuntossegmentoshayencadatablespace,agrupadosportiposdesegmento)
SQL>selecttablespace_name,segment_type,count(*)segmentos
fromdba_segments
groupbytablespace_name,segment_type;
TABLESPACE_NAMESEGMENT_TYPESEGMENTOS

SYSTEMCLUSTER10
SYSTEMINDEX587
SYSTEMTABLE461
SYSAUXLOBSEGMENT43
SYSAUXINDEX235
SYSAUXINDEXPARTITION80
SYSAUXLOBPARTITION1
SYSAUXNESTEDTABLE1
USERSTABLE4
SYSTEMLOBSEGMENT72
UNDO_RBSTYPE2UNDO8
SYSAUXLOBINDEX43
SYSAUXTABLEPARTITION72
SYSAUXTABLE215
SYSTEMNESTEDTABLE3
SYSTEMROLLBACK1
SYSTEMLOBINDEX72
USERSINDEX2
18filasseleccionadas.
(Paravercuntasextensionesdecadatipodesegmento,hayencadatablespace)
SQL>selecttablespace_name,segment_type,count(*)
fromdba_extents
groupbytablespace_name,segment_type;
TABLESPACE_NAMESEGMENT_TYPEEXTENSIONES

SYSTEMCLUSTER66
SYSTEMTABLE748
SYSTEMINDEX837
SYSAUXNESTEDTABLE1
USERSTABLE4

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

AdministracinBsicadeOracle10g
SYSAUXINDEX245
SYSAUXINDEXPARTITION91
SYSAUXLOBSEGMENT44
SYSAUXLOBPARTITION1
SYSTEMLOBSEGMENT109
UNDO_RBSTYPE2UNDO37
SYSAUXTABLEPARTITION89
SYSAUXLOBINDEX43
SYSAUXTABLE252
SYSTEMNESTEDTABLE3
SYSTEMROLLBACK7
SYSTEMLOBINDEX72
USERSINDEX2
18filasseleccionadas.

1.7.Consultarinformacinsobrelabasededatos(v$database)yla
instancia(v$instance).
Podemosobtenerinformacindelabasededatosydelainstancia,delasvistas
V$DATABASEyV$INSTANCE,respectivamente.

Solucin:
SQL>selectname,created,log_mode,checkpoint_change#,open_mode,platform_name,
current_scnfromv$database;
NAMECREATEDLOG_MODECHECKPOINT_CHANGE#OPEN_MODE

PLATFORM_NAME

CURRENT_SCN

CURSOxy09/08/06NOARCHIVELOG199194READWRITE
LinuxIA(32bit)
199233

SQL>selectinstance_name,host_name,version,startup_time,
status,archiver,logins,database_statusfromv$instance;
INSTANCE_NAME

HOST_NAME

VERSIONSTARTUP_TSTATUSARCHIVELOGINSDATABASE_STATUS

CURSOxy
cursos.atica.um.es
10.2.0.2.018/10/06OPENSTOPPEDALLOWEDACTIVE

1.8.Localizarelprocesoservidorasociadoamisesin(v$processy
v$session).Esunservidordedicadoocompartido?
TodasesincontralaBDtienedosvertientes:clienteyservidor.Enelclientetenemosel
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

10

AdministracinBsicadeOracle10g
procesodeusuarioqueinicialasesinyenelservidordebasededatostendremoselproceso
quesirvelaspeticionesdedichasesin;quepuedeserunservidordedicadoocompartido.En
lasvistasV$SESSIONyV$PROCESStenemostodalainformacinrelativaasesionesy
procesos,respectivamente.

Solucin:
SQL>connectSYSTEM
SQL>selecta.SERVER,a.usernamedbuser,a.OSUSER,a.PROCESSuser_process,
a.machine,a.terminal,a.programuser_program,
b.spidserver_process,b.programserver_program
fromv$sessiona,v$processb
wherea.username=USERanda.PADDR=b.ADDR;
SERVERDBUSEROSUSER

USER_PROCESSMACHINE

TERMINALUSER_PROGRAM

SERVER_PROCESERVER_PROGRAM

DEDICATEDSYSTEMcursoXY
30580cursos.atica.um.es
pts/11sqlplus@cursos.atica.um.es(TNSV1V3)
30581oracle@cursos.atica.um.es(TNSV1V3)
SQL>!psfp30581
UIDPIDPPIDCSTIMETTYTIMECMD
oracle3058130580013:36?00:00:01oracleCURSOxy
(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))

Enestecaso,elprocesoservidorasociadoamisesinesunservidorDEDICADO.

1.9.CuantoocupalaDictionarycacheylaLibrarycacheentuBD?
(v$sgastat)
EnlavistaV$SGASTAThayinformacindetalladasobrelaspartesdelaSGA.

Solucin:
SQL>select*fromv$sgastatwherenamelike'%cache';
POOLNAMEBYTES

buffer_cache41943040
sharedpoollibrarycache2400356
sharedpoolrowcache3741868

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

11

AdministracinBsicadeOracle10g

1.10.VerlaactividaddelaLibraryCache(v$librarycache).
EnlavistaV$LIBRARYCACHEpodemosverlosratiosdeeficienciadelaLibraryCache,en
tantosporuno.Elobjetivoesqseaproximenlosmsposiblea1,delocontrarioesposible
quehayaqueaumentareltamaodelaSharedPool.

Solucin:
SQL>selectnamespace,pinhitratiofromv$librarycache;
NAMESPACEGETHITRATIO

NAMESPACEPINHITRATIO

SQLAREA,878383629
TABLE/PROCEDURE,511005966
BODY,368421053
TRIGGER1
INDEX0
CLUSTER,956521739
OBJECT1
PIPE1
JAVASOURCE1
JAVARESOURCE1
JAVADATA1
11rowsselected.

1.11.VerlassentenciasSQLqueguardalaSharedPool(v$sqlarea).
EnlavistaV$SQLAREApodemosverelcontenidodelreaSQLdelasharedpool,ascomo
informacintilparaelajustedecadaunadelassentenciassql(SharedPoolconsumida,n
devecesqsehaejecutado,ndevecesqsehasalidodelacach,lecturasfsicas,tiempode
CPU,tiempototalincluyendocompilacin,etc).

Solucin:
SQL>SETPAUSEON
SQL>SETPAGESIZE37
SQL>selectSQL_TEXT,PERSISTENT_MEM,EXECUTIONS,LOADS,DISK_READS,CPU_TIME,
ELAPSED_TIMEfromv$sqlareaorderbyDISK_READSdesc;
SQL_TEXT

PERSISTENT_MEMEXECUTIONSLOADSDISK_READSCPU_TIMEELAPSED_TIME

selecttablespace_name,segment_type,count(*)fromdba_extentsgroupbytablesp
ace_name,segment_type
851081117937851506289684

select/*+index(idl_ub2$i_idl_ub21)+*/piece#,length,piecefromidl_ub2$wher
eobj#=:1andpart=:2andversion=:3orderbypiece#
351642129375551202647

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

12

AdministracinBsicadeOracle10g
selecttablespace_name,segment_type,count(*)segmentosfromdba_segmentsgroup
bytablespace_name,segment_type
4054811219127155210013
...

1.12.Crearelficherodeautenticacinyactivarlo(orapwd).
Lospasosaseguirson:
Crearficheroen$ORACLE_HOME/dbsconlautilidadorapwd(siyaexisteyqueremos
volveracrearlo,lecambiamoselnombre).Sicreamoselficheronuevodesdeunusuario
diferentealqueestejecutandoelswdeOracle,hemosdetenerencuentaq,despusde
crearelficheroletendremosqdarpermisodeescrituraalusuarioqestejecutandoelsw
deOracle(p.e.desdelinuxconchmod).
Aadirelparmetroremote_login_passwordfilealinit.ora.
PararyarrancarlaBD.

Solucin:
$lsl$ORACLE_HOME/dbs/orapwCURSOxy
rwrw1oracledba2048oct1813:01
/u01/app/oracle/product/10.2.0.1/dbs/orapwCURSOxy
$orapwdfile=$ORACLE_HOME/dbs/orapwCURSOxypassword=miclaveentries=5force=y
(Laopcinforce=yesparamachacarlosiyaexiste)
(Elsiguientepasosloesnecesariosielficheronoespropiedaddelusuarioqest
ejecutandoelswOracle,ydichousuarionotuvierapermisodeescriturasobreel
ficherodeclavescreado)
$chmodg+w$ORACLE_HOME/dbs/orapwCURSOxy
$echo"remote_login_passwordfile=EXCLUSIVE">>
/u01/app/oracle/admin/CURSOxy/pfile/initCURSOxy.ora
$echo>>/u01/app/oracle/admin/CURSOxy/pfile/initCURSOxy.ora
SQL>CONNECT/ASSYSDBA
SQL>SHUTDOWNIMMEDIATE
SQL>STARTUP
...
SQL>exit
SQL>CONNECTSYS@CURSOxyASSYSDBA
Enterpassword:miclave
SQL>EXIT

1.13.QuocurresiquitamoslavariableLD_LIBRARY_PATH?

Comprobarsuvalorydejarlaenblanco.
Ejecutarsqlplus.
Volveraasignarelvalororiginalyejecutardenuevosqlplus.

Solucin:
JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

13

AdministracinBsicadeOracle10g
(Sinosucedeelerroresposiblequenosehayacompiladoconlibrerascompartidas,oqueel
sistematengaaccesoadichaslibrerasdeotromodo,como/etc/ld.so.confounenlaceen
/usr/lib,etc.)
$echo$LD_LIBRARY_PATH
/u01/app/oracle/product/10.2.0.1/lib
$unsetLD_LIBRARY_PATH
$sqlplus
sqlplus:errorwhileloadingsharedlibraries:libclntsh.so:cannotopenshared
objectfile:Nosuchfileordirectory
$exportLD_LIBRARY_PATH=/u01/app/oracle/product/10.2.0.1/lib
$sqlplus/nolog
SQL*Plus:Release10.2.0.1ProductiononWedOct210:18:272006
Copyright(c)1982,2005,OracleCorporation.Allrightsreserved.
SQL>

1.14.AsignarlavariableNLS_LANGparanuestropasycomprobarelcambioenlas
respuestasdeOracledesdesqlplus.

ComprobarelvalordeNLS_LANGyverlafechadelsistemadesdesqlplus.
Salirdesqlplusyasignarspanish_spainaNLS_LANG.
Ejecutarsqlplusycomprobarquepideusuarioynousername.
Comprobardenuevolafechadelsistemadesdesqlplusyverificarelcambiodeformato.

Solucin:
$echo$NLS_LANG
spanish_spain
$sqlplus
Introduzcaelnombredeusuario:/assysdba
SQL>exit
$exportNLS_LANG=spanish_spain
$sqlplus
Enterusername:/assysdba
SQL>exit
$exportNLS_LANG=spanish_spain

1.15.Subireltamaodelasharedpoolungrnuloms(p.e.sitena48M
subirloa52M,sielgrnuloesde4M)ycomprobarcmoaumentael
espaciolibreendichacach.

Comprobarelvalordeshared_pool_size,ascomoelespaciolibreenlashared_pool.
Asignarle52Myvolveracomprobarelvalordelparmetro,ascomoelespaciolibreque
tieneahoralasharedpool.
Finalmente,volveradejarlasharedpoolcomoestabainicialmente(0)ycomprobarde

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

14

AdministracinBsicadeOracle10g
nuevolosvaloresanteriores.

Solucin:
(shared_pool_sizevaleceropqseestusandolagestinautomticadelaSGAde
Oracle10g;demodoqseirajustandoeltamaodelaSharedPoolautomticamente
segnlasnecesidades)
SQL>showparametershared_pool_size
NAMETYPEVALUE

shared_pool_sizebiginteger0
SQL>select*fromv$sgainfo;
NAMEBYTESRES

...
BufferCacheSize41943040Yes
SharedPoolSize50331648Yes
...
GranuleSize4194304No
MaximumSGASize83886080No
...
FreeSGAMemoryAvailable20971520
SQL>select*fromv$sga_dynamic_componentswherecomponent='sharedpool';
COMPONENTCURRENT_SIZE

MIN_SIZEMAX_SIZEUSER_SPECIFIED_SIZEOPER_COUNTLAST_OPER_TYPLAST_OPER

LAST_OPEGRANULE_SIZE

sharedpool50331648
29360128003GROWIMMEDIATE
27/02/074194304
SQL>selectsum(bytes)fromv$sgastatwherepool='sharedpool'andnamelike
'%free%';
SUM(BYTES)

11108980
SQL>altersystemsetshared_pool_size=52M;
Systemaltered.
SQL>showparametershared_pool_size
NAMETYPEVALUE

shared_pool_sizebiginteger52M
SQL>select*fromv$sgainfo;
NAMEBYTESRES

...
BufferCacheSize37748736Yes
SharedPoolSize54525952Yes
...
GranuleSize4194304No
...
FreeSGAMemoryAvailable20971520

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

15

AdministracinBsicadeOracle10g
SQL>select*fromv$sga_dynamic_componentswherecomponent='sharedpool';
COMPONENTCURRENT_SIZE

MIN_SIZEMAX_SIZEUSER_SPECIFIED_SIZEOPER_COUNTLAST_OPER_TYPLAST_OPER

LAST_OPEGRANULE_SIZE

sharedpool54525952
293601280545259524GROWMANUAL
27/02/074194304
SQL>selectsum(bytes)fromv$sgastatwherepool='sharedpool'andnamelike
'%free%';
SUM(BYTES)

15214916
SQL>altersystemsetshared_pool_size=0;
Systemaltered.
SQL>showparametershared_pool_size
NAMETYPEVALUE

shared_pool_sizebiginteger0
SQL>select*fromv$sga_dynamic_componentswherecomponent='sharedpool';
COMPONENTCURRENT_SIZE

MIN_SIZEMAX_SIZEUSER_SPECIFIED_SIZEOPER_COUNTLAST_OPER_TYPLAST_OPER

LAST_OPEGRANULE_SIZE

sharedpool54525952
29360128004GROWMANUAL
27/02/074194304

1.16.Comprobarelfuncionamientodelacachderedolog,comoprotectoradel
contenidodelacachdedatos.Paraelloiniciaremosunatransaccinyprovocaremos
unacadadelaBD,comprobandoquealarrancarladenuevo,semantendrlaintegridad
delamisma.

ConsultarelcontenidoylaestructuradelatablaBORRAMEdelusuarioSYSTEM.
InsertarunafilasinhacercommityforzarlacadadelaBD.
ArrancardenuevolaBDycomprobarquelafilainsertadanoest(puesnosehizocommit).
Repetirlainsercindelafila,estavezhaciendocommit;yforzarlacadadelaBDotravez.
ArrancarlaBDunavezmsycomprobarqueahoralafilasiest(yaquesevalidla
transaccinconcommit).

Solucin:
SQL>connect/assysdba
Connected.

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

16

AdministracinBsicadeOracle10g
SQL>createtablesystem.borrame(c1varchar2(10))tablespaceusers;
Tablecreated.
SQL>insertintosystem.borramevalues('Primera');
1rowcreated.
SQL>commit;
Commitcomplete.
SQL>select*fromsystem.borrame;
C1

Primera
SQL>descsystem.borrame
NameNull?Type

C1VARCHAR2(10)
SQL>insertintosystem.borramevalues('Segunda');
1rowcreated.
SQL>select*fromsystem.borrame;
C1

Primera
Segunda
SQL>shutdownabort
ORACLEinstanceshutdown.
SQL>connect/assysdba
Connectedtoanidleinstance.
SQL>startup
...
Databaseopened.
SQL>select*fromsystem.borrame;
C1

Primera
SQL>insertintosystem.borramevalues('Segunda');
1rowcreated.
SQL>commit;
Commitcomplete.
SQL>select*fromsystem.borrame;
C1

Primera
Segunda
SQL>shutdownabort
ORACLEinstanceshutdown.
SQL>connect/assysdba
Connectedtoanidleinstance.

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

17

AdministracinBsicadeOracle10g
SQL>startup
...
Databaseopened.
SQL>select*fromsystem.borrame;
C1

Primera
Segunda

1.17.Comprobarelfuncionamientodelacachdedatos,enloqueserefierealamejora
delrendimientocuandoserepiteunaconsulta.Porqulasegundavezqueselanzala
mismaconsultatardamenos?

ActivarlamedicindetiemposensqlplusconSETTIMINGON.
LanzarlaconsultaSELECTCOUNT(*)FROMDBA_SOURCE.
Volveralanzarlamismaconsulta.
Comprobarquelasegundaejecucintardamuchomenos,yaquelosdatosyasecargaron
enlacachdedatosallanzarlalaprimeravez;yportantoseaccedendirectamenteen
memoriaynoendisco.

Solucin:
(Primerovamosavacialacachdedatos,paraasegurarnosquelosdatosnoestnen
ella)
SQL>altersystemflushbuffer_cache;
Sistemamodificado.
SQL>settimingon
SQL>selectcount(*)fromdba_source;
COUNT(*)

101914
Elapsed:00:00:01.04
SQL>r
COUNT(*)

101914
Elapsed:00:00:00.03

JuanLuisSerradillaAmarillayFranciscoFernndezMartnez

18