introduccion oracle

59
Introducción a Oracle Autor: Roberto www.ForInfor.net 1 mailxmail - Cursos para compartir lo que sabes

description

tutorial oracle

Transcript of introduccion oracle

Page 1: introduccion oracle

Introducción a OracleAutor: Roberto www.ForInfor.net

1

mailxmail - Cursos para compartir lo que sabes

Page 2: introduccion oracle

Presentación del curso

En el curso se introducen los conceptos básicos para saber que es un Gestor deBases de Datos Relacional, y la utilidad de Oracle para este cometido.

2

mailxmail - Cursos para compartir lo que sabes

Page 3: introduccion oracle

1. Introducción

Introducción

ForInfor.net te ofrece este curso que pronto estará disponible en su portal deteleformación y que junto con los contenidos teóricos te ofrecerá simulaciones ynumerosos ejercicios para que afiances tus conocimientos. Por ello, agradeceremoscualquier comentario o sugerencia que nos quieras hacer llegar a [email protected]

Un Sistema de Gestión de Bases de Datos Relacionales (SGBDR), permite elalmacenamiento de datos en tablas formadas por filas y columnas, y su posteriorconsulta y mantenimiento mediante un sencillo y potente lenguaje de consultaestructurado (SQL).

Bajo las siglas SGBDR se oculta toda la complejidad informática necesaria paragestionar:

El acceso controlado de los procesos de los usuarios a los datos

La gestión del almacenamiento de los datos

La gestión de las comunicaciones entre procesos clientes y servidores

Interconexión con distintos protocolos y sistemas operativos

Acceso a los recursos conectados a la red

...

El modelo relacional fue planteado por Codd a principios de 1970 en su artículo "ARelacional Model of Data for Large Shared Data Bank" en el cual establecía lascaracterísticas que debían de tener los sistemas informáticos para tratar grandesvolúmenes de información, llegando a definir las doce reglas que consideranecesarias para que el sistema se pueda definir como relacional.

Existen numerosos SGBDR´s y entre ellos el más popular a nivel profesional es el de Oracle. Dado que Codd considera que un SGBDR ha de cumplir las 12 reglas, sepodría pensar que por lo tanto Oracle las cumple. En el artículo titulado " Are SQLServer, DB2 and Oracle really relational?" se analizan estas tres aplicaciones y seconcluye que todos son similares pero no llegan a cumplirlas en su totalidad, ya queconcretamente no permiten las actualizaciones sobre vistas.

Aunque estrictamente hablando el SGBDR incluye la colección de datos, porextensión se denomina así a la aplicación software que los gestiona hablando portanto del SGBDR de Oracle.

El SGBDR de Oracle se instala en prácticamente cualquier equipo informático,pudiendo empezar por un ordenador personal basado en Windows e ir escalando aarquitecturas más complejas a medida que las necesidades de la carga de procesolo requieran. Oracle en este sentido es un SGBDR muy amigable, pues permitetrasladar las estructuras de datos y desarrollos a arquitecturas más complejas sinnecesidad de realizar cambios significativos.

El SGBDR de Oracle es muy potente, pero para obtener un rendimiento correcto, esnecesaria la intervención del administrador de la base de datos (DBA). Las tareasmás comunes del DBA son:

3

mailxmail - Cursos para compartir lo que sabes

Page 4: introduccion oracle

La instalación del software de Oracle

La creación de la base de datos

La actualización del software y base de datos a nuevas versiones.

Arrancar y parar la base de datos.

Gestionar las estructuras de almacenamiento de la base de datos.

Gestionar la seguridad y acceso de los usuarios.

Gestionar los esquemas de objetos de cada usuario.

Establecer la política de realización de copias de seguridad de la base de datos(backups) y realizar la recuperación de la misma si hay incidencias.

Monitorizar la actividad de la base de datos, y realizar las acciones necesarias paraoptimizar su rendimiento.

Antiguamente el DBA requería una amplia experiencia y profundos conocimientospara la realización de estas tareas, pero hoy en día Oracle proporciona numerosasherramientas y asistentes para simplificar las tareas y permitir que prácticamentecualquier usuario con un mínimo de conocimientos pueda realizarlas correctamente.

Las herramientas que ayudan a la instalación y actualización del software de Oracley de la base de datos son:

El instalador universal de Oracle (Oracle Universal Installer - OUI) se encarga deinstalar el software del SGBDR con las opciones seleccionadas. Automáticamentecrea la base de datos con la ayuda del asistente de configuración de la base de datos.

El asistente de configuración de la base de datos (DataBase Configuration Asistant -DBCA) permite crear una base de datos utilizando las plantillas predifinidas quemejor se adapten a la utilización de la base de datos.

El asistente de actualización de la base de datos (Database Upgrade Assistant - DUA) permite migrar los datos de una base de datos Oracle a una versión posteriorde la misma.

El gestor de red de Oracle (Oracle Net Manager) permite configurar el acceso alservidor de la base de datos.

Una vez instalado y configurado el software, el DBA utilizará habitualmente laherramienta denominada Oracle Enterprise Manager, que es fundamental paracontrolar el rendimiento de la base de datos y ofrece consejos para optimizar su uso.

En este curso se introducirán los conceptos mínimos que todo DBA debe conocer ylos asistentes que permiten su aplicación y gestión.

4

mailxmail - Cursos para compartir lo que sabes

Page 5: introduccion oracle

2. Instalación del software y creación de la base de datos

Instalación del software y creación de la base de datos

Oracle ofrece una versión gratuita de la versión 10g denominada Express Edition destinada a:

Desarrolladores que trabajen en SQL, PL/SQL, PHP, Java, .Net y en cualquier otra aplicación de código abierto

Administradores que necesiten realizar prácticas

Instituciones educativas y estudiantes.

Esta versión tiene un interfaz y funcionalidad diferente a la del resto de productos, por lo que para el presentecurso se utiliza la versión comercial, y lo primero es adquirir el software. Hay que tener en cuenta que Oracle esun software licenciado, por lo que se ha de adquirir una licencia del producto antes de su utilización.

Desde la página web de Oracle Technology Network se pueden descargar versiones de todos los productos conuna licencia de uso limitado pero suficiente para que puedas evaluar el producto y realizar un prototipo de tuaplicación.

A continuación se muestra un extracto de los términos de la licencia tal y como aparece a finales de 2005.

License Rights We grant you a nonexclusive, nontransferable limited license to use the programs only for thepurpose of developing a single prototype of your application, and not for any other purpose. If you use theapplication you develop under this license for any internal data processing or for any commercial or productionpurposes, or you want to use the programs for any purpose other than as permitted under this agreement, youmust contact us, or an Oracle reseller, to obtain the appropriate license. We may audit your use of the programs.

Traducción literal:

Derechos de la licencia Se otorga una licencia limitada de uso no exclusivo, ni transferible para usar el programasólo con el propósito de desarrollar un prototipo de su aplicación, y no para otros propósitos. Si usa la aplicaciónque ha desarrollado bajo esta licencia para cualquier uso interno de procesado de datos o para cualquier actividadcomercial o propósito de productivo, o quiere usar los programas con otros propósitos distintos a los permitidosbajo este acuerdo, debe contactar nos directamente o a través de un revendedor, para obtener la licenciaapropiada. Podemos auditar el uso del programa.

Aceptados los términos de la licencia y respectando sus condiciones, se puede iniciar la descarga del softwarepara el sistema operativo correcto. Como se ve en la siguiente imagen, en el caso de la versión 10g para Windows,el fichero comprimido (ZIP) a descargar es de aproximadamente 650MBytes.

5

mailxmail - Cursos para compartir lo que sabes

Page 6: introduccion oracle

Una vez descargado el software, hay que descomprimir el fichero en un directorio cualquiera del disco duro comopor ejemplo "C:/ Oracle102"

En la estructura de directorios creada está la aplicación del instalador universal de Oracle (Oracle UniversalInstaller - OUI).

OUI permite mediante una interfaz gráfica ver los productos de Oracle que hay instalados en el servidor, instalar

6

mailxmail - Cursos para compartir lo que sabes

Page 7: introduccion oracle

OUI permite mediante una interfaz gráfica ver los productos de Oracle que hay instalados en el servidor, instalarnuevos productos y desinstalar alguno de los existentes. Durante todo el proceso de instalación o desinstalaciónofrece ayuda para mejorar la comprensión de los procesos que se van a llevar a cabo.

Al iniciar el OUI se asignan valores por defecto para:

definir el directorio raíz donde se instalará el software

seleccionar el tipo de instalación ha realizar, pudiendo escoger entre una versión personal, estándar yempresarial. La versión empresarial es la más completa he incluye las herramientas de gestión más avanzadas,por lo que es la que se utiliza durante el curso.

Crear opcionalmente una base de datos, en cuyo caso se ha de dar un nombre único para la misma y lacontraseña que se desea utilizar para los superusuarios.

Observar que se pide introducir una contraseña para los superusuarios SYS, SYSTEM, SYSMAN y DBSNMP, dondelos dos primeros son los usuarios de administración de la base de datos. Esta contraseña de base de datos sólodebe ser conocida por el DBA, ya que cualquier usuario mal intencionado que consiguiera conectarse con estaclave podría consultar, borrar o modificar cualquier información almacenada en la base de datos.

Aceptando las opciones por defecto y salvo complicaciones extraordinarias, el OUI y el DBCA finalizarán con lacreación de una base de datos totalmente operativa.

En la siguiente enlace puedes ver una película con el proceso de instalación del software y creación de una basede datos por defecto descargado directamente de www.ForInfor.net

7

mailxmail - Cursos para compartir lo que sabes

Page 8: introduccion oracle

3. Asistente de Configuración de la base de datos

Asistente de Configuración de la base de datos

Desde el menú de inicio de Windows podemos invocar directamente al DBCA

El DBCA se puede utilizar para realizar las siguientes operaciones:

Crear una base de datos

Configurar las opciones de una base de datos

Suprimir una base de datos

Gestionar las plantillas

Configurar la gestión automática del almacenamiento

Paso 1. Operaciones. Crear Base de Datos

A través de un asistente se ayuda a la realización de esta tarea facilitando valores por defecto que se han de ir confirmando enlos pasos sucesivos.

Paso 2. Plantillas de la Base de Datos

Las plantillas contienen un conjunto de valores por defecto que se consideran óptimos para la creación de una base de datos enfunción del uso al que va a ser destinada.

Oracle facilita por defecto tres plantillas:

