top of page

Curso Online DBA ORACLE

Nivel Básico a Experto

+24 Horas de video

600 Horas de Estudio

190 Test

Certificado

8.543 Alumnos

Acceso de por vida

15 Días de garantía de devolución

Pago seguro con SSL

Aceptamos todas las formas de pago

Temario
Detalle
Requisitos
Vídeos
Glosario

CURSO ONLINE DBA ORACLE

Este Curso Online está diseñado para capacitar a los administradores de bases de datos en la instalación del software de Oracle Database y en la realización de tareas de gestión necesarias. Durante el curso, te enseñaremos a llevar a cabo rápidamente las tareas requeridas, centrándonos en las capacidades de autogestión y funciones automáticas de Oracle Database. Está especialmente dirigido a administradores de bases de datos de pequeñas, medianas y grandes empresas.


Ofrecemos formación online en administración de Oracle Database para profesionales de empresas que desempeñan funciones de gestión de bases de datos Oracle y desean actualizarse a esta versión.


Aprende todas las novedades en administración de bases de datos Oracle y prepárate para obtener tu certificación.


¿Qué es Oracle Database? Oracle Database es un sistema de gestión de recursos de bases de datos de tipo objeto-relacional. Sus principales beneficios en la implementación empresarial son:

  • Seguridad: Cuenta con capas de seguridad en todos los niveles, garantizando la privacidad y una gestión segura de datos. El cifrado siempre está activo, el enmascaramiento de datos para desarrollos y pruebas es posible, y los usuarios tienen acceso a controles de seguridad para cumplir con las regulaciones (tanto en entornos locales como en la nube).

  • Un solo código para todo: Existen las mismas aplicaciones tanto en el entorno local como en la nube, compartiendo capacidades de uso, arquitectura y bases de datos. Con un mismo código, se pueden realizar pruebas y desarrollos para despliegues.

  • Escalabilidad sin preocupaciones: Oracle permite acceder a las aplicaciones de forma natural, conectando elementos e integrando tecnologías que evitan la fragmentación de aplicaciones.

  • Administración de bases de datos Oracle: Adquiere las competencias clave para ser administrador de bases de datos y servidores de aplicaciones.

INTRODUCCIÓN A LAS TECNOLOGÍAS DE SERVIDOR DE ORACLE

Tecnologías de servidor Oracle

La base de datos de Oracle almacena y maneja el acceso a los datos del usuario.


Oracle Application Server corre aplicaciones que une a los usuarios con la base de datos.


Oracle Enterprise Manager es una herramienta para manejar bases de datos y aplicaciones de servidores.


Herramientas de desarrollo

Los lenguajes incorporados en la base de datos para el desarrollo de aplicaciones son el SQL, PL/SQL, y JAVA.


Aplicaciones

ML Publisher:

  • Evita las restricciones anteriores formateando la salida de un reporting como XML tags (etiquetas). Cualquier cliente puede solicitar un informe XML Publisher y (a condición de que esto tenga un analizador sintáctico XML) mostrar los resultados. Esto es la llave a la distribución de informes sobre protocolos inalámbricos a cualquier dispositivo, como el teléfono.


Oracle Discoverer

  • Es una herramienta para el usuario final para generar informes.

  • Oracle Reports y XML Publisher necesitan un programador designado para diseñar el informe. Si un informe está bien designado puede ser muy customizable por el usuario final por el uso de parámetros suministrados en tiempo real, pero un programador es todavía necesario para designar la definición del informe.

  • Oracle Discoverer autoriza al usuario final a desarrollar informes para ellos mismos. Una vez que Oracle Discoverer corre en un Servidor de Aplicaciones Oracle no necesita la entrada de un programador: el usuario final hace todo el desarrollo.

  • Discoverer puede añadir inmensos valores para el usuario final, liberando al personal programador para un verdadero trabajo de desarrollo.


El número de productos de aplicaciones de Oracle está incrementando debido a un gran número de adquisiciones corporativas, pero 2 aplicaciones son las predominantes.

  • Oracle E-Business Suite, es un conjunto de aplicaciones basada alrededor de un motor de contabilidad.

  • Oracle CollaborationSuite,es un conjunto de herramientas de ofimática.


Definiciones generales

Los datos deben ser normalizados en tablas de dos dimensiones.


Las tablas son unidas por Primary Keys y Foreingn Key.


El diagrama entidad-relación representa las tablas gráficamente.


Los comandos DML son: SELECT, INSERT, UPDATE, DELETE y MERGE.


Los comandos DDL son: CREATE, ALTER, DROP, RENAME, TRUNCATE.


Los comandos DCL son: GRANT y REVOKE.


Los comandos TCL son COMMIT, ROLLBACK y SAVEPOINT.

ARQUITECTURA DE ORACLE

Arquitectura de la instancia

Un servidor Oracle se compone de 2 elementos:

Instancia: Que permiten acceder a la información contenida en la base de datos y se divide en:

  • SGA: Memoria compartida.

  • PGA: Memoria no compartida.


Base de datos: Contiene los datos y se divide en:

  • Ficheros de datos (Data files) –> Almacenan la información.

  • Ficheros de control (Control files) -> Contiene los detalles físicos de la base de datos.

  • Ficheros de actualización (Redo log files) –> Almacena los cambios que se han efectuado en los datos.


Los componentes del lado cliente son:

  • El usuario.

  • Proceso usuario.


Los componentes del lado servidor son:

  • Proceso Servidor.

  • Instancia.

  • Base de datos (BD).


Arquitectura de la base de datos con instancia simple

Un servidor de Oracle es una instancia conectada a una Base de Datos.


Una instancia es un bloque de memoria compartida y un conjunto de procesos background.


Una Base de Datos es un conjunto de ficheros en el disco duro.


Una sesión de usuario es un proceso de usuario conectado a un proceso de servidor.


La memoria compartida de la instancia es el SGA.


La memoria privada de la instancia es el PGA.


El fichero de control almacena los detalles de las estructuras físicas de la Base de Datos y es el punto de partida para la relación a las estructuras lógicas.


La estructura de una instancia simple de Base de Datos está formada por 4 componentes relacionados:

  • Un usuario interactúa con un proceso de usuario.

  • Un Proceso de usuario interactúa con un proceso de servidor.

  • Un proceso de servidor interactúa con una instancia.

  • Una instancia interactúa con una Base de Datos.


Arquitectura de la base de datos con sistemas distrituidos

En un ambiente distribuido hay varias posibilidades para agrupar instancias y bases de datos:

  • RAC: Donde múltiples instancias abren una Base de Datos.

  • STREAMS: Donde múltiples servidores de Oracle propagan transacciones entre ellos.

  • DATA GUARD: Donde una Base de Datos primaria actualiza una Base de Datos de reserva.


Distribución de la memoria

