Conceptos Fundamentales de Administración de Bases de Datos Oracle

Clasificado en Informática

Escrito el en español con un tamaño de 8,14 KB

1. ¿Qué es un Servidor Oracle?

Un servidor Oracle es un sistema gestor de bases de datos relacional (RDBMS). Se trata de una herramienta cliente/servidor diseñada para la eficiente gestión y manipulación de grandes volúmenes de datos.

2. Estados de la Base de Datos Oracle durante un "Startup"

Al ejecutar un comando STARTUP en Oracle, la base de datos pasa por una serie de estados secuenciales. A continuación, se describen estos estados y lo que ocurre en cada uno:

  • Shutdown (Apagado)

    Este es el estado inicial antes de que la instancia comience a arrancar. En este punto:

    • No hay archivos de la base de datos abiertos.
    • No hay procesos de Oracle ejecutándose en segundo plano.
  • Started (Iniciada)

    En esta fase, la instancia de Oracle se inicializa, pero la base de datos aún no está disponible para los usuarios. Los pasos clave son:

    • Se leen los ficheros de parámetros (SPFILE o PFILE) para configurar la instancia.
    • Arrancan los procesos en segundo plano (Background Processes) de Oracle (como PMON, SMON, DBWR, LGWR, etc.).
    • Se asigna y se inicializa el Área Global del Sistema (SGA - System Global Area), la estructura de memoria principal de la instancia.
    • Aún no hay ficheros de la base de datos (archivos de datos, de control o de redo logs) abiertos.
  • Mounted (Montada)

    En este estado, la instancia ya está iniciada y puede interactuar con el fichero de control de la base de datos. Esto permite a la instancia conocer la ubicación de los demás archivos de la base de datos.

    • Se abre y se lee el fichero de control.
    • La instancia conoce la estructura física de la base de datos (ubicación de los archivos de datos y redo logs), pero estos archivos aún no están abiertos.
    • Este estado es útil para realizar tareas de mantenimiento como la recuperación de la base de datos o la modificación de la estructura de los archivos.
  • Open (Abierta)

    Este es el estado final y operativo, donde la base de datos está completamente disponible para los usuarios y las aplicaciones.

    • Se abren los archivos de datos y los archivos de redo logs.
    • Si es necesario, Oracle realiza una recuperación automática de la instancia para asegurar la consistencia de los datos.
    • Se inicia la instancia de escucha (listener) y comienza a atender las peticiones de conexión de los usuarios.

3. Puntos de Control (Checkpoints) en Oracle

Un punto de control (checkpoint) es un evento crítico en Oracle que garantiza la consistencia de los datos y reduce el tiempo de recuperación en caso de fallo. Cuando se ejecuta un checkpoint, se realizan las siguientes operaciones:

  1. Todos los bloques de datos "sucios" (modificados en la caché de la SGA pero aún no escritos en disco) se escriben en los ficheros de datos. Este proceso es realizado principalmente por el proceso DBWR (Database Writer).
  2. El proceso LGWR (Log Writer) actualiza los últimos SCN (System Change Number) en las cabeceras de los ficheros de datos. El SCN es un número de secuencia que representa un punto en el tiempo en la base de datos.
  3. El proceso LGWR también escribe los últimos SCN en los ficheros de control, asegurando que todos los componentes de la base de datos estén sincronizados con el mismo punto de control.

Consulta del Último Checkpoint

Para consultar el momento en que se produjo el último checkpoint, se puede utilizar la siguiente sentencia SQL:

SELECT checkpoint_time FROM V$datafile_header;

4. Consulta del Espacio Ocupado por un Tablespace Específico

Para consultar el espacio ocupado por un segmento de tabla determinado dentro de un tablespace, se puede utilizar la siguiente sentencia SQL. Esta consulta muestra el tamaño en megabytes (MB) de un segmento de tipo 'TABLE' con un nombre específico:

SELECT SUM(bytes) / 1024 / 1024 AS MB
FROM user_segments
WHERE segment_type = 'TABLE' AND segment_name = 'NOMBRETABLA';

Nota: Reemplaza 'NOMBRETABLA' con el nombre real de la tabla que deseas consultar.

5. Aumento del Espacio en un Tablespace Oracle

Un administrador de bases de datos puede aumentar el espacio disponible en un tablespace de Oracle utilizando dos métodos principales:

  • Modificar el Tamaño de un Datafile Existente

    Esta opción permite redimensionar un archivo de datos ya existente asociado al tablespace, aumentando su capacidad. Es útil cuando el tablespace tiene la opción AUTOEXTEND OFF o cuando se desea un control manual sobre el tamaño.

    ALTER DATABASE DATAFILE '/users/oradata/orcl/test01.dbf' RESIZE 150M;

    Este comando redimensiona el archivo de datos especificado a 150 megabytes.

  • Añadir un Nuevo Datafile al Tablespace

    Esta opción consiste en agregar un nuevo archivo de datos al tablespace, lo que incrementa su capacidad total. Es una forma común de expandir el almacenamiento sin modificar los archivos existentes.

    ALTER TABLESPACE TEST ADD DATAFILE '/users/oradata/orcl/test02.dbf' SIZE 50M;

    Este comando añade un nuevo archivo de datos de 50 megabytes al tablespace llamado 'TEST'.

6. Gestión de Índices en Oracle: Creación, Actualización, Ventajas y Desventajas

Los índices son objetos de esquema que mejoran la velocidad de recuperación de datos en las bases de datos. A continuación, se detalla su gestión en Oracle:

Creación de Índices

Los índices en Oracle pueden crearse de dos maneras:

  • Automáticamente

    Oracle crea índices de forma automática cuando se define una restricción PRIMARY KEY o UNIQUE en una definición de tabla. Estos índices son esenciales para garantizar la integridad de los datos y la unicidad de las claves.

  • Manualmente

    Los usuarios o administradores pueden crear índices de forma manual (como índices no únicos) para acelerar el acceso a filas específicas en consultas que no involucran claves primarias o únicas. Esto se hace mediante la sentencia CREATE INDEX.

Actualización de Índices

Los índices se actualizan automáticamente cuando se modifican los datos de la tabla subyacente. Sin embargo, para reconstruir un índice (por ejemplo, para mejorar su rendimiento o liberar espacio fragmentado), se utiliza la siguiente sentencia:

ALTER INDEX nombre_indice REBUILD;

Reemplaza nombre_indice con el nombre del índice que deseas reconstruir.

Ventajas y Desventajas de Usar Índices

El uso de índices conlleva beneficios y consideraciones importantes:

Ventajas

  • Mejora del Rendimiento de Consultas: Aceleran significativamente las operaciones SELECT, UPDATE y DELETE que utilizan la clave del índice en la cláusula WHERE, al permitir un acceso más rápido a los datos.

Desventajas

  • Requisito de Almacenamiento: Necesitan un volumen de almacenamiento adicional importante, ya que son estructuras de datos separadas de la tabla.
  • Impacto en el Rendimiento de Escritura: Pueden empeorar el rendimiento de las operaciones de inserción (INSERT), actualización (UPDATE) y eliminación (DELETE) de datos, ya que cada modificación en la tabla requiere también una actualización en el índice asociado.

Entradas relacionadas: