Servidor SGBDR PostgreSQL

cesareox » Docencia » SXBD » Servidor SGBDR PostgreSQL


Postgres es una base de datos avanzada que cumple con el Test ACID. Es gratuita y con licencia BSD. Es una base de datos con toda la funcionalidad necesaria para cualquier tipo de aplicación desde la más sencilla a la más compleja por eso la hemos escogido como motor de base de datos.

Objetivos

Indice de Contenidos

  1. Introducción e Instalación Básica
    1. Postgres SQL: ¿Qué es?, Historia, Características, Ventajas/Inconvenientes
    2. Versiones Postgres (diferentes ramas principales):
    3. Plan de Trabajo para Instalación desde Código Fuente: qué necesito, versión del software, módulos y documentación
    4. Instalación del Programa
      1. Instalación: configuración (./configure), compilación (make), instalación (make install)
      2. Creación de usuario y directorio de la base de datos. (data y configurar permisos)
      3. Jerarquía de directorios: bin, doc, include, man, share, lib y DATOS
      4. Inicializar el directorio de Datos (initdb -D el_directorio_que_escoja)
    5. Arrancar/Parar el SGBDR (postmaster y/o script pg_ctl). Poner SIEMPRE el directorio de la BD
    6. Principales Problemas:
      • ¿Existe un directorio para los datos? ¿lo he especificado?
      • ¿Hay ya un servidor funcionando?
      • ¿Tengo los permisos necesarios?
    7. Trabajo Post-Instalación: configurar PATH, Librerías
  2. Probar la instalación básica:
    • Creación de Bases de Datos (comandos createdb/dropdb). P. ej: $PG_HOME/bin/createdb test
    • Creación de Usuarios (comandos createuser/dropuser). P.ej: $PG_HOME/bin/createuser usuario
    • Usuario DBA: puede crear/borrar bases de datos y puede crear/borrar usuarios/
    • Conectarse a la BD, ejecutar algunos comandos SQL, desconectarse y borrar la BD
    • Revisar el Funcionamiento. Archivos de Log:
      • Archivo de Log (típico $PGDATA/server.log): redireccionando la salida del comando o con opciones en el script. Diferentes niveles de log.
      • Niveles de Aviso: DEBUG, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, PANIC
      • Revisar el archivo: comandos unix more, tail, head, cat, grep, etc
      • Ejemplos de líneas de log:
        NOTICE:  ALTER TABLE / ADD PRIMARY KEY will create implicit index "pa_photo_pk" for table "pa_photos"
        LOG:  received smart shutdown request
        LOG:  shutting down
        ERROR:  duplicate key violates unique constraint "cr_extlinks_pk"
        ERROR:  -20000: Inserts are not allowed into cr_text.
        FATAL:  database "ejemplo" does not exist
        		  
  3. Configuración Servidor / Postgresql Server Configuration
    1. Archivo de Configuración: postgresql.conf (en $PGDATA).
    2. Se usan parámetros (Sintaxis name = value). Por ejemplo: Parámetros para Conexión como listen_addreses , port, max_connections
    3. Control de Acceso ( Authentication)
      1. Control Basado en Host (Host-Based Access). Archivo pg_hba.conf
      2. Quién, desde dónde y a qué
      3. Tipos de conexión localhost y vía host (TCP/IP)
      4. Estructura pg_hba.conf:
        1. Tipo de Conexión: local | host | hostssl
        2. database (all | sameuser | name)
        3. user
        4. ip_addr netmask
        5. authentication_method (password, crypt, ident, trust, md5, reject )
      5. Ejemplos de Archivos de Configuración
  4. Gestión de usuarios y Bases de Datos
    1. Tipos de usuarios: DBA y usuarios (normal, desarrollador, programador, etc)
    2. Gestión de Usuarios ( y Grupos)
      1. Tablas del Sistema sobre usuarios:
        1. pg_user: Tabla con información de usuarios
        2. pg_shadow: Tabla con información sobre la clave de usuarios
      2. Gestionar Usuarios
        1. Lenguaje DCL: Data Control Language. Sentencias SQL: CREATE USER, DROP USER Y ALTER USER
        2. Utilizando comandos: createuser, dropuser
    3. Gestión de Bases de Datos
      1. Utilizar Lenguaje DCL: Data Control Language. Sentencias SQL: CREATE DATABASE, DROP DATABASE y ALTER DATABASE
      2. Utilizando comandos: createdb, dropdb
      3. Tabla del Sistema: pg_database
  5. Gestión de Permisos y Copias de Seguridad
    • Gestión de Permisos sobre Objetos
      1. Tipos de permisos (y letra simbólica): SELECT (r), INSERT (a), UPDATE (w), DELETE (d), REFERENCES (x), CREATE (C) y ALL
      2. La palabra PUBLIC especifica cualquier usuario y ALL especifica todos los permisos
      3. Se pueden otorgar (GRANT) o quitar permisos (REVOKE)
      4. Para ver los permisos de un objeto: \z tabla_ejemplo
         Schema |       Table        |             Access privileges             
        --------+--------------------+------------------------------------------------
         public | tabla_ejemplo      | {usuario_ejemplo=a*r*w*d*R*x*t*/usuario_ejemplo}
        		
      5. Ejemplos
        		  GRANT UPDATE ON tabla_ejemplo TO usuario_ejemplo;
        		  REVOKE ALL ON tabla_ejemplo FROM PUBLIC;
        		
      6. Tablas del Sistema: pg_class. Ejemplo: select relname, relacl from pg_class;
    • Gestión de Copias de Seguridad
      1. Utilizando comandos (El que hay que utilizar): pg_dump (para cada bd) y pg_dumpall (todas). Revisar las opciones (modelo de datos, contenido, comprimir, etc)
      2. Copiar el Sistema de Archivos (PGDATA)
    • Otras funciones del mantenimiento:
      1. Sobre la actividad de la BD (tablas del Sistema)
      2. Sobre el Rendimiento del Sistema: Procesador, Memoria y Sistemas de Archivos)
      3. Sobre la Documentación de los Modelos de Datos y Atención a los desarrolladores

Actividades

Tiempo Estimado

3 semanas

Recursos a Utilizar

Enviar un comentario


Cesareo