Administración de una base de datos Oracle 10g BDOO ÍNDICE 1.- Introducción ......................................................................................... 3 1.1.- Conceptos clave .......................................................................................... 3 2.- Requisitos, instalación y primeros pasos ............................................. 4 2.1.- Requisitos del sistema................................................................................. 4 2.2.- Tipos de instalaciones ................................................................................. 4 2.2.1.- Instalación básica ........................................................................... 4 2.2.2.- Instalación avanzada....................................................................... 4 2.3.- Primeros pasos ............................................................................................ 5 2.3.1.- Inicio de una instancia .................................................................... 5 2.3.2.- Conexión a Oracle 10g ................................................................... 6 3.- Administración del espacio y creación manual de la BD .................... 6 3.1.- Estimación del tamaño de una base de datos .............................................. 6 3.2.- Espacios de tabla y Archivos de datos ........................................................ 7 3.2.1.- Espacio de tabla o TABLESPACE ................................................ 7 3.2.2.- Archivo de datos ............................................................................. 7 4.- Creación y configuración de una base de datos ................................... 8 4.1.- Crear base de datos ..................................................................................... 8 4.2.- Gestionar plantillas ................................................................................... 12 4.3.- Configurar una base de datos .................................................................... 13 4.4.- Suprimir una base de datos ....................................................................... 13 5.- Administración de la seguridad en Oracle ......................................... 13 5.1.- Dos conceptos importantes ....................................................................... 13 5.2.- Servicios básicos de seguridad ................................................................. 14 5.2.1.- Autentificación y administración de usuarios .............................. 15 5.2.2.- Administración de privilegios ...................................................... 16 5.2.3.- Administración de contraseñas ..................................................... 16 5.2.4.- Establecimiento de límites de recursos de la base de datos ......... 17 5.3.- Mecanismos de protección de datos en Oracle ......................................... 17 5.3.1.- Registro de transacciones ............................................................. 17 5.3.2.- Copia de seguridad de la base de datos con RMAN .................... 18 5.3.3.- Recuperación de una base de datos con RMAN .......................... 18 5.4.- Seguridad, gestión y administración de Oracle Enterprise Manager ........ 19 5.4.1.- Administración de la seguridad .................................................... 19 Página 1 de 34 Administración de una base de datos Oracle 10g BDOO 5.4.2.- Administración de Oracle Enterprise Manager ............................ 19 5.5.- Establecimiento de políticas ..................................................................... 20 5.5.1.- Gestión de bibliotecas de políticas ............................................... 20 5.5.2.- Ejemplos de políticas ................................................................... 21 6.- Mantenimiento de la base de datos .................................................... 23 6.1.- Utilidades .................................................................................................. 23 6.1.1.- Exportación .................................................................................. 23 6.1.2.- Importación .................................................................................. 25 6.1.3.- Asistente de carga de data de archivos ......................................... 26 6.1.4.- Recopilación de estadísticas ......................................................... 27 6.1.5.- Reorganización de objetos............................................................ 28 6.2.- Copias de seguridad y Recuperación de la Base de Datos ....................... 29 6.2.1.- Copias de seguridad lógicas y físicas ........................................... 29 6.2.2.- Copias de la base entera ............................................................... 30 6.2.3.- Copias de tablespaces ................................................................... 30 6.2.4.- Copias de archivos de datos ......................................................... 30 6.2.5.- Copias de los archivos de control ................................................. 30 6.3.- Recuperación de la base de datos ............................................................. 31 6.4.- Estructuración / Despliegue de la base ..................................................... 32 6.4.1.- Clonación...................................................................................... 32 6.4.2.- Gestión de bibliotecas de políticas ............................................... 32 6.4.3.- Gestión de violaciones de políticas .............................................. 33 Página 2 de 34 Administración de una base de datos Oracle 10g BDOO 1.- INTRODUCCIÓN En este trabajo monográfico se pretende introducir a la administración de bases de datos. Como caso de ejemplo, se hará referencia a la versión de Oracle 10g. Se pretende aclarar conceptos que se puedan tener difusos, e introducir nuevos. No es un manual, es una guía que puede orientar a una persona inexperta en el campo de la administración de bases de datos. 1.1.- Conceptos clave: SGBD: sistema gestor de bases de datos Un SGBD está formado por: Una base de datos: Colección de datos Software: Para acceder y manipular los datos. Hardware y usuarios. Componentes de un SGBD: Componentes de Procesamiento de sentencias DML/DDL (Lenguaje de manipulación de datos / Lenguaje de definición de datos) o Compilador DML o Precompilador DML o Intérprete DDL o Motor de ejecución Componentes de gestión de almacenamiento o Gestor de autorización e integridad o Gestor de transacciones o Gestor de archivos o Gestor de memoria intermedia Otros componentes almacenados en disco: o Archivos de datos, diccionario de datos, índices, datos estáticos… DBA: administrador de una base de datos. Funciones: Control global de la base de datos. Definir el esquema de la base de datos: a partir del modelo conceptual. Definir estructuras de almacenamiento Conceder/Revocar permisos de acceso Especificación de restricciones de integridad Usuarios de una base de datos. Programadores de aplicaciones. Son de dos tipos: o Aplicaciones internas al SGBD o Aplicaciones externas al SGBD Usuarios especializados: interactuan con el SGBD sin programas intermedios, sino directamente con el DML de SGBD Página 3 de 34 Administración de una base de datos Oracle 10g BDOO Usuarios normales: interactuan con el SGBD a través de programas de aplicación 2.- REQUISITOS, INSTALACIÓN Y PRIMEROS PASOS Antes de instalar un SGBD, ya sea Oracle en cualquiera de sus versiones, como cualquier otro, es necesario conocer los requerimientos hardware y software. 2.1.- Requisitos del sistema: Requerimientos Hardware - 256 MB de memoria RAM - Memoria virtual: El doble que de memoria RAM - Espacio para archivos temporales: 100 MB en disco - Adaptador de video de 256 colores - Procesador: mínimo 200 MHz - Espacio en el disco de 100 MB - 100 MB para el System Drive - De 1’4 a 1’5 GB según el tipo de instalación, para Oracle Home Drive Requerimientos Software - Procesador de 32 bits - Sistemas Operativos: Windows NT: Server 4.0 Enterprise Edition 4.0 … no es soportado por la versión workstation. Windows: 2000 + SP1 o superior Server 2003 XP Profesional - Protocolo de red TCP/IP, TCP/IP con SSL y Named Pipes 2.2.- Tipos de instalaciones 2.2.1.- Instalación Básica Es la instalación rápida de Oracle 10g. Necesita la intervención mínima del usuario. Se debe especificar la dirección del directorio raíz de Oracle, donde se va a instalar el software. Si se crea una base de datos inicial hay que especificar el nombre y las contraseñas para las cuentas de base de datos administrativas (SYS, SYSTEM, DBSNMP y SYSMAN). 2.2.2.- Instalación Avanzada Página 4 de 34 Administración de una base de datos Oracle 10g BDOO Se elige para poder realizar cualquiera de las siguientes tareas: - Personalizar el software - Para instalar Oracle Real Application Cluster - Actualizar una base de datos existente. - Seleccionar caracteres o idioma diferente - Crear el Tablespace EXAMPLE durante la instalación - … Dentro del tipo de instalación avanzada se puede elegir entre: Enterprise Edition. Standard Edition: Para un grupo de trabajo pequeño o PYMES. Proporciona opciones y servicios de gestión de BD relacionales esenciales Personal Edition: Sólo soporta un entorno de desarrollo y de despliegue monousuario. El nombre de la base de datos global será normalmente: nombreBD.dominioBD Por defecto: ORCL Al final de la instalación se obtiene: Nombre de la BD SID: identificador del sistema Nombre del archivo de parámetros del servidor URL: para acceder Se establecen las contraseñas para cada cuenta. Las cuentas predeterminadas son: SYS, SYSTEM y SYSMAN 2.3.- Primeros pasos Una vez instalado el software de Oracle, los primeros pasos a seguir para su utilización son los siguientes: 2.3.1.- Inicio de una instancia: 1. Arrancar el sevidor de BD. 2. Iniciar una instancia de BD. Una instancia es el conjunto de procesos y áreas de memoria del servidor que utiliza Oracle para administrar el acceso a una BD. En Windows NT/2000/XP una instancia de bases de datos Oracle 10g es un servicio de Windows. 3. Asociar la BD a la instancia. Cuando aparezcan las distintas instancias (por defecto ORCL), hay que conectarse. La opción es Connect database”. 4. Abrir la BD. A continuación hay que definir el método de autenticación {user, password}. Es entonces cuando se produce la conexión a la instancia. Dado que cada instancia de base de datos Oracle 10g es un servicio de Windows, la forma de comprobar, iniciar, o parar una instancia será utilizando el cuadro de diálogo Servicios de Windows, que se encuentra en: Página 5 de 34 Administración de una base de datos Oracle 10g BDOO INICIO Panel de Control Rendimiento y Mantenimiento Herramientas administrativas Servicios. Con el nombre OracleServicenombre, donde nombre es el SID que se le ha dado a la base de datos al crearla (Ejemplo: OracleServiceORCL) 2.3.2.- Conexión a Oracle 10g Una vez instanciada la BD se establece una conexión al servidor de BD Oracle para comenzar el trabajo con la información de la misma. La herramienta de trabajo habitual es SQL*Plus. El entorno SQL*Plus es una herramienta que permite establecer conexión con el servidor de base de datos Oracle y comenzar el trabajo con la información de la base de datos. Se encuentra en: INICIO Todos los programas Oracle-Ora10gHome1 Application Development SQL Plus 3.- ADMINISTRACIÓN DEL ESPACIO Y CREACIÓN MANUAL DE LA BASE DE DATOS 3.1.- Estimación del tamaño de una base de datos Al diseñar una base de datos se puede necesitar hacer una estimación del tamaño que tendrá cuando esté llena. Esta estimación puede determinar si el diseño es correcto o por el contrario necesita reajustes. Para realizar esta estimación hay que tener en cuenta que contiene el espacio en total: Estructuras lógicas: o Tablas, bases de datos… Estructuras físicas o Archivos de datos, bloque de datos Es espacio total está compuesto por estructuras lógicas y físicas que componen Oracle, y que esencialmente son: - Espacios de tabla (TABLESPACE) - Archivos de control - Segmentos de datos - Segmentos de índice - Segmentos temporales - Segmentos de restauración - Extensiones - Bloques de datos y división de datos para tablas e índices. Página 6 de 34 Administración de una base de datos Oracle 10g BDOO 3.2.- Espacios de tabla y Archivos de datos Las estructuras básicas son los espacios de tabla (estructura lógica) y los archivos de datos (estructura física) 3.2.1.- Espacio de tabla o TABLESPACE El espacio de tabla, también denominado TABLESPACE, se define de la siguiente manera: “Es la estructura que almacena físicamente los datos de la tabla en uno o más archivos de datos asociados” Al crear un nuevo objeto, la base de datos se almacena en el tablespace elegido (o en el predefinido por defecto) Toda BD tiene al menos un TABLESPACE. Este se denomina SYSTEM con el fin de almacenar: o El diccionario de datos: Es un conjunto de tablas internas del sistema donde se almacena la información propia de la base de datos o Los códigos fuente y compilado de los programas PL/SQL o Procedimientos, funciones almacenadas, triggers… o Los objetos de la base de datos o Vistas, sinónimos, secuencias… También pueden existir otro tipo de espacios de tabla como por ejemplo: o TEMP: Separa los datos temporales usados durante el procesamiento interno del sistema. o ROLLBACK: Separa los datos de restauración de transacciones del sistema de otro tipo de datos. Oracle utiliza varios espacios de tabla para separar lógica y físicamente el almacenamiento de distintos conjuntos de información de base de datos. Los espacios de tabla pueden estar en varios estados: - en linea: los datos están a disposición de las aplicaciones y de las bases de datos. - fuera de línea: los datos no están a disposición de los usuarios de la base de datos, incluso aunque la base de datos esté disponible. Los espacios de tabla son por defecto de escritura y de lectura, pero se pueden modificar a sólo lectura. 3.2.2.- Archivos de datos El archivo para el almacenamiento físico en disco de un espacio de tabla de una base de datos se denomina archivo de datos. Después de crear un espacio de tabla se pueden agregar más archivos de datos nuevos para incrementar su capacidad de almacenamiento. Página 7 de 34 Administración de una base de datos Oracle 10g BDOO 4.- CREACIÓN Y CONFIGURACIÓN DE UNA BASE DE DATOS Para la realización de estas tareas, Oracle 10 dispone de un asistente de configuración de Bases de Datos. Este asistente nos permitirá crear, modificar y eliminar una base datos. Para la creación pueden utilizarse plantillas, tanto las proporcionadas por Oracle 10g como las que podemos crear y almacenar nosotros mismos para su posterior uso. Para ejecutar el asistente debemos elegir la aplicación “Database Configuration Assistant”, que se encuentra en la carpeta “Configuration and Migration Tools” de “Oracle-OraDb10g_Home1”. Tras pasar por la pantalla de bienvenida, podemos elegir 4 opciones: Crear Base de Datos, Configurar Opciones de Base de Datos, Suprimir Base de Datos y Gestionar Plantillas. 4.1.- Crear una base de datos Plantillas Si seleccionamos la primera opción “Crear Base de Datos” nos aparecerá la siguiente pantalla. En esta ocasión se nos presentan 4 plantillas: Almacén de Datos (Data Warehouse), Procesamiento de transacciones, Uso General y Personalizar Base de Datos. Las tres primeras incluyen Archivos de Datos, pero la opción de Personalizar Base de Datos contiene tan solo la estructura de la base de datos, y proporciona control total para especificar y cambiar todos los parámetros de la base de datos. Si se selecciona esta opción, la creación de la base de datos tardará más, ya que se deben ejecutar todos los archivos de comandos para crear el esquema. Si por el contrario seleccionamos cualquiera de las otras tres opciones la creación de la base de datos será mucho más rápida porque el esquema está presente en los archivos de datos existentes, pero no se podrá agregar ni eliminar archivos de datos, tablespaces ni segmentos de rollback. Sin embargo, se pueden agregar utilizando Enterprise Manager después de crear la base de datos. Pulsando sobre “mostrar detalles” aparecerán los detalles de cada plantilla, en la que se reflejan las “Opciones Comunes” y los Parámetros de inicialización. Las Opciones Comunes de Base de Datos son las siguientes: Oracle Spatial: proporciona una forma para almacenar y recuperar datos multidimensionales. Se utiliza fundamentalmente en los Sistemas de Información Geográfica (GIS). Página 8 de 34 Administración de una base de datos Oracle 10g BDOO Oracle Text: agrega el soporte que permite a Oracle 10g gestionar el contenido multimedia, tanto de Internet como de otras aplicaciones que necesitan acceder a imagen, audio, video, texto e información de ubicación. Oracle JVM (JServer): es un sistema del servidor Java para la base de datos Oracle10g. Oracle Advanced Replication: permite a los usuarios mantener y manipular varias copias de datos en ubicaciones diferentes en un entorno distribuido. Esquemas de Ejemplo Servicios de Oracle OLAP: proporciona herramientas para desarrollar aplicaciones de inteligencia comercial basadas en Internet. Proporcionan servicios que soportan complicados cálculos financieros, matemáticos y estadísticos dentro de un modelo de datos multidimensional. Oracle Ultra Search: es una solución de gestión de texto que permite a las organizaciones acceder a las fuentes de información de texto de forma tan fácil y rápida como a los datos estructurados. Combina la potencia y la escalabilidad de la base de datos Oracle y sus herramientas basadas en SQL con tecnología de recuperación de texto avanzada para ayudar a los usuarios a encontrar exactamente la información que necesitan. Oracle Label Security: basada en los conceptos de etiquetado utilizados por el gobierno y por organizaciones de defensa para proteger la información sensible y proporcionar separación de datos. La etiqueta proporciona una dimensión de control de acceso que no se obtiene fácilmente mediante los datos de la aplicación existentes. Los Parámetros de Inicialización definidos en el asistente son: Nombre de la base de datos para la que se inicia una instancia. Cantidad de memoria que se utiliza para las estructuras de memoria de la SGA. Qué hacer con los archivos de redo log online rellenos. Nombres y ubicaciones de los archivos de control de la base de datos. Nombres de los segmentos de rollback privados de la base de datos. Posteriormente se podrán ajustar varios parámetros para mejorar el rendimiento: Optimizar el rendimiento mediante el ajuste de las estructuras de memoria como, por ejemplo, el número de búferes de la base de datos en la memoria. Definir algunos valores por defecto de toda la base de datos como, por ejemplo, la cantidad de espacio asignado inicialmente al crear un área de contexto. Definir los límites de la base de datos como, por ejemplo, el número máximo de usuarios de la base de datos. Especificar los nombres de los archivos. Identificación Tras seleccionar una plantilla y pulsar en siguiente, accedemos al siguiente paso de la creación de la base de datos, en la que se identifica la misma. En esta ocasión se nos pedirá que rellenemos dos campos: Página 9 de 34 Administración de una base de datos Oracle 10g BDOO Nombre de la base de datos global: nombre completo de la base de datos que la identifica como única distinguiéndola de las demás bases de datos. Su formato es nombreBaseDatos.dominioBaseDatos. SID: identifica la instancia específica del software Oracle 10g en ejecución. El SID no puede ser un nombre utilizado para otra instancia en el mismo computador. El SID puede tener hasta una longitud de 8 caracteres alfanuméricos, y es necesario para cualquier operación que quiera realizarse sobre la base de datos. Gestión Una vez introducidos los dos nombres podemos acceder a la siguiente pantalla de configuración, en la que se decide si la base de datos Oracle se puede gestionar de forma central con Oracle Enterprise Manager Grid Control o localmente con Oracle Enterprise Manager Database Control. Se puede seleccionar también activar copias de seguridad diarias y notificaciones de correo electrónico. Contraseñas En este punto se nos permite seleccionar una contraseña para cada usuario administrador, o seleccionar la misma contraseña para todos ellos. Almacenamiento En este punto se decide el mecanismo de almacenamiento que se desea utilizar para la base de datos. Las opciones son: Sistema de Archivos: utilice el sistema de archivos para el almacenamiento en la base de datos. Gestión de almacenamiento Automatizada (ASM): simplifica la administración de almacenamiento de la base de datos y optimiza el diseño de la misma para el rendimiento de E/S. Para utilizar esta opción, debe proporcionar un juego de discos para crear un grupo de discos ASM o especificar un grupo de discos de ASM existente. Dispositivos RAW: Las particiones o volúmenes raw puede proporcionar el almacenamiento compartido necesario para las bases de datos Real Application Clusters (RAC) si no utiliza la Gestión de Almacenamiento Automatizada y si no está disponible un sistema de archivos de agrupamiento. Debe haber creado un dispositivo raw para cada archivo de datos, archivo de control y archivo log si desea realizar una creación en la base de datos. Tras elegir una opción nos aparecerá una pantalla en la que debemos elegir las ubicaciones en las que se desean crear los archivos de base de datos. Podemos: Usar las Ubicaciones de Archivos de Base de Datos de Plantilla. Usar Ubicación Común para Todos los Archivos de Base de Datos. Usar Oracle Managed Files. Recuperación Página 10 de 34 Administración de una base de datos Oracle 10g BDOO La siguiente pantalla nos pide que seleccionemos las opciones de recuperación para la base de datos. El botón Variables de Ubicación de Archivos permite especificar las ubicaciones del archivos de inicialización, archivos de datos, archivos de control, archivos redo y cualquier otro tipo de archivos utilizados por la base de datos. Esquemas de ejemplo Se nos da la posibilidad de crear unos esquemas de ejemplo, en un tablespace de 130MB que se denominará EXAMPLE. Ajuste de parámetros de la base de datos Esta pantalla nos presenta 4 pestañas: Memoria: El campo típica crea un base de datos con información mínima. Es suficiente para la mayoría de los entornos y para administradores de bases de datos Oracle sin mucha experiencia en procedimientos avanzados de creación de bases de datos. En la opción Personalizada se puede elegir una configuración de memoria a medida. Tamaño: Parámetros de tamaño de la base de datos. Juegos de caracteres: Parámetros relacionados con el juego de caracteres de la base de datos (idioma, formato de fecha, etc). Modo de Conexión: o Modo Servidor Dedicado: Se trata de un servidor que necesita un proceso de servidor dedicado para cada proceso de usuario. Hay un proceso de servidor para cada cliente. La Red de Oracle devuelve la dirección de un proceso de servidor existente al cliente y éste, a su vez, vuelve a enviar la solicitud de conexión a la dirección del servidor proporcionada. Esta opción se selecciona cuando: La Base de Datos se utiliza en un entorno de almacenes de datos. Se espera un número total de conexiones del cliente inferior. Los clientes realizan solicitudes reiteradas y de larga duración a la base de datos. o Modo Servidor Compartido: En este caso varios procesos del usuario pueden compartir un número muy reducido de procesos del servidor, de forma que aumenta la cantidad de usuarios soportados. Sin el servidor compartido, cada proceso del usuario requiere su propio servidor dedicado. En este modo, varios procesos del usuario se conectan a un distribuidor, que dirige distintas solicitudes de sesiones de entrada en red a una cola común. Un proceso del servidor compartido inactivo desde un conjunto compartido de procesos del servidor recoge las solicitudes de la cola. De este modo, un grupo pequeño de procesos del servidor puede servir a una gran cantidad de clientes. Esta opción se selecciona cuando: Utilice la base de datos en un entorno de procesamiento de transacciones en línea (OLTP). El procesamiento de Transacciones en Línea obtiene importantes ventajas del uso de Servidor Compartido. Página 11 de 34 Administración de una base de datos Oracle 10g BDOO Un gran número de usuarios necesite acceder a la base de datos y utilizar de forma eficaz los recursos del sistema disponibles. Tenga restricciones de memoria. El Servidor Compartido reduce el uso de memoria total confrome aumenta el número de usuarios en relación con los servidores dedicados. En este modo, la memoria consumida aumenta casi proporcionalmente al número de usuarios. El servidor Compartido permite ajustar y optimizar el rendimiento del sistema general. Por tanto, en los casos en que un alto grado de control del ajuste de la base de datos sea un criterio importante, puede que desee utilizar Servidor Compartido. Desee utilizar las funciones de la Red de Oracle, como conjuntos de conexiones, concentración de conexiones y equilibrio de carga. La gestión y uso de los recursos del sitema en alto grado sea un criterio importante. Los tiempos de conexión previsibles y rápidos sean muy importantes, por ejemplo para las aplicaciones Web. o NOTA: incluso cuando esté activado Servidor Compartido, algunas funciones, como la administración de la instancia, necesitan servidores dedicados. En estos caso utilice conexiones dedicadas. El botón Todos los parámetros de inicialización permite ver y editar los parámetros de configuración de la base de datos. Dichos parámetros son los valores concretos que inicializan los valores de memoria y del proceso para una instancia de base de datos concreta. Los parámetros de inicialización definidos en el Asistente de Creación de Bases de Datos (DBCA) incluyen el nombre de la base de datos para la que se inicia una instancia, la cantidad de memoria que se utiliza para las estructuras de memoria de la SGA, los archivos redo log online rellenos, los nombres y ubicaciones de los archivos de control de la base de datos y los nombres de los segmentos de rollback privados de la base de datos. Almacenamiento en la base de datos En esta pantalla se pueden especificar todo tipo de parámetros de almacenamiento para la base de datos. Esta página muestra un listado en árbol y una vista de resumen que permite cambiar y ver los siguientes objetos: Archivos de control, Tablespaces, Archivos de Datos, Segmentos de Rollback y Grupos Redo Log. La pestaña opciones permite elegir el número máximo de archivos de datos, el número máximo de grupos de archivos redo log, y el número máximo de miembros log. Opciones de creación Finalmente nos aparecen las últimas opciones disponibles. Podemos generar la base de datos, podemos guardar estos parámetros como plantilla o podemos generar archivos de comandos de creación de bases de datos. Seleccionando esta última opción, podemos acceder a todos los archivos de comandos utilizados para crear la base de datos. 4.2.- Gestionar plantillas Página 12 de 34 Administración de una base de datos Oracle 10g BDOO Si seleccionamos la opción de Gestionar Plantillas nos aparecerá la una pantalla en la que seleccionar el tipo de plantilla que queremos crear. Las opciones son: De una plantilla existente, de una plantilla existente (sólo estructura), de una base de datos existente (estructura y datos) y suprimir plantilla. El resto de los pasos son muy similares a los explicados anteriormente. Las plantillas ahorran tiempo al guardar la definición de la base de datos en un formato de archivo XML en la unidad de disco duro local. Entre las ventajas del uso de plantillas podemos citar: Al crear una plantilla que contenga valores de la base de datos, puede crear de forma fácil una base de datos duplicada sin tener que especificar los parámetros dos veces. Puede cambiar opciones de la base de datos de forma rápida de los valores de la plantilla Puede compartir plantillas copiando la plantilla de una máquina a otra. 4.3.- Configurar una base de datos Tras elegir la opción de configurar una base de datos se nos pedirá que indiquemos el identificador SID de la base de datos a modificar, y también se nos pedirá un nombre de usuario con privilegios SYSDBA y una contraseña. Estos datos los pedirá únicamente si el sistema operativo no ha reconocido al usuario actual como miembro del grupo local ORA_DBA u ORA_SID_DBA. Las opciones de configuración que se nos van a permitir realizar son las siguietes: Podremos agregar a la base de datos las opciones que no se hubieran configurado anteriormente: Oracle JServer, Oracle Text, Oracle Spatial, Servicios de Oracle OLAP, Oracle Advanced Replication, Esquemas de Ejemplo, Oracle iSearch, Oracle Label Security, etc… Podremos seleccionar las componentes estándar a configurar para utilizarlos en la base de datos. Cambiar la configuración de modo del servidor. 4.4.- Suprimir una base de datos Como su nombre indica, eligiendo esta opción podremos eliminar los ficheros de la base de datos seleccionada. 5.- ADMINISTRACIÓN DE LA SEGURIDAD EN ORACLE En cualquier sistema es necesaria la seguridad y esta necesidad se acentúa cuando el sistema es multiusuario, esto ocurre en el uso de Oracle, una base de datos suele dar en casi todos los casos servicio a multitud de usuarios que la comparten. Página 13 de 34 Administración de una base de datos Oracle 10g BDOO 5.1.- Dos conceptos importantes: Para poder entender mejor esta parte de la presentación se debe definir antes dos términos que se van a usar en la exposición de la seguridad Oracle Perfil Es un conjunto de propiedades que se asignan a uno o más usuarios de una de base de datos. Son típicos los perfiles que limitan el uso de ciertos recursos del sistema (tiempo de CPU, tiempo de conexión,...), otro perfil típico es el que limita parámetros tales como el número de intentos fallidos de conexión. Para crear un perfil se utiliza la sentencia CREATE PROFILE “nombre_pérfil”. En esta sentencia se establecen valores para parámetros del perfil, parámetros tales como número de sesiones por usuario, tiempo de CPU por llamada y sesión, tiempo de conexión, coste total de los recursos para una sesión,... Hay infinidad de parámetros que nos permiten fijar el modo de comportamiento de los usuarios asociados a un perfil. Rol Este término se usará en el apartado Administración de privilegios y funciones. Rol es una colección de privilegios del sistema y de objetos que pueden asociarse a usuarios y a otras tareas. Se usan para dar privilegios rápidamente a usuarios. Puede ser bastante complejo dar privilegios ya que es muy configurable (muchas sentencias por asignación de privilegios), se asocian formas de interactuar (privilegios) con todos los tipos de objetos que existen en Oracle. En vez de establecer privilegios cada vez que creamos un usuario creamos un rol y asociamos el usuario a este. Para crear un Rol se usa la sentencia CREATE ROLE “nombre Rol” y después una lista que incluye todos los privilegios asociados al Rol. Para modificar un Rol se usa ALTER ROLE “nombre Rol” (misma sintaxis posterior que CREATE), para eliminarlo DROP ROLE “nombre Rol”. Oracle dispone de muchos roles predeterminados que se pueden usar para conceder privilegios rápidamente a tipos comunes de usuarios de base de datos. Por ejemplo, el rol CONNECT permite al usuario conectarse a la base de datos y crear tablas, vistas, secuencias, sinónimos y otros objetos del esquema asociado o RESOURCE que permite al usuario utilizar los recursos típicos para programación de aplicaciones (clústeres, paquetes, funciones,..). Uno de los roles predefinido más usado es DBA, típico de los Página 14 de 34 Administración de una base de datos Oracle 10g BDOO administradores, permite al usuario realizar cualquier función de la base de datos y disponer de cualquier privilegio. 5.2.- Servicios básicos de seguridad Hay que establecer un mecanismo de seguridad que al menos nos proporcione la capacidad de establecer unas mínimas condiciones de seguridad: Autenticación y administración de usuarios. Administración de privilegios y funciones. Administración de contraseñas. Establecimiento de limites de recursos de la base de datos. 5.2.1.-Autentificación y administración de usuarios Cualquier usuario que quiera entrar en sistema debe ser autenticado por Oracle, para realizar esta acción el usuario debe identificarse con un nombre registrado en el sistema. Oracle presenta tres tipos de autenticación distintas, cada una con sus características propias: -Autenticación mediante contraseña: Es la forma de autenticación a la que estamos más habituados, cuando intentamos entrar a un sistema protegido. Introducimos un login y un password registrados en el sistema, asociados a un rol con sus permisos de comportamiento dentro del sistema. -Autenticación de sistema operativo: Típica en sistemas cliente-servidor. Consiste en que el sistema Oracle autentica al usuario usando el sistema operativo del servidor donde ejecuta el sistema operativo. Este sistema evita que tengamos que introducir dos veces tanto el login como password. -Autenticación global de usuario: Oracle utiliza un servicio de seguridad externo, aunque Oracle dispone de sus propios servicios de seguridad para realizar la autenticación global de usuario, como es el caso de Oracle Security Server. Principal uso, en redes no seguras y en accesos de los usuarios a varias bases de datos distribuidas. Evitamos tener que autenticarnos cada vez que accedamos a una nueva base de datos incluida en la red distribuida. Cuando se crea un usuario se establece el tipo de autenticación por la que esté “afectado” el nuevo usuario, al comando CREATE USER “nombre_usuario” se le indica las opciones INDENTIFIED (by | EXTERNALLY | GLOBALLY AS) dependiendo si se le quiere aplicar respectivamente autenticación por contraseña, sistema operativo o de tipo global. Para crear un nuevo usuario debe tener el que ejecuta la operación suficientes permisos para la ejecución de este comando. Este usuario se habrá autenticado previamente en el Página 15 de 34 Administración de una base de datos Oracle 10g BDOO sistema y habrá obtenido del mismo permisos de administración. Inicialmente en Oracle se crean cuentas con permisos de administración, a partir de este rol se irán creando nuevos usuarios que puedan acceder al sistema Oracle. En cualquier momento podemos cambiar las características de un usuario, en este apartado estamos hablando de autenticación, solo el tipo de acceso nos interesa. Para modificarlo se usara el comando ALTER USER y estableceremos el nuevo tipo de autenticación, recordemos que debemos estar trabajando con un usuario debidamente autenticado en el sistema con permisos suficientes para ejecutar esta operación. Podemos Eliminar un usuario registrado en el sistema, si tenemos suficientes privilegios para ejecutar el mandato DROP USER 5.2.2- Administración de privilegios. Para que puedan realizar operaciones en la base de datos, los nuevos usuarios deben disponer de privilegios. Hay dos tipos de privilegios, de sistema y privilegios de objeto. -Pivilegios de sistema: operaciones que afectan a todo el sistema. Ejemplo: CREATE SESSION, CREATE TABLE (creación tabla espacio propio), CREATE ANY TABLE (creación de la tabla en cualquier esquema). -Privilegios de objeto: operaciones específicas sobre elementos específicos de la base de datos, tablas, vistas, etc. Ejemplo: para una tabla SELECT; INSERT, UPDATE, DELETE, ALTER,.. La sentencia para asignar privilegios en Oracle es GRANT, seguida de una lista de privilegios de sistema y objetos. Para poder quitar privilegios se hace uso de la sentencia REVOQUE, esta sentencia retira los privilegios o roles especificados a los usuarios o roles situados en la clausula FROM (ver uso de REVOQUE) Ejemplo: REVOQUE DROP ANY TABLE FROM hr, manolito; 5.2.3.-Administración de contraseñas. En el caso de que hubiéramos establecido un modo de autenticación basado en contraseña. Cuando se crea un usuario se puede establecer una contraseña para que el usuario pueda ser autenticado en el sistema. Para realizar esto debemos estar trabajando con un usuario con permisos de administración. De igual modo podemos modificar la contraseña del usuario. Podemos fijar una opción adicional para el uso de contraseñas, en la creación o modificación de usuarios podemos indicar el modificador PASSWORD EXPIRE, esto producira que la contraseña establecida solo tenga validez en la primera autenticación del usuario, obligando al usuario a introducir el nuevo password. Si establecemos el modo de autenticación del sistema operativo. La forma en la que se administran las contraseñas de los usuarios es responsabilidad del sistema operativo donde ejecuta el servidor del sistema operativo. Si se ha establecido autenticación global, la responsabilidad de administrar las contraseñas recae en algún sistema externo. Página 16 de 34 Administración de una base de datos Oracle 10g BDOO En los perfiles se pueden aplicar políticas para la administración de contraseñas. Los parámetros de contraseña que se pueden establecer en un perfil son: numero máximo de intentos de login, tiempo de vida de la contraseña (días), tiempo de reutilización (días), máximo periodo de reutilización (días), número de días cuenta cerrada después de error login, periodo de gracia de la contraseña (días) y verificación de la contraseña por función, por defecto o no verificación. Como podemos ver tenemos muchas posibilidades para poder establecer una política de gestión de las contraseñas que más se adecue a nuestras necesidades particulares. 5.2.4.-Establecimiento de límites de recursos de la base de datos Es típico limitar los recursos de acceso de la base de datos. Hay dos formas de establecer dichos límites: - En la creación y modificación de un usuario se puede fijar el espacio con el que el usuario podrá trabajar en el sistema. Hay dos cuotas de espacio que se pueden fijar para los usuarios. DEFAULT TABLESPACE es el espacio donde el usuario puede crear sus objetos y TEMPORARY TABLESPACE es el espacio donde se crean los objetos necesarios para la ejecución de la operaciones. Para fijar dichos tamaños se utiliza las palabras resaltadas en mayúscula seguido de la palabra QUOTA y el numero de megas establecidos. - Se puede habilitar la imposición de límites de recursos del sistema en la base de datos, para ello se utiliza la sentencia ALTER SYSTEM. Esta sentencia suele estar acompañada de modificadores tales como verificación para sistema global o la instancia local, activación de recuperación distribuida, situar la base de datos en estado de inctividad/actividad para posibilitar a los administradores la realización de operaciones no aconsejables en situación de concurrencia,.... Se utiliza este comando para establcer cualquier tipo de parámetro de ejecución del sistema ORACLE. Ejemplos de parámetros que se pueden modificacar son establecer el numero de procesos servidores, el numero de usuarios que puede acceder al sistema al mismo tiempo o establecer el numero máximo de conexiones desde una instancia determinada. 5.3.- Mecanismos de protección de datos en Oracle La seguridad no solo depende de establecer un correcto control de acceso de los usuarios a la base de datos. Debemos también protegernos de los posibles errores producidos en la información que da soporte a todo el sistema (meta-información) y la información añadida al repositorio. Oracle dispone de distintos mecanismos de protección para situaciones de caída del sistema, fallos del disco duro,.. La pérdida de un archivo de la base de datos, corrupción de un fichero. Para poder recuperarnos de estos fallos, debemos guardar una copia de Página 17 de 34 Administración de una base de datos Oracle 10g BDOO seguridad de los datos contenidos en el sistema y un registro de transacciones para ver las ejecuciones que se van realizando por parte de los usuarios. 5.3.1.- Registro de transacciones Para poder ver el estado del registro de transacciones o modificar la configuración del mismo debemos estar trabajando en el sistema con privilegios de administrador de sistema. Como administrador del sistema tenemos dos accesos a los privilegios: SYSOPER y SYSDBA. El primer acceso nos permite iniciar / cerrar un servidor Oracle, montar, abrir, cerrar, copiar y recuperar una base de datos y administrar estructura transacciones . SYSDBA ya lo hemos comentado anteriormente permite realizar cualquier operación sobre la base de datos y asignar permisos al resto de usuarios. Para ver la configuración del registro de transacciones se utiliza la opción LIST del comando ARCHIVE LOG. Por defecto la base de datos Oracle opera con la recuperación de medios deshabilitada. Para poder usar la recuperación es necesario habilitar el registro de transacciones y configurarla de acuerdo a nuestras necesidades particulares. Habilitación de la recuperación de medios. Para poder habilitar la recuperación de medios, debemos cerrar la instancia actual de la base de datos haciendo uso del comando SHUTDOWN. Iniciamos una nueva instancia y antes de permitir o ejecutar algún tipo de operación en el sistema, habilitamos el modo registro de la base de datos modificando ARCHIVELOG ( ALTER DATABASE ARCHIVELOG;). Una vez habilitado el registro, podemos abrir para el uso normal la instancia de la base de datos, para ello ejecutamos el mandato ALTER DATABASE OPEN; 5.3.2.- Copia de seguridad de la base de datos con Recovery manager (RMAN) Rman es una herramienta que permite hacer backup de toda la base de datos o de una parte, siempre y cuando este habilitada la recuperación de medios. Rman funciona bajo en entorno MS-DOS. Para poder ponerlo en funcionamiento tecleamos RMAN NOCATALOG, una vez hecho esto conectamos a la base de datos sobre la cual queremos realizar la copia de seguridad. Se puede realizar la copia de seguridad de toda la base de datos o solo se realiza backup del tablespace SYSTEM. Rman nos ofrece la posibilidad de realizar copia de seguridad de los ficheros de todos los ficheros de registro archivados. Con Rman podremos consultar el estado de todas las copias de seguridad realizadas en el sistema, todas aquellas a las que podamos recurrir cuando se produzca un fallo en la base de datos. Página 18 de 34 Administración de una base de datos Oracle 10g BDOO No vamos a entrar en la sintaxis necesaria para poder usar esta herramienta, ya que para mayor detalle se puede consultar la bibliografía incluido en el trabajo. No pensamos que el lenguaje necesario para usar esta herramienta sea contenido relevante en este trabajo. 5.3.3.- Recuperación de una base de datos con RMAN Oracle puede recuperar la base de datos ante una caída de sistema, una pérdida de datos u otra causa. Supongamos que se ha producido un error en la instancia actual de ejecución. Para recuperar el tablespace, reiniciamos la instancia y abrimos la base de datos. La tarea siguiente es restaurar el archivo de datos perdido del espacio de tabla dañado. Una vez finalizada la recuperación con éxito salimos del Rman con el comando exit. Dado que Rman es una importante herramienta de seguridad, es recomendable la lectura de los manuales del mismo y profundizar en todas las operaciones que se pueden hacer con esta utilidad. 5.4.- Seguridad, gestión y administración de Oracle Enterprise Manager 5.4.1.- Administración de la seguridad La sección seguridad de la pantalla Administración de la consola Oracle Enterprise Manager permite a los administradores autorizados dar de alta y borrar usuarios, roles y perfiles y conceder privilegios y roles a múltiples usuarios de la base de datos. La sección seguridad tiene tres apartados: Usuarios (administrar cuentas de usuario), Roles (asignar privilegios de rol) y Perfiles (para gestionar recursos limitados en la base de datos según perfiles). Se comentará los aspectos que se alejen de la administración normal, ya que desarrollar todo este apartado obligaría a repetir todo la expuesto hasta ahora. - Usuarios: además de crear, editar, ver, suprimir o realizar cualquier función de comando sobre el usuario, se podrá crear un nuevo usuario tomando como base uno ya creado (Crear como). La página grupo de consumidores nos permite gestionar grupos de usuarios de forma cómoda fijando los privilegios de mismo. La página Usuarios del Proxy permite seleccionar los usuarios que pueden actuar de proxy para el usuario actual y designar los usuarios para los que el usuario puede actuar como proxy. - Roles: Nos permite utilizar las mismas posibilidades que el lenguaje SQL pero mucho mas sencillo debido al uso de un interfaz gráfico. Se puede crear un rol tomando como base otro. - Perfiles: Nos permite utilizar las mismas posibilidades que el lenguaje SQL pero mucho mas sencillo debido al uso de un interfaz gráfico. Se puede crear un perfil tomando como base otro. Página 19 de 34 Administración de una base de datos Oracle 10g BDOO Lo más interesante de esta herramienta es que nos evita tener que “lidiar” con el lenguaje SQL pudiendo hacer las tareas de administración de seguridad mediante una intuitiva interfaz gráfica. 5.4.2.- Administración de Oracle Enterprise Manager Se debe utilizar las funciones de administrador para gestionar las cuentas de administración de Enterprise Manager. Desde la consola de Enterprise Manager Grid Control puede crear y gestionar nuevas cuentas de administración de Enterprise Manager. Cada cuenta de administrador incluye sus propias credenciales de conexión, así como un juego de roles y privilegios que se asignan a la cuenta. Por defecto, solo los usuarios de la base de datos SYS, SYSTEM y SISMAN se pueden conectar y utilizar la consola de la base de datos. Gestión de los métodos de notificación: Uno de las herramientas más destacadas de este modulo. Los métodos de notificación permiten globalmente diferentes mecanismos para enviar notificaciones. Estos métodos incluyen correo electrónico, interrupciones SNMP y archivos de comandos personalizados en ejecución. Una vez definidos, estos métodos se pueden utilizar con las reglas de notificación para enviar notificaciones a los administradores como resultado de las incidencias de alerta. Cada administrador tiene sus propias reglas de notificación. Mediante la página Métodos de notificación es posible configurar los servidores de correo saliente si se desea enviar notificaciones de correo electrónico mediante las reglas de notificación y gestionar archivos de comandos e interrupciones SNMP. Configuración de parches: En la página Configuración de Perches puede especificar los parámetros que permiten utilizar las funciones de parches de Enterprise Manager. Estas funciones simplifican el almacenamiento en zona intermedia y la aplicación de parches y juegos de parches de Oracle a cualquier host en el que esté ejecutando Oracle Manager Agent. También permiten recopilar información sobre asesores de parches críticos de Oracle importantes para la empresa. Gestión de interrupciones: Las interrupciones permiten suspender el control de uno o más destinos para realizar operaciones de mantenimiento. Si no es superusuario, solo podrá ver las interrupciones que ha creado en esta página. El superadministrador puede verlas todas. 5.5.- Establecimiento de políticas 5.5.1.- Gestión de bibliotecas de políticas Página 20 de 34 Administración de una base de datos Oracle 10g BDOO Existen reglas de políticas para diferentes tipos de destino, como host, bases de datos Oracle y listeners. La página Gestionar Biblioteca de políticas muestra una lista de todas las reglas de políticas que Enterprise Manager comprueba para que los destinos de la empresa lo cumplan, se puede ver la prioridad, la categoría y la descripción de cada política. Para cada regla la columna tipo de destino indica el donde se aplica la regla. Puede activarse en cualquier momento la ejecución de una regla, en el caso de desactivarse las violaciones detectadas anteriormente para esa regla se suprimiran del repositorio de gestión. Si activa una regla desactivada anteriormente, cuando Enterprise Manager terminará la siguiente evaluación de reglas de políticas para la empresa, carga las violaciones a la regla en el repositorio de gestión. 5.5.2.- Ejemplos de políticas Como hemos indicado anteriormente hay muchas categorías en las que están divididas las políticas. Estas políticas pueden aplicarse a cualquier maquina, base de datos con la que este relacionada la base de datos que estamos administrando. Al establecer las políticas establecemos el modo de comportamiento de nuestra base de datos con todos los sistemas esternos al mismo. Por eso caba resaltar la necesidad de establecer un correcta biblioteca de políticas con la que trabajará nuestro sistema. A continuación y para poder darnos una idea de las distintas posibilidades a las que tenemos acceso en el establecimiento de políticas, se incluye un listado donde podemos ver ejemplos de las mismas. Ejemplos de políticas. Página 21 de 34 Administración de una base de datos Oracle 10g Priori dad Y Y Y Y Y Regla de Política Categoría BDOO Tipo de destino Asesores de parches críticos para directorios Configura host ción raíz de Oracle Numero insuficiente de Configura Base de archivos de ción Datos control Puertos abiertos Seguridad Host Rol del Sistema operativo Base de Seguridad remoto datos Administración directa del Listener Seguridad Listener Autenticación del sistema operativo remoto Y Seguridad Base de datos Contraseña del Listener Y Seguridad Listener http Server Access Login Y Y Web Cache Access Login Seguridad Servidor HTTP Seguridad Web Cache Descripción Comprueba los directorios raíz de Oracle por si faltan parches críticos Comprueba el uso unico de un archivo de control Comprueba los puertos abiertos Comprueba la autenticación no protegida de los usuarios remotos Asegura que los listener no se pueden administrar de forma directa Comprueba la autenticación no protegida de los usuarios remotos(autentica ción del sistema operativo remoto) Prueba los Listener esten protegidos con contraseña Check that HTTP Server Access logging is enabled Check that Web Cache Access logging is enabled Desacti Desac var por No Si No No No No No Si No Podemos ver en esta tabla todos los campos que se muestran en la herramienta Enterprise Manager. La prioridad de la política, nombre de la política con la que estamos tratando, la categoría a la que pertenece, el tipo destino de la misma, descripción para mejor entendimiento de los objetivos que persigue, si esta activada/desactivada y en el caso de estar desactivada quien es el responsable de ello. Página 22 de 34 Z Z2 Administración de una base de datos Oracle 10g BDOO 6.- MANTENIMIENTO DE LA BASE DE DATOS El mantenimiento de la base de datos conlleva operaciones importantes que deben ser ejecutas por los administradores del sistema. Estas operaciones son agrupadas en Oracle en tres categorías importantes: ● Utilidades ● Copias de seguridad y recuperación de la base ● Estructuración / Despliegue de la base Las operaciones básicas de mantenimiento son: - mover rápidamente datos desde una base de datos a otra utilizando operaciones de Exportación / Importación - extraer representaciones completas de los objetos de la base - importar datos en las tablas de Oracle desde archivos del sistema operativo utilizando SQL*Loader - ejecutar tareas de copias de seguridad y recuperación de datos - analizar y optimizar el uso de los objetos de la tabla - clonar bases de datos 6.1.- Utilidades La interfaz web “Enterprise Manager” ofrece opciones para la exportación e importación de datos en las distintas tablas de la base de datos. El sistema es muy rápido incluso para cantidades grandes de datos. La interfaz se presenta de la manera siguiente: Utilidades ● Exportación en archivo ● Importación de archivo ● Importación de la base de datos ● Cargo de datos de archivo ● Recopilación de estadísticas ● Reorganización de objetos ● Reorganizar objetos de gestión de tablespaces localmente 6.1.1.- Exportación El asistente “Data Pump Export”, que llamaremos a partir de ahora Exportación, es una utilidad para descargar data de la base de datos en un conjunto de archivos del sistema operativo. Estos archivos se pueden mover de un sistema a otro e importar utilizando la utilidad de Importación. Página 23 de 34 Administración de una base de datos Oracle 10g BDOO El conjunto exportado contiene varios archivos con los datos de las tablas, datos de los distintos objetos de la base e información de control. El formato de los archivos es propietario Oracle y puede ser leído solo con la utilidad de Importación que viene con el programa. Al iniciar el proceso de exportación, Oracle pide que se quiera exportar: En función del tipo de exportación elegido, las etapas siguientes piden que se seleccionen los objetos a exportar, que se introduzca el nombre de usuario y la contraseña del servidor donde se guardaran los archivos, y finalmente se genera un script que se puede ejecutar enseguida o guardar para una ejecución diferida. En la tabla abajo se puede ver un script de exportación obtenido con la exportación de la tabla “Patient” del esquema “Toto”. Ejemplo de un script de exportación declare h1 NUMBER; begin begin h1 := dbms_datapump.open (operation => 'EXPORT', job_mode => 'TABLE', job_name => 'ExportacionPatients', version => 'COMPATIBLE'); end; begin dbms_datapump.set_parallel(handle => h1, degree => 1); end; begin dbms_datapump.add_file(handle => h1, filename => 'EXPDAT.LOG', directory => 'DATA_FILE_DIR', filetype => 3); end; begin dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0); end; begin dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''TOTO'')'); end; begin dbms_datapump.metadata_filter(handle => h1, name => 'NAME_EXPR', value => 'IN(''PATIENT'')'); end; Página 24 de 34 Administración de una base de datos Oracle 10g BDOO begin dbms_datapump.set_parameter(handle => h1, name => 'ESTIMATE', value => 'BLOCKS'); end; begin dbms_datapump.add_file(handle => h1, filename => 'EXPDAT%U.DMP', directory => 'DATA_FILE_DIR', filetype => 1); end; begin dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1); end; begin dbms_datapump.set_parameter(handle => h1, name => 'DATA_ACCESS_METHOD', value => 'AUTOMATIC'); end; begin dbms_datapump.start_job(handle => h1, skip_current => 0, abort_step => 0); end; begin dbms_datapump.detach(handle => h1); end; end; / 6.1.2.- Importación El asistente “Data Pump Import”, llamado para simplificar Importación, es una utilidad que permite cargar datos que han sido creados con la utilidad de exportación. El conjunto de archivos exportados por Oracle solo pueden ser leídos con esta utilidad, dado que el formato de los archivos es propietario Oracle. La utilidad de importación puede ser utilizada para cargar datos en una base de datos directamente de otra base de datos, sin pasar por archivos intermediarios. Así se permite minimizar los tiempos de ejecución de la operación. El proceso para importar un conjunto de archivos es similar con el proceso de exportación. Oracle pide la ubicación de los archivos que se utilizaran para la importación, el usuario y la contraseña por el servidor, y luego genera un script de importación que se puede ejecutar enseguida o guardar para una ejecución diferida. En la tabla siguiente se puede ver el inicio de un script de importación: Script de importación declare h1 NUMBER; begin begin h1 := dbms_datapump.open (operation => 'IMPORT', job_mode 'FULL', job_name => 'IMPORT000049', version => 'COMPATIBLE'); end; begin dbms_datapump.set_parallel(handle => h1, degree => 1); Página 25 de 34 => Administración de una base de datos Oracle 10g BDOO end; begin dbms_datapump.add_file(handle => h1, filename => 'IMPORT.LOG', directory => 'DATA_FILE_DIR', filetype => 3); end; begin dbms_datapump.set_parameter(handle => h1, name => 'KEEP_MASTER', value => 0); end; … 6.1.3.- Asistente de carga de data de archivos Este método utiliza dos archivos: uno de control (.ctl) y uno con los datos (.dat). El formato de estos dos archivos es SQL*Loader estándar. Analicemos el siguiente ejemplo. Se trata de importar datos en la tabla con el nombre “ofertas”, que contiene cinco campos: id, fecha, descripción, producto1 y producto 2. El archivo load.ctl contiene las instrucciones de importación. LOAD DATA INTO TABLE ofertas REPLACE FIELDS TERMINATED BY ';' ( id, fecha date 'yyyymmdd', descripcion char(25), producto1 char(25), producto2 char(25) ) El archivo load.dat contiene los datos. 1; 20031025; DSL/Wireless Expense Oct; Home DSL; Wireless 2; 20031125; Office Equipment; Optical Mouse; Network Router 3; 20031225; Computer System; Dell Pentium 4 Laptop; Docking Bay Para cargar estos datos, se debe entrar en Enterprise Manager con una cuenta que tiene derechos de administrador (como SYS). 1. En la pagina “Maintenance” clic en el enlace “Load Data from File”. El proceso tiene varias etapas: 2. En la etapa “Control File” se debe especificar el nombre del archivo “.ctl” situada en la maquina servidor, y el nombre de usuario y la contraseña para la maquina servidor. Página 26 de 34 Administración de una base de datos Oracle 10g BDOO 3. En la etapa “Data File” se debe especificar el camino hacia el archivo ‘.dat’ situado en la maquina servidor de Oracle. 4. En la etapa “Opciones” se puede elegir de crear un archivo “log” con el resumen del proceso de importación. Esta página ofrece otras opciones que se pueden modificar al gusto del usuario. 5. En la etapa “Schedule” se puede elegir ejecutar la tarea inmediatamente o dejarla para mas tarde: 6. Por fin, la última etapa muestra el resumen de las opciones elegidas y permite ejecutar la operación. 6.1.4.- Recopilación de estadísticas Oracle permite analizar objetos para colectar información estadística. Se puede utilizar el paquete DBMS_STATS o la comanda ANALYSE para recopilar estadísticas sobre las características de almacenamiento de tablas, indexes o clusters. Esas estadísticas son almacenadas en el diccionario de datos y son utilizadas por el agente de optimización cuando elige la mejor manera de ejecutar consultas SQL sobre los elementos analizados. Hay varios tipos de estadísticas: ◦ Sobre Tablas: - numero de filas - numero de bloques Página 27 de 34 Administración de una base de datos Oracle 10g BDOO - longitud media de una fila ◦ Sobre columnas: - numero de valores distintas - numero de NULL en una columna - histograma de distribución de datos ◦ Sobre index: - numero de hojas - numero de niveles ◦ Sobre el sistema: - rendimiento de UPC - rendimiento de E/S El paquete DBMS_STATS ofrece cuatro métodos para recopilar estas estadísticas: - GATHER_INDEX_STATS GATHER_TABLE_STATS GATHER_SCHEMA_STATS GATHER_DATABASE_STATS En el ejemplo siguiente, recopilamos estadísticas sobre la tabla Empleados del tablespace Recursos Humanos: EXECUTE DBMS_STATS.GATHER_TABLE_STATS ('RH', 'EMPLEADOS'); Oracle mostrara datos sobre el index de la tabla y sobre la utilización física de la tabla. En el paquete DBMS_STATS vienen muchas funciones para realizar una gama variada de tareas de recopilación de estadísticas sobre los distintos objetos y el sistema. 6.1.5.- Reorganización de objetos La reorganización de objetos es necesaria para: - reconstruir los archivos “index” fragmentados - reconstruir las tablas fragmentadas - mover objetos de un tablespace a otro - recrear tablas con atributos óptimos para el almacenamiento Al crear una tabla en la base de datos, se utilizan ciertos parámetros para determinar el espacio inicial utilizado por los datos. Las operaciones ulteriores de inserción, modificación y supresión de datos llevan a la fragmentación de la tabla y el index asociado. Esto resulta en tiempos más largos de operación – acceso a los datos, consultas SQL. La operación de reorganización actúa sobre la estructura física del archivo asociado a la base de datos, almacenado en el disco duro. De esta manera se reordenan las filas de la tabla en el orden lógico y se supriman físicamente las filas borradas. El proceso es similar a la de fragmentación de un disco duro. Página 28 de 34 Administración de una base de datos Oracle 10g BDOO 6.2.- Copias de seguridad y Recuperación de la Base de Datos Copias de seguridad / Recuperación de la base ● Planificación de copias de seguridad ● Recuperación de la base de datos ● Gestión de copias de seguridad ● Configuración de valores de copias de seguridad ● Configuración de valores de recuperación ● Configuración de valores del catalogo de recuperación Una copia de seguridad es simplemente una copia de toda la base de datos o de algunas de sus partes, por ejemplo los archivos de control o de datos. Las copias de seguridad se realizan para prevenir perdidas de datos imprevistas. Si los datos originales se pierden, se podrán reconstruir a partir de las copias. 6.2.1.- Copias de seguridad lógicas y físicas Hay dos tipos de copias de seguridad: Físicas - son copias de los datos de la base - se pueden realizar con utilidades del sistema de operación o con la utilidad RMAN de Oracle Lógicas - son copias de distintas partes de una base de datos (tablespaces, tablas, métodos almacenados) extraídos con una herramienta Oracle y almacenados en archivos binarios - se pueden utilizar en complemento de las copias físicas Dependiendo del momento cuando la copia de seguridad se realiza, se pueden distinguir dos tipos: BOUM !!! Copias consistentes Copias inconsistentes Página 29 de 34 Administración de una base de datos Oracle 10g - realizadas cuando la base esta cerrada y contiene las ultimas modificaciones BDOO - realizadas cuando la base de datos esta en uso - realizadas después de un cierre anormal - se utilizan cuando la base de datos tiene que ser disponible 24 / 7 En función de las necesidades de cada administrador de un servidor Oracle, se pueden incluir en las copias de seguridad los siguientes elementos: la base entera los tablespaces los archivos de datos los archivos de control los archivos de transacciones 6.2.2.- Copias de la base entera Son las copias más comunas, incluyendo todos los archivos de datos de la base más los archivos de control. La copia resultada puede ser consistente o inconsistente, dependiendo de cómo se ha cerrado la base de datos. Si la copie resulta inconsistente, se debe utilizar el archivo de transacciones para corregir los errores eventuales. 6.2.3.- Copias de tablespaces Permite guardar solo un tablespace de los muchos que puede contener una base de datos. Por ejemplo, si el tablespace “usuarios” contiene los archivos de datos 2, 3 y 4, entonces una copia de seguridad de este tablespace incluirá estos tres archivos. 6.2.4.- Copias de archivos de datos Guarda en una ubicación segura solo un archivo de datos especificado por el administrador. Estas copias no suelen ser tan comunes como los de tablespaces. 6.2.5.- Copias de los archivos de control Sin los archivos de control una base de datos no puede ser abierta. Dado su importancia, los archivos de control se suelen incluir en copias de seguridad automáticas, utilizando la sentencia SQL CONFIGURE CONTROLFILE AUTOBACKUP De esta manera el sistema se encargara de realizar solo las copias de seguridad de estos archivos. Página 30 de 34 Administración de una base de datos Oracle 10g BDOO 6.3.- Recuperación de la base de datos Si un día falla el disco duro donde se esta guardando una base de dato, todo el contenido de la base se pierde. Si hay copias de seguridad, la base de datos se puede reconstruir, utilizando la última copia de seguridad y los archivos de transacciones (que contienen los cambios realizados sobre la base de datos desde la última copia). Si la base de datos funciona en el modo ARCHIVELOG, se podrán reconstituir las operaciones desde la última copia de seguridad, sino no. La próxima figura ilustra todo el proceso de recuperación. 1. 2. 3. 4. Ultima copia de seguridad realizada al sistema, cuando NCS valía 100 La base de datos falla cuando NCS vale 500 Se restaura la copia de la base de datos hecha cuando NCS era 100 Se utilizan los archivos de transacciones para rehacer los cambios realizados entre NCS = 100 hasta 500 Página 31 de 34 Administración de una base de datos Oracle 10g BDOO 6.4.- Estructuración / Despliegue de la base Estructuración / Despliegue de la base ● Parches ● Clonar bases de datos ● Clonar el directorio raíz de Oracle ● Caché de parches ● Gestión de configuración ● Gestión de bibliotecas de políticas ● Gestionar violaciones de políticas 6.4.1.- Clonación En su última versión, Oracle utiliza plantilla para crear las bases de datos. Las plantillas son más potentes que los scripts porque permiten clonar una base de datos. Así se ahorra el tiempo de creación de los archivos del núcleo de la base. Cuando se clona una base de datos se copian los archivos del núcleo de una base ya existente en otra ubicación. El proceso suele ser rápido porque los archivos del núcleo ya han sido generados al crear la primera base. Hay dos tipos de plantillas. Las primeras tienen la extensión “.dbc” e incluyen los archivos del núcleo de la base. Se pueden utilizar como “semilla” para crear varias clonas, que solo difieren por su nombre. El según tipo de plantillas tienen la extensión “.dbt” y no contienen los archivos del núcleo de la base. Solo tienen las características, y al crear una base de datos partiendo de esta plantilla se deben crear todos los archivos. El Asistente de Configuración de la Base de Datos (DBCA) permite crear bases de datos utilizando plantillas, o clonas de existentes. Si se utiliza una plantilla se clonara la “semilla” contenida en la plantilla, y si se selecciona una base de datos ya existente se duplicaran sus archivos de núcleo. La base de datos creada será una clona de la base original. 6.4.2.- Gestión de bibliotecas de políticas La biblioteca de políticas de Oracle contiene una lista de tareas y sugerencias que pueden influir sobre el rendimiento y la seguridad de la base de datos. Cada una de los elementos de esta biblioteca pertenece a una categoría (Seguridad, Configuración…) y tiene una prioridad. Las tareas con alta prioridad deberían ser revisadas cuanto antes posible por el administrador del sistema, para tomar las medidas necesarias o por desactivar la política si se considera que no corresponde a la base de datos que se administra. Algunas tareas típicas son: Página 32 de 34 Administración de una base de datos Oracle 10g - BDOO comprobar la lista de puertos abiertos de la maquina servidor, para no sufrir ataques en los puertos abiertos comprobar que hay varios archivos de control comprobar la visibilidad del servidor web etc. En la figura abajo se ve la manera de gestionar las tareas con Enterprise Manager: 6.4.3.- Gestión de violaciones de políticas Para asegurar el buen funcionamiento del servidor y para prevenir contra los ataques de fuera, Oracle ofrece la opción de ver la lista de las políticas que han sido violadas, la maquina de origen y la fecha. Con esta lista el administrador del sistema puede tomar medidas en contra de las violaciones. En la imagen abajo se pueden ver mensajes de advertencia con respecto a los puertos abiertos en la maquina servidor (mi ordenador) que son susceptibles a ataques. Página 33 de 34 Administración de una base de datos Oracle 10g Página 34 de 34 BDOO