Administración de Bases de Datos Oracle: Conceptos y Mejores Prácticas


¿Qué es la Administración de una Base de Datos?

La administración de una base de datos implica una serie de tareas y responsabilidades cruciales para su correcto funcionamiento. Entre las principales características de una buena administración se encuentran:

  • Independencia de los datos: Lógica y Física.
  • Integridad de los datos.
  • Redundancia mínima.
  • Control de concurrencia y simultaneidad.
  • Reserva y seguridad.
  • Respaldo y recuperación.
  • Consistencia de los datos.
  • Capacidad de auditoría.
  • Otras capacidades.

¿Quién realiza la Administración?

La administración de datos y la administración de la base de datos son llevadas a cabo por personas o grupos de personas encargadas de gestionar y controlar todas las actividades relacionadas con los datos de la empresa y con la base de datos, respectivamente.

Capacidades Deseadas en un DBA

Un buen Administrador de Bases de Datos (DBA) debe poseer una serie de habilidades y conocimientos técnicos, entre los que destacan:

  • Sólida comprensión de la base de datos Oracle, su arquitectura, funcionamiento y herramientas de administración.
  • Conocimiento profundo del Sistema Operativo sobre el cual corre Oracle.
  • Dominio del diseño físico de la base de datos.
  • Capacidad para ejecutar ajustes (tuning) al Sistema Operativo y Base de Datos, así como monitorear el rendimiento de los sistemas en producción.
  • Experiencia en escenarios de respaldo y recuperación, incluyendo el uso de buenas prácticas.
  • Conocimiento de Administración de Seguridad.
  • Comprensión profunda de la Integridad de Datos en Oracle.
  • Familiaridad con las aplicaciones implementadas. En ocasiones, es necesario que los DBA tengan experiencia en migración de código.
  • Habilidad para administrar cambios en una base de datos y gestionar datos a través de las diversas etapas del ciclo de vida de desarrollo.
  • Capacidad de comunicación efectiva con Gerentes, Equipos de Desarrollo, Vendedores y Administradores de Sistemas.
  • Habilidad para definir una dirección estratégica a la organización respecto a la base de datos.
  • Capacidad para trabajar en múltiples proyectos y cumplir con plazos establecidos.
  • Conocimiento del negocio.

Funciones de un DBA

Las principales funciones de un DBA incluyen:

  • Administrar la estructura de la Base de Datos.
  • Administrar la actividad de los datos.
  • Administrar el Software Administrador de Base de Datos (DBMS).
  • Establecer el Diccionario de Datos.
  • Asegurar la confiabilidad de la Base de Datos.
  • Confirmar la seguridad de la Base de Datos.

I-04-02

Estructura Física de una Base de Datos Oracle

La estructura física de una base de datos Oracle está determinada por los archivos del Sistema Operativo que proveen el almacenamiento físico para la información de la base de datos:

  • Control files: Contienen información de otros archivos físicos, nombre de la base de datos, tamaño del bloque de la base de datos, conjunto de caracteres e información para recuperación. Estos archivos son requeridos para abrir la base de datos.
  • Data Files: Contienen la información que registran las aplicaciones finales de usuarios.
  • Redo Log: Registra todos los cambios hechos a la base de datos y es usado para recuperación.
  • Archivos de Parámetros (PFILE y SPFILE): Son parámetros de configuración de la SGA, características opcionales de Oracle y procesos en segundo plano (background).
  • Archived Log: Son copias del contenido de Redo Log previos y son usados para recuperación.
  • Password File: Archivo opcional usado para almacenar nombres de usuarios a los que se les han otorgado los privilegios de SYSDBA y SYSOPER.
  • Oracle Net: Entradas que configuran el listener de la base de datos y los clientes, permitiendo así la conectividad entre aplicaciones y el servidor.

I-05-02

Comandos de Inicio (Startup)

  • OPEN: Habilita a los usuarios a acceder a la base de datos.
  • MOUNT: Monta la BD para ciertas actividades de Administración (DBA) pero los usuarios no pueden acceder.
  • NOMOUNT: Crea la SGA e inicia los procesos en segundo plano, pero no otorga acceso a la base de datos.
  • PFILE=parfile: Habilita los parámetros para la instancia indicados en el archivo.
  • FORCE: Aborta los procesos que están corriendo en la instancia antes de realizar un startup normal.
  • RESTRICT: Habilita solo a usuarios con privilegio de RESTRICTED SESSION para acceder a la base de datos.
  • RECOVER: Inicia recuperación cuando se inicia la base de datos.

Comandos de Apagado (Shutdown)

  • Shutdown Normal
  • Transactional
  • Shutdown Immediate
  • Shutdown Abort

Contenido del Diccionario de Datos

El diccionario de datos provee información sobre:

  • Las definiciones de todos los esquemas de objetos en la base de datos (tablas, vistas, índices, clusters, sinónimos, secuencias, procedimientos, funciones, triggers, packages, etc.).
  • Cuánto espacio ha sido asignado a los objetos.
  • Valores por defecto para las columnas.
  • Información de reglas de integridad.
  • Nombres de usuarios Oracle.
  • Privilegios y roles que han sido asignados a cada usuario.
  • Información de auditoría, tal como quién ha accedido o modificado objetos en la base de datos.

Contenidos del Control File

