Documentos de Académico
Documentos de Profesional
Documentos de Cultura
F Febrer ro - 20 009
Contacto
Email: gcoronelc@gmail.com Telfono: (511) 996-664-457 Lima - Per
Contenido
Leccin 01: Arquitectura de la Base de Datos Oracle 10g
Arquitectura de Oracle 10g ..................................................................................................................... 2 La Instancia de Oracle............................................................................................................................. 3 La Base de Datos de Oracle ................................................................................................................... 4
III
IV
Leccin 01
Arquitectura de la Base de Datos Oracle 10g
Contenido Arquitectura de Oracle 10g Esquema General Esquema Ampliado 2 2 3 4 4 5 7 9
La Instancia de Oracle Estructuras en Memoria El System Global Area (SGA) Procesos de Fondo
Por cada a instancia de d Oracle se e tiene una sola base de datos, en un servidor se puede en crear varias instanc cias, pero se s recomien nda solo un na, porque cada instan ncia consum me muchos recursos. r
Esquem ma Ampliado
Para consultar el nom mbre de la in nstancia ejec cute la siguiente consult ta:
SQL L> select in nstance_nam me from v$in nstance; STANCE_NAME INS ---------------Orc cl [ [Enter]
www.perudev.net
Oracle ut tiliza la mem moria para almacenar inf formacin co omo: Cdigo de los program mas. Informacin n sobre las sesiones s act tuales, incluso si no est activa. La informa acin necesa aria durante e la ejecuci n de un pr rograma, Po or ejemplo, el estado actu ual de una consulta c de la cual se es stn trayendo o las filas. Informacin n que es compartida c y se comun nica entre p procesos de e Oracle. Por ejemplo, informacin bloqueada. b Contiene los datos qu ue tambin se almace enan perman nentemente en memor ria perifrica. Por P ejemplo, los bloques s de los dato os y entrada as del redo lo og.
ucturas bsic cas de memoria asociad das con Orac cle incluyen: Las estru System Glo obal Area (S SGA), que es compartida por todos los proceso os del servidor y procesos s de fondo. Program Global G Area a (PGA), qu ue es priva ado a cada proceso del servidor y procesos de d fondo; ha ay un PGA p para cada proceso.
Streams Pool
www.perudev.net
tal System Global G Area Tot Fix xed Size Var riable Size Dat tabase Buffe ers Red do Buffers
La salida a de este co omando muestra el tam mao total de d SGA, es 289,406,976 bytes. Es ste tamao total t est co ompuesto de d un espac cio variable (Variable S Size) que lo o conforma el Shared Pool, P el Larg ge Pool, y el Java Poo ol (1,247,52 28 bytes), el l Database Buffer Cach he (197,132,288 bytes), el Redo Log Buffer (7,1 139,328 byte es), y el esp pacio adicion nal (1,247,52 28 bytes) qu ue guarda inf formacin usada por los s procesos de d fondo de la instancia. . Tambin podemos utilizar la vista V$SGA pa ara consulta ar informaci n sobre el SGA, S tal com mo se ilustra a a continuac cin:
SQL L> select * from v$sga; [Enter] VALUE ME NAM -------------------- ---------Fix xed Size 1247528 Var riable Size 83887832 Dat tabase Buffe ers 197132288 Red do Buffers 7139328
La vista V$SGA_DY V NAMIC_CO OMPONENTS S permite co onsultar deta alles adicion nales sobre el espacio asignado a dentro del SGA A; segn lo muestra la siguiente s con nsulta:
SQL L> select co omponent,current_size from v$sga_ _dynamic_co omponents; [Enter] [ MPONENT RENT_SIZE CURR COM ------------------------------ -----------sha ared pool 75497472 lar rge pool 4194304 jav va pool 4194304 str reams pool 0 DEF FAULT buffer r cache 1 197132288 KEE EP buffer ca ache 0 REC CYCLE buffer r cache 0 DEF FAULT 2K buf ffer cache 0 DEF FAULT 4K buf ffer cache 0 DEF FAULT 8K buf ffer cache 0 DEF FAULT 16K bu uffer cache 0 DEF FAULT 32K bu uffer cache 0 ASM M Buffer Cac che 0 ccionadas. 13 filas selec
Tambin se puede usar u el Enter rprise Mana ager Databa ase Control para consultar el tama o de cada componente c e del SGA, ta al como se m muestra a co ontinuacin:
www.perudev.net
D Description Es el proceso encargado E o de recuper rar la in nstancia y abrir la base de datos en n caso de fallas en la in nstancia. Este proceso E o se encarga a de liberar los l recursos s d servidor asignados del a a la conexin n de un u usuario en ca aso que la c conexin a tr ravs del p proceso serv vidor asignad do falle. Escribe los bloques E b mod dificados de la base de d datos del Da atabase Buff fer Cache del d SGA a los a archivos de datos d (datafiles) en disc co. Escribe la inf E formacin de e recuperac cin de transaccione es del Redo L Log Buffer del SGA a os archivos Redo Log en lnea en disco. lo Actualiza los A s archivos de e la base de datos cada v que ocur vez rre un event to Checkpoin nt.
Process Monitor
PMON
Database Writer
DBWn*
LGWR
Checkpo oint
CKPT
* La n en n cualquier nombre de proceso del l sistema op perativo sign nifica que ms de uno de d estos pro ocesos pued den estar en n funcionamiento. En es stos casos, la n se subs stituye por un u valor numrico. Por ejemplo, si cuatro procesos Writer W de la a base de datos est n funcionan ndo, sus nombres de pr roceso en e el nivel del sistema s oper rativo son DBW0, D DBW W1, DBW2, y DBW3.
Una insta ancia es una a estructura a temporal e en memoria, pero la bas se de datos de Oracle se s compone e de un siste ema de arc chivos fsicos s que reside en en los discos del se ervidor. Esto os archivos se llaman control c files, datafiles s, y redo log gs. Los arc chivos fsico os adicionale es que se asocian a a la base de da atos de Ora acle, pero que tcnicam mente no so on parte de la base de datos, son el e password file, el PFI ILE y SPFIL LE, y los arc chived redo o log files. El siguiente e cuadro res sume el pa apel de cad da uno de estos e juego os de los archivos en la arquitectu ura de la bas se de datos. Tipo de Archivo Control Inform macin Contenida en el Archivo Ubicac cin de los otros o archivo os, nombre d de la base de datos, tamao del bloque e de la base de datos, ju uego de cara acteres de la a base de d datos, e informacin de recupera acin fsica. Estos archivo os se requie eren para ab brir la base d de datos. Toda la data de la as aplicacion nes y la meta adata interna a. Regist tra todos los s cambios he echos en la b base de dato os; usado para propsitos p de e recuperaci in. Parm metros de configuracin del d SGA, ca aractersticas s opcionales s de Ora acle, y proce esos de back kground. Copia el contenido o de los redo log en lne ea, usado pa ara sitos de recu uperacin. props Es un archivo opc cional usado para almace enar el nombre de los usuarios a los que e se les ha otorgado o el p privilegio SYSDBA y/o SYSOPER.
www.perudev.net
ME NAM ------------------------------------------------------C:\ \ORACLE\PROD DUCT\10.2.0\ORADATA\OR RCL\CONTROL0 01.CTL C:\ \ORACLE\PROD DUCT\10.2.0\ORADATA\OR RCL\CONTROL0 02.CTL C:\ \ORACLE\PROD DUCT\10.2.0\ORADATA\OR RCL\CONTROL0 03.CTL
ME NAM --------------------------------------------------------C:\ \ORACLE\PROD DUCT\10.2.0\ORADATA\OR RCL\SYSTEM01 1.DBF C:\ \ORACLE\PROD DUCT\10.2.0\ORADATA\OR RCL\UNDOTBS0 01.DBF C:\ \ORACLE\PROD DUCT\10.2.0\ORADATA\OR RCL\SYSAUX01 1.DBF C:\ \ORACLE\PROD DUCT\10.2.0\ORADATA\OR RCL\USERS01. .DBF C:\ \ORACLE\PROD DUCT\10.2.0\ORADATA\OR RCL\EXAMPLE0 01.DBF
10
Tambin podemos re ealizar la con nsulta de so obre loa data afiles en EM M Database Control:
Esta consulta nos in ndica que tenemos tres grupos, y cada c grupo t tiene un solo miembro, o sea, un archivo. a Par ra consultar los archivo os miembros s de cada grupo ejecute e la siguiente consulta:
SQL L> select gr roup#, member from v$l logfile orde er by 1; GROUP# ---------1 2 3 [Enter]
MEM MBER -------------------------------------------------C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\OR RCL\REDO01.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\OR RCL\REDO02.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\OR RCL\REDO03.LOG
www.perudev.net
11 1
El siguien nte grafico ilustra la form ma como trab bajan los arc chivos redo log:
ara consultar los archivos miembro os de un gr rupo, hacem mos clic en el En esta ventana pa q correspo onde al grup po a consulta ar, en la colu umna Grupo o. nmero que 12 Eric Gust tavo Corone el Castillo (gcoronelc@ @gmail.com m)
Leccin 02
Introduccin a las Estructuras de Almacenamiento
Contenido Estructuras Lgicas Estructuras Fsicas Esquemas de Base de Datos 14 16 18
La siguie ente consulta a muestra los tablespace es que se cr rean junto co on la base de datos:
SQL L> select na ame from v$tablespace; ; ME NAM -----------------------------SYS STEM UND DOTBS1 SYS SAUX USE ERS TEM MP EXA AMPLE f selecc cionadas. 6 filas [Enter r]
14
A continu uacin tenem mos una bre eve descripc cin de los ta ablespaces q que se crean junto con la base de datos. d
Tablaspac ce Des scripcin
system
El tablespace SYSTEM se e utiliza para a el dicciona ario de los da atos y cdigo o PL L/SQL, y no debe ser us sado para alm macenar obj jetos de otro os es squemas. Almacena info ormacin de las transacc ciones para los propsit tos co onsistencia y recuperaci n. El tablespace SYSAUX es s nuevo a Oracle10g y a almacena se egmentos us sados para opciones o de la base de datos, d tales como Autom matic Workload Rep pository (repositorio que guarda peri idicamente e informacin n relativa a la ac ctividad del s sistema), On nline Analytical Processing (OLAP), y Spatial. S Ut tilizado como o tablespace e por defecto o para usuarios de la ba ase de datos s. Us sado para op peraciones d de grandes ordenamien o to.
undotbs1 1 sysaux
users temp
Tambin podemos co onsultar los tablespaces s utilizando la l herramien nta EM Data abase Contro ol, tal como se ilustra a continuacin n:
www.perudev.net
15 5
16
Cada tab blespace tien ne asignado o por lo men nos un dataf file. Algunos s tablespace e, por razone es de admin nistracin y rendimiento pueden est tar conforma ados por varios datafile. La siguiente consulta nos muestra a los datafile es por tables space.
SQL L> select ta ablespace_name, file_n name from db ba_data_fil les; [Enter r] BLESPACE_NAM ME TAB -------------------USE ERS SYS SAUX UND DOTBS1 SYS STEM EXA AMPLE FILE_NAME ---------------------------------------------------DUCT\10.2.0\ \ORADATA\OR RCL\USERS01. .DBF C:\ORACLE\PROD DUCT\10.2.0\ \ORADATA\OR RCL\SYSAUX01 1.DBF C:\ORACLE\PROD DUCT\10.2.0\ \ORADATA\OR RCL\UNDOTBS0 01.DBF C:\ORACLE\PROD DUCT\10.2.0\ \ORADATA\OR RCL\SYSTEM01 1.DBF C:\ORACLE\PROD DUCT\10.2.0\ \ORADATA\OR RCL\EXAMPLE0 01.DBF C:\ORACLE\PROD
Para con nsultar los archivos a aso ociados con n los tablesp paces temporales, la consulta c es la siguiente e:
SQL L> select ta ablespace_name, file_n name from db ba_temp_fil les; [Enter r] BLESPACE_NAM ME FILE_NAME TAB -------------------- --------------------------------------------------TEM MP DUCT\10.2.0\ \ORADATA\OR RCL\TEMP01.D DBF C:\ORACLE\PROD
www.perudev.net
17 7
18
Para consultar inform macin de los usuarios, p podemos eje ecutar la sig guiente consulta:
SQL L> select us sername, default_table espace, temp porary_tabl lespace 2 from dba_ _users 3 where use ername in ('SYS', 'SYS STEM', 'SCOT TT', 'HR'); [Enter] ] ERNAME USE -------------------SCO OTT HR S SYS SYS STEM SPACE DEFAULT_TABLES -------------------USERS USERS SYSTEM SYSTEM TEMP PORARY_TABL LESPACE -------------------TEMP P TEMP P TEMP P TEMP P
Podemos s apreciar lo os tablespace por defe ecto de cad da usuario y el tablesp pace tempor ral asignado o a cada usu uario. El usuari io SYS es el dueo de e todas las tablas bas se y vistas d de acceso a la data del d diccionar rio de datos. Ningn otro usuario debe alte erar nunca (UPDATE, DELETE, o INSERT) ) cualquier fila u objetos del esquem ma SYS, porq que tal activ vidad puede comprometer la integrid dad de los datos. d El ad dministrador r de la base e de datos debe tener estricto e contr rol de esta cuenta. c Tambin podemos utilizar el EM para consultar informac cin sobre lo os usuarios de la base de d datos.
www.perudev.net
19 9
Pgina a en Blanco
20
Leccin 03
El Diccionario de Datos
Contenido Introduccin al Diccionario de Datos Componentes Privados Tablas X$ Vistas Dinmicas (V_$) Tablas $ 22 23 23 25 27 28
Componentes Pblicos
El diccion nario de datos es una estructura e de e tablas y vis stas, similar r a otros datos de la bas se de datos s. Todas las s tablas y vistas del diccionario d d datos es de stn almace enadas en el tablespac ce SYSTEM M. No solo el e diccionario o de datos es e todo en cada c base de d datos Ora acle, esta es s tambin un na herramienta importante para tod dos los usu uarios, para los disead dores de ap plicaciones de d usuarios finales y pa ara los adm ministradores s de base de d datos. Ut tilice las sen ntencias SQ QL para real lizar consult tas al diccionario de los s datos. Deb bido a que e el diccionario o de datos es e de solo le ectura, solo se puede consultar (ins strucciones SELECT S )al las tablas y vistas. Por su complejidad y extensin, el dicciona ario de dato os se ha div vidido, en dos niveles de d objetos: privado p y p blico.
22
Tablas s X$
Son estru ucturas en memoria m pre esentadas c como tablas y sirven co omo base para las vista as V$, norm malmente es stas tablas no n se encue entran docum mentadas. Para P ver su contenido un u DBA tien ne que hace erlo como us suario SYS. El problem ma que se tiene con est tas tablas, es e que, su nombre n y el nombre de sus columnas no son descriptivos, d por lo tanto o resulta difc cil darse cue enta del sign nificado de su s contenido o. Es de sup poner que por su import tancia, Orac cle haya dec cidido usar esas e convenc ciones para nombrarlas. No hay documentacin acerca de las tablas X$ prevista por Oracle Corporation; sin embarg go es posible mediante la revisin y el anlisis del contenido de las mismas m dedu ucir su utilida ad en la crea acin de las vistas V$. Las tabla as X$ son cr readas en memoria m al m momento de el inicio de la instancia y mantenida as en tiemp po real gua ardando info ormacin de e la activida ad de la Base B de Da atos desde el comienzo o de la instancia. El nico comando permitido p so obre estas ta ablas es el SELECT, ocurriendo o u error si se un s jecutar cualq quier tipo de e instruccin diferente al SELECT. intenta ej
SQL L> conn / as s sysdba Con nectado. [ [Enter]
[Enter]
NNER BAN ---------------------------------------------------------------Ora acle Databas se 10g Enterprise Edit tion Release e 10.2.0.1.0 - Prod PL/ /SQL Release e 10.2.0.1.0 - Product tion COR RE 10.2.0 0.1.0 Production TNS S for 32-bit t Windows: Version 10. .2.0.1.0 - Production P NLS SRTL Version n 10.2.0.1.0 Product tion
www.perudev.net
23 3
No se puede otorgar el privilegio o de SELECT T sobre esas s tablas a nin ngn usuario o.
SQL L> conn / as s sysdba Con nectado. [ [Enter]
SQL L> grant sel lect on x$option to sc cott; [Ent ter] gra ant select on o x$option to scott * ROR en lnea a 1: ERR ORA A-02030: sl lo se puede selecciona ar de tablas s/vistas fi ijas
La nica operacin disponible d pa ara permitir acceso sob bre estas tab blas a usuar rios diferente es a SYS es e la creaci n de vistas sobre ella as y con es sas vistas p permitir el acceso, a de la siguiente e forma:
SQL L> conn / as s sysdba Con nectado. [Enter]
SQL L> create vi iew prueba$option as s select * fro om x$option n; sta creada. Vis SQL L> create p public synonym x$optio on for prueb ba$option;
[Enter r]
[Enter r]
nnimo cread do. Sin SQL L> grant sel lect on prueba$option to public; ncesin term minada correctamente. Con SQL L> conn scot tt/tigre Con nectado. SQL L> select * from x$option; INDX INST_ID DR ADD -------- ---------- ---------04B B79704 1 0 04B B79704 1 1 04B B79704 1 2 04B B79704 1 3 04B B79704 1 4 04B B79704 1 5 04B B79704 1 6 04B B79704 1 7 04B B79704 1 8 04B B79704 1 9 04B B79704 1 10 . . . . . . [Ent ter] [Enter r]
[Ent ter] PARA AMETER -------------------------------Part titioning Obje ects Real l Applicatio on Clusters s Adva anced replic cation Bit-mapped inde exes Conn nection mult tiplexing Conn nection pool ling Data abase queuin ng Incr remental bac ckup and re ecovery Inst tead-of trig ggers Para allel backup p and recov very VAL LUE ---------TRU UE TRU UE FAL LSE TRU UE TRU UE TRU UE TRU UE TRU UE TRU UE TRU UE TRU UE
24
Las tabla as X$ no pueden ser r modificada as de ningu una manera a y su man ntenimiento lo desarrolla a Oracle de manera aut tomtica. La forma fcil de ver su informacin es e mediante el uso de la as vistas V$,
SQL L> conn / as s sysdba Con nectado. SQL L> select * from x$ksm msd; DR INDX INST_ID ADD -------- ---------- ---------03B BF0BB0 1 0 03B BF0BD0 1 1 03B BF0BF0 1 2 03B BF0C10 1 3 SQL L> select * from v$sga; ME VALUE NAM -------------------- ---------Fix xed Size 1247528 Var riable Size 109053656 Dat tabase Buffe ers 171966464 Red do Buffers 7139328 [Ent ter]
[Ent ter] KSMS SDNAM KS SMSDVAL -------------------- ---------Fixe ed Size 1 1247528 Vari iable Size 109 9053656 Data abase Buffer rs 171 1966464 Redo o Buffers 7 7139328 [Ent ter]
www.perudev.net
25 5
Las vista as dinmica as son utiliz zadas por Oracle O Ente erprise Mana ager, que es e la interfa az principal para accede er a informa acin sobre f funcionamie ento del siste ema. Despu us de que la instancia es iniciada, , las vistas V$ V que leen informacin n de la mem moria son acc cesibles. La as vistas que leen los datos d del dis sco requieren que la bas se de datos est monta ada, y alguna as requieren n que la base de datos est e abierta.
SQL L> conn / as s sysdba Con nectado. SQL L> shutdown immediate Bas se de datos cerrada. Bas se de datos desmontada. Ins stancia ORAC CLE cerrada. [Enter r]
[Enter r]
SQL L> select * from v$sga; [Enter r] sel lect * from v$sga * ROR en lnea a 1: ERR ORA A-01034: ORA ACLE not available SQL L> startup Ins stancia ORAC CLE iniciad da. tal System Global G Area Tot Fix xed Size Var riable Size Dat tabase Buffe ers Red do Buffers Bas se de datos montada. Bas se de datos abierta. SQL L> select * from v$sga; [Enter r]
[Enter r]
ME VALUE NAM -------------------- ---------Fix xed Size 1247528 Var riable Size 109053656 Dat tabase Buffe ers 171966464 Red do Buffers 7139328
26
Tablas s$
El otro grupo g de obj jetos dentro o del Diccionario de Da atos, es el c conjunto de las tablas $. Estas tab blas tienen nombres m s compren nsibles que las anteriore es tablas X$ $, tales com mo COL$, TS S$, USER$ o TAB$. Es ste conjunto de tablas es creado po or la ejecuci n del archiv vo sql.bsq. De la misma manera qu ue con las ta ablas X$, se e recomienda que solo sean s usuario os administr radores (DBA A) los que accedan a esta as tablas.
SQL L> conn / as s sysdba Con nectado. SQL L> select na ame from ts$; [Enter r]
[Enter r]
ME NAM -----------------------------EXA AMPLE SYS SAUX SYS STEM TEM MP UND DOTBS1 UND DOTBS2 USE ERS f selecc cionadas. 7 filas
www.perudev.net
27 7
28
Las vista as DBA_ proporciona an la inform macin m s amplia d de la meta adata y so on generalm mente las vis stas del dicc cionario de datos usadas por los D DBAs. La siguiente tab bla muestra una u descripc cin sobre lo os tipos de v vistas. Prefijo USER_ ALL_ Descripcin Muestran M los objetos crea ados por el usuario u que hace la consulta. Muestran M los objetos a lo os cuales cad da usuario ti iene acceso, es decir to odos los que e l ha cread do como tam mbin aquello os sobre los cuales tiene e pe ermitido el acceso a y no le pertenece en. Muestran M todo os los objeto os creados a nivel de la Base de Da atos. Disponibles para p usuarios s administra adores.
DBA_
www.perudev.net
29 9
Como las s vistas ALL L_ y DBA_ muestran o objetos perte enecientes a diferentes s usuarios, en e ellas se debe d estipula ar el propietario de cada a objeto refe erenciado. Normalm mente toda vista DBA_ _, tiene su u contrapart te USER_ y ALL_, c con contada as excepciones que no n amerita an la presencia de esas vista as, como por ejemplo: dba_tablespaces, db ba_data_file es, dba_roll s, etc. lback_segs
SQL L> conn scot tt/tigre Con nectado. [Enter]
SQL L> select ta able_name from user_ta ables; BLE_NAME TAB -----------------------------DEP PT EMP P BON NUS SAL LGRADE
[ [Enter]
30
Leccin 04
Usuarios Administradores
Contenido Administrador de la Seguridad y Privilegios de la Base de Datos Cuentas del Sistema Operativo Administradoras de la Base de Datos Nombres de Usuarios Administradores de la Base de Datos 32 32 32 34 34 37 39 42 44 44 46 47 49
Autenticacin del Administrador de Base de Datos Privilegios Administrativos Seleccionar un Mtodo de Autenticacin Usando Autenticacin del Sistema Operativo (OS) Usando la Autenticacin del Archivo de contraseas
Creacin y Manteniendo el Archivo de Contraseas Usando ORAPWD Estableciendo el valor de REMOTE_LOGIN_PASSWORDFILE Adicionando Usuarios al Archivo de Contraseas Mantenimiento del Archivo de Contraseas
Durante la instalaci n de la ba ase de datos s Oracle se e establecen n las contra aseas de lo os usuarios SYS y SYSTEM. cional, y con ncederle el rol r DBA, para Se sugiere tambin crear por lo menos un usuario adic areas admin nistrativas dia arias. Se rec comienda no o utilizar las cuentas SY YS utilizarlo al realizar ta EM para esto os propsitos. y SYSTE
32
SYS
Cuando se s crea una base de da atos, el usua ario SYS se crea autom ticamente y se le asign na el rol de DBA D . Todas las tablas y vistas v del di iccionario de e datos son n almacenad das en el es squema SYS S. Estas tab blas y vista as son crtic cas para la operacin de la base e de datos Oracle. Para mantener la integrid dad del dic ccionario de e datos, las s tablas en n el esquem ma SYS so on manipula adas solame ente por Ora acle. Nunca deben ser modificadas s por cualqu uier usuario o administr rador de la base de da atos, y nadie e debe crea ar cualquier tabla en el esquema del d usuario SYS S . (Sin embargo, e se e pueden cambiar los parmetros de almace enamiento del d diccionar rio de datos en caso de que sea nec cesario.) Asegres se de que la a mayora de e los usuario os de la base e de datos n nunca pueda an conectars se con la cuenta SYS.
SYSTEM M
Cuando se s crea una a base de datos, el usu uario SYSTE EM se crea automticam mente y se le asigna el rol de DBA A. El usuar rio SYSTEM M es usad do para cre ear tablas y vistas adicionales para mostr rar informaci in adminis strativa, y tablas t y vi istas interna as usadas por varias s opciones y herramientas de Ora acle. Nunca se debe cre ear tablas en n el esquema SYSTEM de inters de d usuarios individuales s.
Rol DBA A
Un rol pr redefinido, de d nombre DBA D , se cre ea automtic camente con n cada base e de datos de d Oracle. Este E rol cont tiene la may yora de los privilegios del d sistema de base de datos. Por lo tanto, es s de muy gran g alcance e y debe ser concedid do solament te a los ad dministradore es completa amente funci ionales de la a base de da atos. Not ta: El papel p del DB BA no incluye e los privilegios del sistema SYSDB BA SYSOP PER. sto os son los pr rivilegios ad dministrativo os especiales que permiten a un adm ministrador realizar tare eas bsicas de d la admini istracin de la base de datos, tale es como crear la base de datos, el a arranque y la l parada de e la instancia.
www.perudev.net
33 3
34
Este E privileg gio del sistem ma permite conectarnos c rio SYS. como usuar SYSOPE ER Ejecutar operaciones o s de STARTUP y SHUTD DOWN OPEN, MOUNT, BACK ALTER DATABASE: D KUP, o camb biar el conjunto de caractere es ARCHIVE ELOG y REC COVER CREATE E SPFILE Incluye el privilegio R RESTRICTED SESSION N
Este E privileg gio permite a un usuario realizar tare eas operacio onales bsicas, b per ro sin la capa acidad de ve er datos del otros usuari io. El contex xto en el cual c se auto orizan a utilizar estos privilegios depende d de el mtodo de d autentific cacin que se elige utilizar. Cuando nos n conecta amos con pri ivilegios de SYSDBA o SYSOPER, nos estamo os conectand do con un esquema por p defecto, no con el esquema que se aso ocia genera almente a su s e. Para SYS SDBA este esquema e es SYS; para SYSOPER el e esquema es e PUBLIC. username
www.perudev.net
35 5
36
Paso 3 Ahora, co omprobarem mos que cua ando scott se conecta a utilizando el privilegio SYSDBA, el esquema a por defecto o ya no es sc cott, sino sy ys.
SQL L> conn scot tt/tiger as sysdba nectado. Con SQL L> show user r ER es "SYS" USE SQL L> select * from test; [ [Enter] [ [Enter] [ [Enter]
lect * from test sel * ROR en lnea a 1: ERR ORA A-00942: la tabla o vista no exis ste
Su opcin es afectad da si admini istramos la base de dat tos localmen nte en la misma mquin na donde re eside la bas se de datos s, o si administramos diversas d bas ses de dato os de un so olo cliente re emoto. La si iguiente figu ura ilustra la as opciones que tenemo os para los esquemas de d autentific cacin del ad dministrador r de la base de d datos.
www.perudev.net
37 7
Si estamos realizand do la admini istracin rem mota de la base b de dato os, debemos consultar la documen ntacin de red de Ora acle para determinar si s estamos utilizando una u conexi n segura. La mayora de los proto ocolos comu unes de con nexin, tales como TCP/ /IP y DECne et, no son se eguros.
38
mbres por defecto d asumidos por el instalado or universal de Oracle e pueden ser Los nom eliminado os. Podemo os crear los grupos OS SDBA y OS SOPER espe ecficos seg n el sistem ma operativo o. A continu uacin hacem mos una des scripcin cmo un usua ario que perte enece al gru upo OSDBA u OSOPER R afecta la co onexin con Oracle: Si es un miembro del grupo g OSDB BA, y especi ifica AS SYS SDBA cuand do se conec cta e de datos, lo estar hac ciendo con el e privilegio d de sistema SYSDBA S . con la base Si es un miembro m de el grupo OS SOPER, y especifica e AS SYSOPE ER cuando se s conecta co on la base de datos, lo o estar ha aciendo con el privilegio de sistem ma SYSOPER. Si no es miembro m de e estos grup pos del sistema operat tivo e intent ta conectars se como SYSDBA o SYSOPER, el co omando CON NNECT fallar.
www.perudev.net
39 9
Para una a conexin re emota con la a base de da atos sobre una u conexin n segura, el usuario deb be tambin especificar e el e nombre de el servicio de e red de la base b de dato os remota:
NNECT /@net_ _service_name AS SYSDBA CON NNECT /@net_ _service_name AS SYSOPER R CON
40
A continu uacin tenem mos un ejem mplo de com mo se realiza a la conexin utilizando autenticaci n del sistem ma operativo o.
SQL L> conn / as s sysdba nectado. Con SQL L> show user r ER es "SYS" USE [Enter] [Enter]
Ejercicio o Experimental
El siguien nte ejercicio debe desar rrollarlo usted. 1. 2. 3. Cre ear el usuario del SO de e nombre ser rgio. Agr regue el usu uario sergio al grupo Administradore es. Cie erre todas la as aplicacion nes, cierre la sesin actual, e inic cie sesin con el usuar rio ser rgio. Inte ente conecta arse a Oracle e como SYS SDBA, come ente el result tado con su compaero. Agr regue el usu uario sergio al grupo OR RA_DBA. Inte ente nuevam mente conec ctarse a Oracle como SY YSDBA, com mente el res sultado con su s com mpaero.
4. 5. 6.
www.perudev.net
41 1
2.
Est tablecer el parmetro de inicializa acin REMO OTE_LOGIN_PASSWO ORDFILE en e EXCLUSIVE. Not ta REM MOTE_LOGIN N_PASSWORD DFILE es un parmetro de d inicializa acin esttic co y por lo tanto t no pue ede ser cambiado sin el reinicio de la base de datos. d
3.
Con nectarse a la base de datos com mo usuario SYS S (o con n otro usuar rio que teng ga priv vilegios adm ministrativos). Si el e usuario no o existe en la a base de da atos, crear el e usuario. Oto orgar el privilegio del sistema SYSD DBA SYSO OPER al usua ario.
4. 5.
42
Not tas La autentificac a cin del siste ema operati ivo toma pre ecedencia so obre la aut tentificacin n del archivo o de contras seas. Espec cficamente e, si pertenece al grupo OSDBA u OSOPER del sistema a operativo, y se conecta a como SYS SDBA o SYSOPER, se conectar c con privilegio os administr rativos sin im mportar el use ername/pass sword que se s especifiqu ue. Si no n pertenece e al grupo OSDBA O OS SOPER, y ta ampoco est en el archi ivo de con ntraseas, entonces la conexin c fallar.
Ejercicio o Dirigido
El siguien nte ejercicio debe resolv verlo junto co on su profes sor. 1. Est tablezca el EXCLUSIVE. valor del parme etro REMO OTE_LOGIN N_PASSWO ORDFILE e en
2.
el sistema operativo ORA_DBA y Quite todos los miembros de los grupos de RA_OPER. OR Cre ear el archivo o de contras seas con la as siguientes s caractersticas: 3. Contrasea a del usuario o SYS: supe er ximo de en ntradas: 10 4. Nmero m
3.
4. 5. 6. 7.
Cre ear el usuario gustavo, asgnele a la c contrasea clever c . Con ncdale el privilegio p SYS SDBA a gus stavo. Ver rifique el con ntenido del archivo a de co ontraseas. Ver rifique la con nexin de gu ustavo como o usuario administrador.
www.perudev.net
43 3
Usando o ORAPW WD
Cuando se s invoca el l programa utilitario u de creacin del archivo de e contrasea as sin proveer ningn pa armetro, se e recibe un mensaje que e indica el uso u apropiad do del comando, tal com mo se ilustra a a continuac cin:
C:\> orapwd
[ [Enter]
Usag ge: orapwd file= =<fname> pass sword=<passwo ord> entries=<u users> force=<y y/n> here wh file - name of password file (mand), password p - password for SYS (m mand), entries e - maximu um number of dis stinct DBA and OPERs (opt), fo orce - whether to t overwrite exis sting file (opt), There are no spac ces around the equal-to e (=) cha aracter. C:\>
El siguiente comand do crea un archivo de contraseas de nombr re acct.pwd d que permite hasta 30 usuarios privilegiados con diversa p as contraseas. En est te ejemplo, el archivo se s crea inicialmente con n la contrase ea secret p para los usuarios que co onectan com mo SYS.
[Enter]
Not ta Es crticamente c e importante e para la seguridad del sistema pro oteger el arc chivo de con ntraseas y las l variables s de entorno o que identif fican su loca alizacin. Cu ualquier usu uario con acc ceso podra potencialme ente compro ometer la se eguridad de la con nexin.
44
A continu uacin pasam mos a descr ribir los par metros del utilitario u ORA APWD. FILE Este parmetro p es stablece el n nombre del archivo a de c contraseas a ser creado. Se debe especific car el nombr re completo y la ruta del archivo. El contenido de d este archivo es encriptado, y no es posible le eerlo directa amente. Es ste parm metro es oblig gatorio. Los tip pos de nomb bre de archiv vo permitido os para el arc chivo de con ntraseas so on espec cficos del sis stema opera ativo. Alguno os sistemas operativos requieren r qu ue el arc chivo de con ntraseas te enga un for rmato espec cfico y loca alizado en un u directo orio especf fico. Otros sistemas operativos o p permiten el uso de la as variab bles de entorno para es specificar el nombre y la a localizaci n del archiv vo de con ntraseas. Debemos D revisar la doc cumentacin especfica de Oracle del d sistem ma operativo o para los n nombres y las localiza aciones perm mitidas en su s platafo orma. ORD En es ste parmet tro establec cemos la co ontrasea para p el usuario SYS. Si PASSWO usamo os la sente encia ALTER R USER pa ara cambiar r la contras sea de SY YS despu us de conectarse a la base de dat tos, la contr rasea alma acenada en el diccionario de datos d y la contrasea almacenada en el archivo de d contra aseas amba as son actua alizadas. Es ste parmetr ro es obligat torio. ENTRIES S Este parmetro p e especifica e el nmero de d entradas que se req quiere que el archiv vo de contra aseas ace epte. Este nmero n cor rresponde al a nmero de d usuari ios distintos permitidos p para conectar a la base de datos co omo SYSDB BA o SYS SOPER. El nmero real de entradas s permisibles s puede ser ms alto qu ue el nm mero de us suarios por rque la utilidad ORAPW WD contin a asignand do entrad das de contr rasea hasta que se lle ena un bloqu ue del sistema operativ vo. Por ej jemplo, si el l tamao de el bloque del sistema op perativo es de d 512 Byte es, esto aloja cuatro o entradas de contrasea. El nmero n de entradas de d contra asea alojad das ser siem mpre mltiplo de cuatro. Este parmetro, p s se estable si ece en Y, le permite sob bre-escribir un archivo de d contra aseas exist tente. Devue elve un error r si existe un archivo de e contrasea as del mismo nombre e y se omite e este parm metro o se es stablece en N.
FORCE
www.perudev.net
45 5
EXCLUS SIVE
SHARED D
46
3. 4. 5.
Para revo ocar el privile egio debe utilizar la inst truccin es REVOKE, R su u sintaxis es la siguiente e:
www.perudev.net
47 7
SYSOPE ER
Nul mbre lo? Nom ----------------------------------------- -------USE ERNAME SYS SDBA SYS SOPER SQL L> select * from v$pwfile_users; ERNAME USE -----------------------------SYS S SCO OTT DB SYSD ----TRUE E TRUE E [Enter r] SYSOPER -------TRUE FALSE
48
2. 3. 4.
5.
www.perudev.net
49 9
Pgina a en Blanco
50
Leccin 05
Inicio y Parada de la Base de Datos
Contenido Introduccin Inicio de una Base de Datos de Oracle Fases del Inicio de la Base de Datos 52 53 53 55 56 56 56 57 58 59
Comando: STARTUP Comando: SHUTDOWN SHUTDOWN con la clusula NORMAL SHUTDOWN con la clusula IMMEDIATE SHUTDOWN con la clusula TRANSACTIONAL SHUTDOWN con la clusula ABORT
Introd duccin
El DBA, es e el respon nsable del in nicio y parad da de la insta ancia de Or racle. Oracle e proporcion na a los adm ministradores autorizado os las opcio ones de realizar esta tarea usando una varieda ad de interfa aces. Es im mportante entender e las s opciones que q estn d disponibles para iniciar y cerrar la instancia de e Oracle, y cuando las va arias opcion nes pueden o deben ser utilizadas. e, necesita estar e conecta ado con la base b de dato os Para iniciar o cerrar una instancia de Oracle con los privilegios p apropiados. Hay dos pr rivilegios especiales que estn disponibles para usuarios que van a realizar r estas tareas: SY YSDBA y SY YSOPER. El privilegio SY YSDBA es un u privilegio que permite realizar cualquier t tarea de la a base de datos. La a autorizaci n SYSOPER es un privilegio de menor m alcan nce que permite operac ciones de in nicio y parad da tringe otras tareas t administrativas, tales t como el e acceso a los objetos de esquema as pero rest de las ap plicaciones. Estas autor rizaciones se manejan en e el archivo o de contras seas o va el sistema operativo. o Cuando una base de datos est e reciente emente inst talada, slo o el usuario o SYS pued de se con la ba ase de datos s con el privi ilegio SYSDBA. Se pue ede otorgar este privileg gio conectars y el priv vilegio SYSO OPER a otr ros usuario para ejecutar esta tar rea sin la necesidad n d de conectars se con el usuario SYS. El siguien nte grfico muestra m las diferentes fa ases del pro oceso de inic cio y parada a de una bas se de datos de Oracle.
52
Fase: NOMOUNT
Una base e de datos en e esta fase incluye las s siguientes ta areas: Se lee el archivo de pa armetros. Se identific can los archivos de control. Se inician los procesos s de fondo. Se inician las estructur ras en mem moria, pero no n son vinculadas con la as estructura as en disco. La base de e datos no es sta disponib ble para los usuarios. u
www.perudev.net
53 3
Si una ba ase de datos s se encuen ntra en esta fase, se pu ueden realiz zar ciertas ta areas. Una de d las ms comunes c es la creacin de una nuev va base de datos. d Ocasiona almente, una a base de datos no pu uede pasar a la fase s siguiente (MOUNT M ) y se s mantiene e en la fase e NOMOUN NT. Por eje emplo, esto puede ocur rrir si se tien ne problema as para acceder a las estructuras e d archivo de control, que contiene informaci del n importante para cont tinuar con el proceso de e inicio de la a base de da atos. Si se d daan estas estructuras so no estn disponibles, el proceso o de inicio de e la base de e datos no pu uede continu uar hasta qu ue se resuel lva este prob blema.
Fase: MOUNT M
En esta fase, f primero o se deben ejecutar e todas las tareas para llegar a la fase NOMOUNT N ,y luego se ejecutan las s siguientes tareas: Se asocia los archiv vos de la base de datos con la a instancia previamente inicializada a. Se localiza an y abren lo os archivos de d control ind dicados en e el archivo de e parmetros s. Se lee el archivo a de control y se o obtiene el estado e de los s archivos de d datos y lo os redo log file es.
areas admin nistrativas se s pueden realizar r mien ntras la bas se de datos esta en es sta Ciertas ta fase, com mo por ejemp plo: Renombrar r los archivo os de datos. Realizar un n proceso de e recovery. Cambiar la a ubicacin fsica de los archivos. Poner la ba ase de datos s en modo A Archive Log.
Fase: OPEN O
En esta fase, f primero o se deben ejecutar las tareas para a llegar a la f fase MOUN NT, y luego se s ejecutan las siguiente es tareas: Se abren lo os archivos de d datos. Se abren lo os redo log files f en lnea a.
En esta fase f la base de datos es sta disponible para todos s los usuario os.
54
ARTUP STA M | OPEN N] [NOMOUNT | MOUNT [PFILE/SPFILE E=ruta_nombre_ _archivo] [RESTRICT] [FORCE]
Donde: NO OMOUNT MO OUNT OP PEN PF FILE/SPFILE E RE ESTRICT FO ORCE Inicia la instancia a, pero no mo onta la base e de datos. Inicia la instancia a, y monta la a base de da atos. a, monta y ab bre la base de d datos. Inicia la instancia Perm mite indicar el archivo de parmetros s. Abre la base de datos d en mo odo restringid do. Solo los usuarios con egio RESTRICTED SES SSION podr rn iniciar se esin. privile Fuerz za el inicio de una base de datos. Si la base de datos esta en fun ncionamient to, en primer r lugar realiz za ejecuta un n SHUT TDOWN.
www.perudev.net
55 5
La clusu ula NORMAL es opcional, porque ste es el m todo de pa arada por de efecto si no se s proporcio ona ninguna clusula. La parada normal de e la base de datos proce ede con las siguientes s co ondiciones: No se perm mite nuevas conexiones. . Espera a que q todos lo os usuarios s actualment te conectad dos se desc conecten para proceder a cerrar la ba ase de datos s.
mo inicio de la base de datos no re equerir ning gn procedi imiento para a recuperar la El prxim instancia.
56
Para cerr rar una base e de datos inmediatame i ente, se utili iza el coman ndo SHUTD DOWN con la clusula IMMEDIAT TE:
La parada inmediata de la base de d datos pro ocede con la as siguientes s condicione es: evas conex xiones, tam mpoco se pueden in niciar nueva as No se permite nue transaccion nes. No espera a que las se esiones activ vas sean ter rminadas. Las transac cciones pendientes son canceladas s, y los usuarios son des sconectados s.
El prxim mo inicio de la base de datos no re equerir ning gn procedi imiento para a recuperar la instancia.
La parada transaccio onal de la ba ase de datos s procede co on las siguientes condiciones: No se permite nue evas conex xiones, tam mpoco se pueden in niciar nueva as transaccion nes. Despus que las transacciones so on terminada as, los cliente es son desc conectados de d la base de datos.
mo inicio de la base de datos no re equerir ning gn procedi imiento para a recuperar la El prxim instancia. Una para ada transac ccional previ iene a clien ntes pierdan n su trabajo, y al mism mo tiempo, no n requiere que todos lo os usuarios terminar t su sesin.
www.perudev.net
57 7
Cuando se s necesita una parada a de la base de datos ab bortando tra ansacciones y conexione es de usuarios, ejecute el comando o SHUTDOW WN con la cl lusula ABO ORT:
La parada abortada de d la base de d datos proc cede con las s siguientes condiciones s: No se permite nue evas conex xiones, tam mpoco se pueden in niciar nueva as transaccion nes. Las senten ncias SQL activas a del cliente que son s procesad das por la base b de dato os son termina adas inmedi iatamente. Las transac cciones activ vas son canceladas. No se espera a que q la conexiones activas a sea an descone ectadas, so on desconecta adas inmediatamente.
58
Donde: OUNT MO OP PEN RE EAD ONLY RE EAD WRITE Monta a la base de datos. Abre la l base de datos, d y por lo l tanto, esta ar disponib ble para los us suarios. Abre la l base de datos d en mod do de solo le ectura. Abre la l base de datos d en mod do lectura y escritura.
www.perudev.net
59 9
Pgina a en Blanco
60
Leccin 06
Acceso a la Base de Datos Oracle
Contenido Verificacin de Servicios Windows Servicio de la Base de Datos Servicio del Proceso Escucha Tipos de Inicio de los Servicios Estados de un Servicio La Ventana de Servicios 62 62 62 63 63 64 65 65 67 70 72 73 75 75 75 77 77 78
Identificacin del Servicio y la Instancia de Base de Datos Servicio de Base de Datos Instancias de la Base de Datos Servicio de Accesibilidad Proceso de Servidor Dedicado Nomenclatura
Configuracin del Mtodo de Nomenclatura Local Configurar el archivo tnsname.ora durante la instalacin Configurar el archivo tnsname.ora despus de la instalacin
Configuracin del Proceso Escucha Configuracin del Proceso Escucha Durante la Instalacin
Glosario
Orac cleServiceSID
Donde SID represent ta el nombre e de la instancia, por eje emplo, si el nombre n de la instancia es e EGCC, el e nombre de el servicio es s:
cleServiceEGCC C Orac
62
En cualq quier momento se pued de ejecutar el comand do net para modificar el e estado del d servicio, este comand do se ejecut ta desde la consola c de comandos. c
Estado os de un Servicio S
Un servic cio puede tener uno de los estados que se desc criben en el s siguiente cuadro: Estado Iniciado Detenido o Pausado o Descrip pcin El servicio esta func cionando y disponible. d El servicio no esta d disponible. El servicio esta func cionando, pe ero no esta d disponible. Se S asume que es un estado te emporal.
www.perudev.net
63 3
3.
64
es de datos s de ventas s y finanzas s son identificadas por un nombre e de servicio, Las base sales.us. .acme.com y finance.us.acme.co om respectiv vamente. El nombre de el servicio es e especifica ado por el l parmetro o de inicializacin SERVICE_NAMES en el e archivo de d parmetr ros de inicia alizacin. El nombre del l servicio po or defecto es el nombre e global de la base de datos, d el nombre abarca a el nombre de la base de datos (pa armetro DB B_NAME) y el nombre del d dominio (parmetro DB_DOMAI IN). En el ca aso de sales s.us.acme.c com, sales es e el nombre e de la base e de datos y us.acme.co om es el nom mbre del dom minio. www.perudev.net 65 5
Not ta Es posible p cambiar dinmic camente el valor del pa armetro de SERVICE_NA AMES con n la instruccin SQL ALT TER SYSTEM cuando la base de datos est en servicio. Las sigu uientes instr rucciones co onsultan el valor de los l parmetros SERVI ICE_NAMES S, DB_NAM ME, y DB_DO OMAIN.
SQL L> show para ameter service_names [Enter]
TYPE ME VALUE NAM ------------------------------------ ----------- ----------------------ser rvice_names string orcl.ww ww.perudev.c com SQL L> show para ameter db_name [Enter]
ME VALUE TYPE NAM ------------------------------------ ----------- ----------------------db_ _name string orcl SQL L> show para ameter db_d domain [Enter]
ME TYPE VALUE NAM ------------------------------------ ----------- ----------------------db_ _domain string www.per rudev.com
Una base de datos puede tene er mltiples servicios asociados a a ella. La sig guiente figura muestra una base de d datos que e tiene dos diferentes servicios s pa ara los client tes Web. Un U servicio, book.us.ac cme.com, de edicado a c clientes que e hacen compras de libros. El otro servicio, soft.us.acm me.com, ded dicado a clie entes que ha acen compra as de softwa are. Tener mltiples m se ervicios aso ociados a una base de datos permite la as siguiente es funcionalidades: identificada de diversa p ser i as maneras por diverso os Una base de datos puede clientes. Un administrador de la base de e datos pue ede limitar o reservar recursos del d sistema. Este E nivel de d control permite una asignacin de recursos s mejor a lo os clientes que solicitan uno u de estos s servicios.
66
www.perudev.net
67 7
La siguie ente figura muestra m dos instancias, sales y fina ance, asocia adas con su us respectiva as bases de e datos.
ervicios, las s instancias son identif ficadas por un nombre e de instan ncia, sales y Como se finance en este eje emplo. El nombre n de la instancia a es especi ificado por el parmetro CE_NAME en e el archivo o del parm metro de inic cializacin. E El nombre de la instanc cia INSTANC por defec cto es Oracl le System Identifier I ( (SID) de la in nstancia.
SQL L> show para ameter instance_name [Enter]
Algunas arquitectura as de hardw ware permit ten que m ltiples com mputadoras compartan el p O Oracle Real Applicatio on acceso a los datos, al software, o a los dispositivos perifricos. Clusters pueden aprovechar de d tal arqu uitectura para ejecutar mltiples instancias i e en diversas computador ras que com mpartan una sola base de e datos fsic ca.
68
La siguie ente figura muestra m la co onfiguracin n de Oracle Real Appli ication Clus sters, en es ste ejemplo, dos instan ncias, sales s1 y sales2 2, estn as sociadas co on una bas se de dato os, sales.us.a acme.com.
www.perudev.net
69 9
La seccin ADDRE ESS del descriptor d de conexi n es realmente la direccin d de e o del proce eso escuch ha. Para co onectarse a un servicio o de base de d datos, lo os protocolo clientes primero se contactan con un pro oceso escu ucha que tpicamente t reside en el servidor de base de e datos. El proceso p esc cucha recibe e las solicitu udes de con nexin de lo os clientes y entrega es la stos requerim mientos al se ervidor de base de dato os. Una vez establecida e conexin, el cliente y el servidor se comunican directamente. Como un na direccin comercial, el proceso escucha e es configurado o para acep ptar peticione es de cliente es en una direccin de protocolo. E Esta direcci n define el protocolo que el proces so escucha est escuch hando y algu una otro info ormacin esp pecfica del p protocolo. Por P ejemplo, el proceso escucha po odra ser configurado c para escuc char en la siguiente direccin del d protocolo o:
Este ejem mplo muest tra a una direccin de protocolo TCP/IP T que e especifica el host y un u nmero de d puerto de el proceso escucha. Los s clientes co onfigurados con c esta mis sma direcci n de protoc colo pueden enviar solic citudes de co onexin a es ste proceso e escucha. El descriptor de co onexin tam mbin espec cifica el nom mbre del serv vicio de la base b de dato os con la cu ual los clien ntes intentan n establecer r una conex xin. El proc ceso escuch ha conoce lo os servicios para los cuales puede manejar sol licitudes de conexin, porque una base b de dato os de Oracle e registra dinmicament te esta infor rmacin en el e proceso escucha. Est te proceso d del registro se s llama reg gistro del servicio s . Ta ambin prov vee al proce eso escucha a informaci n sobre las s instancias de la base e de datos y los maneja adores del servicio disp ponibles para cada inst tancia. Los manejadores m s de servicio o actan com mo puntos de d conexin a un servidor de base de datos Oracle. O Un manejador del servicio o puede ser r un despa achador o un u servidor r dedicado. Si se req quiere la co onexin a una instancia a especfica de la base e de datos, entonces lo os clientes tambin t pue eden especif ficar el INST TANCE_NAME de una instancia pa articular en el descripto or de cone exin. Por ejemplo, e el siguiente s de escriptor de e conexin especifica el nombre de d instancia sales1 que esta asocia ada con sale es.us.acme.com.
(DESCRIPTION= ( (ADDRESS=(P ROTOCOL=tcp) )(HOST=sales-server)(PORT=1521)) ( (CONNECT_DA ATA= (SERVICE_ _NAME=sales.us s.acme.com) (INSTANCE E_NAME=sales1) ) )
70
Alternativ vamente, los s clientes qu ue siempre quieren usa ar un tipo pa articular de manejador m d de servicio pueden p usar un descri iptor de conexin que e especifica el tipo de manejador m d de servicio. En el siguie ente ejemplo o, un descriptor de co onexin es configurado c para usar un u ador para una u configuracin de s servidor com mpartido, in ndicado por: (SERVER = despacha shared).
(DESCRIPTION= ( (ADDRESS=(P ROTOCOL=tcp) )(HOST=sales-server)(PORT=1521)) ( (CONNECT_DA ATA= (SERVICE_ _NAME=sales.us s.acme.com) (SERVER=s shared) ) )
Si quer remos que e el client te use un n servidor dedicado, , debemos s especificar (SERVER R=dedicated d) en lugar de (SERVE ER=shared). Si el par metro SERVER no es sta establecido, entonce es la configu uracin de servidor com mpartido es a asumido. Sin n embargo, el cliente us sar servidor dedicado si s no esta dis sponible un despachado or. Cuando el e proceso escucha e recibe los reque erimientos del d cliente, este selecciona uno de lo os manejado ores de ser rvicios que fueron prev viamente re egistrados. D Dependiendo o del tipo de d manejado or de servic cio seleccio onado, el pr rotocolo de comunicac cin usado, y el sistem ma operativo o del servido or de base de d datos, el proceso es scucha ejecu uta una de las siguiente es acciones. Da la peticin de conex xin directam mente a un despachado d or. Enva un mensaje m al cliente c con l la localizaci n del desp pachador el e proceso de d servidor dedicado. d E cliente entonces se conecta El a directame ente con el despachad dor o el proce eso dedicad do del servidor. Genera un proceso de e servidor de edicado y pa asa la conex xin del clien nte al proces so de servidor r dedicado.
eso escucha a haya terminado la ope eracin de co onexin para a el cliente, el Una vez que el proce e comunica a con el ser rvidor de la base de datos d Oracle e sin la par rticipacin del d cliente se proceso escucha. El E proceso escucha e rea asume la es sperar a es scuchar nue evas sesione es entrantes s de la red.
www.perudev.net
71 1
Si el clien nte y el servidor de base e de datos existen e en la misma com mputadora, la a conexin del d cliente puede pasar r directamen nte a un pro oceso de servidor dedicado sin ir r a travs del d proceso escucha. e La a aplicacin que inicia la a sesin gen nera un proc ceso de serv vidor dedicad do para la solicitud s de conexin. c E Esto sucede automticamente si la aplicacin que q es usad da para iniciar la sesin n en la bas se de datos esta en la misma com mputadora de d la base de d datos. Not ta Par ra que los clientes remo otos puedan conectarse con el servidor dedicad do, el pro oceso escuch ha y la instan ncia de la base de datos deben funcionar en la a misma la computadora c a. La siguie ente figura muestra m un proceso es scucha pasa ando la solicitud de conexin de un u cliente a un proceso de servidor dedicado.
72
1. 2. 3.
El proceso p escucha recibe la solicitud de conexin n del cliente. El proceso esc cucha inicia a un proceso o de servidor dedicado o, y el servi idor dedicad do her reda la solici itud de cone exin desde el proceso escucha. e El cliente c es ah hora conecta ado directam mente con el servidor dedicado.
Nomen nclatura
Los usua arios inician una solicitu ud de conex xin proporc cionando un na cadena de d conexin. Una cadena de con nexin incluy ye un nomb bre de usua ario y una c contrasea, junto con un u identifica ador de con nexin. Un identificado or de conexi n puede se er el mismo descriptor de d conexin o un nombre que resuelve a un de escriptor de conexin. U Uno de los id dentificadore es de conex xin ms comunes es un u nombre d de servicio de red, un nombre sencillo para un u servicio. Los ejemplo os siguientes s muestran una u cadena de conexin n que utiliza un descriptor de conex xin complet to como iden ntificador de e conexin y otra caden na de conexi in que utiliz za el nombre e de servicio o de red sale es como ide entificador de e conexin.
NNECT CON scott t/tiger@(DESC CRIPTION=(ADD DRESS=(PROT TOCOL=tcp)(HO OST=sales-serve er1)(PORT=152 21)) (CO ONNECT_DATA= =(SERVICE_NA AME=sales.us.ac cme.com))) NNECT scott/tig ger@sales CON
Cuando el e nombre de d servicio de d red sales s es usado, , el proceso de conexi n resuelve el nombre sales a un n descriptor r de conex xin. Esta informacin del servicio de red es e almacena ada en una o ms repo ositorios de informacin n a la que a acceden con n mtodos de d nomencla atura. El proce eso para es stablecer una sesin del cliente con la ay yuda de un n mtodo de d nomencla atura es com mo sigue: 1. El cliente inicia una solicitud de e conexin proporciona ando un ide entificador de d conexin. 2. El identifica ador de cone exin es res suelto a un descriptor d de e conexin por p un mtod do de nomenc clatura. Esta informacin n se vuelve al a cliente. 3. El cliente realiza la solicitud s de conexin a la direcci n proporcionada por el descriptor de d conexin n. 4. El proceso o escucha recibe la solicitud y la dirige al se ervidor de base de dato os apropiada. 5. n es acepta ada por el se ervidor de ba ase de datos s. La conexi
www.perudev.net
73 3
Oracle Net provee los siguientes s mtodos de e nomenclat tura: Nomenclatura Local ctorios Nomenclatura de Direc Nomenclatura de cone exin sencilla a Nomenclatura Externa
74
sales=(DESCRIPTIO ON= ( (ADDRESS= OL=tcp)(HOST=sales-server)(P PORT=1521) (PROTOCO ) ( (CONNECT_DA ATA= (SERVICE_ _NAME=sales.us s.acme.com) ) )
En este ejemplo, el nombre de e servicio d de red ventas esta apu untando al descriptor de d e DESCRIP PTION. DES SCRIPTION N contiene la a direccin de d protocolo oe conexin contenido en identifica el servicio de d base de datos d destino. Es posibl le configurar r la nomencl latura local d durante o de espus de la a instalacin.
www.perudev.net
75 5
76
Los servi icios soporta ados, es decir, los servicios a los cuales c el pro oceso escuc cha remite la as solicitude es del cliente e, se pueden n configurar r en el archiv vo de listene er.ora o est ta informaci n se puede e registrar dinmicame d nte en el proceso escu ucha. Esta caracterstic ca de registro dinmico o se llama registro r de servicio. E El registro es e realizado por proces so PMON (u un proceso de fondo de d la instan ncia) de ca ada instancia de base de datos que q tenga la configura acin necesa aria en el archivo del pa armetro de inicializaci n de la base e de datos. El registro dinmico del d servicio o no requie ere ninguna a configura acin en el archivo de d listener.o ora.
www.perudev.net
77 7
Para ejec cutar Oracle e Net Conf figuration A Assistant de esde la ven ntana Ejecut tar ejecute el programa a netca, tal como c se ilus stra a continuacin:
Esta her rramienta nos n permitir r realizar cualquier configuraci c n del proc ceso escuch ha posterior a la instalac cin.
78
Glosa ario
ADDRESS S Direccin n de protocolo de red de el listener. Cuando se s realiza un na conexin, el cliente y el listener se s configuran n con direc cciones de protocolo idnticas. El cliente utiliza esta e direccin para enviar r la solicitud de conexin n a una ubic cacin de listener concreta, c mie entras el liste ener "recibe e" solicitudes s de dicha direccin. A continu uacin, se m muestra una direccin d de e ejemplo:
DRESS= (ADD (PROTOCOL=tc cp) (HOST=sales-se erver) (PORT=1521) )
Archivo de d configurac cin que con ntiene nomb bres de servi icio de red asignado os a descript tores de conexin. Este archivo se utiliza u para el e mtodo de d nomencla atura local. El archivo o tnsnames. .ora debe residir en una de las sigui ientes ubicacion nes: Direc ctorio especi ificado por la a variable de e entorno TN NS_ADMIN. Si la variable de entorno TNS S_ADMIN no o est defini ida como una variable v en W Windows NT T, puede que e est en el registro. Direc ctorio de con nfiguracin global g del no odo. Para Su un Solaris, este directorio es s /var/opt/o oracle. Wind dows NT no tiene un directorio normal l. El dir rectorio $OR RACLE_HOM ME/network k/admin en UNIX o el directorio ORACL LE_HOME\network\ad dmin en siste emas ativos Windo ows. opera
Cadena de Conexi n (Connect t String) Info ormacin que e el usuario transfiere a un servicio para cone ectarse, com mo el nombre de usuario o, la contrasea y el identificador de cone exin:
www.perudev.net
79 9
(Connect t Descriptor) ) Descripcin n con format to especial del d destino de una co onexin de r red. Un desc criptor de co onexin cont tiene informaci in sobre el servicio des stino y la ruta a de red. Descripci in formatea ada de forma a especial del destino de e una conexin de red. Los desc criptores de c conexin contienen el se ervicio de de estino que se identifica mediante el nombre de e servicio de las bases de d datos Oracle10 0g, Oracle9i u Oracle8i o el identifica ador del siste ema Oracle (SID) de las bases de e datos Orac cle8 u Oracle7.
Direcci n de Protocolo
dentifica la direccin d de red de un ob bjeto de red. (Protocol Address) Id Cuando se s realiza un na conexin, el cliente y el receptor de la solicitud, por ejemplo o el listener, se configura an con direc cciones de protocolo o idnticas. E El cliente util liza esta dire eccin para enviar la solicitud de d conexin n a una ubica acin concre eta de un ob bjeto de la red, mien ntras que el receptor "rec cibe" solicitu udes de dich ha direccin. . Es import tante instala ar los mismo os protocolos s para el rec ceptor y el cliente de e la conexin n, as como configurar la as mismas direcciones. d La direcc cin de proto ocolo consta de un elemento denom minado ADDRES SS.
(Connect t Identifier) N Nombre, nom mbre de serv vicio de red o nombre de e servicio que q se resue elve en un descriptor de conexin. Los L usuarios s inician un na solicitud de d conexin mediante la a transferenc cia de un nombre de d usuario y una contras sea junto co on un identif ficador en una cade ena de conex xin para el servicio al q que desea co onectarse (Naming Methods) M Mtodo de resolucin utilizado por un na aplicacin n cliente pa ara resolver un identifica ador de cone exin en un descriptor de conexin al conectar rse a un serv vicio de la ba ase de datos s. La Red de e Oracle so oporta cuatro o mtodos de d nomencla atura: Nome enclatura Lo ocal Nome enclatura de e Directorios s Nome enclatura de e conexin sencilla s (denominado anteriormente Nome enclatura de el host) Nome enclatura Ex xterna
80
Nombre de Servicio o (Net Serv vice Name) N Nombre sen ncillo del serv vicio que se resuelve en n de Red un descri iptor de cone exin. Los usuarios u inici ian una solic citud de conexin mediante el e envo de un nombre de e usuario y una u contrase a junto con n un identificador en una a cadena de conexin para el se ervicio al que desea con nectarse:
CONNECT usuario/contrasea@no ombre_servicio_r red
Segn su us necesidad des, los nom mbres de ser rvicio de red se pueden almacena ar en distinta as ubicacion nes, por ejem mplo: Archi ivo de config guracin loca al, tnsnames s.ora, de cad da cliente Servi idor de direc ctorios Oracle Names Server Servi icio de nome enclatura ex xterna, incluy yendo Servic cio de Inform macin de R Red (NIS) o Servicio S de D Directorio de e Celdas (CDS S)
clatura Loca al (Local Na Nomenc aming) Mto odo de nome enclatura que e resuelve el e nombre de e servicio de d red, alma acenado en el e archivo tnsnames.ora del cliente en un des scriptor de conexin. c La a nomenclatu ura local es ms aconsejable para red des de distrib bucin simple con un n mero reducido de servicios s que cambia an en muy r raras ocasion nes. Proceso Escucha (Listener) ) Proceso qu ue reside en n el servidor cuya respon nsabilidad es s la de reci ibir solicitude es de conex xin de client tes y gestion nar el trfico o al servido or. Cada vez z que un clie ente solicita una sesin d de red con un u servidor, el listener recibe la so olicitud real. Si la inform macin del cliente coincide con la inform macin del listener, ste e otorga una conexin al servidor. Registro o de Servicio o (Service Registration n) Funcin mediante m la c cual el proce eso PMON (proceso en segundo o plano de in nstancias) re egistra inform macin automtic camente en el proceso escucha. e Ya a que esta in nformacin se registr ra en el proc ceso escucha, no es nec cesario conf figurar el archivo listener.ora c con esta informacin esttica. El registro del servicio proporcion na al proces so escucha la siguiente informaci in: Nombre de servicio para cad da instancia en ejecucin de la base e de da atos Nombres de insta ancias de la a base de da atos Mane ejadores de servicios (distribuidores s y servidor dedicado) d dispo onibles para la instancia Inform macin de c carga de nod dos, instancias y distribu uidores
Esta infor rmacin per rmite al proceso escucha a determinar r cmo se debe realizar el servicio de solicitud de cone exin de un cliente. c
www.perudev.net
81 1
Servicio de Mtodo de d nomencla atura externa a que permit te a los usua arios utilizar Director rio de Celda as de forma transparent te las herram mientas y ap plicaciones de d Oracle (CDS) eder a las ba ases de dato os Oracle en n un entorno o DCE para acce (Distribut ted Computing Environm ment). Servicio de cin de Red d Informac (NIS) r Dedicado Servidor SID k Information n Service) Pr rotocolo clien nte/servidor de las (Network Pginas Amarillas A (yp) de Sun Microsystems M s para la dist tribucin de datos sob bre la configuracin del sistema (como los nomb bres de usuario y del host) en ntre las com mputadoras d de una red. (Dedicate ed Server) Proceso P del servidor s ded dicado a una a conexin del cliente. S Ident tifier) Nombr re que identifica una ins stancia (Oracle System concreta de una base e de datos en e ejecucin. Por cada base b de datos, ha ay al menos una instancia que hace referencia a ella. Para las bases de da atos anterior res a Oracle8 8i, se utilizaba el SID para iden ntificar la bas se de datos. . El SID se in nclua en la parte del descripto or de conexi n del archiv vo tnsnames s.ora y en la definicin del listener en el arch hivo listener.ora. Los descriptores de conexin utilizados s por los clie entes para la a conexin a la base de datos Oracle8 u Oracle7 de eben estar configurados c s con el par metro SID.
82
Leccin 07
Administracin de la Instancia
Contenido Parmetros de Inicializacin El archivo initSID.ORA (PFILE) El Archivo SPFileSID.ORA (SPFILE) Modificando Valores de los Parmetros 84 85 87 88 94 97 97 100 101 103
Dimensionando el SGA Manejo de Sesiones Sesin Restringida Finalizar una Sesin Terminar una Sesin
Archivos de Alertas
84
######### ######### ######### ######### ################## ########### ###### ########### C (c) 1991, 2001, 2002 2 by Oracle Cor rporation # Copyright ########### ######### ######### ######### ######### ################## ###### ########### ######### ######### ######### ######### # ########### C and I/O # Cache ########### ######### ######### ######### ######### # block_size=8192 db_b db_f file_multiblock_r read_count=8 ########### ######### ######### ######### ######### # ob Queues # Jo ########### ######### ######### ######### ######### # _queue_processe es=10 job_ ######### ######### ######### ######### # ########### n # File Configuration ######### ######### ######### ######### # ########### trol_files=("C:\o oracle\product\ \10.2.0/oradata a/egcc/oradata a\control01.ctl", , cont "C:\ \oracle\product t\10.2.0/orada ata/egcc/oradat ta\control02.ctl", "C:\ \oracle\product t\10.2.0/orada ata/egcc/oradat ta\control03.ctl") ######### ######### ######### ######### # ########### C and Libra ary Cache # Cursors ########### ######### ######### ######### ######### # open n_cursors=300 ######### ######### ######### ######### # ########### D and Statistics S # Diagnostics ########### ######### ######### ######### ######### # back kground_dump_ _dest=C:\oracle\product\10.2.0/admin/egcc/bdump core e_dump_dest=C:\oracle\product\10.2.0/adm min/egcc/cdump p user r_dump_dest=C:\oracle\product\10.2.0/adm min/egcc/udump p ########### ######### ######### ######### ######### # # Database D Identific cation ########### ######### ######### ######### ######### #
www.perudev.net
85 5
86
Reglas para especific car parmet tros son opciona Todos los parmetros p ales Especificar r los valores en el forma ato siguiente: parmetro o = valor El servidor tiene valore es por defect to para cada a parmetro que depend den del SO etro pueden n ser especif ficados en cu ualquier orde en Los parme Los comen ntarios de ln nea van desp pus del sign no # Se puede incluir un arc chivo de par rmetros den ntro de otro con el parm metro IFILE Un parmetro con va alores mlt tiples, los valores v se deben especificar entre parntesis separados con c comas
EATE SPFILE [= = nombre y ruta a del archivo sp pfile] CRE F FROM PFILE [= = nombre y ruta a del archivo pfile];
Ejemplo 1
SQL L> conn / as s sysdba Con nnected. SQL L> shutdown immediate Dat tabase close ed. Dat tabase dismo ounted. ORA ACLE instanc ce shut down. [ [Enter]
[ [Enter]
www.perudev.net
87 7
[ [Enter]
Algunos parmetros son dinmi icos, lo que quiere decir, que se p pueden modificar su valor sin neces sidad de bajar la base de datos.
88
Ejemplo 2
SQL L> column na ame format a40 SQL L> 2 3 4 [Enter r]
select na ame, isses_ _modifiable, , issys_modi ifiable from v$sy ystem_param meter where iss sys_modifiable != 'FAL LSE' order by 1; [Enter r] ISSES S ----FALSE E FALSE E FALSE E FALSE E TRUE E FALSE FALSE E FALSE E FALSE E TRUE E FALSE FALSE E FALSE E TRUE TRUE TRUE E FALSE FALSE E FALSE E TRUE TRUE TRUE TRUE TRUE TRUE TRUE E FALSE FALSE E FALSE E FALSE E FALSE E FALSE E FALSE E FALSE E FALSE E FALSE E TRUE E FALSE FALSE E FALSE E FALSE E FALSE E FALSE E FALSE E FALSE E FALSE E FALSE E FALSE E FALSE E TRUE E FALSE FALSE E FALSE E ISSYS_MOD D --------IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E DEFERRED IMMEDIATE E DEFERRED IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E IMMEDIATE E
NAM ME ---------------------------------------aq_ _tm_processe es arc chive_lag_ta arget asm m_diskgroups s asm m_diskstring g asm m_power_limi it aud dit_file_des st bac ckground_dum mp_dest bac ckup_tape_io o_slaves cir rcuits com mmit_write con ntrol_file_r record_keep_time cor re_dump_dest t cpu u_count cre eate_stored_ _outlines cur rsor_sharing g db_ _block_check king db_ _block_check ksum db_ _cache_advic ce db_ _cache_size db_ _create_file e_dest db_ _create_onli ine_log_dest_1 db_ _create_onli ine_log_dest_2 db_ _create_onli ine_log_dest_3 db_ _create_onli ine_log_dest_4 db_ _create_onli ine_log_dest_5 db_ _file_multib block_read_ _count db_ _flashback_r retention_target db_ _keep_cache_ _size db_ _recovery_fi ile_dest db_ _recovery_fi ile_dest_size db_ _recycle_cac che_size db_ _16k_cache_s size db_ _2k_cache_si ize db_ _32k_cache_s size db_ _4k_cache_si ize db_ _8k_cache_si ize ddl l_wait_for_l locks dg_ _broker_conf fig_file1 dg_ _broker_conf fig_file2 dg_ _broker_star rt dis spatchers drs s_start fal l_client fal l_server fas st_start_io_ _target fas st_start_mtt tr_target fas st_start_par rallel_rollback fil le_mapping fix xed_date glo obal_names hs_ _autoregiste er jav va_pool_size e job b_queue_proc cesses
www.perudev.net
89 9
90
Ejemplo 3
SQL L> conn syst tem/manager Con nnected. SQL L> show para ameter session_cached_ _cursors [ [Enter]
[ [Enter]
TYPE ME VALUE NAM ------------------------------------ ----------- ----------------------ses ssion_cached d_cursors integer 0 SQL L> alter ses ssion set ssion altere ed. Ses session_cac ched_cursors s = 30; [ [Enter]
www.perudev.net
91 1
Ejemplo 4
SQL L> conn / as s sysdba Con nnected. SQL L> show para ameter open_cursors [ [Enter]
[ [Enter]
ME TYPE VALUE NAM ------------------------------------ ----------- ----------------------ope en_cursors integer 300 SQL L> alter sys stem set open_cursors = 200; Sys stem altered d. SQL L> show para ameter open_cursors [ [Enter]
[ [Enter]
Ejemplo 5
SQL L> conn / as s sysdba Con nnected. SQL L> show para ameter java_pool_size; ; [Enter r]
[Enter r]
ME TYPE NAM VALUE ------------------------------------ ----------- -----------------------jav va_pool_size e big integ ger 2097152 20 SQL L> alter sys stem set java_pool_siz ze = 0 scope e = spfile; Sys stem altered d. [Enter r]
92
ME TYPE VALUE NAM ------------------------------------ ----------- ----------------------jav va_pool_size e big integ ger 2097152 20 SQL L> shutdown immediate Dat tabase close ed. Dat tabase dismo ounted. ORA ACLE instanc ce shut down. SQL L> startup ORA ACLE instanc ce started. tal System Global G Area Tot Fix xed Size Var riable Size Dat tabase Buffe ers Red do Buffers Dat tabase mount ted. Dat tabase opene ed. 8 72424008 453192 2 54525952 2 16777216 6 667648 8 bytes bytes bytes bytes bytes [Enter r]
[Enter r]
[Enter r]
TYPE ME NAM VALUE ------------------------------------ ----------- ----------------------jav va_pool_size e big integ ger 0
www.perudev.net
93 3
Dimen nsionando el SG GA
El tamao de SGA pude variar sin tener que e reiniciar el servidor, es por ello que e se define un u ro llamado SGA_MAX_ S SIZE y SGA A_TARGET para limitar el crecimien nto. parmetr
Figura 7 . 2 El SGA A El tamao del SGA esta e determin nado por los s siguientes parmetros de inicializa acin: GA_MAX_SI IZE SG Establece el mximo tamao t que puede aloja ar el SGA cuan ndo se levanta la instanc cia de base de d datos. Este parmetro o permitir a aumentar el tamao de e la SGA sin n necesidad de iniciar la instancia, teniendo en n cuenta que e el total del SGA no exceda a este parm metro. (Oracle 10 0g r1) Espec cifica el total de tamao que dispondr la SGA cua ando la instancia se inicia. Si utilizamos este parm metro no tend dremos nece esidad de definir los valores para p db_cac che_size, shared_po ool_size, lar rge_pool_si ize, java_pool_ _size puesto o que oracle e automtica amente ajusta esto os compone entes incluye endo stream_pool_size. Determina a el tamao del d Databas se Buffer Ca ache en bytes. a el nmero de bytes del Redo Log Buffer B Determina Cache. Especifica a el tamao en e bytes del Shared Poo ol.
SG GA_TARGET T
SH HARED_POO OL_SIZE
94
ST TREAMS_PO OOL_SIZE
Determina a el tamao de d Oracle Streams, que e le permite a la versin EE compartir datos y eve entos en un amb biente distrib buido. Cuando el l parmetro STREAMS_ _POOL_SIZE E no es asignad do, se utiliza a memoria del shared po ool, hasta un 10% 1 de su ta amao.
Indica el ta amao en by ytes del Large Pool por defecto es s cero. Determina a el tamao del d bloque O Oracle prima ario en bytes, el b bloque Oracle es la unida ad de lectura o escritura.
El SGA como c estruc ctura dinmi ica utiliza un d granularid da el cual es e un espac cio na unidad de contiguo de memoria a, esta unida ad depende e del tamao o definido pa ara el SGA, as la unida ad de granularida es 4M MB si el SGA A es menor o igual que 1 GB y 16 M MB si el SGA A es mayor a 1 GB. El tamao de las estructuras del SGA puede e cambiar en n proporcion nes mltiplos s de la unida ad de granu ularida, pode emos consu ultar V$SGA A_DYNAMIC C_COMPONENTS para consultar lo os compone entes dinmi icos del SGA A y el tama o granular utilizado. u
www.perudev.net
95 5
Ejemplo 6
SQL L> select co omponent, current_size e, granule_s size 2 from v$sg ga_dynamic_ _components; ;
[ [Enter]
MPONENT IZE GRANULE E_SIZE CURRENT_SI COM ----------------------------------- ------------ -----------sha ared pool 629145 560 41 194304 lar rge pool 41943 304 41 194304 jav va pool 41943 304 41 194304 str reams pool 0 41 194304 DEF FAULT buffer r cache 384 41 194304 880803 KEE EP buffer ca ache 0 41 194304 REC CYCLE buffer r cache 0 41 194304 DEF FAULT 2K buf ffer cache 0 41 194304 DEF FAULT 4K buf ffer cache 0 41 194304 DEF FAULT 8K buf ffer cache 0 41 194304 DEF FAULT 16K bu uffer cache 0 41 194304 DEF FAULT 32K bu uffer cache 0 41 194304 ASM M Buffer Cac che 0 41 194304 ccionadas. 13 filas selec
[ [Enter]
ME VALUE NAM TYPE ------------------------------------ ----------- -------------db_ _cache_size big integ ger 44M SQL L> alter sys stem set db_cache_size e = 47M; stema modifi icado. Sis SQL L> show para ameter db_cache_size [ [Enter] [ [Enter]
ME VALUE TYPE NAM ------------------------------------ ----------- ---------------db_ _cache_size big integ ger 48M
96
Manej jo de Se esiones
Ejemplo 7
SQL L> conn / as s sysdba Con nnected. SQL L> select lo ogins from v$instance; ; GINS LOG ---------ALL LOWED SQL L> alter sys stem enable Sys stem altered d. restricte ed session; [Enter r] [Enter r]
[Enter r]
SQL L> select lo ogins from v$instance; ; GINS LOG ---------RES STRICTED
[Enter r]
SQL L> conn scot tt/tiger [Enter r] ERR ROR: ORA A-01035: ORA ACLE only available to o users with h RESTRICTE ED SESSION privilege p
www.perudev.net
97 7
Tambin podemos restringir r el acceso a la base de datos con el comando STARTUP, cuando in niciamos la base b de dato os. Sintaxis: :
Ejemplo 8
SQL L> conn / as s sysdba Con nnected. SQL L> shutdown immediate; Dat tabase close ed. Dat tabase dismo ounted. ORA ACLE instanc ce shut down. SQL L> startup restrict r ORA ACLE instanc ce started. tal System Global G Area Tot Fix xed Size Var riable Size Dat tabase Buffe ers Red do Buffers Dat tabase mount ted. Dat tabase opene ed. 8 93395628 453292 2 75497472 2 16777216 6 667648 8 bytes bytes bytes bytes bytes [Ent ter]
[Ent ter]
[Ent ter]
SQL L> select lo ogins from v$instance; ; GINS LOG ---------RES STRICTED
[Ent ter]
El rol DB BA tambin concede c el privilegio p RE ESTRICTED SESSION, por lo tanto o, los usuario os a los que e se asigna este e rol tamb bin podrn iniciar sesi n en modo restringido.
98
Inicialmente los usua arios que pue eden conect tarse en modo restringid do son: SYS SYSTEM
Ejemplo 9
SQL L> conn / as s sysdba Con nnected. SQL L> grant res stricted session to sc cott; Gra ant succeede ed. SQL L> conn scot tt/tiger Con nnected. [Ent ter]
[Ent ter]
[Ent ter]
Ejemplo 10
SQL L> conn / as s sysdba Con nnected. SQL L> revoke re estricted session from m scott; Rev voke succeed ded. [ [Enter]
[ [Enter]
SQL L> conn scot tt/tiger [ [Enter] ERR ROR: ORA A-01035: ORA ACLE only available to o users with h RESTRICTE ED SESSION privilege p
www.perudev.net
99 9
Ejemplo 11
SQL L> select si id,serial#,username,st tatus,BLOCKI ING_SESSION N 2 from v$se ession; SID SERI IAL# USERNA AME ---- ---------- ----------------141 18 SCOTT 144 16 SCOTT 146 70 148 18 SCOTT 149 2 152 11 SYS 154 1 158 4 160 1 161 1 162 1 163 1 164 1 165 1 166 1 167 1 168 1 169 1 170 1 ccionadas. 19 filas selec L> alter sys stem SQL 2 disconnec ct session '144,16' po ost_transact tion; Sys stem altered d.
[Enter]
S STATUS BLO OCKING_SESS SION -------- ---------------A ACTIVE 144 I INACTIVE A ACTIVE A ACTIVE 144 A ACTIVE A ACTIVE A ACTIVE A ACTIVE A ACTIVE A ACTIVE A ACTIVE A ACTIVE A ACTIVE A ACTIVE A ACTIVE A ACTIVE A ACTIVE A ACTIVE A ACTIVE
[Enter]
Si scott despus d de terminar transaccin int tenta hacer otra operaci in, Oracle le l mostrar el siguiente e mensaje de e error:
ERR ROR at line 1: ORA A-00028: your session has bee en killed
100
Ejemplo 12
SQL L> select SI ID,SERIAL#,USERNAME,st tatus from v$session; v SERIAL# SID -------- -----------1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 5 12 195 ted. 10 rows select L> alter sys stem kill session '12, ,195' immedi iate; SQL stem altered d. Sys SQL L> select SI ID,SERIAL#,USERNAME,st tatus from v$session; v SID SERIAL# -------- -----------1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 5 12 195 ted. 10 rows select [Enter] [Enter] [Enter]
USERNAME STA ATUS ------------------------------ -------ACT TIVE ACT TIVE ACT TIVE ACT TIVE ACT TIVE ACT TIVE ACT TIVE ACT TIVE ACT TIVE SYS INA ACTIVE SCOTT
ATUS USERNAME STA ------------------------------ -------ACT TIVE ACT TIVE ACT TIVE ACT TIVE ACT TIVE ACT TIVE ACT TIVE ACT TIVE ACT TIVE SYS KIL LLED SCOTT
www.perudev.net
10 01
Tambin podemos re evisar los bloqueos de las sesione es con la he erramienta Oracle O EM, t tal como se muestra en la siguiente figura.
102
La localiz zacin del ar rchivo de ale erta la define e el parmet tro BACKGR ROUND_DU UMP_DEST.
www.perudev.net
10 03
104
Leccin 08
Administracin del Archivo de Control
Contenido Qu es el Archivo de Control? Establecer el Nombre de los Archivos de Control Multiplexado el Archivo de Control Creando Copias Adicionales, Renombrando y Reubicando Archivos de Control Mostrando Informacin del Archivo de Control 106 107 108 109 111
El archivo o de control contiene: El nombre de la base de d datos Nombre y ubicacin u de e los data file es y redo log g files Fecha y ho ora de la creacin de la b base de dato os El nmero actual de la secuencia d del log Informacin n de los che eckpoints
El archivo de control debe estar r disponible para escritu ura por el se ervidor de base b de dato os siempre que la base e de datos est e abierta. Sin el archivo de con ntrol, la base e de datos no n puede se er montada y es difcil re ecuperarla. El archivo o de control l de una bas se de datos se crea al mismo tiempo que la ba ase de dato os. Por defec cto, por lo menos m una copia c del ar rchivo de co ontrol se cre ea durante la a creacin de d base de datos. En n algunos sistemas ope erativos por r defecto es s crear cop pias mltiple es. Debes cr rear dos o ms m copias del d archivo d de control durante la cre eacin de base de dato os. Puedes tambin t cre ear archivos de control ms adelan nte, si pierdes archivos s de control o deseas cambiar c valores particula ares en los archivos a de control. c
106
ME VALUE TYPE NAM ----------------------- ----------- -----------------------------con ntrol_files string C:\ORACLE\ \PRODUCT\10 0.2.0\ORADA TA\EGCC\CO ONTROL01.CT TL, C:\ORAC LE\PRODUCT T\10.2.0\OR RADATA\EGCC \CONTROL02 2.CTL, C:\O ORACLE\PROD UCT\10.2.0 0\ORADATA\E EGCC\CONTRO L03.CTL
Si no especifica los archivos en n el parme etro CONTR ROL_FILES antes de la a creacin de d base de datos: d Si no esta a utilizando el Administ trador de Archivos de Oracle (Ora acle-Manage ed Files), ento onces la bas se de datos crea un arc chivo de con ntrol y usa un u nombre de d archivo por r defecto. El nombre po or defecto de epende del sistema s oper rativo. Si estas utilizando u el e Administr rador de Archivos de Oracle, en ntonces deb be establecer el parmetr ro de inicializacin que determina el nombre y la ubicaci n de los arch hivos de cont trol, Si estas utilizando u el Administrad dor de Almacenamiento o Automtic co (Automat tic Storage Management) ), puedes po oner nombre es de archiv vos incompl letos en ASM y en los parmetro os de inicializaci n DB_CR REATE_FILE_DEST DB_RECO OVERY_FILE E_DEST. AS SM crea automticamen nte los archiv vos de contr rol en los luga ares apropiad dos.
www.perudev.net
10 07
Not ta Ora acle recomie enda fuertem mente que t toda base de e datos teng ga un mnimo o de dos s archivos de e control y que q estn sit tuados en di iscos fsicos separados. Una form ma para mu ultiplexar arc chivos de c control es almacenar a una copia de el archivo de d control en e discos diferentes. d Almacenan ndo archivo os de contro ol en disco os diferente es, reducimo os al mnimo o el riesgo cuando c falle e uno de los s discos. Lo o que se bu usca es evitar hacer un proceso de recovery.
108
Crean ndo Copias Adic cionales s, Renom mbrando o y Reubicando o Archiv vos de Control C
Se puede e crear una copia adicional del arc chivo de con ntrol para multiplexarlo, m , copiando un u archivo de d control ex xistente a un na nueva ub bicacin y agregando a el nombre de el archivo a la lista de los l archivos s de control l. De mane era similar, podemos r renombrar un u archivo de d control ex xistente cam mbiando el nombre n del archivo a o ca ambiando su u ubicacin, y cambiand do el nombr re del archiv vo en la lista a de archivo os de contro ol. En ambo os casos, pa ara garantizar que los archivos a de control c no ca ambian dura ante el proce eso, cerrar la a base de datos antes de d copiar el archivo de control. c egar una copia multiplex xada del arc chivo de con ntrol actual o renombrar un archivo de d Para agre control, debe d seguir los l siguiente es pasos: 1. Cerrar la ba ase de datos 2. Copie un archivo a de control c existente a una nueva ubica acin, usand do comando os del Sistema a Operativo. . 3. Corrija el parmetro p CO ONTROL_FILES en el archivo a de parmetro de e inicializaci n de base de e datos para a aadir el nu uevo nombre del archivo o de control, o cambiar el nombre del archivo de control exis stente. 4. Inicie de nu uevo la base e de datos.
www.perudev.net
10 09
2. Realizamos s copia del archivo a de c control en C:\ \CTLFILE y D:\CTLFILE E. os el parm metro CONT TROL_FILES S en el arc chivo de pa armetros de d 3. Modificamo inicializaci n.
SQL L> startup nomount n Ins stancia ORAC CLE iniciad da. tal System Global G Area Tot Fix xed Size Var riable Size Dat tabase Buffe ers Red do Buffers 0 167772160 1247876 6 71304572 2 88080384 4 7139328 8 bytes bytes bytes bytes bytes [Enter]
SQL L> alter sys stem set 2 control_f files='c:\ctlfile\cont trol01.ctl', ,'d:\ctlfil le\control02 2.ctl' 3 scope=spf file; [Enter] stema modifi icado. Sis
[Enter]
TYPE ME V VALUE NAM --------------------- ----------- -----------------------------con ntrol_files C C:\CTLFILE\C CONTROL01.C CTL, D:\C string T TLFILE\CONTR ROL02.CTL
110
V$PARA AMETER
Ejemplo 3
SQL L> select na ame from v$controlfile e; ME NAM -----------------------------C:\ \CTLFILE\CON NTROL01.CTL D:\ \CTLFILE\CON NTROL02.CTL [Ent ter]
www.perudev.net
11 11
Pgina a en Blanco
112
Leccin 09
Administracin del los Redo Logs
Contenido Que es el Redo Log? Redo Threads Contenido del Redo Log Como Oracle Database Graba en los Redo Log 114 114 114 115 118 118 119 119 120 121 121 121 123 123
Planificacin de los Redo Log Files Multiplexado de los Redo Log Files
Creando Groupos y Miembros Redo Log Creando Grupos Redo Log Creando Miembros Redo Log
Eliminando Grupos y Miembros Redo Log Eliminando Grupos Redo Log Eliminando Miembros Redo Log
Redo Threads T
Cada ins stancia de ba ase de datos s tiene su propio redo log l groups s. Estos red do log group ps, multiplexados o no, llaman l a un thread de l la instancia de redo. En n configurac ciones tpica as, slo una instancia de e base de datos d tiene a acceso a una Base de datos d de Or racle, tan s lo un hilo est e presen nte. En Or racle Real A Application Clusters, sin embargo o, dos o m s instancias simultnea amente tiene e acceso a u una sola bas se de datos y cada insta ancia tiene su s propio thread de redo o. En esta leccin des scribir como o configurar r y administ trar el redo log en una a instancia de d Base de datos de Oracle O estnd dar. El nm mero de thre ead que pue ede ser asumido es 1 en e todas las s discusiones s y los ejemplos desarro ollados.
Vector de d Cambio: Describe D un cambio c simple e en un bloque de datos de e la BD. Entre e otros datos, , contiene el e nmero de versin, el c digo de la tra ansaccin, y la l direccin d del bloque afe ectado.
114
aun cuan ndo algunos redo record ds puede no ser confirmados. Si fue era necesar rio, la base de d datos pue ede cancela ar estos cambios.
Figura 9 . 1 Reutiliza acin de los Redo Log F Files por el proceso LGW WR
www.perudev.net
11 15
Llenado los l redo log files estn disponibles d p para ser reutilizacin po or LGWR, de ependiendo si esta habi ilitado el modo archivado. Si el arc chivado esta deshabi ilitado (la base de datos est en mod do NOARCHIV VELOG), un n redo log file e lleno vuelv ve a estar di isponible despus de qu ue los cambios registrados en l son grabados g en n los archivo os de datos. Si el archiv vado esta ha abilitado (la base de datos est en el modo AR RCHIVELOG G), un redo lo og file lleno o vuelve a estar disponible despu us de que los cambio os registrados s en l han sido s grabados en los ar rchivos de d datos y el ar rchivo ha sid do archivado.
La base de datos Oracle O utiliza a solo un red do log file al a mismo tie empo para almacenar a lo os redo rec cords desde e el redo lo og buffer. El redo log g file que LGWR L actualmente es sta escribiendo es llamad do current redo r log file. . Los redo log files qu ue son reque eridos para un proceso de recuperacin de la instancia so on llamados s active redo o log files. Los L redo log g files que ya a no son req queridos par ra un proces so de recupe eracin de la a instancia son s llamados s inactive re edo log files. Si la bas se de datos est en el modo ARCH HIVELOG, entonces e la base de da atos no pued de reutilizar o sobre-es scribir un re edo log file en lnea ac ctivo (active e) hasta que e uno de lo os procesos s de archivad do de fondo o (ARCn) ha aya archivad do su conten nido. Si la base b de dato os est en el modo NO OARCHIVELOG, enton nces cuando o el ltimo redo log file e es llenado, LGWR co ontinua reuti ilizando el primer archiv vo activo (act tive) disponi ible.
116
La Base de datos Oracle O asigna a a cada red do log file un u nuevo log g sequence number cad da ch ocurre y LGWR L empi ieza a graba ar. Cuando la base de datos archiv va vez que un log switc s log archiva ados conserv van su log sequence s nu umber. A un n redo log fi ile los redo log files, los que es c clicamente utilizado se le asignara el siguiente log sequenc ce number disponible. d Cada red do log file en e lnea o archivado a es s nicamente identifica ado por su log sequenc ce number. Durante una falla, la instancia, o la recuper racin de medios, m la base de dato os aplica correctamente e los redo log g files en ord den ascende ente usando o el log sequ uence number de los red do log files. Ejemplo 2
SQL L> alter sys stem switch logfile; stema modifi icado. Sis SQL L> select gr roup#,members,status,s sequence# fr rom v$log; MEMBERS GROUP# -------- -----------1 1 2 1 3 1 STATUS SEQUEN NCE# ---------------- ---------ACTIVE 50 CURRENT 51 INACTIVE 49 [Enter r] [Enter r]
www.perudev.net
11 17
Figura 9 . 2
El multiplexado de lo os redo log files se llam man groups (grupos). C Cada redo lo og files en un u grupo se e llama un member m (m miembro). En E Figura 9.2, 9 A_LOG1 1 y B_LOG1 ambos so on miembros s del grupo o 1, A_LOG G2 y B_LO OG2 ambos son miemb bros del grupo 2, y as a sucesivamente. Los miembros en e un grupo debe ser ex xactamente del mismo tamao. t Cada mie embro de un u log file group es sim multneamen nte activo (e es decir, el LGWR grab ba simultne eamente en cada uno de ellos) se egn lo indicado por lo os log sequence number idnticos asignados por el LGWR. En la Fig gura 9.2, prim mer LGWR escribe simultneamente en A_LO OG1 y B_LO OG1. Luego o graba sim multneamente en A_L LOG2 y B_ _LOG2, y as a sucesivamente. LGW WR nunca escribe e sim multneamen nte en miem mbros de div versos grupo os (por ejem mplo, en A_L LOG1 y B_LO OG2).
118
ALTER DATABASE A ADD LOGFILE [GROUP [ #] ( ('especificacin especificacin de e archivo 1') de archivo 1', 'e S SIZE n {K|M}
Ejemplo 3
SQL L> alter dat tabase 2 add logfi ile 3 ('C:\o oracle\produ uct\10.2.0\ \oradata\egc cc\redo04a.log', 4 'C:\or racle\produc ct\10.2.0\o oradata\egcc c\redo04b.log') 5 size 10M; ; se de datos modificada. Bas SQL L> select gr roup#,members,status,s sequence# fr rom v$log; MEMBERS GROUP# -------- -----------1 1 2 1 3 1 4 2 STATUS SEQUEN NCE# ---------------- ---------INACTIVE 50 CURRENT 51 INACTIVE 49 UNUSED 0 [Ent ter]
ter] [Ent
L> select gr roup#, member from v$l logfile SQL 2 order by 1 asc, 2 asc; GROUP# ---------1 2 3 4 4 MBER MEM -------------------------------------------------C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO01.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO02.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO03.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO04A A.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO04B B.LOG
[Ent ter]
www.perudev.net
11 19
Ejemplo 4
SQL L> select gr roup#,members,status,s sequence# fr rom v$log; GROUP# MEMBERS -------- -----------1 1 2 1 3 1 4 2 SEQUEN NCE# STATUS ---------------- ---------INACTIVE 50 CURRENT 51 INACTIVE 49 UNUSED 0 [Enter]
L> alter dat tabase add logfile mem mber SQL 2 'C:\oracl le\product\10.2.0\orad data\egcc\re edo01B.log' 3 to group 1; se de datos modificada. Bas SQL L> select gr roup#,members,status,s sequence# fr rom v$log; GROUP# MEMBERS -------- -----------1 2 2 1 3 1 4 2 SEQUEN NCE# STATUS ---------------- ---------INACTIVE 50 CURRENT 51 INACTIVE 49 UNUSED 0
[Enter]
[Enter]
L> select gr roup#, member from v$l logfile SQL 2 order by 1 asc, 2 asc; GROUP# ---------1 1 2 3 4 4
[Enter]
MEM MBER -------------------------------------------------C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO01B B.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO01.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO02.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO03.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO04A A.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO04B B.LOG
120
Ejemplo 5
SQL L> select gr roup#,members,status,s sequence# fr rom v$log; MEMBERS GROUP# -------- -----------1 2 2 1 3 1 4 2 STATUS SEQUEN NCE# ---------------- ---------INACTIVE 50 CURRENT 51 INACTIVE 49 UNUSED 0 [Enter] [Enter]
L> alter dat tabase drop logfile gr roup 3; SQL se de datos modificada. Bas SQL L> select gr roup#,members,status,s sequence# fr rom v$log; GROUP# MEMBERS -------- -----------1 2 2 1 4 2 SEQUEN NCE# STATUS ---------------- ---------INACTIVE 50 CURRENT 51 UNUSED 0
[Enter]
Ejemplo 6
SQL L> select gr roup#,members,status,s sequence# fr rom v$log; MEMBERS GROUP# -------- -----------1 2 2 1 4 2 STATUS SEQUEN NCE# ---------------- ---------INACTIVE 50 CURRENT 51 UNUSED 0 [Enter r]
www.perudev.net
12 21
L> select gr roup#, member from v$l logfile SQL 2 order by 1, 2; GROUP# ---------1 1 2 4 4
[Enter r]
MBER MEM -------------------------------------------------C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO01B B.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO01.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO02.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO04A A.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO04B B.LOG
L> alter dat tabase drop logfile me ember SQL 2 'C:\ORACL LE\PRODUCT\10.2.0\ORAD DATA\EGCC\RE EDO01.LOG'; se de datos modificada. Bas SQL L> select gr roup#, member from v$l logfile 2 order by 1, 2; GROUP# ---------1 2 4 4
[Enter r]
[Enter r]
MBER MEM -------------------------------------------------C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO01B B.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO02.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO04A A.LOG C:\ \ORACLE\PRODUCT\10.2.0 0\ORADATA\EG GCC\REDO04B B.LOG
122
Ejercicio
Configure e el redo log g de su base e de datos pa ara que cum mpla con los siguientes requisitos: r 1. Debe tener r 3 grupos re edo log: 1, 2, , y 3. o debe tener r 2 miembros s. 2. Cada grupo d cada arch hivo debe se er de 100 Mb b. 3. El tamao de
www.perudev.net
12 23
Pgina a en Blanco
124
Leccin 10
Administracin de Tablespaces
Contenido Esquema de la Base de Datos Tipos de Segmentos 126 127 128 128 128 129 129 130 131 131 133 136 137 137 137 139 140 140 140 141 142 142
Gua para Administrar Tablespaces Uso de Mltiples Tablespaces Asignar Cuotas a los Usuarios en los Tablespace
Especificando Bloques NO Estndares para Tablespaces Gestionando Tablespaces Monitoreando el Espacio Libre Agregando un nuevo archivo Tablespace ONLINE - OFFLINE Tablespace READ ONLY READ WRITE Eliminando un Tablespace
Adems de los Table espace el se ervidor Orac cle se compo one de otras s estructuras s lgicas para gestionar r el almacen namiento de datos, como o se ilustra a continuaci n.
Un U bloque Oracle O tiene un u tamao en e bytes dete erminado po or el parmetro p DB_BLOCK_ D _SIZE. Es E un conjun nto de bloqu ues oracle co ontiguos. Se S compone e de uno o m mas Extents. Esta E compue esto por uno o o mas Segment.
126
Partition
Ejemplo 1 En este ejemplo e cons sultamos los s segmentos s del esquem ma HR.
SQL L> column se egment_name format a20 0 SQL L> column ta ablespace_name format a20 [ [Enter] [ [Enter]
SQL L> select se egment_name, segment_t type, tables space_name, bytes 2 from dba_ _segments 3 where own ner='SCOTT'; [ [Enter] GMENT_NAME SEG ----------------PK_ _DEPT DEP PT EMP P PK_ _EMP BON NUS SAL LGRADE NT_TYPE SEGMEN -----------------INDEX TABLE TABLE INDEX TABLE TABLE TABLESPAC CE_NAME -------------------USERS USERS USERS USERS USERS USERS BYTES ---------65536 65536 65536 65536 65536 65536
www.perudev.net
12 27
128
Todos lo os tablespa aces, incluido el table espace SY YSTEM, pue eden ser administrado a os localmente. Adicional lmente, el paquete DBMS_SP PACE_ADMIN tablespac ces administ trados localm mente. provee e procedim mientos para
www.perudev.net
12 29
[Enter r]
130
EATE TABLESPA ACE nombre CRE D DATA FILE nom mbre SIZE n [K|M|G|T] [REUS SE] [ AUTOEXTEND D { OFF | ON [NEXT [ n [K|M|G|T] ] [MAXS SIZE n [K|M|G|T T]] } ] [ BLOCKSIZE n [K] ] [ ONLINE | OFFLINE ] NAGEMENT [ EXTENT MAN { DICTIONA ARY | LOCAL [ AUTOALLOCAT TE | UNIFORM [SIZE n [K|M|G|T] ] ] } ]
Ejemplo 3
SQL L> conn / as s sysdba Con nectado. [Enter r]
SQL L> create ta ablespace ts_demo 2 datafile 'C:\oracle\product\10 0.2.0\oradat ta\egcc\ts_ _demo.dbf' 3 size 5 M; ; r] [Enter blespace cre eado. Tab
En este ejemplo e se esta e creando o el tablespa ace ts_demo o con parm metros por de efecto: Estado Tipo Gestin de e Extensione es Tipo de Asignacin Gestin de e Espacio de e Segmento Ampliar automticamente ReadWrite Perm manente Loca al Auto omtico Auto omtico Deshabilitado
www.perudev.net
13 31
ter] [Ent
Ejemplo 5
SQL L> create ta able tb_dem mo( 2 id numb ber constraint pk_tb_d demo primary y key, 3 dato va archar2(200) 4 ) tablesp pace ts_dem mo; bla creada. Tab SQL L> call sp_f fill_table( 'tb_demo', , 62300 ); Lla amada termin nada. [ [Enter]
[ [Enter]
SQL L> select se egment_name, segment_t type, extent t_id, block ks, bytes 2 from dba_ _extents 3 where tab blespace_name = 'TS_DE EMO'; [ [Enter] GMENT_NAME SEG -------------------TB_ _DEMO TB_ _DEMO . . . . . . _DEMO TB_ TB_ _DEMO TB_ _DEMO TB_ _DEMO PK_ _TB_DEMO PK_ _TB_DEMO . . . . . . _TB_DEMO PK_ PK_ _TB_DEMO SEGMENT_TYPE EXTEN NT_ID B BLOCKS BYTES ------------------ ---------- ---------- ---------0 8 TABLE 65536 1 8 TABLE 65536
14 15 16 17 0 1
8 8 128 128 8 8
INDEX INDEX
14 15
8 8
65536 65536
132
XTENT MANAGE EMENT [ EX { DICTIONARY | LOCAL [ AUT TOALLOCATE | UNIFORM [SIZE n [K|M|G|T T] ] ] } ]
Para cre ear un table espace adm ministrado lo ocalmente, debemos e especificar LOCAL L en la clusula EXTENT MA ANAGEMEN NT de la inst truccin CRE EATE TABLESPACE. s dos opcion nes, podemo os hacer que e Oracle ma aneje los extent automt ticamente co on Tenemos la opcin n AUTOALLO OCATE (opc cin por def fecto), o pod demos espe ecificar que el tablespac ce sea man nejado con extent uniformes de un tamao especfic co mediante e la clusu ula UNIFORM M SIZE. Ejemplo 6
SQL L> create ta ablespace ts_a 2 datafile 'C:\oracle\product\10 0.2.0\oradat ta\egcc\ts_ _a.dbf' size e 5 M 4 extent ma anagement local autoal llocate; [Ent ter] blespace cre eado. Tab SQL L> create ta able tb_a( 2 id numb ber constraint pk_tb_a a primary ke ey, 3 dato va archar2(200) 4 ) tablesp pace ts_a; bla creada. Tab SQL L> call sp_f fill_table( 'tb_a', 62 2300 ); amada termin nada. Lla SQL L> select se egment_name, segment_t type, extent t_id, block ks, bytes 2 from dba_ _extents 3 where tab blespace_name = 'TS_A' '; ter] [Ent GMENT_NAME SEG -------------------TB_ _A TB_ _A . . . . . . _A TB_ TB_ _A TB_ _A TB_ _A PK_ _TB_A PK_ _TB_A . . . . . . _TB_A PK_ PK_ _TB_A NT_ID B BLOCKS SEGMENT_TYPE EXTEN BYTES ------------------ ---------- ---------- ---------0 8 TABLE 65536 1 8 TABLE 65536 [Ent ter]
[Ent ter]
14 15 16 17 0 1
8 8 128 128 8 8
INDEX INDEX
14 15
8 8
65536 65536
www.perudev.net
13 33
SQL L> create ta able tb_b( 2 id numb ber constraint pk_tb_b b primary ke ey, 3 dato va archar2(200) 4 ) tablesp pace ts_b; bla creada. Tab SQL L> call sp_f fill_table( 'tb_b', 62 2300 ); amada termin nada. Lla
[Ent ter]
[Ent ter]
SQL L> select se egment_name, segment_t type, extent t_id, block ks, bytes 2 from dba_ _extents 3 where tab blespace_name = 'TS_B' '; ter] [Ent GMENT_NAME SEG -------------------TB_ _B TB_ _B TB_ _B PK_ _TB_B SEGMENT_TYPE EXTEN BYTES NT_ID B BLOCKS ------------------ ---------- ---------- ---------0 128 10 048576 TABLE 128 10 048576 1 TABLE 2 128 10 048576 TABLE 128 10 048576 0 INDEX
En este ejemplo se ha especific cado que el l tamao de el extent es uniforme, pero p no se ha h indicado el tamao, entonces e asume el valor r por defecto o, este es de e 1 MB.
134
Ejemplo 8
SQL L> create ta ablespace ts_c 2 datafile 'C:\oracle\product\10 0.2.0\oradat ta\egcc\ts_ _c.dbf' size e 2M 3 extent ma anagement local unifor rm size 127 K; [Ent ter] blespace cre eado. Tab SQL L> create ta able tb_c( 2 id numb ber constraint pk_tb_c c primary ke ey, 3 dato va archar2(200) 4 ) tablesp pace ts_c; bla creada. Tab SQL L> call sp_f fill_table( 'tb_c', 10 0000 ); amada termin nada. Lla SQL L> select se egment_name, segment_t type, extent t_id, block ks, bytes 2 from dba_ _extents 3 where tab blespace_name = 'TS_C' '; ter] [Ent GMENT_NAME SEG -------------------TB_ _C TB_ _C TB_ _C PK_ _TB_C PK_ _TB_C SEGMENT_TYPE EXTEN BYTES NT_ID B BLOCKS ------------------ ---------- ---------- ---------0 16 1 131072 TABLE 16 1 131072 1 TABLE 16 1 131072 2 TABLE 0 16 1 131072 INDEX 16 1 131072 1 INDEX [Ent ter]
[Ent ter]
En este caso, c especi ificamos que e el extent te enga un tam mao de 127 7K, pero no es e posible por que tiene e que ser un mltiplo de 8K, debido a que el pa armetro DB_ _BLOCK_SIZE es de 8K, por lo tan nto es redondeado a 128 8K, que es lo o mismo a 16 bloques.
SQL L> show para ameter db_block_size [Ent ter]
www.perudev.net
13 35
Donde: OF FF ON N NE EXT Deshabilita a el crecimie ento autom tico del table espace. Habilita el crecimiento o automtico del tablespa ace. Se utiliza para p especif ficar el siguie ente increme ento del tam mao en disco cuan ndo mas exte ent son requ ueridos. El valor predeterminad do es el tamao de un b bloque. Esta clus sula se utiliza a para espec cificar el m ximo espaci io permitido para expan ndir automticamente el archivo de datos. Esta clus sula indica que no existe e lmite para el crecimien nto del archivo de e datos.
MA AXSIZE UN NLIMITED
Ejemplo 9
SQL L> 2 3 4 create ta ablespace ts_d datafile 'C:\oracle\product\10 0.2.0\oradat ta\egcc\ts_ _d.dbf' size e 500 K autoexten nd on next 500 K maxsi ize 3 M extent ma anagement local unifor rm size 256 K; [Enter]
blespace cre eado. Tab SQL L> create ta able tb_d( 2 id numb ber constraint pk_tb_d d primary ke ey, 3 dato va archar2(200) 4 ) tablesp pace ts_d; bla creada. Tab SQL L> call sp_f fill_table( 'tb_d', 20 0000 ); amada termin nada. Lla SQL L> select se egment_name, segment_t type, extent t_id, block ks, bytes 2 from dba_ _extents 3 where tab blespace_name = 'TS_D' '; [Enter] GMENT_NAME SEG -------------------TB_ _D TB_ _D TB_ _D PK_ _TB_D PK_ _TB_D NT_ID B BLOCKS SEGMENT_TYPE EXTEN BYTES ------------------ ---------- ---------- ---------0 32 2 262144 TABLE 32 2 262144 1 TABLE 32 2 262144 2 TABLE 32 2 262144 0 INDEX 32 2 262144 1 INDEX [Enter]
[Enter]
136
www.perudev.net
13 37
Sintaxis
EATE TEMPORA ARY TABLESPA ACE nombre CRE T TEMPFILE nombre SIZE n [K|M M|G|T] [REUS SE] [ AUTOEXTEND D { OFF | ON [NEXT [ n [K|M|G|T] ] [MAXS SIZE n [K|M|G|T T]] } ] [ EXTENT MAN NAGEMENT { DICTIONA ARY | LOCAL [ UNIFORM [SIZ ZE n [K|M|G|T] ]]]
Ejemplo 11
SQL L> 2 3 4 create te emporary tablespace te emp_a tempfile 'C:\oracle\product\10 0.2.0\oradat ta\egcc\TEM MP_A.DBF' size 5 M reuse extent ma anagement local unifor rm size 1M; [Ent ter]
Para opt timizar el desempeo d de las op peraciones de d ordenam miento en e el tablespac ce temporal, el valor especificado o en UNIFORM SIZE E debe ser mltiplo del parmetro SORT_A AREA_SIZE.
138
blespace cre eado. Tab SQL L> create ta able tb_e( 2 id num mber primary key, 3 valor varchar2(200) 4 ) tablesp pace ts_e; bla creada. Tab SQL L> select se egment_name, segment_t type, extent t_id, block ks, bytes 2 from dba_ _extents 3 where tab blespace_name = 'TS_E' '; ter] [Ent GMENT_NAME SEG -------------------TB_ _E SYS S_C005523 SEGMENT_TYPE EXTEN BYTES NT_ID B BLOCKS ------------------ ---------- ---------- ---------0 64 1 131072 TABLE 64 1 131072 0 INDEX
[Ent ter]
www.perudev.net
13 39
Ejemplo 13
L> SQL 2 3 4 select bl lock_id, bytes, blocks s from dba_ _free_space where tab blespace_name = 'SYSTE EM' order by block_id;
[Ent ter]
BLOCKS B BLOCK_ID BYTES ---------- ---------- ---------61361 720896 88 62089 5177344 632
L> select ts s#, name, block_size, status SQL 2 from v$da atafile where ts# = 12 2;
T TS# NAME B BLOCK_SIZE ----- ------------------------------------------------ ---------1 C:\ORACLE 12 E\PRODUCT\10.2.0\ORADA ATA\EGCC\TS_ _D.DBF 8192 1 C:\ORACLE 12 E\PRODUCT\10.2.0\ORADA ATA\EGCC\TS_ _D2.DBF 8192
140
www.perudev.net
14 41
blespace mod dificado. Tab SQL L> insert in nto tb_e values ( 501, , 'Oracle is s Powerful' ); [Ent ter] ins sert into tb b_e values ( 501, 'Ora acle is Powe erful' ) * ROR en lnea a 1: ERR ORA A-00372: el archivo 12 no se pued de modificar r en este m momento ORA A-01110: arc chivo de datos 12: 'C:\ORACLE\PRO ODUCT\10.2.0\ORADATA\E EGCC\TS_E.DB BF' SQL L> select * from tb_e; ID VAL LOR -------- -------------------------------500 www w.perudev.com ter] [Ent
142
Leccin 11
Usuarios y Recursos
Contenido Administracin de Usuarios Gua para Crear Usuarios Creacin de un Nuevo Usuario Modificando Usuarios Eliminando Usuarios Administracin de Recursos con Perfiles 144 144 145 147 148 149 149 151 155 155 156 160 160 160 161
Habilitar y Deshabilitar los Limites de Recursos Creacin de Perfiles Modificando Perfiles Eliminar Perfiles Contraseas Complejas
Verificar Informacin sobre Usuarios y Perfiles Usuarios y su Informacin Asociada Tablaspaces y Quotas Perfiles y Limites asignados
144
Ejemplo 1 Para crea ar un usuar rio necesitam mos tener privilegio p CR REATE USE ER. Primero crearemos el tablespac ce para los datos. d
SQL L> 2 3 4 create ta ablespace ts_alm datafile 'E:\oracle\oradata\db begcc\ts_alm m.ora' size e 1M autoexten nd on next 512K maxsiz ze 5M extent ma anagement local unifor rm size 128K K;
ter] [Ent
www.perudev.net
14 45
[Ent ter]
er created. Use
Para que e el usuario pueda iniciar sesin y operar obje etos de la base de dato os debe tener privilegios, por ejemp plo, el privile egio CREATE E SESSION N permite cre ear sesiones s.
SQL L> grant cre eate session to angeli ica; Gra ant succeede ed. SQL L> conn ange elica/suerte Con nnected. [Ent ter]
[Ent ter]
146
[ [Enter]
www.perudev.net
14 47
Ejemplo 3
SQL L> conn / as s sysdba Con nnected. SQL L> grant cre eate table to angelica a; Gra ant succeede ed. SQL L> conn ange elica/luck Con nnected. SQL L> create ta able test( 2 id num mber primary key, 3 valor varchar2(30) 4 ); ble created. . Tab SQL L> insert in nto test values(1,'Ang gelica es Be eautiful'); r created. . 1 row SQL L> commit; mmit complet te. Com SQL L> conn / as s sysdba Con nnected. SQL L> select ta able_name, owner 2 from dba_ _tables 3 where tab blespace_name = 'TS_AL LM'; [Enter] [Enter] [Enter] [Enter]
[Enter]
[Enter]
[Enter]
[Enter]
BLE_NAME OWNE ER TAB ------------------------------ -----------------------------TES ST ANGE ELICA SQL L> drop user r angelica; dro op user ange elica * ROR at line 1: ERR ORA A-01922: CAS SCADE must be specifie ed to drop 'ANGELICA' ' SQL L> drop user r angelica cascade; er dropped. Use [Enter]
[Enter]
148
www.perudev.net
14 49
Ejemplo 4
SQL L> conn / as s sysdba Con nnected. SQL L> create pr rofile pf_d demo limit 2 sessions_ _per_user 2; ofile create ed. Pro SQL L> create us ser egcc 2 identifie ed by egcc 3 profile pf_demo; p er created. Use SQL L> grant con nnect to egcc; ant succeede ed. Gra [Enter r] [Enter r]
[Enter r]
[Enter r]
Ahora pr rocedamos a cargar tre es instancias s de SQLPlusW, iniciem mos dos ses siones con el usuario egcc e , no ten ndremos nin ngn problem ma. Luego en e la tercera a instancia de d SQLPlusW W tratemos de iniciar una nueva sesin con n el usuario o egcc, el resultado se s muestra a continuac cin:
SQL L> conn egcc c/egcc [Enter r] ERR ROR: ORA A-02391: exc ceeded simultaneous SE ESSIONS_PER_ _USER limit t
150
Creaci n de Perfiles
Sintaxis
Nmero de e sesiones c concurrentes s por usuario. Tiempo lim mite de CPU U por sesin, expresado en centsi imas de seg gundo. Tiempo lim mite de CPU U por llamada a, expresado o en centsi imos de seg gundo. Tiempo lim mite por sesi in, expresa ado en minutos.
www.perudev.net
15 51
Tiempo lim mite continuo o de periodo os de inactividad d, expresado o en minutos s. Nmero pe ermitido de bloques de datos d ledos s en una ses sin. Nmero pe ermitido de bloques led dos por llamada pa ara procesar una instruc ccin. Cantidad de d espacio p privado que una sesin puede des stinar en el shared s pool del SGA, expresado o en bytes. S Se debe usa ar K o M para especificar este limite l en kilo obytes o megabytes s. Especifica a el costo tot tal de recurs sos para una a sesin, ex xpresado en service uni its.
CO OMPOSITE_ _LIMIT
Ejemplo 5
SQL L> conn / as s sysdba Con nnected. SQL L> create pr rofile pf_cpu limit 2 cpu_per_s session 1; ofile create ed. Pro SQL L> alter use er egcc 2 profile pf_cpu; p er altered. Use SQL L> conn egcc c/egcc Con nnected. [Enter r] [Enter r]
[Enter r]
[Enter r]
Despus de realizar varias consu ultas obtene emos el siguiente resulta ado:
SQL L> select us ser from dual; [Enter r] * ROR at line 1: ERR ORA A-02392: exc ceeded session limit o on CPU usage e, you are being logge ed off
152
Nmero de e intentos fallidos antes de d que la cuenta del usuario sea bloqueada. Especifique e el nmero de das que e la misma contrasea a puede usar rse. La cont trasea expira si no o se cambia dentro de este e perodo. . Especifique e el nmero de das que e deben pasar para utilizar la m misma clave. Nmero de e cambios ne ecesarios pa ara utilizar la a misma clav ve. Nmero de e das que un na cuenta de e usuario estar bloq queada. Nmero de e das que un n usuario pu uede trabajar con la base e de datos con la clave expirada. e Permite rea alizar una ve erificacin so ofisticada de el acceso a la a base de da atos.
PA ASSWORD_ _REUSE_TIM ME PA ASSWORD_ _REUSE_MA AX PA ASSWORD_ _LOCK_TIME PA ASSWORD_ _GRACE_TIME PA ASSWORD_ _VERIFY_FU UNCTION
www.perudev.net
15 53
Ejemplo 6
SQL L> conn / as s sysdba; Con nnected. SQL L> create pr rofile pf_pass limit 2 failed_lo ogin_attempts 3 3 password_ _lock_time 3/1440; ofile create ed. Pro SQL L> alter use er egcc 2 profile pf_pass; p er altered. Use [Enter r]
[Enter r]
[Enter r]
Ahora int tente iniciar una sesin con c el usuar rio egcc, pe ero con una c contrasea invlida, en el cuarto int tento la cuen nta ser bloq queada.
SQL L> conn egcc c/1234 [Enter r] ERR ROR: ORA A-01017: inv valid username/passwor rd; logon de enied
SQL L> conn egcc c/1234 [Enter r] ERR ROR: ORA A-01017: inv valid username/passwor rd; logon de enied
SQL L> conn egcc c/1234 [Enter r] ERR ROR: ORA A-01017: inv valid username/passwor rd; logon de enied
SQL L> conn egcc c/1234 ERR ROR: ORA A-28000: the e account is locked
[Enter r]
154
Ejemplo 7 emos el per rfil pf_pass de tal mane era que el nmero n de i intentos par ra bloquear la Modifique clave sea a 2.
SQL L> conn / as s sysdba; Con nnected. SQL L> alter pro ofile pf_pass limit 2 failed_lo ogin_attempts 2; ofile altere ed. Pro [Enter]
[Enter]
Elimina ar Perfile es
Sintaxis
www.perudev.net
15 55
Ejemplo 8
SQL L> conn / as s sysdba; Con nnected. SQL L> select us sername, profile 2 from dba_ _users 3 where use ername = 'EGCC'; [Enter r]
[Enter r]
ERNAME FILE USE PROF ------------------------------ -------------------EGC CC PF_P PASS SQL L> drop prof file pf_pass cascade; ofile droppe ed. Pro SQL L> select us sername, profile, acco ount_status 2 from dba_ _users 3 where use ername = 'EGCC'; [Enter r] ERNAME PROF FILE USE ------------------------------ -------------------EGC CC DEFA AULT [Enter r]
routine_nam r me ( arameter IN N VARCHAR(30 0), userid_pa password_ _parameter IN VARCHAR (30), old_passw word_parame eter IN VARC CHAR (30) ) R RETURN BOOL LEAN
Oracle provee una func cin (UTL LPWDMG.SQ QL) que se encuentra %ORACL LE_HOME% %/RDBMS\A ADMIN, esta funcin esta ablece los siguiente parametros: La contrase ea debe ten ner una long gitud mnima a de 4 caract teres. La contrase ea no debe e ser igual a nombre de usuario. u
e en
La contrasea debe tener t por lo o menos un na letra, un nmero, y un signo de d puntuacin. La contrase ea no debe e ser simple o una palabra obvia. La contrase ea debe ser diferente a la contra asea anterior en por lo menos tre es caracteres. Eric Gust tavo Corone el Castillo (gcoronelc@ @gmail.com m)
156
Ejemplo 9 uncin conte enida en el archivo UTLP PWDMG.SQ QL. Proceda a crear la fu
> conn / as sysdba s SQL> Conn nected. [Enter]
> CREATE OR REPLACE R FUNCTION verify_ _function SQL> 2 (username varchar2, v password varchar2, 3 word varchar2) old_passw 4 RETURN bo oolean IS 5 n boolea an; 6 m intege er; 7 differ integer; i 8 isdigit boolean; 9 ischar boolean; 10 ispunct boolean; 11 ray varchar2(20); digitarr 12 punctarr ray varchar2(25); 13 chararra ay varchar2(52); 14 15 BEGIN ray:= '0123456789'; digitarr 16 chararra ay:= 'abcdefghijklmnopqr rstuvwxyzABCD DEFGHIJKLMNOP PQRSTUVWXYZ'; ; 17 punctarr ray:='!"#$%&()``*+,-/:;< <=>?_'; 18 19 k if the password is sam me as the use ername -- Check 20 IF NLS_L LOWER(password) = NLS_LO OWER(username e) THEN 21 raise_ _application_error(-20001, 'Password d same as or similar to user'); u 22 END IF; 23 24 k for the minimum length h of the pass sword -- Check 25 IF lengt th(password) < 4 THEN 26 raise e_application_error(-20002, 'Passwor rd length les ss than 4'); 27 END IF; 28 29 k if the password is too o simple. A dictionary d of f words may be b -- Check 30 -- maint tained and a check may b be made so as s not to allo ow the words 31 -- that are too sim mple for the password. 32 LOWER(password) IN ('welcome', 'data abase', 'acco ount', 'user', IF NLS_L 33 ' 'password', ' 'oracle', 'co omputer', 'ab bcd') THEN raise e_application_error(-20002, 'Passwor rd too simple e'); 34 END IF; 35 36 k if the password contains at least one letter, one digit an nd one -- Check 37 -- punct tuation mark. 38 -- 1. Ch heck for the digit 39 isdigit: :=FALSE; 40 m := len ngth(password); 41 FOR i IN N 1..10 LOOP 42 FOR j IN 1..m LOOP 43 IF F substr(password,j,1) = substr(digi itarray,i,1) THEN 44 isdigit:=TRUE; 45 GOTO findchar; 46 ND IF; EN 47 END LOOP; L 48 END LOOP P; 49 IF isdig git = FALSE THEN 50 raise e_application_error(-20003, 'Passwor rd should con ntain at leas st one 51 d digit, one ch haracter and one punctuat tion'); END IF; 52 heck for the character -- 2. Ch 53 <<findch har>> 54 ischar:= =FALSE; 55 FOR i IN N 1..length(chararray) L LOOP 56 FOR j IN 1..m LOOP 57 IF F substr(password,j,1) = substr(char rarray,i,1) THEN T 58 RUE; ischar:=TR 59 GOTO findpunct; 60 ND IF; EN 61 END LOOP; L 62 END LOOP P; 63
www.perudev.net
15 57
[Enter r]
158
Ahora int tentemos cre ear un nuevo o usuario, cu uya contrase ea sea igua al al nombre e de usuario. .
SQL L> create us ser operador 2 identifie ed by operador 3 profile pf_func; p [Enter] cre eate user op perador * ROR at line 1: ERR ORA A-28003: pas ssword verification fo or the speci ified passw word failed ORA A-20001: Pas ssword same as or simi ilar to user r
[Enter]
www.perudev.net
15 59
AC CCOUNT_STAT TUS ----------------------------OP PEN OP PEN OP PEN OP PEN LO OCKED(TIMED D) EX XPIRED & LO OCKED EX XPIRED & LO OCKED EX XPIRED & LO OCKED EX XPIRED & LO OCKED EX XPIRED & LO OCKED EX XPIRED & LO OCKED
[Enter]
BLESPACE_NAM ME USERNAME BYTE ES MAX_BYTE ES BLOCKS S MAX_BLOCK KS TAB --------------- ------------- ------ ---------- -------- ----------TS_ _ALM 0 51609 96 0 6 63 EGCC
160
Tambin contamos con otras vistas q que pued den resu ultar USER_P PASSWORD_LIMITS, US SER_RESO OURCE_LIMITS, V$SES SSION, etc.
tile es:
www.perudev.net
16 61
Pgina a en Blanco
162
Leccin 12
Privilegios y Roles
Contenido Entendiendo Privilegios y Roles Privilegios del Sistema Privilegios de Objetos Roles de Usuarios 164 164 165 167 169 169 170 171 172 173 176 177 178 180 180 181 181 182
Concediendo Privilegios y Roles Concediendo Privilegios del Sistema Concediendo Privilegios de Objetos
Revocando Privilegios y Roles Revocando Privilegios del Sistema Revocando Privilegios de Objetos
Verificar Informacin sobre Privilegios y Roles Privilegios del sistema Roles Privilegios de Objetos Privilegios Actuales en el Dominio de una sesin
Ro ol SE ELECT_CAT TALOG_ROLE
Descripcin Este e rol puede concederse c a los usuarios para perm mitirles los privilegios p SE ELECT en to odas las vista as de diccionario de dat tos. Este e rol puede concederse c a los usuarios para perm mitirles los privilegios p EX XECUTE sobre paquetes y proc cedimientos del dicciona ario de datos s. Este e rol puede concederse c a los usuarios para perm mitirles a usuarios elimin nar registros s de la tabla del sistema de auditoria a (AU UD$).
EX XECUTE_CA ATALOG_ROLE
DE ELETE_CAT TALOG_ROLE
164
Ejemplo 1 ta DBA_RO OLES con el e usuarios scott obte endramos un u Si intentamos consultar la vist mensaje de error.
SQL L> conn scot tt/tiger Con nnected. [ [Enter]
SQL L> select * from dba_roles; [ [Enter] sel lect * from dba_roles * ROR at line 1: ERR ORA A-00942: tab ble or view does not e exist
[Ent ter]
[Ent ter]
www.perudev.net
16 65
Ejemplo 2 mos que el usuario cla audia pueda a consultar la l tabla dep pt de scott, debe tener el Si querem privilegio SELECT so obre esa tab bla.
SQL L> conn / as s sysdba Con nnected. SQL L> create us ser claudia 2 identifie ed by model; er created. Use SQL L> grant cre eate session to claudi ia; ant succeede ed. Gra SQL L> conn scot tt/tiger Con nnected. L> grant sel lect on dept to claudi ia; SQL ant succeede ed. Gra SQL L> conn clau udia/model Con nnected. SQL L> select * from scott.dept; DEPTNO ---------10 20 30 40 AME DNA -------------ACC COUNTING RES SEARCH SAL LES OPE ERATIONS LOC ------------NEW YORK DALLAS CHICAGO BOSTON [Ent ter] [Ent ter] [Ent ter] [Ent ter]
[Ent ter]
[Ent ter]
[Ent ter]
166
RO OL CO ONNECT RE ESOURCE
PRIVILEGIOS DEL L SISTEMA CREA ATE SESSIO ON CREA ATE CLUSTER, CREAT TE INDEXTY YPE, CREAT TE OPER RATOR, CREATE PROC CEDURE, C CREATE SEQ QUENCE, CREA ATE TABLE, , CREATE TRIGGER, T C CREATE TYP PE Todos s los privileg gios del siste ema con la c clusula WIT TH ADMIN OPTIO ON.
DB BA
La forma a como se han definido estos p privilegios podemos p co onsultarlo en e el archiv vo SQL.BSQ Q.
www.perudev.net
16 67
[ [Enter]
er created. Use SQL L> grant con nnect, resource to ser rgio; ant succeede ed. Gra SQL L> conn serg gio/chino Con nnected. SQL L> create ta able equipos( 2 id num mber primary key, 3 nombre e varchar2(30) 4 ); ble created. . Tab SQL L> insert in nto equipos values(1,' 'Alianza Lim ma'); r created. . 1 row SQL L> commit; mmit complet te. Com SQL L> select * from equipos; ID NOM MBRE -------- -------------------------------1 Ali ianza Lima [ [Enter] [ [Enter] [ [Enter] [ [Enter] [ [Enter]
[ [Enter]
168
Ejemplo 4
L> conn / as s sysdba; SQL Con nnected. SQL L> create ro ole rl_demo; le created. Rol SQL L> create ro ole rl_digitador 2 identifie ed by admin; le created. Rol [Enter]
[Enter]
[Enter]
www.perudev.net
16 69
Ejemplo 5
SQL L> conn / as s sysdba; Con nnected. SQL L> drop role e rl_demo; le dropped. Rol [Enter r]
[Enter r]
170
www.perudev.net
17 71
[Enter]
[Ent ter]
[Ent ter]
Si queremos que el usuario o rol pueda c conceder a otros o usuari ios el privile egio que es sta recibiend do, debemos s utilizar la clusula AD DMIN OPTION. En el siguiente sc cript estamo os creando el usuario useradmin u , y le esta co oncediendo el e privilegio CREATE SESSION S , y l tambin puede p conce eder este pr rivilegio a otr ros usuarios s.
SQL L> grant cre eate session 2 to userad dmin identified by adm min 3 with admi in option; ant succeede ed. Gra SQL L> conn user radmin/admin Con nnected. SQL L> grant cre eate session to user01 1; ant succeede ed. Gra [Ent ter]
[Ent ter]
[Ent ter]
172
[Ent ter]
[Ent ter]
Si querem mos que ten nga todos los s privilegios sobre una ta abla debe us sar la palabr ra ALL.
SQL L> conn scot tt/tiger Con nnected. SQL L> grant all l on emp to newuser; ant succeede ed. Gra SQL L> conn newu user/newuser Con nnected. SQL L> insert in nto scott.emp(empno,en name) 2 values(55 555,'Gustavo'); r created. . 1 row SQL L> select em mpno, ename from scott t.emp; EMPNO ---------7876 7900 7902 7934 5555 ENA AME ---------ADA AMS JAM MES FOR RD MIL LLER Gus stavo [Enter] [Enter] [Enter]
[Enter]
[Enter]
www.perudev.net
17 73
Tambin podemos conceder c el privilegio a un rol, de tal manera que a los usuarios u se le concede el rol, y auto omticamente tendr los s privilegios del rol.
SQL L> conn scot tt/tiger Con nnected. SQL L> grant all l on emp to rl_digitad dor; Gra ant succeede ed. SQL L> revoke al ll on emp from newuser r; Rev voke succeed ded. SQL L> conn / as s sysdba Con nnected. SQL L> grant rl_ _digitador to newuser; ; Gra ant succeede ed. [Ent ter]
[Ent ter]
[Ent ter]
[Ent ter]
[Ent ter]
Aun cuan ndo newuse er no tiene privilegios d directamente e sobre la ta abla scott.e emp, si pued de realizar to odo tipo de operaciones s sobre la tabla por que tiene los pri ivilegios con ncedidos al rol r rl_digitad dor.
SQL L> conn newu user/newuser Con nnected. SQL L> select em mpno, ename from scott t.emp; EMPNO ---------7788 7900 7902 7934 5555 ENA AME ---------SCO OTT JAM MES FOR RD MIL LLER Gus stavo [ [Enter]
[ [Enter]
174
Los privilegios tamb bin se pue eden conced der sobre columnas c es specficas, solo s para la as instruccio ones insert y update.
SQL L> conn / as s sysdba Con nnected. SQL L> grant ins sert(empno,ename) on s scott.emp to o sergio; Gra ant succeede ed. SQL L> conn serg gio/chino Con nnected. SQL L> insert in nto scott.emp(empno,en name,sal) 2 values(66 666,'Sergio',5000); ins sert into sc cott.emp(em mpno,ename,s sal) * ROR at line 1: ERR ORA A-01031: ins sufficient privileges [Enter]
[Enter]
[Enter]
[Enter]
SQL L> insert in nto scott.emp(empno,en name) 2 values(66 666,'Sergio'); r created. . 1 row
[Enter]
www.perudev.net
17 75
176
PRIV VILEGE -----------------------------------CREA ATE SESSION CREA ATE SESSION CREA ATE SESSION CREA ATE SESSION CREA ATE SESSION
Ahora de ebemos revo ocar el privile egio CREAT TE SESSION N al usuario user01.
SQL L> revoke cr reate session from use er01; Rev voke succeed ded. [Ent ter]
SQL L> conn user r01/user01 [Ent ter] ERR ROR: ORA A-01045: use er USER01 lacks CREATE E SESSION pr rivilege; l logon denied d rning: You are a no longer connecte ed to ORACLE E. War
www.perudev.net
17 77
[Enter] E PRIVILEGE -------------------SELECT SELECT ALTER DELETE INSERT SELECT UPDATE T REFRESH ON COMMIT QUERY REW WRITE DEBUG K FLASHBACK
[Enter r]
[Enter r]
178
Ejemplo 10 amos el priv vilegio de un rol, autom mticamente los usuario os que tiene en este rol se s Si revoca vern afe ectados.
SQL L> conn newu user/newuser Con nnected. SQL L> select en name from scott.emp; AME ENA ---------ADA AMS JAM MES FOR RD MIL LLER Gus stavo Ser rgio SQL L> conn / as s sysdba Con nnected. SQL L> revoke se elect on scott.emp fro om rl_digita ador; Rev voke succeed ded. SQL L> conn newu user/newuser Con nnected. SQL L> select en name from scott.emp; sel lect ename from f scott.emp * ROR at line 1: ERR ORA A-01031: ins sufficient privileges [ [Enter] [ [Enter]
[ [Enter]
[ [Enter]
[ [Enter]
[ [Enter]
www.perudev.net
17 79
[Enter]
PRIV VILEGE ----------------------------------CREA ATE SESSION CREA ATE VIEW CREA ATE TABLE ALTE ER SESSION CREA ATE SEQUENCE E CREA ATE DATABASE E LINK CREA ATE SYNONYM CREA ATE SESSION CREA ATE CLUSTER UNLI IMITED TABLE ESPACE CREA ATE SESSION CREA ATE TYPE CREA ATE OPERATOR R CREA ATE INDEXTYP PE
180
Roles
Ejemplo 12 s roles asignados a usua arios. Listar los
SQL L> select * from dba_role_privs o order by 1; ANTEE GRA -----------------------------GCO ORONEL GCO ORONEL NEW WUSER SCO OTT SCO OTT SCO OTT SER RGIO [Enter r] ADM --NO NO NO NO NO NO NO DEF D --Y YES Y YES Y YES Y YES Y YES Y YES Y YES
GRAN NTED_ROLE -----------------------------CONN NECT RESO OURCE RL_D DIGITADOR CONN NECT SELE ECT_CATALOG_ _ROLE RESO OURCE CONN NECT
[ [Enter] GRANTEE --------------NEWUSER RL_DIGITA ADOR RL_DIGITA ADOR RL_DIGITA ADOR RL_DIGITA ADOR RL_DIGITA ADOR RL_DIGITA ADOR RL_DIGITA ADOR RL_DIGITA ADOR
PRI IVILEGE ----------------------------------SEL LECT ALT TER DEL LETE INS SERT UPD DATE ON COMMIT REFRESH QUE ERY REWRITE DEB BUG FLA ASHBACK
www.perudev.net
18 81
Para consultar las co olumnas esp pecificas sob bre las que se s concedier ron privilegio os.
SQL L> select ta able_name, column_name e, privilege e, grantee 2 from dba_ _col_privs 3 where own ner = 'SCOTT'; [ [Enter] BLE_NAME TAB ---------EMP P EMP P COL LUMN_NAME --------------EMP PNO ENA AME PRIVILEG GE --------------INSERT INSERT GRA ANTEE --------------SER RGIO SER RGIO
182