Está en la página 1de 24

ndicedecontenido

1.Arquitecturayestructurainternadeungestordebasesdedatos..........................................2 2.Comandodecontroldeaccesoyrolesparaunabasededatos............................................7 3.Estructurasdealmacenamiento............................................................................................20 4.ObjetosparausuariosyesquemasdeOracle.......................................................................23

1. Arquitecturayestructurainternadeungestordebasesde datos.
Descripcindelosprocesosdeusuario Cuandounusuarioejecutaunprogramadeaplicacin(comounprogramaPro*C)ouna herramientadeOracle(comoOracleEnterpriseManageroSQL*Plus), laBasesdedatos Oraclecreaunprocesodeusuarioparaejecutarlaaplicacindelusuario. ConexionesySesiones Sesionesyconexionesyestnestrechamenterelacionadasconlosprocesosdeusuario, perosonmuydiferentesensignificado. Conexin esunavadecomunicacinentreunusuarioyunprocesodeBasesdedatos, ejemplo: Una va de comunicacin se establece mediante la comunicacin entre los mecanismosdisponibles(enunequipoqueejecutanambos,elprocesodeusuarioyelde basededatos)osoftwaredered(cuandoseejecutediferentesequipos,laaplicacin yla basededatos,secomunicanatravsdeunared). Sesin esuna conexin deunusuarioauna base dedatosatravsdeun proceso de usuario.Porejemplo,cuandounusuarioiniciaSQL*Plus,elusuariodebeproporcionarun nombredeusuariovlidoycontrasea,luegoesestablecidaunasesinparaeseusuario. Unasesinduradesdeelmomentoenqueelusuarioseconectahastaelmomentoenqueel usuariosedesconectaosaledelaaplicacindebasededatos.

DescripcindelosprocesosdeOracle ExistendostiposdeprocesosqueseejecutanenOracle,Losprocesosdeservidoryde fondo. Procesosdeservidor Oraclecreaprocesosdeservidorparamanejarlaspeticionesdelosusuariosconectadosa losprocesosdelainstancia.Enalgunasocasiones,cuandolaaplicacinyOracleoperanen elmismoequipo,esposiblecombinarelprocesodeusuarioysucorrespondienteprocesode servidorenunnicoprocesoparareducirlosgastosgeneralesdelsistema.Sinembargo, cuando la aplicacin y Oracle, operan de los distintos equipos, un proceso de usuario siempresecomunicaconlabaseOracleatravsdeotroprocesodeservidor. AnalizayejecutarcomandosSQLemitidoatravsdelaaplicacin. Leelosbloquesdatosnecesariosenlosdatafilesendisco,enlosbufferscompartidos delaSGA,silosbloquesnoestnyapresentesenlaSGA Mostrarlosresultadosdetalmaneraquelaaplicacinpuedeprocesarlainformacin

Procesosdefondo Para maximizarelrendimientoytenermuchosusuarios,un sistema Oraclemultiproceso, utilizalosprocesosdefondo ArchiverProcesses(ARCn) CheckpointProcess(CKPT) DatabaseWriterProcess(DBWn) LogWriterProcess(LGWR) ProcessMonitorProcess(PMON) QueueMonitorProcesses(QMNn) RecovererProcess(RECO) SystemMonitorProcess(SMON)

ArchiverProcesses(ARCn) Los procesos de Archive (ARCn) copia los redo log file designado a un dispositivo de almacenamiento,despusdelcambiodelredolog.Adems,puedenrecogerdatos,rehacer lastransaccionesytransmitirdatosalosdestinosstandby.ARCnprocessesestnpresentes slo cuando la base de datos est en modo ARCHIVELOG y automatic archiving est activado. SihayunagrancargadetrabajoparaelArchiver,comoporejemplodurantelacargamasiva dedatos,puedeaumentarelnmeromximodeArchiverProcesses,conelparmetrode