La información en el control file incluye:

  1. Nombre de la base de datos (tomado del nombre en los parámetros de inicialización (DB_NAME) o el nombre usado en la sentencia CREATE DATABASE).
  2. El identificador registrado cuando la base de datos es creada.
  3. La fecha de la creación de la base de datos.
  4. El nombre y ubicación de los archivos de datafile y redo log (actualizados cuando un datafile o redo log es agregado, renombrado o eliminado de la base de datos).
  5. Información de tablespaces (actualizada cuando éstos son agregados o eliminados).
  6. La historia de los redo log (registrada durante los log switches).
  7. Ubicación y estado de los logs archivados.
  8. Ubicación y estado de respaldos (registrados por el utilitario Recovery Manager(RMAN)).
  9. Número de secuencia de los logs actuales (registrados cuando ocurre el log switch).
  10. Información de checkpoint (registrada cuando se hace un checkpoint).

Obteniendo Información de los Archivos de Control

La información sobre el estado y ubicación del(los) archivos de control puede ser recuperada consultando las siguientes vistas del diccionario de datos:

  • V$CONTROLFILE: Lista el nombre y estado de todos los control files asociados a una instancia.
  • V$PARAMETER: Lista el estado y ubicación de todos los parámetros.
  • V$CONTROLFILE_RECORD_SECTION: Provee información sobre las secciones de registros del archivo de control.
  • SHOW PARAMETERS CONTROL_FILES: Lista el nombre, estado y ubicación de los archivos de control.

Para obtener la ubicación y nombre de los archivos de control, se debe utilizar la vista dinámica de rendimiento V$CONTROLFILE.

II-04-08

Estructura de un Bloque

  • Cabecera: Contiene información general del bloque, como la dirección del bloque y el tipo de segmento.
  • Directorio de Tablas: Información sobre las tablas que tienen filas en el bloque.
  • Directorio de Filas: Información sobre las filas almacenadas en el bloque, incluyendo sus direcciones.
  • Libre: Espacio disponible en el bloque para futuras inserciones.
  • Datos de Filas: Los datos reales de las filas almacenadas en el bloque.

Parámetros Importantes

  • PCTFREE: Indica el porcentaje mínimo que se debe dejar libre para modificaciones de los datos de las filas que ya existen dentro del bloque. El espacio de un bloque también incluye un overhead, por lo que el espacio disponible para inserciones es menor al indicado por PCTFREE.
  • PCTUSED: Está directamente relacionado con PCTFREE. Define el porcentaje mínimo de espacio usado que debe tener un bloque para que se considere apto para nuevas inserciones. Por ejemplo, si PCTFREE es 20, se podrán insertar filas hasta que el bloque se llene al 80%.
  • INITRANS: Especifica el mínimo y máximo de slots de transacciones que se crean en un bloque de índice o de datos. Los slots de transacción almacenan información sobre las transacciones que están realizando cambios al bloque. INITRANS, por defecto es 1 para un segmento de datos y 2 para un segmento de índices, garantizando un nivel mínimo de concurrencia.
  • MAXTRANS: Su valor por defecto es 255. Fija el límite para el número de transacciones concurrentes que pueden modificar datos en un bloque. Restringe el uso de slots de transacciones y garantiza que haya suficiente espacio en el bloque para datos o índices.

¿Qué es un Esquema?

Un esquema es una colección de objetos de base de datos propiedad de un usuario en particular. Un esquema tiene el mismo nombre que el usuario propietario del esquema. Los objetos de esquema son estructuras lógicas directamente referenciadas a los datos de la base de datos. Los objetos de esquema incluyen estructuras tales como tablas, vistas e índices.

Creando Índices

Los índices son estructuras opcionales asociadas con las tablas. Estos pueden crearse para mejorar el rendimiento en la recuperación de datos de una tabla. Oracle provee índices para acceder directamente a los datos de una tabla.

¿Qué es una Vista?

Las vistas son representaciones personalizadas de datos de una o más tablas o de otras vistas. Pueden ser pensadas como consultas almacenadas. Las vistas realmente no contienen datos, pero obtienen sus datos desde tablas. Estas tablas son referenciadas como tablas base de la vista.

Cuentas de Usuarios de Bases de Datos

Una de las tareas elementales de un DBA es la de Administrar Usuarios. Cada usuario que se conecta a una base de datos debe tener una cuenta. Se debe evitar crear cuentas genéricas (consultor, gerente, ventas, consulta, etc.) ya que son difíciles de auditar y es una mala práctica en algunas corporaciones. Se puede crear una nueva cuenta de usuario de base de datos con el comando CREATE USER.

Comando SQL para Crear un Usuario

CREATE USER user
IDENTIFIED [BY password | EXTERNALLY]
[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESPACE tablespace]
[QUOTA {integer [K|M] | UNLIMITED} ON tablespace
[QUOTA {integer [K|M] | UNLIMITED} ON tablespace
]…]
[PASSWORD EXPIRE] [ACCOUNT { LOCK | UNLOCK}]
[PROFILE {profile | DEFAULT}]

Creación de Perfiles

Los perfiles definen un conjunto de limitaciones de recursos al uso de la base de datos y de la instancia. Los perfiles también imponen limitaciones sobre la password (largo, fecha de expiración, etc.). Cada usuario está asignado a un perfil y puede tener asociado solo un perfil a la vez.

Privilegios

  • Privilegios de Sistema: Permiten a un usuario ejecutar una operación en particular en la base de datos o sobre clases de base de datos. Por ejemplo, el privilegio de crear un tablespace es un privilegio de sistema. Pueden ser otorgados por el DBA o por alguien que explícitamente tenga el permiso de administrador. Hay más de 100 privilegios de sistema disponibles.
  • Privilegios de Objetos: Permiten a un usuario ejecutar una acción particular sobre un objeto, tal como tabla, vista, secuencia, procedimiento, función o package. Sin permisos específicos, los usuarios pueden acceder solo a sus objetos (los creados por ellos mismos). Pueden ser otorgados por el dueño del objeto, por el DBA o por alguien que explícitamente se le otorgó privilegio sobre el objeto.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *