MANUAL DE ADMINISTRACION DE BASES DE DATOS UNIDAD 1 Fundamentos de los Sistemas Gestores de Bases de Datos
[1.1] Funcionamiento los Sistemas Gestores de Bases de Datos [1.1.1]Sistemas Gestores de Bases de Datos
Un Sistema Gestor de Base de Datos (SGBD) es el software que permite gestionar bases de datos, ocultando la física de la misma y permitiendo su gestión desde un niel m!s conceptual" Dic#o software permite separar las aplicaciones (los programas) de los datos$ de modo que los programas negocian con el SGBD el acceso a los datos" %n definitia se trata de un software comple&o, pero de gran importancia por lo delicado de la rama de la información a la que se dedica" 'os SGBD #an crecido de manera eponencial estos ltimos a*os por el +ito de nternet, que #a proocado prooc ado el acceso a miles y miles de bases de datos por parte de millones de usuarios cada día" [1.1.2]modelo ANSI/X3/SPA!
%l grupo de traba&o SPA! de la sección X3 del organismo de est!ndares ANSI, dise*o un modelo en el que indicaba cómo debía funcionar un SGBD para asegurar la separación entre datos y aplicaciones" %ste organismo definió tres y así especificó tres nieles•
Nivel externo. externo . Deine el ni!el en el "ue los usuarios # usuarias utili$an la %ase de datos. La orma de !er la misma o&ulta la estru&tura real de la %ase de datos. Este ni!el ore&e el o%'eti!o inal de una %ase de datos( "ue es la !isi)n de la misma "ue *oseen los usuarios # "ue +estionar o%ser!ar de orma &)moda la inorma&i)n alma&enada en el sistema. %ste niel es creado por los desarrolladores o programadores de la base de datos"
•
•
Nivel interno/físico. interno/físico . Se reiere a la orma en la "ue realmente se alma&ena la inorma&i)n de la %ase de datos. Los administradores , administradores ,DBA DBA-- de la %ase de datos son los en&ar+ados de &rear # &oni+urar la %ase de datos a este ni!el. or lo tanto este ni!el es el m/s rela&ionado &on los &ontenidos de este manual. Nivel conceptual. conceptual . Deine la %ase de datos 0a&iendo reeren&ia a la orma en la "ue se rela&iona la inorma&i)n( o&ultando la orma en la "ue realmente se alma&ena en el ordenador. ordenador. Es un ni!el m/s 0umano "ue el si&o( *ero no tanto &omo el e2terno. %ste niel lo gestionan los analistas y.o dise*adores de la base de datos" 'os esquemas de la base de datos relacionados con este niel (esquema conceptual y esquema lógico) son so n los primeros que se crean"
'a lustración /, muestra la idea de los nieles en el modelo 01S" 'os tres nieles usan un modelo de traba&o para crear los esquemas (diagramas) de traba&o de la base de datos" 'a idea es que pasar de un niel a otro sea un proceso automati2ado (mediante lo que 01S llama funciones de traducción" 'a lustración 3 muestra la propuesta arquitectónica del modelo 01S.45.S6078" %n ella se obsera el proceso de creación de una base de datos diidida en la fase de definición y la de creación" 'os nmeros del esquema epresan el funcionamiento•
•
•
•
•
El administrador empresarial ,lo "ue 0o# en da se &ono&e &omo analista- &rea el es"uema &on&e*tual. 3ste se *ro&esa &on la a#uda de un *ro&esador de esquema conceptual ,lo "ue 0o# en da se &ono&e &omo herramienta CASE-. De ese *ro&eso se o%tienen metadatos( la inorma&i)n "ue *ermite des&ri%ir a la *ro*ia %ase de datos. El es"uema &on&e*tual se modii&a *or *arte del administrador de la base de datos *ara *rodu&ir el esquema interno de la misma usando un procesador de esquemas internos "ue +enera nue!os metadatos. A la !e$ el administrador de aplicaciones , jefe de desarrollo- +enera el es"uema e2terno usando otro *ro&esador "ue +enerar/ nue!os metadatos. La ase de mani*ula&i)n la ini&ia el usuario( el &ual +estiona los datos usando es"uemas e2ternos. Los *untos 4 a 15 lo "ue 0a&en es transormar la inorma&i)n *edida *or el usuario de orma e2terna( a su orma si&a. Ese *aso re"uiere dos transorma&iones intermedias( *asando *or los es"uemas &on&e*tuales e internos ,*ara lo &ual se usan los metadatos alma&enados-.
[1.1.3]Ni"eles de a#stracci$n actuales
9oy en día se definen m!s nieles de traba&o con las bases de datos" Se #abla de cinco (a eces incluso de m!s) nieles" %stos nieles son (empe2ando desde el m!s cercano al usuario)•
•
•
•
Nivel externo. Si+ue re*resentando la !ista "ue *oseen los distintos usuarios de la %ase de datos. En realidad los es"uemas de este ni!el son los 6ltimos "ue se &rean # lo 0a&en los desarrolladores o *ro+ramadores. Nivel conceptual. A&tualmente se &onsidera as al ni!el "ue re*resenta los *rimeros es"uemas de la %ase de datos( "ue son a"uellos "ue dise7an los analistas o diseadores. E'em*lo de modelo "ue o*era a este ni!el es el modelo Entidad/!elaci"n. Nivel l"#ico. Se a&er&a m/s a la si&a de la %ase de datos. En este ni!el se 0a&e reeren&ia a estru&turas de or+ani$a&i)n de inorma&i)n "ue !aran se+6n el ti*o de SGBD "ue se utili&e. Este ni!el si+ue siendo mane'ado *or los analistas. En mu&0os &asos ,aun"ue &iertamente es *eli+roso- los dise7adores8as de la %ase de datos em*ie$an *or este ni!el salt/ndose el anterior. En la a&tualidad el modelo relacional si+ue siendo el modelo m/s 0a%itual *ara &rear es"uemas a ni!el l)+i&o. Nivel interno. Es el *rimero en el *ro&eso de modelado de la %ase de datos "ue se reali$a so%re el sot9are +estor de la %ase de datos ,teniendo en &uenta "ue lo e2terno( las a*li&a&iones( se &rean m/s tarde-. Usa el len+ua'e de la %ase de datos *ara &rear las estru&turas de datos deinidas en el ni!el l)+i&o. Este ni!el lo mane'a el administrador de la base de datos ,o DBA-.
•
Nivel físico. Se reiere a &omo se or+ani$ar/n los datos en el dis&o( en "u: ordenadores se &rea la %ase de datos( si es distri%uida o no( sistema o*erati!o ne&esario( estru&tura de dire&torios # ar&0i!os( &oni+ura&i)n de ser!idores # sistema o*erati!o( *olti&a de &o*ia de se+uridad(; 'a persona encargada de definir el niel físico esto es la administradora de la base de datos o bien la administradora del sistema" %n realidad #ay acciones referidas a este niel que se #acen antes que las del niel anterior$ otras se ir!n #aciendo despu+s o a la e2"
[1.1.%] &unciones del SGBD
8ualquier Sistema Gestor de Bases de Datos debe de ser capa2 de reali2ar tres funciones b!sicas•
$unci"n de descripci"n o definici"n . Mediante ella se &rean los metadatos de la %ase de datos. Es la "ue utili$an los administradores # analistas de las %ases de datos *ara &rear los es"uemas l)+i&os( internos # si&os. Esta un&i)n se reali$a mediante el len+ua'e de des&ri*&i)n de datos o DD%( aun"ue se *uede reali$ar mediante 0erramientas +r/i&as "ue a&iliten esta tarea. 'as instrucciones S:' est!ndar que se dise*aron para reali2ar esta función son !'A(', A)(' y D*P"
•
•
$unci"n de manipulaci"n. ermite modii&ar # utili$ar los datos de la %ase de datos. Se reali$a mediante el len+ua'e de modii&a&i)n de datos o D&%. Esta un&i)n a !e&es se di!ide en tres o &odificaci"n propiamente dicha ( reali$ada mediante un len+ua'e DML( "ue *ermite a7adir( modii&ar # eliminar datos. En S
[1.1.-]tareas del DBA
%stos apuntes est!n dedicados a la labor del administrador de bases de datos o DB0" 'as tareas m!s comnmente aceptadas como implícitas a la labor de un DB0 son•
Confi#urar e instalar el hard.are en el que se instalar el servidor o servidores de bases de datos. Im*li&a de&idir "u: 0ard9are es el )*timo e im*lementar memoria( dis&os e instala&i)n de red ne&esaria. A !e&es 0a# un se+undo administrador ,el del sistema- "ue se en&ar+a de ello *ero %as/ndose en las ne&esidades e2*uestas *or el DBA.
•
•
•
•
•
•
•
Confi#urar e instalar el Sistema ,perativo . Tam%i:n la +esti)n mnima del sistema o*erati!o *ara "ue la %ase de datos un&ione &orre&ta # r/*idamente. Nue!amente( *uede ser una tarea &oordinada &on un administrador del sistema. 'nstalaci"n 0 mantenimiento del S1BD . Sele&&ionando la m/s ade&uada orma de instala&i)n # &oni+urando lo ne&esario *ara su )*timo rendimiento( a&orde &on las ne&esidades. Tam%i:n es *arte de esta tarea el &ontrol de las a&tuali$a&iones del sistema de %ases de datos "ue sean ne&esarias. Crear 0 confi#urar las base de datos . Crea&i)n de la estru&tura interna de la %ase de datos ,ta%las( usuarios( *ermisos( !istas(;-. Es otra de las tareas m/s 0a%itualmente rela&ionadas &on el DBA # la *rimera ase ,# las m/s &rti&a- en a administra&i)n de una %ase de datos. Control de los usuarios 0 los permisos . En deiniti!a esta%le&er las *olti&as de se+uridad ante a&&esos no &ualii&ados( tan im*res&indi%les en toda %ase de datos. 1esti"n de la se#uridad. Com*lemente la tarea anterior *ara *rote+er al sistema ante ata"ues de ter&eros o &ondi&iones "ue &om*rometan la esta%ilidad del sistema. &onitori2ar 0 optimi2ar el rendimiento de la base de datos . Un DBA de%e dete&tar los &uellos de %otella del sistema # a&tuar en &onse&uen&ia. Esto in&lu#e o*timi$ar las instru&&iones( &rear estru&tura de a&&eso !elo&es o me'orar la inrastru&tura 0ard9are # sot9are. !eali2ar tareas de copia de se#uridad 0 recuperaci"n .
[1.2] ociones de &uncionamiento de un SGBD [1.2.1]SGBD monocaa
Se trata de Sistemas Gestores instalados en una m!quina desde la que se conectan los propios usuarios y administradores" %s decir todo el sistema est! en una sola m!quina" 'a enta&a es la seguridad y la clara desenta&a la ba&a disponibilidad e incomodidad de traba&o" %s un modelo que sólo se utili2a con bases de datos peque*as y poca cantidad de coneiones" %l software Access de icroso&t es considerada un sistema gestor monocapa (aunque tiene algunas posibilidades para utili2ar en dos capas)"
[1.2.2]SGBD de dos caas
Usa un modelo de funcionamiento tipo cliente/ser"idor" 'a base de datos y el sistema gestor se alo&an en un seridor, mientras que los clientes acceden desde m!quinas distintas a tra+s de la red (sea local o global)" 'os usuarios requieren disponer de un software de acceso denominado cliente de #ase de datos" %n el seridor #ay procesos encargados de atender a estas peticiones"
%n los sistemas bicapas #ay dos posibilidades•
•
Arquitectura cliente/servidor 3nico. Un solo ser!idor +estiona la %ase de datos( todos los &lientes se &one&tan a :l *ara reali$ar las *eti&iones a la %ase de datos. Arquitectura cliente/multiservidor . La %ase de datos se distri%u#e entre !arios ser!idores. El &liente no sa%e realmente a "u: ser!idor se &one&ta= el sot9are de &ontrol de &omuni&a&iones se en&ar+ar/ de diri+ir al usuario al ser!idor ade&uado. De orma l)+i&a( es &omo si se tratara de un solo ser!idor aun"ue si&amente sean mu&0os ,el &liente no *er&i%e "ue 0a#a m/s de un ser!idor-.
[1.2.3]SGBD de tres o m0s caas
%n este caso entre el cliente y el seridor #ay al menos una capa intermedia (puede #aber arias)" %sa capa (o capas) se encarga de recoger las peticiones de los clientes y luego de comunicarse con el seridor (o seridores) de bases de datos para recibir la respuesta y eniarla al cliente"
%l caso típico es que la capa intermedia sea un seridor web, que recibe las peticiones a tra+s de aplicaciones web$ de este modo para conectarse a la base de datos, el usuario solo requiere un naegador web, que es un software muy #abitual en cualquier m!quina y por lo tanto no requiere una instalación de software adicional en la m!quina cliente"
%ste modelo es el que m!s se est! potenciando en la actualidad por motios de seguridad y ocultación de la base de datos" %l seridor intermedio, en muc#os casos, realmente es el que alo&a la interfa2 de mane&o de los usuarios de la base de datos" %n t+rminos del modelo 01S, es el que almacena y sire los esquemas eternos de la base de datos" inter&aces de acceso a las #ases de datos
%l seridor intermedio se suele comunicar con el seridor de bases de datos a tra+s de un componente (un drier) que proporciona a los programadores una interfa2 (API) de acceso a la base de datos" 'as interfaces m!s populares son•
•
•
•
•
•
,DBC (Open DataBase Connectivity). Intera$ mu# utili$ada # !eterana aus*i&iada *or &icrosoft *ara a&&eder a todo ti*o de %ases de datos ,tanto rela&ionales &omo no rela&ionales- a tra!:s de Sa!a &reada *or la em*resa Sun &icros0stems ,&readora del len+ua'e >a!a-. Es similar a la anterior( *ero utili$a%le solo en este len+ua'e. ,%E DB (Online Linking and Embeded DataBases). Intera$ de %a'o ni!el *ara el a&&eso a %ases de datos de todo ti*o. Se %asa en DBC al "ue a*orta nue!as *osi%ilidades. No 0a tenido el :2ito "ue si+ue teniendo ODBC. AD, (ActiveX Data Objects). Intera$ &reada *or Mi&rosot *ara el a&&eso a %ases de datos a tra!:s de o%'etos Active5 &reados en 6isual Basic. AD,7Net. Intera$ de a&&eso a %ase de datos *ara a*li&a&iones %asadas en la *lataorma 7Net de &icrosoft. 1DA (!" Data Access) . uesto "ue las intera&es de a&&eso *ertene&en a em*resas( GDA es una intera$ a%ierta &reada *ara a&&eder a todo ti*o de %ases de datos a tra!:s de una serie de un&iones # m)dulos lo m/s +en:ri&os *osi%les. La idea en su dise7o era *ro*or&ionar la un&ionalidad de ODBC o >DBC *ero desde la )*ti&a del sot9are a%ierto.
[1.3] reaso del modelo relacional [1.3.1]&undamentos del modelo relacional
%l ;odelo 7elacional fue enunciado por 'dar F. !odd en los a*os <= y, todaía, sigue siendo el modelo m!s utili2ado por los Sistemas Gestores de Bases de Datos comerciales" 8odd se basó en los teoremas de con&untos de !antor y !ilds para crear un modelo fleible, entendible y eficiente de base de datos" 'as implementaciones iniciales de este modelo fueron muy costosas, pero a#ora #ay cientos de sistemas comerciales que usan este modelo" 'os detalles fundamentales de este modelo son•
Los datos se or+ani$an en ta%las. Cada ta%la &ontiene datos reeridos a un elemento distin+ui%le en el mundo real ,*ersonas( a&turas( &ontratos( et&.-
•
• •
•
•
Las ta%las est/n ormadas *or ilas # &olumnas. Las &olumnas indi&an un atri%uto ,nomb#e( p#ime# apellido( sala#io( et&.-( &ada ila es un e'em*lar de &ada elemento del mundo real. or e'em*lo( si una ta%la se usa *ara alma&enar los datos de los tra%a'adores( &ada ila re*resenta los datos de $n t#abajado# . La interse&&i)n entre ila # &olumna &ontiene un dato &on&reto. Una &olumna( o un &on'unto de &olumnas( se esta%le&en &omo clave principal o primaria de la ta%la( de modo "ue los datos "ue &ontienen son distintos en &ada ila de la ta%la. ara *oder rela&ionar datos de dierentes ta%las( se usan claves secundarias o forneas. Datos "ue se reieren a &la!es *rimarias de otras ta%las. En las ta%las rela&ionales se *ueden a*li&ar estas restri&&iones? o Clave primaria ,%#ima#y &ey ( *--. Las &olumnas mar&adas as( identii&an &ada ila # adem/s no *ueden "uedar !a&as ni re*etir !alores en dierentes ilas. o )nicidad ,"ni'$e )--. Lasa &olumnas mar&adas &on ella no *ueden re*etir !alores en dierentes ilas. o ,bli#atoriedad ,!ot !$ll NN-. Las &olumnas &on esta restri&&i)n( o%li+atoriamente de%en de &ontener al+6n !alor ,no *ueden "uedar !a&as-. o 'nte#ridad referencial ,o#eign &ey ( $--. Los !alores de esas &olumnas de%en de &orres*onderse &on los de las &olumnas de la &la!e *rin&i*al &on &u#a ta%la se rela&ionan.
[1.%] Sistemas Gestores de Bases de Datos !omerciales de tio elacional
[1.%.1]licencias de so&tare
%l gur del software libre, icard Stallman denomina al so&tare roietario (software cuyo uso y eplotación se rige por un contrato priado emitido por la empresa fabricante) software privativo" 'a ra2ón es que la licencia de uso de ese software no permite er ni editar el código fuente original y, por lo tanto, impide modificar el mismo y adaptarlo a nueas funcionalidades" 6or otro lado, el propio Stallman define al software que sí permite este proceso, so&tare li#re" %n ambos casos el software no tiene por qu+ ser gratuito" %s decir, la diferencia no es la gratuidad sino la libertad de utili2ar el código fuente del software" Una definición, qui2! menos tendenciosa, es la que diferencia al software en- so&tare de c$dio a#ierto (aquel cuyo código fuente est! a disposición del cliente) y so&tare de c$dio cerrado u oculto" %st! diferencia de software se debe a dos formas diferentes de entender la fabricación de software" 'os defensores del código cerrado argumentan que es lógico protegerle para eitar copiar su tecnología por parte de la competencia e incluso por ra2ones de seguridad del mismo, al no poder asegurar su correcto funcionamiento ante modificaciones de terceros" 'os defensores del código abierto est!n a faor porque ofrece la posibilidad de poder modificar el código por parte de miles de programadores en todo el mundo que pueden compartir dic#as me&oras y así r!pidamente y de manera din!mica perfeccionar el producto" 0rgumentan que es m!s seguro este software ya que permite detectar problemas y irtudes m!s r!pidamente" [1.%.2]SGBD de c$dio cerrado
1ormalmente las licencias de uso de Sistemas Gestores de Bases de Datos con código cerrado usan licencias tipo !)4F o '4)A, acrónimos equialentes (en espa*ol y en ingl+s respectiamente de) de contrato de licencia de usuario final " %n estas licencias, el usuario firma unas condiciones de uso por el software, entre las que siempre figuran el #ec#o de no poder distribuir libremente el mismo y que est! restringido a unas condiciones de traba&o concretas " 6or e&emplo se restringe el nmero de m!quinas en el que se puede instalar o el nmero de usuarios que la pueden utili2ar" %&emplos de SGBD de este tipo son•
,racle Database. ro*iedad de O#acle Co#po#ation. Es el SGBD m/s !eterano # m/s inlu#ente #a "ue la ma#ora de me'oras al Sa!a( a&re&entada *or la &om*ra de la em*resa &readora del mismo( Sun Mi&ros#stems. 6resume de su gran estabilidad y escalabilidad, un control aan2ado de transacciones y de sus lengua&es internos de mane&o" %specialmente famoso es su lengua&e procedimental 6'.S:'" %s un SGBD multiplataforma, que se puede instalar en diferentes sistemas, especialmente 'inu de tipo ed 5at 'nterrise, 6indos y Solaris.
•
•
•
DB8. ro*iedad de 'B&( es una de las %ases de datos &omer&iales m/s *o*ulares. Desarrollada *ara @indo9s( UNI # Linu2. Im*lementa ML de manera nati!a # dis*one de am*lias a&ilidades de mi+ra&i)n de datos ,es*e&ialmente desde Ora&le- as &omo uso de transa&&iones a!an$adas. S+% Server7 ro*iedad de &icrosoft. Ori+inalmente %asado en el &)di+o del SGBD S0Base "ue Mi&rosot. A&tualmente S#Base ,a0ora *ertene&iente a la em*resa SA*- # S
[1.%.3]SGBD de c$dio a#ierto licencias de c$dio a#ierto •
1*% (!" ene#al %$blic License). Es la li&en&ia m/s utili$ada en el mundo del sot9are de &)di+o a%ierto. Fue &reada *or !ichard Stallman *ara el pro0ecto 1N)( *or lo tanto es la li&en&ia del sistema Linu2. Es la $ree Soft.are $undation la entidad en&ar+ada de a&tuali$ar # re!isar esta li&en&ia. %sta licencia permiteo o
Modii&ar # distri%uir el sot9are %a'o esta li&en&ia ,in&luso si se modii&a -. Co%rar *or la distri%u&i)n del sot9are ,in&luso si lo 0emos modii&ado-
'as restricciones m!s importantes que reali2a esta licencia son-
Disminuir( en las o%ras distri%uidas( la li&en&ia ori+inal. Es de&ir no *odemos( *or e'em*lo( &errar el &)di+o ori+inal o modii&ar esa li&en&ia. o Distri%uir el sot9are sin el &)di+o uente ori+inal. o Distri%uir el sot9are sin suministrar a los destinatarios una &o*ia de la li&en&ia GL del sot9are. o A*li&ar dere&0os de &o*#ri+0t( si el autor no indi&a e2*l&itamente "ue la o%ra ori+inal era GL. %icencia BSD. Es la "ue se &re) *ara los sistemas BSD , Be#keley *o+t,a#e Dist#ib$tion-. Es menos restri&ti!a "ue la anterior. ermite modii&ar # distri%uir el sot9are %a'o esta li&en&ia ,in&luso si se modii&a - en la orma "ue "ueramos siem*re "ue se &um*la o Si distri%uimos el sot9are de%emos mantener el a!iso de &o*#ri+0t anterior del sot9are en el "ue se %asa nuestra distri%u&i)n. o No *odemos usar el nom%re de los autores ori+inales ni de sus &ola%oradores *ara a*o#ar o *romo&ionar una distri%u&i)n modii&ada del sot9are ori+inal. o
•
9ay que tener en cuenta que incluso podemos modificar software con licencia BSD y distribuirle ba&o una licencia de software cerrado" %l caso m!s típico de esta idea es el sistema ac *S de Ale que se basa originalmente en un sistema BSD" •
•
•
%icencia &'(. Li&en&ia &reada *or el 'nstituto (ecnol"#ico de &asachusetts ( *ara sus distri%u&iones de sot9are( &on&retamente se utili$) *ara el sistema 5 9indo. S0stem. Es( &omo la anterior( mu# *ermisi!a. ermite modii&ar # redistri%uir el sot9are en la orma "ue el usuario desee( %asta &on in&luir el a!iso de &o*#ri+0t de esta li&en&ia ,"ue in&luso se *uede modii&ar-. %icencia Apache. resente en todo el sot9are distri%uido *or la unda&i)n A*a&0e. Solo e2i+e "ue se a!ise al usuario "ue el sot9are ori+inal utili$a%a li&en&ia A*a&0e( *ero se *ermite "ue una distri%u&i)n de sot9are sea m/s restri&ti!a "ue el ori+inal ,al estilo de las dos li&en&ias anteriores-. Dominio p3blico. Es la li&en&ia m/s *ermisi!a de todas. De 0e&0o un sot9are %a'o esta denomina&i)n no tiene nin+6n dere&0o de autor o restri&&i)n de uso. Es la li&en&ia de uso de las o%ras ,sean del ti*o "ue sean- a las "ue le &adu&an los dere&0os de autor.
roductos comerciales de c$dio a#ierto •
&0S+%. Ini&ialmente &reada *or la em*resa &0S+% AB( *osteriormente &om*rada *or Sun &icros0stems "ue( a su !e$( ue &om*rada *or ,racle. a sido &onsiderada &omo la *rin&i*al SGBD de la &omunidad de *ro+ramadores de &)di+o a%ierto # de 0e&0o en Internet si+ue siendo la *rin&i*al %ase de datos aso&iada a una a*li&a&i)n 9e%. Mantiene su li&en&ia de ti*o GL( *ero *osee una se+unda li&en&ia &errada *ara o*&iones de &om*ra &omer&ial &on so*orte. %s muy popular por su #istórica asociación con el lengua&e P5P, por su buena estabilidad, gran escalabilidad, e incluso uso de transacciones y lengua&e procedimental$ adem!s de ser un producto con infinidad de plataformas posibles para su instalación"
•
•
•
&ariaDB. Deri!ada la anterior *or &ichael 9idenius( undador de M#S
[1.-] #ases de datos NoS7). modelos di&erentes del relacional [1.-.1]introducci$n
'as bases de datos relacionales #an sido el modelo m!s popular desde finales de los a*os <= por su solide2 y gran facilidad para dise*ar sistemas comple&os" Sin embargo en estos ltimos a*os empie2an a estar desbordadas ante el uso de bases de datos que tienen que dar sericio elo2 y concurrente a miles de usuarios, los cuales son capaces de generar enormes cantidades de información en poco tiempo" %sta información en una base de datos relacional #abría que alidarla con las reglas e integridad que se imponen en esas bases de datos, indearla y asegurar su uso en transacciones, etc" %n un sistema con miles de entradas por minuto (como ocurre con las bases de datos de las redes sociales), el sistema se colapsaría" 6or ello se #an dise*ado bases de datos que se saltan el modelo relacional y que ya no utili2an el lengua&e S:'" De a#í el nombre de sistemas NoS7)" 0unque este t+rmino se utili2a para designar a las bases de datos documentales, gr!ficas y otros esquemas de bases de datos$ actualmente se utili2a especialmente para designar a las bases de datos que requieren tantas transacciones por segundo, que el esquema relacional tradicional no daría abasto para ello" 'a base teórica de este modelo se basa en el teorema de !AP o de Breer, que indica que en un sistema distribuido no se pueden asegurar simult!neamente estas tres reglas•
•
•
Consistencia (C)7
Un sistema relacional de base de datos podría asegurar la ! y la A, pero no la disponibilidad en caso de una gran demanda de peticiones" 'as bases de datos 1oS:' siempre son tolerantes a fallos a cambio de no asegurar la consistencia (como ocurre con !oucDB o !assandra) o la disponibilidad (como ocurre con onoDB o edis)" [1.-.2]di&erencias con #ases de datos S7)
'as bases 1oS:' utili2an un modelo diferente en el que los datos se almacenan de forma menos estricta, en especial no siguen estas reglas•
(ransacciones AC'D( &omo s 0a&en los SGBD *otentes rela&ionales ,&omo Ora&le( DB( S
o
o o
Consistencia ,C -. Ase+ura "ue una transa&&i)n siem*re mantiene la inte+ridad de los datos( se anule o se lle!e inalmente a &a%o la transa&&i)n. In&luso en &ual"uier momento intermedio de la transa&&i)n. Aislamiento ,- -. Ase+ura "ue las transa&&iones simult/neas no se ae&ten entre s. Es de&ir "ue una transa&&i)n ser/ inde*endiente de la otra. Durabilidad ,D-. Ase+ura "ue &uando se &onirme la transa&&i)n( los ee&tos de sus instru&&iones ser/n deiniti!os( inde*endientemente de "ue el sistema se a*a+ue o &ierre *or un error +ra!e.
1o obstante #ay bases de datos 1oS:' que son capaces de gestionar transacciones 08D, al menos en los nodos centrales (los que compactan la información definitia)" %n la mayoría se usa una alternatia conocida como BAS', que es una norma de disponibilidad y consistencia menos ambiciosa" •
•
Datos no relacionales. Los datos no se alma&enan en ta%las rela&ionales "ue se &om%inan mediante o*era&iones de ti*o >OIN. El modelo l)+i&o es distinto # !aria%le de*endiendo del sistema. S+% como len#uaje de consulta . En su lu+ar utili$an len+ua'es de *ro+rama&i)n &omo 4ava( 4avaScript o C== *ara a&&eder a los datos # otros &omo 5&% o 4S,N *ara deinir los datos # metadatos.
[1.-.3]usos a#ituales de las #ases de datos NoS7) •
• •
•
•
Datos de re+istros "ue se modii&an &ada *o&o tiem*o ,lo+s de ser!idores 9e%( listado de *eti&iones 0tt*( et&.Datos "ue se *rodu&en de orma *aralela ,se +ra%an a la !e$Datos &on rela&iones &om*le'as( di&ilmente &onsulta%les desde S
[1.-.%]tios de #ases de datos NoS7)
Se consideran dentro de esta clasificación a estos tipos de bases de datos•
•
Clave/valor. Basadas en el un&ionamiento de los arra#s aso&iati!os. Se aso&ia una &la!e ,no re*eti%le- a uno o !arios !alores. o Ama2on D0namo DB. Desarrollada *or la em*resa Ama$on( es un *ro#e&to *ro*iedad de esta em*resa im*lementada *ara +estionar la enorme &antidad de transa&&iones de esta em*resa # &omo una de las %ases de su ne+o&io en la nu%e. Alma&ena los datos en estru&turas &la!e( !alor? los !alores son elementos %inarios #( *or lo tanto( o*a&os sal!o desde la *ro*ia %ase de datos. o !edis. osee li&en&ia BSD. Usa un modelo de aso&ia&i)n de &la!es a un &ontenido inde2ado. Usa la RAM de orma intensi!a *ara alma&enar los datos. El resultado de su ar"uite&tura es una %ase de datos mu# !elo$. or ello &ada !e$ es m/s utili$ada o ,racle NoS+%. SGBD de Ora&le "ue *ermite modelado de datos de orma rela&ional( &omo do&umentos >SON o &omo datos de ti*o &la!e8!alor. Almacenes documentales. En ella( la inorma&i)n im*ortante utili$a un ormato do&umental= es de&ir( un ormato "ue en&a*sule la inorma&i)n # sus metadatos. Los datos se alma&enan usando 5&%( 4S,N o in&luso ormatos %inarios &omo *D$ o &icrosoft ,ffice.
'os documentos se asocian a un alor clae (>ey) que permite su in?deación" 0lgunas bases de datos comerciales de tipo documental son•
•
&on#oDB. Toda!a es el SGBD de ti*o NoSa!aS&ri*t. Apache CouchDB. Dentro de la amilia A*a&0e ,# usando li&en&ia de &)di+o a%ierto A*a&0e- es una %ase de datos NoS ,ide col$mn sto#es ?. Se trata( en realidad( de una modalidad de %ase de datos de ti*o &la!e8!alor en la "ue los datos se alma&enan en ta%las( ilas # &olumnas. La dieren&ia &on las rela&ionales es "ue el nom%re # ti*o de las &olumnas !aran de ila a ila. o 1oo#le Bi#(able. Base de datos *ro*ietaria utili$ada *ara mu&0os de los ser!i&ios de alma&enamiento de Goo+le. Los datos se alma&enan en una estru&tura multidimensional de tres &la!es ,ila( &olumna # e&0a- # *ermiten ser *arti&ionados. El modelo si&o se %asa en el 1oo#le $ile S0stem( modelo de ar&0i!os *ro*ietario de Goo+le. o Apache Cassandra. Con li&en&ia A*a&0e( es mu# *o*ular # de &ontrastada *oten&ia. Se desarroll) ini&ialmente *or a&e%ooH. Los datos se alma&enan en tu*las sin rela&iones de inte+ridad. resume( adem/s( de un &re&imiento e2*onen&ial en estos 6ltimos tiem*os # de ser el motor de %ase de datos de ser!i&ios &omo t.itter o Netflix. o Apache ;Base. Li&en&ia A*a&0e. Se %as) en Bi+Ta%le. Se utili$a en numerosas a*li&a&iones %asadas en datos. Base es *arte del *ro#e&to ;adoop de A*a&0e *ara el *ro&eso de Bi# Data.
•
Basadas en #rafos. Utili$an una estru&tura de los len+ua'es de *ro+rama&i)n &ono&ida &omo +rao( "ue *ermite rela&ionar los datos a tra!:s de enla&es "ue a&ilitan el re&orrido *or los mismos. Se usa *ara alma&enar datos &on rela&iones &om*le'as ,*or e'em*lo tra#e&tos &on &oordenadas GS( rela&iones so&iales(;-. o Neo@j. Es el SGBD de este ti*o m/s utili$ado. Es &a*a$ de ase+urar transa&&iones de ti*o ACID. osee li&en&ia GL # est/ *ro+ramada en >a!a. Usa el len+ua'e C+% ,Cype# /$e#y Lang$age- &reado *ara las %ases de datos de este ti*o. ermite la +esti)n de los datos a tra!:s de *eti&iones TT de ti*o REST. Su li&en&ia es GL o ,rientDB. Se la &onsidera de este ti*o( *ero en realidad *ermite or+ani$ar los datos en orma do&umental( &on &la!e8!alor u orientada a o%'etos. Las rela&iones entre los datos siem*re utili$an un modelo de +raos en todo &aso. Usa li&en&ia A*a&0e
•
Bases de datos nativas 5&%. El ormato do&umental ML se utili$a en &asi &ual"uier %ase de datos &omer&ial a&tual. Se 0a%la de nati!as &uando el sistema utili$a en todo momento ML *ara alma&enar # +estionar los datos. En ellas la inorma&i)n se alma&ena en orma do&umental utili$ando ML # se mane'a &on los len+ua'es rela&ionados &on ML? 5+uer0( 5*ath( 5S%(; La +esti)n a!an$ada se reali$a &on &one&tores "ue *ermiten mane'ar el ML desde len+ua'es &l/si&os &omo *or e'em*lo >a!a. E'em*los? o &ar: %o#ic Server. Usa li&en&ia &omer&ial. o Base5. Utili$ada *or la &omunidad Gitu% ,"ue es un ser!i&io de alma&enamiento en la nu%e utili$ado *or miles de *ro+ramadores-( de li%re uso. o 6irtuoso. osee li&en&ia GL. En realidad es un sistema multimodelo "ue *ermite mani*ular los datos desde un eno"ue rela&ional o %asado en +raos de ti*o !D$ ,len+ua'e de deini&i)n %asado en ML-.
[1.-.-]BiData 8 aeduce idea del Bi Data
Big Data es un t+rmino que se utili2a para #acer referencia a los datos que son tan enormes y comple&os que requieren m+todos de gestión y consulta sobre los mismos que escapa a las t+cnicas cl!sicas de traba&o con bases de datos" %l uso de este t+rmino se #a potenciado debido a la producción masia de información digital que se reali2a continuamente desde nternet" 6ara que un con&unto de datos sean considerados Big Data, tienen que ser enormes en cuanto a cantidad, muy ariados en tipo y estructura, producidos a gran elocidad y eraces (información real)"
aeduce
Se trata de un modelo de programación que permite procesar enormes olmenes de datos" Se basa en computación distribuida" ;uc#as bases de datos 1oS:' poseen funciones de tipo ;ap7educe, pero la implementación de este modelo es especialmente utili2ada en sistemas de traba&o con BigData" ;ap7educe no utili2a un modelo lógico de base de datos, sino que traba&a con sistemas de fic#eros directamente" %n este sentido #ay dos soluciones muy populares para almacenar los fic#eros•
•
1oo#le $ile S0stem >1$S?. Solu&i)n de ar&0i!os distri%uidos &reada de orma *ro*ietaria *or Goo+le *ara a*li&ar Ma*Redu&e. ;adoop $ile S0stem >;D$S?. Solu&i)n similar a la anterior( *ero +ratuita # de &)di+o a%ierto.
soluciones comerciales
•
•
Apache ;adoop. Se trata de un mar&o , +#ame,o#k - de tra%a'o "ue *ermite tra%a'ar &on +randes !ol6menes de datos de orma distri%uida. Une el sistema de i&0eros DFS ,*ara el ama&enamiento de los datos- &on Ma*Redu&e ,*ara el *ro&eso-. Es( de lar+o( la solu&i)n m/s utili$ada *ara tra%a'ar &on Bi+Data. Apache Spar:. Es otro +#ame,o#k de tra%a'o &on una inalidad similar *ero "ue admite dierentes *osi%ilidades *ara el alma&enamiento de datos ,in&luido DFS-. Es m/s r/*ido "ue adoo* *or lo "ue se usa m/s *ara a*li&a&iones "ue re"uieren +ran !elo&idad de *ro&eso de datos ,inteli+en&ia artii&ial( a*li&a&iones de tiem*o real( macine lea#ning(et&.-.
Se pueden utili2ar ambos marcos (Spar> y 9adoop) a la e2"
UNIDAD Ar"uite&tura de Ora&le Data%ase
[2.1] comunicaci$n con los ser"idores *racle Data#ase [2.1.1]elementos de la comunicaci$n con un ser"idor *racle
6ara comunicar con el seridor de bases de datos, @racle Database proporciona un sistema de al menos dos capas" 'o que implica a un cliente y a un seridor, los cuales utili2ar alguna red de computadoras para conectar" Sin embargo es muy #abitual que entre la capa del cliente y la del seridor #aya que atraesar otra capa, formando un modelo de tres capas (segn lo isto en el capítulo anterior)" 'a lustración /3 resalta los elementos m!s importantes en la comunicación cliente.seridor de @racle-
'a comunicación entre el cliente y el seridor se reali2a a tra+s de dos procesos•
•
*roceso de usuario. Sot9are "ue se e'e&uta en el lado del &liente # se en&ar+a de re&o+er las instru&&iones lan$adas *or el usuario # en!iarlas al ser!idor. *roceso servidor. Sot9are "ue se e'e&uta en el ser!idor de %ases de datos # "ue se en&ar+a de *ro&esar el &)di+o lan$ado *or el usuario.
1ormalmente, #ay un proceso seridor para cada usuario que conecte con la base de datos" %s decir, si #ay die2 coneiones, #abr! die2 procesos de usuario y die2 procesos seridores" @racle, no obstante, proporciona un modo de traba&o llamado ser"idor comartido9 en el que un mismo proceso seridor atiende a arios procesos de usuario" 'a ra2ón es a#orrar memoria, aunque no sea tan eficiente como el modo dedicado" [2.1.2]sesi$n 8 cone:i$n
9ay dos elementos en la comunicación cliente.seridor que coniene diferenciar-
•
•
Conexi"n. Me&anismo de &omuni&a&i)n entre el lado del &liente # el lado del ser!idor. A los e2tremos de esa &omuni&a&i)n se en&uentran los *ro&esos de usuario # de ser!idor. Sesi"n. A%ar&a la &omuni&a&i)n desde el mismo &liente 0asta lle+ar a la %ase de datos. Una sesi)n re"uiere autentii&ar al usuario # otor+arle los re&ursos ne&esarios *ara una &orre&ta &omuni&a&i)n. La sesi)n inali$a &uando el usuario a%andona la a*li&a&i)n de usuario o %ien &uando des&one&ta. Un mismo usuario *uede esta%le&er !arias sesiones ,normalmente-. %s posible incluso que a tra+s de la misma coneión se cree m!s de una sesión" %sa es la diferencia clae" 'a sesión #ace referencia a datos que tienen que er con el usuario y contrase*a del sistema @racle" 'os datos de la sesión se almacenan en el seridor" 'os administradores pueden indagar sobre las sesiones actuales a tra+s de la ista +;S'SSI*N" [2.1.3]modos de ser"idor dedicado 8 comartido
%n principio, la forma de traba&ar de @racle Database es la que se conoce como modo de ser"idor dedicado" %n ella por cada proceso seridor atiende a un nico proceso de usuario" Dic#o de otro modo, #ay tantos procesos seridores como procesos de usuario"
Sin embargo eiste la posibilidad de traba&ar en modo de ser"idor comartido. %n este caso cada proceso seridor atiende a arios procesos de usuario" Uno, o m!s, procesos, llamados disatcers (repartidores), se encargan de asignar a cada proceso de usuario el proceso seridor adecuado" %n este modo se a#orra memoria, ya que la memoria de usuarios se almacena en la 2ona global compartida (llamada SG0)"
[2.1.%]esta#lecimiento de cone:i$n
'a coneión típica a @racle comien2a con una petición de acceso desde el lado del cliente" Un proceso conocido como )istener, consigue Aescuchar” dic#a petición" %l 'istener es uno de los elementos fundamentales de @racle Database" Su labor es gestionar el tr!fico de las peticiones del cliente" Una e2 el 'istener detecta la nuea petición, se establece coneión y comen2ar!n a comunicarse el proceso de usuario con su proceso seridor correspondiente" %l 'istener se mantiene escuc#ando la comunicación (obserar lustración /)"
[2.2] &uncionamiento de la instancia de *racle [2.2.1]ar
Un seridor @racle Database es el con&unto formado por estos dos elementos•
•
%a instancia de ,racle7 Formada *or el &on'unto de *ro&esos # las estru&turas de datos en memoria "ue re"uiere el ser!idor &uando est/ en un&ionamiento. Archivos de la base de datos. Los ar&0i!os en dis&o "ue alma&enan de orma *ermanente la inorma&i)n de la %ase de datos. La %ase de datos en s( la orman los archivos de datos( los de control # los !edo %o#.
Un seridor de @racle puede poseer m!s de una instancia, pero en general en estos apuntes traba&aremos ba&o la #ipótesis de tener un sistema de instancia simple" 'as instancias mltiples se dan en sistemas distribuidos, en los que es posible disponer de m!s de una instancia (alo&ada en diferentes seridores) para la misma base de datos" 'a lustración / resume la arquitectura de @racle" %n ese diagrama las elipses representan procesos, los rect!ngulos son almacenes de datos en memoria 70; y los cilindros, arc#ios en disco"
[2.3] estructuras en memoria de la instancia de *racle [2.3.1]elementos de la memoria
lustración /C" %lementos de la memoria de @racle" Se resaltan los principales componentes internos así como la comunicación entre el proceso cliente y el proceso seridor y su relación con la 6G0 y la SG0"
8omo ya se #a comentado, una instancia est! compuesta por las estructuras de memoria en las que se graban datos y por los procesos que dan sericio a la base de datos" 'a lustración /C muestra el detalle de los componentes de la instancia" 8ada proceso seridor (si el modo de traba&o es dedicado) atienden cada uno a un usuario" 'os datos en la instancia poseen dos grandes estructuras de almacenamiento•
•
S1A ,*e#ve# lobal A#ea-. ona de la memoria en la "ue se +uardan los datos +lo%ales de la instan&ia. Esos datos son los "ue &om*arten todos los *ro&esos ser!idores( *or lo "ue la ma#ora de sus &om*onentes son memorias de ti*o &a&0:. Mu&0as de sus /reas lle!an el nom%re de ool. t:rmino in+l:s "ue( en este &onte2to( *uede tradu&irse &omo +ondo. En el sentido de un es*a&io en el "ue se reser!an a&ti!os. *1A ,%#og#am lobal A#ea-. ona de la memoria en la "ue se +uardan los datos reerentes a un *ro&eso ser!idor &on&reto. Si el modo de tra%a'o es dedi&ado( si 0a# J &one2iones 0a%r/ J *ro&esos ser!idores #( *or lo tanto( J GAs. Al &on'unto de todas las GAs en uso( en un momento dado( se le llama instancia *1A. El tama7o de la instan&ia GA se *uede &ali%rar dentro de las o*&iones de &oni+ura&i)n.
6asamos, a continuación, a detallar los elementos de la instancia de @racle" nicialmente empe2aremos por los elementos de la memoria y despu+s detallaremos los principales procesos" [2.3.2]comonentes de la PGA
8omo se #a comentado, la 6G0 contiene datos necesarios e independientes para cada proceso seridor" 'a información que contiene permite acelerar el proceso de las instrucciones S:' del cliente'a 6G0 se diide en dos 2onas•
•
Espacio de pila. Este es*a&io siem*re ,aun en modo &om*artido de ser!idor- se +uarda uera de la SGA. Es de&ir( se mantiene en la GA siem*re. )1A >"se# lobal A#ea?7 Es el /rea +lo%al de usuario. En modo de ser!idor &om*artido este /rea *uede *asar a la SGA ,a la $ona &om6n de memoria-. Este /rea se &om*one de los si+uientes elementos? o rea de trabajo S+%. ara el *ro&eso de las instru&&iones S
%l cursor es una estructura dentro del !rea priada que permite olcar al proceso de usuario los datos de las consultas S:'" Si una consulta deuele 3=== filas, el cursor se encarga de ir olcando poco a poco esos datos" 6ara ello un puntero en el !rea de datos del usuario permite relacionar los datos que e el usuario con los datos del !rea priada"
8omo ya se #a comentado, en el caso de utili2ar un modo de seridor compartido #ay datos que pasan a la SG0" 8oncretamente, la UG0 pasar! a la SG0 y las 6G0 de cada coneión almacenar!n solo el espacio de pila" [2.3.3]comonentes de la SGA Pool !omartido =Sared Pool>
Se trata de una 2ona de memoria utili2ada para acelerar la e&ecución de las instrucciones S:' y 6'.S:'" Su espacio se diide en•
•
•
•
Cach de biblioteca (Lib#a#y Cace). Alma&ena &)di+o e'e&uta%le de S
!ac? de B@&eres de Datos =Data#ase Bu&&er !ace>
%st! diidida en bloques (m!s adelante se eplica lo que es un bloque de base de datos) y es la estructura (normalmente) que m!s ocupa en la SG0" @racle Database intenta que la modificación de datos en el disco tarde lo menos posible" 'a estrategia principal es escribir lo menos posible en el disco" 6or ello cuando una instrucción prooca modificar datos, inicialmente esos datos se graban en esta cac#+" 'a grabación ocurre tras la confirmación de una transacción" Despu+s, cada cierto tiempo, se grabar!n todos de golpe en los fic#eros de datos (concretamente cuando ocurra un checkpoint )"
'os datos, aunque no est+n grabados realmente en disco, ser!n ya permanentes y aparecer!n en las consultas que se realicen sobre ellos, adem!s esas consultas ser!n m!s r!pidas al no acceder al disco" %sto ltimo es la segunda idea, que los datos a los que se accede m!s a menudo, est+n en memoria y no se necesite leerlos del disco" 'os bferes de la cac#+ se asignan con un comple&o algoritmo basado en )4 (Last Recently Used) que da prioridad a los bferes que se #an utili2ado m!s recientemente" 8ada bfer puede estar en uno de estos estados •
•
•
Sin uso ("n$sed) . Son %lo"ues "ue no se est/n utili$ando a&tualmente( *or lo "ue est/n li%res *ara &ual"uier *ro&eso "ue re"uiere alma&enar datos en ellos. %impios (Clean). Son %6eres "ue se 0an utili$ado( *ero &u#os datos #a est/n +ra%ados en dis&o. El si+uiente ceckpoint no no ne&esitara +ra%ar estos datos( *or lo "ue est/n dis*oni%les si se re"uiere su reutili$a&i)n. Sucios (Di#ty). Contienen datos "ue no se 0an +ra%ado en dis&o. Se de%en de +ra%ar en el dis&o en &uanto o&urra un ceckpoint ( de otro modo *odramos *erder inorma&i)n.
0dem!s, con respecto al acceso, los bferes pueden tener estas dos situaciones•
%ibres (#ee o "npinned). Nin+6n *ro&eso le est/ utili$ando.
•
*inned. *inned. Est/n siendo utili$ados *or un *ro&eso( *or lo "ue otra sesi)n no *uede a&&eder a este %6er. %6er.
'a lectura de bferes sigue este proceso/ESi necesitamos un dato, se le busca en esta cac#+" Si se encuentra se entrega, siempre y cuando no est+ ocupado por otro proceso ( pinned pinned )" )" 3ESi el dato requerido no se encuentra en el bfer, ocurre un &allo de cac?" %ste fallo implica leer los datos del disco y pasarlos a memoria (los bferes necesarios se marcar!n como bferes limpios)" 5E%n ambos casos, si la instrucción implica modificar los datos de ese bfer, se modifica y pasa a ser un bfer sucio" FE8uando ocurre un c#ec>point, el proceso DB6n, graba bferes sucios a disco (lo mismo si se detecta que quedan pocos bferes limpios o sin uso) y se marcan como bferes limpios" @tro detalle de esta 2ona de la SG0 es que los bferes se agrupan en fondos de almacenamiento ( Pools Pools)" %stos fondos son•
•
•
•
*ool por defecto. defecto . Es el de uso normal. Normalmente es el 6ni&o( sal!o "ue se es*e&ii"ue el uso de otros. *ool -EE*. -EE*. Se utili$a *ara %lo"ues de uso mu# re&uente( *ero "ue dentro del ondo *or dee&to *odran ser reutili$ados &ontinuamente si no dis*onemos de es*a&io sui&iente. *ool !ECC%E. !ECC%E . Se utili$a *ara %lo"ues de uso mu# *o&o re&uente. El uso de este *ool *re!iene de usar estos %lo"ues en el *ool *or dee&to. *ools n-. n-. El tama7o de %lo"ue es una &uesti)n im*ortante en una %ase de datos ,m/s adelante se es*e&ii&ara lo "ue es un %lo"ue-. Aun"ue la %ase de datos tiene un tama7o de %lo"ue *or dee&to( en al+unos ta%les*a&es ,elemento en el "ue se +uardan los o%'etos( se des&ri%e de s&ri%e m/s adelante-( *odramos !ariar ese tama7o. or ello *odramos tener otros &a&0:s orientados a estos elementos de tama7o es*e&ial. En la Ilustra&i)n 14( 14( &omo e'em*lo( a*are&en dos ondos de tama7o # 5.
B@&er de edo )o
Se trata de un bfer circular" Se an utili2ando los bloques y, cuando se #an usado todos, se uelen a reutili2ar los primeros en caso necesario y así continuamente" Su función es almacenar la información acerca de los ltimos cambios (D;' confirmados y DD') reali2ados sobre la base de datos" %sta información se uelca continuamente, mediante el proceso )G6 , a los arc#ios de datos" 'os 7edo 'og son necesarios para recuperar los datos que no #an podido ser grabados definitiamente en disco (normalmente por ocurrir una situación de ecepción antes de un 89%86@1H)"
Pool Grande =)are Pool>
Irea opcional de la SG0 que proporciona espacio para los datos necesarios para reali2ar operaciones que impliquen muc#os datos• • • • •
•
•
Bac:up 0 restauraci"n( restauraci"n ( *ara &o*ias de se+uridad. *rocesos de Entrada/Salida del servidor . &emoria libre. libre. ara ali!iar el tra%a'o de la instan&ia. Consultas en paralelo. paralelo . Almacenamiento de la )1A. )1A . Normalmente la UGA se alma&ena en la GA( *ero en modo de ser!idor &om*artido se *odra alma&enar en este /rea. Cola de peticiones. peticiones . Es*e&ialmente im*ortante &uando el ser!idor re&i%e numerosas *eti&iones. No se alma&enan %lo"ues de datos en este &aso. Cola de respuestas. respuestas . Tam*o&o Tam*o&o utili$a %lo"ues( sino estru&turas m/s a*ro*iadas *ara las &olas.
%sta !rea de memoria no ocupa bloques usando el algoritmo '7U (a diferencia del 6ool 8ompartido y de la 8ac#+ de Bferes de Datos), sino que los bloques quedan asignados #asta que queden marcados, por el proceso que los utili2ó, como libres para otros procesos" Pool de a"a
Sólo se usa para los programas que utili2an Jaa" Pool de Streams
'o usa sólo el componente *racle Streams (utili2ado para bases de datos distribuidas) y sire para almacenar en bferes, datos mane&ados por dic#o componente"
[2.%] rocesos de la memoria de *racle [2.%.1]tios de rocesos • •
•
*roceso de usuario. *rocesos de bases de datos. Com*uestos *or? o *roceso servidor. o *rocesos en se#undo plano. *rocesos de la aplicaci"n. Son demonios ,daemons-( ser!i&ios residentes "ue se e'e&utan de orma autom/ti&a. El m/s &ono&ido es el listene# de red.
•
[2.%.2]tareas de los rocesos ser"idores
'os procesos seridores atienden a los procesos de usuario" Sus labores fundamentales son• • •
•
Anali$ar el &)di+o S
'os procesos en segundo plano se e&ecutan al lan2ar la instancia de @racle y quedan residentes en memoria reali2ando diersas labores en el seridor" 'a ista +;DBP*!'SS permite obtener información de los procesos en memoria" 0 continuación se detallan las acciones de los principales procesos" DB6n.
%l roceso de escritura de #ase de datos ( DataBase Writer Process) Da%scribe los bloques modificados del buffer de cac#e de la base de datos (dirty buffers) de la cac#+ de bferes de datos de la SG0 a los arc#io de datos en disco" %so no ocurre en todo momento, sino cuando se produce un eento de tipo cecoint" %l #ec#o de que esto se #aga solo cada cierto tiempo (el tiempo establecido para el c#ec>point) se debe a que, de otro modo, el funcionamiento del seridor sería muy lento si se accediera m!s a menudo al disco" 'a n en el nombre (DBKn) indica que no #ay un solo proceso DBK, sino que puede #aber #asta 3= dependiendo de la potencia del seridor ( DBW, DBW!, L)" %n un sistema con un solo procesador lo lógico es que #aya solo uno" %l par!metro de sistema DBMK7H%7M67@8%SS%S se encarga de definir el nmero de procesos DBKn" 'a escritura en disco de los bloques sucios ocurre si•
•
Un *ro&eso ser!idor ne&esita modii&ar datos en la &a&0: de %6eres de datos # no en&uentra %lo"ues li%res o lim*ios. a# un chec:point o *unto de &ontrol.
DBK escribe los bferes en disco en lotes, para ganar eficacia" 0l grabar los datos, graba el nmero de secuencia de cambio (S81) en el disco" %ste nmero indica la transacción que se est! grabando" 8omo en los 7edo 'og tambi+n se usa esa secuencia, los datos grabados en los 7edo 'og y en los fic#eros de datos se pueden comparar y saber qu+ arc#ios est!n m!s al día (siempre estar!n m!s actuali2ados los 7ed 'og) y así, en caso de recuperación, determinar los S81 que faltan"
8omo se #a dic#o antes, se graban los datos cuando ocurre un cecoint o cuando faltan bloques para asignar en la cac#+ de bferes de datos" %n realidad en ambos casos, diremos que #a ocurrido un c#ec>point" 9ay dos formas de actuar de DBK, la diferencia est! en el tipo de c#ec>point que le llega" 9ay dos tipos- cecoint incremental y cecoint total (cuando se #abla de c#ec>point a secas, nos estaremos refiriendo a este ltimo)" 'a cuestión es que puede #aber miles y miles de bferes ocupados para ser guardados en los arc#ios de datos, lo que supone que esa sea una tarea larga y, por lo tanto, peligrosa porque durante todo el tiempo de escritura, un error crítico podría de&ar la base de datos corrupta y no funcionar" 'os cecoints incrementales sólo escriben unos cuantos bferes sucio marc!ndolos como libres, así el tiempo de grabación es m!s r!pido" Sólo cuando llega el c#ec>point de erdad, el total, se graban absolutamente todos los bferes sucios" %sto ocurre menos a menudo, por lo que el riesgo de que se corrompa el disco, es menor" DBK acta si ocurre una de estas circunstancias (las tres primeras se corresponden a un c#ec>point incremental y solo la ltima es un c#ec>point total)/ENo a8 #@&eres li#res en el bfer de datos de la SG0 para seguir almacenando información$ es decir, la cac#+ de datos est! a tope de ocupación" Si esto ocurre, @racle escribe unos cuantos bloques sucios en los arc#ios de datos para poder liberar la ocupación de la memoria y disponer de m!s bferes libres" 3E5a8 demasiados #lopoint total)" %sto prooca escribir absolutamente todos los bloques sucios" %s el momento de m!imo traba&o en disco y, por lo tanto, el momento m!s crítico porque en un c#ec>point se pueden tener que grabar miles de datos" 6or ello, @racle inicialmente pone el par!metro que controla el tiempo de aparición de un c#ec>point a cero (que es lo mismo que tiempo infinito)" )G6
6roceso de escritura de logs ( Lo" WriteR Process)" 6roceso encargado de escribir en los arc#ios redo log" %scribe los datos del bfer de 7edo 'og (en la SG0) a los arc#ios 7edo 'og en disco" 'o #ace cuando-
•
Se confirma una transacci"n. En ese &aso LG@R in&lu#e una entrada de &onirma&i)n en el %6er Redo Lo+. As "uedar/ mar&ado "ue( en ese momento( los ar&0i!os Red Lo+ est/n al da. asta no +ra%ar esos datos( no se retorna al usuario la &onirma&i)n de su transa&&i)n. 0 la transacción se le asigna un nmero de cambio de sistema (llamado S!N)" %ste S81 se graba en los arc#ios 7ed 'og" %ste nmero es fundamental para recuperar los datos en caso de desastre"
•
•
•
Si se llena un tercio del buffer. En este &aso se +ra%an datos sin &onirmar. Solo se 0a&e *or temor a "ue se llene el %6er # *erdamos inorma&i)n. 4usto antes de que act3e el proceso DB9n . Antes de "ue el *ro&eso DB@ es&ri%a %6eres su&ios en dis&o indi&a a LG@R "ue es&ri%a los re+istros Redo Lo+ en dis&o. Cuando &onirma la es&ritura( enton&es DB@ a&tuar/ es&ri%iendo en los ar&0i!os de datos.. Cada tres se#undos.
%n el buffer redo log se almacena información sobre los cambios recientes acaecidos en la base de datos" 8omo los datos no se escriben inmediatamente en los arc#ios de datos, esta información es la ital para recuperar la base de datos en caso de problemas" 'as instrucciones D;' est!n limitadas por la elocidad de este proceso al guardar los datos" %s decir, la elocidad en grabar los datos en una base de datos @racle, iene determinada por la elocidad de 'GK7" %n caso de gran actiidad de instrucciones D;' entre arias sesiones, 'GK7 puede reali2ar confirmaciones en grupo para minimi2ar el impacto de la escritura en disco" !,P(
6roceso encargado de registrar la llegada de un checkpoint , momento en el que se graban bferes de datos en los arc#ios de datos" 86H graba en los arc#ios de control la posición de c#ec>point y el S81 correspondiente en los 7ed 'og" Hambi+n graba en los arc#ios de datos (en la cabecera) para actuali2arla con la información del punto de control y la información sobre el ltimo S81 que se #a grabado" 0dem!s comunica a DBK la necesidad de grabar los bferes sucios" S*N
#yste$ %onitor " 6roceso encargado de monitori2ar el sistema" Sus principales labores son• • •
Re&u*erar la instan&ia al ini&iar. Lim*iar se+mentos tem*orales "ue #a no se usan. Re&u*erar los datos de las transa&&iones e2istentes en los Redo Lo+ "ue no est/n +ra%adas en los ar&0i!os de datos durante el arran"ue de la instan&ia.
S;@1 puede ser inocado por otros procesos"
P*N
Process %onitor " Se encarga de gestionar el fallo en un proceso de usuario" Sus labores son• • •
Com*ro%ar el estado de los *ro&esos ser!idores # distri%uidores , dispatce#s-. Reini&iar *ro&esos ser!idores # distri%uidores "ue 0a#an allado. Si alla un *ro&eso de usuario o Lim*ia la &a&0: de %6eres de datos o Li%era los re&ursos "ue se utili$aron *ara atender a ese *ro&eso de usuario
'!*
Se usa solo en bases de datos distribuidas" 7esuele los fallos ocurridos en transacciones distribuidas" 8uando detecta fallos en una transacción que tiene diferentes datos en los distintos seridores, se encarga de resoler la situación" *N 8 N)
;;@1 es el proceso monitor de mane&abilidad ($ana&eability $onitor process), encargado de reali2ar tareas relacionadas con el A6 , !rea de olcado de estadísticas de los seridores @racle" ;;1' es el proceso ligero de monitori2ación de mane&abilidad ($ana&eability $onitor lite process), encargado de escribir estadísticas desde el #istórico de sesiones actias (AS5) en la SG0 de @racle a el disco" 0mbos son procesos necesarios para que la información estadística sobre la e&ecución de @racle est+ al día" A!n.
6rocesos de arc#iado (archiver processes), encargado de escribir los arc#ios redo log #istóricos" %stos arc#ios son copias de los arc#ios 7ed 'og" Se usan para recuperar información o para deoler la base de datos a un estado anterior" Solo funcionan en modo A!5I+')*G de la base de datos" 'a n indica que pueden ser arios procesos (078=, 078/, etc")" !7C 8 nnn
%s el gestor de colas de traba&o ( 'ob ueue processes)" 'os traba&os son tareas programadas por los usuarios que se pueden e&ecutar arias eces" 8ada traba&o se asocia a un proceso nnn (por e&emplo !)" %l programador de tareas de @racle puede inocar a 8J:n cuando se necesitan e&ecutar traba&os" %ntonces 8J:= lan2a los procesos Jnnn de forma apropiada" 8uando finali2an los traba&os, 8J:= se queda en estado de espera, #asta que se le uela a necesitar"
FBDA
%l *lashBack Data +rchiver Process, es el proceso encargado de grabar la información del !rea de Nlas#bac>" %sta !rea se usa para el caso de necesitar que la base de datos regrese a un estado anterior"
[2.-] estructuras de almacenamiento en disco [2.-.1]introducci$n
Una base de datos @racle necesita los siguientes arc#ios para grabar la información de la misma• • •
Ar&0i!os de datos Ar&0i!os de &ontrol Ar&0i!os Red Lo+
0dem!s posee (o puede poseer) estos otros arc#ios para que la e&ecución sea correcta• • • • •
Ar&0i!os de *ar/metros Ar&0i!o de &ontrase7a Ar&0i!os de tra$a # alerta Ar&0i!os 0ist)ri&os ,o ar&0i!ados- Red Lo+ Ar&0i!os de &o*ia de se+uridad [2.-.2]arci"os de datos
Son los arc#ios que almacenan los datos en sí de la base de datos" Graban la información de las tablas" 6ara optimi2ar su funcionamiento y su gestión, @racle utili2a una estructura que relaciona la lógica de la base de datos, con la parte física" %sta lógica interna de @racle se describe a continuación" estructuras l$icas de almacenamiento de *racle
%n realidad estas estructuras forman un esquema de la base de datos que se situarían conceptualmente entre el esquema interno y el físico de la base de datos" @racle llama a estas estructuras Lo&ical #tora&e #tructures, por lo que en espa*ol se suele traducir como estructuras lógicas de almacenamiento"
ta#lesaces
'os esacios de ta#la o ta#lesaces, son una estructura lógica que, conceptualmente, se sita entre la lógica de la base de datos y las estructuras físicas que almacenar!n los datos" %n la base de datos, se mane&an ob&etos a niel lógico (tablas, columnas, filas, istas, índices,L)" 'a información de esos ob&etos se tiene que almacenar en arc#ios de datos" @racle crea los ta#lesaces como un elemento intermedio entre el niel lógico y el niel físico de la base de datos" 7elaciona ambas ópticas para optimi2ar el funcionamiento del sistema"
6or defecto @racle proporciona los siguientes espacios de tabla•
• •
)SE!S. Alma&:n *or dee&to en el "ue los dierentes usuarios de la %ase de datos alma&enan sus o%'etos. SS(E&. ara los o%'etos del sistema &omo el diccionario de datos SSA)5. ara &om*onentes adi&ionales de la %ase de datos &omo *or e'em*lo el re*ositorio del Enterprise &ana#er.
1aturalmente podemos crear otros tablespaces y asignarles los arc#ios de datos que deseemos" 'os tablespaces se diiden en segmentos, estos en etensiones y las etensiones en bloques" Un tablespace puede abarcar m!s de un fic#ero de datos" 8ada fic#ero, sin embargo, se asigna a solamente un tablespace" sementos
%n cada tablespace eisten segmentos, que est!n relacionados directamente con un ob&eto de la base de datos (una tabla, un índice,L)" 9ay tres tipos de segmentos•
•
Se#mentos de usuario. Alma&enan los o%'etos de %ase de datos&reados *or los usuarios. or e'em*lo? o Se#mentos de datos. Alma&enan los datos de las ta%las ,in&luidas las *arti&ionadas # las ta%las en &luster( "ue son ti*os de ta%las a!an$adas-. o Se#mentos de índice. Alma&enan los datos ne&esarios *ara la &rea&i)n de ndi&es. o Se#mentos de tipo %,B. ara alma&enar los datos de ti*os +randes de Ora&le? CLOB # BLOB. Se#mentos de anulaci"n >undo?. Alma&ena la inorma&i)n ne&esaria *ara re!ertir &am%ios reali$ados en los datos. El uso t*i&o es la e'e&u&i)n de la instru&&i)n !,%%BAC- ,aun"ue 0a# mu&0os m/s-.
•
Se#mentos temporales7 Alma&enan datos intermedios "ue Ora&le ne&esita *ara &om*letar &onsultas o instru&&iones &om*le'as "ue rela&ionan +ran &antidad de datos ,C!EA(E 'NDE5( SE%EC( D'S('NC(( uniones( interse&&iones( 1!,)* B( et&.-. Estos se+mentos les &rea # elimina Ora&le autom/ti&amente.
%l mismo segmento puede estar presente en m!s de un arc#io de datos (como en la lustración 33 ocurre con el segmento que almacena la tabla -)" %sta idea se usa para segmentos que almacenan datos de ob&etos con muc#o contenido" 6ara eplicar, muc#as eces se relaciona segmento con tabla" 6ero realmente los segmentos almacenan otros ob&etos" 6or e&emplo esta instrucción (que crea una tabla no relaciona)CREATE TABLE obras(titulo VARCHAR2(30));
Solo crearía un segmento para almacenar los datos de la tabla" Sin embargo esta otraCREATE TABLE obras( id_obra NUMBER PRIMARY KEY , titulo VARCHAR2(30) UNIQUE , texto CLOB );
8rear!, al menos, estos segmentos• • • • •
Un se+mento *ara los datos de la ta%la ob#as. Otro *ara el ndi&e de la &la!e *rin&i*al. Otro *ara el ndi&e de la restri&&i)n )N'+)E so%re la &olumna t1t$lo. Otro *ara los datos CLOB. Otro( de ti*o ndi&e( *ara rela&ionar los datos CLOB &on las ilas de la ta%la.
e:tensiones
'os segmentos se diiden en etensiones" 'as etensiones son diisiones dentro del segmento que permiten asegurar que el sistema tiene reserado un con&unto de bloques contiguos en el disco" %s decir las etensiones eitan fragmentar en eceso los discos" %l funcionamiento es el siguiente- cuando #emos llenado un segmento, entonces se a*ade una etensión (el tama*o de las etensiones se puede calibrar) y eso significa que se amplia el segmento en el tama*o de dic#a etensión" %s decir, se resera ese espacio" De esa forma los bloques siguientes (#asta llenar la etensión) que se a*adan, tendremos la seguridad que ir!n contiguos en disco, disminuyendo su fragmentación" 8omo es lógico, una etensión est! asociada a sólo un arc#io" #lo
%s el elemento de datos m!s peque*o distinguible por @racle" 8ada etensión consta de una serie de bloques" %l tama*o de bloque se puede configurar por parte del DB0 para optimi2ar el rendimiento" %l tama*o del bloque de datos debe cumplir que sea mltiplo del tama*o de bloque del disco del Sistema @peratio" %s decir si en un disco concreto, el Sistema @peratio tiene un tama*o de bloque de /CB, sólo podremos asignar tama*os de bloque de /C B, 53 B, FO B, CF B etc" %n el bloque de datos de @racle, los datos se organi2an en filas" 0sí se asegura que cada fila se almacena &unta en el bloque de datos" 0dem!s en cada bloque se graba una cabecera con información general del bloque, de la tabla a la que pertenece y de las filas que almacena" %l espacio libre del bloque est! en el interior, de modo que la cabecera y la información de las tablas crecen #acia el interior del bloque (+ase lustración 3)"
osi#ilidades de esti$n &sica de los arci"os de datos
@racle puede gestionar los arc#ios de datos de arias formas•
•
•
Como archivos normales del Sistema ,perativo . Es el &aso m/s /&il # 0a%itual( la +esti)n de los ar&0i!os se dele+a al sistema o*erati!o. Lo "ue im*li&a "ue se *uedan &o*iar( %orrar o e2aminar &omo &ual"uier otro ar&0i!o del sistema. Como particiones !A9. En ese &aso todos los ar&0i!os de datos se inte+ran en una estru&tura "ue( desde el sistema( *are&era un ar&0i!o %inario normal. La 6ni&a inalidad es o&ultar los ar&0i!os &ontenidos= en la *r/&ti&a no se usa mu&0o. 1estionadas mediante el A$tomatic *to#age 2anagement >AS&?. Se trata de un sistema de ar&0i!os *ro*ietario de Ora&le "ue *ermite "ue la +esti)n de los ar&0i!os se reali&e desde una &a*a *ro*ia( en lu+ar de dele+arla al Sistema O*erati!o. 8on AS se consigue mayor rapide2 y potencia ya que proporciona numerosas opciones de traba&o" Su instalación es sencilla y sus puntos fuertes es el agrupar arc#ios y no unidades lógicas, permite a&ustar par!metros de balanceo, redundancia o la integración eficiente en sistemas distribuidos" 0l ser un formato propio, requiere dar formato a unidades de disco (sea reales o irtuales) usando este sistema de arc#ios" 0S; se basa en crear grupos de discos los cuales contienen uno o m!s discos 0S;" 'os grupos de discos se mane&an como si fueran uno solo, para conseguir redundancia y balanceo de carga" 'os arc#ios de este sistema (arc#ios 0S;) se corresponden con los arc#ios de datos de @racle"
•
)sando el Cl$ste#ed ile *ystem >,C$S?. Usado *ara instala&iones de ser!idores distri%uidos en &l6ster ,!AC- *ermite "ue los ar&0i!os se &om*artan entre !arios ser!idores( 0a&iendo "ue( en a*arien&ia( su +esti)n sea &omo la de los ar&0i!os normales. Otra o*&i)n( mu&0o m/s utili$ada( es AC$S "ue *ermite usar el sistema ASM en modo &l6ster. [2.-.3]arci"os edo )o
'os 7edo 'og son dos o m!s arc#ios que siren para almacenar las instrucciones D;' que se an confirmando en la base de datos" 1o graban datos, sino la información necesaria para que esa instrucción se llee a cabo" Siren para recuperar los datos en caso de desastre" 6or e&emplo, si la base de datos #a confirmado una transacción correspondiente al nmero de secuencia de cambio nmero P=, significar! que esa secuencia estar! grabada en los 7ed 'og" Sin embargo, puede que los arc#ios de datos est+n en la PF=" 'o cual significa que #ay /= secuencias en los 7edo 'og que no se #an grabado en los fic#eros
de datos" Si ocurre un desastre en este instante y el sistema se cierra, dependemos de los 7edo 'og para recuperar esas secuencias" 'os redo log graban las instrucciones de transacciones confirmadas y los datos necesarios para oler a reali2arlas" 'a información en los redo log se graba casi instant!neamente, por lo que siempre est!n m!s al día que los arc#ios de datos" 0dem!s, siren como #istórico de los cambios reali2ados en la base de datos" 'o que puede permitir retornar a la base de datos a un punto concreto"
'os fic#eros 7edo 'og funcionan de forma circular" 8uando se llena uno, se produce un eento de tipo lo sitc" Si ocurre un log switc# en el ltimo arc#io, se usa el primero, sobrescribiendo la información que tuiera" %l funcionamiento consiste en lo siguiente/E8uando el usuario reali2a instrucciones D;' o DD', el proceso seridor graba en el Bfer 7edo 'og en la SG0, la información necesaria para que esa instrucción se uela a e&ecutar, si fuera necesario"
3E%l proceso )G69 cuando las instrucciones son definitias (bien transacciones aceptadas o instrucciones DD' por e&emplo), copia los datos del bfer a los arc#ios redo log" 5E8uando llenamos el arc#io redo log actual, se produce el eento lo sitcE entonces los siguientes datos pasan al siguiente arc#io redo log" 8on +ste ocurrir! lo mismo y así sucesiamente con cada arc#io del que dispongamos" FE%n cada cambio de arc#io, se genera un n@mero de secuencia que a anotando la secuencia de redo log (lo que es lo mismo, el nmero de eentos lo sitc que #an ocurrido), así podemos tener a#ora el nmero de secuencia /3 indicando que #emos #ec#o /3 cambios de arc#io (o sea, #an ocurrido /3 eentos log switc#>" E8uando ya #emos ocupado todos los arc#ios, al terminar de llenar el ltimo se produce el consiguiente log switc# y como no #ay m!s arc#ios disponibles, grabar! los siguientes datos en el primer arc#io sobrescribiendo los que ya eistieran (y perdiendo esos datos)" %l nmero de secuencia seguir! increment!ndose, no oler! a empe2ar de nueo" CEHodo este proceso sigue continuamente multile:aci$n9 ruos de redo lo
'os arc#ios redo log suelen constituir grupos" %sto significa que el primero arc#io redo log, en realidad ser! un grupo de arc#ios" 8ada grupo consta de arios arc#ios redo log clónicos correspondientes a las mismas secuencias (es decir tendremos arios arc#ios id+nticos con los datos de una secuencia)" 'a idea es que, si falla uno, tengamos otra copia disponible" 8uando se graba un dato de tipo redo, se graba secuencialmente en todos los arc#ios miembros del grupo de forma multipleada" %s decir, primero en uno, luego en otro y así #asta terminar el grupo" %s tarea del administrador determinar la configuración de los redo log (nmero de grupos, nmero de arc#ios, L")" 0sí como decidir en qu+ discos se almacena cada arc#io miembro de cada grupo" 'o ideal, es que los miembros de cada grupo est+n en discos distintos para mayor seguridad" 0dem!s #ay que tener en cuenta que la grabación de la información en los redo log debe de ser lo m!s r!pida posible$ la grabación en disco (desde el bfer) es crítica, porque durante dic#a grabación la sesión queda parada #asta terminar el olcado de datos" 6or ello los discos donde se almacenen redo log deben de ser muy r!pidos" 6or defecto la base de datos tendr! tres grupos, pero con un solo miembro cada uno (es la situación mostrada en la lustración 3<)" %so significa que no #ay multipleación y, por lo tanto, #ay riesgo alto de perder un redo log" [2.-.%]ist$rico de arci"os redo lo =arci"e redo lo>
Se eplicó en el apartado anterior que los arc#ios redo log tienen un comportamiento circular, es decir que cuando llegamos al ltimo arc#io, si se llena$ entonces los siguientes datos pasan al primero, borrando la secuencia que estuiera grabada en +l"
%sto no tiene que ser un problema ya que desde que se uele al primer arc#io de la secuencia, los datos pueden estar ya grabados definitiamente en los arc#ios de datos mediante el proceso DB6" 6ero puede ocurrir que no sea así y esos datos no estuieran grabados, por lo que en caso de caída del sistema les perdemos y eso sería una situación de desastre" %l registro #istórico de arc#io redo log (tambi+n llamado archivados redo lo& ) eitan esta situación" 6ara ello la base de datos debe de estar en modo A!5I+')*G (el modo contrario es el N*A!5I+')*G que es el #abitual), si es así, entonces cada e2 que ocurre un eento lo sitc (es decir cada e2 que #ay un cambio de secuencia), el proceso A!n (la n significa que puede #aber arios- +R., +R.!,L) graba una copia de la secuencia actual en el #istórico" 6or e&emplo supongamos que tenemos tres grupos de arc#ios redo log y estamos en modo 0789Q%'@G/Enicialmente el proceso 'GK7 graba en la secuencia /, suponemos que est! secuencia se graba en el grupo / de arc#ios redo log (#ay que recordar que un grupo de redo log puede estar formado por arios arc#ios clónicos redo log) 3E8uando la secuencia / se llena, pasamos a la secuencia 3 (se produce un lo sitc) y entonces el proceso 078 graba una copia de la secuencia / en el directorio de los #istóricos redo log (cuya ruta se puede configurar)" 5E8uando la secuencia 3 se llena, entonces se copia esa secuencia en el #istórico y pasaremos a la secuencia 5 FE8uando la secuencia 5 se llena, 'GK7 empe2ar! a sobreescribir el grupo redo log que tenía la secuencia /" %l proceso 078 grabar! una copia de la secuencia 5" E%ntonces se empe2ar! a grabar los siguientes redo log en el grupo /, sobrescribiendo la información anterior" 6ero no pasa nada porque tenemos copia de todas las secuencias, incluida la /" %identemente el problema de esta forma de traba&ar es el espacio que necesitamos" 0dem!s obligamos a @racle a usar cada e2 m!s los discos, con m!s procesos funcionando que requieren grabación en ellos" 0 cambio aseguramos que no perderemos información" ncluso podemos multiplear cada arc#io del #istórico para tener, no ya una copia, sino arias de cada secuencia, con lo que la seguridad es an mayor" [2.-.-]arci"os de control
Se trata de arc#ios binarios y de tama*o peque*o que contienen la estructura de la base de datos, es decir metadatos" %ste arc#io tambi+n se puede multiplear para aumentar la seguridad, con lo que puede #aber arios" 'o normal es tener al menos dos, ya que es un recurso crítico" 'os arc#ios de control contienen•
Nom%re de la %ase de datos
• •
• • • • •
Fe&0a # 0ora de la &rea&i)n de la %ase de datos Inorma&i)n so%re chec:points # redo lo#s ,se&uen&ia a&tual de redo lo+( nK de &0e&H*oint(;Modo de ar&0i!ado de la %ase de datos. N6mero de se&uen&ia del redo lo+ a&tual. Metadatos *ara la%ores de %a&Hu* # re&u*era&i)n de datos. U%i&a&i)n de los ar&0i!os de datos( redo lo+ e 0ist)ri&os redo lo+ Inorma&i)n so%re los ta%les*a&es a&tuales [2.-.]otros arci"os
arci"os de ar0metros
8ontienen los par!metros generales de configuración de la base de datos" 'os par!metros son el con&unto de una clae y un alor" 6or e&emplo el par!metro con clae SGAAXSIH' tendría como alor el tama*o m!imo que podremos tener de SG0" 9ay dos tipos de arc#ios de par!metros•
•
S*$'%E. Se trata de un ar&0i!o de *ar/metros %inario. El ormato 0a%itual del ar&0i!o de *ar/metros es este # s)lo *ermite su edi&i)n modii&ando los *ar/metros desde Ora&le. *$'%E. Ar&0i!o de *ar/metros en orma de te2to. La !enta'a es "ue se *uede editar su &ontenido in&luso desde uera de Ora&le ,dire&tamente &on un editor de te2to-.
'o aconse&able es usar el formato S6N'% pero tener al menos una copia en formato 6N'%" 'os par!metros siren para cambiar y conocer la configuración de @racle" 8ada par!metro refle&a un aspecto del funcionamiento de @racle$ modific!ndole, modificaremos el comportamiento de la instancia de @racle" arci"os de contraseas
8ontienen la lista de contrase*as cifradas de los usuarios administradores" Son imprescindibles para que los usuarios de tipo DB0 puedan conectar con la base de datos" %n caso de p+rdida no se podr! alidar a los usuarios administradores, por lo que se conseración es crítica" arci"os de traJa
Son arc#ios de teto que permiten establecer el seguimiento del funcionamiento de la base de datos" Gracias a ellos podremos saber las acciones lleadas a cabo por muc#os procesos importantes de @racle (como 6;@1 y S;@1 por e&emplo) y así detectar problemas o cuellos de botella en el rendimiento" %l nmero y funcionamiento de cada arc#io de tra2a se puede configurar para reali2ar el seguimiento deseada al funcionamiento de la base de datos""
arci"o de alerta =alert log>
%s, en cierto modo, un arc#io de tra2a pero que sire para almacenar información sobre el funcionamiento de @racle" %s el diario de @racle, graba todas las cosas importantes acaecidas (cuando se inició la instancia, cada aparición de c#ec>point, los eentos log switc#,L)" %s un arc#io de teto que se crea cuando la base de datos se lan2a por primera e2 y continuamente almacena lo que ocurre en ella" arci"os de coia de seuridad
mprescindibles para la recuperación de la base de datos en caso de desastre" arci"os temorales
Son un tipo especial de arc#io de datos que sire para almacenar datos que proceden de operaciones que mueen tanta información que no cabe en la memoria y se necesita cac#ear en disco" 8ontienen datos intermedios necesarios para e&ecutar algunas instrucciones" 8uando las instrucciones finali2an, se an borrando esos datos" lo de oeraciones &las#ac
@racle tiene la posibilidad de retornar la base de datos a un momento concreto de tiempo" %s un volver al pasado que permite anular una situación grae de p+rdida de datos" 6ara ello se debe configurar @racle con posibilidad de usar un !rea de flas#bac>" %l arc#io log para flas#bac> contiene información necesaria para poder deoler la base de datos a un estado anterior en el tiempo" %s decir, son fundamentales para que una operación de tipo flas#bac> pueda funcionar" arci"os DP
Se utili2an para reali2ar operaciones de eportación e importación de datos" 8ontienen información independiente de la plataforma que permite reali2ar eitosamente la operación de eportación e importación" 'a información que contienen es binaria"
UNIDAD Instala&i)n de Ora&le Data%ase
[3.1] instalaci$n de SGBD [3.1.1]so#re la instalaci$n de SGBD
'os Sistemas Gestores de Bases de Datos son #erramientas software comple&as" 6or ello su instalación no es sencilla" 9ay que tener en cuenta consideraciones sobre la red, el uso de recursos, la dedicación del #ardware concreto en el que instalemos el sistema,L
Hodo ello #ace que el proceso de instalación sea muy etenso y comple&o$ aunque #a me&orado enormemente en estos a*os gracias asistentes que facilitan la tarea" nstalar una base de datos implica conocer muy bien el funcionamiento de las bases de datos y la arquitectura del SGBD concreto que amos a instalar" %n estos apuntes nos centramos en la instalación de @racle //g, que es uno de los sistema m!s populares a niel empresarial" 6or supuesto necesitamos conocer su arquitectura para que durante la instalación preparemos el software y la base de datos de la forma m!s eficiente respecto a nuestras necesidades y capacidades del sistema" [3.1.2]antes de instalarK selecci$n del SGBD
%n los manuales de instalación de bases de datos no se suele #ablar del proceso preio, sin embargo, es enormemente importante" Se le debe dedicar muc#o tiempo a esta decisión, porque una e2 elegido el SGBD, es m!s difícil cambiar de idea luego, ya que nuestra elección requiere inersión y tiempo" Se comentan los puntos que decidir!n nuestras decisiones" aso 1K selecci$n or re
Se trata de anali2ar qu+ necesitamos del SGBD" %n este sentido algunas cosas a tener en cuenta pueden ser•
•
•
•
•
•
(amao de la base de datos. Un +ran tama7o de %ase de datos re"uiere utili$ar sot9are mu# *otente *ara la +esti)n de la misma( adem/s *odra *lantear el 0e&0o de se*arar los datos en distintas unidades de dis&o o in&luso m/"uinas lo "ue *odra re"uerir &l6steres o sistemas distri%uidos. Conectividad. Si ne&esitamos "ue la %ase de datos sea a&&esi%le desde Internet( una Intranet o in&luso si %astara &on un solo e"ui*o de a&&eso. N3mero de usuarios. Un n6mero +rande de usuarios re"uiere &ontroles a!an$ados de se+uridad *ara dieren&iar *ermisos en los usuarios. N3mero de conexiones simultneas. Suele ser el *unto /l+ido de re"uisitos( #a "ue un +ran n6mero de &one2iones simult/neas im*li&a SGBD &on +randes &a*a&idades de tra%a'o &on&urrente # *o&os sistemas seran &a*a&es de &onse+uirlo. Aprovechamiento de hard.are7 uede ser "ue sea el *ro*io 0ard9are de la em*resa el "ue *redetermine la sele&&i)n al estar limitados *or el mismo. Si estamos atados al 0ard9are( :ste se &on!ierte en el re"uisito undamental( #a "ue de%eremos ele+ir un sot9are "ue un&ione luidamente &on nuestro 0ard9are a &am%io( "ui$/s( de no *oder utili$ar 0erramientas modernas. *olítica de empresa. or e'em*lo si la em*resa tiene una *olti&a de uso de sot9are li%re( o si tiene a&uerdos &on em*resas &on&retas de sot9are a las "ue se &om*ran otros *rodu&tos.
aso 2K comro#ar re
Una e2 seleccionado el SGBD a#ora tenemos que asegurarnos de cumplir nosotros los requisitos que eige" Hodos los sistemas indican qu+ requisitos necesitan en cuanto a•
Sistemas operativos. No todos los SGBD son multi*lataorma( lo normal es "ue sean &om*ati%les &on unas &uantas *lataormas? @indo9s( Linu2( Uni2(;
•
•
• • •
•
•
*aquetes o aplicaciones preinstaladas . A !e&es se re"uiere "ue el sistema *osea al+6n sot9are *re!io a la instala&i)n del SGBD. En el mundo Linu2 se suele re"uerir de *a"uetes ,&omo *or e'em*lo el &om*ilador de C( o li%reras es*e&iales de entrada salida(;-= en @indo9s es al+una a&tuali$a&i)n ,&omo sus &l/si&os Service *ac:- o sot9are de ter&eros "ue se re"uiere ,&omo la m/"uina 4ava( el $rame.or: 7Net o un ser!idor 9e% &on&reto-. &emoria !A&. Es el re"uisito "ue m/s im*orta? m/s RAM( m/s li+ero un&iona el sistema. Ora&le en su !ersi)n 11+ a&onse'a al menos 1 GB de RAM *rocesador. Se suele e2i+ir un modelo # una !elo&idad mnima en el mismo. Disco duro. Se e2i+e un es*a&io mnimo de dis&o. !equisitos de red. Se *uede e2i+ir "ue el e"ui*o ten+a una un&i)n &on&reta &omo "ue sea un ser!idor de dominio( o "ue ten+a una &one&ti!idad *arti&ular ,&omo una dire&&i)n I i'a-. !equisitos de confi#uraci"n de sistema . A !e&es se e2i+en &rear usuarios &on&retos( modii&ar *ar/metros del sistema o*erati!o( et&. 'ncompatibilidades. A !e&es se indi&an *rodu&tos &on los "ue e2isten *ro%lemas de &om*ati%ilidad.
[3.2] instalaci$n de *racle [3.2.1]documentaci$n
@racle tambi+n dispone de manuales de libre descarga en la dirección#ttp-..docs"oracle"com.en.database. Desgraciadamente toda la documentación sólo se encuentra en ingl+s" [3.2.2]erramientas de administraci$n de *racle •
•
• •
•
•
• •
,)'. O#acle "nive#sal -nstalle# . Instalador uni!ersal de Ora&le( 0erramienta *ara instalar sot9are de Ora&le. DBCA< DataBase Comp$te# Assistant . Sot9are "ue a&ilita la &rea&i)n de %ases de datos Ora&le. Re"uiere "ue el sot9are de Ora&le *ara +estionar %ases de datos est: instalado. DB)A< DataBase Comp$te# Assistant. Asistente *ara a&tuali$ar %ases de datos. netm#r. O#acle !et 2anage# . Sot9are *ara &oni+urar la &one&ti!idad de las a*li&a&iones # %ases de datos. NetCA( !et,o#k Comp$te# Assistant . Se en&ar+a de &rear o modii&ar el %istener de Ora&le( el *ro&eso "ue en&ar+a de es&u&0ar *eti&iones # de lan$ar el *ro&eso ser!idor. ,E&( O#acle Ente#p#ise 2anage# . Consola "ue a&ilita la reali$a&i)n e las tareas t*i&as de un DBA de Ora&le. osi%ilidades? o Consola de Bases de Datos de Enterprise &ana#er . A*li&a&i)n 9e% "ue *ermite reali$ar las tareas de administra&i)n so%re una %ase de datos. o Enterprise &ana#er 1rid Control. ermite &oni+urar las %ases de de datos en Grid( te&nolo+a de Ora&le *ara %ases de datos distri%uidas. S+%*lus. Lnea de &omandos "ue *ermite e'e&utar &)di+o S
•
•
•
!&AN. Sot9are *ara reali$ar &o*ias de se+uridad # las la%ores de restaura&i)n de las mismas. *ump de datos. ermite transerir datos entre dierentes %ases de datos a +ran !elo&idad. S+%%oader. erramienta *ara im*ortar datos *ro&edentes de uentes de datos e2ternas a Ora&le. [3.2.3]directorios de *racle. comrender la estructura *FA
%l SGBD comercial @racle sólo se puede instalar en sistemas 6indos, )inu: (y sólo en ersiones ed 5at 'nterrise y SuSe 'nterrise) y Solaris" 1ormalmente se instala a tra+s del software conocido como *racle 4ni"ersal Installer =*4I>, que al ser un programa Jaa, es el mismo en todas las plataformas (salo por algunos pasos que arían debido a las particulares de cada sistema operatio)" 8omo es posible que un sistema posea arios usuarios, e incluso que cada uno realice arias instalaciones de software @racle para bases de datos, @racle #a dise*ado una recomendación para organi2ar los directorios en los que se instalar!n sus productos" %s, por lo tanto, un est!ndar en las instalaciones que coniene conocer tanto si instalamos nosotros @racle, como si son otros los instaladores$ ya que si son t+cnicos profesionales seguir!n esta recomendación y nos ser! f!cil conocer las rutas del sistema" 'a recomendación de instalación se llama *racleLs *timal Fle:i#le Arcitecture (*FA)" @N0 impone la estructura de directorios y arc#ios en el sistema que @racle debe utili2ar en cada instalación" 'as ra2ones de su uso son•
•
•
•
Se+uir unas *autas &omunes en los nom%res de dire&torios # ar&0i!os en todas las instala&iones de Ora&le( lo &ual a&ilita a todos los administradores en&ontrar todo lo ne&esario en &ada instala&i)n. Si se reali$an m6lti*les instala&iones de %ases de datos( ase+urar una orma &o0erente de indi&ar los dire&torios %ase de estas instala&iones. ermitir "ue !arios usuarios *uedan lan$ar sistemas Ora&le en el mismo sistema sin "ue o&urra nin+6n *ro%lema. Fa&ilitar las tareas de administra&i)n( es*e&ialmente las de a7adir %ases de datos( instalar sot9are # administrar usuarios.
Sus elementos fundamentales son las ariables de sistema *A!)'BAS' y *A!)'5*', que son las que tienen asignadas las rutas fundamentales" *racle Base
%l directorio *racle Base, es la raí2 de las instalaciones de @racle (de todos los productos, de todas las ersiones)" %n el modelo @N0 en 'inu deben cumplir la forma/ pm/h/u
Donde-
•
• •
•
•
p. Es el nom%re de un te2to est/ndar "ue suele ser &orto # &on&iso # "ue deine el
nom%re de la unidad de monta'e. El m/s usado en el mundo Linu28Uni2 es la letra $. Otros instaladores usan la *ala%ra o#a. Ora&le re&omienda "ue la %ase de datos se distri%u#a entre !arias unidades de dis&o ,o "ue al menos est:n en un sistema RAID-( *or lo "ue se usara $34 *ara la *rimera unidad( $35 *ara la se+unda(; En @indo9s este *ar/metro sim*lemente es la letra de la unidad de dis&o m. Es una e2*resi)n num:ri&a "ue !a de 34 a 36. En @indo9s no se usa este *ar/metro. . Es el nom%re de un dire&torio est/ndar. Se suele usar el nom%re app( #a "ue es el nom%re est/ndar *ara indi&ar "ue el dire&torio &ontiene una a*li&a&i)n. $. El nom%re del usuario *ro*ietario de la instala&i)n ,*or e'em*lo o#acle-
'a ruta m!s #abitual es/u01/app/oracle
%n el caso de Kindows la ruta sigue la epresión (si oracle es el nombre del usuario que instala la aplicación)unidad:\app\oracle
y esta ruta debe estar en la raí2 de cualquier unidad de disco" 6or e&emplo ./0oracle0app ruta a los arci"os de datos
'a base de datos en el modelo *FA se almacena en un directorio llamado oradata que se estar! dentro del directorio *racle Base" Dentro de oradata se utili2a el nombre de instancia de la base de datos" 6or e&emplo ('inu)/u01/app/oracle/oradata/orcl
'a base de datos de nombre orcl est! almacenada en el directorio de todas las bases de datos (oradata) que, a su e2, cuelga del directorio @racle Base" Dentro de esa ruta se deberían encontrar estos arc#ios• • •
Archivo de control. Con el nom%re cont#ol.ctl Archivos redo lo#. Con el nom%re #edo34.log #edo35.log (; Archivos de datos. Con el nom%re del ta%les*a&e "ue &ontienen # un n6mero ,o*&ional( *ensado *ara el &aso en el "ue un ta%les*a&e se di!ida entre !arios ar&0i!os-. or e'em*lo $se#34.db+
*racle 5ome
Se trata del directorio raí2 de una instalación concreta de @racle (@racle //g 73, @racle /=g, etc")" Su ruta @N0 esORACLE_BASE /produ!/ ersi!n /no"bre_instalaci!n
'a ersión es la ersión del producto que se instala y el nombre de la instalación es una teto est!ndar propuesto por @racle" %sa propuesta es• • •
dbhome *ara instala&iones de ser!idor de %ases de datos client *ara instala&iones de sot9are &liente #rid *ara una im*lementa&i)n de la estru&tura en malla de Ora&le7
8uando se instala m!s de una e2 el mismo producto se a*ade un nmero a la rura" 6or e&emplo, en el caso de dbho$e si #ay dos instalaciones una tomaría dbho$e1! como raí2 @racle 9ome y la otra dbho$e12" %&emplo de ruta completa @racle Base en un sistema 'inu/u01/app/oracle/product/11#$#1/db%o"e_1
%n Kindowsc:\oracle\app\product\11#$#1\db%o"e_1
su#directorios de administraci$n
@racle recomienda que los arc#ios necesarios para administrar @racle se encuentren dentro del directorio admin que, a su e2, est! dentro de *racle Base" Dentro de este directorio colgar! otro por cada instancia de la base de datos y dentro de este ltimo cuelgan todos los directorios con información administratia" 6or e&emplo los arc#ios de par!metros en una instalación de @racle Database en 'inu podrían tener esta ruta/u01/app/oracle/ "d#$%/or&/p'$&
Donde orcl es el nombre de la base de datos y pfile es el nombre del directorio que almacena los arc#ios de par!metros de @racle" 'a recomendación completa de directorios es la siguientesubdirectorio uso arc
9istóricos redo log (arc#iados redo log)
adum
0rc#ios de auditoria
create
Scripts de creación de bases de datos
ddum
Qolcados de eportación.importación de datos (arc#ios du$p)
e:
0rc#ios para eportación de datos
lo#oo
0rc#ios de estado e #istóricos de funcionamiento de la base de datos
subdirectorio uso &ile
0rc#ios de par!metros
scrits
Scripts S:'
*racle In"entor8 Director8
%ste directorio se comparte con todas las instalaciones de @racle en el sistema" Sire para indicar qu+ productos #ay instalados" %n cuanto se instala el primero producto @racle, comprueba a er si eiste directorio de inentario$ de no ser así, se crea" Si puede respetar la estructura recomendada @N0, en 'inu se instalar! en la raí2 (por e&emplo /uC1/a/oraIn"entor8), de no ser así se instalar! en el directorio del usuario que instala @racle (;5*'/oracle/oraIn"entor8)" %n Kindows se coloca siempre en la carpeta de @racle dentro de la carpeta de aplicaciones de Kindows (por e&emplo en !KMProram &ilesM*racleMIn"entor8)" 6or otro lado @racle dispone de un arc#io que permite encontrar el inentario, que en 'inu suele ser /etc/oraInst.loc y en Kindows es la clae de registro5,')*!A)A!5IN'MS*F(6A'M*A!)'Minstloc *racle Netor Files Director8
Se trata del directorio que contiene los arc#ios de configuración de la red, en especial tnsnames.ora y listener.ora que contienen la configuración fundamental" Se suele encontrar en la ruta*A!)'5*'/netor/admin resumen de directorios
'a siguiente imagen muestra la estructura de directorios m!s rese*able en una instalación típica de *racle Data#ase 11-
[3.3] instalaci$n en 6indos [3.3.1]rerre
•
Sistema. Ora&le en @indo9s re"uiere un C 'ntel xFG( A&DG@ o 'ntel E&G@( &emoria. Al menos 1 GB de RAM # el do%le en !irtual. Espacio en disco duro. Al menos GB *ara la instala&i)n ,al+unas instala&iones re"uieren menos-. Adem/s ne&esitamos *oder alma&enar J MB en la &ar*eta (E&* del sistema. (arjeta #rfica. De%e de ser &a*a$ de mostrar 15 *or *2eles &omo mnimo # J &olores.
%n Kindows, el icono e
•
•
•
•
Sistema ,perativo. o 9indo.s 8HHI Server # 8HHI Server !8. o 9indo.s 5* *rofessional7 o 9indo.s 6ista( *ero no la !ersi)n ;ome Edition. o 9indo.s Server 8HHF 0 8HJ8. No la !ersi)n Server Core. Compiladores. Se usan *ara la +ente "ue &rean a*li&a&iones en Ora&le usando len+ua'es &omo ro C( ro COBOL( ; o 6isual C==7NE( 8HHK F7H o 'ntel JH7J C o 7Net Express. Nave#ador7 ara &oni+urar al+unos ser!i&ios de Ora&le. De%e de ser na!e+ador moderno >'nternet Explorer o su*erior( $irefox . o su*erior( Safari .1 o su*erior( Chrome . o su*erior)sar direcci"n '* 3nica en la mquina en la que se instala ,racle . Es de&ir no usar DC *ara dire&&ionar la I en el ser!idor de Ora&le. No es un re"uisito o%li+atorio( *ero es mu# re&omenda%le. [3.3.2]roceso de instalaci$n
%s aconse&able crear un usuario relacionado con @racle con permisos administratios y con +l instalar el software" 'a ra2ón- ser co#erente con las rutas @N0 comentadas anteriormente, que de otra forma #ar!n referencia al usuario con el que instalemos @racle sea o no relacionado con +l" %n 6indos, de la configuración de las ariables de entorno (60H9, @708'%M9@;%,L) y de la mayoría de detalles de configuración del sistema se #ace cargo el instalador de @racle, sin que tengamos que interenir preiamente (a diferencia de la instalación en )inu:)" /EDescargar los arc#ios R6 correspondientes a nuestra instalación y descomprimirlos en la misma careta" Desde esa carpeta (suele llamarse data#ase) lan2ar el instalador (arc#io setu.e:e)" 3Endicar correo electrónico al que @racle eniar! información sobre problemas críticos y si deseamos que nos eníe información de soporte" %n una instalación de prueba no se rellena ninguno de estos apartados
5Endicar si deseamos con el instalador instalar ya la instancia de base de datos" 'o recomendable es instalar sólo el software de la base de datos"
FEndicar si deseamos instalar una instancia nica de @racle o bien instalar instancias mltiples (base de datos distribuida)" 'o lógico, por a#ora, es instalar una instancia nica
E%legir los idiomas
CE%legir el tipo de instalación" 'nterrise es la opción si deseamos instalar @racle con todas sus posibilidades" 'as diferencias entre las distintas ediciones de @racle est!n disponibles en#ttps-..docs"oracle"com.cd.B3O5PM=/.license"///.b3O3O<.editions"#tm
OE%legir la ubicación de instalación" 1ormalmente el instalador la crear! de forma co#erente$ se indicar!n la base general de @racle y el @racle 9ome del producto que se est! instalando en base al esquema @N0" %n cualquier caso se puede cambiar la disposición segn comprobemos lo que m!s nos interesa" PESi el usuario de instalación se llama oracle, el directorio *racle Base ser! ./0app0oracle, el *racle 5ome ser! algo del tipo./0app0oracle0product0!!323!0dbho$e1! (suponiendo que sea nuestra primera instalación de @racle)-
/=E8omprobación de requisitos" Se comprueba si el #ardware y el software cumplen el mínimo de @racle" De ser así se comien2a la copia de arc#ios (de otro modo tendremos que arreglar los requisitos que no cumplamos)"
//E0l final de la copia, normalmente, el cortafuegos de Kindows nos aisar! de que se est! utili2ando un puerto de comunicaciones, debemos de&ar pasar dic#o puerto para que @racle funcione" %n todo caso deberemos estar atentos a este #ec#o porque los puertos que requiere @racle para traba&ar (1-21 y 113O como mínimo) deben de estar abiertos"
/3EHras la copia, aparece el ltimo cuadro que aisa del fin de la instalación" 8on eso, esta fase est! finali2ada"
"aria#les de sistema
8oniene editar una serie de ariables de sistema y configurarlas en Kindows para su funcionamiento (por e&emplo desde 0dministrar Sistema de Kindows) son•
•
•
,!AC%EBASE. Contendr/ la ruta de instala&i)n +eneral de los *rodu&tos Ora&le( *or e'em*lo el !alor C78app8o#acle ,!AC%E;,&E. Ruta al dire&torio en el "ue se 0a instalado la %ase de datos( *or e'em*lo 9O0ACLE:BA*E98p#od$ct844.5.38dbome:4 %D%'B!A!*A(;. Ruta a las li%reras de Ora&le( su !alor suele ser? 9O0ACLE:;O2E9
•
•
•
,!AC%ES'D. Nom%re de la instan&ia de Ora&le ,*or dee&to ORCL-. En realidad &on la instala&i)n( la instan&ia no est/ &reada. Esta !aria%le se usa tras la instala&i)n de la %ase de datos. ,!AC%E)N+NA&E. Nom%re 6ni&o de la %ase de datos. a# instala&iones en las "ue !arios ser!idores &om*arten el nom%re de la %ase de datos( este *ar/metro *ermite dieren&iarlos. En todo &aso( este *ar/metro de%e de indi&arse *ara "ue arran"ue la utilidad ,racle Enterprise &ana#er. *A(;. A esta !aria%le de sistema se de%e de a7adir la ruta a los %inarios de Ora&le( es de&ir? L,!AC%E;,&ELMbin
[3.%] instalaci$n en )inu: [3.%.1]rerre
•
•
•
•
•
•
•
Sistema7 De%eremos tener un sistema de ti*o C ,AMD o Intel sean de o 5 %its-. ara sa%er %a'o "u: !ersi)n de ordenador est/ instalado Linu2 se e'e&uta el &omando? uname ?m 8on m!s detalle uname Ta &emoria. 1GB de RAM ,re&omendados GB-. odemos &om*ro%ar la memoria dis*oni%le &on el &omando? re ;emHotal .proc.meminfo Adem/s ne&esitamos un tama7o de /rea s9a* de al menos 1(J !e&es el tama7o de la memoria. Lo &om*ro%amos mediante? re SwapHotal .proc.meminfo %l comando &ree permite comprobar ambas cosas a la e2"
Espacio en disco. Al menos JGB *ara la instala&i)n. ara &om*ro%ar el es*a&io li%re? d& ?# !esoluci"n #rfica. Al menos 152 *2eles # J &olores( es el mnimo "ue tiene "ue *rodu&ir nuestra tar'eta +r/i&a.
so&tare sistemas oerati"os comati#les
@racle //g sólo es compatible (oficialmente) con estos sistemas (sean de 53 o CF bits)• • • •
Asianux Server ,&on S,racle %inux @ update ) ,racle %inux K update 8 o !ersiones su*eriores. !ed ;at Enterprise %inux. Con los mismos re"uisitos de !ersi)n. S)SE %inux Enterprise Server . Al menos la !ersi)n 1 &on S ,o la 11 # su*eriores-
6odemos aeriguar la ersión del sistema mediante cat .proc.ersion 0dem!s el ernel debe de ser al menos el 2.. para las ersiones F de @racle 'inu y 7ed 9at %nterprise" 'a ersión 2..1O para @racle 'inu , 7ed 9at y 0sinu" SUS% eige la 2..21" Se puede obtener con-
uname ?r ser"idor X
@racle se instala de forma gr!fica, por lo que el sistema 'inu debe de tener actiado el seridor 4" Si instalamos desde una coneión ss #abr! que actiar el seridor en esa coneión" con&iuraciones de red 8 ost
Se requiere que el seridor tenga nombre, no es totalmente imprescindible, pero la m!quina en la que se instala @racle es un seridor" %so implica modificar el arc#io /etc/osts para indicar el nombre del seridor" 6or e&emplo1$#0#1 1($#1)*#1$#+
dbserer#salesianos'illa"uriel#local db1#salesianos'illa"uriel#co"
6or la misma ra2ón necesitamos usar dirección 6 nica en la m!quina en la que se instala @racle" %s decir no usar D986 para direccionar la 6 en el seridor de @racle" 'os pasos para reali2ar esta operación son•
Modii&ar el ar&0i!o /etc/s0sconfi#/net.or:Oscripts/ifcf#OethH ,si nuestra intera$ de red es la ethH-. &olo&ar el &)di+o de esta orma?
E-.CEet%0 OBOO2es 3Actia la tar4eta de red en el inicio BOO5ROOstatic 3indica"os direcci!n est6tica .5AR1($#1)*#1$#+ 3.5 del seridor E7AS8$99#$99#$99#0 3"6scara de red AE;A<1($#1)*#1$#$00 3.5 del router E;OR81($#1)*#1$#0 3irecci!n de red, opcional BROACAS1($#1)*#1$#$99 3irecci!n de di=usi!n, opcional >;AR??:??:??:??:??:?? 37AC <5EEt%ernet •
Modii&ar el ar&0i!o /etc/resolv7conf searc% salesianos'illa"uriel#local 3do"inio local na"eserer 1($#1)*#1$#$ 3no"bre seridor S na"eserer *#*#*#* 3no"bre seridor S @
•
7einiciar los sericios de red ser"ice netor start
na"eador e#
6ara configurar algunos sericios de @racle" Debe de ser naegador moderno (nternet %plorer C o superior, Nirefo 3"= o superior, Safari 5"/ o superior,8#rome 5"= o superior)
a
@racle eige que el sistema tenga instalados un buen nmero de paquetes" 6or e&emplo para sistemas ed 5at 'nterrise (incluido !ent*S) u *racle )inu: de 53 bits ersión se eigen• • • • • • • • • • • • • • • • • • •
binutils !ersi)n .1J.4.. compatOlibstdc==OII !ersi)n .. elfutilsOlibelf !ersi)n .4 elfutilsOlibelfOdevel !ersi)n .4 #cc !ersi)n .5. #ccOc== !ersi)n .5. #libc !ersi)n .51 #libcOcommon !ersi)n ..5 #libcOdevel !ersi)n ..5 #libcOheaders !ersi)n ..5 libaioOdevel !ersi)n ..1J libaio !ersi)n ..1J lib#cc !ersi)n .5. libstdc== !ersi)n .5. libstdc==Odevel !ersi)n .5. ma:e !ersi)n . numactl !ersi)n ..5.i pd:sh !ersi)n J..15 s0sstat !ersi)n J..J
6ara conocer los paquetes eactos a instalar es me&or acudir a la documentación de @racle (#ttps-..docs"oracle"com) 'a instrucción rm Q< seguida del nombre del paquete nos permite saber si dic#o paquete est! instalado (tambi+n aldrían 8um list seguida del paquete, si la #erramienta 8um est! instalada)" 'os paquetes que falten #abr! que instalarles" (am#i?n a8 una serie de a
•
•
Controladores ,DBCP o unix,DBC !ersi)n ..1 o su*erior o unix,DBCOdevel !ersi)n ..1 o su*erior Controladores 4DBC/,C' o 4ava Development -it 1..P1 o su*erior &on la e2tensi)n *ara 4ND'. En realidad el *ro*io Ora&le in&or*ora este re"uisito. %inux *A& %ibrar0
con&iuraciones en el sistema •
El *ar/metro de Ora&le DBB%,C-S'QE de%e de ser ma#or o i+ual a 54 *ara instalar ,racle Database 6ault ,sal!o "ue usemos ese &om*onente( no es ne&esario-
•
a# "ue &om*ro%ar "ue tenemos sui&ientes re&ursos *ara el usuario o#acle. or llo tanto &o*ne&tamos &on di&0os usuario # &om*ro%amos &on estos &omandos "ue dis*onemos de estos re&ursos? uli"it uli"it uli"it uli"it uli"it uli"it
•
•
3 3 3 3 3 3
debe debe debe debe debe debe
"ostrar "ostrar "ostrar "ostrar "ostrar "ostrar
al al al al al al
"enos "enos "enos "enos "enos "enos
10$ )99+) $0& 1)+* 10$0 )99+)
Si los limites no se cumplen, deberemos editar el arc#io /etc/securit8/limits.con& (necesitaremos al usuario superadministrador del sistema) y a*adir estas líneasoracle oracle oracle oracle oracle oracle
•
Sn >n Su >u Ss >s
so=t %ard so=t %ard so=t %ard
nproc nproc no=ile no=ile stac stac
$0& 1)+* 10$ )99+) 10$0 )99+)
'os cambios se producir!n al instante En el ernel del sistema de%eremos &om*ro%ar una serie de *ar/metros ne&esarios *ara "ue Ora&le un&iona. La lista de *ar/metros # sus !alores es la si+uiente? =s#aio'"ax'nr 10*9&) =s#=ile'"ax )*19& ernel#s%"all $0(&19$ ernel#s%""ax $(()&$(9 ernel#s%""ni 0() ernel#se" $90 +$000 100 1$* net#ip#ip_local_port_ranDe (000 )9900 net#core#r"e"_de=ault $)$1 net#core#r"e"_"ax 1(+0 net#core#"e"_de=ault $)$1 net#core#"e"_"ax 10*9*)
•
•
•
ara &om*ro%ar si les tenemos %ien &on al menos ese !alor( %asta usar el &omando s8sctl Ra re nombre6ar!metro Si al+6n *ar/metro del Hernel no &um*le los mnimos( le modii&amos o a7adimos en el ar&0i!o /etc/s0sctl7conf . Des*u:s 0a# "ue e'e&utar este &omando *ara "ue esos &am%ios ten+an lu+ar al instante en el Hernel. s8sctl Q Se &om*rue%a de nue!o &on s0sctl Ra *ara ase+urar "ue los &am%ios 0an sido &orre&tos.
automatiJaci$n del cumlimiento de los re
'os pasos anteriores son etremadamente largos de reali2ar por la gran cantidad de requisitos a completar" 0dem!s es bastante #abitual que algn paso se nos escape"
6or ello para los sistemas 'inu compatibles con @racle y que, adem!s, dispongan de la #erramienta 8um para instalar paquetes desde repositorios, disponemos de un paquete llamado oracleQ"alidated que, cuando lo instalemos, se encargar! de cumplir la mayoría de los requisitos" 6ara instalar oracleTalidated debemos reali2ar los siguientes pasos/EDebemos a*adir el repositorio de @racle a nuestra lista de repositorios de la #erramienta 8um" %n el caso de sistemas @racle 'inu bastar!n simplemente con a*adir el repositorio como se eplica en el paso 2" 3E%n los sistemas ed 5at 'nterrise necesitamos un paso preio- deberemos conertir nuestro sistema en un sistema compatible con los repositorios de @racle 'inu" 6ara ello debemos #acer lo siguiente-/ •
En sistemas &om*ati%les !ed ;at Enterprise @ et #ttp-..publicTyum"oracle"com.76;TG6GT%VToracleTelF T@ .usr.s#are.r#n.76;TG6GT%VToracle
•
TTquiet TTwit#Tfingerprint .usr.s#are.r#n.76;TG6GT%VToracle En sistemas &om*ati%les &on !ed ;at Enterprise %inux K et #ttp-..publicTyum"oracle"com.76;TG6GT%VToracleTel T@ .etc.p>i.rpmTgpg.76;T G6GT%VToracle
•
TTquiet TTwit#Tfingerprint .etc.p>i.rpmTgpg.76;TG6GT%VToracle En sistemas &om*ati%les &on !ed ;at Enterprise %inux G et #ttp-..publicTyum"oracle"com.76;TG6GT%VToracleTolC T@ .etc.p>i.rpmTgpg.76;T G6GT%VToracle
5E;odificar la configuración de repositorios de @racle•
En ,racle %inux o !ed ;at Enterprise @? cd .etc.yum"repos"d m" @racleTBase"repo @racleTBase"repo"disabled
•
et #ttp-..publicTyum"oracle"com.publicTyumTelF"repo En ,racle %inux o !ed ;at Enterprise K? cd .etc.yum"repos"d
•
et #ttp-..publicTyum"oracle"com.publicTyumTel"repo En ,racle %inux o !ed ;at Enterprise GP
cd .etc.yum"repos"d et #ttp-..publicTyum"oracle"com.publicTyumTolC"repo FE0 continuación editamos el arc#io de configuración de 8um ( public4yu$4555) y cambiamos la línea ena#ledTC por ena#ledT1 en los repositorio que deseemos utili2ar (normalmente estar! actiado sólo el ltimo, el m!s actuali2ado que suele ser el m!s interesante)Enstalamos el paquete oracleQ"alidated 8um install oracleTalidated CE0ctuali2amos los paquetes instalados 8um udate creaci$n de usuarios 8 ruos
6ara traba&ar con @racle de forma recomendable, necesitamos crear dos grupos en el sistema 'inu" •
•
•
•
El +ru*o ,SDBA ,Administrador de Bases de Datos- "ue ad"uirir/ los *ri!ile+ios administrati!os de la %ase de datos , SSDBA-. El nom%re "ue se le da al +ru*o es dba. ara &rearle? Un +ru*o "ue ad"uiere los *ermisos ,S,*E! ,O*erador de la Base de Datos- "ue ad"uirir/ el *ri!ile+io SS,*E! . Se le da el nom%re de oper. El +ru*o oinstall *ara el ,racle 'nventor0 ne&esario *ara la *rimera instala&i)n de *rodu&tos Ora&le. En la *rimera instala&i)n( Ora&le &rea el ar&0i!o ora'nst7loc en el dire&torio de in!entario de Ora&le # &ontendr/ la inorma&i)n so%re &u/l es el +ru*o del ,racle 'nventor0. Si no e2iste este ar&0i!o( enton&es de%eremos &rear el +ru*o uede 0a%er m/s +ru*os &reados *ara administrar otras &uestiones &omo *or e'em*lo la +esti)n de i&0eros ASM. ero s)lo se &rean si tenemos la idea de +estionar as los i&0eros.
'as acciones a tomar ser!n las siguientes (eidentemente si ya #emos #ec#o algo preiamente, no #ar! falta repetirlo)/E8rear el grupo del inentario de @racle, se llama oinstall rouadd oinstall 3E8rear el grupo @SDB0 (con el par!metro ?g le podemos asignar un D concreto), que se debe de llamar d#a-
rouadd dba 5E8rear el grupo @S@6%7 (con el par!metro ?g le podemos asignar un D concreto), que se debe de llamar oer rouadd oper FE@pcionalmente, crear el grupo de administración de sistema 0S; (gestor de fic#eros propio de @racle)" Sólo si nuestros fic#eros usan 0S; rouadd asmadmin E8rear el usuario propietario del software de @racle" Se le llama oracle y debe pertenecer a todos los grupos anteriores (se le asigna el D mediante el par!metro Ru) useradd ?g oinstall ?G dba,oper oracle CE0signar contrase*a a dic#o usuario assd oracle modi&icar la seuridad del m$dulo S')IN4X
;odificar la configuración del módulo de seguridad S%'1U4 para que sea m!s permisio, de otro modo arias librerías de @racle no funcionar!n porque este módulo las bloquear!" Bastar! con editar en el arc#io /etc/selinu:/con&i la líneaSEL.F?per"issie
crear directorios de *racle
Siguiendo el modelo @N0 comentado anteriormente deberemos crear los directorios necesarios para instalar @racle" Suponiendo que nuestro usuario de instalación es oracle, las acciones para crear el @racle Base serían mdir Tp .u=/.app.oracle con T7 oracle-oinstall .u=/ cmod T7 << .u=
Hambi+n en este punto y siguiendo las mismas acciones podemos crear y dar permisos para el directorio de la base de datos (oradata) que, de otro modo, se crear! en ;*A!)'BAS'/oradata. usar el usuario de instalaci$n
6uesto que ya #emos creado y preparado todo lo referente a la instalación, tendremos que utili2ar el usuario instalador de @racle (en todos los e&emplos lo #emos llamado oracle) "aria#les de sistema
0l menos #ay que definir en nuestro arc#io script de arranque (normalmente /etc/ro&ile) estas líneas (usando las rutas anteriores)por! ORACLE_BASE/u01/app/oracle por! ORACLE_>O7EGORACLE_BASE/product/11#$#1/db%o"e_1 por! ORACLE_S.no"breB por! ORACLE_FHA7Eno"breB por! ORACLE_>OSA7Eno"breSeridor por! 5A>GORACLE_>O7E/bin:G5A> por! L_L.BRAR<_5A>GORACLE_>O7E/lib:GL_L.BRAR<_5A> por! CLASS5A>GCLASS5A>:GORACLE_>O7E/4lib:GORACLE_>O7E/rdb"s/4lib
[3.%.2]instalaci$n
Hras descargar los arc#ios de instalación y descomprimirlos" %ntonces usaremos el usuario creado para la instalación (normalmente oracle) y entramos en el directorio con el instalador de @racle y lan2amos el *racle 4ni"ersal Installer mediante ".runnstaller 'os pasos son los mismos que en la instalación en Kindows, salo en aquellos aspectos propios del sistema 'inu (rutas, configuración del sistema,L)
[3.-] crear la #ase de datos 'a base de datos no se tiene por qu+ crear durante la instalación" %s posible #acerlo despu+s, tanto en 'inu como en Kindows" De #ec#o es me&or instalar la base de datos despu+s" 1ormalmente se utili2a el asistente DB!A ( Data Base .reator +ssistant ) que en Kindows se encuentra en InicioQProramas en el grupo de @racle en el apartado de 5erramientas de !on&iuraci$n ba&o el nombre Asistente de !on&iuraci$n de Bases de Datos" %n 'inu es un arc#io en la carpeta #in de la raí2 de @racle (el *A!)'5*') llamado d#ca$ para funcionar correctamente se deben configurar las ariables de entorno ya comentadas, @708'%M9@;% y @708'%MB0S%" %n Kindows #abría que comprobar las ariables de sistema en 6ropiedades del %quipo, en el apartado de opciones aan2adas" %s importante situar la carpeta #in de @racle en el Pat del sistema tambi+n en Kindows)"
%n ambos casos #ay que configurar la coneión de red a @racle" 'o que se conoce como el )istener" Un listener es un programa residente en memoria (un proceso) que sire para escuc#ar lo que llega por un puerto de red y eniarlo a su destino correspondiente" Sin +l, por lo tanto, @racle no obtendría las peticiones por red" 'os pasos completos para crear una base de datos en @racle son/E'an2ar el Asistente de !on&iuraci$n de ed (comando netca desde la línea de comandos)"
3E%legir !on&iuraci$n del )istener y luego Arear"
5E%legir un nombre para +l (lo #abitual es )IS('N' ) FE%specificar el protocolo por el que se comunica ((!P normalmente)
E%legir el nmero de puerto que utili2ar! (normalmente el 1-21)
CE1ormalmente en este paso, salta el cortafuegos de Kindows aisando de que un nueo programa intenta utili2ar el puerto /3/" %n el caso de 'inu #ay que estar seguros de que tenemos ese puerto abierto" 'ógicamente permitimos el acceso, de otro modo no podríamos comunicar con la base de datos"
OE%l siguiente paso es lan2ar el Asistente de !on&iuraci$n de Bases de Datos (comando d#ca), que nos permitir! configurar totalmente la nuea base de datos"
PEPaso 1. 0an2ar y elegir !rear una #ase de datos
/=EPaso 2. 0an2ar y elegir PersonaliJar la #ase de datos, de esa forma no se crear!n datos en la misma y podremos configurar detalladamente las opciones de instalación" %l botón ostrar Detalles nos muestra las ariables y opciones por defecto para ese tipo de instalación"
//EPaso 3. ndicar el nombre de la base de datos (toda nuestra red usar! ese nombre) y un identificador de la base de datos (SID>. 1ormalmente se pone el mismo nombre en ambos apartados" %ste nombre ser! por el que nos referiremos en todo momento a la instancia de base de datos, es uno de los pasos fundamentales por lo tanto"
/3EPaso %. 0segurar que la casilla que permite configurar el seridor @racle con 'nterrise anaer est! actiada" %l %nterprise ;anager es un administrador isual de las bases de datos @racle" 'o dem!s se suele de&ar con sus alores por defecto"
/5EPaso -. %stablecer las contrase*as para los usuarios administratios (en especial para SS y SS(')" Se puede elegir la misma para todos (!lido solo para sistemas en prueba, por seguridad coniene crear contrase*as distintas para cada usuario)" SVS y SVSH%; son los usuarios fundamentales"
/FEPaso . 6aso en el que se elige la forma de almacenar los arc#ios" Se suele elegir un sistema de arc#ios normal como sistema de almacenamiento, usar las ubicaciones de la plantilla y se puede pulsar el botón +aria#les de u#icaci$n de arci"os para anali2ar los directorios creados y las ariables del sistema" 'as otras son opciones aan2adas de gestión de los arc#ios, que nos permiten automati2ar de otra forma dic#a gestión"
/EHras pulsar en Qariables de ubicación de arc#ios, aparece-
/CEPaso U. 'a siguiente permite configurar la recuperación de Flas" %ste modo de recuperación nos permite oler #acia atr!s en los datos en caso de desastre" %sta utilidad consume muc#o disco (@racle recomienda al menos el doble del tama*o original de la base de datos), pero es enormemente interesante" 0dem!s desde aquí podemos actiar el modo de arc#io 0789Q%'@G que nos permite almacenar los #istóricos redo log (o arc#iados redo log) para recuperar la base de datos en caso de desastre"
/
/OEPaso O. %n la pantalla siguiente se suelen desactiar todas las casillas, ecepto- 6nterprise %ana&er Repository" %l resto le a*ade funciones que no suelen ser necesarias en una base de datos est!ndar" 'o mismo ocurre con los componentes que aparecen al #acer clic en !omonentes de datos est0ndar9 coniene desactiar todos, a no ser que deseemos utili2ar alguna de esas funcione, por otro lado muy interesantes aunque consumen recursos" Hodo se podría instalar despu+s en caso de necesidad"
/PE'a pesta*a Arci"os de comandos ersonaliJados nos permitiría e&ecutar un arc#io de scripts para e&ecutar instrucciones sobre @racle durante la instalación
3=EPaso . 'a pantalla siguiente (cuatro pesta*as) permiten modificar los par!metros de inicio de la base de datos" 'a mayoría son opciones aan2adas, #ay que manipularlas sabiendo muy bien lo que se #ace" 'as pesta*as son•
&emoria !A&. ermite indi&ar la memoria "ue de'ar/ nuestro ser!idor *ara alma&enar los datos din/mi&os &oni+urando lo "ue se *ermite "ue o&u*e tanto los datos +lo%ales ,S1A- &omo los *ro*ios de &ada *ro&eso >*1A?. Se *uede &oni+urar al detalle el +asto en memoria( in&luso es*e&ii&ar la memoria "ue destinamos a &ada es*a&io de alma&enamiento ,el Buer de datos( el &a&0: redo( ;-.
•
Bloque 0 conexiones simultneas . El tama7o del %lo"ue no se *uede modii&ar des*u:s( *or lo "ue &on!iene *ensar %ien en el tama7o a*ro*iado. La ra$)n *ara un tama7o u otro es la !elo&idad de la %ase de datos # el &onsumo "ue se 0a&e en dis&o. El tama7o del %lo"ue de%e de ser un m6lti*lo del tama7o de %lo"ue mnimo del dis&o se+6n el Sistema O*erati!o. El otro !alor ,normalmente 1J-( *ermite limitar o am*liar el n6mero de usuarios simult/neos "ue *ueden a&&eder a la %ase de datos( su%ir ese n6mero( aumentara los re&ursos +astados *or Ora&le. En el &aso de una %ase de datos de *rue%a se *uede %a'ar *ere&tamente ese !alor.
•
4ue#os de caracteres. ermite ele+ir la orma de &odii&ar el te2to. En &ual"uier sot9are a&tual se re&omienda el uso de Uni&ode ,urQ-= *ero Ora&le suele tomar *or dee&to la &odii&a&i)n del Sistema O*erati!o.
•
•
&odo de funcionamiento del proceso servidor . Se trata de la orma en la "ue tra%a'ar/ el *ro&eso ser!idor. Lo normal es ele+ir dedicado # as &ada *ro&eso &liente es atendido *or un *ro&eso ser!idor. Cuando tenemos enormes &antidades de &one2iones &lientes( en este modo &onsumiramos todos los re&ursos # *or eso se &oni+ura de modo compartido( en el "ue un mismo *ro&eso ser!idor atendera a !arios *ro&esos &lientes. Lo usual es usar un modo dedi&ado sal!o "ue *re!eamos "ue tendremos numerosas &one2iones simult/neas. El resto de *ar/metros del SGBD est/n a&&esi%les a tra!:s del %ot)n =odos los pa#>met#os de iniciali?aci@n e in&luso se *ueden !er los m/s a!an$ados &on un %ot)n "ue lo indi&a.
3/EPaso 1C. 0#ora se puede gestionar la configuración de los arc#ios (de control, redo, arc#iados y de datos)" ncluida la gestión de tablespaces, tama*os m!imos de arc#ios, auto ampliación del tama*o,L %s muy interesante er todas las posibilidades de esta pantalla (especialmente permite er la ubicación de cada arc#io)- Hodos los apartados que permite son•
Archivo de control. Nom%re # u%i&a&i)n de los ar&0i!os de &ontrol ,ma#or n6mero de ellos( ma#or multi*le2a&i)n-. En la *esta7a de ,pciones *odemos indi&ar el m/2imo n6mero de Ar&0i!os de Datos( Gru*os Redo Lo+ # miem%ros de &ada Redo Lo+.
•
(ablespaces. odremos &rear o su*rimir ta%les*a&es ,&on los %otones de la *arte inerior i$"uierda-. Adem/s de'arles en estado de &one&tados o des&one&tados # de ele+ir o*&iones a!an$adas so%re su alma&enamiento ,&oni+ura&i)n de los se+mentos del ta%les*a&e-.
•
•
Archivos de datos. odemos modii&ar su nom%re # u%i&a&i)n as &omo su tama7o. La am*lia&i)n del ar&0i!o &uando est: lleno ,en deiniti!a( la +esti)n de las e2tensiones- se *uede &ali%rar desde la *esta7a Almacenamiento.
Archivos redo lo#. Eli+iendo 1rupos de redo lo# *odemos &rear o su*rimir +ru*os. Dentro de &ada +ru*o *odemos esta%le&er los miem%ros del mismo # su u%i&a&i)n.
33EPaso 11 8 @ltimo del d#ca. %legir !rear la #ase de datos, %n todo caso deberíamos elegir crear script de creación de base de datos y así eaminar cómo serían los comandos manuales para crear la base de datos (muy recomendable #acerlo)
35ENinalmente se nos informa de la instalación" %s importante apuntar la p!gina del %nterprise ;anager para acceder a ella cuando lo necesitemos" %s m!s, lo lógico es guardar la configuración que se nos ofrece mediante el botón Guardar 5().
3FEUna e2 iniciada la generación de la base de datos, merece la pena estar atentos a los mensa&es de @racle a fin de entender el proceso y dónde se almacena cada elemento" 3E%n la ltima pantalla (si todo #a ido bien), se presentan los datos de la instalación" %sos datos son fundamentales, entre ellos est! la dirección del arc#io de configuración de @racle ora.ini y la U7' para entrar en el seridor de aplicaciones *racle 'nterrise anaer que nos permitir! administrar la base de datos en modo gr!fico"
[3.] control del listener 8omo ya se #a comentado$ el proceso que escuc#a las peticiones de los clientes #acia la base de datos se conoce como )istener" %s imprescindible para conectar con la base de datos ya que abre el soc>et" 6ara gestionar el listener del seridor se usa el programa lsnrctl, disponible tambi+n en el directorio #in del @racle 9ome" Sus posibilidades para lan2ar o quitar el listener sonlsnrctl start
nombre'istener arranca el 'istener
lsnrctl sto nombre'istener para el 'istener lsnrctl status muestra información
Hambi+n se puede lan2ar desde el %nterprise ;anager, y como sericio en el caso del entorno Kindows"
[3.U] conectar con la #ase de datos [3.U.1]conectar mediante S7)VPlus lanJar S7)VPlus
'a forma cl!sica de conectar con @racle, es utili2ar la utilidad S:'W6lus, que es un cliente b!sico que permite eniar comandos a @racle" 6ara utili2arlo, bastaría con ir a la consola de comandos del sistema y escribir s
ro#lemas con el m$dulo S')inu:
%n numerosas instalaciones 'inu (por e&emplo en el sistema !ent*S), #ay problemas al lan2ar S:'Wplus, debido a las restricciones del módulo de seguridad S')inu:" Una solución es de&ar en modo permisio a S%'inu editando el arc#io /etc/selinu:/con&i y rescribiendo la línea siguienteSEL.F?per"issie
Si no queremos de&arlo en ese estado del todo podemos e&ecutar el comando-
.usr.sbin.en&orce C @tra opción permanente y menos peligrosa es e&ecutar el comando ccon Tt tetrelMs#libMt @708'%M9@;%.lib.W"so %ste comando modifica el conteto de e&ecución de las librerías de @racle para S%'inu de modo que no se aplique a las librerías de @racle y así las permite e&ecutar" cone:i$n en modo N*)*G
'a forma #abitual de coneión con S:'W6lus es con la sintais s
'os usuarios normales no tienen capacidad de mane&ar la instancia de la base de datos" Sólo los que tienen roles de DB0 o priilegios para cortar co rtar e iniciar la instancia" 0 este respecto #ay dos priilegios especiales que permiten a un usuario (que tenga la posibilidad de acceder en modo administrador) operaciones aan2adas en la base de datos, son•
•
SS,*E! . Tiene &a*a&idad de arran&ar , *=A0="% - detener una instan&ia ,*;"=DO! -( -( adem/s de 0a&er modii&a&iones a las %ases de datos # los tablespace. SSDBA. SSDBA. Adem/s de lo anterior se le *ermite &rear %ases de datos( as &omo usuarios &on *ri!ile+ios SSDBA # SSOER.
%&emplos de coneiónCONNECT adol=o/naturaK ''conecta co"o usuario nor"al CONNECT adol=o/naturaJasirK ''conecta co"o usuario '' nor"al indicando a uM base de datos se conecta CONNECT adol=o/naturaJasir A, S
%n la ltima, no se indica usuario" Se recoger! el usuario del sistema operatio y conectar!, siempre que ese usuario sea miembro del grupo DB0 de @racle (si es el administrador, se toma como usuario SS)"
%l comando para desconectar es DIS!*NN'!(" [3.U.2]conectar mediante 'nterrise anaer9 anaer9 Data#ase !ontrol lanJar el Data#ase !ontrol
%l %nterprise ;anager es una utilidad que permite administrar la instancia de @racle utili2ando un seridor web, en realidad es un programa llamado emctl que se encuentra en el directorio #in de cada *racle 5ome" 'a p!gina desde la que administramos @racle se conoce como Data#ase !ontrol y se puede actiar o desactiar desde la línea de comandos utili2ando estas instruccionesemctl start dbconsole arranca el DataBase 8ontrol emctl sto dbconsole le para emctl status
dbconsole comprueba el estado actual
6ara que el programa funcione, debemos asegurarnos de que el puerto con el que se comunica el %nterprise ;anager est! abierto (normalmente el puerto 11-O)" %sto significa comprobar el cortafuegos de Kindows y 'inu" %n 'inu bastaría con los comandos ita#les T0 16UH Tp tcp TTdport //O T& 088%6H ser"ice iptables restart Si no #ubi+ramos instalado el %nterprise ;anager, podemos usar su asistente de instalación (sólo funciona en línea de comandos) emca" 6ara crear un nueo repositorio para la instancia de base de datos se usa emca ?config dbcontrol db ?repos create Se nos preguntar!n los datos sobre la instancia y usuarios administradores" Si todo a bien #abremos creado el repositorio de Database 8ontrol" acceso al Data#ase !ontrol
%l acceso al entorno de Data#ase !ontrol se #ace usando el enlace !!p1// no"breeSeridor puerto /#
1ormalmente%ttps://local%ost:119*/e"
'a dirección *A!)'5*'/install/ortlist.ini contiene los puertos que usa @racle para el 'nterrise anaer" Si accedemos a la dirección en el naegador lo normal es que el certificado de la aplicación no sea !lido, por lo que los naegadores mostrar!n un mensa&e de aiso" Deberemos confiar en el certificado del sitio del %nterprise ;anager para acceder al control de la base de datos" %n el caso que falle la carga del Database 8ontrol #ay que asegurar que disponemos de la ariable de sistema *A!)'4N7NA' conteniendo el nombre de la instancia (sid)" %n caso de que no sea así #ay que definirla en las ariables del sistema, de manera r!pida en 6indos seríaset @708'%MU1:10;%XnombreBD
Donde no$breBD es el nombre identificatio de la base de datos" 6ero lo lógico es a*adirla a la lista de ariables del sistema (tanto en Kindows Kindows como en 'inu)" Despu+s se nos preguntar! por el usuario-
Desde este entorno se pueden reali2ar todas las operaciones de administración con la base de datos" 'a forma de coneión es entrar con SS (con opción SVSDB0) y su contrase*a" Sólo los usuarios con rol SVS@6%7 pueden usar el Database 8ontrol"
Una e2 alidado el usuario, entonces podremos gestionar la mayoría de aspectos administratios de @racle" [3.U.3]cone:i$n mediante S7) De"eloer 8 otras erramientas r0&icas S7) De"eloer es una utilidad gr!fica gratuita que permite conectar con @racle utili2ando un entorno
amigable de traba&o y que nos permite tanto e&ecutar instrucciones S:', como 6'.S:' como reali2ar la mayoría de tareas administratias" 9ay otras #erramientas parecidas como (oad de la empresa 7uest o DataGri de etBrains" 'a mayoría est!n creadas en Jaa y requieren tener instalado el JD de Jaa disponible en#ttp-..www"oracle"com.tec#networ>.es.&aa.&aase.downloads.inde"#tml) %n estas #erramientas las coneiones con la base de datos se reali2an desde un entorno gr!fico, m!s cómodo que conectar desde la consola de S:'W6lus" 'a mayoría de las #erramientas de este tipo est!n pensadas para el desarrollo y no la administración de @racle, por lo que no dispondremos de todos los comandos de administración, aunque sí de la mayoría"
/ nformación completa en #ttp-..publicTyum"oracle"com
UNIDAD 5 Coni+ura&i)n de Ora&le Data%ase
[%.1] elementos de esti$n de ser"idores de *racle %n la configuración y gestión de Sistemas@racle Database tenemos diersos elementos a tener en cuenta•
'nstancia de ,racle.
• •
%istener. ro&eso en&ar+ado de *ermitir las &one2iones. 'nterfa2 de #esti"n. Sot9are "ue nos *ermite reali$ar tareas so%re el ser!idor Ora&le? S+% Developer( S+%*lus( ,racle Enterprise Database Control( Data1rip( et&. [%.1.1]acceso a Data#ase !ontrol
Database 8ontrol es parte del *racle 'terrise anaer, es una consola gr!fica que permite gestionar bases de datos @racle independientes (que no funcionan de forma distribuida)" 1ormalmente Database 8ontrol est! disponible en #ttps-..local#ost-//O.em Si no se #a arrancado, el comando de arranque esemctl start dbconsole
%l comando para detener Database 8ontrol esemctl sto dbconsole
%l comado para er el estado de Database 8ontrol es#!& 1!"!u1 dbconsole
[%.1.2]acceso mediante S7)VPlus
Desde la línea de comandos, en el seridor, disponemos del comando sqlplus" 'o normal es conectar en modo anónimo s
• •
sqlplus usuario. Cone&ta &on Ora&le usando el nom%re de usuario indi&ado. Se *edir/ *or te&lado la &ontrase7a del usuario. sqlplus usuario/&ontrase7a. Cone&ta usando el usuario # &ontrase7a indi&ados. sqlplus / as s0sdba. Cone&ta usando el usuario del Sistema O*erati!o ,"ue de%er/ tener rol de administrador en Ora&le-.
Hambi+n es posible, tras conectar con @racle, cambiar de usuario con el comando connect" %ste comando tiene las mismas posibilidades• •
connect usuario connect usuario8&ontrase7a
•
connect / as s0sdba
S:'W6lus admite lan2ar scrits, código S:', al conectar" %&emplos
%ste comando conecta con el usuario hr (su contrase*a tambi+n es hr ) y lan2a las instrucciones S:' contenidas en el arc#io inicio3sl " Si ya estamos dentro de S:'W6lusS7)WYinicio"sql
[%.2] maneo de la instancia de la #ase de datos [%.2.1]estados de arran
Una base de datos @racle puede estar en uno de estos cuatro estados•
•
•
S;)(D,9N. La %ase de datos est/ &errada( nin+6n ar&0i!o ni *ro&eso est/ en e'e&u&i)n. La instan&ia de Ora&le no est/ en memoria. N,&,)N(. La instan&ia de %ase de datos est/ latente en memoria( &on los *ro&esos &omunes un&ionando. Se a%re el ar&0i!o de *ar/metros( se asi+na en memoria el es*a&io *ara la SGA( se lan$an los *ro&esos en se+undo *lano( se a%ren los ar&0i!os de tra$a # alerta. &,)N(. Al estado anterior se a7ade la le&tura de los ar&0i!os de &ontrol "ue *ermiten determinar &)mo se 0a de *re*arar la instan&ia. Se %us&an los ar&0i!os de datos # los Redo Lo+( &om*ro%ando su e2isten&ia en las rutas mar&adas *or el ar&0i!o de &ontrol. %n este estado podemos conectar (como administradores) y reali2ar tareas como-
Cam%io del nom%re de los ar&0i!os de datos A&ti!ar el modo ARCIELOG Re&u*era&i)n de la %ase de datos En deiniti!a( tareas so%re los ar&0i!os de la %ase de datos #a "ue aun no se 0an a%ierto sus datos. ,*EN. La %ase de datos est/ &om*letamente un&ional. ara ello se a%ren los ar&0i!os de datos # los Redo Lo+ # se &om*rue%a la &onsisten&ia de los datos. o o o o
•
[%.2.2]inicio de la instancia
6ara iniciar la base de datos se usa el comando S(A(4P seguido del nombre del estado deseado" 6or e&emplo-
,TARTUP MOUNT
Sin indicar estado alguno (escribiendo S(A(4P, a secas), se inicia @racle en modo *P'N" %l comando A)(' DA(ABAS' seguido del estado permite cambiar de estado (solo podremos cambiar #acia estados superiores)" %&emplo ALTER ATABA,E OPEN;
modo de sesi$n restrinida
%s un modo especial de traba&o en el que la base de datos est! abierta, pero solo se permite el acceso a usuarios con permiso 'S(I!('D (lo poseen los administradores) para #acer tareas especiales de administración" Uso,TARTUP RE,TRICTE
Si la instancia ya estaba abierta es ALTER ,Y,TEM ENABLE RE,TRICTE ,E,,ION;
V si lo que queremos es desactiar el modo restringido para pasar a modo normal ALTER ,Y,TEM I,ABLE RE,TRICTE ,E,,ION;
[%.2.3]arada
Una instancia cuando es arrancada, #asta estar disponible atraiesa todos los estados anteriores" %l comando de apagado de la instancia es S54(D*6N, su sintais,HUTO4N NORMAL P TRAN,ACTIONAL P IMMEIATE P ABORTQ
'as opciones son•
•
•
N,!&A%. Modo en el "ue no se admiten m/s &one2iones a la %ase de datos( *ero las a&tuales se mantienen. Cuando se &ierre la 6ltima sesi)n( la %ase de datos *asar/ a estar &errada ,SUTDO@N-( *ero( 0asta enton&es( se+uir/ a%ierta. Al &errar se uer$a un &0e&H*oint # se +ra%an todos los datos del %6er( adem/s de &errarse los ar&0i!os. (!ANSAC(',NA%. I+ual "ue la anterior( *ero a0ora se &ortan todas las &one2iones "ue no 0a#an em*e$ado una transa&&i)n. No se &errar/ la %ase de datos 0asta "ue inali&en las transa&&iones ini&iadas. Al inal( se &ierra la %ase de datos de la misma orma ,es de&ir( de orma &orre&ta-. '&&ED'A(E. No se a&e*tan nue!as &one2iones # se &ierran las a&tuales. Las transa&&iones se &ortan mediante una instru&&i)n !,%%BAC-( &uando se &an&ele la 6ltima( se a*a+a la instan&ia de %ase de datos *ero de orma &o0erente( es de&ir &on un &0e&H*oint # &errando # +ra%ando los ar&0i!os de datos &orre&tamente ,al i+ual "ue en los &asos anteriores-.
•
AB,!(. A*a+ado %rus&o. Todas las &one2iones se &ortan de +ol*e( no se &ierran los ar&0i!os ni se *ro!o&a un &0e&H*oint. No se +ra%a nada en dis&o. Simula un a*a+)n re*entino. [%.2.%]#orrado de la #ase de datos
7equiere de estos comandos /E1ecesitamos cortar la instancia actual,HUTO4N IMMEIATE;
3Eniciar la base de datos en modo ;@U1H ,TARTUP MOUNT E5CLU,IVE RE,TRICT;
5EBorrar ROP ATABA,E;
Borrar una base de datos requiere de muc#ísima prudencia, ya que no se puede des#acer y podemos #acer desparecer cantidades enormes de datos importantes" @tra opción (m!s f!cil) es usar el asistente d#ca para eliminar la base de datos" Basta lan2arl@ con el comando dbca y despu+s elegir la base de datos a borrar y seguir los pasos"
[%.3] ar0metros de *racle @racle dispone de una serie (muy etensa) de par!metros que siren para configurar la base de datos y la instancia de @racle" 'os par!metros se almacenan en arc#ios especiales que son leídos por la instancia de @racle antes de iniciarse, para así #acerlo con la configuración que indica el arc#io (o arc#ios) de par!metros" %l arc#io de par!metros puede ser•
•
De ti*o *$'%E( a&r)nimo de %a#amete#s ile. Es un ar&0i!o de te2to *lano. Se *uede leer usando &ual"uier editor de te2to. S*$'%E< a&r)nimo de *e#ve# %a#amete# ile. Un ar&0i!o %inario.
6or defecto @racle utili2a un arc#io binario al arrancar" %s la recomendación actual en @racle Database desde la ersión //g" 'a ra2ón es que se les considera m!s r!pidos y la información que contienen es menos accesible" %l problema es que los S6N'% no son editables de forma independiente a @racle" 6or lo que si cometimos un error en un par!metro y @racle no arranca, no podremos modificar el par!metro directamente en el arc#io" [%.3.1]u#icaci$n del arci"o de ar0metros
%n @racle //g el arc#io de par!metros SPFile (que es el que se usa por defecto), est! en•
•
%inux/)nix. En ,!AC%E;,&E/dbs/spfile*-D7ora< donde el SID es el identii&ador de la %ase de datos. 9indo.s7 En ,!AC%E;,&E/database/spfile *-D7ora< donde el SID es el identii&ador de la %ase de datos
%n el caso de no disponer de S6Nile, @racle puede utili2ar un arc#io de teto 6N'% para almacenar par!metros" Su ubicación sería•
%inux/)nix. Est/ en O0ACLE:;O2E /dbs/init*-D7ora. or e'em*lo? .u=/.app.oracle.//"3"/.dbM/.dbs.initbbdd"ora
•
9indo.s. Est/ en O0ACLE:;O2E MdatabaseMinit*-D7ora
%n los arc#ios de teto 6N'% la información se almacena de esta formano"bre5ar6"etro 6 alor
Si es un par!metro que puede contener arios alores su sintais esno"bre5ar6"etro 6 (alor1 7alor$ 7@QQ)
@ bien podemos repetir el par!metro y asignar un alor en cada línea" %&emplocontrol_=iles/u01/app/oracle/oradata/centora/control01#ctl control_=iles/u0$/app/oracle/oradata/centora/control0$#ctl control_=iles/aux/bac/control0+#ctl
%l código anterior asigna tres arc#ios de control a la base de datos" %n los arc#io 6N'% los comentarios se ponen con el símbolo Y. 'os arc#ios de tipo 6N'% permiten su modificación directa en el arc#io" 6ero #ay que tener un etremo cuidado al #acerlo ya que un solo error podría proocar que dic#o arc#io quedara inutili2able como arc#io de par!metros" ndependientemente del tipo de arc#io utili2ado para almacenar los par!metros, los alores de los par!metros pueden ser distintos en el arc#io respecto al alor que la base de datos utili2a en cada momento" %l contenido de los arc#ios se e&ecuta al iniciar la base de datos, pero luego durante la e&ecución se pueden modificar" [%.3.2]esti$n de los arci"os de ar0metros
8omo #emos comentado se usa normalmente un arc#io binario S6N'% para contener los par!metros" 6ero es lógico disponer de una copia en formato 6N'% para el caso en el que el sistema no arranque y necesitemos modificar directamente el arc#io de par!metros"
6or ello @racle nos permite estas posibilidades con los arc#ios de par!metros•
•
•
•
•
•
•
•
•
•
C!EA(E *$'%E $!,& S*$'%E. Crea un ar&0i!o FILE a *artir del ar&0i!o SFILE a&tual. Colo&a el ar&0i!o FILE en su u%i&a&i)n *or dee&to. C!EA(E *$'%Eruta $!,& S*$'%E. a&e lo mismo *ero a0ora &olo&a el ar&0i!o FILE en la ruta indi&ada. C!EA(E *$'%Eruta $!,& S*$'%Eruta. Crea el ar&0i!o FILE a *artir de un SFILE &u#a ruta se indi&a. C!EA(E S*$'%E $!,& *$'%E. Crea un ar&0i!o SFILE a *artir del ar&0i!o FILE a&tualmente en uso. Colo&a el ar&0i!o SFILE en su u%i&a&i)n *or dee&to. C!EA(E S*$'%Eruta $!,& *$'%E. a&e lo mismo *ero indi&ando ruta *ara el SFILE resultante. C!EA(E S*$'%Eruta $!,& *$'%Eruta. Crea el SFILE en la ruta indi&ada a *artir de un FILE( del "ue tam%i:n se indi&a su ruta. C!EA(E S*$'%E $!,& &E&,!. Crea el ar&0i!o SFILE a *artir de los *ar/metros a&tualmente en memoria. C!EA(E S*$'%Eruta $!,& &E&,!. a&e lo mismo( *ero indi&ando ruta *ara el SFILE. C!EA(E *$'%E $!,& &E&,!. Crea el ar&0i!o FILE a *artir de los *ar/metros a&tualmente en memoria. C!EA(E *$'%Eruta $!,& &E&,!. a&e lo mismo( *ero indi&ando ruta *ara el FILE.
arran
8omo se #a comentado @racle Database arranca usando un arc#io S6N'%" 6ero si necesitamos arrancar usando un arc#io de teto 6N'%, podemos arrancar @racle usando la sintais,TARTUP P8ILE6 ruta
[%.3.3]carar ar0metros en el arran
6or defecto @racle busca los arc#ios de par!metros por defecto segn el nombre y ruta eplicados en el apartado anterior" 8oncretamente partiendo de la ruta #abitual para los arc#ios de par!metros (7R+.L6187%69dbs o 7R+.L6187%69database) el orden de carga es$ /E0rc#io S6N'% de nombre s&ile#:D.ora 3E0rc#io S6N'% de nombre s&ile.ora 5E0rc#io 6N'% de nombre init#:D.ora FE0rc#io 6N'% de nombre init.ora 6ero podemos for2ar a que se cargue un arc#io 6N'% que nosotros indiquemos" 6ara ello basta arrancar con,TARTUP P8ILE6 rutaArc%io5.LE
1o podemos arrancar for2ando a usar un arc#io concreto S6N'%, siempre se usa el S6N'% de la ruta por efecto (si deseamos otro #abr! que sustituirle)" [%.3.%]&uncionamiento de los ar0metros tios de ar0metros • •
•
Derivados. Su !alor de*ende de otros *ar/metros. Dependientes del Sistema ,perativo. ar/metros &u#os !alores de*enden del Sistema O*erati!o en el "ue se instale el ser!idor de %ases de datos. or e'em*lo el tama7o de %lo"ue en dis&o. 'ndependientes.
ar0metros de inicialiJaci$n
%stos par!metros determinan como funcionar! la instancia de base de datos y sus alores se usan durante el arranque de la base de datos" 9ay dos tipos•
•
Bsicos. Son unos # &ontienen lo undamental en el un&ionamiento de la %ase de datos. Avan2ados. Son m/s de . Se usan menos. [%.3.-]modi&icaci$n de ar0metros
0 la #ora de modificar par!metros, tenemos dos posibilidades•
•
Si el *ar/metro es est/ti&o( su !alor se de%e modii&ar en el i&0ero de *ar/metros ,SFILE o FILE- # se a*li&ar/n &uando la instan&ia se reini&ie. Si es din/mi&o( su !alor se *uede &am%iar en &aliente ,&on la instan&ia en modo OEN- # se a*li&an al instante. Estos *ar/metros son de dos ti*os? o A nivel de sesi"n. Ae&tan solo a la sesi)n del usuario. Se modii&an &on A%(E! SESS',N7 o A nivel de sistema. Ae&tan a toda la %ase de datos. Se modii&an &on A%(E! SS(E&.
'os par!metros de sistema se modifican con ALTER ,Y,TEM ,ET par6"etroalor COMMENT, co"entariosQ E8ERRE Q ,COPE6 T,P8ILE P MEMORY P BOTH UQ;
S!*P' controla cuando se produce el efecto del par!metro•
•
•
S*$'%E. Si+nii&a "ue el &omando modii&a el ar&0i!o de *ar/metros SFILE # sus ee&tos se !er/n en el si+uiente arran"ue. &E&,!. El &am%io se +ra%a en memoria # se *rodu&e inmediatamente( *ero &omo no to&a el ar&0i!o SFILE( en el si+uiente reini&io !ol!er/ a tener el !alor anterior. B,(;. a&e am%as &osas.
•
DE$E!!ED. a&e "ue el !alor asi+nado un&ione en el si+uiente reini&io.
%&emplo ALTER ,Y,TEM ,ET sessions$00 ,P8ILE K
%n este caso de&amos el límite de sesiones concurrentes a 3==$ pero tendr! igor cuando reiniciemos la base de datos ya que #emos indicado que esta modificación se grabe en el arc#io y no se aplique a#ora mismo" %n el caso de modificar par!metros con A)(' S'SSI*N, no posee las cl!usulas '*, B*(5, SPFI)' ni D'F''D, ya que no tienen sentido para modificar los par!metros de una sesión" [%.3.]mostrar "alor de los ar0metros
Henemos las siguientes posibilidadesopción
uso
S5*6 PAA'(' nombre
%n S:'W6lus, nos muestra los par!metros referentes a la sesión actual
S5*6 SPPAA'(' nombre
%n S:'W6lus nos ense*a los alores de los par!metros almacenados en el S6N'%
S')'!( V F* +;PAA'(' 65'' 4PP'=name> )I,' ZnombreL
Qista del diccionario de datos con los alores actuales de los par!metros
S')'!( V F* +;SPPAA'(' 65'' 4PP'=name> )I,' ZnombreL
Qista del diccionario de datos con los alores de los par!metros en el S6N'%
S')'!( V F* +;SS('PAA'(' 65'' 4PP'=name> )I,' ZnombreL
Qalores de los par!metros que afectan a la instancia actual de la base de datos
%l comando S5*6 PAA'(' muestra los par!metros que actan en la sesión actual$ S5*6 SPPAA'(' muestra los del arc#io S6N'% que sea el actual" 'a ista +;PAA'(' contiene los par!metros actuales de la sesión, +;SS('PAA'(' contiene los par!metros del sistema y +;SPFI)' los del arc#io S6N'% se usen o no" [%.3.U]alunos ar0metros in&ormaci$n lo#al
par!metro
alor
DBNA'
1ombre de la base de datos"
DBD*AIN
Dominio al que pertenece la base de datos"
DB4N7NA'
1ombre nico de base de datos" Se usa para diferenciar instancias con el mismo nombre de base de datos en sistemas distribuidos"
!*PA(IB)'
Qersión de @racle Database compatible con la instancia de base de datos
!*N(*)FI)'S
7uta a los arc#ios de control (pueden ser arios alores)
DIAGN*S(I!D'S(
7uta, por defecto, inicial a los arc#ios log y de tra2a"
)*GA!5I+'D'S( ;
7uta en la que se almacenar! el arc#io #istórico redo log nZ n
DB'!*+'FI)'D'S(
7uta al directorio de recuperación de la base de datos
DB'!*+'FI)'D'S(SIH'
Hama*o del !rea Nlas# de recuperación
DB!'A('FI)'D'S(
7uta para los arc#ios de datos gestionados por @racle" 6or defecto ale 1U'' y la ruta ser! la #abitual (segn el modelo @N0)"
DBFI)'S
;!imo nmero de arc#ios de base de datos que pueden ser abiertos por @racle
DBF)AS5!A!5'FI)'
7uta al arc#io del !rea Nlas# de recuperación
DBF)AS5!A!5'SIH'
Hama*o del arc#io anterior
S'SSI*NS
;!imo nmero de sesiones concurrentes permitidas
P*!'SS'S
;!imo nmero de procesos que puede lan2ar la base de datos
S5A'DS'+'S
1mero de procesos seridores a crear al iniciar la instancia"
)*G!5'!,P*IN(IN('+A)
8ontiene el nmero de bloques m!imos que se escriben en los redo log antes de que se produ2ca un c#ec>point
par!metro
alor
)*G!5'!,P*IN((I'*4(
nteralo en segundos m!imo que se de&a sin que se produ2ca un c#ec>point"
)*G!5'!,P*IN((*A)'(
ndica si los c#ec>points se graban en el arc#io de alertas
AXD4PFI)'SIH'
Hama*o m!imo en bloques del sistema operatio de los arc#ios de tra2a
BA!,G*4NDD4PD'S(
Destino del arc#io de alertas (alert lo) y de tra2a
4S'D4PD'S(
Destino de los arc#ios de tra2a sobre los procesos de usuario
)*GA!5I+'(A!'"
6ermite grabar en arc#ios de tra2ado la actiidad de los #istóricos redo log"
SGAAXSIH'
Hama*o m!imo de la SG0
SGA(AG'(
8on alor distinto de cero indica que el tama*o de la SG0 se gestionar! autom!ticamente si es cero la gestión es manual
S5A'DP**)SIH'
Hama*o del !rea compartida de la SG0
)AG'P**)SIH'
Hama*o del )are Pool
A+AP**)SIH'
tama*o del ool de Jaa
DB!A!5'SIH'
Hama*o de la cac#+ de bferes de datos
)*GB4FF'
Hama*o del bfer 7edo 'og"
DBB)*!,SIH'
Hama*o del bloque de @racle (de 3 a 53 )
DB,''P!A!5'SIH'
Hama*o del bfer de retención de bloques de datos del esquema en memoria
DB'!!)'!A!5'SIH'
Hama*o de la papelera de @racle
S('ASP**)SIH'
Hama*o del bfer para Streams 6uede ale manual o auto" Si elegimos manual podremos modificar los siguientes par!metros de uso de la 6G0-
6*,A'ASIH'P*)I!
par!metro
alor S*(A'ASIH' 5AS5A'ASIH' BI(AP'G'A'ASIH' !'A('BI(APA'ASIH'
*P'N!4S*S
1mero m!imo de cursores
ndica si @racle busca un arc#io de contrase*as" 6uede sersared (compartido por arias bases de datos), e:clusi"e '*(')*GINPASS6*DFI)' (solo se usa en una) o none (no se usa arc#io de contrase*as) N)S)ANG4AG'
'engua&e de la instancia de base de datos" Depende del Sistema @peratio (de la ariable de sistema N)S)ANG)" Solo se puede modificar para la sesión"
N)SDA('F*A(
Normato de fec#a
N)SN4'I!!5AA!('S
Normato nacional de nmeros
N)S!4'N!
Normato de moneda
;!s información en#ttps-..docs"oracle"com.cd.B3O5PM=/.serer"///.b3O53=.initparams"#tm
[%.%] diccionario de datos en *racle %n el caso de @racle, no utili2a el esquema est!ndar INF*A(I*NS!5'A para consultar el diccionario de datos, en su lugar usa una serie de istas que comien2an con estos t+rminos•
•
•
)SE! Las !istas "ue &omien$an *or esta *ala%ra muestran o%'etos "ue *ertene&en al usuario8a "ue 0a&e la &onsulta A%% Muestra o%'etos a los "ue el usuario tiene a&&eso ,sean o no de su *ro*iedad-. DBA Muestra todos los o%'etos de la %ase de datos
0sí 4S'(AB)'S es la ista que muestra todas las tablas del usuario actual" @tras istas son (disponibles con el prefi&o US%7M, DB0M o 0''M)-
Qistas est!ticas a usar con el prefi&o US%7M 0''M o Uso US%7M (AB)'S
;uestra todas las tablas accesibles desde nuestro usuario"
!*)4NS
;uestra las columnas de las tablas"
!*NS(AIN(S
7estricciones
!*)S!*NS(AIN(S
7estricciones indicando las columnas implicadas
+I'6S
Qistas
(IGG'S
'an2adores de código
S'74'N!'S
Secuencias
SN*NS
Sinónimos
(AB!*)4NS
8olumnas de las tablas
(P'S
Hipos definidos en la base de datos
+AAS
nformación sobre los datos de tipo +AA definidos en la base de datos
*B'!(S
@b&etos de esquema
!A(A)*G
'ista tablas, istas, sinónimos y secuencias
D'P'ND'N!I'S
'ista las dependencias de los procedimientos, funciones y triggers
(AB)'SPA!'S
Hablespaces
S'G'N(S
Segmentos
F''SPA!'
nformación sobre las etensiones libres en cada tablespace
'X('N(S
%tensiones
IND'X'S
[ndices
Qistas est!ticas a usar con el prefi&o US%7M 0''M o Uso US%7M IND'X(P'S
Hipos de índices
SSPI+S
'ista de priilegios de usuario
(ABPI+S
6riilegios de los ob&etos
*)'SSSPI+S
'ista de roles y priilegios
A4DI(S'SSI*NS
0uditoría de sesiones
F)AS5BA!,A!5I+'
0rc#ios del repositorio Nlas#bac>
F)AS5BA!,A!5I+'(AB)'S
Hablas marcadas para ser usadas en modo Nlas#bac>
F)AS5BA!,A!5I+'(S
Hablespaces almacenados en modo Nlas#bac>
4N4S'D!*)(ABS
8olumnas que est!n sin uso en la base de datos
4S(A(S
%stadísticas de usuario sobre el uso de los ob&etos por parte de los usuarios
'as siguientes istas est!ticas sólo est!n disponibles para los usuarios de tipo DB0Qista est!tica
Uso
DI!(I*NA
'ista de las istas del diccionario de datos
DBA4S'S
Usuarios de la base de datos
DBA*)'S
7oles de la base de datos
DBAP*FI)'S
6erfiles de usuario
DBA(S74*(AS
8uotas de los usuarios
DBADI'!(*I'S
@b&etos de directorio
DBADA(AFI)'S
0rc#ios de datos y pertenencia a los Hablespaces
DBA('PFI)'S
0rc#ios de los tablespaces temporales
Qista est!tica
Uso
DBA(AB)'SPA!'G*4PS
nformación sobre grupos de tablespaces
DBA('PF''SPA!'
Hotal de espacio libre en los tablespaces temporales
DBA*))BA!,S'GS
nformación sobre los segmentos de tipo 7ollbac>
DBA4ND*'X('N(S
%tensiones de los tablespaces de tipo des#acer
DBA5IS(4ND*S(A(
nformación #istórica mediante instant!neas ( snapshots) del uso del espacio de tipo des#acer
DBAPA((AB)'S
nformación sobre las tablas particionadas
DBA'!!)'BIN
nformación sobre las papeleras del sistema
DBA(5'S5*)D
Umbrales de alerta definidos
DBA*4(S(ANDINGA)'(S
'istado de alertas ecepcionales en la base de datos
DBAA)'(5IS(*
9istorial de alertas ya borradas
DBAB)*!,'S
Sesiones que est!n bloqueando ob&etos por cuyo uso otras sesiones est!n en estado de espera
DBA6AI('S
Sesiones en estado de espera por un ob&eto bloqueado
DBADD))*!,S
Bloqueos DD'
DBAD))*!,S
Bloqueos D;'
DBA)*!,S
Hodos los bloqueos
DBA'*S
%rrores almacenados en la base de datos
DBAA4DI(P*)I!I'S
6olíticas de auditoría
DBA*BA4DI(*P(
@pciones de auditoria de ob&etos
DBAIND!*)4NS
8olumnas de los índices
DBAINDS(A(S
%stadísticas sobre los índices en uso
DBA4)'S
7eglas de la base de datos
Qista est!tica
Uso
DBAS'+I!'S
Sericios de la base de datos
9ay otras istas que se generan din!micamente, es decir contienen información que a cambiando durante la e&ecución de la base de datos" Se las distingue porque comien2an con el teto +;Qistas din!micas
Uso
+;INS(AN!'
;uestra el estado de la instancia de la base de datos
+;PAA'('
'ista de los par!metros y sus alores actualmente en funcionamiento
+;s8stemarameter
6ar!metros del sistema
+;SPPAA'('
;uestra el alor de los par!metros en el arc#io S6N'% de par!metros actual
+;DA(ABAS'
nformación sobre la base de datos actia
+;S'SSI*N
Sesiones actias
+;P*!'SS
6rocesos actios
+;S'SSI*
8ontiene estadísticas de entrada.salida por cada usuario
+;S'SSI*N)*NG*PS
%stado de las operaciones que tardan m!s de seis segundos en e&ecutarse
+;SSS(A(
%stadísticas de la sesión
+;'S*4!')II(
nformación sobre el uso actual y m!imo disponible de cada recurso
+;S7)A'A
%stadísticas sobre el !rea compartida de S:' (en el Sared Pool de la SG0)
+;SGA
%stadísticas sobre la SG0
+;SGAINF*
Hama*o de los componentes de la SG0
+;SGAS(A(
nformación sobre el uso de los componentes de la SG0
Qistas din!micas
Uso
+;PGAS(A(
Uso de la 6G0
+;SGADNAI!!*P*N'N(S
Hama*os de los componente de la SG0 e información de la ltima operación reali2ada sobre ellos
+;SGADNAI!F'''*
nformación sobre la cantidad de memoria disponible para la SG0
+;SGA(AG'(AD+I!'
%stadísticas y aisos sobre el uso de la SG0
+;S7)6*,A'A
nformación sobre el uso del !rea para instrucciones S:' de la 6G0
+;S7)6*,A'AA!(I+'
nformación sobre el uso del !rea para instrucciones S:' de la 6G0 actia actual
+;!*N(*)FI)'
nformación sobre los arc#ios de control
+;!*N(*)FI)''!*DS'!(I*N
nformación sobre las secciones del registro de arc#io de control
+;)*G
nformación sobre los arc#io 7edo 'og
+;)*GFI)'
nformación sobre los grupos y miembros 7edo 'og
+;A!5I+'D)*G
nformación sobre los #istóricos (o arc#iados) redo log
+;A!5I+'D'S(
nformación sobre todos los destinos asignados al #istórico de 7edo 'og
+;A!5I+'P*!'SS'S
nformación sobre los procesos relacionados con el #istórico de redo 'og
+;)*G5IS(*
nformación #istórica sobre los redo 'og, secuencias, secuencias arc#iadas,L
+;(AB)'SPA!'
nformación sobre los Hablespaces
+;'N!P('D (AB)'SPA!'
nformación sobre los Hablespaces encriptados
+;DA(AFI)'
nformación sobre los arc#ios de datos
+;DA(AFI)'5'AD'
8abecera de los arc#ios de datos
Qistas din!micas
Uso
+;('PFI)'
nformación sobre los arc#ios temporales de datos
+;('PS'G4SAG'
Uso de los segmentos temporales por cada usuario
+;4ND*S(A(
%stadísticas sobre el uso de espacio para operaciones de des#acer
+;*))S(A(
nformación sobre el comportamiento de los segmentos de tipo des#acer (undo)
+;(ANSA!(I*N
nformación sobre los segmentos de tipo des#acer
+;DIAGINF*
nformación sobre arc#ios de tra2a
+;A)'((P'S
nformación sobre grupos y tipos de alertas
+;'(I!NA'
nformación sobre las m+tricas del sistema
+;'(I!
Qalores del sistema actuales para las m+tricas
+;'(I!5IS(*
nformación #istórica sobre las m+tricas definidas
+;)*!,
nformación sobre bloqueos del sistema
+;S'SSI*N6AI(
ndica el ltimo estado de espera de la sesión actual
+;S'SSI*N6AI(5IS(*
'ista de los /= ltimos eentos de espera por cada sesión actia
[%.-] arci"os de traJa 8 alerta %n @racle cada proceso en segundo plano puede tener asociado un arc#io de tra2a que ir! monitori2ando lo que le ocurre, y esto nos permitir! diagnosticar cada fallo" [%.-.1]arci"o de alerta =alert log >
7egistra de forma cronológica los errores ocurridos en la base de datos" %ntre los datos que registra, est!n• •
•
Errores internos? %lo"ueos de la instan&ia de Ora&le( datos &orru*tos(; O*era&iones de administra&i)n de la %ase de datos ,S(A!()*< S;)(D,9N( C!EA(E( A%(E! (..Modii&a&iones en los *ar/metros *rin&i*ales
[%.-.2]con&iuraci$n de los ar0metros relacionados
'os siguientes par!metros nos permiten tomar decisiones sobre el funcionamiento de estos arc#ios o consultar su alor par!metro
alor
DIAGN*S(I!D'S(
8ontiene la ruta del repositorio de diagnóstico autom!tico de @racle que es donde, por defecto, se almacenan los arc#ios de tra2a y el log de alertas
AXD4PFI)'SIH'
Hama*o en bloques del sistema operatio m!imo de los arc#ios log y de tra2a" 6or defecto es unlimited (sin límite)
BA!,G*4NDD4PD'S( Destino del log de alertas y de los arc#ios de tra2ado 4S'D4PD'S(
7uta a los arc#ios de tra2a que guardan información sobre los procesos de usuario
[%.-.3] "istas relacionadas en el diccionario de datos
ista
contenido
+;DIAGINF*
nformación sobre los arc#ios de tra2a
+;DIAG!I(I!A)'*
'ista de errores críticos designados por @racle
DBAA)'(5IS(*
9istorial de alertas
DBA*4(S(ANDINGA)'(S
'ista de alertas destacadas
+;A)'((P'S
Grupos y tipos de alertas
%n especial la primera ista es la que nos permite saber los arc#ios de tra2a en uso y la ubicación en la que se guardan, luego simplemente bastar! con eaminarles para monitori2ar el estado de la base de datos" 'as consultas m!s #abituales son•
Ruta al ar&0i!o de alerta ,en ormato ML,ELECT 9 8ROM -G.A_.O 4HERE na"e LIKE VWAlertWK
•
Ruta al ar&0i!o de tra$a de alerta ,ELECT 9 8ROM -G.A_.O 4HERE na"e ViaD raceK
UNIDAD J Administra&i)n de Usuarios en Ora&le Data%ase
[-.1] introducci$n Hodo acceso a una base de datos requiere conectar mediante un usuario y contrase*a" Dic#o usuario dar! derec#o a utili2ar ciertos ob&etos de la base de datos, pero tendr! restringido (salo que se trate de un superadministrador) el uso de otros" 0 los usuarios se les asigna una serie de ri"ileios que son los que dan permiso de uso a ciertos ob&etos" %stos priilegios suelen agruparse en lo que se conoce como roles, que permiten estructurar me&or los permisos que se conceden a los usuarios" %l er&il del usuario ser! el con&unto de permisos y restricciones que se aplican a dic#o usuario" 6or ello cuando un usuario conecta debe probar que es quien dice ser (normalmente mediante una contrase*a), es decir se autentifica" 6or otro lado esta autentificación dar! lugar a unos priilegios (unos derec#os) y unas restricciones Hodo lo que se eplica en esta unidad se refiere a la gestión de usuarios en la base de datos *racle 11"
[-.2] cuentas 8 ermisos administrati"os [-.2.1]cuentas administrati"as
Durante la instalación de @racle se instalan dos cuentas administratias y otras dos con permisos especiales para tareas de optimi2ación y monitori2ación de la base de datos•
•
•
•
SS. Ini&ialmente *osee la &ontrase7a C;AN1E,N'NS(A%% "ue( l)+i&amente( 0a# "ue &am%iar inmediatamente en la instala&i)n. SS toma rol de DBA ,es de&ir( de su*eradministrador- # es en su es"uema donde se &rea el di&&ionario de datos= *or lo "ue no &on!iene de nin+una manera &rear otro ti*o de elementos en su es"uema= es de&ir( el usuario SS no de%e &rear ta%las( ni !istas no nin+6n otro o%'eto de la %ase de datos. SS(E&. osee tam%i:n el rol DBA # se &rea durante la instala&i)n. Como antes( la &ontrase7a &ANA1E! "ue tiene *or dee&to se de%era &am%iar en la instala&i)n. En su es"uema se suelen &rear ta%las # !istas administrati!as ,*ero no se de%eran &rear otro ti*o de ta%las-. SS&AN. Usado *ara reali$ar tareas administrati!as &on la a*li&a&i)n Database Control del Enterprise &ana#er. DBS&N*7 Usuario "ue tiene *ermisos *ara monitori$ar Enter*rise Mana+er. [-.2.2]ri"ileios administrati"os
@racle posee dos priilegios de sistema asociados a tareas administratias, son•
SSDBA7 Con &a*a&idad de *arar e ini&iar ,instru&&iones S;)(D,9N # S(A!()*- la instan&ia de %ase de datos= modii&ar la %ase de datos , A%(E! DA(ABASE-( &rear # %orrar %ases de datos , C!EA(E # D!,* DA(ABASE-( Crear el ar&0i!o de *ar/metros ,C!EA(E S*$'%E-( &am%iar el modo de ar&0i!ado de la
•
%ase de datos( re&u*erar la %ase de datos # adem/s in&lu#e el *ri!ile+io de sistema !ES(!'C(ED SESS',N. En la *r/&ti&a sus &a*a&idades son las aso&iadas al usuario SS. SS,*E!7 ermite lo mismo "ue el anterior sal!o? &rear # %orrar la %ase de datos # re&u*erar en todas las ormas la %ase de datos ,0a# modos de re&u*era&i)n "ue re"uieren el *ri!ile+io anterior-.
'a ista +;P6FI)'4S'S nos permite eaminar a los usuarios administratios"
[-.3] roiedades de los usuarios de *racle 0 los usuarios de @racle se les puede asignar la configuración referida a•
•
•
• •
Nombre de usuario. No *uede re*etirse # &omo m/2imo de%e tener &ara&teres "ue s)lo *odr/n &ontener letras del ala%eto in+l:s( n6meros( el si+no d)lar # el si+no de +ui)n %a'o , -. Adem/s el nom%re no *uede &omen$ar &on un n6mero. Confi#uraci"n física. Se reiere al es*a&io aso&iado al usuario *ara alma&enar sus datos ,lo "ue Ora&le llama tablespace- # la &uota ,lmite de alma&enamiento"ue se le asi+na a di&0o usuario # mediante la "ue se esta%le&e el es*a&io m/2imo "ue el usuario *uede +astar en el ta%les*a&e. *erfil asociado. El *eril del usuario indi&a los re&ursos # &oni+ura&i)n "ue tomar/ el usuario al sistema *rivile#ios 0 roles. ermiten es*e&ii&ar los *ermisos "ue *osee el usuario. Estado de la cuenta de usuario? o Abierta. El usuario *uede &one&tar # reali$ar sus a&&iones 0a%ituales o Bloqueada. El usuario no *odr/ &one&tar mientras si+a en estado %lo"ueado. El %lo"ueo lo reali$a el DBA? o A%(E! )SE! usuario ACC,)N( %,Co Expirada. La &uenta a+ot) el tiem*o m/2imo asi+nado a ella. ara salir de este estado( el usuario8a de%e resetear su &ontrase7a de usuario. o Expirada 0 bloqueada. o Expirada en periodo de #racia . Est/ en los 6ltimos momentos de uso antes de *asar a estado de e2*irada
[-.%] autenti&icaci$n 'a autentificación define la forma en la que el usuario erifica qui+n es" 9ay m+todos de autentificación m!s seguros que otros" 0segurar la autentificación implicaría asegurar el medio la comunicación entre usuario y base de datos con protocolos de cifrado" 6or otro lado #ay que proteger especialmente a los usuarios administradores" [-.%.1]autenti&icaci$n or el sistema oerati"o
Se permite el uso sólo en usuarios con priilegios administratios" %n el sistema operatio en el que se instale @racle se crean dos ruos de usuarios relacionados con los dos priilegios de sistema SDBA y SS*P' " %n Kindows se llaman *ADBA y *A*P' respectiamente, en 'inu normalmente son d#a y oer"
'os usuarios de esos grupos conectarían mediante !*NN'!( / AS SSDBA o !*NN'!( / AS SS*P' " @tra posibilidad es conectar conCONNECT / JsericioRed A, ,Y,BA
%n este caso usamos los priilegios del sistema operatio para conectar con una base de datos remota cuyo nombre de sericio de red se indique" %sta forma sólo ale para m!quinas dentro de un dominio Kindows" [-.%.2]autenti&icaci$n or arci"o de contraseas
Se usa tambi+n para usuarios administratios, especialmente cuando no se confía la autentificación ista en el apartado anterior" 6ara usar esta forma de autentificación los usuarios de tipo SVSDB0 o SVS@6%7 indican su nombre de usuario y contrase*a al conectar (opcionalmente indican el #ost y.o nombre de sericio al que se desean conectar) esos datos se contrastar!n con los del arc#io de contrase*as utili2ado" %sta forma (y la anterior) permite conectar la base de datos aunque no est+ montada todaía la base de datos" 'a utilidad *AP6D permite crear, si no eiste, el arc#io de contrase*asORAP4 8ILE6 ruta ENTRIE,6 n 8ORCE6: P%INORECA,E6: P%QQQ
Nuncionamiento• • •
•
$'%E. ermite indi&ar el nom%re del ar&0i!o de &ontrase7as EN(!'ES. Indi&a el m/2imo n6mero de &ontrase7as "ue admitir/ el ar&0i!o $,!CE. En &aso de darle el !alor y ,de #es( s- so%res&ri%e las &ontrase7as &uando asi+nemos una nue!a a un usuario administrati!o '1N,!ECASE. No tiene en &uenta ma#6s&ulas ni min6s&ulas en las &ontrase7as.
6or otra lado el par!metro de sistema '*(')*GINPASS6*DFI)' (modificable con el comando A)(' SS(' S'(L) permite indicar la forma en la que funciona el arc#io de contrase*as" Qalores posibles•
• •
N,NE. No *ermite usar el ar&0i!o de &ontrase7as( las &one2iones de usuarios &on *ri!ile+ios administrati!os tendr/n "ue usar otros m:todos. E5C%)S'6E. El ar&0i!o de &ontrase7as se usa s)lo en la instan&ia a&tual. S;A!ED? Se &om*arte el ar&0i!o de &ontrase7as entre !arias instan&ias de ti*o !eal Application Cluster de Ora&le ,*ara %ases de datos distri%uidas-. En este &aso no se *ueden &am%iar las &ontrase7as de los usuarios administrati!os. [-.%.3]autenti&icaci$n or contrasea en el diccionario de datos
%s la forma #abitual de autentificarse de los usuarios normales (los que no son administradores)" %n este caso los usuarios son autentificados mediante una contrase*a que se contrastar! en el diccionario de datos, que es donde se almacenan estas contrase*as" %st! configuración requiere la base de datos montada y abierta (al tener que usar el diccionario de datos)" 'a contrase*a se pasa encriptada desde el ordenador cliente al seridor mediante el algoritmo A'S" [-.%.%]autenti&icaci$n e:terna
@racle delega la autentificación a un sericio eterno que se asociar! a @racle" %&emplos de sericios eternos son ,er#eros o ADI4S, este ltimo sólo disponible en Kindows" 7equiere el uso de las me&oras de seguridad aan2ada de @racle" [-.%.-]autenti&icaci$n lo#al
Se trata de utili2ar un sericio 'D06 para reali2ar la autentificación" @racle dispone de un sericio 'D06 global integrado en *racle Alications (plataforma de @racle para le creación de aplicaciones) que se llama *racle Internet Director8" Si los usuarios sólo est!n dados de alta en el directorio eterno, usar!n todos la misma cuenta de @racle$ para independi2arles se requiere darles de alta en ambos sericios (*racle y el *racle Internet Director8)"
[-.-] control de usuarios en *racle [-.-.1]creaci$n de usuarios en *racle
'a sentencia de creación de usuarios (que es compatible con S:' est!ndar) es no"bre IENTI8IE BY contraseIa *opciones + CREATE U,ER
%l formato completo de la instrucción con todas sus cl!usulas es no"bre -IENTI8IE BY contraseIa . CREATE U,ER E5TERNALLY . LOBALLY A, no"brelobal *E8AULT TABLE,PACE tableSpace5ore=ecto + *TEMPORARY TABLE,PACE tableSpacete"poral + *QUOTA -cantidad *K.M+ . UNLIMITE ON tablespace *QUOTA -cantidad *K.M+ . UNLIMITE ON tablespace *<++ + *PA,,4OR E5PIRE+ *ACCOUNT -UNLOCK.LOCK+; *PRO8ILE - per=il P E8AULT U+
Sólo la primera línea es obligatoria, el resto posee opciones por defecto que se aplican si no se especifica cada apartado (no #ace falta especificar todos, sólo las líneas que nos interesen)"
%&emplo 4sanc%eX IENTI8IE BY Caracola CREATE U,ER E8AULT TABLE,PACE Fsuarios QUOTA 197 ON Fsuarios //Se dan 197B2tes de espacio en el tablespace ACCOUNT LOCK; //La cuenta estar6 bloueada
'a contrase*a, si no se usan comillas dobles, no puede tener ni espacios en blanco ni caracteres nacionales como la e*e" %n caso de querer usar estos símbolos se usan comillas dobles, lo que permitir! establecer contrase*as m!s comple&as" [-.-.2]modi&icaci$n de usuarios
8ada par!metro indicado anteriormente se puede modificar mediante la instrucción A)(' 4S' que se utili2a igual que !'A(' 4S' " %&emplo 4sanc%eX QUOTA UNLIMITE ON usuarios ALTER U,ER
[-.-.3]#orrado de usuarios
Se reali2a medianteROP U,ER usuario *CA,CAE+
'a opción !AS!AD' elimina los ob&etos del esquema del usuario antes de eliminar al propio usuario" %s obligatorio si el esquema contiene ob&etos"\ [-.-.%]consultar usuarios
'a ista administratia DBA4S'S muestra la lista y configuración de todos los usuarios del sistema" 6ara obserar la estructura de la ista, siempre es coneniente usar D%S87B% DB0MUS%7S con el fin de consultar las columnas que nos interesen m!s
[-.] control de ri"ileios en *racle 'os priilegios son permisos que damos a los usuarios para que puedan reali2ar ciertas operaciones con la base de datos" %n @racle #ay m!s de cien posibles priilegios" Se diiden en•
•
*rivile#ios de sistema. Son *ermisos *ara modii&ar el un&ionamiento de la %ase de datos. Son &am%ios( en deiniti!a( "ue ae&tan a todos los usuarios # usuarias. *rivile#ios de objeto. Son *ermisos "ue se a*li&an a un o%'eto &on&reto de la %ase de datos. [-..1]ri"ileios de sistema
Se comentan algunos de los priilegios de sistema m!s importantes
6riilegio
Significado
!'A(' S'SSI*N
6ermite al usuario conectar con la base de datos 6ermite al usuario establecer sesión con la base de datos en caso de que la base de datos est+ en modo restringido mediante la instrucción-
A)(' SS(' 'NAB)' 'S(I!('D 'S(I!('D S'SSI*N S'SSI*N
Sólo los usuarios con este priilegio puede conectar con la base de datos si +sta se encuentra en este modo" A)(' DA(ABAS'
6ermite modificar la estructura de la base de datos
A)(' SS('
6ermite modificar los par!metros y ariables del sistema
!'A(' (AB)'
6ermite crear tablas" ncluye la posibilidad de borrarlas"
GAN( AN *B'!( PI+I)'G'
6ermite conceder priilegios sobre ob&etos que no son del usuario (pertenecen a otros usuarios) a terceros usuarios"
!'A(' AN (AB)'
6ermite crear tablas en otros esquemas de usuario
D*P AN (AB)'
6ermite borrar tablas de otros usuarios
S')'!( AN (AB)'
6ermite seleccionar datos en tablas de otros usuarios
INS'( AN (AB)'
6ermite a*adir datos en tablas de otros usuarios
4PDA(' AN (AB)'
6ermite eliminar datos en tablas de otros usuarios
D')'(' AN (AB)'
6ermite eliminar datos en tablas de otros usuarios
%n la tabla anterior se #a #ec#o #incapi+ en los priilegios referidos a las tablas, para otros ob&etos el funcionamiento es similar- igual que #ay !'A(' (AB)', se puede usar !'A(' +I'6 para las istas o IND'X, (IGG' , P*!'D4', S'74'N!', SN*N, (P',L y de esa forma podemos conceder priilegio de creación de otros ob&etos" 'o mismo con el resto de operaciones 9ay dos priilegios especiales que permiten conceder niel de DB0, son- SSDBA y SS*P' " Se #an comentado anteriormente" 'a lista completa de priilegios es-
6riilegio
Significado
Sesiones A)(' S'SSI*N
;odificar el funcionamiento de la sesión
A)(' 'S*4!' !*S(
;odifica los par!metros de c!lculo de coste de la sesión
'S(I!('D S'SSI*N
8onectar aunque la base de datos se #aya iniciado en modo restringido
Base de datos y sistema A)(' DA(ABAS'
;odificar la base de datos (priilegio de gran capacidad administratia)
A)(' SS('
;odificar los par!metros del sistema
A4DI( SS('
0uditar la base de datos
Usuarios, roles, priilegios y perfiles !'A(' 4S'
8rear usuarios pudiendo indicar tablespace por defecto, cuotas y perfiles
A)(' 4S'
;odificar al usuario" 6ermite cambiar la contrase*a y modo de autentificación, tablespace por defecto, cuota de uso de disco, roles y el perfil del usuario
D*P 4S'
Borrar usuario
!'A(' P*FI)'
8rear perfiles
A)(' P*FI)'
;odificar perfiles
D*P P*FI)'
Borrar perfiles
!'A(' *)'
8rear roles
A)(' AN *)'
;odificar roles
GAN( AN *)'
8onceder roles
GAN( AN PI+I)'G'
8onceder priilegios de sistema
6riilegio
Significado
Directorios !'A(' AN DI'!(*
8rear directorios
D*P AN DI'!(*
Borrar directorios
Hablespaces (espacios de tabla) !'A(' (AB)'SPA!'S
8rear tablespaces
A)(' (AB)'SPA!'
;odificar tablespaces
D*P (AB)'SPA!'
Borrar tablespaces
ANAG' (AB)'SPA!'
0dministrar el espacio de tablas para poder #acer copia de seguridad o simplemente quedar online u offline el tablespace
4N)II('D (AB)'SPA!'
Usa cuota ilimitada al escribir en cualquier tablespace" %ste priilegio elimina las cuotas establecidas sobre el usuario, si las #ubiera"
Hablas !'A(' (AB)'
8rear tablas en el esquema del usuario, incluye insertar, modificar y eliminar datos de la misma$ así como eliminar la propia tabla
A)(' AN (AB)'
;odificar tablas de cualquier usuario
BA!,4P AN (AB)'
Utili2ar la utilidad ':ort para copiar datos de otros esquemas"
!'A(' AN (AB)'
8rear tablas en cualquier esquema
D')'(' AN (AB)'
Borrar filas de tablas en cualquier esquema
D*P AN (AB)'
Borrar tablas en cualquier esquema
INS'( AN (AB)'
0*adir datos a cualquier tabla
S')'!( AN (AB)'
Seleccionar datos de tablas en cualquier esquema
4PDA(' AN (AB)'
;odificar datos de tablas de cualquier esquema
6riilegio
Significado
)*!, AN (AB)'
Bloquear tablas, istas e instant!neas en cualquier esquema
F)AS5BA!, AN (AB)'
7eali2ar acción de flas#bac> en tablas, istas e instant!neas en cualquier esquema
Qistas !'A(' +I'6
8rear istas en el esquema del usuario
!'A(' AN +I'6
8rear istas en cualquier esquema
D*P AN +I'6
Borrar cualquier ista en cualquier esquema
4ND' AN +I'6
8rear subistas
nstant!neas (Snaps#ots o istas materiali2adas) !'A(' A('IA)IH'D +I'6
8rear istas materiali2adas (instant!neas)
!'A(' AN A('IA)IH'D +I'6
8rear istas materiali2adas (instant!neas) en cualquier esquema
A)(' AN A('IA)IH'D +I'6
;odificar istas materiali2adas (instant!neas) en cualquier esquema
D*P AN A('IA)IH'D +I'6
Borrar istas materiali2adas (instant!neas) en cualquier esquema
G)*BA) 74' '6I('
6ermite reali2ar operaciones de lectura escritura en instant!neas que usan tablas de otros esquemas
!'A(' SNAPS5*(
8rear instant!neas (obsoleto)
A)(' AN SNAPS5*(
;odificar instant!neas de cualquier usuario (obsoleto)
!'A(' AN SNAPS5*(
8rear instant!neas a cualquier usuario (obsoleto)
6riilegio
Significado
D*P AN SNAPS5*(
Borrar instant!neas (obsoleto)
6'.S:' !'A(' P*!'D4' 8rear procedimientos y funciones 6'.S:' A)(' AN P*!'D4'
;odificar procedimientos y funciones de cualquier usuario
!'A(' AN P*!'D4'
8rear funciones y procedimientos en cualquier esquema
D*P AN P*!'D4'
Borrar cualquier procedimiento en cualquier esquema
'X'!4(' AN P*!'D4'
%&ecutar cualquier procedimiento en cualquier esquema
!'A(' (IGG'
8rear triggers
A)(' AN (IGG' ;odificar triggers de cualquier usuario !'A(' AN (IGG'
8rear triggers en cualquier esquema
D*P AN (IGG'
Borrar triggers de cualquier esquema
ADINIS(' 8rear triggers de sistema (requiere adem!s el priilegio !'A(' DA(ABAS' (IGG' (IGG' ) !'A(' )IBA
8rear librerías de procedimientos y funciones en el esquema de usuario
!'A(' AN )IBA
8rear librerías de procedimientos y funciones en cualquier esquema
D*P AN (IGG'
Borrar cualquier trigger
D*P )IBA
Borrar librería de procedimientos y funciones en el esquema de usuario
D*P AN )IBA
Borrar librerías de procedimientos y funciones en cualquier esquema
'X'!4(' AN
%&ecutar cualquier librería
6riilegio
Significado
)IBA
Hipos de datos !'A(' (P'
8rear tipos de datos personales
A)(' AN (P'
;odificar tipos de datos personales en cualquier usuario
!'A(' AN (P'
8rear tipos de datos en cualquier esquema
D*P AN (P'
Borrar tipos de datos de cualquier esquema
'X'!4(' AN (P'
6ermite inocar a tipos de datos personales presentes en cualquier esquema
[ndices A)(' AN IND'X
;odificar índices de la base de datos (incluye modificar claes primarias, secundarias,L)
!'A(' AN IND'X
8rear índices en cualquier esquema
D*P AN IND'X
Borrar índices en cualquier esquema
Secuencias y sinónimos A)(' AN S'74'N!'
;odificar secuencias de cualquier usuario
!'A(' AN S'74'N!'
8rear secuencias en cualquier esquema
!'A(' AN SN*N
8rear sinónimos en cualquier esquema
!'A(' S'74'N!'
8rear secuencias
!'A(' SN*N
8rear sinónimos
!'A(' P4B)I! SN*N
8rear sinónimos pblicos
D*P P4B)I! SN*N
Borrar sinónimos pblicos
6riilegio
Significado
!'A(' AN S'74'N!'
8rear secuencias en cualquier esquema
D*P AN S'74'N!'
Borrar secuencias en cualquier esquema
D*P AN SN*N
Borrar sinónimos en cualquier esquema
S')'!( AN S'74'N!'
Seleccionar cualquier secuencia de cualquier esquema
8lusters !'A(' !)4S('
8rea y modifica clusters en el esquema actual
A)(' AN !)4S(' ;odificar clusters !'A(' AN !)4S('
8rear clusters en cualquier esquema
D*P AN !)4S('
Borrar cualquier cluster
Segmentos de rollbac> !'A(' *))BA!, S'G'N(
8rear segmentos de rollbac>
A)(' *))BA!, S'G'N(
;odificar segmentos de rollbac>
D*P *))BA!, S'G'N(
Borrar segmento de rollbac>
%nlaces a base de datos !'A(' DA(ABAS' )IN,
8rear enlaces priados a bases de datos en el esquema del usuario
!'A(' P4B)I! DA(ABAS' )IN,
8rear enlaces pblicos a bases de datos
!'A(' DA(ABAS' )IN,
;odificar enlaces priados a bases de datos
6riilegio
Significado
!'A(' P4B)I! DA(ABAS' )IN,
;odificar enlaces pblicos a bases de datos
D*P P4B)I! DA(ABAS' )IN,
Borrar enlaces pblicos a bases de datos
6rogramación de tareas !'A(' *B
8rear traba&o planificado en el esquema actual
!'A(' AN *B
8rea, modifica y elimina tareas, programas y credenciales de cualquier esquema (ecepto SVS)" %sto permite e&ecutar código en cualquier esquema de cualquier usuario"
!'A(' 'X('NA) *B
8rear un traba&o en el esquema de usuario procedente del planificador de tareas del sistema operatio
'X'!4(' AN P*GA
%&ecutar cualquier programa presente en un traba&o planificado del esquema de usuario"
'X'!4(' AN !)ASS 0signar cualquier clase a un trba&o en el esquema de usuario" ANAG' S!5'D4)'
0dministrar el planificador de tareas,
Qarios ANA)H' AN
0nali2ar cualquier tabla, clster o índice en cualquier esquema"
ANA)H' AN DI!(I*NA
0nali2ar cualquier elemento del diccionario de datos
S')'!( AN DI!(I*NA
7eali2ar S%'%8H sobre las istas del diccionario de datos
A4DI( AN
0uditar a cualquier ob&eto de la base de datos
B'!*' 4S'
8onertirse en otro usuario al utili2ar algunas de las utilidades de @racle
!*'N( AN (AB)'
7eali2ar comentarios sobre tablas, columnas y istas en cualquier esquema de la base de datos
S')'!( AN
Seleccionar los datos de la ista
6riilegio (ANSA!(I*N
Significado F)AS5BA!,(ANSA!(I*N74' que controla el proceso de la
actual operación flas#bac>"
F*!' AN (ANSA!(I*N
Nor2ar aceptar (!*I() las transacciones en duda en un sistema distribuido de bases de datos en cualquier coneión
F*!' (ANSA!(I*N
Nor2ar aceptar (!*I() la transacción actual en caso de duda"
SSDBA
6riilegio general de administrador
Qarios SS*P'
6riilegio general de administrador (m!s ba&o que el anterior)
F)AS5BA!, A!5I+' ADINIS('
8rea, elimina o modifica cualquier arc#io de flas#bac>
D'B4G !*NN'!( S'SSI*N
8onectar la sesión a un depurador
D'B4G AN P*!'D4'
8onectar procedimientos, funciones y.o código Jaa a un depurador
[-..2]conceder ri"ileios
Se usa con la instrucción G701H que funciona asíRANT priileDio1 *7priileDio$ *7<++ TO usuario *4ITH AMIN OPTION+;
'a opción 6I(5 ADIN *P(I*N permite que el usuario al que se le concede el priilegio puede conceder dic#o priilegio a otros usuarios" %s, por tanto, una opción a utili2ar con cautela" %&emploCREAE SESS.O, ALER SESS.O, CREAE ABLE, RANT CREAE -.E;, CREAE S<O<7, CREAE SEHFECE, CREAE R.ER, CREAE 5ROCEFRE, CREAE <5E TO 4sanc%eXK
[-..3]re"ocar ri"ileios
7etira priilegios concedidos a un usuario" Se reali2a con la instrucción '+*,' que funciona de esta formaREVOKE priileDio1 *7priileDio$ *7<++
8ROM usuario ;
0l reocar los priilegios, las acciones lleadas a cabo con ellos (borrar, modificar,L) no se anulan" [-..%]ri"ileios de o#eto
'as instrucciones istas anteriormente otorgan o quitan permisos generales, es decir dictan qu+ operaciones, en general, puede reali2ar un usuario" 'os priilegios de ob&eto marcan qu+ operaciones le est!n permitidas a un usuario reali2ar sobre el ob&eto SintaisRANT -priileDio *(listaColu"nas )+ *7priileDio *(listaColu"nas )+ *7<++ . ALL *PRIVILEE,+ ON *esue"a =+ob4eto TO -usuario . rol . PUBLIC *7- usuario . rol . PUBLIC * ,@++ *4ITH RANT OPTION+
'a opción A)) concede todos los priilegios posibles sobre el ob&eto" Se pueden asignar arios priilegios a la e2 y tambi+n arios posibles usuarios" 'a opción 6I(5 GAN( *P(I*N permite al usuario al que se le conceden los priilegios, que pueda, a su e2, conceder esos mismos priilegios a otro usuario" %&emplo de uso de G701H con priilegios de ob&etoRANT UPATE7 IN,ERT ON 4sanc%eX#personas TO anoXal;
%n la siguiente tabla se enumeran los posibles priilegios que se pueden aplicar a un determinado ob&eto6riilegio
0plicable a
S')'!(
Hablas, istas, instant!neas, secuencias
INS'(
Hablas, istas,
4PDA('
Hablas, istas
D')'('
Hablas, istas
A)('
Hablas, secuencias
'X'!4('
6rocedimientos, funciones, paquetes, sinónimos, programas en directorios
6riilegio
0plicable a
IND'X
Hablas (para crear índices en la misma)
'F''N!'S
Hablas (para crear claes secundarias, F*'IGN ,')
4ND'
Qistas, para crear subistas
D'B4G
Depurar procedimientos y funciones mediante programa eterno
*N !*I( 'F'S5
0ctuali2ar la ista materiali2ada (o instant!nea) al reali2ar un 8@;;H
74' '6I('
%scribir en la ista materiali2ada (o instant!nea)
'AD
Directorios
6I('
Directorios
F)AS5BA!, A!5I+'
0rc#ios de datos flas#bac> (actiar o desactiar)
[-..-]
6ara #acerlo, la sintais esREVOKE -priileDio1 *7priileDio$ + *7<++ . ALL *PRIVILEE,+ ON *esue"a =+ob4eto 8ROM -usuario . rol . PUBLIC *7- usuario . rol . PUBLIC * ,@++ *CA,CAE CON,TRAINT,+
!AS!AD' !*NS(AIN(S elimina cualquier restricción que impida el borrado del priilegio"
Sólo puede reocar los priilegios de ob&eto concedidos, el usuario que concedió dic#os priilegios" [-..]mostrar in&ormaci$n so#re ri"ileios
'as istas que permiten mostrar información sobre priilegios sonQista
Significado
DBASSPI+S
6riilegios de sistema asignados a usuarios y roles
DBA(ABPI+S
'ista de todos los priilegios de todos los ob&etos de la base de datos
DBA!*)PI+S
'ista de todos los priilegios aplicados a columnas de la base de datos
Qista
Significado
S'SSI*NPI+S
6riilegios en actio para el usuario y sesión actuales
4S'SSPI+S
6riilegios de sistema asignados al usuario
4S'(ABPI+SAD'
6riilegios de ob&eto asignados a los ob&etos del usuario actual
4S'(ABPI+S'!D
6riilegios de ob&eto (de otros usuarios) concedidos al usuario actual
4S'!*)PI+SAD'
6riilegios de ob&eto asignados a columnas de ob&etos del usuario actual
4S'!*)PI+S'!D
6riilegios asignados a columnas de ob&etos (de otros usuarios) y concedidos al usuario actual
[-..U]administraci$n de roles en *racle
'os roles son priilegios aglutinados sobre un mismo nombre, ba&o la idea de que ese con&unto denote un uso #abitual sobre la base de datos" Gracias a los roles se facilita la asignación de priilegios a los usuarios" Un usuario puede tener asignados arios roles y iceersa" [-..O]creaci$n de roles
'os roles se crean usando esta sintais CREATE ROLE rol *NOT IENTI8IE . IENTI8IE -BY passord . E5TERNALLY . LOBALLY . U,IN pacaDe+;
'a opción ID'N(IFI'D #ace que el rol sólo pueda utili2arse si el usuario se identifica con el m+todo que indiquemos en esta instrucción" 'as formas de identificarse son las mismas formas que se utili2an al identificar un usuario (istas anteriormente), salo que a#ora disponemos de una nuea- la opción PA!,AG' que #ace que el rol sólo se pueda utili2ar si usamos el paquete de aplicaciones indicado" 6or defecto un rol no requiere identificación" [-..]modi&icaci$n de roles
Disponemos de la instrucción A)(' *)' permite modificar la configuración del rol" Hiene las mismas opciones que !'A(' *)' y sólo se usa si deseamos establecer un nueo m+todo para autentificarnos" [-..1C]asinar 8 retirar ri"ileios a roles
Se reali2a con la instrucción GAN( y se usa igual que cuando establecemos permisos a los usuarios, en la sintais de los comandos G701H y 7%Q@% istas anteriormente, simplemente se indicaría un
nombre de rol en lugar de un nombre de usuario" 6or e&emplo si deseamos asignar los priilegios .R6+<6 <+BL6 y .7;;6.< a un rol llamado rol!" Se #aríaRANT CREAE ABLE, COEC TO rol1K
De la misma forma, podemos quitar priilegios asignados a un rol mediante el comandol 7%Q@% rol1K REVOKE CREAE ABLE 8ROM
[-..11]asinar roles a usuarios
'a sintais completa para asignar roles a un usuario esRANT rol1 *7rol$ *7<++ TO -usuario .rol.PUBLIC *7-usuario .rol.PUBLIC *7@+ *4ITH AMIN OPTION+
0l igual que en las instrucciones anteriores, P4B)I! asigna el rol a todos los usuarios y 6I(5 ADIN *P(I*N permite al usuario al que se le concede el rol, conceder +l dic#o rol a otros usuarios.as" [-..12]roles or de&ecto
'os usuarios tienen una serie de roles por defecto, estos son aquellos roles que an unidos al usuario, de modo que en cuanto un usuario lan2a una sesión, los priilegios que contienen sus roles por defecto, comien2an a funcionar" 8uando asignamos un rol mediante el comando G701H, este pasa a ser un rol por defecto" [-..13]roles rede&inidos
@racle dispone de una serie de roles predefinidos que se pueden asignar a los usuarios" 9ay m!s de cincuenta roles predefinidos" 'os cl!sicos sonrol
significado
!*NN'!(
6ermite crear sesiones" Se mantiene por compatibilidad
'S*4!'
6ermite crear tablas y código 6'.S:' del tipo que sea" Se mantiene por compatibilidad
DBA
6ermite casi todo, ecepto mane&ar la instancia de la base de datos
[-..1%]acti"ar 8 desacti"ar roles
1o todos los roles aparecen actiados" 6ara saber los roles que est!n actiados en una sesión de usuario, bastar! con consultar el contenido de la ista S'SSI*N*)'S"
0l iniciar sesión cada usuario tendr! actiados los priilegios que se le asignaron eplícitamente y los roles por defecto" 'a actiación (y tambi+n la desactiación) de un rol se reali2a mediante S'( *)' (sólo podemos actiar y desactiar roles que el usuario tenga asignados mediante la instrucción G701H)" Su sintais es,ET ROLE - rol1 *IENTI8IE BY contraseIa + *7rol$ *IENTI8IE BY contraseIa + *7<++ . ALL *E5CEPT rol1 *7rol$ *7<+++ . NONE K
'as posibilidades son•
•
•
Indi&ar una lista de roles "ue ser/n los "ue se a&ti!en ,se usa &uando se 0a%an desa&ti!adoIndi&ar A%% *ara a&ti!ar todos los roles( e2&e*to a"uellos "ue se indi"uen en la &l/usula E5CE*( "ue "uedar/n sin a&ti!ar. N,NE desa&ti!a todos los roles ,in&luido el rol *or dee&to-. S)lo "uedar/n a&ti!ados los *ri!ile+ios indi!iduales mar&ados e2*l&itamente.
'a actiación y desactiación sólo sire para la sesión actual, en la siguiente sesión oler!n a estar actiados sólo los roles por defecto" [-..1-]asinar a un usuario un rol or de&ecto
8uando se crea un usuario mediante !'A(' 4S' , no disponemos de la posibilidad de asignar un rol por defecto" De #ec#o se le asigna autom!ticamente la opción A)) que #ace que todos los roles que se le asignen en el futuro (mediante G701H) pasar!n a ser roles por defecto" 6or ello la instrucción que administra los roles por defecto es A)(' 4S' usuario ALTER U,ER E8AULT ROLE - rol1 ,rol$ ,@Q . ALL *E5CEPT rol1 ,rol$,@QQ P NONE +K
'a opción 0'' coloca a todos los roles como roles por defecto, %48%6H especifica una lista de roles que no ser!n colocados como roles por defecto" 1@1% #ace que no #aya ningn rol por defecto" Ninalmente podemos simplemente especificar la lista de roles que quedar!n como roles por defecto" [-..1]#orrar roles
'o #ace la instrucción D*P *)', seguida del rol a borrar" Desde ese momento a los usuarios a los que se #abían asignado el rol se les reoca" [-..1U]in&ormaci$n so#re roles en el diccionario de datos
%isten arias istas para eaminar los roles"
Qista
Significado
DBA*)'S
;uestra todos los roles de la base de datos
DBA*)'SPI+S
7oles asignados a los usuarios
*)'*)'PI+S
7oles asignados a otros roles
DBASSPI+S
6riilegios de sistema asignados a usuarios y roles
*)'SSPI+S
6riilegios de sistema asignados a roles
*)'(ABPI+S
6riilegios de ob&eto concedidos a roles
S'SSI*N*)'S
7oles en actio para el usuario actual
[-.U] administraci$n de er&iles de *racle 'os perfiles permiten limitar los recursos que los usuarios usan de la base de datos" 9ay un perfil llamado D'FA4)( que se aplica autom!ticamente a todos los usuarios y que les da recursos ilimitados sobre la base de datos" 6ara limitar el nmero de recursos se debe de actiar (poni+ndola el alor (4'> la ariable de sistema 'S*4!')II( (que por defecto est! a FA)S')" %sto se #ace así ALTER ,Y,TEM ,ET RESOFRCE_L.7.RFEK
%n realidad #ay dos tipos de par!metros de los perfiles•
*erfiles de manejo de contraseas ( "ue +estionan el un&ionamiento de las &ontrase7as *ara el usuario.
Qariable de perfil
Significado
FAI)'D)*GINA(('P(S
1mero consecutio de errores en las contrase*as antes de bloquear la cuenta" 6or defecto son /=
PASS6*D)*!,(I'
1mero de días #asta que se bloquea una cuenta si se supera el límite de intentos al meter una contrase*a" 6or defecto es uno
PASS6*D)IF'(I'
1meros de días que tiene igencia una contrase*a" 6or defecto es /O=
PASS6*DGA!'(I'
Días que la contrase*a se la concede un periodo etra de gracia tras consumir su tiempo de ida" 6or defecto es <
Qariable de perfil PASS6*D'4S'(I'
Significado 1mero de días que una contrase*a puede ser reutili2ada
Nunción a la que se inoca cuando se modifica una contrase*a PASS6*D+'IFF4N!(I*N con el fin de erificar su alide2 en base a las reglas de comple&idad que deseemos Per&iles relacionados con el uso de recursos" %stablecen el m!imo o mínimo uso de recursos de la
base de datos por parte del usuario" Qariable de perfil
Significado
S'SSI*NSP'4S'
1mero de coneiones de usuario concurrentes que se permiten"
!P4P'S'SSI*N
'ímite de tiempo (en cent+simas de segundo) que se permite a un usuario utili2ar la 86U antes de ser ec#ado del sistema" De esa forma se eitan peligros de rendimiento
!P4P'!A))
8omo la anterior pero referida a cada proceso
PI+A('SGA
6ara coneiones en instalaciones de seridor compartido, nmero de B que puede consumir cada sesión en la 2ona de memoria compartida (SGA)
!*NN'!((I'
;inutos como m!imo que se permite a una sesión
ID)'(I'
;inutos m!imos de inactiidad de una sesión
)*GI!A)'ADSP'S'SSI*N ;!imo nmero de bloques leídos en una sesión )*GI!A)'ADSP'!A))
;!imo nmero de bloques leídos por un proceso
!*P*SI(')II(
;!imo nmero de recursos consumidos por una sesión" %s la media ponderada de arios par!metros anteriores
crear perfiles SintaisCREATE PRO8ILE per=il LIMIT par6"etro1 alor1 *para"etro$ alor *###++