Instalación de PostgreSQL en servidor Debian

  En otra entrada de la presente bitácora se ha visto qué es un gestor de bases de datos PostgreSQL.
  La entrada que ahora nos ocupa profundizará algo más en este sistema de gestión de bases de datos y mostrará el mejor modo de realizar su instalación en un servidor Debian de Linux.
  En primer lugar se ha de hacer hincapié en el método de uso de los disparadores ("triggers", en inglés) que realiza este gestor de bases de datos. Debido a que un disparador es una acción específica que se realiza de acuerdo a un evento, cuando éste ocurra dentro de la base de datos, en PostgreSQL esto significa la ejecución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica. Esto hace que todos los disparadores se definan por seis características: El nombre del disparador, el momento en que el disparador debe arrancar, el evento del disparador deberá activarse sobre…,  la tabla donde el disparador se activará, la frecuencia de la ejecución, la función que podría ser llamada, y si la función no es correcta. Combinando estas seis características, este gestor de bases de datos permite al usuario crear una amplia funcionalidad a través de su sistema de activación de disparadores.
  Otra característica interesante de PostgreSQL es el control de concurrencia mediante versiones múltiples ["Multiversion concurrency control" ("MVCC"), en inglés], agrega una imagen del estado de la base de datos a cada transacción. Esto permite al usuario hacer transacciones eventualmente consistentes, ofreciendo grandes ventajas en el rendimiento.
  En este sistema de gestión de bases de datos no se requiere usar bloqueos de lectura al realizar una transacción lo que brinda una mayor escalabilidad. PostgreSQL también tiene "Hot-Standby", que permite que los clientes hagan búsquedas (sólo de lectura) en los servidores mientras están en modo de recuperación o espera. Así, es posible hacer tareas de mantenimiento o recuperación sin bloquear completamente el sistema.
  Otras características destacables de este gestor de bases de datos son:
  •   Su uso de las claves ajenas ("foreign keys", en inglés).
  •   Vistas. 
  •   Integridad transaccional. 
  •   Herencia de tablas. 
  •   Tipos de datos y operaciones geométricas. 
  •  Soporte para transacciones distribuidas: Permite a PostgreSQL integrarse en un sistema distribuido formado por varios recursos gestionado por un servidor de aplicaciones donde el éxito ("commit") de la transacción global es el resultado del éxito de las transacciones locales.
  •   Lenguajes aplicables a las funciones: Un lenguaje propio llamado PL/PgSQL (similar al PL/SQL de Oracle), C, C++, Java PL/Java web, PL/Perl, plPHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl, PL/Scheme, y lenguaje para aplicaciones estadísticas R por medio de PL/R.


INSTALACIÓN DE POSTGRESQL

  Al usuario interesado en instalar PostgreSQL en un sistema Linux debe decírsele que debe comenzar, como siempre que se instala algo nuevo, por actualizar la lista de paquetes [comando apt update (anteponiendo sudo si no se está en el sistema como administrador)], y por actualizar aquellos paquetas que no lo estén [comando apt upgrade (anteponiendo sudo si no se está en el sistema como administrador)].
  Para obtener la última versión de este programa adecuada al sistema operativo instalado, se añadirá una línea al archivo "sources.list" (o se creará un archivo con dicha línea en el directorio "sources.list.d") con la dirección al repositorio oficial del PostgreSQL: "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" (para los ejemplos de esta explicación, se empleará el sistema operativo Debian 9 y la versión 10.5 de PostgreSQL).
  Seguidamente, se obtiene la clave de firma del repositorio mediante el comando wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add – (anteponiendo sudo si no se está en el sistema como administrador), y se vuelve a actualizar la lista de paquetes.
  A continuación, se instala el programa utilizando el comando apt install postgresql-<versión adecuada del programa> (anteponiendo sudo si no se está en el sistema como administrador).
  Una vez instalado, lo mejor es realizar ciertos cambios en los archivos de configuración "postgresql.conf" y "pg_hba.conf" (en la ruta "/etc/postgresql/<versión del programa>/main/").
  En el primero, se deben descomentar las líneas mencionadas a continuación (si no lo están ya) y realizar los siguientes cambios:
  •  "listen_addresses": Cambiar su valor por "*".
  •  "max_connections": Aumentar su valor a "351".
  •  "shared_buffers": Aumentar su valor a "1536 MB".
  • "wal_buffers": Aumentar su valor a "16 MB". 
  •  "max_wal_size": Aumentar su valor a "2 GB". 
  •  "min_wal_size": Aumentar su valor a "1 GB".
  •  "random_page_cost": Cambiar su valor por "1.1". 
  •  "effective_cache_size": Cambiar su valor por "4608 MB".
  En el segundo archivo, lo mejor es eliminar las líneas de las conexiones IPv6, y modificar el resto de las líneas para que de esto...
... quede esto (la IP adecuada del servidor en este ejemplo es "192.168.0.0"):
 Con estos cambios, se reinicia el servicio del PostgreSQL mediante el comando systemctl restart postgresql (anteponiendo sudo si no se está en el sistema como administrador), y se comprueba que funciona correctamente mediante el comando systemctl status postgresql (anteponiendo sudo si no se está en el sistema como administrador).
  Si todo ha ido bien, se puede acceder al sistema utilizando su - postgres [el propio programa ha creado un usuario llamado "postgres" en el sistema operativo, pero si no es así, puede crearse mediante el comando adduser postgres (anteponiendo sudo si no se está en el sistema como administrador)], y luego el comando de activación predeterminado del programa: psql.
  A partir de aquí, ya se considera instalado este sistema de gestión de bases de datos y se puede disfrutar de todo su potencial. Una buena práctica es crear un nuevo usuario con permisos de administrador. Esto puede hacerse mediante el comando SQL CREATE USER <nombre de usuario> WITH PASSWORD '<contraseña>';; con el usuario creado, se le puede agregar una base de datos propia en la que podrá trabajar (comando CREATE DATABASE <nombre de base de datos> OWNER <usuario>;). Puede probarse el funcionamiento de la nueva base de datos utilizando el comando psql -h <host> -d <base de datos> -U <usuario> (en el ejemplo, el anfitrión es "svelb1",  la base de datos se llama "prueba1" y el usuario es "elb"; para salir. solo hay que introducir el comando \q).

  Por otra parte, si el PostgreSQL da problemas, puede consultarse su archivo de registros, o bitácora, ("postgresql-10-main.log") en la ruta "/var/log/postgresql" [comando tail -f <nombre del archivo> (anteponiendo sudo si no se está en el sistema como administrador)].
  Espero que la presente entrada haya sido interesante y/o útil al lector. De ser así, aguardo que el lector la comente y/o la comparta, por favor.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.