Una instancia Oracle se compone de:

  • SGA (Área global de memoria compartida).

  • Background process (Conjunto de procesos en segundo plano.

  • Foregroundo server process(Conjunto de procesos de servidor)


El SGA contiene 3 estructuras principales:

  • DdBuffer Cache (Caché de buffer de la base de datos): Área de memoria en la cual se almacenan los bloques de datos con la información recientemente utilizada.

  • Redo Log Buffer (Buffer de log): Área de memoria en la cual se almacenan las modificaciones realizadas en la base de datos, antes de su escritura en los Ficheros de actualización (Redo Log files).

  • SharedPool (Poolcompartido). Esta área de memoria contiene 4 componentes principales:

          > Library Cache (Caché de Biblioteca): Almacena las sentencias “parseadas”, recientemente ejecutadas.

          > Data DictionaryCache (Caché de Diccionario de Datos): Almacena toda la información relativa a las definiciones de objetos recientemente usados.

          > Shared PL/SQL Area (Área PL/SQL compartida): Cachea objetos PL/SQL (procedimientos, funciones, etc.).

          > ResultCache (Caché de resultados): Almacena el resultado de sentencias SQLy objetos PL/SQL. (Esta funcionalidad se incluye a partir de Oracle 11g).


Se tienen otras áreas de memoria opcionales:

  • LargePool: Se utiliza fundamentalmente en configuraciones de servidor compartido.

  • Java Pool: Solo es necesaria si se utiliza la máquina virtual de Java.

  • StreamsPool: Solo es necesaria si está habilitada la funcionalidad Streams.


Descripción de procesos

BACKGROUND PROCESS(procesos background o procesos en segundo plano).


Lanzan en su mayoría cuando se inicia la instancia y se ejecutan hasta que esta se detiene.


Algunos procesos pueden ser lanzados y detenidos en el curso del funcionamiento de la instancia.


Los principales procesos background son:

  • SMON (SystemMonitor): Se encarga principalmente de recuperar la instancia durante el arranque, en caso que se haya detenido inesperadamente por algún fallo.

  • PMON (ProcessMonitor):Controla los procesos de servidor y detecta cualquier problema existente con las sesiones de usuario conectadas.

  • DBWn (Database Writer): Mediante estos procesos se escriben los bloques de datos modificados en los ficheros de datos (Data files).

  • LGWR (Log Writer): Mediante este proceso se escribe el contenido de la Redo Log Bufferen los ficheros de actualización.

  • CKPT (Checkpoint Process): Permite registrar Checkpoints (puntos de control) en la cabecera de los ficheros de datos (Data files) y en el fichero de control (Control file).

  • MMON (ManageabilityMonitor): Mediante este proceso se garantizan la mayoría de las capacidades actuales de la BD para auto-monitorizarse y auto-optimizarse.

  • MMAM (MemoryMonitor): Mediante este proceso se gestionan, de forma automática, las asignaciones de memoria.

  • ARCn (Archiver): Los procesos ARCn se encargan de preservar una historia completa de todos los cambios realizados.

  • RECO (Recover): Permiten efectuar rollback en transacciones distribuidas.


Descripción de estructuras de almacenamiento

Oracle garantiza una abstracción total entre los almacenamientos lógico y físico.


La abstracción entre ambos almacenamientos se logra mediante Tablespaces y es definida y mantenida en el Diccionario de Datos (DD).


ESTRUCTURAS FÍSICAS

Se requieren 3 tipos de ficheros para componer una BD de Oracle:


Fichero de Control (Control file): Contiene la información de control de la BD.


Ficheros de actualización (Redo log files): Unidad mínima donde se registran todas las modificaciones realizadas sobre la BD.


Ficheros de datos (Data files): Constituyen los datos propiamente dichos de la BD.


ESTRUCTURAS LÓGICAS

Un Tablespace es una unidad lógica de almacenamiento compuesta por uno o más ficheros de datos físicos (Data files).


Están compuestos por Segmentos (Segments) que a su vez se componen de Extents (Extensiones), formados por bloques de datos de Oracle (Oracle data blocks).


DICCIONARIO DE DATOS (DD)

El DD se genera durante el proceso de creación de la BD y su actualización se realiza automáticamente mediante comandos DDL (Data Definition Languaje) (CREATE, ALTER, DROP).


Almacena metadatos tanto sobre la visión lógica y física de la BD, como sobre su contenido.

ÁMBITO DEL TRABAJO DEL DBA

Al rol del DBA

Las principales tareas de un DBA son:

  • Establecer las dimensiones de las aplicaciones y del HW necesario en el servidor

  • Instalar y mantener el software de Oracle

  • Calcular las necesidades físicas de la BD

  • Monitorizar y optimizar el rendimiento

  • Dar asistencia a los desarrolladores

  • Realizar copias de seguridad, restauración y recuperación

  • Establecer la seguridad y gestionar a los usuarios


Herramientas para gestionar el entorno de Oracle

Las principales herramientas de Oracle para gestionar son:


OUI: Instalador Universal de Oracle.

  • Permite la instalación de muchas aplicaciones, setup.exe en windows y runInstaller setup.exe en Linux/Unix.

Herramientas para crear y actualizar base de datos.

  • DBCA. Permite crear una base de datos de forma gráfica.

  • DBUA. Permite actualizar una base de datos de forma gráfica.


Herramientas para trabajar con SQL.

  • SQL*Plus: Se utiliza en dispositivos de modo carácter, no es una herramienta gráfica.

  • SQL Developer: Es una herramienta gráfica por lo que consume más recursos.


Net Manager y Net Configuration Assistant.

  • Ayuda a configurar el entorno de red.


OEM (Gestor Empresarial de Oracle).

  • Permite monitorizar los puertos, para saber si hay peticiones de conexión desde algún navegador web.

Data Loading y Unloading.

  • Con las utilidades Import y Export permite transferir datos de una base de datos Oracle.

RMA.

  • Permite crear copias de seguridad de una base de datos Oracle.


Oracle Secure Backup.

  • Permite crear copias de seguridad del entorno completo y no solo de una base de datos.


Planificar la instalación

Antes de empezar con la instalación de Oracle hay que pensar en diversos factores:

  • Seleccionar el SO y el HW a utilizar.


Definir la localización del Software y para ello hay que configurar las variables de entorno:

  • ORACLE_BASE.

  • ORACLE_HOME.


Configurar las variables de entorno.


OFA - Optimal Flexible Architecture

OFA es la forma estándar a seguir para instalar los productos de Oracle, existiendo una organización de los productos instalados que todo el mundo entienda.


Está formada por 2 variables de entorno:

  • ORACLE_BASE: Indica el directorio del servidor con todo el software que necesita.

  • ORACLE_HOME: Indica el directorio de cada versión de producto instalado.


Puede existir una variable ORACLE_BASE e infinitas variables ORACLE_HOME.

INSTALACIÓN ORACLE

Requisitos de la instación de Oracle

Oracle se puede instalar en diferentes plataformas:

  • Unix.

  • Linux.

  • Windows.

  • IBM.


Cada vez que se instale un Servidor Oracle hay que consultar en su web, que sistemas operativos y versiones soporta la versión del Oracle que vamos a instalar y los requerimientos mínimos.


Los comandos de Oracle son prácticamente idénticos para los diferentes sistemas operativos, exceptuando un par de operativas.


Usuario Oracle

La gestión de privilegios se realiza por dos métodos:

  • Con usuarios.

  • Con grupos.


Hay que crear un usuario que sea el propietario de los productos de Oracle.


Los grupos más usados son:

  • Oinstall -> Con los privilegios para poder mantener el repositorio(inventario) de los productos de una plataforma.

  • Dba -> Con los privilegios de administración.

  • Oper -> Con privilegios limitados de administración, tiene menos privilegios que el grupo dba.

  • Backupdba -> Con los privilegios para realizar backup.

  • Dgdba-> Con los privilegios de usar Oracle Data Guard.


Tipos de instalación de Oracle

Existen dos tipos de paquetes:

  • ZIP: Necesitan configurar manualmente una preinstalación

  • RPM: La preinstalación se realiza de forma automática.


Según el sistema operativo que usemos, se necesita una descarga especifica para el.



Ficheros creados por la Instalación de Oracle

Para instalar Oracle, tenemos que crear una ruta.


Cuando se termina la instalación de Oracle, se crean directorios y ficheros en dicha ruta y fuera de ella.


El fichero orainst.locindica la ruta del inventori y es consultada cada vez que una aplicación de Oracle va a ser instalada.


El fichero oraenv se utiliza para cuando queremos cambiar de una a otra base de datos.

CREANDO BASES DE DATOS

Creación de base de datos Oracle

Para crear un servidor de base de datos es necesario:

  • Crear una instancia.

  • Crear una base de datos.

  • Crear el diccionario de datos.


Para conocer que BD está asociada a una instancia se usa el parámetro de instancia DB_NAME.


Para conocer donde se encuentra el Fichero de Control, el cual indica la ruta de los ficheros de la BD, se usa el parámetro de instancia CONTROL_FILES.



Creación de base de datos Oracle con DBCA

La forma más fácil pero menos usada para crear una base de datos es utilizando la utilidad DBCA.


Los pasos para crear una base de datos con DBCA son:

  1.Crear un fichero de parámetros y un fichero de contraseñas.

  2.Usar el fichero de parámetro para construir una instancia en la memoria.

  3.Usar el comando CREATE DATABASE para crear los ficheros básicos.

  4.Lanzar script de SQL para generar las vistas del DD (Diccionario de datos) y los paquetes estándar PL/SQL.

  5.Lanzar script de SQL para generar el EM y las opciones adicionales que requiera la base de datos.

  6.Si el sistema operativo que se utiliza es Windows, hay que crear el servicio de Oracle y para ello hay que usar el fichero oradmin.exe


Mientras el DBCA está creando una base de datos, va creando una serie de ficheros en la ruta $ORACLE_BASE\admin\DB_NAME\scripts:

  • Init.ora.

  • CreateDB.sql.

  • CreateDBfiles.sql.

  • CreateDBCatalog.sql.

  • EmRepository.sql.


El dbca se puede usar para crear base de datos.


Está en la ruta /u01/app/oracle/product/19.3.0/db_1/bin.


El dbcaofrece dos opciones de configuración:

  • Típica.

  • Avanzada.


Para crear una base de datos normal hay que desactivar la opción de Container Database.


El dbcapermite crear base de datos desde plantillas.


La ruta en que se especifica los objetos son siguiendo las normas OFA.


Las únicas cuentas que no se bloquean por defecto son la de system y sys.


Revisando los script creados

Al crear una base de datos se crean varias carpetas y ficheros.


En Oracle home (u01/app/Oracle/product/19.3.0/dbs_1) dbs se encuentran:

  • Los ficheros de instancia

  • El fichero de contraseña


Creando una base de datos con DBCA en modo avanzado

Para crear una base de datos se puede usar la aplicación dbca, que ofrece dos configuraciones:

  • Configuración típica.

  • Configuración avanzada.


La opción avanzada ofrece más opciones para configurar, pero requiere más tiempo.


Una base de datos se puede crear:

  • Usando el dbca.

  • Usando plantillas.

  • Usando scripts.

GESTIÓN DE INSTANCIAS

Conexión a la base de datos

Cuando se quiere arrancar una base de datos, Oracle recomienda seguir el siguiente orden:

  1.EM DB Control

  2.Listener

  3.Base de datos


El EM DB Control se puede gestionar :

  • Por Web.

  • Con el comando emctl.


El listener se puede gestionar:

  • Con lsnrctl (listener control)

  • Con el EM.


Y si se usa el sistema operativo Windows, se dispone del servicio de Windows.


Las bases de datos se pueden gestionar:

  • Con SQL*Plus, con diversos comandos.

  • Con el EM.

  • Y si se usa el sistema operativo Windows, se dispone del servicio de Windows.


Tratando parametros de oracle

La instancia en la memoria se crea según los valores de los parámetros del fichero de parámetros y existe 2 tipos:

  • PFILE: Fichero estático y permite su modificación directa en el archivo

  • SPFILE: Fichero dinámico y no permite su modificación directa en el archivo ya que es un fichero binario.


Para visualizar los parámetros y sus valores se pueden usar las siguientes vistas:

  • V$PARAMETER: Esta vista contiene los valores actuales que afectan a la instancia.

  • V$SPPARAMETER: Esta vista contiene los valores que están guardados en el fichero de parámetros.


La modificación de los parámetros no se puede hacer modificando directamente las vistas, hay que usar:

  • El EM DB Control.

  • El SQL*Plus: El comando ALTER SYSTEM, permite modificar el valor de los parámetros de una instancia.

  • Con la opción MEMORY,la modificación se realiza sobre la vista V$PARAMETER y su efecto será de forma inmediata.

  • Con la opción SPFILE, la modificación se realiza sobre la vista V$SPPARAMETER y sobre el fichero de parámetros, tendrá efecto al reiniciar la instancia.

  • Con la opción BOTH, la modificación se realiza sobre las 2 vistas V$PARAMETER y V$SPPARAMETER y su efecto será de forma inmediata y permanecerá después del rearranque de la instancia.


Dicionario de datos

El Diccionario de Datos está almacenado en los tablespaces SYSTEM y SYSAUX y define la base de datos.


Para poder  ver la información del diccionario de datos tenemos que usar las vista que nos proporciona Oracle, las cuales se pueden clasificar en 3 grupos.

  • USER_*: Las vistas que comiencen por USER_, solo tiene información de los objetos que pertenecen al usuario que la consulta.

  • ALL_*: Las vistas que comiencen por ALL_, tiene información de los objetos a los que tiene permiso el usuario que la consulta. Aquí podemos ver los datos que creamos y los que nos han dado permisos.

  • DBA_*: Las vistas que comiencen por DBA_, tiene toda la información de la base de datos, solo puede ser consultado por usuarios con privilegios.


Ficheros de traza y alerg log

Los ficheros de traza y de alerta se localizan según el valor del parámetro BACKGROUND_DUMP_DEST.


Los ficheros de traza son generados por varios procesos de background y se escribe de forma circular.


El alert log es un archivo XML que contiene un log cronológico de los mensajes de la instancia y de la base de datos.



Configurando las variables de entorno

Para ver un listado de las variables de entorno de Linux se puede usar el comando printenv.


Para modificar las variables de entorno de Oracle podemos usar el archivo ejecutable oraenv.


Para ejecutar un archivo no siempre es necesario estar en la carpeta que lo contiene, pero es recomendable conocer su ubicación.



Conociendo el SQL Plus

Para conectarnos al SQL plus es necesario configurar las variables de entorno.


El usuario system no puede arrancar base de datos.


Para conectarse con el usuario sys es necesario indicar el privilegio sysdba o sysoper.


Para usar el SQL plus es necesario configurar las variables de entorno.



Parando la base de datos

Para arrancar una base de datos se usa el comando startup.


Para apagar un base de datos se usa el comando shutdown.


Que tiene 4 posibles valores:

  • NORMAL.

  • IMMEDIATE.

  • TRANSACTIONAL.

  • ABORT.


Todas los comandos sql terminan en punto y coma.



Arrancando la  base de datos Oracle

El comando statup se usa para arrancar una base de datos y sus estados son:

  • Nomount

  • Mount

  • Open


El comando alter database permite pasar de un estado a otro.



Vistas y tablas dinámicas de Oracle

El Diccionario de Datos contiene todos los metadatos almacenados en las tablas base y vistas del sistema.


Las tablas bases y vistas del sistema del diccionario de datos no pueden ser modificadas por los usuarios.


Los usuarios rara vez pueden acceder a las tablas bases porque están generalmente normalizadas o encriptadas


Las vistas del sistema del diccionario de datos permiten decodificar los datos de las tablas base en información útil.


Las vistas proporcionan datos sobre estructuras físicas y lógicas de la base de datos.


Las vistas del sistema se pueden identificar con relativa facilidad porque su nombre comienza con los prefijos V$ y GV$.


Visualizar datos de la SGA

El SGA es una estructura básica de memoria de Oracle que sirve para facilitar la transferencia de información entre usuarios.


El SGA almacena la información estructural de la base de datos más frecuentemente requerida.


La base de datos Oracle automáticamente reserva memoria para el área global del sistema cuando se inicia una instancia.


Cada instancia de base de datos tiene su propia SGA.


La vista V$SGA ofrece la información resumida del SGA.


La vista V$SGASTAT ofrece información detallada del SGA.


Visualizar parametros de Oracle

Los parámetros de inicialización de Oracle se utilizan para regular los límites de los recursos a utilizar en la base de datos.


Los parámetros de inicialización se utilizan para optimizar el funcionamiento de la base de datos.


Los parámetros se pueden clasificar en base a su funcionalidad.


Las vistas dinámicas ofrecen información ampliada de los parámetros de inicialización.


Ficheros de parametros Oracle

Los parámetros se almacenan en archivos especiales que son leídos por la instancia de Oracle antes de iniciar.


Los archivos de parámetros pueden ser de 2 tipos; PFILE y SPFILE.


Los ficheros pfileson archivos de texto plano que se pueden leer y editar con cualquier editor.


Los ficheros spfile se utilizan por defecto por ser ficheros binarios poco accesibles para el usuario.



Parametros de Oracle

Los parámetros estáticos se deben modificar en el fichero de parámetros y su configuración se aplica cuando se reinicia la instancia.


Los parámetros dinámicos se pueden modificar en caliente y los cambios se aplican al instante.


Los parámetros dinámicos a nivel de sesión afectan solo a la sesión del usuario.


Los parámetros dinámicos a nivel de sistema afectan a toda la base de datos.



Modificar parametros Oracle a nivel de sesión

Para modificar un parámetro a nivel de sesión utilizamos el comando

  • ALTER SESSION SET (parámetro a modificar)=(’modificación’);


Modificar parametros Oracle a nivel de sistema

Para modificar un parámetro a nivel de sistema utilizamos el comando

  • ØALTER SYSTEM SET (parámetro) = (modificación);


Existen parámetros que no pueden ser modificados a nivel de memoria, por lo que, en esos casos, debemos agregar al comando:

  • SCOPE = SPFILE


Fichero de control de Oracle

El fichero de control de una base de datos, almacena el estado de la estructura física de una base de datos


Es utilizado para guiar las operaciones de recuperación, por lo cual, es imprescindible para arrancar la base de datos


El fichero de control almacena:

  • El nombre de la base de datos

  • El nombre y ubicación de los ficheros de datos y redo logs


Crear init.ora desde un spfile

Para crear un INIT.ORA desde un SPFILE, utilizamos el comando:

  • CREATE PFILE=’(directorio) /INIT.ORA’ FROM SPFILE;


Esta acción debe realizarla un administrador SYS.



Arrancando init.ora

Para añadir un fichero de control, y arrancar la base de datos desde un INIT.ORA. Primeramente:

  • Copiamos el fichero de control original y lo pegamos en otra ubicación.

  • Luego modificamos el INIT.ORA con el que vayamos a arrancar la base de datos

  • Y arrancamos la base de datos especificando en el comando que el arranque sea con el fichero INIT.ORA


Crear SPFILE desde el INIT.ORA

Para crear un SPFILE desde un INIT.ORA primeramente debemos tener la base de datos abierta desde el INIT.ORA. Luego para crear el SPFILE utilizamos el comando:

  • CREATE SPFILE FROM PFILE=‘(directorio)/INIT.ORA ‘;


Gestión de la memoria

Tenemos dos métodos para gestionar la memoria:


Automático:

  • Se le asigna una capacidad y Oracle se encarga de administrarla entre SGA y PGA


Manual:

  • Gestionamos nosotros mismos la capacidad que le asignamos tanto a la SGA como a la PGA


Configuración de la memoria automática

Para configurar la memoria automática debemos modificar los siguientes parámetros:

  • MEMORY_MAX_TARGET

  • MEMORY_TARGET

  • SGA_TARGET

  • PGA _AGGREGATE_TARGET


El memory max target nos permite definir la memoria máxima que vamos a poder tener para la gestión automática, este parámetro no debe superar los recursos de la máquina. Por lo tanto es preferible que la capacidad que le demos sea menor que los recursos.


El memory target es el espacio real que vamos a reservar para la gestión de la memoria


El SGA target y el PGA aggregatetarget determinan el tamaño de la sga y la pga. Para modificar estos parámetros lo que debemos hacer es darle una capacidad de la cual no queremos que baje su gestión. Lo usual para la configuración de la AMM es ponerlos a cero.



Configuración de la memoria SGA de forma automática:

Para configurar de forma automática la SGA, debemos modificar los siguientes parámetros:

  • SGA_TARGET

  • SGA_MAX_SIZE

  • SGA_MIN_SIZE


El SGA target es el parámetro que define el tamaño real de nuestra SGA.


El SGA_MAX_SIZE define el tamaño máximo que queremos que crezca la SGA en caso de ser necesario.


El SGA_MIN_SIZE define el tamaño mínimo que queremos para la SGA.


Antes de configurar la SGA, debemos percatarnos si tenemos activada la AMM, de ser así tenemos que desactivarla antes de configurar la SGA.


Para desactivar la AMM dejamos en cero el parámetro MEMORY_TARGET.



Configuración de la memoria SGA de forma manual:

Para configurar de forma manual la SGA, antes debemos desactivar la configuración automática en caso de que la tengamos


Para la configuración debemos asignar a los parámetros necesarios un tamaño acorde a la necesidad que tengamos según la aplicación en la que trabajamos.


Para que surta efecto los cambios, debemos rebotar la base de datos.


Para configurar de forma manual la SGA, antes debemos desactivar la configuración automática en caso de que la tengamos


Para la configuración debemos asignar a los parámetros necesarios un tamaño acorde a la necesidad que tengamos según la aplicación en la que trabajamos.


Para que surta efecto los cambios, debemos rebotar la base de datos.



Configuración de la memoria PGA

Tenemos dos formas de configurar la PGA

  • La primera es de forma automática

  • La segunda Manual


Para la configuración automática debemos darle un valor al parámetro PGA_AGGREGATE_TARGET, acorde siempre con nuestros recursos.


Para la configuración manual debemos darle como valor, ¨cero¨, al parámetro PGA_AGGREGATE_TARGET, y luego darle un valor a cada uno de los siguientes parámetros:

  • bitmap_merge_area_size

  • create_bitmap_area_size

  • hash_area_size

  • sort_area_size


Es importante tener en cuenta que es muy difícil realizar una configuración manual de la PGA, ya que esta depende siempre de la cantidad de usuarios conectados, por lo que constantemente hay que modificar los parámetros. Por esto recomendamos todo el tiempo la configuración automática para la PGA.


Introducción a los procesos

Estos procesos de servidor pueden ser de dos tipos, pueden ser dedicados o compartidos.


Los servidores dedicados atienden a un cliente a la vez, por cada aplicación cliente conectada, habrá tantos servidores dedicados correspondientemente.


Los procesos compartidos o SHARED SERVERS, lo que intentan es hacer un uso más eficiente de los recursos, haciendo que más usuarios se puedan conectar con las mismas características físicas (CPU, memoria, etc.)



Procesos dedicados

En Oracle, sino le indicamos otra cosa, vamos a tener tantos procesos dedicados como usuarios estén conectados.


Para visualizar los procesos, podemos ejecutar desde cualquier terminal de Linux, el comando:

  • ps -ef | grep LOCAL;


Podeos tener información de las distintas sesiones abiertas en la base de datos, a través de la vista V$SESSION.



Configuración Servidor Compartido

Los parámetros más importantes en la configuración de un servidor compartido son:

  • SHARED_SERVERS

  • MAX_SHARED_SERVERS

  • SHARED_SERVERS_SESSIONS

  • DISPATCHERS

  • MAX_DISPATCHERS


Para visualizar los parámetros que permiten configurar un servidor compartido, debemos usar las consultas:

  • SHOW PARAMETER SHARED

  • SHOW PARAMETER DISPATCHERS


Cuando un cliente se conecta mediante un servicio compartido, las peticiones las maneja un proceso conocido como DISPATCHER, que se encarga de depositar las peticiones del cliente en la cola de peticiones de la SGA. El servidor compartido manejará esas peticiones y depositará el resultado en la cola de respuestas. Por último, el DISPATCHER, tomará el resultado de la petición de la cola de respuestas y lo devolverá al cliente. Esta es la filosofía de trabajo de los procesos compartidos en Oracle.


Para activar el principio SHARED SERVER en una base de datos Oracle, debemos escribir el comando:

  • ALTER SYSTEM SET SHARED_SERVERS =’cantidad de servidores compartidos’;


Para la configuración de los DISPATCHERS, debemos usar el comando:

  • ALTER SYSTEM SET DISPATCHERS = ´parámetros (INDEX, PROTOCOL, DISPATCHERS, SERVICE)´;


Para configurar los servidores compartidos, además de definir los SHARED SERVERS y los DISPATCHERS, debemos agregar el servicio por el que se conectará el cliente en el archivo tnsnames.ora.


Para indicarle a un usuario que use determinado tipo de servidor, debemos utilizar el siguiente comando:

  • Sqlplus “usuario”/”contraseña”@”listener”

CONFIGURACIÓN DEL ENTORNO DE RED DE ORACLE

Configuración de la red de Oracle

Configuración de servicios Oracle Net

Entorno de “Servidor dedicado” (Configuración por defecto): Cada proceso usuario se conecta a su propio proceso servidor.


Entorno de “Servidor compartido” (Configuración alternativa): Un número de procesos usuario usan un pool de procesos servidor, compartido por todas las sesiones.


Oracle Net

Tecnología que permite establecer sesiones (tanto locales como remotas) contra una instancia de BD Oracle.


Consiste en un protocolo en capas que abstrae protocolos de comunicación y sistemas operativos, facilitando la labor del administrador de BD (DBA).


Sintaxis general del establecimiento de Sesión

CONNECT usr/pwd@conn_string


TNS Listener

El TNS Listener es un proceso que provee la conectividad de red con la BD.


Toda la información del listener se define en el fichero LISTENER.ORA ubicado en$ORACLE_HOME/network/admin.


Registro de la Base de Datos

Existen 2 métodos para registrar una instancia con una BD:

  • Estático: Fijado a mano en la lista de instancias del fichero LISTENER.ORA.

  • Dinámico: Donde la propia instancia, al iniciar, localiza un listener y se registra con él.

Listtener y área de servicios

LISTENERS

Los listeners se pueden gestionar mediante la interfaz webque proporciona el EM (Enterprise Manager); aunque existe una herramienta clásica, muy habitual, en línea de comandos:

  • LSNRCTL comando [nom_listener]


Los Comandos LSNRCTL permiten: Iniciar, detener, mostrar estado, listar servicios asociados, mostrar versión, releer y salvar configuración, habilitar traza, establecer contraseña de administrador, entre otros.



CONFIGURACIÓN DE ALIAS DE SERVICIO CON NET MANAGER

Mediante la interfaz gráfica de la herramienta Net Manager, se puede crear y editar el fichero para el método de “Nombrado Local”, TNSNAMES.ORA.


El fichero TNSNAMES.ORA se encuentra ubicado en: ORACLE_HOME/network/admin.


En el fichero TNSNAMES.ORA se establecen los alias de servicios, los cuales son mucho más cómodos de manejar en las conexiones.


La conexión a un servicio especificado, se realiza mediante el alias correspondiente, sin necesidad de conocer host, protocolo y puerto del mismo.


Una conexión con sqlplus, solo tendría que especificar usuario/contraseña@alias_servicio.

  • Ej.: sqlplus system/oracle@OCP


Tipos de conexiones de Oracle

Las conexiones a la base de datos se pueden realizar de dos tipos:

  • Local.

  • Remota.


Las conexiones locales se establecen a través del protocolo BEQ y no utiliza el listener.


Las conexiones remotas se establecen a través de un cliente que envía peticiones que son recepcionadas por un listener, el cual decide que recursos asignarles al usuario.


A nivel de sistema operativo podemos visualizar los procesos locales de Oracle usando la línea ¨ps -ef | grep LOCAL¨.


A nivel de base de datos podemos visualizar las sesiones o conexiones consultando la vista v$session.


Podemos visualizar los servicios de la base datos consultando la vista $system_parameter.


Conexiones remotas

Para establecer una sesión a una instancia de Oracle, el proceso de usuario debe enunciar una Cadena de Conexión. Esta cadena de conexión debe resolver la dirección del listeneren una dirección de red en formato IP y el nombre de la instancia o servicio en dicho servidor.


Oracle provee 4 formas de resolución de nombres:

  • Easy Connect.

  • Local Naming.

  • Directory Naming.

  • External Naming.


Listener

Los archivos de configuración de red son archivos de texto sin formato que contienen información sobre cómo el servidor Oracle y el cliente Oracle deben usar las capacidades de Oracle Net para acceder a la base de datos en red.


Existen varios archivos de configuración de red en Oracle. Entre los principales archivos tenemos los siguientes.

  • qlistener.ora : Archivo ubicado en el servidor y contiene la configuración del listener de la base de datos.

  • qtnsnames.ora : Archivo ubicado en los clientes y contiene los nombres de servicio de red.

  • qsqlnet.ora : Archivo ubicado en el cliente y en servidores de base de datos.


Crear listener

El fichero listener.ora es el archivo de configuración del listener de la base de datos Y está ubicado en el directorio Oracle_home/Network/admin.


Podemos crear el listener creando y configurando manualmente el fichero en el directorio $Oracle_home/Network/admin.


Podemos auxiliarnos del fichero listener.ora del directorio samples para configurar un listener.


Una de las formas más fáciles e intuitiva de configurar el listener es usando el asistente netca.



Trabajar con Listener

Lsnrctl es el comando que permite gestionar o controlar el funcionamiento del listener.


Entre las principales funciones del Lsnrctl tenemos las de iniciar, detener y consultar el estado del listener.


Oracle en las últimas versiones ha implementado un proceso para que cada vez que se arranque una base de datos se registre la base de datos automáticamente al listener.


Una vez que esté en funcionamiento el listener podemos conectarnos usando los modos de conexión remota, como por ejemplo el método Easy connect.



SQLNET

El asistente de configuración Netca permite la creación y configuración de los ficheros sqlnet y tnsnames.


¨Naming methods configuration¨ es la opción para crear el fichero sqlnet en el asistente.


¨Local net service name configuration¨ es la opción para crear el fichero tnsnames.


Tnsnames.ora es el fichero de configuración local necesario para establecer la conexión por el método local naming.



NETMGR

Net Manager es una herramienta de interfaz gráfica de usuario para proporcionar un entorno integrado para la configuración y administración de Red de Oracle.


La herramienta Net Manager se utiliza para configurar los siguientes componentes de red:

  • Profile: Que básicamente se corresponde con la configuración del fichero sqlnet.ora.

  • Service Naming: Donde podemos configurar los archivos locales de conexión, es decir, aquí tendríamos la configuración referente al fichero tnsnames.ora.

  • Listeners: Donde se crean y configuran los listeners para recibir conexiones de clientes, y esta configuración se guarda en el listener.ora.

TIPOS DE ESTRUCTURAS DE ALMACENAMIENTO

Tablespaces, Datafiles, Segmentos y Extents

Los datos se almacena de una forma lógica en segmentos y físicamente en datafiles.


Un “Tablespace” puede contener muchos segmentos y puede componerse de múltiples datafiles.


Los segmentos se hacen más grandes mediante la asignación de nuevos extents.


En el Diccionario de Datos existe la vista DBA_SEGMENTS la cual contiene información de los segmentos.


La vista DBA_DATA_FILES contiene información sobre los datafiles.


La vista DBA_EXTENTS contienen información sobre los extents.


Con el comando ALTER TABLE se puede asignar un nuevo extent a una tabla aunque el actual extent no esté totalmente lleno y también permite especificar que datafile almacenará el extent.


Gestión de tablespaces

Un tablespace es un almacén lógico de los ficheros de la base de datos.


Todas las bases de datos tienen los siguientes tablespaces:

  • SYSTEM, SYSAUX, Temporal, Undo.


Para ver la información referente a los tablespaces se puede usar las siguiente vistas del DD:

  • DBA_TABLESPACES , DBA_DATA_FILES, DBA_SEGMENTS, DB_FREE_SPACE.


Comandos que se pueden usar con tablespaces:

  • CREATE TABLESPACE … : Permite crear un tablespace.

  • ALTER TABLESPACE … RENAME TO: Permite modificar el nombre de los tablespaces.

  • ALTER DATABASE RENAME FILE … TO: Permite modificar el nombre de los ficheros de datos.

  • ALTER TABLESPACE … ONLINE: Permite cambiar el estado del tablespace a online.

  • ALTER TABLESPACE … OFFLINE [NORMAL | IMMEDIATE | TEMPORARY]: Permite cambiar el estado del tablespace a offline.

  • ALTER TABLESPACE … READ ONLY | READ WRITE: Permite pasar un tablespace a lectura o escritura.

  • ALTER DATABASE DATAFILE … RESIZE n[M|G|T]: Permite cambiar el tamaño de un fichero de datos.

  • DROP TABLESPACE … [INCLUDING CONTENTS [AND DATAFILES] ] Permite borrar un tablespace.


Gestión de los espacios de los tablespaces

Oracle recomienda usar los siguientes métodos de gestión de extents y espacios en segmentos:

  • EXTENT MANAGEMENT LOCAL AUTOALLOCATE

  • SEGMENT SPACE MANAGEMENT AUTO;


Consulta de las vistas de Oracle

Tenemos varias vistas para consultar nuestras tablespaces:

  • La dba_tablespaces que nos da un listado de las tablespaces que tenemos dentro del sistema. Lo cual nos permite hacer una revisión de las tablespaces existentes.

  • La dba_data_files que nos da el sitio donde se encuentran los ficheros de las tablespaces.

  • La dba_temp_files que nos muestra los ficheros de las temporales.

  • La V$datafile que contiene datos adicionales a la dba_data_files

  • La v$tempfile que contiene datos adicionales a la dba_temp_files

  • Y la dba_free_space que nos dice los espacios libres que tienen nuestras tablespaces.


Crear tablespaces en Oracle

Podemos crear tablespaces donde queramos


El directorio donde crearemos la tablespace debe tener los permisos de lo contrario no podremos crearla


Al crear la tablespace es importante especificar el espacio que le vamos a dar ya sea megas, gigas etc ya que si no lo hacemos se asume que el espacio que daremos son bytes.


Gestión de Extent

Cuando creamos una tablespace sin especificar las extensiones que queremos darle, oracle, por defecto, nos crea las extensiones con la opción EXTENT MANAGEMENT LOCAL.


La cláusula que pondremos seguido del comando nos va a definir cómo se van a crear las extensiones. Tenemos las siguientes clausulas:

  • UNIFORM, lo cual significa que las extensiones siempre van a tener el mismo tamaño

  • AUTOALLOCATE, que manda a la base de datos a gestionar las extensiones


Las extensiones se crean llenando el tamaño inicial, y siguiendo los parámetros.


Ejemplo: si el tamaño es de 100k, se crearan dos extensiones de 64k cada una.


La cláusula UNIFORM, gestiona las extensiones de forma que siempre van a tener el mismo tamaño. Esta es funcional cuando tenemos una estructura en la que conocemos muy bien el tamaño final y los datos son homogéneos.


Al utilizarla, sea cual sea el tamaño inicial de la tabla que creemos, las extensiones van a asumir el tamaño que le asignamos en la creación de la tablespace.



Añadir ficheros

Para ampliar una tablespace podemos añadir un fichero a esta, lo cual hacemos utilizando los comandos:

  • ALTER, seguido de la tablespace que vamos a alterar

  • ADD para que se entienda que lo que queremos es añadir un fichero.


TABLESPACES, READONLY, OFFLINE

Existen estados en los que podemos poner nuestras tablespaces para utilizarla según nos convenga:

  • El primero, READ ONLY, lo que nos dice es que solamente tiene permisos de lectura, por lo que no podremos modificar esa tablespace. Este estado es útil para aquellas aplicaciones o entornos que pierden funcionalidad.

  • El estado siguiente es READ WRITE, con este estado como su nombre indica, vamos a tener permisos de escritura y lectura. Así que con este estado vamos a poder modificar la tablespace, crear ficheros, tablas etc.

  • El estado OFFLINE, lo utilizamos para hacer que nuestras tablas no sean accesibles. Generalmente utilizamos este estado cuando vamos a dar mantenimiento a una tablespace, o porque tenemos algún fichero dañado, que presenta algún problema ya sea que está escribiendo mal, entre otros problemas comunes que pueden suceder.


AUTOEXTENDIENDO FICHEROS

Cuando vamos a crear una tablespace, podemos asignarle un AUTOEXTEND designando el tamaño máximo que va a alcanzar.


Si queremos modificar la auto extensión de un fichero, utilizamos el comando:

  • ALTER DATABASE DATAFILE


CAMBIANDO MANUALMENTE EL TAMAÑO DE UN FICHERO

Para cambiar el tamaño de un fichero utilizamos el comando RESIZE


Podemos agrandar o achicar el tamaño de un fichero


No podemos achicar el tamaño de un fichero, si el RESIZE que ponemos es menor que el tamaño de su contenido.



MOVIENDO Y RENOBRANDO FICHEROS

Podemos mover y renombrar ficheros. Lo cual hacemos con los comandos:

  • Move y el comando TO


TRABAJANDO CON TABLESPACES TEMPORALES

Al crear una base de datos, por defecto se crea la tablespace TEMP, que pasa a ser la tablespace temporal por defecto


Para crear una tablespace temporal utilizamos el comando

  • CREATE TEMPORARY TABLESPACE


Para poner una tablespace temporal por defecto utilizamos el comando

  • ALTER DATABASE DEFAULT TEMPORARY TABLESPACE


Los ficheros temporales los podemos consultar en la vista dba tempfiles.



TRABAJANDO CON TABLESPACES TEMPORALES

Para borrar una tablespace utilizamos el comando:

  • Drop tablespace, y seguido ponemos el nombre de la tablespace que queremos borrar.


Si esa tablespace que queremos borrar tiene algún contenido, no será posible borrarla con ese comando a no ser que le agreguemos la cláusula:

  • Including contents


Y si queremos también borrar sus ficheros de datos agregamos la cláusula:

  • Datafiles.


Creando Tablespaces con tamaños de bloque

Para crear una tablespace con diferente tamaño de bloque que el estándar, utilizamos el mismo comando de siempre, agregando la cláusula:

  • BLOCKSIZE (denominación (2k, 4k, 8k, 16k, 32k))


Para poder crear la tablespace, antes debemos crear una zona de memoria con la misma denominación que la tablespace.


Para ello utilizamos el comando:

  • ALTER SYSTEM SET DB_(denominación =tablespace)_CACHE_SIZE=(capacidad) SCOPE = BOTH;

USUARIOS, PRIVILEGIOS, ROLES Y PERFILES

Usuario Oracle

Para conectarse a una base de datos, se necesita una cuenta de usuario la cual se asocia a un esquema.


Las cuentas de usuario tiene varios atributos

  • Nombre de usuario:Es obligatorio y único en la BD.

  • Tablespace por defecto: Indica el tablespace por defecto donde residirán los objetos del esquema.

  • Cuotas de tablespace: Cantidad de espacio del tablespace que puede ocupar un usuario.

  • Tablespace temporal: Indica el tablespace donde se almacenarán los objetos temporales del esquema.

  • Perfil de usuario:Controla la configuración de contraseña y limita los permisos de uso de recursos.

  • Estado: Una cuenta de usuario puede estar en diferentes estados.

  • Método de autenticación: Para conectarse a una base de datos es obligatorio utilizar un método de autentificación.


Los comandos para gestionar usuarios son:

  • CREATE USER: Permite crear cuentas de usuario.

  • ALTER USER: Permite modificar los atributos de una cuenta de usuario.

  • DROP USER: Permite eliminar una cuenta de usuario.


PRIVILEGIOS EN ORACLE

Por seguridad nadie puede hacer nada en una BD Oracle, a menos que se le otorgue los privilegios con anterioridad.


Los comandos para los privilegios de sistema son:

  • GRANT privilegio1, privilegio2… TO usuario/rol;

  • REVOKE privilegio1, privilegio2… FROM usuario/rol;


Los comandos para los privilegios de objetos son:

  • GRANT [privilegio | ALL] ON esquema.objeto TO usuario [WITH GRANT OPTION];

  • REVOKE [privilegio | ALL] ON esquema.objeto FROM usuario;


Roles de Oracle

La seguridad de la base de datos se puede gestionar:

  • Usuario a usuario.

  • Usando Roles, es la forma más aconsejable.


Un Rol puede ser concedido a otro Rol y puede tener muchos privilegios.


Los principales Roles son:

  • DBA.

  • SELECT_CATALOG_ROLE.

  • SCHEDULER_ADMIN.

  • PUBLIC.


La cláusula WITH GRANT OPTIONpermite al destinatario otorgar o eliminar el privilegio o rol a otros usuarios o roles.


La cláusula WITH ADMIN OPTION permite lo mismo que la cláusula anterior pero además puede modificarlo o borrarlo.



PEFILES

Los perfiles de usuario se usan para gestionar las contraseñas y los recursos, limitando algunos aspectos de los mismos.


La contraseña se puede gestionar por los siguiente parámetros:

  • FAILED_LOGIN_ATTEMPTS.

  • PASSWORD_LOCK_TIME.

  • PASSWORD_LIFE_TIME.

  • PASSWORD_GRACE_TIME.

  • PASSWORD_REUSE_TIME.

  • PASSWORD_REUSE_MAX.

  • PASSWORD_VERIFY_FUNCTION.


Los recursos se pueden gestionar por los siguiente parámetros:

  • SESSIONS_PER_USER.

  • CPU_PER_SESSION.

  • CPU_PER_CALL.

  • LOGICAL_READS_PER_SESSION.

  • PRIVATE_SGA.

  • CONNECT_TIME.

  • IDLE_TIME.


CREANDO USUARIOS ORACLE

Para crear un usuario utilizamos el comando:

  • CREATE USER (nombre del usuario) IDENTIFIED BY (contraseña) ;


Para poder conectarnos al SQL plus debemos conceder al usuario el privilegio CONNECT, lo cual hacemos de la siguiente forma:

  • GRANT CONNECT TO (usuario) ;


Para poder crear objetos con un usuario debemos concederle el privilegio RESOURCE, el cual ponemos de la siguiente forma:

  • GRANT RESOURCE TO (usuario) ;


Para consultar datos de los usuarios tenemos las vistas:

  • DBA USERS

  • ALL USERS


MODIFICAR USUARIOS ORACLE

Para modificar un usuario utilizamos el comando

  • ALTER USER


Un usuario solamente puede modificar su contraseña, las demás modificaciones deben ser realizadas por un administrador.


RESERVANDO ESPACIO PARA LOS USUARIOS

Para asignar cuotas a un usuario utilizamos el comando:

  • ALTER USER (usuario) QUOTA (de 0 a ilimitada) ON (tablespace);


Podemos asignar espacios a varias tablespaces en el mismo comando.



BLOQUEANDO USUARIOS ORACLE

Para bloquear un usuario utilizamos el comando:

  • ALTER USER (usuario) ACCOUNT LOCK;


Para desbloquear un usuario utilizamos el comando:

  • ALTER USER (usuario) ACCOUNT UNLOCK;


Para expirar una contraseña de un usuario utilizamos el comando:

  • ALTER USER (usuario) PASSWORD EXPIRE;


BORRANDO USUARIOS

Para borrar un usuario utilizamos el comando:

  • DROP USER (usuario)


Para borrar un usuario que tiene información, utilizamos el comando:

  • DROP USER (usuario) CASCADE


CONCEDIENDO PRIVILEGIOS DEL SISTEMA

Existen un sinnúmero de privilegios que podemos otorgar a usuarios.


Para otorgar un privilegio utilizamos el comando GRANT


Por ejemplo:

  • GRANT CREATE TABLE;


Si queremos que el usuario a otorgar el privilegio tenga acceso a otros sistemas, agregamos la cláusula ANY.


Por ejemplo:

  • GRANT CREATE ANY TABLE;


Para eliminar un privilegio de objeto utilizamos el comando:

  • REVOKE (privilegio) ON (objeto) FROM (usuario);


HEREDANDO PRIVILEGIOS DE SISTEMA

Para heredar privilegios de objetos debemos agregar al otorgar el privilegio la cláusula:

  • WITH GRANT OPTION


ELIMINANDO PRIVILEGIOS DE OBJETOS

Para eliminar un privilegio de objeto utilizamos el comando:

  • REVOKE (privilegio) ON (objeto) FROM (usuario);


CREANDO UN ROL

Para crear un rol podemos utilizar la siguiente sintaxis:

  • CREATE ROLE [NOMBRE DEL ROL].


Podemos ver los roles existentes en el sistema consultando la tabla DBA_ROLES.



CONCEDIENDO PERMISOS A UN ROL

La forma de dar permisos a un rol es muy similar a la forma de dar permisos a un usuario, para esto usaremos la siguiente sintaxis:

  • GRANT [PRIVILEGE] TO [ROLE];


Para ver los permisos que tiene asignado un rol podemos hacerlo consultando la tabla DBA_SYS_PRIVS.


Para quitar los privilegios a un rol podemos escribir:

  • REVOKE [PRIVILEGE] FROM [ROLE]


ASIGNANDO ROLES A USUARIOS

La función principal de un rol es poder agrupar un conjunto de privilegios para poder otorgarlos o revocarlos a un usuario.


Para asignar un rol a un usuario podemos usar el siguiente comando:

  • GRANT [ROLE] TO [USUARIO];


Podemos asignar tanto roles del sistema como roles de usuarios.


Para consultar los roles a nivel de usuario podemos utilizar la tabla SESSION_ROLES.



CONSULTANDO ROLES

En la tabla DBA_ROLES podemos ver un listado con los roles existentes.


En la tabla DBA_ROLES_PRIVS podemos ver los privilegios asociados a los diferentes usuarios a nivel del rol.


La tabla ROLE_SYS_PRIVS contiene la misma información que la tabla DBA_ROLES_PRIVS, pero a nivel de privilegios del sistema.


La tabla SESSION_ROLES nos muestra de manera básica la información acerca de los roles de la sesión.


La tabla USER_ROLE_PRIVS nos permite ver más información acerca de los roles a nivel de usuario.


ELIMINANDO UN ROL

Para borrar un rol podemos utilizar la siguiente sintaxis:

  • DROP ROLE [NOMBRE DEL ROL].


Al eliminar un rol, a los usuarios que tenían dicho rol se les elimina la asignación del mismo y con ello los privilegios asociados.



PERFIL POR DEFECTO

Al crear un usuario, si no le asignamos un perfil, automáticamente asume el perfil por defecto.


Para consultar los recursos de los perfiles del sistema utilizamos la vista:

  • DBA_PROFILES


CREANDO UN PERFIL

Para crear un perfil utilizamos el comando:

  • CREATE PROFILE (nombre) LIMIT (recursos a limitar)(limitación);


Los recursos que no se pongan en la creación asumirán los valores por defecto.


MODIFICANDO UN PERFIL

Para modificar un perfil utilizamos el comando:

  • ALTER PROFILE (nombre del perfil) LIMIT (el o los recursos)(limitación);


ASIGNAR UN PERFIL A UN USUARIO

Existen dos formas de asignar un perfil a un usuario:


La Primera es agregando la asignación en la creación de un usuario.


Ejemplo: CREATE USER SOCIAL IDENTIFIED BY 1234 PROFILE ADMINISTRATOR;


La segunda forma es modificando un usuario ya creado, agregando la asignación


Ejemplo: ALTER USER SOCIAL PROFILE ADMINISTRATOR;



RECURSOS DE PASSWORD DE UN PERFIL

Para consultar los recursos de PASSWORD de un perfil utilizamos la vista DBA_PROFILES


Los recursos de PASSWORD de un perfil son:

  • FAILED_LOGIN_ATTEMPTS

  • PASSWORD_LIFE_TIME

  • PASSWORD_REUSE_TIME

  • PASSWORD_REUSE_MAX

  • PASSWORD_VERIFY_FUNCTION

  • PASSWORD_LOCK_TIME

  • PASSWORD_GRACE_TIME

  • INACTIVE_ACCOUNT_TIME


TRABAJANDO CON RECURSOS DE PASSWORD

Para trabajar con recursos de PASSWORD, lo que debemos hacer es modificar el o los recursos a nuestro gusto. Lo cual hacemos con el comando:

  • ALTER PROFILE (perfil) LIMIT (recurso/s) (limitación);


ELIMINANDO PERFILES

Para eliminar perfiles tenemos dos opciones:


La primera es para eliminar un perfil que no tenga asignado ningún usuario. Lo eliminamos con el comando:

  • DROP PROFILE (perfil a eliminar);


La segunda es para eliminar un perfil que tenga asignado algún usuario. Lo eliminamos con el comando:

  • DROP PROFILE (perfil a eliminar) CASCADE;


Base de datos en modo Quiesce

Para poner la base de datos en modo QUIESCE, debemos utilizar el comando:

  • ALTER SYSTEM QUIESCE RESTRICTED;


Para quitarlo utilizamos el comando:

  • ALTER SYSTEM UNQUIESCE;


Una vez activado el modo QUIESCE, ningún usuario común podrá conectarse, lo cual es muy práctico para realizar mantenimientos, actualizaciones, etc.

GESTIÓN DE TABLAS, DATOS

OPERACIONES DML

Los comandos que su utilizan para gestionar los datos de una base de datos son:

  • INSERT: Sirve para insertar datos.

  • UPDATE: Sirve para actualizar datos.

  • DELETE: Sirve para eliminar datos.

  • COMMIT: Hace permanente los cambios realizados.

  • ROLLBACK: Deshace los cambios realizados.


Todas las transacciones tienen que cumplir con las siguientes propiedades ACID.


Todas las operaciones DML requieren manejar:

  • Bloques de datos.

  • Bloques Undo.

Y genera Redo.



TABLAS

Un esquema es todo el conjunto de objetos que pertenecen a un usuario en particular y suele tiene el mismo nombre que el nombre del usuario al que pertenece.


Oracle soporta varios tipos de objetos y se agrupan en espacios de nombre (Namespaces).


Para referirnos a un objeto hay que indicar el esquema al que pertenece, al no hacerlo, Oracle busca en el esquema del usuario activo.


Puede existir varios objetos con el mismo nombre:

  • Cuando cada objeto aunque tenga el mismo nombre pertenece a diferentes usuarios.

  • Cuando los objetos aun perteneciendo al mismo usuario no comparten el mismo ¨Namespaces¨.

  • Las tablas son los objetos donde se almacena los datos de una Base de Datos.


CONSTRAINTS

Los constraints son reglas y restricciones predefinidas que se aplican en una o varias columnas, para mantener la integridad, precisión y confiabilidad de los datos de esa columna.


Los tipos de constraints son:

  • PRIMARY KEY (PK)

  • FOREIGN KEY (FK)

  • UNIQUE

  • NOT NULL

  • CHECK


Los estados de los contraints son:

  • ENABLE/DISABLE: Estos estados afectan a los nuevos registros que se van a insertar.

  • VALIDATE/NOVALIDATE: Estos estados afectan a los registros que ya existen en la tabla.


Para visualizar los constraints de nuestras tablas se puede usar la vista:

  • USER_CONTRAINTS.


OBJETOS PL SQL

PL/SQL es un lenguaje de programación desarrollado por Oracle, añadiendo nuevas características a SQL,


Los objetos PL/SQL son:

  • Procedimiento

  • Función.

  • Paquete

  • Trigger o disparador


Según el comando los trigger pueden ser ejecutados antes o después.



INDICES

Los índices se pueden aplicar a una o varias columnas y se crean para mejorar el rendimiento cuando hay que buscar datos en una tabla.


Los índices se crean automáticamente con las restricciones PK yUNIQUE.


Las características de los índices son:

  • UNIQUE / NON-UNIQUE

  • COMPRESSED

  • COMPOSITE

  • FUNCTION BASED

  • ASCENDING / DESCENDING


TIPOS DE BLOQUEOS

Oracle usa los bloqueos como mecanismo para evitar problemas cuando varios usuarios intentan acceder a los mismos datos.


Los tipos de bloqueos son:

  • Bloqueo exclusivo.

  • Bloqueo compartido.

  • Bloqueos/abrazos mortales.

  • Mecanismo de encolado.


Se puede solicitar el bloqueo de registro con la sentencia SELECT…FOR UPDATE.


GESTIÓN DEL UNDO

GESTIÓN DEL UNDO

Los “Datos Undo” es la información necesaria para poder revertir los efectos de las sentencias DML.


Los principales parámetros de instancia que podemos consultar son:

  • UNDO_MANAGEMENT.

  • UNDO_TABLESPACE.

  • UNDO_RETENTION.


Las principales vistas que podemos consultar son:

  • DBA_SEGMENTS.

  • DBA_TABLESPACES.

  • DBA_ROLLBACK_SEGS.

  • V$ROLLSTAT.

  • V$UNDOSTAT.


En los segmentos UNDO se escribe la información anterior, para garantizar que las consultas puedan recuperar los valores adecuados.


La gestión del UNDO se realiza de forma automática, pero hay que configurar correctamente los parámetros de instancia.


En caso de que una transacción salga del espacio UNDO se genera el error “ORA-30036 Unable to extend segment in undo tablespace”.


En caso de que el UNDO este sobrescrito se genera el error “ORA1555 Snapshot too old”.



CONSISTENCIA DE LECTURA

La consistencia de lectura es la capacidad que tiene Oracle de servir los datos como eran al momento de comenzar de una consulta determinada.


La consistencia de lectura en Oracle es automática, aunque se puede modificar cambiando el nivel de aislamiento de la base de datos.



PARAMETROS PARA TRABAJAR CON UNDO

Oracle, de forma predeterminada, tiene una gestión automática del UNDO, la cual podemos cambiar a modo manual, lo cual no es muy recomendable.


Para visualizar los parámetros para la gestión del UNDO, debemos escribir la consulta:

  • SHOW PARAMETER UNDO


Los parámetros para trabajar con el UNDO son:

  • UNDO_RETENTION

  • UNDO_MANAGEMENT

  • UNDO_TABLESPACE

  • TEMP_UNDO_ENABLED


TRABAJAR CON TABLESPACES UNDO

En ORACLE podemos tener más de un tablespace UNDO, sin embargo, solo uno estará activo.


Si quisiéramos crear un tablaspace, debemos escribir la consulta:

qCREATE UNDO TABLESPACE ‘Nombre del Tablespace’ DATAFILE ‘Ruta absoluta y nombre del archivo’ SIZE 100m AUTOEXTEND onNEXT 10m MAXSIZE 300m;


Siendo los valores relativos al tamaño del archivo, variables dependiendo de nuestras necesidades. Se recomienda usar la opción AUTOEXTEND on.


Para definir el tablespace que estará por defecto en los parámetros de gestión del UNDO, debemos usar la siguiente consulta:

  • ALTER SYSTEM SET UNDO_TABLESPACE=Nombre del tablespace SCOPE=BOTH;


El valor BOTH en al atributo SCOPE, indica que ese tablespace, estará por defecto también cuando vuelva a arrancar la base de datos.



TIEMPO DE RETENCION

El undo_retention es un parámetro que nos permite establecer el tiempo en segundos que estará disponible la información en el UNDO, una vez que el usuario haya hecho COMMIT.


Para modificar el valor del parámetro undo_retention, se debe escribir el siguiente comando:

  • ALTER SYSTEM SET UNDO_RETENTION=”tiempo en segundos”;


Si necesitamos garantizar a cualquier costo que el tiempo de retención se cumpla, sin importar que pueda afectar a los UPDATES incluso, debemos asignarle al tablespace la cláusula RETENTION GUARANTEE, y para hacerlo escribimos el comando:

  • ALTER TABLESPACE RETENTION GUARANTEE;


TRABAJANDO CON LOS DATOS UNOD

Oracle nos provee unas vistas donde podemos analizar la gestión del UNDO:

  • DBA_ROLLBACK_SEGS:

  • V$UNDOSTAT

  • V$ROLLSTAT

  • DBA_UNDO_EXTENTS


Estas vistas nos permiten tener una idea de cómo marcha la gestión del UNDO, cómo están los segmentos, si se han creado muchos, si están llenos, cuántas transacciones se han realizado, etc.



BORRANDO UN TABLESPACES UNDO

Borrar un tablespace del UNDO, es una operativa similar a cuando eliminamos un tablespace normal. Ejemplo:

  • DROP TABLESPACE UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;


IDENTIFICANDO TRANSACCIONES

Una transacción es un conjunto de UPDATES, DELETES e INSERTS. Hasta que no hagamos un COMMIT o un ROLLBACK, tendremos una transacción gestionando todas estas estas operaciones.


Para mostrar la vista de las transacciones, debemos escribir la consulta:

  • SELECT * FROM V$TRANSACTION

GESTIÓN DE LA SEGURIDAD

SEGURIDAD EN ORACLE

La política de Oracle respecto a la seguridad está basada en el menor privilegio, que consiste en que sólo debe tenerse acceso a lo mínimo imprescindible para realizar una tarea.


Los paquetes a los que tienes acceso todos los usuarios son:

  • UTL_FILE.

  • UTL_TCP.

  • UTL_SMTP.

  • UTL_HTTP.

  • UTL_FILE_DIR.


Los paquetes a los que tienes acceso todos los usuarios son:

  • UTL_FILE_DIR.

  • REMOTE_OS_AUTHENT.

  • OS_AUTHENT_PREFIX.

  • REMOTE_LOGIN_PASSWORDFILE.


AUDITORIA

Oracle proporciona 4 técnicas de auditoria:

  • Auditoria de seguridad como superusuario(SYSDBA).

  • Auditoria de base de datos.

  • Auditoria con triggersbasada en valor.

  • Auditoria de grano fino (FGA).


INTRODUCCION AL REDE LOG

Los REDO LOG guardan todos los cambios que se van produciendo dentro de la base de datos y consta como mínimo de dos archivos. Lo normal es que sean 3, aunque podemos tener más incluso, pero nunca menos de dos.


Los REDO ENTRIES registran los datos para reconstruir todos los cambios realizados en la base de datos, incluyendo los segmentos de ROLLBACK.


El LOG WRITER (LGWR), va grabando de memoria a disco, en solo REDO LOG. En un momento determinado sólo tenemos funcionando un fichero REDO LOG, que es el que se denomina CURRENT, y el resto está INACTIVE.



TRABAJANDO CON LOS REDO LOG

Para visualizar los grupos con los miembros debemos ejecutar la consulta:

  • SELECT * FROM V$LOG;


La vista que nos permite comprobar los ficheros del REDO LOG es:

  • SELECT * FROM V$LOGFILE;


Si quisiéramos hacer un SWITCH de forma manual, debemos ejecutar la consulta:

  • ALTER SYSTEM SWITCH LOGFILE;


AÑADIENDO UN MIEMBRE DE REDO LOG

Cuando se crea una base de datos en Oracle, se crean a su vez automáticamente 3 grupos, con un miembro cada uno.


ORACLE recomienda multiplexar los ficheros del REDO LOG. O sea, la forma ideal de manejar el REDO LOG es teniendo al menos 3 grupos con al menos 2 miembros cada uno.


Para añadir un miembro a un grupo, debemos escribir el comando:

  • ALTER DATABASE ADD LOGFILE MEMBER 'ruta y nombre del archivo' TO GROUP número del grupo;


AÑADIENDO UN GRUPO DE REDO LOG

Para crear un grupo de REDO LOG, debemos hacerlo mediante el comando:

  • ALTER DATABASE ADD LOGFILE GROUP N ('file1', 'file2'…..) size Xm;


Donde N es el número del grupo, entre paréntesis la ruta y nombre de los archivos que corresponderán a cada miembro del grupo y X es el tamaño en megas del grupo.


Se recomienda, crear los archivos correspondientes a un grupo en diferentes ubicaciones del disco duro.



BORRANDO UN MIEMBRO DE UN GRUPO REDO LOG

Para eliminar un miembro de un grupo de REDO LOG se debe escribir el comando:

  • ALTER DATABASE DROP LOGFILE MEMBER 'ruta y nombre del archivo';


Oracle no permite eliminar un miembro de un grupo de REDO LOG cuando:

  • El grupo al que pertenece el miembro tiene status CURRENT.

  • El miembro es el último miembro de ese grupo.


BORRANDO UN GRUPO REDO LOG

Para eliminar un grupo del REDO LOG, debemos escribir:

  • ALTER DATABASE DROP LOGFILE GROUP X;


Donde X es el número que identifica al grupo.


No es posible eliminar un grupo que tenga en ese momento el status CURRENT.

MANTENIMIENTO DE LA BASE DE DATOS

ESTADISTICAS DEL OPTIMIZADOR

Las vistas que nos proporciona información sobre las estadísticas son:

  • DBA_TABLES.

  • DBA_TAB_COLUMNS.

  • DBA_INDEXES.


El parámetro de instancia STATISTICS_LEVEL  puede tener los siguientes valores :

  • TYPICAL (por defecto): Asegura la recopilación de todas las estadísticas principales necesarias para la funcionalidad de autogestión de la base de datos y proporciona el mejor rendimiento general.

  • BASIC: Inhabilita la recopilación de muchas de las estadísticas importantes requeridas por las características y la funcionalidad de Oracle Database , entre ellas la computación de estadísticas sobre AWR (automatic workload repository) y el análisis diario.

  • ALL: Recoge todas las estadísticas posibles como, por ejemplo, detalles de ejecución de sentencias SQL.


AWR

vLa cantidad de estadísticas almacenada se controla con el parámetro STATISTICS_LEVEL. Pudiendo ser:

  • TIPICAL: Obliga recuperar todas las estadísticas necesarias para una ejecución normal del sistema, evitando recuperar estadísticas que provoquen un impacto negativamente con la ejecución.

  • BASIC: Desactiva la recuperación de estadísticas, por lo que las sentencias SQL no tendrán una mejora en el rendimiento.

  • ALL: El nivel de recuperación de estadísticas es el más alto.


Las fotos de AWR contienen las estadísticas.


Para que las estadísticas sean entendibles hay que convertirlas en métricas. Una métrica son dos o más estadísticas correlacionadas.


Una baselines es un conjunto almacenado de estadísticas y métricas que pueden estar usados para comparaciones a través del tiempo.



ASESORES

Algunos de los asesores que existen son:

  • El ADDM.

  • El asesor de Memoria.

  • El asesor de segmento.

  • El asesor (MTTR) tiempo medio para recuperar.

  • El asesor de Recuperación de datos.

  • El asesor de Acceso, Tuning(mejora) y de Reparación.

  • El asesor automático Undo.


ALERTAS Y UMBRALES

Las alertas son de 2 tipos:

  • Las alertas Stateful: Están basadas en condiciones que persisten y pueden ser fijadas.

  • Las alertas Stateless: Están basadas eventos que ocurren en un momento determinado.


Recoleccion de estadisticas

Para recopilar estadísticas manualmente se utiliza el paquete DBMS_STATS.


Para consultar la cantidad de registro en una tabla podemos usar la vista dba_tables.


Podemos actualizar los datos físicos de una tabla ejecutando el método gather_table_stats del paquete dbms_stats.


Gestión automática de memoria

La memoria de la instancia se divide en 2 categorías:

  • SGA.

  • PGA.


La SGA está dividida en estructuras y cada una de ellas tienen diferentes necesidades de memoria.

  • Pool large: O se le ofrece toda la memoria que necesita o dará error.

  • Pool de java: O se le ofrece toda la memoria que necesita o dará error.

  • Pool de streams: O se le ofrece toda la memoria que necesita o dará error.

  • Sharedpool: O se le ofrece toda la memoria que necesita o dará error.

  • Cache buffer de la base de datos: Si tiene menos espacio del que requiere no dará error pero bajará el rendimiento.

  • Log buffer: Son negociables, si tiene menos espacio del que requiere no dará error pero bajará el rendimiento.


En la memoria PGA, se guardan los datos solicitados de sentencia SQL y objetos de la sesión, tal como:

  • Tablas temporales.

  • Ordenación de filas.

  • Mapas de bits combinados.

  • Variables.

  • Pila de llamadas.


Uso de avisos de memoria

Existen varias vistas que nos facilitan información sobre avisos de memoria:

V$PGA_TARGET_ADVICE: Predice el porcentaje de fallos de caché y estadísticas globales de asignación y sus principales campos son:

  • PGA_TARGET_FOR_ESTIMATE

  • PGA_TARGET_FACTOR

  • ADVICE_STATUS


V$SGA_TARGET_ADVICE: Muestra información relacionada con el parámetro SGA_TARGET y sus principales campos son:

  • SGA_SIZE

  • SGA_SIZE_FACTOR

  • ESTD_DB_TIME


Resolver problemas con objetos inválidos y no usables

Para ver los objetos inválidospodemos consultar la columna status=INVALID de la tabla dba_objects.

  • SELECT OWNER,OBJECT_NAME,OBJECT_TYPE FROM DBA_OBJECTS

            WHERE STATUS='INVALID';


Siempre que un objeto PL/SQL esté en estado inválido Oracle intentara compilarlo nuevamente pero no siempre se pasaran al estado válido.


Con la vista DBA_DEPENDENCIES se pueden ver las dependencias que tienen los objetos.



MANEJO DE OBJETOS INVÁLIDOS

Para modificar un procedimiento mediante una compilación, se debe escribir el comando:

  • ALTER PROCEDURE Nombre_procedimiento COMPILE;


Cuando necesitamos saber qué objetos están guardados con errores en la base de datos, y además, tener una descripción de dicho error, debemos usar el comando:

  • SHOW ERRORS;


La vista DBA_OBJECT, nos muestra las propiedades de los objetos de la base de datos, como puede ser, el nombre del objeto, su status, etc.

REALIZACIÓN DE BACKUP

Introduccion a os backup y recoverys

Los diferentes fallos que puede presentar Oracle y que impactan en la integridad de los datos son los de tipo:

  • De comando

  • De proceso

  • De red

  • De instancia

  • De disco


En Oracle podemos hacer recuperaciones completas o incompletas, también se pueden realizar estas recuperaciones tanto en frío como en caliente.


También podemos hacer backups de tipo completo o incremental.


Arhive log

Cuando tengamos una base de datos en producción, es imprescindible tenerla en modo ARCHIVELOG, de esta forma garantizamos la completa restauración de la base de datos ante cualquier fallo existente.


Una base de datos en modo NOARCHIVELOG, no garantiza que se pueda recuperar toda la base de datos una vez ocurrido algún fallo. Podemos usar este modo cuando tengamos la base de datos en desarrollo.



Propiedades de los archive log

Dos parámetros necesarios para configurar los archive log son:

  • LOG_ARCHIVE_DEST, donde le indicamos los destinos que tendrán los archive logs.

  • LOG_ARCHIVE_FORMAT, donde podemos definir los argumentos que compondrán los nombres de los archive logs.


Para ver el modo en que se encuentra nuestra base de datos, debemos escribir la consulta:

  • SELECT LOG_MODE FROM V$DATABASE;


Configurando el archivo log

Para indicar el destino de almacenamiento de los archive log, debemos escribir el siguiente comando:

  • ALTER SYSTEM SET LOG_ARCHIVE_DEST_= 'LOCATION=destino de los archivos';


Para modificar el parámetro LOG_ARCHIVE_FORMAT, debemos escribir el siguiente comando:

  • ALTER SYSTEM SET LOG_ARCHIVE_FORMAT = 'arch_%t_%s_%r.arc';


Pasando la base de datos a archive log

Para cambiar el modo de la base de datos debemos parar la misma. Oracle no permite hacer estos cambios en caliente.


Para cambiar el modo de la base de datos, debemos escribir el comando:

  • ALTER DATABASE ARCHIVELOG;


Una vez tengamos la base de datos en modo ARCHIVELOG, cada vez que se realice un SWITCH en el REDO LOG, Oracle almacenará el contenido del redo log que pierde el status CURRENT, en un ARCHIVER dentro de cada uno de los destinos que hayamos definido.



Identificar tipos de fallos

La perdida de datos se puede ocasionar por:

  • Sentencia fallida

  • Fallo del proceso de usuario

  • Fallo de red

  • Errores de usuario

  • Medios fallidos

  • Instancias fallidas


Modos de mejorar la recuperación

Una de las principales leyes de Oracle es que nunca se puede perder una transacción confirmada (commit) y nunca mostrar una transacción no confirmada.


Si una base de datos esta corrompida, Oracle realiza los siguiente pasos:

  • Deshabilitará cualquier transacción confirmada

  • Y echará atrás cualquier transacción no confirmada


MTTR, da una idea de cuánto tiempo tardará una recuperación.



Flash recovery area

El Flash Recovery Área es un área de disco usada como localización para ficheros relacionados con la recuperación.


Esta zona almacena:

  • Backups del RecoveryManager (RMAN).

  • Fichero Redo Log archivados.

  • Logs de flashback de BD.


RMAN puede manejar el espacio dentro del flash recovery área y puede borrar ficheros que ya no sean necesarios.


La FRA, es un espacio dentro de la base de datos, donde se van a alojar componentes asociados a la parte de backup, recoveries o que tengan que ver con la disponibilidad de la base de datos.


Para visualizar los parámetros de la FRA, debemos escribir el siguiente comando:

  • SHOW PARAMETER DB_RECOVERY


Aunque no es imprescindible, sí es muy recomendable tener una FRA en las bases de datos, ya que puede simplificar algunas tareas y además es una forma muy práctico de proteger las bases de datos.



Crear backups consistentes

Los backup se puede clasificar en 2 tipos:

  • Backup user-managed: Hechos por los usuarios.

  • BackupServer-managed: Hechos por programas de Oracle, como RMAN.


Los backup de las bases de datos tienen 3 opciones:

  • Offline u online.

  • Entero (whole) o Parcial.

  • Lleno o incremental.


Para hacer un backup consecuente con el sistema operativo hay que hacer copias :

  • Del fichero de control.

  • De los fichero de datos.

  • De los online redo log files.


Backups que no requieren parada

Un backupabierto con el sistema operativotiene tres pasos:

  • Backup del control file.

  • Copiar los ficheros de datos mientras están en modo backup.

  • Copiar los archivos online redo log files.


Usando RMAN no hace falta poner el tablespace en modo backup.


Automatización, gestión y monitorización de backups

El Enterprise Manager puede programar backups.


RMAN usa un depósito para almacenar los detalles de las operaciones de backup que se han realizado.


Durante un backup, RMAN escribirá en su depósito todos los detalles de los backups.


En una operación de restauración, RMAN debe decidir cuál es el backup más reciente, para extraer el fichero que debe ser extraído.


El depósito de RMAN siempre se almacena en el Fichero De Control


RMAN tiene dos comandos para saber el estado de un backup:

  • LIST: Indica que backups hay.

  • REPORT: Indica que backups son necesarios.


Recuperación automática de instancia

Oracle, recupera de forma automática los datos que tengamos validados en el redo log, una vez que arranque nuevamente después de una parada brusca de la base de datos.


Para logra esto, Oracle realiza básicamente dos procesos:

  • ROLLING FORWARD para recuperar todo lo que tengamos en el redo log.

  • ROOLING BACK para eliminar los datos que no hayan sido validados en el momento del fallo en la base de datos.


Se puede observar paso a paso, todo este proceso, visualizando el fichero de traza de la base de datos.



Introducción a RMAN

RMAN, o RecoveryManager, es una herramienta cliente con la cual podemos realizar backups y recoveries de una manera rápida y eficiente, permitiendo además automatizar estas tareas.


RMAN lo podemos conectar la base de datos que queramos, ya que no está ligado a una base de datos específica, permitiéndonos gestionar múltiples bases de datos.


Podemos asociar una base de datos catálogo a RMAN, que va a almacenar la información de metadatos de los backups y recoveries que se vayan haciendo en cada base de datos target. Esto nos permite hacer los backups y recoveries de una manera más sencilla, a la vez que nos proporciona algunas opciones extras que no tendríamos si RMAN se conectara a las bases de datos a través de sus controlfiles.


Conectarnos con RMAN

Para conectarnos con RMAN es recomendable crear un entorno de trabajo, justo como hacemos con sqlplus.


Algunas de las formas de conectarnos con RMAN son:

  • Como un usuario local con permisos de administración.

  • Como un usuario remoto usando la cadena de conexión correspondiente

De manera local, con un usuario que tenga permisos sysbackup


Existen dos modos de conexión con RMAN:

  • CATALOG: Usa una base de datos catálogo donde se archivan todas las operaciones de backups que hayamos hecho con determinada base de datos.


Configuración persistente de RMAN

Para visualizar los parámetros de configuración de RMAN, debemos utilizar el comando:

  • SHOW ALL;


Podemos modificar el valor de determinado parámetro de configuración de RMAN, con el comando:

  • CONFIGURE “Nombre del parámetro” “valor”;


Para volver un parámetro a su valor por defecto, podemos usar el comando:

  • CONFIGURE “Nombre del parámetro” CLEAR;


Formato de los backups con RMAN

Los backups que se realizan con RMAN, pueden tener dos tipos de formatos:

  • Image Copies

  • Backup Sets


Un Image Copy es la copia exacta de los ficheros, ya sean de datos, de redo log, un archive log, etc.


Un Backup Set es una copia de seguridad con un formato propietario de Oracle.


Creando Scripts de RMAN

En RMAN, al igual que en el SQLPLUS, podemos crear ficheros que contengan scripts, y luego lanzarlos, ayudándonos a automatizar algunas tareas.


Para lanzar un script podemos hacerlo estando de dos formas:

  • Desde la terminal de Linux: rman target / @nombre del script

  • O dentro de RMAN: @nombre del script


Backup Completo de la Base Base de Datos

Para realizar un backup completo de la base de datos utilizando RMAN, debemos ejecutar el comando:

  • backup database;


El formato por defecto que tendrán los backup realizados con RMAN es backup set.


El sitio por defecto donde se almacenarán los archivos de back es:

  • q…/fast_recovery_area/”nombre de la base de datos target”/backupset/“fecha en que se hace el backup”


LIST- Buscando información de los backup

Con el comando LIST podemos listar la información de nuestros backups. Los detalles, etc., dependerá de las opciones con que lo concatenemos.


Entre las opciones del comando LIST tenemos:

  • LIST BACKUP: Que muestra información detallada de los backups.

  • LIST BACKUP SUMMARY: Nos devuelve un resumen de los backups.

  • LIST BACKUP BY FILE: Muestra la información de los archivos de backup, organizándolos por el tipo de información que contienen.


Backup de Tablespaces

Con RMAN, podemos hacer backups de determinados ficheros y tablespaces.


Para hacer un backup de determinado tablespace, debemos escribir el comando:

  • BACKUP TABLESPACE “Nombre del tablespace”;


Backup de Tablespace cpmo Image Copy

Para hacer backup de una tablespace como Image copy, debemos escribir el comando:

  • BACKUP AS COPY TABLESPACE “Nombre del tablespace”;


Para visualizar la información sobre los backups de tipo Image copy, usamos el comando:

  • LIST COPY;


Mientras que las pieces generadas por backups de tipo backup set se almacenan en el directorio “backupset”, los ficheros generados por los backups de tipo Image copy se almacenan en el directorio “datafile”; ambos directorios correspondientes a la FRA de la base de datos.


Backup de Datafiles

Para hacer un backup de un datafile, debemos escribir el comando:

  • BACKUP DATAFILE “ID del datafile”;


En las vistas LIST BACKUP y LIST BACKUP BY FILE, podemos ver los ID de los ficheros a los cuales se hace referencia en los backups. Estos ID, son los mismos que tienen los ficheros dentro de la base de datos.


Backup de Controlfiles

Con RMAN, podemos hacer backups de los controlfiles. Para ello debemos escribir los comandos:

  • Para los backups de tipo BACKUP SET: BACKUP CURRENT CONTROLFILE;

  • Para los backups de tipo IMAGE COPY: BACKUP AS COPY CURRENT CONTROLFILE;


También podemos indicarle a RMAN que nos hace un backup del fichero de control al mismo tiempo que hace el backup de algún objeto de la base de datos. Por ejemplo:

  • BACKUP TABLESPACE “Nombre del tablespace” INCLUDE CURRENT CONTROLFILE;


Backup de Archivelogs

Para realizar un backup de los archivelogs de la base de datos, podemos escribir el comando:

  • BACKUP ARCHIVELOG ALL;


También podemos hacer backups de los archivelog al mismo tiempo que hacemos backup de cualquier otro objeto de la base de datos, o la base de datos completa incluso, mediante la cláusula PLUS ARCHIVELOG. Por ejemplo:

  • BACKUP DATABASE PLUS ARCHIVELOG;


Se pueden realizar backups de los archivelogs, definiendo intervalos en cuanto a las secuencias y en cuanto al tiempo. Por ejemplo:



En cuanto a la secuencia: BACKUP ARCHIVELOG FROM SEQUENCE X UNTIL SEQUENCE Y;


En cuanto al tiempo: BACKUP ARCHIVELOG FROM TIME ‘Fecha inicial’ UNTIL TIME ‘fecha final’;


Backups incrementales

Los backups incrementales tienen que ser siempre como un conjunto de backups o un conjunto de backups comprimidos. Es imposible hacer una copia de imagen de un backup incremental.


Un backup incremental confía en un punto de partidaque contiene todos los bloques.


Si no hay ningún backup de nivel cero, y se realiza un backup de nivel 1, o un backup acumulativo, entonces se hará un backup de nivel 0.


Para comenzar a hacer backups incrementales debemos empezar por un Incremental level 0, que es un full backup como los que hemos hecho antes pero se le pone una marca.


En Oracle, podemos hacer dos tipos de backups incrementales:

  • Cumulative(Acumulativo) Level 1: solo se llevan los bloques modificados desde el último backup incremental.

  • Differential(Diferencial) Level 1: Estos backups solo se llevan los bloques modificados desde el último backup incremental, sin importar el tipo que sea.

Para hacer los diferentes tipos de backups incrementales debemos usar los comandos:


Si es de tipo incremental de Level 0:

  • BACKUP INCREMENTAL LEVEL 0 DATABASE;


Si es un backup diferencial:

  • BACKUP INCREMENTAL LEVEL 1 DATABASE;


Si es de tipo acumulativo:

  • BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;


Canales. Cambiar el canal por defecto

Para configurar el canal que se va a usar en los backups en cuanto a la ruta de almacenaje de los ficheros de backup, debemos usar el comando:

  • CONFIGURE CHANNEL DEVICE TYPE DISK/SBT FORMAT ‘dirección y formato de nombre de los ficheros de backup’;


Para definir un tamaño máximo de los ficheros de backup, usamos el comando:

  • CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE tamaño máximo de las pieces;


RUN. Lanzar jobs en RMAN

RMAN, también nos posibilita hacer procesos de tipo JOB o BASH, o sea, nos permite lanzar varios comandos en bloque, uno detrás del otro. Este bloque de comandos está compuesto primeramente por la cláusula RUN, y entre llaves podemos poner los comandos que necesitemos se ejecuten dentro de este bloque.


Existen determinados comandos que sólo se pueden ejecutar dentro del ámbito de un RUN.


Si dentro de un bloque RUN, un comando falla, no se ejecutarán los comandos posteriores a éste.

RESTAURACIÓN DE BACKUP

Avisos de recuperación de datos

DRA significa Asesor de Recuperación de Datos, y se encarga de diagnosticar y reparar problemas de una base datos, se usa con RMAN y Enterprise Manager.


Para saber si el fichero de control está multiplexado se puede usar la siguiente sentencia:

  • SELECT NAME FROM V$CONTROLFILE;


La pérdida de un miembro del redo log file no será registrado en el sistema de alerta. Para ver si los Online Redo Log File son multiplexados y ver el estado de cada uno se puede realizar la siguiente consulta:

  • SELECT * FROM V$LOGFILE;


En modo noarchivelog no es posible recuperar un fichero, redo necesita realizar un backup forward en el tiempo que no está disponible, y no es posible abrir una base de datos con ficheros de datos que no están actualizados.


El healthmonitor es un juego de chequeos o comprobaciones que se ejecutan de forma automática cuando aparecen ciertos errores, o manualmente si lo pide el DBA.



Uso de avisadores en recuperación

El DRA (Data Recovery Advisor) hace uso de información recopilada por el HM (Health Monitor) para:

  • Encontrar problemas.

  • Construye scripts con RMAN para repararlos.


El DRA no puede reparar fallos en una base de datos primaria  usando bloques o fichero de una base de datos standby (reserva), ni tampoco puede reparar fallos en una de reserva.


El flujo de trabajo del DRA es:

  • Evaluar fallos de datos.

  • Listar fallos.

  • Avisar sobre la reparación.

  • Ejecutar la reparación.


Introducción al Recover

Oracle encara la recuperación en dos pasos:

  • Fase de Restore.

  • Fase de Recover.


En la fase de Restore, Oracle recupera los ficheros que tenemos almacenados como copias de seguridad en determinado sitio, ya sea en la FRA, en una cinta, discos duros, etc.


En la fase de Recovery se aplican todos los cambios que tengamos en los redo, y posteriormente se hace un UNDO de los que no estuvieran validados, de esta manera, sólo se quedan almacenados en la base de datos recuperada, los datos que estén validados.


El resultado va a ser, que podamos tener la base de datos recuperada hasta el último momento en que se ha caído, siempre y cuando tengamos todos los ficheros necesarios.


Recuperando una Base de Datos completa

Para restaurar los ficheros dañados en una base de datos, debemos usar el comando:

  • RESTORE DATABASE;


Para recuperar la base de datos, usamos el comando:

  • RECOVER DATABASE;


Los errores que presenta una base de datos, podemos verlos en el fichero alert de la base de datos.



Recuperando un Tablespace

El RECOVER de una tablespace, podemos hacerlo con la base de datos en modo MOUNT, y también en modo OPEN.


En el caso de hacer el recover con la base de datos abierta, primero debemos restringir el acceso a la tablespace dañada con el comando:

qALTER TABLESPACE ´Ruta y nombre del fichero de la tablespace´ OFFLINE;


Si ha dado algún error antes que identifiquemos el problema, y la base de datos no se conecta más allá del modo MOUNT, entonces para poder arrancarla en modo OPEN, debemos restringir el acceso al fichero de la tablespace con el comando:

  • ALTER DATABASE DATAFILE ´Ruta y nombre del fichero de la tablespace´ OFFLINE;


Para hacer la recuperación de una tablespace dañada, podemos usar los comandos de RMAN:

  • RESTORE TABLESPACE Nombre de la tablespace; para restaurar el fichero desde el backup.

  • RECOVER TABLESPACE Nombre de la tablespace; para recuperar la tablespace.


Recuperando hasta un punto en el tiempo

En una recuperación POINT IN TIME RECOVERY, inevitablemente perdemos datos, pero de una manera consciente, antes de hacer la recuperación se evalúa hasta qué punto es mejor recuperar la base de datos hasta un determinado punto en el tiempo.


Para definir el punto en el tiempo al que queremos regresar, se utiliza la cláusula SET UNTIL.


Cuando queremos arrancar una base de datos, a la cual se le ha hecho un POINT IN TIME RECOVERY, debemos escribir el comando:

  • ALTER DATABASE OPEN RESETLOGS;


Políticas de retención

La política de retención es un componente de la configuración de RMAN, que determina si una copia es válida o no dentro de determinado ámbito.


Para definir la política de retención, podemos usar las configuraciones:


En cuanto al número de copias: CONFIGURE RETENTION POLICY TO REDUNDANCY X;


En cuanto a la antigüedad de las copias: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF X DAYS;


Para mostrar los backups obsoletos, debemos usar el comando:

  • REPORT OBSOLETE;


El comando Report

El comando REPORT OBSOLETE, muestra los backups obsoletos, a partir de una política de retención.


El comando REPORT NEED BACKUP, muestra los ficheros que debemos hacerle backup, para cumplir determinada política de retención.


qEl comando REPORT SCHEMA nos muestra una tabla donde podemos relacionar el ID de los ficheros, con la ruta y el nombre del fichero.

MULTITANET

MULTITANET

El MULTI-TENANT es una arquitectura de software basada en una única instancia. Una única implementación desde un servidor que se encuentra a disposición de los variados clientes y usuarios.


Aprovecha mejor los recursos de nuestra máquina, cuando queremos tener más de una base de datos.


MULTI-TENANT se va a estructurar de la siguiente forma:

  • Una CBD ¨container database¨ (que va a ser la base de datos madre)

La arquitectura MULTI-TENAT esta compuesta por una base de datos madre (CDB), y varias bases de datos hijas (PBD).


¿Qué vamos a tener en la CDB?:

  • Control files y redo logs

  • Default tablespaces undo y TEMP

  • Metadatos de Oracle

  • Usuarios y roles comunes


¿Qué vamos a tener en la PDB?:

  • Tablespaces de datos

  • Metadatos de Usuarios

  • Usuarios y roles locales


Los usuarios comunes o globales, van a tener acceso tanto a la CDB, como a todas las bases de datos.


Los usuarios locales, van a tener acceso a la PDB en la que fueron creados.


CREAR UN MULTITANET

Para crear una CDB con el DBCA debemos seguir los siguientes pasos:

  • Teclear DBCA en la barra de comandos.

  • Una vez en la aplicación, rellenar todos los aspectos para la creación.

  • Revisar si está bien los datos a través del sumario.

  • Finalizar la creación de la CDB

Quiero Estudiar

PRECIO VENTA 12 €

Comprar
Versión Gratuita

A continuación, te presentamos ofertas de tiempo limitado.

Acceso a todos los cursos de la web con un único pago

La mejor oferta de toda la web, no encontrarás ninguna como esta. Con el Plan Quiero Estudiar puedes acceder a todos los cursos de la web, incluido los futuros. Pero no puedes acceder a todos a la vez, podrás asignarte los 3 cursos que quieras independientemente de su precio o temática.

 

Cada vez que finalices uno, recibirás su certificado de finalización y podrás asignarte otro más.

Al comprar esta oferta, los botones de "Comprar" se convertirán en "Quiero Estudiar" y podrás elegir tus cursos de forma tranquila.

Aprovecha esta gran oferta, nunca más tendrás que gastar dinero en comprar más cursos.

Oferta 3 x 1 en cursos individuales (no Máster)

¡Aprovecha nuestra promoción excepcional de 3x1 en cursos online!

 

En nuestra variada selección de temáticas, pagarás por un curso individual y podrás llevarte otros dos completamente gratis. De esta manera, tendrás la libertad de escoger los tres cursos que más te interesen, sin importar la temática. Es una excelente oportunidad para ampliar tus conocimientos y habilidades. Por favor, ten en cuenta que esta oferta no se aplica a nuestros programas de Máster.

Al comprar esta oferta, los botones de "Comprar" se convertirán en "Quiero Estudiar" y podrás elegir tus 3 cursos de forma tranquila.

Promoción Exclusiva para este Máster

Comprar Máster por 18€
Ver temario del Máster

¿Tienes un código promocional?

PROCESANDO EL CÓDIGO PROMOCIONAL, ESPERE POR FAVOR

Activar:
linea2.jpg
cursos online en oferta
bottom of page