Uso principal de la base dedatos

Descripción

Almacén de datos

Los usuarios ejecutan numerosas consultas de elevada complejidad y que procesan un elevadovolumen de datos.

Los tiempos de respuesta y la disponibilidad son cruciales.

Procesado de transacciones

Varios usuarios ejecutan simultáneamente consultas, inserciones, actualizaciones y borrados dedatos.

La velocidad, disponibilidad y concurrencia son fundamentales.

Uso general Combina características de las dos anteriores.

Personalizar Base de Datos Permite la máxima flexibilidad para crear una base de datos, permitiendo introducir un mayornúmero de opciones.

8

mailxmail - Cursos para compartir lo que sabes

Page 9: introduccion oracle

Si no hay un criterio claro sobre el uso que se va ha hacer de la base de datos, lo mejor es seleccionar la plantilla de "Usogeneral" y utilizar las opciones por defecto facilitadas por el asistente.

Como se verá posteriormente, el DBA puede modificar y optimizar la parametrización de la base de datos en función del uso realde la carga de trabajo que soporte y los consejos que le faciliten los asistentes.

Paso 3. Identificar la base de datos

En este paso se ha de asignar un nombre que identifique de manera única la base de datos en el sistema. Se pueden utilizar unaestructura jerarquizada basada en dominios de la forma : <dominio>.<nombre_basedatos>

Aunque por defecto el nombre de la base de datos global y el SID son iguales, se pueden modificar.

Paso 4. Opciones de Gestión

Por defecto aparece seleccionada la opción de gestión local "Configurar Base de Datos con Enterprise Manager". Para utilizar laopción de la gestión centralizada con Oracle Enterprise Manager Grid, es necesario tener instalado el agente de gestión OracleManagement Agent en el servidor y seleccionarlo en el menú desplegable Management Service.

La instalación del agente y los componentes del Grid, han de estar instalados con antelación a la base de datos para que estaopción aparezca activada.

En esta versión el Enterprise Manager es una aplicación web que proporciona las herramientas necesarias para la gestión de unabase de datos local.

Al seleccionar la gestión local, se puede indicar un servidor de correo saliente y una cuenta de correo donde se recibirán avisosde incidencias relacionadas con la base de datos y emitidos automáticamente por el gestor.

9

mailxmail - Cursos para compartir lo que sabes

Page 10: introduccion oracle

También se puede establecer una política de gestión de copias de seguridad que se realizarán automáticamente a la horaindicada. Cada día se realiza una copia de seguridad de la base completa.

La copia de seguridad se realiza en el área denominada "Area de recuperación Flash" y que se configura posteriormente. Elusuario y clave del sistema operativo son necesarios para que posteriormente el Enterprise Manager pueda escribir en el disco.

Posteriormente si se desea, se pueden modificar los valores de la notificación de correo y copia de seguridad desde el EnterpriseManager, por lo que en esta primera instalación no se pasa al paso siguiente sin seleccionar estas casillas.

Paso 5. Credenciales de la base de datos

La base de datos crea automáticamente varios usuarios que son necesarios para la posterior administración de la misma.

En versiones anteriores del SGBDR de Oracle se les asignaban a estos usuarios claves por defecto que posteriormente el DBAdebía de modificar; pero lo cierto es que en muchas ocasiones esta tarea no se hacía y era posible conectarse al SGBDRutilizando las claves por defecto (sys/change_on_install o system/manager). Para mejorar la seguridad es necesario introduciruna clave personalizada para los superusuarios : SYS, SYSTEM, SYSMAN y DBSNMP.

La clave puede ser la misma para todos ellos, o bien se puede poner una distinta para cada uno de ellos. Si sólo va a haber unDBA lo normal será utilizar la misma clave para todos los superusuarios.

Paso 6. Opciones de Almacenamiento

En este paso se puede seleccionar el mecanismo que se va a utilizar para almacenar los ficheros asociados a la base de datos :datos, control y log.

La opción por defecto es la más habitual para una base de datos de propósito general, y se puede ver una explicación del restode opciones pinchando en el botón de " Ayuda".

1 0

mailxmail - Cursos para compartir lo que sabes

Page 11: introduccion oracle

Paso 7. Ubicaciones de Archivos de la Base de Datos

La plantilla establece unos valores por defecto que se pueden revisar pinchando el botón "Variables de Ubicación de Archivos ..."

1 1

mailxmail - Cursos para compartir lo que sabes

Page 12: introduccion oracle

Salvo que se tengan varios discos disponibles o se desee utilizar otra estructura de directorios, los valores por defecto sonadecuados y pueden ser modificados en un paso posterior.

Paso 8. Configuración de Recuperación

En este paso se puede modificar el valor por defecto asignado al "Área de Recuperación Flash" utilizada para la realización decopias de seguridad, y activar el modo "Archivado". Cuando se habla de realizar copias de seguridad se sobreentiende que éstasserán guardadas en un medio de almacenamiento externo (CD-ROM, DVD, Cinta, ...), y si hay que recuperar la base de datos hayque recuperar la copia. En esta versión Oracle se encarga de gestionarlas automáticamente las copias en el "Área deRecuperación Flash" y recuperarlas de la misma si es necesario.

Observar la recomendación que hace el asistente de utilizar distintos discos para los archivos de datos y de área derecuperación. En pequeños servidores basados generalmente en Windows, lo normal será tener un único disco y por lo tanto noserá posible, pero es conveniente tener en cuenta este detalle y utilizar si es posible el disco compartido de otro servidorconectado a la red para la realización de las copias de seguridad. Si el disco sufre un daño físico y deja de funcionar, se podrárecrear la base de datos a partir de la copia disponible en otro disco. Ni que decir tiene que si los datos y su copia están en elmismo disco, y el disco se avería, será imposible recuperar la base de datos.

Definir el tamaño del "Área de Memoria Flash" no es una tarea fácil, por lo que aceptaremos el valor por defecto y dejaremospara los ajustes como una tarea posterior del DBA.

Es recomendable establecer el modo "Archivado" de manera que la instancia de la base de datos realice el archivado dearchivos de "redo log" automáticamente. El archivado automático es más eficaz y libera al administrador de esta tarea; para elloutiliza un proceso en segundo plano identificado como ARC0 y que archiva los grupos de archivos de redo log online cuandoestán llenos. Los archivos creados son almacenados en el área de recuperación Flash.

Si se selecciona el modo "Archivado", se activa el botón para seleccionar los parámetros del mismo

1 2

mailxmail - Cursos para compartir lo que sabes

Page 13: introduccion oracle

El formato por defecto para los archivos utiliza los siguientes parámetros:

Parámetro Descripción

%S Incluye el número de secuencia de log

%R Incluiye el identificador del log de reestablecimiento

%T Incluye el número de thread

aunque se puede modificar, este formato ayuda a la posterior identificación de los ficheros.

Paso 9. Contenido de la Base de Datos

En este paso se permite indicar si se desean crear en la base de datos los esquemas de usuarios utilizados por las aplicacionesde ejemplo que acompañan a la base de datos.

Por lo general no será necesario, y dado que requieren unos 130MB de espacio en disco.

Paso 10. Parámetros de inicialización

Los parámetros de inicialización de la base de datos influyen notablemente en su rendimiento, y vienen preestablecidos en laplantilla seleccionada para la creación de la misma.

Se pueden editar los parámetros de inicialización para:

Optimizar el rendimiento mediante el ajuste de las estructuras de memoria

Definir el tamaño de las unidades más pequeñas de almacenamiento

Definir el idioma y juego de caracteres que se van a utilizar

Seleccionar el modo en que va a funcionar la base de datos durante la conexión de un usuario.

El asistente ofrece una serie de pestañas con los parámetros más significativos en cada caso

1 3

mailxmail - Cursos para compartir lo que sabes

Page 14: introduccion oracle

También se pueden revisar y modificar todos los parámetros pinchando en el botón "Todos los Parámetros de inicialización..."

La lista de parámetros es muy larga y sus nombres son poco descriptivos, pero la ventana que se abre permite "Mostrar unaDescripción" de los mismos que es de gran ayuda para su comprensión.

Para la creación de una base de datos de propósito general son válidos los valores por defecto, y además pueden sermodificados posteriormente si se considera que el rendimiento no es óptimo desde el Enterprise Manager o con la sentencia SQL ALTER SYSTEM.

Paso 11. Almacenamiento de la Base de Datos

Mediante una estructura en árbol, se muestran la ubicación de los ficheros de la base de datos.

Los archivos se agrupan atendiendo a su función:

El archivo de control es necesario para montar, abrir y acceder a la base de datos. En estos archivos se guardan todos losarchivos log y de base de datos, información de sincronización necesaria para la recuperación y el nombre de la base de datos.

Los archivos de datos almacenan los distintos esquemas de los usuarios y las estructuras de datos de cada uno de ellos.

Los archivos redo log se utilizan para mantener un registro de todos los cambios realizados en los datos. Juegan un papel

1 4

mailxmail - Cursos para compartir lo que sabes

Page 15: introduccion oracle

importante en la recuperación de la base de datos, ya que si se produce un fallo en la misma antes que estos datos se escribanen el disco, los cambios se pueden recuperar de los archivos redo log.

Paso 12. Opciones de creación

Finalmente podemos iniciar la creación de la base de datos, generar una plantilla con las características que hemos definido enlos pasos anteriores o bien crear un fichero de comandos que podremos ejecutar posteriormente.

Lo más didáctico en nuestro caso va a ser crear el fichero de comandos y revisar las sentencias que se van a ejecutar para llevara cabo la creación de la base de datos. En versiones anteriores de Oracle, ésta era la única manera de crear la base de datos.

Si navegamos al directorio donde se han creado los ficheros se obtendrá el siguiente listado

Como se ve hay un "Archivo por lotes MS-DOS" que se puede ejecutar y desencadena el proceso de creación de la base de datos,llamando al resto de ficheros. Su contenido es:

mkdir C:\Oracle\admin\prueba\adump mkdir C:\Oracle\admin\prueba\bdump mkdir C:\Oracle\admin\prueba\cdump mkdirC : \Oracle\admin\prueba\dpdump mkdir C:\Oracle\admin\prueba\pfi le mkdir C:\Oracle\admin\prueba\udump mkdirC : \Oracle\flash_recovery_area mkdir C:\Oracle\oradata\prueba mkdirC : \Oracle\product\10.2.0\db_4\cfgtool logs\DBCA\prueba mkdir C:\Oracle\product\10.2.0\db_4\dbs set Oracle_SID=pruebasid C:\Oracle\product\10.2.0\db_4\bin\oradim.exe -new -sid PRUEBASID -startmode manual -spfileC : \Oracle\product\10.2.0\db_4\bin\oradim.exe -edit -sid PRUEBASID -startmode auto -srvcstart SYSTEMC: \Oracle\product\10.2.0\db_4\bin\sqlplus /nolog @C:\temp\bdprueba\pruebasid.sql