inicializacin, LOG_ARCHIVE_MAX_PROCESSES. ALTER SYSTEM el estamento puede cambiarelvalordeesteparmetrodeformadinmicaparaaumentarodisminuirelnmero ARCnprocesses. CheckpointProcess(CKPT) Cuandoseproducecheckpointcontrol,Oracledebeactualizarlatodaslascabecerasdelos datafilespararegistrarlosdetallesdelcheckpoint.EstosehaceporelprocesoCKPT.El procesoCKPT,noescribirbloqueseneldisco;DBWnquesiemprerealizaeltrabajo. DatabaseWriterProcess(DBWn) Database Writer Process escribe el contenido de buffers en los datafiles. El DBWn es responsable de los procesos de escritura y modificado(sucio) del buffer cach al disco. Aunqueundatabasewriterprocess(DBW0)esadecuadoparalamayoradelossistemas,se puede configurar los procesos (DBW1 al DBW9 y DBWa al DBWj), para mejorar el rendimientodeescritura,sisusistemamodificaaltamenetelosdatos.EstosadicionalesDBW nprocesosnosontilesensistemasmonoprocesador. LogWriterProcess(LGWR) ElLogWriterProcess(LGWR)seencargadelagestinescrituradebufferredolog aun redologfileeneldisco.LGWRescribetodaslasentradasderedoquesehancopiadoenel bufferdesdelaltimavezqueescribi. Elredologbufferesunbuffercircular.CuandoLGWRescribeentradasderedodelregistro deredobufferaunarchivoderegistroderedo,elservidordeprocesospuedecopiarnuevas entradas ms de las entradas en el redo log bufferque se han escrito en disco. LGWR escribenormalmenteconlasuficienterapidezparagarantizarqueelespacioestsiempre disponibleenelbufferdenuevasentradas,inclusocuandoelaccesoalaredologespesado. ProcessMonitorProcess(PMON) Llevaacaboelprocesoderecuperacincuandounprocesousuariofalla.PMONseencarga delalimpiezadelbuffercachedelabaseyliberarrecursosparalosprocesosdeusuario. Porejemplo,seresetealaelestadodelatabladeoperacinactiva,liberabloqueosyelimina losprocesosdelalistadeprocesosactivos.

PMONcompruebaperidicamentelasituacindecontrolylosprocesosdelservidoryquese reiniciecualquierprocesoquehandejadodepublicarse(peronotodoloquehaterminado intencionalmente). PMON tambin registra informacin acerca de la instancia y de los procesosdecontrolconlaredoyente.

QueueMonitorProcesses(QMNn) EsunprocesodefondoopcionalparaOracleStreamsAvanzadaQueuing,quesupervisalas colasdemensajeria. Sepuedeconfigurarhasta10procesosdelacolademonitor.Estos procesos son diferentes de otros procesos de fondo de Oracle, en caso de fracaso del proceso,nocausalacadadeOracle. RecovererProcess(RECO) esunprocesodefondoqueseutilizaconlaconfiguracindelabasededatosdistribuida, resuelveautomticamentefallosdetransaccionesdistribuidas

SystemMonitorProcess(SMON) Llevaacabolarecuperacin,siesnecesario,enelarranquedeunainstancia.SMONes tambinresponsabledelalimpiezadelossegmentostemporalesqueyanoestnenusoy delafusindelosextenslibrescontiguos.Sialgunadelasoperacionesterminadassehan omitidodurantelarecuperacindelainstanciaacausadearchivosdeerroresdelecturao fueradelnea,SMONrecuperaeltablespaceysetraedenuevoenlnea. SMONrealiza controlesperidicamenteparaversiesnecesariolarecuperacin.Otrosprocesospueden llamarSMONsisedetectaunanecesidad.

2. Comandodecontroldeaccesoyrolesparaunabasede datos.

