Tema 24.docx
Document Details
Uploaded by Oganesson93
Universidad de Valladolid
Tags
Full Transcript
Tema 24. ORACLE: características principales. Arquitectura del sistema. Arranque y parada de bases de datos. Seguridad lógica: usuarios, permisos y roles. Seguridad física. Backup. Oracle es un sistema gestor de base de datos objeto-relacional desarrollada por la empresa Oracle Corporation. Algunas...
Tema 24. ORACLE: características principales. Arquitectura del sistema. Arranque y parada de bases de datos. Seguridad lógica: usuarios, permisos y roles. Seguridad física. Backup. Oracle es un sistema gestor de base de datos objeto-relacional desarrollada por la empresa Oracle Corporation. Algunas de las características principales de Oracle incluyen: - Tiene diferentes tipos de licencias, las principales: - Enterprise: es la más costosa. Incluye todos los componentes y opciones que éste motor de bases de datos nos puede ofrecer. Es utilizada generalmente por grandes compañías, ya que sus diferentes componentes ofrecen un alto rendimiento y seguridad para la criticidad del negocio. - Standard: existen varias versiones. Están pensadas para medianas y pequeñas compañías. Ésta tiene un coste más accesible que la versión Enterprise, ya que no cuenta con todas las características que ésta otra puede ofrecer. Sin embargo, también nos ofrece muchas características y funcionalidades. - Oracle Express Edition: es gratuita. - Soporte para múltiples plataformas: Oracle se ejecuta en múltiples plataformas, incluyendo Windows, Linux, Unix y macOS. - PL/SQL: Oracle incluye un lenguaje de programación procedimental llamado PL/SQL, que permite a los desarrolladores crear aplicaciones y procedimientos almacenados en la base de datos. - Oracle proporciona varias herramientas de desarrollo y gestión: - SQL\*Plus: herramienta en línea de comandos que puede ejecutar comandos SQL y PL/SQL de forma interactiva o mediante un script. - Oracle SQL Developer: es un entorno de desarrollo gráfico integrado (IDE) gratuito que permite desarrollar y gestionar implementaciones de las bases de datos de Oracle. - Oracle JDeveloper: es un entorno de desarrollo integrado (IDE) desarrollado por Oracle gratuito que cubre todo el ciclo de vida del desarrollo de aplicaciones software basadas en Java, JavaScript, SQL, PL/SQL, HTML, XML, PHP,... **Arquitectura del sistema Oracle** Oracle utiliza un modelo cliente/servidor. En el cliente se ejecutan los procesos de usuario. Estos procesos se conectarán con procesos del servidor para poder trabajar con la Base de Datos. En el servidor se encuentra: 1. La instancia de la Base de datos: a. Procesos: i. Procesos de servidor: Se encargan de la comunicación de las peticiones de los procesos de cliente con la Base de datos. Gestiona las peticiones de los procesos de usuario. ii. Procesos en segundo plano: Se están ejecutando siempre en segundo plano y se encargan entre otras actividades de la escritura de los búferes que se encuentran en la SGA a sus archivos de disco correspondientes. b. Estructuras de memoria: iii. PGA: estructura en memoria que utiliza cada proceso de servidor para poder atender las peticiones de los procesos de usuario. Si el servidor es dedicado, existe una por procesos de servidor/proceso de usuario. iv. SGA: Estructura en memoria compartida por todos los procesos de servidor y contiene entre otras la caché de búfer de datos (datos modificados confirmados) y el búfer redo log (instrucciones de modificación de datos confirmadas). 2. Archivos de la Base de Datos: c. Archivos de datos: Donde se almacenan los datos finales de la base de datos. Cuando se ejecuta el proceso de segundo plano DBWRn se graba los datos de la caché del búfer de datos en los archivos de datos. Esto ocurre cuando se ejecuta un checkpoint. d. Archivos redo logs: Donde se almacena las modificaciones de los datos (no los datos) confirmados. Cuando se ejecuta el proceso de segundo plano LGWR, se graba el búfer de redo log de la SGA al fichero redo log. e. Archivos de control: fichero binario donde se almacena información esencial para el funcionamiento de la Base de datos: como es el nombre la base de datos, la fecha de creación, registro de checkpoints, secuencia donde se encuentra el fichero redo log,... f. Archivos de parámetros: Almacena parámetro de configuración de la base de datos. **Arrancar y detener una base de datos Oracle** Una base de datos Oracle puede estar en uno de estos cuatro estados: - SHUTDOWN. La base de datos está cerrada, ningún archivo ni proceso está en ejecución. La instancia de Oracle no está en memoria. - NOMOUNT. La instancia de base de datos está latente en memoria: - Los procesos comunes y en segundo plano funcionando. - Se asigna en memoria el espacio para la SGA. - Se abre el archivo de parámetros. - MOUNT. Al estado anterior se añade la lectura de los archivos de control que permiten determinar cómo se ha de preparar la instancia. Se buscan los archivos de datos y los Redo Log, comprobando su existencia en las rutas marcadas por el archivo de control. - Cambio del nombre de los archivos de datos - Activar el modo ARCHIVELOG - Recuperación de la base de datos - En definitiva, tareas sobre los archivos de la base de datos ya que aún no se han abierto sus datos. - OPEN. La base de datos está completamente funcional. Para ello se abren los archivos de datos y los Redo Log y se comprueba la consistencia de los datos. Para iniciar la base de datos se usa el comando STARTUP seguido del nombre del estado deseado. Sin indicar estado alguno (escribiendo STARTUP, a secas), se inicia Oracle en modo OPEN. El comando ALTER DATABASE seguido del estado permite cambiar de estado (solo podremos cambiar hacia estados superiores). Una instancia cuando es arrancada, hasta estar disponible atraviesa todos los estados anteriores. En el modo de sesión restringida, es un modo especial de trabajo en el que la base de datos está abierta, pero solo se permite el acceso a usuarios con permiso RESTRICTED (lo poseen los administradores) para hacer tareas especiales de administración. Uso: STARTUP RESTRICTED -- -- Parada El comando de apagado de la instancia es SHUTDOWN, su sintaxis: SHUTDOWN \[NORMAL \| TRANSACTIONAL \| IMMEDIATE \| ABORT\] Las opciones son: - NORMAL. Modo en el que no se admiten más conexiones a la base de datos, pero las actuales se mantienen. Cuando se cierre la última sesión, la base de datos pasará a estar cerrada (SHUTDOWN), pero, hasta entonces, seguirá abierta. Al cerrar se fuerza un checkpoint y se graban todos los datos del búfer, además de cerrarse los archivos. - TRANSACTIONAL. Igual que la anterior, pero ahora se cortan todas las conexiones que no hayan empezado una transacción. No se cerrará la base de datos hasta que finalicen las transacciones iniciadas. Al final, se cierra la base de datos de la misma forma (es decir, de forma correcta). - IMMEDIATE. No se aceptan nuevas conexiones y se cierran las actuales. Las transacciones se cortan mediante una instrucción ROLLBACK, cuando se cancele la última, se apaga la instancia de base de datos pero de forma coherente, es decir con un checkpoint y cerrando y grabando los archivos de datos correctamente (al igual que en los casos anteriores). - ABORT. Apagado brusco. Todas las conexiones se cortan de golpe, no se cierran los archivos ni se provoca un checkpoint. No se graba nada en disco. Simula un apagón repentino. **Seguridad lógica** - [Usuarios]: Para acceder a los datos en una BD Oracle, se debe tener acceso a una cuenta de usuario en esa BD. Cada cuenta debe tener un password asociado. Los passwords son fijados cuando se crea un usuario y pueden ser alterados por el DBA o por el usuario mismo. La BD almacena una versión encriptada del password en una tabla del diccionario llamada dba\_users. Durante la instalación de Oracle se instalan dos cuentas de usuario administrativas (SYS y SYSTEM) y otras dos con permisos especiales para tareas de optimización y monitorización de la base de datos: - SYS: toma rol de DBA (es decir, de superadministrador) y es en su esquema donde se crea las tablas del diccionario de datos; por lo que no conviene de ninguna manera crear otro tipo de elementos en su esquema; es decir, el usuario SYS no debe crear tablas, ni vistas no ningún otro objeto de la base de datos. - SYSTEM. Posee también el rol DBA y se crea durante la instalación. A este esquema pertenecen las vistas del diccionario de datos. Como antes, la contraseña MANAGER que tiene por defecto se debería cambiar en la instalación. En su esquema se suelen crear tablas y vistas administrativas (pero no se deberían crear otro tipo de tablas). Algunos de los comandos más comunes para trabajar con usuarios en Oracle son: - CREATE USER: Permite crear un nuevo usuario en la base de datos. - ALTER USER: Permite modificar la configuración de un usuario existente, como su contraseña o cuota de tablas. - DROP USER: Permite eliminar un usuario de la base de datos. - [Permisos]: Los privilegios son permisos que damos a los usuarios para que puedan realizar ciertas operaciones con la base de datos. En Oracle hay más de cien posibles privilegios. Se dividen en: - Privilegios de sistema: Son permisos para modificar el funcionamiento de la base de datos. - Privilegios de objeto: Son permisos que se aplican a un objeto concreto de la base de datos: Oracle posee dos privilegios de sistema especiales asociados a tareas administrativas, son: - SYSDBA. Con capacidad de parar e iniciar (instrucciones SHUTDOWN y STARTUP) la instancia de base de datos; modificar la base de datos (ALTER DATABASE), crear y borrar bases de datos (CREATE y DROP DATABASE), recuperar la base de datos, crear el archivo de parámetros (CREATE SPFILE), cambiar el modo de archivado de la base de datos, recuperar la base de datos y además incluye el privilegio de sistema RESTRICTED SESSION. En la práctica sus capacidades son las asociadas al usuario SYS. - SYSOPER. Permite lo mismo que el anterior salvo: crear y borrar la base de datos y recuperar en todas las formas la base de datos (hay modos de recuperación que requieren el privilegio anterior). - Privilegios de sistema: - Privilegios de objetos (Los permisos se otorgan a usuarios o roles, y pueden ser otorgados para realizar operaciones específicas en un objeto de la base de datos): Los privilegios se pueden quitar con REVOKE. - - Para crear un rol utilizaremos CREATE ROLE, ALTER ROLE para modificarlo y DROP ROLE para eliminarlo. GRANT rol1 \[,rol2 \[,...\]\] TO {usuario\|rol\|PUBLIC \[,{usuario\|rol\|PUBLIC} \[,...\] } \[WITH ADMIN OPTION\] **Seguridad física: backup** Planear y comprobar los procedimientos de backup del sistema es la única garantía que existe contra fallos del sistema. Oracle dispone de tres posibilidades principales para recuperar información: - La herramienta RMAN: Es la opción preferente por su potencia y posibilidades. RMAN es una herramienta por línea de comandos que permite realizar copias de seguridad y restauraciones de una base de datos. - Hacer copias manuales: Se trata de utilizar los comandos del sistema para realizar copias. Permiten reconocer el funcionamiento de Oracle y, bien utilizadas, son una opción muy rápida (especialmente si se automatiza el proceso). - Recuperaciones de tipo flashback: Que permiten retroceder a un punto concreto en el tiempo. Consisten en hacer que toda la base de datos (o una tabla) regrese a un punto anterior en el tiempo, en el que los datos eran correctos. Copias manuales Estos backups se pueden clasificar en físicos y lógicos. Los físicos se realizan cuando se copian los ficheros que soportan la BD. Entre estos se encuentran: [Backups de la BD en frio en modo ARCHIVELOG] Si no estamos en modo ARCHIVELOG solo se podrá restaurar la base de datos hasta el momento en el que se hizo la copia. Vamos a suponer que estamos en modo ARCHIVELOG. Para realizar la copia: - Ejecutar el comando SHUTDOWN IMMEDIATE. Se cerrará la instancia de Oracle en buenas condiciones para hacer una copia en frío. - Copiar los archivos desde el sistema Operativo. - Archivos de datos - Archivos de control - Archivos de parámetros - Archivos de contraseñas, sólo si se utilizan. Si hemos creado un script para hacer dicha copia, se ejecuta el script. - Ejecutar el comando STARTUP. Para la restauración: - Parar la base de datos de forma controlada (SHUTDOWN IMMEDIATE). - Copiar los archivos de la copia a donde están los de la base de datos. - Arrancar la base de datos en modo MOUNT. - Hacer RECOVER DATABASE. - Arrancar del todo la base de datos (ALTER DATABASE OPEN). [Copias de la BD en Caliente] El backup en caliente se realiza mientras la BD está abierta y funcionando en modo ARCHIVELOG. Habrá que tener cuidado de realizarlo cuando la carga de la BD sea pequeña. Se aconseja a paralizar individualmente cada tablespace (ponerlo en modo BACKUP), copiar sus archivos de datos y después reanudar el tablespace y pasar al siguiente. 1. Cuando un Tablespace se coloca en modo begin backup, Oracle internamente hace que los datafiles comprendidos en el Tablespace no sean escritos por el proceso DBWRITER y todos los cambios ocurridos son escritos en los redo logs (tendrá la copia de cada bloque cambiado), por lo tanto, genera gran cantidad de redo logs, porque se está escribiendo más información de lo normal. 2. Se copian los ficheros correspondientes a la ubicación de copia. 3. ![](media/image2.png) Se repite este proceso con todos los tablespaces. Después se deberá hacer: 1. Copia del archivo de control. 2. Archivar el redo log actual. 3. Copiar los archivos redo log generados durante la copia de seguridad. 4. Copiar el archivo de parámetros. Para la recuperación en caliente: 1. Habría que poner offline los tablespaces correspondientes. alter tablespace \ offline; 2. Copiar el archivo o archivos de la copia de seguridad. 3. Hacer el RECOVER TABLESPACE. 4. Ponerlo en online. 5. alter tablespace \ online; **Restaurar archivos de control** Si ocurre un fallo a un archivo de control y tenemos copias multiplexadas del mismo (como se comentó en el apartado añadir o modificar archivos de control, página 19), bastará apagar la base de datos y copiar el archivo correcto sobrescribiendo el incorrecto. Al iniciar todo debería funcionar correctamente. Lo malo es si es un fallo general de todos los archivos de control. Ahora los pasos son: \(1) Parar la base de datos \(2) Copiar el archivo de control desde la carpeta de copia de seguridad \(3) Copiar todos los archivos de datos desde la copia de seguridad \(4) Montar la base de datos (STARTUP MOUNT) \(5) Ejecutar la orden: RECOVER DATABASE USING BACKUP CONTROLFILE; Eso restaura la situación desde el archivo de control. Oracle sabe qué archivo de control restaurar porque sabe como se hizo la copia. \(6) Nuevamente tras la orden anterior, Oracle nos interrogará por los redo log; deberemos resolver la situación al igual que en los apartados anteriores. \(7) Abrir mediante: ALTER DATABASE OPEN RESETLOGS; [Backups lógicos ] Sólo extraen los datos de las tablas utilizando comandos SQL y se realizan con la utilidad export/import. Estas utilidades permiten al DBA hacer copias de determinados objetos de la BD, así como restaurarlos o moverlos de una BD a otra. Estas herramientas utilizan comandos del SQL para obtener el contenido de los objetos y escribirlos en/leerlos de ficheros