Como se ve crea la estructura de directorios, inicia la instancia de la base de datos con el comando "oradim.exe" e invoca al SQLPlus para ejecutar el fichero "pruebasid.sql"

set verify off PROMPT specify a password for SYS as parameter 1; DEFINE SYSPassword = &1 PROMPT specify a password for SYSTEMSYSTEM as parameter 2; DEFINE SYSTEMPassword = &2 PROMPT specify a password for SYSMAN as parameter 3; DEFINE SYSMANPassword = &3 PROMPT specify a password for dbsnmp as parameter 4; DEFINE dbsnmpPassword = &4 PROMPTspecify host user administrador password as parameter 5; DEFINE hostPassword = &5 hostC : \Oracle\product \10.2.0\db_4\bin\orapwd.exe file=C:\Oracle\product\10.2.0\db_4\database\PWDpruebasid.orapassword=&&SYSPassword force=y @C:\temp\bdprueba\CloneRmanRestore.sql @C:\temp\bdprueba\cloneDBCreation.sql@C:\temp\bdprueba\postScripts.sql host "echo SPFILE='C:\Oracle\product\10.2.0\db_4/dbs/spfilepruebasid.ora' >C: \Oracle\product\10.2.0\db_4\database\initpruebasid.ora" @C:\temp\bdprueba\postDBCreation.sql

1 5

mailxmail - Cursos para compartir lo que sabes

Page 16: introduccion oracle

Al ejecutar el fichero se pide que se introduzcan las claves para los superusuarios de administración, que por seguridad no sehan grabado en los ficheros de creación, y posteriormente ejecuta el resto de ficheros de comandos.

La base de datos no se crea desde cero, si no que se parte de una base de datos de la que se ha realizado una copia deseguridad y que está incluida entre los ficheros de instalación. El procedimiento seguido para crear la base de datos consiste enrecuperar la copia de seguridad.

El primer fichero de comandos que se ejecuta es "CloneRmanRestore.sql" y su finalidad es recuperar la base de datos inicial apartir de la cual se va a realizar la creación de la nueva base de datos, y por ello no se utilizan comandos del tipo CREATEDATABASE.

set echo off; set serveroutput on; select TO_CHAR(SYStimestamp,'YYYYMMDD HH:MI:SS') from DUAl; variable devicenamevarchar2(255); declare omfname varchar2(512) := NULL; done boolean; begin dbms_output.put_line(' '); dbms_output.put_line('Allocating device.... '); dbms_output.put_line(' Specifying datafiles... '); :devicename := dbms_backup_restore.deviceAllocate;dbms_output.put_line(' Specifing datafiles... '); dbms_backup_restore.restoreSetDataFile;dbms_backup_restore.restoreDataFileTo(1, 'C:\ Oracle\oradata\prueba\SYSTEM01.DBF', 0, 'SYSTEM');dbms_backup_restore.restoreDataFileTo(2, 'C:\Oracle\oradata\prueba\UNDOTBS01.DBF', 0, 'UNDOTBS1');dbms_backup_restore.restoreDataFileTo(3, 'C:\Oracle\oradata\prueba\SYSAUX01.DBF', 0, 'SYSAUX');dbms_backup_restore.restoreDataFileTo(4, 'C:\Oracle\oradata\prueba\USERS01.DBF', 0, 'USERS'); dbms_output.put_line('Restoring ... ');dbms_backup_restore.restoreBackupPiece('C:\Oracle\product\10.2.0\db_4\assistants\DBCA\templates\Seed_Database.dfb' ,done); if done then dbms_output.put_line(' Restore done.'); else dbms_output.put_line(' ORA-XXXX: Restore failed '); end if;dbms_backup_restore.deviceDeallocate; end; / select TO_CHAR(SYStimestamp,'YYYYMMDD HH:MI:SS') from DUAl;

Como ejemplo se muestra a continuación el contenido del fichero "cloneDBcreation.sql", donde se ven los comandos utilizadospara actualizar la base de datos con las opciones que se han ido indicando en el asistente.

connect "SYS"/"&&SYSPassword" as SYSDBA set echo on spool C:\temp\bdprueba\cloneDBCreation.log Create controlfile reuseset database "prueba" MAXINSTANCES 8 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 Datafile'C:\Oracle\oradata\prueba\SYSTEM01.DBF', 'C:\Oracle\oradata\prueba\UNDOTBS01.DBF','C:\Oracle\oradata\prueba\SYSAUX01.DBF', 'C:\Oracle\oradata\prueba\USERS01.DBF' LOGFILE GROUP 1('C:\Oracle/oradata/prueba/redo01.log') SIZE 51200K, GROUP 2 ('C:\Oracle/oradata/prueba/redo02.log') SIZE 51200K, GROUP 3('C:\Oracle/oradata/prueba/redo03.log') SIZE 51200K RESETLOGS; exec dbms_backup_restore.zerodbid(0); shutdownimmediate; startup nomount pfile="C:\temp\bdprueba\initpruebasidTemp.ora"; Create controlfile reuse set database "prueba"MAXINSTANCES 8 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 Datafile'C:\Oracle\oradata\prueba\SYSTEM01.DBF', 'C:\Oracle\oradata\prueba\UNDOTBS01.DBF','C:\Oracle\oradata\prueba\SYSAUX01.DBF', 'C:\Oracle\oradata\prueba\USERS01.DBF' LOGFILE GROUP 1('C:\Oracle/oradata/prueba/redo01.log') SIZE 51200K, GROUP 2 ('C:\Oracle/oradata/prueba/redo02.log') SIZE 51200K, GROUP 3('C:\Oracle/oradata/prueba/redo03.log') SIZE 51200K RESETLOGS; alter SYSTEM enable restricted session; alter database"prueba" open resetlogs; alter database rename global_name to "prueba"; ALTER TABLESPACE TEMP ADD TEMPFILE'C:\Oracle\oradata\prueba\TEMP01.DBF' SIZE 20480K REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED; selecttablespace_name from dba_tablespaces where tablespace_name='USERS'; select sid, program, serial#, username from v$session;alter database character set INTERNAL_CONVERT WE8MSWIN1252; alter database national character set INTERNAL_CONVERTAL16UTF16; alter user SYS identified by "&&SYSPassword"; alter user SYSTEM identified by "&&SYSTEMPassword"; alter SYSTEMdisable restricted session; Otras operaciones con DBCA Configurar las opciones de una base de datos

A través de cuatro pasos permite cambiar la configuración de un servidor dedicado a un servidor compartido, así como añadiropciones de base de datos que no se han configuradas previamente.

Suprimir una base de datos

En dos pasos permite suprimir una base de datos y todos sus archivos.

Gestionar las plantillas

En nueve pasos se permite crear, borrar y modificar plantillas de bases de datos.

Configurar la gestión automática del almacenamiento

En tres pasos se permite crear y gestionar una instancia de gestión de almacenamiento automática (Automatic StorageManagement - ASM) y los grupos de discos asociados independientemente de si se crea una base de datos.

Puede agregar discos a un grupo de discos, montar todos los grupos de discos o uno de ellos o crear instancias de ASM

1 6

mailxmail - Cursos para compartir lo que sabes

Page 17: introduccion oracle

4. Migración de una base de datos

Migración de una base de datos

Como administrador de la base de datos en ocasiones se ha de migrar una versión antiguadel gestor a otra más reciente, por ejemplo pasando una base de datos Oracle 9i a la versión Oracle 10g. Para la realización de esta tarea se facilita el asistente denominado "Asistente deActualización de la Base de Datos" (Database Upgrade Assistant - DBUA)

El asistente se encarga en siete pasos de ejecutar las tareas que en versiones anterioresdebía realizar el administrador manualmente, como son:

Identificar las opciones de la base de datos que han de ser modificadas

Verifica el espacio en disco y en los tablespaces

Realiza las copias de seguridad necesarias

Ejecuta los archivos de comandos necesarios

Actualiza los parámetros obsoletos

Informa de las tareas que se van realizando, y además crea ficheros de registro detallados.

1 7

mailxmail - Cursos para compartir lo que sabes

Page 18: introduccion oracle

5. Enterprise Manager. Introducción

El Enterprise Manager

Esta herramienta es instalada por el OUI al finalizar la creación de la base de datos, y aprender a utilizarla esfundamental para la gestión de una base de datos Oracle.

El Enterprise Manager permite que usuarios con poca experiencia puedan realizar tareas complejas deadministración en un entorno web intuitivo.

Para arrancar el Enterprise Manager hay que escribir en un navegador la dirección

h t t p : / /direccion:puerto/EM

donde la dirección es la del servidor donde se ha instalado la base de datos, y el puerto por defecto 1158, siendouna url válida por ejemplo:

http://hugo:1158/EM

Mostrándose la cónsola de conexión donde se han de introducir los datos de un usuario válido, como porejemplo "SYS" o "SYSTEM" que son superusuarios y tienen todos los privilegios necesarios para acceder a todaslas opciones posibles.

Introducción al Enterprise Manager Database Control

Además de monitorizar el rendimiento de la instancia de la base de datos, algunas de las tareas quehabitualmente ha de realizar el administrador son:

Iniciar la instancia y abrir la base de datos. La instancia suele estar configurada de forma que se arrancaautomáticamente y se abre la base de datos cuando se inicia el sistema operativo, pero puede ser necesariocerrarla y pararla para realizar operaciones de mantenimiento o recuperación.

Configurar las conexiones de red para permitir la conexión de clientes al servidor de base de datos.

Gestionar las estructuras de almacenamiento tales como : tablespaces y ficheros de datos, ficheros de redo logsy ficheros de control.

Administrar usuarios y la política de seguridad. Al crear nuevos usuarios se le asignan privilegios y roles paracontrolar el acceso que tienen a los objetos de la base de datos.

Gestión de los objetos de un esquema, creando usuarios y los objetos que necesiten.

Definir la política de copias de seguridad y recuperación. Puede establecer una política básica utilizando elarchivado automático de los ficheros de redo log.

1 8

mailxmail - Cursos para compartir lo que sabes

Page 19: introduccion oracle

6. Enterprise Manager. Configuración del entorno de red

Configuración del entorno de red

Al finalizar la instalación de la base de datos se tiene un servidor de base de datos totalmentefuncional, pero configurado para recibir conexiones básicas de un cliente.

Entendemos por cliente cualquier aplicación que manipula los datos almacenados en el servidor.

Oracle Net es una capa de software que se instala tanto en el servidor de base de datos como en losclientes, y que permite que se comuniquen entre si.

El cliente ha de tener información sobre el servidor de base de datos al que se va a conectar, y elservidor a de controlar el acceso a la misma.

El proceso ejecutado en segundo plano en el servidor de base de datos que se encarga de recibir laspeticiones de los clientes es conocido como Listener

y su configuración se almacena en el fichero listener.ora

# listener.ora Network Configuration File: C:\Oracle\product\10.2.0\db_4\network\admin\listener.ora # Generated by Oracle configurationtools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (Oracle_HOME =C: \Oracle\product\10.2.0\db_4) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST =(DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = Hugo)(PORT = 1522)) ) )

Es de destacar la descripción del protocolo que utiliza la máquina y el puerto por el cual recibe laspeticiones.

En el cliente es necesario almacenar una descripción de la base de datos a la que se va a poderconectar y que está descrita en el fichero tnsnames.ora

# tnsnames.ora Network Configuration File:C : \Oracle\product\10.2.0\db_4\network\admin\tnsnames.ora # Generated by Oracle configurationtools. ORCLE10 = (DESCRIPTION = # Descripción de la dirección del servidor (ADDRESS = (PROTOCOL= TCP)(HOST = Hugo)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) # Nombre delservicio (SERVICE_NAME = orcle10) ) )

El nombre asignado al servicio también es denominado "Cadena Conexión" en algunas aplicaciones,como por ejemplo SQL*Plus.

1 9

mailxmail - Cursos para compartir lo que sabes

Page 20: introduccion oracle

Para facilitar la configuración del entorno de red, se puede utilizar el Asistente de Configuración deRed.

2 0

mailxmail - Cursos para compartir lo que sabes

Page 21: introduccion oracle

Desde el Enterprise Manager también se puede modificar la configuración del Listener y del fichero tnsnames.ora

Desde la página de inicio de las propiedades de la instancia, se tiene un enlace de acceso a los listenerslisteners instalados.

Pinchando en el enlace, se muestran las propiedades del mismo.

2 1

mailxmail - Cursos para compartir lo que sabes

Page 22: introduccion oracle

Para acceder a los ficheros tnsnames.ora, se ha de volver a la página de inicio de la instancia yseleccionar las propiedades del host

En la lista de "Enlaces relacionados" está el enlace a la "Administración de servicios de red"

2 2

mailxmail - Cursos para compartir lo que sabes

Page 23: introduccion oracle

Al seleccionar la nomenclatura local, se va a editar el fichero tnsnames.ora, y para ello se muestra unapantalla de conexión, en la que se han de introducir los datos de un usuario del Sistema Operativoque tenga permisos de escritura en el directorio de "Ubicación del Archivo de Configuración".

2 3

mailxmail - Cursos para compartir lo que sabes

Page 24: introduccion oracle

En Windows es habitual que la conexión al equipo se realice sin tener que introducir un usuario oclave, pero estos dos datos son obligatorios para poder seguir utilizando el Enterprise Manager, loque obliga a definir al menos un usuario con su correspondiente clave.

Una vez en la página se pueden editar, crear y probar los servicios de red definidos.

2 4

mailxmail - Cursos para compartir lo que sabes

Page 25: introduccion oracle

Seleccionando el "Nombre del Servicio de Red" que se desea editar, se accede a una página desde lacual se ofrece de una forma descriptiva información sobre las distintas opciones de configuración.

2 5

mailxmail - Cursos para compartir lo que sabes

Page 26: introduccion oracle

7. Enterprise Manager. Gestión de la instancia

Gestión de la instancia

La información de la base de datos almacenada por el usuario y la información propia del SGBDR que son necesarios para sucorrecto funcionamiento están almacenados en ficheros en la memoria secundaria del servidor; es decir, en los discos duros.

El SGBDR de Oracle accede a ellos a través de lo que se conoce como una instancia, la cual está formada por unas estructuras dememoria y un conjunto de procesos que se ejecutan en segundo plano.

Para que los usuarios puedan conectarse a la base de datos y consultar o manipular los datos almacenados en la misma, esnecesario que la instancia esté arrancada.

En la página de inicio se muestra información sobre la instancia : nombre, estado, ...

Pinchando en el botón "cerrar" se inicia el proceso de cierre de la instancia, pero será necesario introducir de nuevo los datos deun usuario válido del sistema operativo y del servidor de base de datos.

En Windows hay un servicio (OracleService<SID>) que se corresponde con los procesos de la instancia, y que tiene como sufijoel nombre de la misma. Desde la ventana de servicios se puede iniciar o detener este servicio, cuyo resultado es la apertura ocierre de la instancia de la base de datos.

Además, en Windows hay otros dos servicios relacionados con la instancia que son el asociado al Listener(Oracle<Oracle_home><SID>Listener) y el que permite la conexión de los clientes al Enterprise Manager(Oracle<Oracle_home><SID>DBConsole)

Estructuras de memoria

Como ya vimos durante la creación de la base de datos se ofrecía la posibilidad de particularizar el tamaño de las estructuras dememoria denominadas SGA y PGA; aunque utilizamos los valores recomendados por el asistente, vamos a ver ahora brevementeen qué consisten estas estructuras.

La SGA (Shared Global Area) es un área de memoria compartida que almacena datos e información de control de la instancia. Lainformación almacenada en la SGA puede ser accedida por múltiples usuarios, y evita tener que acceder a la memoria secundaria(disco duro) a buscarla, lo que permite acelerar la respuesta del sistema.

Lo ideal sería que toda la información estuviera en la memoria principal y la SGA tuviera suficiente tamaño para contenerla, peroesto no es viable y hay que buscar una solución de compromiso en la cual se encuentre en memoria principal un alto porcentajede datos que evite tener que acceder frecuentemente a la memoria secundaria. Esta no es una tarea fácil, pero el EnterpriseManager proporciona recomendaciones para gestionar y optimizar el rendimiento de los "Parámetros de Memoria".

2 6

mailxmail - Cursos para compartir lo que sabes

Page 27: introduccion oracle

Como se ve en las gráficas, la SGA se divide en varias otras estructuras donde las más importantes son:

Nombre Descripción

Caché de Buffers(45%)

Todos los datos de la base de datos que van a ser leídos o modificados, han de ser almacenadospreviamente en esta área.

Pool Compartido(45%)

Contiene información para compartir entre los usuarios como sentencias SQL y procedimientosalmacenados recientemente ejecutados.

2 7

mailxmail - Cursos para compartir lo que sabes

Page 28: introduccion oracle

La PGA en cambio es un área de memoria específica para cada proceso y contiene información de conexión y propia de la sesión.

Procesos segundo plano

Como ya se ha comentado en Windows hay un único servicio (OracleService<SID> ) que agrupa los servicios que en otrossistemas operativos como Unix se ejecutan como demonios independientes. Para la compresión de las tareas que realiza esmejor describirlos por separado.

Servicio Descripción

DataWriter

Se encarga de escribir en la base de datos los bloques de información modificados en el Buffer Cache de la SGA

Log Writer Se encarga de escribir los ficheros de Redo Log en el disco

SYSTEMMonitor

Se encarga de realizar la recuperación del sistema cuando se arranca una instancia que había caído anteriormente.

Hay que tener en cuenta que el servidor se puede apagar voluntario o involuntariamente sin haber apagadola base de datos previamente. Al volver a iniciar el servidor y arrancar la base de datos, esta se recuperaautomáticamente y no se producen pérdidas de datos.

ProcessMonitor

Se encarga de liberar los recursos utilizados por los procesos de usuario que fallan.

Archiver Cuando la base de datos está en modo archivado, se encarga de almacenar los ficheros de redo log que estánllenos.

Arrancar y parar la instancia

La instancia ha de estar arrancada para que los usuarios puedan conectarse y operar con la base de datos.

En Windows ya hemos visto que los servicios asociados a la instancia se arrancan automáticamente. También hemos visto que sise cierra el sistema operativo sin haber cerrado previamente la base de datos, la instancia de la base de datos sufre una caídaque se recupera automáticamente la próxima vez que se arranque. Por lo tanto, en general no es necesaria la intervención deladministrador para abrir o cerrar la instancia.

En algunos sistemas operativos o por configuración puede ser necesario que un administrador tenga que abrir y cerrar lainstancia manualmente. Para realizar esta tarea puede utilizar el Enterprise Manager conectándose con privilegios de SYSADMINo SYSOPER que permiten realizar cualquier tipo de operación o administrar sólo la base de datos respectivamente. Estosprivilegios los tienen por defecto el usuario SYS.

Durante el proceso de apertura de la instancia se realizan las siguientes tareas:

Oracle lee el fichero de parámetros

Crea las estructuras de memoria

Inicia los procesos de segundo plano

Si se monta la base de datos, además se abre el fichero de control. Cuando la base de datos está montada se permite realizartareas administrativas, pero no la conexión de otros usuarios.

Si se abre la base de datos, se abren los ficheros de redo log y datos. Cuando la base de datos está montada y abierta sepermite que los usuarios se conecten e interactúen con ella.

Por defecto al abrir la instancia, la base de datos se monta y abre.

Al cerrar la instancia se ejecutan los mismos pasos en orden inverso.

Por defecto la base de datos se cierra inmediatamente desconectando a los usuarios que estén conectados y deshaciendo lastransacciones no completadas,

2 8

mailxmail - Cursos para compartir lo que sabes

Page 29: introduccion oracle

aunque se pueden seleccionar otro tipo de cierres que afectan de diferente forma a las transacciones en curso de los usuarios :normal, transaccional, inmediato o abortar.

Fichero de parámetros de inicialización

Durante el proceso de creación de la base de datos el asistente a optimizado los valores de los parámetros de inicialización,aunque el DBA puede modificarlos posteriormente para mejorar el rendimiento.

Una vez leídos los parámetros son almacenados en memoria principal y muchos de ellos pueden ser modificadosdinámicamente durante el funcionamiento de la base de datos.