Conceptosdegestindeprivilegiosyrecursos Concepto Privilegio Rol Usuario Perfil Significado Permisopararealizarunaaccin,asignableaunusuarioounrol Conjuntodeprivilegios,asignablesaunusuarioounrol Coleccindeobjetosyprivilegiosidentificadoconunnombreypassword Conjuntoderestriccionesrelativasalusoderecursos,yasignableausuarios. Unusuarioslopuedetenerunperfil Usosusceptibledeserrestringido,asignableaunperfil

Recurso

RolesPredefinidosporOracle select*fromdba_roles; CONNECT RESOURCE DBA EXP_FULL_DATABASE IMP_FULL_DATABASE DELETE_CATALOG_ROLE EXECUTE_CATALOG_ROLE SELECT_CATALOG_ROLE

RecursosenOracle select*fromuser_resource_limits; COMPOSITE_LIMIT SESSIONS_PER_USER CPU_PER_SESSION CPU_PER_CALL LOGICAL_READS_PER_SESSION LOGICAL_READS_PER_CALL IDLE_TIME CONNECT_TIME PRIVATE_SGA

Limitesenusodelespacioendisco select*fromdba_ts_quotas; ALTERUSERSCOTTQUOTAUNLIMITEDONUSER_DATA; ALTERUSERSCOTTQUOTA5MONTEMPORARY_DATA; ALTERUSERSCOTTQUOTA0ONSYSTEM;

GestindePrivilegios Paralagestinde: Privilegios Comandoautilizar GRANT(concederunprivilegioaunusuariooaunrol) REVOKE(denegarunprivilegioaunusuariooaunrol) CREATEROLE(crear) ALTERROLE(modificar) DROPROLE(borrar) SETROLE(activar,desactivar) GRANT(concederunpermisoounrolaunrol) REVOKE(denegarunpermisoounrolaunrol) CREATEUSER(crear) ALTERUSER(modificar) DROPUSER(borrar) GRANT(concederunpermisoounrolaunusuario) REVOKE(denegarunpermisoounrolaunusuario) CREATEPROFILE(crear) ALTERPROFILE(modificar) DROPPROFILE(borrar) ALTERUSER...PROFILE(asignaraunusuario) CREATEUSER...PROFILE(asignaraunusuario)

Roles

Usuarios

PerfilesyRecursos

Activacindeperfiles EstadodelaBasedeDatos Accin BasedeDatosParada BasedeDatosArrancada RESOURCE_LIMIT=TRUEenc:\orant\database\initorcl.ora ALTERSYSTEMSETRESOURCE_LIMIT=TRUE;

Vistasmsrelevantes Significado Usuarios Roles Rolesasignadosa rolesousuarios NivelDBA dba_users dba_roles dba_role_privs user_role_privs NivelUsuario user_users NivelUusuario all_users

Privilegiosasignadosa dba_sys_privs rolesousuarios Permisossobretablas asignadosaroleso dba_tab_privs usuarios Rolesasignadosa roles Privilegiosdecadarol Lmitesderecursos Perfilesysuslmites dba_profiles derecursosasociados Lmitesderecursosen cuantoarestricciones enclaves Lmitesderecursosen cuantoaespacio dba_ts_quotas mximoen tablespaces role_role_privs role_sys_privs user_resource_limits

user_password_limits

user_ts_quotas

