La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

POSTGRESQL PARTE I Azuaje, Agustín Hevia, Andrés.

Presentaciones similares


Presentación del tema: "POSTGRESQL PARTE I Azuaje, Agustín Hevia, Andrés."— Transcripción de la presentación:

1 POSTGRESQL PARTE I Azuaje, Agustín Hevia, Andrés

2 Agenda  Definición: ¿Qué es PostgreSQL?  Entrando a Postgres…  Reseña histórica y características básicas.  Arquitectura Básica.  Modelo Cliente – Servidor.  Manejo de Memoria.  Almacenamiento  Índices  Restauración  Manejo de la concurrencia.  Diccionario de Datos / Directorio.

3 ¿Qué es PostgreSQL?  ¿Un simple SMBD?  Más que eso: Un poderoso sistema de gestión de base de datos objeto- relacionales.  Fiel cumplidor de la norma ACID

4 Entrando a Postgres…  Nace en 1982 en la Universidad de Berkeley.  Su primer nombre fue Ingres.  Robusto como su logo, corre en casi cualquier Sistema Operativo.  Diseñado para ambientes de alto volumen de transacciones.  De código abierto.  En 1994 empieza a utilizar el lenguaje SQL.

5 Arquitectura Básica  Consiste en el modelo Cliente-Servidor. ¿Y esto de aquí arriba que significa?

6 Manejo de Memoria  En todos los sistemas de gestión de base de datos, los datos se guardan en páginas de memoria… … Postgres no es la excepción:  Tamaños de página desde 8 K hasta 32 K.  ¿data muy grande? It’s TOAST time! A picar se ha dicho.

7 Manejo de Memoria El Storage Manager:  Todo Update es una inserción en vez de un cambio de las tuplas.  No requiere la ejecución de un código de recuperación si el sistema falla.  Esquema WORM: Write-Once-Read-Many.  Almacenamiento por bloques.  Aprovecha el hardware especializado como procesadores múltiples y memoria no volátil.  Para cada usuario que lee, tiene una copia del dato disponible…

8 Manejo de memoria

9 Manejo de Memoria ¡El maravilloso Vacuum!  Libera espacio en disco.  Mantiene actualizadas las estadísticas de de datos utilizados por el planificador de consultas SQL. ¿Cómo funciona?  Primero escribe un registro de archivo y de sus registros de índice asociados.  Luego crea un nuevo punto de anclaje en la base de datos actual (Checkpoint).  Libera el espacio ocupado por el punto de anclaje más antiguo.

10 Manejo de Memoria Ejemplo de un “Full Vacuum”:

11 Manejo de Memoria Ejemplo de un “Lazy Vacuum”:

12 Índices  Los índices se utilizan para acelerar las consultas.  Son también archivos. Y con ustedes… Los índices

13 Índices Índices por valor  Su campo clave es… … una columna. La sentencia para su creación sería: CREATE [UNIQUE] INDEX nombre_indice ON TABLE [USING nombre_acceso] (columna)

14 Índices Índice funcional  Se define por el resultado de una función.  Acceso más veloz. La sentencia para su creación sería: CREATE [UNIQUE] INDEX nombre_indice ON TABLE [USING nombre_acceso] (nombre_funcion (r”>columna|e>[,…]) )

15 Índices Índices primarios  Se crean automáticamente cuando establecemos un campo como clave primaria.  Aunque se crean automáticamente, pueden crearse manualmente para campos que creamos relevantes. La sentencia para su creación sería: CREATE INDX nombre_indice ON table (campo);

16 Índices Índices secundarios  B-Tree (Árbol B).  R-Tree (Árbol R) (Descontinuados).  Gist (Sustituye al R-Tree): se utilizan en una búsqueda, cuando alguno de los atributos indexados esté involucrado en una comparación que utilice uno de los siguientes operadores: |, |>>, @>, <@, ~=, &&

17 Índices  Un Árbol B para refrescar la memoria…

18 Concurrencia  Recordemos el modelo Cliente – Servidor…  Varios clientes implica varias transacciones, que pueden ser concurrentes…

19 Concurrencia PostgreSQL Bloqueo PostgreSQL = MVCC Transacción = Acción Reed/Write NO contención, deadlocks SI transacciones ACID Atomicity, Consistency, Isolation and Durability. Copias paralelas de datos. NO elimina o actualiza la data Fila extra = “no visible” Desventajas Usa más espacio de disco. Lentitud al leer datos. R nunca bloquea W, y viceversa Control de Concurrencia Multi-Versión  Concurrencia

20 Concurrencia PostgreSQL  Caso de Conflicto = 2 transacciones trabajan sobre el mismo objeto, con al menos una operación de escritura. Aislamiento de Transacción. Solución Lectura confirmadaSerializable  Predeterminada  Ve una instantánea a partir del inicio de la operación.  2 Casos:  Consulta sólo ve los datos confirmados antes del comienzo de la consulta.  Se esperará la confirmación de la primera transacción.  Estricto  Emula la ejecución en serie.  Los sucesivos comandos dentro de una sola transacción siempre ven los mismos datos.

21 Concurrencia PostgreSQL  VACUUM E- Bloqueo no visible SD: Bloque Sin Asignar OF: Bloque Fuera de Uso ¿Se acuerdan de esto? Hora de reutilizar espacio y optimizar las búsquedas. Full VACUMMAuto VACUMM  Mas agresivo  Espacio liberado, retornado al SO  Bloqueo exclusivo mientras se procesa  Automatizar el VACUMM  Múltiples procesos para mantenerlo activo

22 Recuperación PostgreSQL Existen distintos enfoques para resguardar la BD: Backups mediante volcado Backup de todas las BD del servidor Backup a nivel de ficheros Crear Fichero Restaurar psql basededatos < fichero.sql pg_dump basededatos > fichero.sql Copiar BD del servidor pg_dumpall > backup_server.sql Restaurar las BD psql -f backup_server.sql postgres Apagar el servidor tar -czvf backup.tar.gz /var/pgsql/data Mover los ficheros a su ruta y levantarlo de nuevo  Recuperación

23 Recuperación PostgreSQL  Estrategia Compleja de Copias de Seguridad Archivado Continuo y Logfiles Copias Físicas (Resguardar la BD) Almacenan automáticamente todas las modificaciones. Almacenan data de forma continua. Registran todas las manipulaciones a la BD Rotación de Logfiles

24 Diccionario de Datos PostgreSQL  Almacena un conjunto de Meta-datos. Son datos que describen otros datos Organizados en tablas Generados automáticamente por el Compilador. Estándar SQL-92, lo denomina “informationschema” Diccionario de Datos Tipos de datos: cardinal_number: Entero no negativo character_data: String sin longitud sql_indentifier: Sentencias de sql yes_or_no: valores lógicos Conjunto de vistas las cuales contiene: Columns (Columnas definidas por el sistema), Tables (Tablas de la bd), Views (Vistas) Acceso Select * from information_schema.. Pg_class: tablas, índices…. Pg_constraint: restricciones definidas. Pg_statistics: información de la estadísticas del sistema. Select relname from pg_class;

25 Y por ahora terminamos… ¿Preguntas?


Descargar ppt "POSTGRESQL PARTE I Azuaje, Agustín Hevia, Andrés."

Presentaciones similares


Anuncios Google