Los parámetros se almacenan en un fichero denominado SPFILE (Server Parameter File) mantenido en el servidor de Oracle, yque almacena de forma persistente los cambios que se realicen dinámicamente.

Desde la página de administración de la instancia, se pueden consultar los parámetros de inicialización.

La página de parámetros muestra tanto los valores contenidos en el fichero SPFILE como los que se están utilizando en esemomento.

La pantalla permite introducir distintos criterios para filtrar los parámetros mostrados en base a:

su nombre. Se pueden introducir patrones de búsqueda.

2 9

mailxmail - Cursos para compartir lo que sabes

Page 30: introduccion oracle

si es básico. Los parámetros identificados como básicos son un subconjunto que se considera que es imprescindible paramantener operativa la base de datos sin problemas.

si ha sido modificados.

si es dinámico. Los cambios realizados en los parámetros dinámicos son aplicados automáticamente por la instancia de la basede datos, mientras que los estáticos obligan a parar y arrancar la instancia.

en base a la categoría a la que está asignado.

Se pueden modificar los valores de todos los parámetros, y aunque Enterprise Manager ejecutará de forma transparente alusuario la sentencia SQL apropiada, se puede consultar pinchando en el botón "Mostrar SQL"

3 0

mailxmail - Cursos para compartir lo que sabes

Page 31: introduccion oracle

8. Enterprise Manager. Gestión del espacio de almacenamiento

Gestión de las estructuras de almacenamiento

El SGBDR de Oracle tiene estructuras lógicas y físicas que el administrador ha de gestionar. Las estructuras físicas son aquellasse pueden ver en el sistema operativo somo son los ficheros; mientras que las estructuras lógicas sólo se pueden ver desde elservidor de Oracle, como son por ejemplo los tablespaces.

Los usuarios más avanzados tendrán conocimiento de la estructura lógica de la base de datos, y es responsabilidad del DBAgestionar la correspondencia entre las estructuras lógicas y físicas para tener un rendimiento óptimo.

Desde la página de administración del Entreprise Manager se pueden gestionar con total comodidad las estructuras físicas ylógicas.

Almacenamiento Descripción

Archivos de Control

Contiene información de control y seguimiento imprescindible para el funcionamiento de la base dedatos.

Es recomendable tener varias copias del fichero de control para poder arrancar la base de datos si unade ellas se estropea, y durante la creación se crean tres ficheros.

Tablespaces

Es una estructura lógica que agrupa uno más ficheros de datos o ficheros temporales (tempfiles) y quepermiten almacenar los objetos creados por los usuarios.

Hay varios tipos de tablespaces:

Undo tablespaces. Se utilizan para gestionar poder deshacer las transacciones incompletas. En versionesanteriores se utilizaban los segmentos de Rollback para realizar esta tarea.

Temporary tablespaces. Permiten entre otras tareas mejorar el tiempo de respuesta en las ordenaciones

Permanent tablespaces. Este tipo de tablespaces serán asignados a uno o varios usuarios y contendránlos objetos de su esquema (tablas, procedimientos, índices, ...)

Grupos detablespacestemporales

Al asignar un "Grupo de tablespaces temporales" a un usuario, sus transacciones pueden utilizarcualquiera de los tablespaces temporales asignados al grupo, de forma que se puede optimizar su uso.

Archivos de datos

Son los ficheros del sistema operativo en los cuales se van a almacenar los datos de la base de datos.

Se estructuran en :

Segmentos. Un segmento contiene un tipo específico de objetos de la base de datos, como por ejemplouna tabla. Un segmento está compuesto de extensiones que definen el tamaño disponible para elsegmento. A medida que se llenan las extensiones se van añadiendo nuevas extensiones.

Extensiones. Cada extensión está formada por un conjunto de bloques de datos consecutivos.

Bloques de datos. Es la unidad de almacenamiento más pequeña que se puede utilizar en una operaciónde entrada o salida de datos.

Segmentos deRollback

En versiones anteriores se utilizaban para deshacer las transacciones incompletas.

Como mínimo toda base de datos tiene dos ficheros de redo logs, que tienen por misión registrar todas

3 1

mailxmail - Cursos para compartir lo que sabes

Page 32: introduccion oracle

Grupos de Redo Logs

Como mínimo toda base de datos tiene dos ficheros de redo logs, que tienen por misión registrar todaslas modificaciones que se realizan sobre la base de datos. Si la base de datos se cae sin haber grabadode forma permanente los cambios, al recuperarse utilizará la información de estos ficheros paraactualizar los datos.

Se entiende por un grupo de redo logs, a un fichero de redo log y las copias del mismo. Por defecto hayun único fichero en el grupo, pero se pueden "agregar" más para mejorar la seguridad y proteger la basede datos contra la pérdida del fichero de redo log.

Archive Logs Cuando se activa el modo de archivado, los ficheros de redo log que se van llenando se almacenancomo un fichero con nombre propio en el sistema operativo.

Durante la creación de la base de datos se han creado los archivos necesarios para su funcionamiento; pero a medida que sevan almacenando datos, los "Archivos de Datos" crecerán y será necesario asignarles más espacio.

En la página se muestra información sobre la ubicación de los archivos, su tamaño y el porcentaje de utilización de los mismos.Estos archivos son estructuras físicas que se pueden consultar desde el sistema operativo. Si se consultara el tamaño de losmismos se vería que tienen su tamaño máximo aunque tengan un porcentaje de utilización mínimo.

Como se aprecia cada archivo de datos tiene asignado un tablespace y un estado. A través de los enlaces podemos acceder a lasestructuras lógicas que nos proporcionan los tablespaces.

3 2

mailxmail - Cursos para compartir lo que sabes

Page 33: introduccion oracle

Junto a la lista de tablespaces podemos ejecutar acciones asociadas como:

Agregar un archivo de datos para aumentar su tamaño o distribuir los datos entre varios discos.

Cambiar su estado (online/offline)

Seleccionando la acción de "Generar DDL" se puede ver la sentencia SQL que se va a ejecutar para realizar la acción seleccionada.

Ejecutar el Asesor de Segmentos para obtener recomendaciones

Mostrar Contenido del Tablespace que nos permite ver los objetos de usuario que están almacenados en el mismo.

Pinchando sobre el enlace asociado a un tablespace se muestra la información del mismo y se facilitan acciones específicas parael mismo

3 3

mailxmail - Cursos para compartir lo que sabes

Page 34: introduccion oracle

Tareas del administrador

La gestión de las estructuras físicas y lógicas corresponde al adminstrador, e incluye por ejemplo:

Definir si es necesario crear un nuevo tablespace para almacenar los datos de un usuario o aplicación. Hay que tener en cuentaque los tablespaces pueden ponerse online u offline, y permite controlar el acceso a los datos, ya que si está offline ningúnusuario o aplicación podrá acceder al mismo. También se pueden realizar copias de seguridad de un tablespace, por lo que silos objetos de una aplicación están en un único tablespace se simplifica la gestión de copias de seguridad.

Crear, modificar y borrar tablespaces. Desde la página de tablespaces del Enterprise Manager cuenta con formularios paraejecutar estas acciones.

Vigilar el porcentaje de uso de los tablespaces, incrementando su tamaño o añadiendo nuevos ficheros si es preciso. Además,ha de ejecutar de vez en cuando el "Asesor de segmentos" que permite compactar los segmentos y eliminar la fragmentacióninterna de los datos. Como se verá posteriormente, el SGBDR de Oracle proporciona alertas, avisos y páginas de monitorizaciónpara facilitar esta tarea

3 4

mailxmail - Cursos para compartir lo que sabes

Page 35: introduccion oracle

9. Enterprise Manager. Administración de usuarios y seguridad

Administración de usuarios y seguridad

Al crear la base de datos se han creado varios usuarios de administración automáticamente (SYS, SYSTEM, SYSMAN, DBSNMP), yotros muchos usuarios (SCOTT, Anonymous, ...) están creados pero tienen sus cuentas bloqueadas y no pueden conectarse. Lascuentas están bloqueadas por razones de seguridad, ya que un usuario mal intencionado, podría conectarse a la base de datoscon las claves por defecto y consultar o modificar la información de la misma.

Desde la página de administración se tiene acceso a las páginas para la gestión de los "Usuarios y privilegios"

Desde un punto de vista práctico vamos a partir del hecho de que para poder operar sobre la base de datos hay que tener unusuario y clave.

La mejor forma de conocer cuales son los usuarios presentes en la base de datos es consultando este apartado directamentedesde la consola, y como vemos hay 28 aunque la mayoría tienen sus cuentas bloqueadas y sus claves han caducado.

3 5

mailxmail - Cursos para compartir lo que sabes

Page 36: introduccion oracle

Desde esta página se pueden "Crear", "Editar" y "Suprimir" usuarios.

General

La mínima información necesaria para crear un usuario es asignarle un nombre y contraseña, el resto de valores opcionalestoman valores por defecto, o bien cuentan con listas para ayudar en su selección.

Se pueden editar las características del usuario "Scott" para:

ver el tablespace por defecto que tiene asignado

ejecutar la acción de desbloquear la cuenta

ver los roles y privilegios que tiene asignados. Mediante los privilegios asignados al usuario, el SGBDR controla los objetos de labase de datos a los que puede acceder, el nivel de acceso que tiene sobre los objetos, y la autorización para crear nuevosobjetos. Para facilitar la gestión de los privilegios se agrupan en roles que pueden ser asignados en grupo a los usuarios.

...

Privilegios del sistema

Los privilegios del sistema otorgan al usuario la capacidad para crear, modificar y eliminar los objetos de la base de datos.

Como se ve en la siguiente imagen, el usuario Scott tiene asignada la utilización ilimitada de su tablespace.

3 6

mailxmail - Cursos para compartir lo que sabes

Page 37: introduccion oracle

Los privilegios del sistema se pueden agrupar en:

Privilegios para el manejo de objetos (tablas, índices, disparadores, secuencias, vistas, paquetes, procedimientos, funciones, ..),y que permiten su creación, modificación o borrado.

Privilegios para realizar operaciones sobre el sistema (auditar actividad de la base de datos, generar estadísticas,...)

Si se le retira un privilegio a un usuario esto no tiene efectos en cascada, es decir, se mantendrán los objetos que pudiera habercreado y las concesiones que pudiera haber realizado a otros usuarios.

Como ejercicio has de revisar la lista de privilegios del sistema, que aunque es muy extensa, verás que sus nombres sontotalmente descriptivos de su significado.