Ejemplosdegestindeprivilegiosyrecursos Crearunperfilquequeslopermita2conexionesconcurrentesyasignareseperfilal usuarioSCOTT SYSTEM>createprofilesolodoslimitsessions_per_user2; SYSTEM>alteruserscottprofilesolodos; Crearunrolllamadoconectarsequeincluyalosrolesconnectyresource,yasignar eserolascott SYSTEM>createroleconectarse; SYSTEM>grantconnect,resourcetoconectarse; SYSTEM>grantconectarsetoscott; ConvertirascottenDBA SYSTEM>grantdbatoscott; BloqueodeUsuario SYSTEM>alteruserscottaccountlock; DesbloqueodeUsuario SYSTEM>alteruserscottaccountunlock; Crearunusuarioespecificandoquelapassworddebesercambiadaenlaprimera conexin SYSTEM>createuserprueba1identifiedbyprueba1passwordexpire; CambiarelespacioreservadoendiscoparaSCOTT SYSTEM>alteruserscottquotaunlimitedonuser_data; SYSTEM>alteruserscottquota5Montemporary_data; SYSTEM>alteruserscottquota0onsystem; SYSTEM>select*fromdba_ts_quotas; CrearunusuariollamadoPRUEBA1ydarlenicamenteelpermisoparaconectarse (hacerlogon) SYSTEM>createuserprueba1identifiedbyprueba1;

SYSTEM>grantcreatesessiontoprueba1; DaralusuarioPRUEBA1permisoparacreartablas SYSTEM>grantcreatetabletoprueba1; SYSTEM>alteruserprueba1defaulttablespacesystemquota10Mon system; SYSTEM>connectprueba1/prueba1 PRUEBA1>createtabletabla1(campo1number); PRUEBA1>connectsystem/manager DesdeSCOTT,daralusuarioPRUEBA1elpermisodeconsultarlatablaEMP SYSTEM>connectscott/tiger SCOTT>grantselectonemptoprueba1; PRUEBA1>select*fromscott.emp; PRUEBA1>connectsystem/manager DesdeSCOTT,daralusuarioPRUEBA1elpermisodeinsertarenlatablaEMP SYSTEM>connectscott/tiger SCOTT>grantinsertonemptoprueba1; PRUEBA1>insertintoscott.empvalues('john',999,'development'); PRUEBA1>connectsystem/manager DesdeSYSTEM,daralusuarioPRUEBA1elpermisodeconsultarlatablaEMPde SCOTT SYSTEM>connectscott/tiger SCOTT>grantselectonemptosystemwithgrantoption; PRUEBA1>connectsystem/manager SYSTEM>grantselectonscott.emptoprueba1; SYSTEM>connectprueba1/prueba1 PRUEBA1>select*fromscott.emp; PRUEBA1>connectsystem/manager DesdeSYSTEM,daralusuarioPRUEBA1elpermisodecrearotrosusuarios SYSTEM>grantcreateusertoprueba1; SYSTEM>connectprueba1/prueba1 PRUEBA1>createuserprueba2identifiedbyprueba2; dropuserprueba2; PRUEBA1>connectsystem/manager DesdeSYSTEM,daralusuarioPRUEBA1elpermisodecrearotrosusuarios(por

ejemplo,PRUEBA2)deformaqueestos,asuvez,puedancrearotrosusuarios(por ejemplo,PRUEBA3) SYSTEM>grantcreateusertoprueba1withadminoption; SYSTEM>grantcreatesessiontoprueba1withadminoption; SYSTEM>connectprueba1/prueba1 PRUEBA1>createuserprueba2identifiedbyprueba2; PRUEBA1>grantcreateusertoprueba2withadminoption; PRUEBA1>grantcreatesessiontoprueba2withadminoption; PRUEBA1>connectprueba2/prueba2 PRUEBA2>createuserprueba3identifiedbyprueba3; PRUEBA2>grantcreatesessiontoprueba3; PRUEBA2>connectprueba3/prueba3 PRUEBA3>connectsystem/manager. objetos Privilegiossobre ALTER EXECUTE INDEX INSERT READ REFERENCES SELECT UPDATE ALLALLPRIVILEGES

Sistema Privilegiosdelsistema ALTERANYCLUSTER ALTERANYINDEX ALTERANYPROCEDURE ALTERANYROLE ALTERANYSEQUENCE ALTERANYSNAPSHOT ALTERANYTABLE ALTERANYTYPE ALTERANYTRIGGER ALTERDATABASE ALTERPROFILE ALTERRESOURCECOST ALTERROLLBACKSEGMENT ALTERSESSION ALTERSYSTEM ALTERTABLESPACE ALTERUSER

