mailxmail - Cursos para compartir lo que sabes
Introducci贸n a Oracle Autor: Roberto www.ForInfor.net
1
mailxmail - Cursos para compartir lo que sabes
Presentaci贸n del curso En el curso se introducen los conceptos b谩sicos para saber que es un Gestor de Bases de Datos Relacional, y la utilidad de Oracle para este cometido.
2
mailxmail - Cursos para compartir lo que sabes
1. Introducción Introducción ForInfor.net te ofrece este curso que pronto estará disponible en su portal de teleformación y que junto con los contenidos teóricos te ofrecerá simulaciones y numerosos ejercicios para que afiances tus conocimientos. Por ello, agradeceremos cualquier comentario o sugerencia que nos quieras hacer llegar a info@ForInfor.net Un Sistema de Gestión de Bases de Datos Relacionales (SGBDR), permite el almacenamiento de datos en tablas formadas por filas y columnas, y su posterior consulta y mantenimiento mediante un sencillo y potente lenguaje de consulta estructurado (SQL). Bajo las siglas SGBDR se oculta toda la complejidad informática necesaria para gestionar: 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 "A Relacional Model of Data for Large Shared Data Bank" en el cual establecía las características que debían de tener los sistemas informáticos para tratar grandes volúmenes de información, llegando a definir las doce reglas que considera necesarias 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, se podría pensar que por lo tanto Oracle las cumple. En el artículo titulado " Are SQL Server, DB2 and Oracle really relational?" se analizan estas tres aplicaciones y se concluye que todos son similares pero no llegan a cumplirlas en su totalidad, ya que concretamente no permiten las actualizaciones sobre vistas. Aunque estrictamente hablando el SGBDR incluye la colección de datos, por extensión se denomina así a la aplicación software que los gestiona hablando por tanto 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 a arquitecturas más complejas a medida que las necesidades de la carga de proceso lo requieran. Oracle en este sentido es un SGBDR muy amigable, pues permite trasladar las estructuras de datos y desarrollos a arquitecturas más complejas sin necesidad de realizar cambios significativos. El SGBDR de Oracle es muy potente, pero para obtener un rendimiento correcto, es necesaria la intervención del administrador de la base de datos (DBA). Las tareas más comunes del DBA son:
3
mailxmail - Cursos para compartir lo que sabes 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 para optimizar su rendimiento. Antiguamente el DBA requería una amplia experiencia y profundos conocimientos para la realización de estas tareas, pero hoy en día Oracle proporciona numerosas herramientas y asistentes para simplificar las tareas y permitir que prácticamente cualquier usuario con un mínimo de conocimientos pueda realizarlas correctamente. Las herramientas que ayudan a la instalación y actualización del software de Oracle y de la base de datos son: El instalador universal de Oracle (Oracle Universal Installer - OUI) se encarga de instalar el software del SGBDR con las opciones seleccionadas. Automáticamente crea 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 que mejor 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 posterior de la misma. El gestor de red de Oracle (Oracle Net Manager) permite configurar el acceso al servidor de la base de datos. Una vez instalado y configurado el software, el DBA utilizará habitualmente la herramienta denominada Oracle Enterprise Manager, que es fundamental para controlar 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 y los asistentes que permiten su aplicación y gestión.
4
mailxmail - Cursos para compartir lo que sabes 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 presente curso se utiliza la versión comercial, y lo primero es adquirir el software. Hay que tener en cuenta que Oracle es un 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 con una licencia de uso limitado pero suficiente para que puedas evaluar el producto y realizar un prototipo de tu aplicació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 the purpose of developing a single prototype of your application, and not for any other purpose. If you use the application you develop under this license for any internal data processing or for any commercial or production purposes, or you want to use the programs for any purpose other than as permitted under this agreement, you must 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 programa sólo con el propósito de desarrollar un prototipo de su aplicación, y no para otros propósitos. Si usa la aplicación que ha desarrollado bajo esta licencia para cualquier uso interno de procesado de datos o para cualquier actividad comercial o propósito de productivo, o quiere usar los programas con otros propósitos distintos a los permitidos bajo este acuerdo, debe contactar nos directamente o a través de un revendedor, para obtener la licencia apropiada. Podemos auditar el uso del programa. Aceptados los términos de la licencia y respectando sus condiciones, se puede iniciar la descarga del software para 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
Una vez descargado el software, hay que descomprimir el fichero en un directorio cualquiera del disco duro como por ejemplo "C:/ Oracle102"
En la estructura de directorios creada estรก la aplicaciรณn del instalador universal de Oracle (Oracle Universal Installer - 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 OUI permite mediante una interfaz gráfica ver los productos de Oracle que hay instalados en el servidor, instalar nuevos productos y desinstalar alguno de los existentes. Durante todo el proceso de instalación o desinstalación ofrece 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 y empresarial. 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 la contraseña que se desea utilizar para los superusuarios.
Observar que se pide introducir una contraseña para los superusuarios SYS, SYSTEM, SYSMAN y DBSNMP, donde los dos primeros son los usuarios de administración de la base de datos. Esta contraseña de base de datos sólo debe ser conocida por el DBA, ya que cualquier usuario mal intencionado que consiguiera conectarse con esta clave 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 la creació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 base de datos por defecto descargado directamente de www.ForInfor.net
7
mailxmail - Cursos para compartir lo que sabes 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 en los 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 en función del uso al que va a ser destinada. Oracle facilita por defecto tres plantillas: Uso principal de la base de datos
Descripción
Almacén de datos
Los usuarios ejecutan numerosas consultas de elevada complejidad y que procesan un elevado volumen de datos.
Procesado de transacciones
Los tiempos de respuesta y la disponibilidad son cruciales. Varios usuarios ejecutan simultáneamente consultas, inserciones, actualizaciones y borrados de datos.
Uso general Personalizar Base de Datos
La velocidad, disponibilidad y concurrencia son fundamentales. Combina características de las dos anteriores. Permite la máxima flexibilidad para crear una base de datos, permitiendo introducir un mayor número de opciones.
8
mailxmail - Cursos para compartir lo que sabes
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 "Uso general" 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 real de 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 una estructura 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 la opción de la gestión centralizada con Oracle Enterprise Manager Grid, es necesario tener instalado el agente de gestión Oracle Management 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 esta opció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 una base 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 avisos de incidencias relacionadas con la base de datos y emitidos automáticamente por el gestor.
9
mailxmail - Cursos para compartir lo que sabes
También se puede establecer una política de gestión de copias de seguridad que se realizarán automáticamente a la hora indicada. 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. El usuario 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 Enterprise Manager, 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 DBA debía de modificar; pero lo cierto es que en muchas ocasiones esta tarea no se hacía y era posible conectarse al SGBDR utilizando las claves por defecto (sys/change_on_install o system/manager). Para mejorar la seguridad es necesario introducir una 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 un DBA 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 resto de opciones pinchando en el botón de " Ayuda".
10
mailxmail - Cursos para compartir lo que sabes
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 ..."
11
mailxmail - Cursos para compartir lo que sabes
Salvo que se tengan varios discos disponibles o se desee utilizar otra estructura de directorios, los valores por defecto son adecuados 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 de copias de seguridad, y activar el modo "Archivado". Cuando se habla de realizar copias de seguridad se sobreentiende que éstas serán guardadas en un medio de almacenamiento externo (CD-ROM, DVD, Cinta, ...), y si hay que recuperar la base de datos hay que recuperar la copia. En esta versión Oracle se encarga de gestionarlas automáticamente las copias en el "Área de Recuperació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 de recuperación. En pequeños servidores basados generalmente en Windows, lo normal será tener un único disco y por lo tanto no será posible, pero es conveniente tener en cuenta este detalle y utilizar si es posible el disco compartido de otro servidor conectado 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 el mismo 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 dejaremos para 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 de archivos de "redo log" automáticamente. El archivado automático es más eficaz y libera al administrador de esta tarea; para ello utiliza un proceso en segundo plano identificado como ARC0 y que archiva los grupos de archivos de redo log online cuando está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
12
mailxmail - Cursos para compartir lo que sabes
El formato por defecto para los archivos utiliza los siguientes parámetros: Parámetro %S %R %T
Descripción Incluye el número de secuencia de log Incluiye el identificador del log de reestablecimiento 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 aplicaciones de 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 la plantilla 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
13
mailxmail - Cursos para compartir lo que sabes
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 una Descripció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 ser modificados 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 los archivos 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
14
mailxmail - Cursos para compartir lo que sabes 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 escriban en 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 en los 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 llevar a 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 mkdir C : \Oracle\admin\prueba\dpdump mkdir C:\Oracle\admin\prueba\pfile mkdir C:\Oracle\admin\prueba\udump mkdir C : \Oracle\flash_recovery_area mkdir C:\Oracle\oradata\prueba mkdir C : \Oracle\product\10.2.0\db_4\cfgtoollogs\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 -spfile C : \Oracle\product\10.2.0\db_4\bin\oradim.exe -edit -sid PRUEBASID -startmode auto -srvcstart SYSTEM C : \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 SYSTEM SYSTEM 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 PROMPT specify host user administrador password as parameter 5; DEFINE hostPassword = &5 host C : \Oracle\ p r o d u c t \ 1 0 . 2 . 0 \ d b _ 4 \ b i n \orapwd.exe file=C:\Oracle\product\10.2.0\db_4\database\PWDpruebasid.ora password=&&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
15
mailxmail - Cursos para compartir lo que sabes Al ejecutar el fichero se pide que se introduzcan las claves para los superusuarios de administración, que por seguridad no se han 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 de seguridad y que está incluida entre los ficheros de instalación. El procedimiento seguido para crear la base de datos consiste en recuperar 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 a partir 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 CREATE DATABASE. set echo off; set serveroutput on; select TO_CHAR(SYStimestamp,'YYYYMMDD HH:MI:SS') from DUAl; variable devicename varchar2(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 utilizados para 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 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:\O racle/oradata/prueba/redo03.log') SIZE 51200K RESETLOGS; exec dbms_backup_restore.zerodbid(0); shutdown immediate; 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:\O racle/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; select tablespace_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_CONVERT AL16UTF16; alter user SYS identified by "&&SYSPassword"; alter user SYSTEM identified by "&&SYSTEMPassword"; alter SYSTEM disable 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ñadir opciones 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 Storage Management - 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
16
mailxmail - Cursos para compartir lo que sabes
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 antigua del 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 de Actualización de la Base de Datos" (Database Upgrade Assistant - DBUA)
El asistente se encarga en siete pasos de ejecutar las tareas que en versiones anteriores debí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.
17
mailxmail - Cursos para compartir lo que sabes 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 es fundamental para la gestión de una base de datos Oracle. El Enterprise Manager permite que usuarios con poca experiencia puedan realizar tareas complejas de administració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, siendo una 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 por ejemplo "SYS" o "SYSTEM" que son superusuarios y tienen todos los privilegios necesarios para acceder a todas las 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 que habitualmente ha de realizar el administrador son: Iniciar la instancia y abrir la base de datos. La instancia suele estar configurada de forma que se arranca automáticamente y se abre la base de datos cuando se inicia el sistema operativo, pero puede ser necesario cerrarla 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 logs y ficheros de control. Administrar usuarios y la política de seguridad. Al crear nuevos usuarios se le asignan privilegios y roles para controlar 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 el archivado automático de los ficheros de redo log.
18
mailxmail - Cursos para compartir lo que sabes 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 totalmente funcional, 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 los clientes, 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 el servidor 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 las peticiones 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 configuration tools. 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 = 1 5 2 2)) ) ) Es de destacar la descripción del protocolo que utiliza la máquina y el puerto por el cual recibe las peticiones. En el cliente es necesario almacenar una descripción de la base de datos a la que se va a poder conectar 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 configuration tools. ORCLE10 = (DESCRIPTION = # Descripción de la dirección del servidor (ADDRESS = (PROTOCOL = TCP)(HOST = Hugo)(PORT = 1 5 2 2)) (CONNECT_DATA = (SERVER = DEDICATED) # Nombre del servicio (SERVICE_NAME = orcle10) ) ) El nombre asignado al servicio también es denominado "Cadena Conexión" en algunas aplicaciones, como por ejemplo SQL*Plus.
19
mailxmail - Cursos para compartir lo que sabes
Para facilitar la configuraci贸n del entorno de red, se puede utilizar el Asistente de Configuraci贸n de Red.
20
mailxmail - Cursos para compartir lo que sabes
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 listeners listeners instalados.
Pinchando en el enlace, se muestran las propiedades del mismo.
21
mailxmail - Cursos para compartir lo que sabes
Para acceder a los ficheros tnsnames.ora, se ha de volver a la pรกgina de inicio de la instancia y seleccionar las propiedades del host
En la lista de "Enlaces relacionados" estรก el enlace a la "Administraciรณn de servicios de red"
22
mailxmail - Cursos para compartir lo que sabes
Al seleccionar la nomenclatura local, se va a editar el fichero tnsnames.ora, y para ello se muestra una pantalla de conexi贸n, en la que se han de introducir los datos de un usuario del Sistema Operativo que tenga permisos de escritura en el directorio de "Ubicaci贸n del Archivo de Configuraci贸n".
23
mailxmail - Cursos para compartir lo que sabes
En Windows es habitual que la conexi贸n al equipo se realice sin tener que introducir un usuario o clave, pero estos dos datos son obligatorios para poder seguir utilizando el Enterprise Manager, lo que 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.
24
mailxmail - Cursos para compartir lo que sabes
Seleccionando el "Nombre del Servicio de Red" que se desea editar, se accede a una p谩gina desde la cual se ofrece de una forma descriptiva informaci贸n sobre las distintas opciones de configuraci贸n.
25
mailxmail - Cursos para compartir lo que sabes 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 su correcto 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 de memoria 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, es necesario 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 de un 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 sufijo el nombre de la misma. Desde la ventana de servicios se puede iniciar o detener este servicio, cuyo resultado es la apertura o cierre 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 de memoria denominadas SGA y PGA; aunque utilizamos los valores recomendados por el asistente, vamos a ver ahora brevemente en 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. La informació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, pero esto no es viable y hay que buscar una solución de compromiso en la cual se encuentre en memoria principal un alto porcentaje de datos que evite tener que acceder frecuentemente a la memoria secundaria. Esta no es una tarea fácil, pero el Enterprise Manager proporciona recomendaciones para gestionar y optimizar el rendimiento de los "Parámetros de Memoria".
26
mailxmail - Cursos para compartir lo que sabes
Como se ve en las gráficas, la SGA se divide en varias otras estructuras donde las más importantes son: Nombre Caché de Buffers (45%) Pool Compartido (45%)
Descripción Todos los datos de la base de datos que van a ser leídos o modificados, han de ser almacenados previamente en esta área. Contiene información para compartir entre los usuarios como sentencias SQL y procedimientos almacenados recientemente ejecutados.
27
mailxmail - Cursos para compartir lo que sabes 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 otros sistemas operativos como Unix se ejecutan como demonios independientes. Para la compresión de las tareas que realiza es mejor describirlos por separado. Servicio Descripción Data Se encarga de escribir en la base de datos los bloques de información modificados en el Buffer Cache de la SGA Writer Log Writer Se encarga de escribir los ficheros de Redo Log en el disco Se encarga de realizar la recuperación del sistema cuando se arranca una instancia que había caído anteriormente. SYSTEM Hay que tener en cuenta que el servidor se puede apagar voluntario o involuntariamente sin haber apagado Monitor la base de datos previamente. Al volver a iniciar el servidor y arrancar la base de datos, esta se recupera automáticamente y no se producen pérdidas de datos. Process Se encarga de liberar los recursos utilizados por los procesos de usuario que fallan. Monitor Cuando la base de datos está en modo archivado, se encarga de almacenar los ficheros de redo log que están Archiver llenos. 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 si se cierra el sistema operativo sin haber cerrado previamente la base de datos, la instancia de la base de datos sufre una caída que se recupera automáticamente la próxima vez que se arranque. Por lo tanto, en general no es necesaria la intervención del administrador 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 la instancia manualmente. Para realizar esta tarea puede utilizar el Enterprise Manager conectándose con privilegios de SYSADMIN o SYSOPER que permiten realizar cualquier tipo de operación o administrar sólo la base de datos respectivamente. Estos privilegios 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 realizar tareas 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 se permite 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 las transacciones no completadas,
28
mailxmail - Cursos para compartir lo que sabes
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 modificados diná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, y que 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 ese momento. La pantalla permite introducir distintos criterios para filtrar los parámetros mostrados en base a: su nombre. Se pueden introducir patrones de búsqueda.
29
mailxmail - Cursos para compartir lo que sabes si es bรกsico. Los parรกmetros identificados como bรกsicos son un subconjunto que se considera que es imprescindible para mantener 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 base de 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 al usuario la sentencia SQL apropiada, se puede consultar pinchando en el botรณn "Mostrar SQL"
30
mailxmail - Cursos para compartir lo que sabes 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 aquellas se pueden ver en el sistema operativo somo son los ficheros; mientras que las estructuras lógicas sólo se pueden ver desde el servidor 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 DBA gestionar 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 y lógicas.
Almacenamiento
Archivos de Control
Descripción Contiene información de control y seguimiento imprescindible para el funcionamiento de la base de datos. Es recomendable tener varias copias del fichero de control para poder arrancar la base de datos si una de ellas se estropea, y durante la creación se crean tres ficheros. Es una estructura lógica que agrupa uno más ficheros de datos o ficheros temporales (tempfiles) y que permiten almacenar los objetos creados por los usuarios. Hay varios tipos de tablespaces:
Tablespaces
Undo tablespaces. Se utilizan para gestionar poder deshacer las transacciones incompletas. En versiones anteriores 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án los objetos de su esquema (tablas, procedimientos, índices, ...)
Grupos de tablespaces temporales
Al asignar un "Grupo de tablespaces temporales" a un usuario, sus transacciones pueden utilizar cualquiera de los tablespaces temporales asignados al grupo, de forma que se puede optimizar su uso. Son los ficheros del sistema operativo en los cuales se van a almacenar los datos de la base de datos. Se estructuran en :
Archivos de datos
Segmentos. Un segmento contiene un tipo específico de objetos de la base de datos, como por ejemplo una tabla. Un segmento está compuesto de extensiones que definen el tamaño disponible para el segmento. 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ón de entrada o salida de datos.
Segmentos de Rollback
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
31
mailxmail - Cursos para compartir lo que sabes Como mínimo toda base de datos tiene dos ficheros de redo logs, que tienen por misión registrar todas las modificaciones que se realizan sobre la base de datos. Si la base de datos se cae sin haber grabado de forma permanente los cambios, al recuperarse utilizará la información de estos ficheros para Grupos de Redo Logs actualizar los datos. Se entiende por un grupo de redo logs, a un fichero de redo log y las copias del mismo. Por defecto hay un único fichero en el grupo, pero se pueden "agregar" más para mejorar la seguridad y proteger la base de datos contra la pérdida del fichero de redo log. Cuando se activa el modo de archivado, los ficheros de redo log que se van llenando se almacenan Archive Logs como 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 se van 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 los mismos 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 las estructuras lógicas que nos proporcionan los tablespaces.
32
mailxmail - Cursos para compartir lo que sabes
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 para el mismo
33
mailxmail - Cursos para compartir lo que sabes
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 cuenta que los tablespaces pueden ponerse online u offline, y permite controlar el acceso a los datos, ya que si está offline ningún usuario o aplicación podrá acceder al mismo. También se pueden realizar copias de seguridad de un tablespace, por lo que si los 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 para ejecutar 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ón interna de los datos. Como se verá posteriormente, el SGBDR de Oracle proporciona alertas, avisos y páginas de monitorización para facilitar esta tarea
34
mailxmail - Cursos para compartir lo que sabes 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), y otros muchos usuarios (SCOTT, Anonymous, ...) están creados pero tienen sus cuentas bloqueadas y no pueden conectarse. Las cuentas están bloqueadas por razones de seguridad, ya que un usuario mal intencionado, podría conectarse a la base de datos con 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 un usuario y clave. La mejor forma de conocer cuales son los usuarios presentes en la base de datos es consultando este apartado directamente desde la consola, y como vemos hay 28 aunque la mayoría tienen sus cuentas bloqueadas y sus claves han caducado.
35
mailxmail - Cursos para compartir lo que sabes 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 opcionales toman 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 la base de datos a los que puede acceder, el nivel de acceso que tiene sobre los objetos, y la autorización para crear nuevos objetos. 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.
36
mailxmail - Cursos para compartir lo que sabes 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 haber creado 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 son totalmente 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 usuario que 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 para poder ejecutar una unidad de programa almacenada en la base de datos o referenciarlos en una clave ajena, EXECUTE y REFERENCE REFERENCE 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 han desarrollado los roles. Un rol agrupa bajo un nombre una lista de privilegios, y puede ser asignado directamente a los usuarios.
37
mailxmail - Cursos para compartir lo que sabes
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 rol CONNECT 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 mantenido por 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.
38
mailxmail - Cursos para compartir lo que sabes 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 su esquema. 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án propiedad suya. Por lo tanto, el esquema es una agrupación lógica de tablas, vistas, índices, secuencias, ... que han sido creadas por un usuario. Cuando los desarrolladores o usuarios finales necesiten nuevos privilegios u objetos que no pueden crear, recurrirán al administrador, y éste deberá realizar las correspondientes tareas de creación y concesión de privilegios para que los usuarios o desarrolladores puedan realizar su trabajo. La forma básica de crear los objetos es utilizando el lenguaje SQL aunque existen multitud de herramientas con entornos gráficos con las que el usuario podrá simplificar esta tarea; de igual forma, el administrador puede utilizar el entorno gráfico del Enterprise 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 comunes que 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 en detalle 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 obtener modelos 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 siempre queda 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 los componentes. 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 las aplicaciones 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 pinchar en el botón "Crear" para que se fueran sucediendo los formularios para definir la tabla y sus columnas.
39
mailxmail - Cursos para compartir lo que sabes
Para aprender cómo crear una tabla es muy didáctico ver las propiedades de las existentes, como por ejemplo la tabla de empleados (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 su organización es "Estándar, organización en pilas". Durante la creación de una tabla se puede seleccionar si tiene ordenación por pilas o índices; si se selecciona como una pila, los datos se van almacenando desordenadamente en ella según se van insertando, y si se opta por índices se almacenan ordenadamente los campos que forman parte de la clave primaria de la tabla.
40
mailxmail - Cursos para compartir lo que sabes
En la sección de restricciones se muestra la clave primaria (PK_) y una clave externa (FK_), y pinchando en el enlace del índice, se pueden 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 una nueva tabla
41
mailxmail - Cursos para compartir lo que sabes
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 que se 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 registro o 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 que ejecutar 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, si no 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 los usuarios, 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úmero y el nombre del departamento donde trabajan (Scott.dept). Desde el asistente se indica la consulta en lenguaje SQL con la que se va a crear la vista y los alias con que se van a nombrar las columnas resultantes.
42
mailxmail - Cursos para compartir lo que sabes
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 que una 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 de departamento (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 referenciarlos teniendo 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
43
mailxmail - Cursos para compartir lo que sabes " 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. Aunque pueda ser referenciado por otros usuarios distintos de Scott, hay que recordar que para poder consultar la vista los usuarios han de 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.
44
mailxmail - Cursos para compartir lo que sabes
En este caso hemos creado la secuencia de nombre SECUENCIA que comienza con uno y cada vez que se recupera un nuevo valor (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 procedimientos pú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 laterales al 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 se tiene acceso a la página de edición para compilar y corregir los posibles errores.
45
mailxmail - Cursos para compartir lo que sabes
Para ejecutar un procedimiento o función almacenado basta con indicar el nombre del esquema seguido del nombre del paquete y terminado por el nombre del procedimiento o función. Por ejemplo desde la línea del intérprete de comandos podríamos escribir SQL>EXECUTE esquema.nombre_paquete.nombre_procedimiento; SQL>SELECT esquema.nombre_paquete.nombre_función FROM 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, y todas las funciones y procedimientos privados que sea necesario. Los procedimientos privados sólo podrán ser llamados desde las 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 haber codificado 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 otros usuarios pueden manipularlo o copiarlo. Para realizar esta operación se utiliza el comando MSDOS wrap.exe que se puede encontrar en el directorio <raíz de Oracle>/bin/wrap.exe
46
mailxmail - Cursos para compartir lo que sabes 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 "Source code 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 las funciones devuelven un valor. Para ejecutar un procedimiento o función almacenado basta con indicar el nombre del esquema seguido del nombre del procedimiento 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 sentencia SELECT 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 la particularidad de que está asociado a tablas, vistas u otros eventos y se ejecuta cada vez que se produce por ejemplo una inserció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 un formulario contextual con el tipo de evento al que se asocia el disparador: eventos de tabla
eventos de vista
47
mailxmail - Cursos para compartir lo que sabes
eventos del esquema
eventos de la Base de Datos
48
mailxmail - Cursos para compartir lo que sabes
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 de datos que almacena información sobre todos los objetos contenidos en la base de datos, y que se actualiza con cada operación de 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 con privilegios 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 Oracle9i 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 ocasiones puede 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 que podemos obtener información SQL> CONNECT SYS@SID AS SYSDBA; Introduzca la contraseña: ********** Conectado. SQL> SELECT COUNT(*) 2 FROM USER_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(*) ---------- 2041 SQL> Es imposible guardar toda esta información en nuestra memoria, pero en un momento dado podemos recuperar algunas referencias válidas si utilizamos la siguiente consulta: SQL> R 1 SELECT OBJECT_NAME 2 , OBJECT_TYPE 3 FROM ALL_OBJECTS 4 WHERE OBJECT_NAME LIKE UPPER('%&patrón_de_búsqueda%') 5* ORDER BY 2,1 Introduzca un valor para patrón_de_búsqueda: package antiguo 4: WHERE OBJECT_NAME LIKE UPPER('%&patrón_de_búsqueda%') nuevo 4: WHERE OBJECT_NAME LIKE UPPER('%package%') OBJECT_NAME OBJECT_TYPE ------------------------------ ------------------ I_ACTPACKAGE INDEX CIOPACKAGE PACKAGE DBMS_REPCAT_INTERNAL_PACKAGE PACKAGE IFR_PACKAGE PACKAGE CIOPACKAGE PACKAGE BODY DBMS_REPCAT_INTERNAL_PACKAGE PACKAGE BODY IFR_PACKAGE PACKAGE BODY DBMS_REPCAT_INTERNAL_PACKAGE SYNONYM CI_PACKAGES VIEW CI_ROOT_PACKAGES VIEW 10 filas seleccionadas. SQL>
49
mailxmail - Cursos para compartir lo que sabes 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 de alguno 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 o varios 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 que nos 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 donde la base de datos lo busca Recovery. Se dice que una copia de seguridad es inconsistente cuando los ficheros no contienen todos los cambios realizados en la base de datos, y es necesario utilizar la información de los ficheros de redo log más recientes. Esta tarea se utiliza para sincronizar la información contenida en los ficheros recuperados con los cambios registrados en los ficheros de redo log. Para realizar copias consistentes de la base de datos es necesario cerrarla previamente, y por ello se denomina copia de seguridad fuera 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 hay que parar y cerrar la base de datos, por ello suele ser útil realizar copias de seguridad inconsistentes con la base de datos trabajando 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 en cualquier 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 seguridad de la mayoría de los ficheros. En este área Oracle se encarga automáticamente de almacenar por ejemplo los ficheros de redo logs, y de borrarlos cuando ya no son necesarios.
50
mailxmail - Cursos para compartir lo que sabes
Ejecutar la base de datos en el modo archivado (ARCHIVELOG) de manera que se puedan realizar las copias de seguridad en lí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 hacer copias 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
51
mailxmail - Cursos para compartir lo que sabes
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 momento en 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 datos actualizados hasta ese momento. La copia de la base de datos junto con el fichero de redo log del segundo día, permiten recuperar 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 el segundo día en la base de datos. La copia completa realizada el primer día y actualizada con los cambios realizados el segundo dí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 datos desde 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 forma automá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 o tablespaces.
52
mailxmail - Cursos para compartir lo que sabes
Si realizamos la recuperación de la base de datos completa, el Enterprise Manager informa que la base de datos está "abierta", y para 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 asistente de recuperación.
53
mailxmail - Cursos para compartir lo que sabes
Como se ve la instancia está "montada" y se ofrece la posibilidad de iniciarla o realizar la recuperación, debiendo de seleccionar la segunda opción. De nuevo es necesario conectarse con un usuario con privilegios de administración en el sistema operativo y en 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 Oracle cerrada. SQL> SQL> Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, 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 Buffers 71303168 bytes Redo Buffers 7139328 bytes Base de datos montada. SQL> Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options Recovery Manager : Release 10.2.0.1.0 - Production on Lun Nov 21 17:26:01 2005 Copyright (c) 1982, 2005, Oracle. All rights reserved. RMAN> conectado a la base de datos destino: ORCLE10 (DBID=3008764522, no abierto) se utiliza el archivo de control de la base de datos destino en lugar del catálogo de recuperación RMAN> echo activado RMAN> run { 2> restore database until time "to_date('2005-11-20 17:19:00', 'YYYY-MM-DD HH24:MI:SS')"; 3> recover database until time "to_date('2005-11-20 17:19:00', 'YYYY-MM-DD HH24: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 los usuarios. Se ha visto que la recuperación de la base de datos se puede realizar hasta un punto de restauración denominado "SCN", el Enterprise Manager permite que el administrador cree un SCN cuando considere que la información almacenada en la base de datos hasta ese momento es consistente e importante para realizar una recuperación hasta ese punto si fuera necesario.
54
mailxmail - Cursos para compartir lo que sabes
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 desee recuperar. Al seleccionar el tipo de objeto "tabla" se puede realizar una recuperación denominada Flasback que muestra los datos que tenía la tabla en el momento indicado. Esta recuperación se puede realizar tanto en tablas existentes como ya borradas. Este tipo de recuperación permite recuperar exclusivamente un elemento lógico en el cual se pueden haber insertado, actualizado o borrado datos de manera errónea. Desde el Enterprise Manager se pueden "Gestionar las copias de seguridad actuales". La gestión de las copias de seguridad incluye por una parte un aspecto físico relacionado con el dispositivo donde ha sido almacenada y otra lógica relativa al registro que se mantiene en el repositorio de la base de datos. El registro asociado a una copia de seguridad puede estar en tres estados: 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 la copia 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ón puede 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 la informació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 los ficheros. Borrar los registros asociados a copias caducadas u obsoletas.
55
mailxmail - Cursos para compartir lo que sabes 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. El SGBDR de Oracle permite visualizar información sobre el rendimiento de la base de datos y del host, y si detecta anomalías informa 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 sus necesidades; 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 para comprimir el tablespace. Las alertar pueden ser enviadas por correo electrónico al DBA, y para ello debe estar configurado correctamente el servidor de correo 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 de datos, siempre se puede modificar desde la página de configuración.
56
mailxmail - Cursos para compartir lo que sabes
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á como remitente de la misma. Desde la página de preferencias se puede asociar una o varias direcciones de correo destinatarias de las notificaciones 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 (Automatic Database 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 Worload Repository); a través de la comparación de las distintas instantáneas es capaz de analizar la evolución del rendimiento e identificar los problemas potenciales. En cualquier momento podemos ejecutar el ADDM y obtener un informe actualizado.
57
mailxmail - Cursos para compartir lo que sabes
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 y cubren áreas como el rendimiento o el espacio utilizado. Los asistentes se ejecutan manualmente por el DBA y realizan análisis más exhaustivos que las alertas, pero consumiendo más recursos del sistema.
Los asesores disponibles son Asesor de Memoria
Descripción Analiza el tamaño de la SGA y de la PGA, optimizando el uso de la memoria global de la instancia. Proporciona información sobre el tamaño del segmento de deshacer (undo) y del tiempo de retención para la Deshacer utilización del Flashback. Acceso SQL Analiza las consultas realizadas y puede indicar si es conveniente crear índices o vistas materializadas para mejorar los tiempos de respuesta. Ajustes
58
mailxmail - Cursos para compartir lo que sabes Ajustes SQL MTTR
Analiza las sentencias SQL y ofrece optimizaciones sobre las mismas.
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 ser comprimidos.
59