Privilegios sobre objetos

Una vez que se ha creado un objeto en la base de datos, éste puede ser administrado por su creador o por cualquier usuarioque tenga el privilegio ANY PRIVILEGE.

Los privilegios sobre los objetos pueden ser concedidos a otros usuarios con el objeto de permitirles accederlos y manipularlos,o conceder los privilegios a otros usuarios.

Los privilegios sobre los objetos suelen ser para insertar, modificar, borrar o consultar. Aunque también son necesarios parapoder ejecutar una unidad de programa almacenada en la base de datos o referenciarlos en una clave ajena, EXECUTE y REFERENCEREFERENCE respectivamente.

Por ejemplo, se puede agregar un privilegio al usuario "Scott" relativo un "objeto procedimiento" del usuario SYS(SYS.APS_VALIDATE y SYS.DBMS_FEATURE_PARTITION_SYSTEM) para permitir que los pueda ejecutar "Execute"

Roles

Cuando hay muchos usuarios y objetos, la concesión de privilegios se hace pesada y tediosa, para simplificar esta tarea se handesarrollado los roles.

Un rol agrupa bajo un nombre una lista de privilegios, y puede ser asignado directamente a los usuarios.

3 7

mailxmail - Cursos para compartir lo que sabes

Page 38: introduccion oracle

Desde el nodo de Roles se pueden "Crear", "Editar" y "Suprimir".

Seleccionando por ejemplo el rol CONNECT se pueden ver los privilegios del sistema que agrupa. Como ejercicio compara el rolCONNECT con el rol RESOURCE y observa cuál es la diferencia entre ambos.

Como se puede observar, al crear la base de datos se han creado numerosos roles. Son de destacar tres que se han mantenidopor compatibilidad con versiones anteriores y que pueden ser de gran utilidad:

CONNECT, que asigna los privilegios necesarios para poder realizar una conexión a la base de datos y crear objetos sencillos.

RESOURCE, que permite crear todo tipo de objetos.

Todos estos roles están accesibles para ser asignados a los usuarios.

3 8

mailxmail - Cursos para compartir lo que sabes

Page 39: introduccion oracle

10. Enterprise Manager. Gestión de los objetos del esquema

Gestión de los objetos del esquema Objetos de base de datos

Los usuarios de la base de datos, se pueden clasificar en:

usuarios finales, que sólo acceden a la base de datos mediante una aplicación para consultar y modificar información

los desarrolladores, que suelen tener un número limitado de privilegios y roles para consultar objetos y crear objetos en suesquema.

los administradores, que pueden realizar cualquier operación sobre la base de datos

Cada usuario creado en la base de datos tiene su propio esquema, y en él pueden crearse objetos que se consideraránpropiedad suya. Por lo tanto, el esquema es una agrupación lógica de tablas, vistas, índices, secuencias, ... que han sido creadaspor un usuario.

Cuando los desarrolladores o usuarios finales necesiten nuevos privilegios u objetos que no pueden crear, recurrirán aladministrador, y éste deberá realizar las correspondientes tareas de creación y concesión de privilegios para que los usuarios odesarrolladores puedan realizar su trabajo.

La forma básica de crear los objetos es utilizando el lenguaje SQL aunque existen multitud de herramientas con entornosgráficos con las que el usuario podrá simplificar esta tarea; de igual forma, el administrador puede utilizar el entorno gráfico delEnterprise Manager para crear los objetos y generándose de forma automática las sentencias SQL equivalentes.

En este capítulo se mostrarán las posibilidades de la herramienta para la creación y mantenimiento de los objetos más comunesque soporta una base de datos Oracle; aunque no se entrará en detalle en ellos ya que cae fuera del alcance del curso y se ve endetalle en el curso de El lenguaje SQL.

Desde la gestión del esquema, se permite administrar los objetos de los esquemas tales como tablas, índices, secuencias,funciones, procedimientos, paquetes, ...

Tablas

En el proceso de diseño de una base de datos relacional, se aplican un conjunto de técnicas que van encaminadas a obtenermodelos entidad-relación que estén al menos en tercera forma normal.

La tarea de modelado de la base de datos suele ser realizada principalmente por los analistas funcionales, aunque siemprequeda un pequeño porcentaje de refinamiento en el diseño que no se realiza hasta la fase de diseño técnico o desarrollo de loscomponentes.

La tabla es el objeto básico de la base de datos, donde se van a guardar los datos de los usuarios y el rendimiento de lasaplicaciones depende en gran medida de cómo se hayan diseñado.

Sin entrar en conceptos de diseño, que sobrepasan el objetivo de este curso y que se tratan en otro curso, bastaría con pincharen el botón "Crear" para que se fueran sucediendo los formularios para definir la tabla y sus columnas.

3 9

mailxmail - Cursos para compartir lo que sabes

Page 40: introduccion oracle

Para aprender cómo crear una tabla es muy didáctico ver las propiedades de las existentes, como por ejemplo la tabla deempleados (EMP)

Como se aprecia la tabla está creada en el esquema del usuario "Scott", y aunque el usuario conectado al Enterprise Manager sea SYS, puede crear la tabla en cualquier esquema existente. La tabla almacenará sus datos en el tablespace USERS, y suorganización es "Estándar, organización en pilas". Durante la creación de una tabla se puede seleccionar si tiene ordenación porpilas o índices; si se selecciona como una pila, los datos se van almacenando desordenadamente en ella según se vaninsertando, y si se opta por índices se almacenan ordenadamente los campos que forman parte de la clave primaria de la tabla.

4 0

mailxmail - Cursos para compartir lo que sabes

Page 41: introduccion oracle

En la sección de restricciones se muestra la clave primaria (PK_) y una clave externa (FK_), y pinchando en el enlace del índice, sepueden obtener información del mismo.

Si se selecciona el botón de "Editar", se muestran sus propiedades en un formato similar al utilizado durante la creación de unanueva tabla

4 1

mailxmail - Cursos para compartir lo que sabes

Page 42: introduccion oracle

Pinchando en el botón "Mostrar SQL" se puede visualizar la sentencia SQL que se va a ejecutar, como por ejemplo

Como se ve se podría haber creado directamente la tabla desde el intérprete de comandos SQL*Plus mediante la sentencia quese muestra en el gráfico anterior.

Cuando se crea una tabla está vacía; es decir, no contiene datos.

Para crear y mantener los datos se deben ejecutar sentencias de manipulación de datos (Data Manipulation Language o DML),que son:

De inserción: La instrucción básica para crear un nuevo registro es INSERT y con ella lo que hacemos es crear un nuevo registroo tupla en la tabla de empleados.

De modificación: La sentencia UPDATE se utiliza para modificar los valores de algún registro o fila ya existente.

De borrado: Para borrar registros de una tabla se utiliza la sentencia DELETE.

Desde el Enterprise Manager no se pueden modificar ni borrar los datos de una tabla, pero se pueden consultar sin más queejecutar la acción "Ver Datos" asociada a la misma.

Vistas

Las vistas son similares a las tablas, pero con la diferencia fundamental de que sus datos no están almacenados físicamente, sino que se recuperan y ordenan en tiempo de ejecución.

Una vista se crea por múltiples razones, que generalmente son ocultar la complejidad de la consulta de unión de tablas a losusuarios, tener columnas agrupadas, restringir automáticamente el acceso a los datos, ...

En una vista se puede mostrar información de una o varias tablas, junto con campos calculados.

Supongamos que queremos crear una vista que muestre el número y nombre de los empleados (Scott.emp) junto con el númeroy el nombre del departamento donde trabajan (Scott.dept). Desde el asistente se indica la consulta en lenguaje SQL con la quese va a crear la vista y los alias con que se van a nombrar las columnas resultantes.

4 2

mailxmail - Cursos para compartir lo que sabes

Page 43: introduccion oracle

Seleccionando la acción "Ver Datos" se muestran los valores devueltos al consultar la vista.

Indices

Los índices tienen por finalidad permitir acelerar la recuperación de los datos de una consulta. Supongamos por ejemplo queuna empresa tuviera varios departamentos en cada localidad, y siempre recupera sólo los departamentos de cada una de ellas.Quizás en base a los tiempos de respuesta se considerara necesario crear un índice en los campos localidad (LOC) y número dedepartamento (deptno).

Observar que el orden de la columna sirve además para indicar cuáles de ellas forman parte del índice.

Sinónimos

Un sinónimo es un sobrenombre que se aplica a los objetos para eliminar por ejemplo la necesidad de tener que referenciarlosteniendo en cuenta el esquema donde han sido creados.

Por defecto los objetos sólo pertenecen al esquema del usuario donde se crearon y han de ser referenciados como

4 3

mailxmail - Cursos para compartir lo que sabes

Page 44: introduccion oracle

" NombreEsquema.NombreObjeto". Supongamos por ejemplo que queremos simplificar la referencia a la vista de"Empleados_Departamento" del usuario Scott, para que cualquier usuario la pueda referenciar como "EMP_DEPT".

En este caso se ha creado un sinónimo público, es decir que va a poder referenciarse desde cualquier otro esquema. Aunquepueda ser referenciado por otros usuarios distintos de Scott, hay que recordar que para poder consultar la vista los usuarios hande tener los privilegios necesarios para ello

Una vez concedidos los privilegios sobre el objeto al usuario SYSTEM, éste podrá realizar la siguiente consulta:

SELECT * FORM EMP_DEPT; Secuencias

Una secuencia es un objeto que permite generar números secuenciales sin repetición en un entorno de usuarios concurrentes.

4 4

mailxmail - Cursos para compartir lo que sabes

Page 45: introduccion oracle

En este caso hemos creado la secuencia de nombre SECUENCIA que comienza con uno y cada vez que se recupera un nuevovalor (SECUENCIA.NEXTVAL) lo incrementa en 1; además hemos fijado un valor máximo y mínimo, y los crearemos en orden.

Para conocer el valor actual de la secuencia podremos hacer la siguiente consulta:

SELECT SECUENCIA.CURRVAL FROM DUAL; Programas

Oracle permite almacenar procedimientos en la base de datos, con lo que se una vez probado y verificado su funcionamiento,puede se utilizado por cualquier usuario autorizado.

El código almacenado puede ser codificado en PL/SQL o Java, aunque lo más habitual será utilizar PL/SQL.

Paquetes

Un paquete es una estructura de almacenamiento que contiene la descripción de tipos, variables, funciones y procedimientospúblicos que se van a codificar en su cuerpo.

Los paquetes y en general todos los programas han de estar en estado "válido" para su correcta ejecución, pero efectos lateralesal modificar otros objetos de la base de datos pueden quedar en estado "no válido" y no serán ejecutables.

En la siguiente imagen se muestra una consulta realizada para ver los paquetes válidos del usuario "SYSTEM" desde la cual setiene acceso a la página de edición para compilar y corregir los posibles errores.

4 5

mailxmail - Cursos para compartir lo que sabes

Page 46: introduccion oracle

Para ejecutar un procedimiento o función almacenado basta con indicar el nombre del esquema seguido del nombre del paquetey terminado por el nombre del procedimiento o función. Por ejemplo desde la línea del intérprete de comandos podríamosescribir

SQL>EXECUTE esquema.nombre_paquete.nombre_procedimiento; SQL>SELECT esquema.nombre_paquete.nombre_funciónFROM DUAL; Cuerpo del paquete

En el cuerpo del paquete se han de codificar las funciones y procedimientos públicos que han sido declarados en el paquete, ytodas las funciones y procedimientos privados que sea necesario. Los procedimientos privados sólo podrán ser llamados desdelas funciones o procedimientos del paquete, y nunca directamente.

Al crear un paquete por defecto se muestra la sintaxis de los procedimientos y funciones para facilitar su codificación.

Al terminar la codificación y "Aceptar", el paquete puede haber quedado en estado "no válido"

y entrando en él se puede ejecutar la acción "Compilar" para ver los errores que se producen. En este ejemplo, el error es habercodificado primero el cuerpo del paquete y faltar por lo tanto la especificación del mismo.

Oracle permite almacenar en la base de datos el código en un formato codificado conocido como "wrap" y que impide que otrosusuarios pueden manipularlo o copiarlo. Para realizar esta operación se utiliza el comando MSDOS wrap.exe que se puedeencontrar en el directorio <raíz de Oracle>/bin/wrap.exe

4 6

mailxmail - Cursos para compartir lo que sabes

Page 47: introduccion oracle

C:\Oracle\product\10.2.0\db_4\BIN>wrap iname=origen.sql oname=destino.sql

El código que está "wrapped" o "ajustado" no puede ser modificado desde el Enterprise Manager y aparece el mensaje "Sourcecode could not be displayed, because it is wrapped" o "No se ha podido mostrar el código de origen porque está ajustado".

Procedimientos y funciones

Los procedimientos y funciones pueden ser creados como unidades independientes de código, y se diferencian en que lasfunciones devuelven un valor.

Para ejecutar un procedimiento o función almacenado basta con indicar el nombre del esquema seguido del nombre delprocedimiento o función. Por ejemplo desde la línea del intérprete de comandos podríamos escribir

SQL>EXECUTE esquema.nombre_procedimiento; SQL>SELECT esquema.nombre_función FROM DUAL;

Observar que mientras que el procedimiento se puede ejecutar directamente, la función ha de ser llamada desde una sentenciaSELECT para tratar el dato devuelto.

Disparadores de base de datos

Un disparador al igual que los procedimiento y funciones, es una unidad de código almacenada en la base de datos con laparticularidad de que está asociado a tablas, vistas u otros eventos y se ejecuta cada vez que se produce por ejemplo unainserción, modificación o borrado de datos.

Los disparadores suelen utilizarse para realizar tareas de verificación de los datos, tareas de auditoria, control de acceso, ...

La página de definición del disparador es similar a la del resto de programas, y en la pestaña de eventos se muestra unformulario contextual con el tipo de evento al que se asocia el disparador:

eventos de tabla

eventos de vista

4 7

mailxmail - Cursos para compartir lo que sabes

Page 48: introduccion oracle

eventos del esquema

eventos de la Base de Datos

4 8

mailxmail - Cursos para compartir lo que sabes

Page 49: introduccion oracle

El diccionario de datos

Si se crea la base de datos con el DBCA se crea automáticamente el diccionario de datos. El diccionario es un repositorio dedatos que almacena información sobre todos los objetos contenidos en la base de datos, y que se actualiza con cada operaciónde definición de datos (DDL).

El diccionario de datos se crea en el esquema del usuario SYSTEM y ha de permanecer en él.

Si la base de datos se crea manualmente será necesario será necesario ejecutar estos guiones (scripts) con un usuario conprivilegios de SYSDBA, generalmente SYS.

Guión Descripción

catalog.sql Crea el diccionario de datos y sinónimos públicos para sus vistas.

catproc.sql Ejecuta todos los guiones necesarios para poder ejecutar PL/SQL

catclust.sql Crea las vistas del diccionario de datos para el Oracle9 i Real Application Clusters

Hemos ido viendo que hay mucha más información almacenada en el SGBDR que los datos de los usuarios, y que en ocasionespuede ser necesario consultarla.

Bastaría hacer una consulta desde SQL*Plus de las tablas y vistas del usuario SYS para ver el número de objetos de los quepodemos obtener información

SQL> CONNECT SYS@SID AS SYSDBA; Introduzca la contraseña: ********** Conectado. SQL> SELECT COUNT(*) 2 FROMUSER_TABLES; COUNT(*) ---------- 298 SQL> SELECT COUNT(*) 2 FROM USER_VIEWS; COUNT(*) ---------- 1820 SQL>SELECT COUNT(*) 2 FROM USER_OBJECTS; COUNT(*) ---------- 15045 SQL> SELECT COUNT(*) 2 FROM CATALOG; COUNT(*)- - - - - - - - - - 2 0 4 1 S Q L >

Es imposible guardar toda esta información en nuestra memoria, pero en un momento dado podemos recuperar algunasreferencias válidas si utilizamos la siguiente consulta:

SQL> R 1 SELECT OBJECT_NAME 2 , OBJECT_TYPE 3 FROM ALL_OBJECTS 4 WHERE OBJECT_NAME LIKEUPPER('%&patrón_de_búsqueda%') 5* ORDER BY 2,1 Introduzca un valor para patrón_de_búsqueda: package antiguo 4: WHEREOBJECT_NAME LIKE UPPER('%&patrón_de_búsqueda%') nuevo 4: WHERE OBJECT_NAME LIKE UPPER('%package%') OBJECT_NAMEOBJECT_TYPE --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - I_ACTPACKAGE INDEX CIOPACKAGE PACKAGEDBMS_REPCAT_INTERNAL_PACKAGE PACKAGE IFR_PACKAGE PACKAGE CIOPACKAGE PACKAGE BODYDBMS_REPCAT_INTERNAL_PACKAGE PACKAGE BODY IFR_PACKAGE PACKAGE BODY DBMS_REPCAT_INTERNAL_PACKAGESYNONYM CI_PACKAGES VIEW CI_ROOT_PACKAGES VIEW 10 filas seleccionadas. SQL>

4 9

mailxmail - Cursos para compartir lo que sabes

Page 50: introduccion oracle

11. Enterprise Manager. Gestión de copias de seguridad

Gestión de copias de seguridad

Cuando se habla de copias de seguridad se está hablando de poder recuperar la base de datos ante posibles fallos físicos dealguno de sus ficheros de : datos, control, parámetros, o redo log.

Los fallos a nivel físico pueden ser de cualquier tipo, desde la rotura de un disco duro hasta el borrado accidental de uno ovarios ficheros, de todos ellos se puede recuperar la información si se realiza una adecuada gestión de copias de seguridad.

También se pueden exportar datos de tablas a nivel lógico, pero no son suficientes para recuperar la base de datos, por lo quenos centraremos en el nivel físico.

Básicamente se han de realizar tres tareas:

Backup. Guardar una copia de los ficheros de la base de datos en un medio de almacenamiento secundario.

Restore. Si es necesario recuperar los ficheros del sistema de almacenamiento secundario y almacenarlos en el directorio dondela base de datos lo busca

Recovery. Se dice que una copia de seguridad es inconsistente cuando los ficheros no contienen todos los cambios realizados enla base de datos, y es necesario utilizar la información de los ficheros de redo log más recientes. Esta tarea se utiliza parasincronizar la información contenida en los ficheros recuperados con los cambios registrados en los ficheros de redo log. Pararealizar copias consistentes de la base de datos es necesario cerrarla previamente, y por ello se denomina copia de seguridadfuera de línea (Backup offline).

Aunque el proceso de recuperación es más sencillo cuando la copia de seguridad es consistente tiene la desventaja de que hayque parar y cerrar la base de datos, por ello suele ser útil realizar copias de seguridad inconsistentes con la base de datostrabajando en modo archivado (ARCHIVELOG) que ofrecen total seguridad para la recuperación posterior de la base de datos.

Backup

En el paso 8 de la creación de la base de datos se puede configurar la gestión de copias de seguridad automáticas, aunque encualquier momento se puede configurar mediante:

La utilización de un área de recuperación flash (Flash Recovery Area) que permite automatizar la gestión de copias de seguridadde la mayoría de los ficheros. En este área Oracle se encarga automáticamente de almacenar por ejemplo los ficheros de redologs, y de borrarlos cuando ya no son necesarios.

5 0

mailxmail - Cursos para compartir lo que sabes

Page 51: introduccion oracle

Ejecutar la base de datos en el modo archivado (ARCHIVELOG) de manera que se puedan realizar las copias de seguridad enlínea sin parar la base de datos.

Utilizar el área de recuperación flash para almacenar los ficheros de archivado.

Definir las políticas que se han de aplicar para gestionar el área de memoria flash. Entre ellas se pueden indicar cuándo hacercopias de seguridad de determinados ficheros, y cuánto tiempo se han de mantener los datos.

El Enterprise Manager sugiera una política de copias de seguridad básica pero robusta

5 1

mailxmail - Cursos para compartir lo que sabes

Page 52: introduccion oracle

que se completa en cuatro pasos

El destino es el disco y concretamente el área de memoria flash.

La configuración indica que:

Se realiza una copia de seguridad completa la primera vez que se ejecuta

Las veces posteriores se realizan copias de seguridad incrementales

Se guardan las copias de seguridad necesarias para permitir la recuperación completa de la base de datos, o hasta un momentoen el tiempo anterior a la última copia incremental realizada.

Se planifica la hora del día en que se realiza la copia de seguridad.

En el último paso se muestra el comando que se ejecutara diariamente

Archivo de Comandos Diario: run { allocate channel oem_disk_backup device type disk; recover copy of database with tag'ORA$OEM_LEVEL_0'; backup incremental level 1 cumulative copies=1 for recover of copy with tag 'ORA$OEM_LEVEL_0'database; }

Con esta política de copias de seguridad se pueden recuperar los datos en base a los siguientes casos:

Supongamos que al finalizar el primer día (24:00:00 horas) se realiza una copia completa de la base de datos con los datosactualizados hasta ese momento. La copia de la base de datos junto con el fichero de redo log del segundo día, permitenrecuperar los datos hasta cualquier momento del segundo día.

Al finalizar el segundo día (24:00:00) se realiza una copia de seguridad incremental con los cambios que ha habido durante elsegundo día en la base de datos. La copia completa realizada el primer día y actualizada con los cambios realizados el segundodía, permiten recuperar los datos hasta cualquier momento del tercer día utilizando el redo log del mismo.

En los días posteriores, las copias de seguridad incrementales contienen los cambios que se han realizado a la base de datosdesde la última copia de seguridad completa, siguiéndose un procedimiento similar al del punto anterior.

Restauración y recuperación

La recuperación completa de la base de datos a partir de los ficheros contenidos en la copia de seguridad se realiza de formaautomática por el Enterprise Manager.

Las opciones para recuperar la base de datos completa, permiten restaurar los ficheros o bien elementos lógicos como tablas otablespaces.

5 2

mailxmail - Cursos para compartir lo que sabes

Page 53: introduccion oracle

Si realizamos la recuperación de la base de datos completa, el Enterprise Manager informa que la base de datos está "abierta", ypara realizar la restauración ha de cerrarla y dejarla en estado "Montada", y pide confirmación.

Si se confirma la operación, la base de datos se cerrará y montará, accediendo posteriormente a una nueva página del asistentede recuperación.

5 3

mailxmail - Cursos para compartir lo que sabes

Page 54: introduccion oracle

Como se ve la instancia está "montada" y se ofrece la posibilidad de iniciarla o realizar la recuperación, debiendo de seleccionarla segunda opción. De nuevo es necesario conectarse con un usuario con privilegios de administración en el sistema operativo yen el SGBDR.

Los cinco pasos que se siguen para la restauración completa son:

Point-in-time. Indicar si se desea recuperar la base de datos hasta el momento actual o hasta un punto anterior en el tiempo.

Flashback. En la recuperación completa no aplica.

Cambiar nombre. Permite indicar una nueva ubicación para los archivos restaurados.

Planificar. No aplica

Revisar. Permite verificar los comandos que se van a ejecutar.

run { restore database until time "to_date('2005-11-20 17:19:23', 'YYYY-MM-DD HH24:MI:SS')"; recover database until time"to_date('2005-11-20 17:19:23', 'YYYY-MM-DD HH24:MI:SS')"; }

Al finalizar la operación se muestra el resultado de la misma y los comandos ejecutados.

SQL*Plus: Release 10.2.0.1.0 - Production on Lun Nov 21 17:25:48 2005 Copyright (c) 1982, 2005, Oracle. All rights reserved.SQL> SQL> Conectado. SQL> SQL> SQL> ORA-01109: base de datos sin abrir Base de datos desmontada. Instancia Oraclecerrada. SQL> SQL> Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With thePartitioning, OLAP and Data Mining options SQL*Plus: Release 10.2.0.1.0 - Production on Lun Nov 21 17:25:55 2005 Copyright(c) 1982, 2005, Oracle. All rights reserved. SQL> SQL> Conectado a una instancia inactiva. SQL> SQL> Instancia Oracle iniciada.Total SYSTEM Global Area 167772160 bytes Fixed Size 1247876 bytes Variable Size 88081788 bytes Database Buffers71303168 bytes Redo Buffers 7139328 bytes Base de datos montada. SQL> Desconectado de Oracle Database 10g EnterpriseEdition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options Recovery Manager : Release10.2.0.1.0 - Production on Lun Nov 21 17:26:01 2005 Copyright (c) 1982, 2005, Oracle. All rights reserved. RMAN> conectadoa la base de datos destino: ORCLE10 (DBID=3008764522, no abierto) se utiliza el archivo de control de la base de datos destinoen lugar del catálogo de recuperación RMAN> echo activado RMAN> run { 2> restore database until time "to_date('2005-11-2017:19:00', 'YYYY-MM-DD HH24:MI:SS')"; 3> recover database until time "to_date('2005-11-20 17:19:00', 'YYYY-MM-DDHH24:MI:SS')"; 4> } Iniciando restore en 21/11/05 canal asignado: ORA_DISK_1 canal ORA_DISK_1: sid=156 devtype=DISK

Finalizada la recuperación se ha de arrancar la instancia de la base de datos para que vuelva a estar disponible a todos losusuarios.

Se ha visto que la recuperación de la base de datos se puede realizar hasta un punto de restauración denominado "SCN", elEnterprise Manager permite que el administrador cree un SCN cuando considere que la información almacenada en la base dedatos hasta ese momento es consistente e importante para realizar una recuperación hasta ese punto si fuera necesario.

5 4

mailxmail - Cursos para compartir lo que sabes

Page 55: introduccion oracle

Cuando se realiza la recuperación lógica el número de pásos varía entre tres y siete en función del tipo de objeto que se deseerecuperar.

Al seleccionar el tipo de objeto "tabla" se puede realizar una recuperación denominada Flasback que muestra los datos quetenía la tabla en el momento indicado. Esta recuperación se puede realizar tanto en tablas existentes como ya borradas. Estetipo de recuperación permite recuperar exclusivamente un elemento lógico en el cual se pueden haber insertado, actualizado oborrado datos de manera errónea.

Desde el Enterprise Manager se pueden "Gestionar las copias de seguridad actuales". La gestión de las copias de seguridadincluye por una parte un aspecto físico relacionado con el dispositivo donde ha sido almacenada y otra lógica relativa alregistro que se mantiene en el repositorio de la base de datos. El registro asociado a una copia de seguridad puede estar en tresestados:

Disponible, que indica que la copia está en el disco o cinta de almacenamiento y los registros en el repositorio.

Caducado, que indica que la copia de seguridad ha sido borrada del disco, pero el registro todavía está en el repositorio. Si lacopia ha sido borrada definitivamente del disco, debe de eliminarse el registro del repositorio.

No disponible, indicando que la copia de seguridad no puede ser utilizada para la recuperación de la base de datos. La razónpuede ser sencillamente que está almacenada en una cinta que no está accesible en ese momento.

Una copia de seguridad también puede quedar obsoleta porque se cambie la política de gestión de copias de seguridad y lainformación contenida en ella no sea necesaria para la recuperación de la base de datos.

Desde el Enterprise Manager se puede además:

Listar las copias de seguridad que se han realizado

Realizar chequeos cruzados que entre otras tareas permiten identificar copias que están caducadas por no estar disponibles losficheros.

Borrar los registros asociados a copias caducadas u obsoletas.

5 5

mailxmail - Cursos para compartir lo que sabes

Page 56: introduccion oracle

12. Enterprise Manager. Monitorización y ajuste de la base de datos

Monitorización y ajuste de la base de datos

Una de las tareas más importantes que debe de realizar el DBA es vigilar el rendimiento de la base de datos y optimizarlo. ElSGBDR de Oracle permite visualizar información sobre el rendimiento de la base de datos y del host, y si detecta anomalíasinforma mediante una alerta al DBA.

Por defecto están codificadas algunas alertas junto con sus umbrales, y el DBA puede modificarlos en función de susnecesidades; por ejemplo, cuando un tablespace está ocupado al 97% de su capacidad.

Adicionalmente a la generación del aviso, la alerta puede ejecutarse una acción de respuesta (script), por ejemplo paracomprimir el tablespace.

Las alertar pueden ser enviadas por correo electrónico al DBA, y para ello debe estar configurado correctamente el servidor decorreo saliente (SMTP) que se va a utilizar. Aunque la configuración se puede hacer en el paso 4 de la creación de la base dedatos, siempre se puede modificar desde la página de configuración.

5 6

mailxmail - Cursos para compartir lo que sabes

Page 57: introduccion oracle

La dirección de correo electrónico que se indica no es a la que se va a enviar la notificación, si no la que aparecerá comoremitente de la misma. Desde la página de preferencias se puede asociar una o varias direcciones de correo destinatarias de lasnotificaciones para los usuarios administradores. Además, se pueden establecer reglas y planificar los envíos.

Para vigilar el rendimiento del SGBDR Oracle incluye un Monitor de Diagnóstico de la Base de Datos Automático (AutomaticDatabase Diagnostic Monitor o ADDM) que identifica potenciales problemas y proporciona soluciones a los mismos.

El ADDM se ejecuta periódicamente y guarda la información instantánea recopilada en el repositorio AWR (Automatic WorloadRepository); a través de la comparación de las distintas instantáneas es capaz de analizar la evolución del rendimiento eidentificar los problemas potenciales.

En cualquier momento podemos ejecutar el ADDM y obtener un informe actualizado.

5 7

mailxmail - Cursos para compartir lo que sabes

Page 58: introduccion oracle

La información que analiza el ADDM es:

Cuellos de botella en la CPU

Gestión ineficiente de conexiones

Bloqueos

Operaciones de entrada/salida

Tamaño de las estructuras de memoria

Carga de sentencias SQL

Tiempo de ejecución de procedimientos PL/SQL y Java

...

Otra útil herramienta son los asesores que proporcionan generalmente una información más comprensiva que las alertas ycubren áreas como el rendimiento o el espacio utilizado. Los asistentes se ejecutan manualmente por el DBA y realizan análisismás exhaustivos que las alertas, pero consumiendo más recursos del sistema.

Los asesores disponibles son

Asesor de Descripción

Memoria Analiza el tamaño de la SGA y de la PGA, optimizando el uso de la memoria global de la instancia.

Deshacer Proporciona información sobre el tamaño del segmento de deshacer (undo) y del tiempo de retención para lautilización del Flashback.

Acceso SQL Analiza las consultas realizadas y puede indicar si es conveniente crear índices o vistas materializadas paramejorar los tiempos de respuesta.

Ajustes

5 8

mailxmail - Cursos para compartir lo que sabes

Page 59: introduccion oracle

AjustesSQL

Analiza las sentencias SQL y ofrece optimizaciones sobre las mismas.

MTTR Permite establecer el tiempo medio de recuperación (Mean Time To Recovery)

Segmentos Proporciona información útil para el dimensionado de los segmentos y para detectar aquellos que deben sercomprimidos.

5 9

mailxmail - Cursos para compartir lo que sabes