ANALYZEANY AUDITANY AUDITSYSTEM BACKUPANYTABLE BECOMEUSER COMMENTANYTABLE CREATEANYCLUSTER CREATEANYDIRECTORY CREATEANYINDEX CREATEANYLIBRARY CREATEANYPROCEDURE CREATEANYSEQUENCE CREATEANYSNAPSHOT CREATEANYSYNONYM CREATEANYTABLE CREATEANYTRIGGER CREATEANYTYPE CREATEANYVIEW CREATECLUSTER

CREATEDATABASELINK CREATEANYLIBRARY CREATEPROCEDURE CREATEPROFILE CREATEPUBLICDATABASELINK CREATEPUBLICSYNONYM CREATEROLE CREATEROLLBACKSEGMENT CREATESEQUENCE CREATESESSION CREATESNAPSHOT CREATESYNONYM CREATETABLE CREATETABLESPACE CREATETRIGGER CREATETYPE CREATEUSER CREATEVIEW DELETEANYTABLE

DROPANYCLUSTER DROPANYDIRECTORY DROPANYINDEX DROPANYLIBRARY DROPANYPROCEDURE DROPANYROLE DROPANYSEQUENCE DROPANYSNAPSHOT DROPANYSYNONYM DROPANYTABLE DROPANYTRIGGER DROPANYTYPE DROPANYVIEW DROPLIBRARY DROPPROFILE DROPPUBLICDATABASELINK DROPPUBLICSYNONYM DROPROLLBACKSEGMENT DROPTABLESPACE

DROPUSER EXECUTEANYPROCEDURE EXECUTEANYTYPE FORCEANYTRANSACTION FORCETRANSACTION GRANTANYPRIVILEGE GRANTANYROLE INSERTANYTABLE LOCKANYTABLE MANAGETABLESPACE RESTRICTEDSESSION SELECTANYSEQUENCE SELECTANYTABLE SYSDBA SYSOPER UNLIMITEDTABLESPACE UPDATEANYTABLE

3. Estructurasdealmacenamiento
Almacenamiento Descripcin

ArchivosdeControl

Contieneinformacindecontrolyseguimientoimprescindibleparael funcionamientodelabasededatos. Esrecomendabletenervariascopiasdelficherodecontrolpara poderarrancarlabasededatossiunadeellasseestropea,y durantelacreacinsecreantresficheros. Esunaestructuralgicaqueagrupaunomsficherosdedatoso ficherostemporales(tempfiles)yquepermitenalmacenarlosobjetos creadosporlosusuarios.

Tablespaces

Esunaestructuralgicaqueagrupaunomsficherosdedatoso ficherostemporales(tempfiles)yquepermitenalmacenarlosobjetos creadosporlosusuarios. Hayvariostiposdetablespaces: Undotablespaces.Seutilizanparagestionarpoderdeshacerlas transaccionesincompletas.Enversionesanterioresseutilizabanlos segmentosdeRollbackpararealizarestatarea. Temporarytablespaces.Permitenentreotrastareasmejorarel tiempoderespuestaenlasordenaciones Permanenttablespaces.Estetipodetablespacessernasignadosa unoovariosusuariosycontendrnlosobjetosdesuesquema (tablas,procedimientos,ndices,...)

Gruposde tablespaces temporales Archivosdedatos

Alasignarun"Grupodetablespacestemporales"aunusuario,sus transacciones pueden utilizar cualquiera de los tablespaces temporalesasignadosalgrupo,deformaquesepuedeoptimizarsu uso. Son los ficheros del sistema operativo en los cuales se van a almacenarlosdatosdelabasededatos. Seestructuranen: Segmentos.Unsegmentocontieneuntipoespecficodeobjetosde labasededatos,comoporejemplounatabla.Unsegmentoest compuestodeextensionesquedefineneltamaodisponibleparael segmento.Amedidaquesellenanlasextensionessevanaadiendo nuevasextensiones.

Extensiones.Cadaextensinestformadaporunconjuntode bloquesdedatosconsecutivos. Bloquesdedatos.Eslaunidaddealmacenamientomspequea quesepuedeutilizarenunaoperacindeentradaosalidadedatos.

Segmentosde Rollback

En versiones anteriores se utilizaban para deshacer las transaccionesincompletas.

GruposdeRedoLogs Comomnimotodabasededatostienedosficherosderedologs, que tienen por misin registrar todas las modificaciones que se realizansobrelabasededatos.Silabasededatossecaesinhaber grabadodeformapermanenteloscambios,alrecuperarseutilizar lainformacindeestosficherosparaactualizarlosdatos. Seentiendeporungrupoderedologs,aunficheroderedologylas copiasdelmismo.Pordefectohayunnicoficheroenelgrupo,pero sepueden"agregar"msparamejorarlaseguridadyprotegerla basededatoscontralaprdidadelficheroderedolog.

ArchiveLogs

Cuandoseactivaelmododearchivado,losficherosderedologque sevanllenandosealmacenancomounficheroconnombrepropio enelsistemaoperativo.

CrearunTABLESPACE SYSTEM>CREATETABLESPACEusuariosDATAFILE '/u01/oracle/oradata/XE/DTF_usuarios_01.dbf'SIZE200MAUTOEXTENDOFFMINIMUM EXTENT10MNOLOGGINGEXTENTMANAGEMENTDICTIONARYLOCAL; CrearunTABLESPACE DROPTABLESPACEusuariosINCLUDINGCONTENTSANDDATAFILESCASCADE CONSTRAINTS; CrearunDATAFILEparaunTABLESPACE SYSTEM>ALTERTABLESPACE"USERS"ADDDATAFILE '/usr/lib/oracle/xe/oradata/XE/users_01.dbf'SIZE200M ModificareltamaodelDATAFILEparaunTABLESPACE

SYSTEM>ALTERTABLESPACE"USERS"DATAFILE '/usr/lib/oracle/xe/oradata/XE/users_01.dbf'RESIZE200M

4. ObjetosparausuariosyesquemasdeOracle

Objeto

Descripcin

Tabla

sonlaunidadbsicadealmacenamientodedatosenOracle.Los datosson almacenadosenfilasycolumnas esunatablalgica,quemuestraunapartedelabasededatos.Las vistaspermiten"almacenar"demaneralgicalosresultadosdela consulta Losndicesseusanparamejorarelrendimientodelasoperaciones sobreunatabla. EngeneralmejoranelrendimientolasSELECTyempeoran (mnimamente)elrendimientodelosINSERTylosDELETE

Vista

ndice

Trigger(Gatillador)

esunbloquePL/SQLasociadoaunatabla,queseejecutacuando unadeterminadainstruccinenSQLsevaaejecutarsobredicha tabla es un conjunto de instrucciones en PL/SQL, que pueden ser llamados usando el nombre con que se le haya creado. Se diferenciandelosprocedimientos,enquelasfuncionesretornanun valoralambientedesdedondefueronllamadas. esunconjuntodeinstruccionesenPL/SQL,quepuedenserllamado usandoelnombrequeselehayaasignado EsunaagrupacindeProcedimientosyfunciones.

Funciones

Procedimiento Almacenado Package

Crearunatabla PRUEBA1>CREATETABLEtabla1(identnumber,descripvarchar2(10)); Modificarunatabla PRUEBA1>ALTERTABLEtabla1ADDCONSTRAINTpk_idePRIMARYKEY(ident);

EliminarUnatabla PRUEBA1>DROPTABLEtabla1CASCADE;

También podría gustarte