Funciones del DBA
-Instalación y actualización del sistema gestor de base de datos (SGBD)
-Establecer la política y necesidades del almacenamiento así como el particionamiento de los datos.
-Creación de políticas de backup y restauración.
-Establecer mecanismos de seguridad
Disponibilidad/HA
Vistas/Permisos
-Monitorización y optimización del rendimiento
-Creación de la BBDD(creación y carga). Soporte a desarrollo.
Esquemas
Restricciones
Integridad
-Creación/Definición de usuarios/roles
-Documentación
Data block en Oracle
Es la unidad mínima de entrada/salida (E/S) de la base de datos (contiene las filas físicas de los datos)
Ejemplo: Un bloque de 8 KB (estándar) que almacena 40 filas de la tabla USUARIOS. Si quieres leer una sola fila, Oracle debe leer el bloque de 8 KB entero en memoria.
Extent en Oracle
Es un número específico de bloques de datos contiguos
Ejemplo: La tabla VENTAS se queda sin espacio. Oracle le asigna una extensión de 64 KB. Si los bloques son de 8 KB, esa extensión son 8 bloques contiguos en el disco.
Segment en Oracle
Es el conjunto de todas las extensiones que han sido asignadas para una estructura lógica específica dentro de un Tablespace. Pueden ser: tablas, índices, undo, LOB
Ejemplo: El Segmento de Tabla llamado PRODUCTOS. Si la tabla tiene 1 millón de filas, su segmento puede estar compuesto por 500 extensiones repartidas por el archivo de datos, pero todas pertenecen exclusivamente a esa tabla.
Tablespace en Oracle
Es la unidad lógica de almacenamiento que agrupa segmentos relacionados. Es el puente entre la base de datos y los archivos físicos (Datafiles).
Funcionamiento ORACLE
1-Creas el Tablespace DATOS asociado al archivo datos.dbf.
2-Creas la tabla CLIENTES. En ese momento, Oracle crea un Segmento para ella.
3-Ese segmento pide espacio inicial y Oracle le otorga una Extensión (por ejemplo, de 16 bloques).
4-Tú insertas datos. Esos datos se escriben fila a fila dentro de los Bloques de datos de esa extensión.
5-Cuando llenas los 16 bloques, el segmento pide otra Extensión nueva para seguir creciendo.
Vista Materializada y Vista Estándar
Vista materializada es un objeto de base de datos que contiene los resultados de una consulta (query) y los almacena físicamente en el disco. Ocupan espacio, pero son muy rápidas.
Una Vista Estándar es solo una consulta guardada que se ejecuta cada vez que la llamas. No ocupa espacio, pero son más lentas.
Particionamiento
el particionamiento horizontal divide las bases de datos de gran tamaño en componentes más pequeños, que son más rápidos y fáciles de administrar. SHARDING
Ej: de la fila 0 a la fila 10000; de la fila 10001 a la 20000 ..
Redo Log Oracle
es un conjunto de archivos circulares donde Oracle registra todos los cambios realizados en la base de datos (INSERT, UPDATE, DELETE, etc.). Su función principal es permitir la recuperación en caso de que el sistema falle
Row Level Security en PostgreSQL
Es una capa de seguridad adicional que permite filtrar registros de una tabla. Determinados usuarios pueden ver unas filas y otras no…
Motores de almacenamiento de MySQL y MariaDB
InnoDB, XtraDB, MyIsam, Aria
InnoDB
motor de almacenamiento por defecto actual de MySQL y MariaDB
Transaccionalidad y propiedades ACID
Bloqueo a nivel de fila (la bloquea si está siendo modificada)
Integridad referencial: soporta claves foráneas
Recuperación: algo similar al Redo Log de Oracle para recuperarse ante fallos.
MyISAM
antiguo motor de almacenamiento de MySQL y MariaDB
NO transaccional. NO soporta claves foráneas
Bloqueo a nivel de Tabla (si alguien modifica una fila, se bloquea toda la tabla)
Muy rápido para lecturas masivas en tablas que no suelen cambiar.
Aria
es una evolución de MyISAM (resistente a caídas del sistema)
XtraDB
evolución de InnoDB
Listener (Oracle)
proceso externo a la base de datos
Escucha peticiones de conexión desde la red (puerto 1521 actualmente 2483)
PGA (Program Global Area) (Oracle)
zona de memoria privada para cada proceso o sesión
Contiene: Información de control y datos de la sesión
Realiza el trabajo de tu consulta específica
Es dinámica (crece y muere con la conexión)
SGA (System Global Area) (Oracle)
Es una zona de memoria compartida. Todos los procesos de la base de datos acceden a ella
Contiene: LAS CACHES Los datos que se acaban de leer del disco (Buffer Cache) y las sentencias SQL que se acaban de ejecutar (Shared Pool).
Es estática (se reserva al arrancar la instancia).
DBWn (Database Writer) (Oracle)
escribe los datos en los archivos físicos (.dbf).
Pasa los bloques de datos “sucios” (modificados) desde la SGA (Buffer Cache) al disco.
LGWR (Log Writer) (Oracle)
encargado de escribir el diario de cambios (Redo Log).
Registra los cambios de forma inmediata en los archivos Redo Log
PL/SQL (Oracle)
Procedural Language/Structured Query Language (Procedimiento Almacenado)
Es una extensión de SQL propiedad de Oracle que le añade estructuras de programación procedimental
MVCC Multi-version Concurrency Control (Postgre)
en lugar de bloquear tablas o líneas, mientras se modifican, Postgre saca snapshots antes de empezar la transacción. Los lectores trabajan sobre esa foto pero los escritores crean nuevasa versiones. Al crear nuevos datos y dejar los antiguos, hay que ejecutar el proceso Vacuum para liberar espacio ocupado y dejar solo las nuevas versiones desechando las antiguas.
Write Ahead Log (WAL) (Postgre)
En lugar de escribir los cambios directamente en los archivos de datos (que es lento y pesado), Postgres escribe primero una nota rápida en un archivo especial: el WAL. Es lo mismo que el proceso LGWR (en Oracle)
ROLES (Postgre)
No hay distinción física entre usuarios y grupos; ambos son Roles
Los roles pueden pertenecer a otros roles para heredar permisos (INHERIT)